summaryrefslogtreecommitdiff
path: root/VRCSDK3Worlds/Assets/Editor
diff options
context:
space:
mode:
Diffstat (limited to 'VRCSDK3Worlds/Assets/Editor')
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64.meta9
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery.meta9
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/.denoiserlog.txt48
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/.ftracelog.txt30860
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/.uvgblog.txt758
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/NormalsFittingTexture_ddsbin0 -> 4194432 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/NormalsFittingTexture_dds.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/OpenImageDenoise.dllbin0 -> 45172064 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/OpenImageDenoise.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/addAO.ptx200
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/addAO.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/addDir.ptx327
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/addDir.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalf.ptx228
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalf.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalfSeparateIndirect.ptx290
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalfSeparateIndirect.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/addSH.ptx666
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/addSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/alphabuffergen.dllbin0 -> 52736 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/alphabuffergen.dll.meta138
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimesh.ptx265
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimesh.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTex.ptx301
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTex.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTexLODselect.ptx341
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTexLODselect.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/clip_rtx.ptx114
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/clip_rtx.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/combineMasks.exebin0 -> 73216 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/combineMasks.exe.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/cookieOutput.psobin0 -> 672 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/cookieOutput.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart32_91.dllbin0 -> 299520 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart32_91.dll.meta115
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_90.dllbin0 -> 390024 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_90.dll.meta115
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_91.dllbin0 -> 374272 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_91.dll.meta115
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudnn64_7.dll3
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudnn64_7.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/d3dcompiler_47.dllbin0 -> 4173928 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/d3dcompiler_47.dll.meta138
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/debugLines.psobin0 -> 1396 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/debugLines.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish.ptx1050
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish72.ptx93
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish72.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishOIDN.ptx107
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishOIDN.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH.ptx598
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH72.ptx526
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH72.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH_OIDN.ptx167
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH_OIDN.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare.ptx586
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare72.ptx71
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare72.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareOIDN.ptx116
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareOIDN.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH.ptx595
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH72.ptx519
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH72.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH_OIDN.ptx159
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH_OIDN.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser.exebin0 -> 52224 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser.exe.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser72.exebin0 -> 52224 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser72.exe.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserLegacy.exebin0 -> 52224 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserLegacy.exe.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserOIDN.exebin0 -> 51200 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserOIDN.exe.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.psobin0 -> 2000 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.ptx473
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateFloat.ptx284
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateFloat.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateHalf.ptx472
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateHalf.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateMask.ptx286
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateMask.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateSimple.psobin0 -> 1796 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateSimple.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/exception.ptx934
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/exception.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos.ptx337
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos1.ptx245
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos1.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos12.ptx702
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos12.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos2.ptx382
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos2.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos3D.ptx513
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos3D.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/frender.dllbin0 -> 97280 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/frender.dll.meta138
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftChecker.shader87
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftChecker.shader.meta9
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftServer.exebin0 -> 37376 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftServer.exe.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftrace.exebin0 -> 299520 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftrace.exe.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftraceRTX.exebin0 -> 300032 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftraceRTX.exe.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2hdr.exebin0 -> 104960 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2hdr.exe.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2vb.dllbin0 -> 101376 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2vb.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfield.ptx648
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfield.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTex.ptx676
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTex.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTexLODSelect.ptx680
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTexLODSelect.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata.meta9
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphabuffer.binbin0 -> 2 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphabuffer.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphaid2.bin0
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphaid2.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/direct0.binbin0 -> 52 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/direct0.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/heightmaps.bin0
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/heightmaps.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/ib32.binbin0 -> 28 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/ib32.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/image.lz4bin0 -> 2046 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/image.lz4.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/light_HDR.lz4bin0 -> 75 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/light_HDR.lz4.meta7
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmid.binbin0 -> 4 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmid.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmlod.bin1
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmlod.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lms.binbin0 -> 18 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lms.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/settings.binbin0 -> 10 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/settings.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvnormal_tinyscene_LM0.lz4bin0 -> 74 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvnormal_tinyscene_LM0.lz4.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvpos_tinyscene_LM0.lz4bin0 -> 1695 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvpos_tinyscene_LM0.lz4.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtrace.binbin0 -> 96 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtrace.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtraceUV0.binbin0 -> 32 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtraceUV0.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/icon.pngbin0 -> 19396 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/icon.png.meta68
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/ies2tex.exebin0 -> 22016 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/ies2tex.exe.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_arealight.ptx329
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_arealight.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_backface_check.ptx149
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_backface_check.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_lodselect.ptx156
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_lodselect.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sky.ptx629
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sky.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sss.ptx241
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sss.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_tex_gi2.ptx200
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_tex_gi2.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_texarealight.ptx351
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_texarealight.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks.meta9
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part0.binbin0 -> 7 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part0.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part1.binbin0 -> 12597 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part1.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part2.binbin0 -> 628 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part2.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part3.binbin0 -> 88 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part3.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part0.binbin0 -> 7 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part0.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part1.binbin0 -> 12497 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part1.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part2.binbin0 -> 584 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part2.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part3.binbin0 -> 84 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part3.bin.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAO.ptx1033
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAO.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAOdir.ptx1098
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAOdir.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLight.ptx1807
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLight.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightDir.ptx1888
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightDir.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightProbeSH.ptx2314
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightProbeSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightRNM.ptx2483
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightRNM.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightSH.ptx2376
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLight.ptx1847
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLight.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightProbeSH.ptx2378
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightProbeSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightRNM.ptx2442
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightRNM.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightSH.ptx2382
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLight.ptx1568
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLight.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightProbeSH.ptx2276
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightProbeSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightRNM.ptx2347
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightRNM.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightSH.ptx2422
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLight.ptx1590
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLight.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightProbeSH.ptx2305
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightProbeSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightRNM.ptx2395
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightRNM.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightSH.ptx2464
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLight.ptx1569
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLight.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightProbeSH.ptx2284
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightProbeSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightRNM.ptx2374
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightRNM.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightSH.ptx2443
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLight.ptx1542
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLight.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightProbeSH.ptx2250
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightProbeSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightRNM.ptx2321
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightRNM.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightSH.ptx2408
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSS.ptx1343
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSS.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSSSH.ptx1967
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSSSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSky.ptx1359
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSky.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemap.ptx1378
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemap.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapDir.ptx1466
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapDir.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapProbeSH.ptx2066
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapProbeSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapRNM.ptx2141
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapRNM.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapSH.ptx2069
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyDir.ptx1420
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyDir.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyProbeSH.ptx1913
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyProbeSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyRNM.ptx2025
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyRNM.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkySH.ptx1914
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkySH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTangentSH.ptx2126
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTangentSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTex.ptx1483
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTex.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSun.ptx1787
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSun.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadow.ptx1811
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadow.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowProbeSH.ptx2133
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowProbeSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowRNM.ptx2449
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowRNM.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowSH.ptx2138
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunProbeSH.ptx2107
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunProbeSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunRNM.ptx2403
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunRNM.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunSH.ptx2112
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLight.ptx1843
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLight.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightDir.ptx1928
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightDir.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightProbeSH.ptx2489
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightProbeSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightRNM.ptx2587
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightRNM.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightSH.ptx2535
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGI.ptx1347
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGI.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIProbeSH.ptx2016
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIProbeSH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIRNM.ptx2088
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIRNM.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGISH.ptx2019
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGISH.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIdir.ptx1523
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIdir.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.psobin0 -> 864 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.vsobin0 -> 956 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.vso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmrebake.dllbin0 -> 52224 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmrebake.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lodselect.ptx1927
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/lodselect.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/miss.ptx106
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/miss.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/mulHalfByte.ptx652
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/mulHalfByte.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.1.dllbin0 -> 38267976 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.1.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.51.dllbin0 -> 40401408 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.51.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.6.0.0.dllbin0 -> 192928 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.6.0.0.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.51.dllbin0 -> 32577024 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.51.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.6.0.0.dllbin0 -> 42589600 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.6.0.0.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/output.psobin0 -> 744 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/output.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha.psobin0 -> 2784 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha_noflip.psobin0 -> 2772 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha_noflip.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddDir.ptx159
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddDir.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddHalf.ptx228
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddHalf.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/quad.vsobin0 -> 628 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/quad.vso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/removeEmissive.ptx216
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/removeEmissive.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/rgba2tga.exebin0 -> 57856 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/rgba2tga.exe.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts.meta9
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/BakeryEditorAssembly.asmdef16
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/BakeryEditorAssembly.asmdef.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftAdditionalConfig.cs68
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftAdditionalConfig.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildGraphics.cs7944
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildGraphics.cs.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildLights.cs1118
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildLights.cs.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClearMenu.cs153
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClearMenu.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClient.cs505
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClient.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftCreateMenu.cs96
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftCreateMenu.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDDS.cs56
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDDS.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDefine.cs41
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDefine.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDetectSettings.cs261
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDetectSettings.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDirectLightInspector.cs418
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDirectLightInspector.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftErrorCodes.cs266
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftErrorCodes.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftFixResettingGlobalsOnSave.cs32
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftFixResettingGlobalsOnSave.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupInspector.cs94
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupInspector.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupSelectorInspector.cs166
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupSelectorInspector.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightMeshInspector.cs671
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightMeshInspector.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightingDataGen.cs202
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightingDataGen.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmappedPrefabInspector.cs117
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmappedPrefabInspector.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmapsStorageInspector.cs29
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmapsStorageInspector.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftModelPostProcessor.cs418
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftModelPostProcessor.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftPointLightInspector.cs835
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftPointLightInspector.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRenderLightmap.cs10681
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRenderLightmap.cs.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRestorePaddingMenu.cs88
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRestorePaddingMenu.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavePadding.cs55
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavePadding.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSaveSettingsMenu.cs53
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSaveSettingsMenu.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavedPadding2.cs8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavedPadding2.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSceneView.cs171
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSceneView.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSectorInspector.cs474
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSectorInspector.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSettingsProvider.cs69
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSettingsProvider.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftShaderTweaks.cs777
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftShaderTweaks.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSkyLightInspector.cs360
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSkyLightInspector.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftTextureProcessor.cs57
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftTextureProcessor.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUVGBufferGen.cs595
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUVGBufferGen.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUpdater.cs378
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUpdater.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftVolumeInspector.cs226
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftVolumeInspector.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas.meta9
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas-license.txt23
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas-license.txt.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas.cs289
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasEnable.cs13
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasEnable.cs.meta12
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasLib.dllbin0 -> 184832 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasLib.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfix.vsobin0 -> 1008 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfix.vso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfixer.exebin0 -> 66560 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfixer.exe.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc.meta9
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftCullFarSphere.compute79
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftCullFarSphere.compute.meta9
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftTransformFarSphere.compute64
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftTransformFarSphere.compute.meta9
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftrace.cginc163
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftrace.cginc.meta9
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow.ptx109
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3.ptx111
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3_rtx.ptx133
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3_rtx.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow_rtx.ptx131
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow_rtx.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/simpleProgressBar.dllbin0 -> 39424 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/simpleProgressBar.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/skyOutput.psobin0 -> 2004 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/skyOutput.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbb.dllbin0 -> 400256 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbb.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbbmalloc.dllbin0 -> 246656 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbbmalloc.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimesh.ptx459
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimesh.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTex.ptx490
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTex.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTexLODSelect.ptx513
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTexLODSelect.ptx.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uv.vsobin0 -> 1292 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uv.vso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainFaceNormal.psobin0 -> 2772 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainFaceNormal.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainNormal.psobin0 -> 8852 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainNormal.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainPos.psobin0 -> 2888 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainPos.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainSmoothPos.psobin0 -> 9040 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainSmoothPos.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvalbedo.psobin0 -> 936 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvalbedo.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvemissive.psobin0 -> 1156 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvemissive.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal.gsobin0 -> 1148 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal.gso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal_point.gsobin0 -> 1148 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal_point.gso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvgbuffergen.dllbin0 -> 87552 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvgbuffergen.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvnormal.psobin0 -> 1636 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvnormal.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvpos.psobin0 -> 748 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvpos.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvrepack.dllbin0 -> 35840 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvrepack.dll.meta28
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.gsobin0 -> 2268 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.gso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.psobin0 -> 3800 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.pso.meta8
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvtangent.psobin0 -> 1372 bytes
-rw-r--r--VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvtangent.pso.meta8
488 files changed, 202898 insertions, 0 deletions
diff --git a/VRCSDK3Worlds/Assets/Editor/x64.meta b/VRCSDK3Worlds/Assets/Editor/x64.meta
new file mode 100644
index 00000000..03bc6fbe
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 88883d0b7ff585c4fbfc2e5ad15e0c00
+folderAsset: yes
+timeCreated: 1622807246
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery.meta
new file mode 100644
index 00000000..26cc9ce7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 60589892feefcc9478c5986b4ffa8a72
+folderAsset: yes
+timeCreated: 1622807246
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/.denoiserlog.txt b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/.denoiserlog.txt
new file mode 100644
index 00000000..bf525bbf
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/.denoiserlog.txt
@@ -0,0 +1,48 @@
+2021-11-29
+Init...
+Tiles: 1
+Loading shader denoisePrepare.ptx::oxMain...
+Loading shader denoiseFinish.ptx::oxMain...
+2021-11-29
+Init...
+Tiles: 1
+Done
+Loading shader denoisePrepare.ptx::oxMain...
+Loading shader denoiseFinish.ptx::oxMain...
+Done
+2021-11-29
+Init...
+Tiles: 1
+Loading shader denoisePrepare72.ptx::oxMain...
+Loading shader denoiseFinish72.ptx::oxMain...
+Done
+2021-11-29
+Init...
+Tiles: 1
+Loading shader denoisePrepareOIDN.ptx::oxMain...
+Loading shader denoiseFinishOIDN.ptx::oxMain...
+Done
+2021-11-29
+Init...
+Tiles: 1
+Loading shader denoisePrepare.ptx::oxMain...
+Loading shader denoiseFinish.ptx::oxMain...
+2021-11-29
+Init...
+Tiles: 1
+Loading shader denoisePrepare.ptx::oxMain...
+Loading shader denoiseFinish.ptx::oxMain...
+Done
+Done
+2021-11-29
+Init...
+Tiles: 1
+Loading shader denoisePrepare72.ptx::oxMain...
+Loading shader denoiseFinish72.ptx::oxMain...
+Done
+2021-11-29
+Init...
+Tiles: 1
+Loading shader denoisePrepareOIDN.ptx::oxMain...
+Loading shader denoiseFinishOIDN.ptx::oxMain...
+Done
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/.ftracelog.txt b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/.ftracelog.txt
new file mode 100644
index 00000000..739bc1d3
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/.ftracelog.txt
@@ -0,0 +1,30860 @@
+Init...
+sun
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5156mb
+MODE: sun
+USING HALF
+Load shaders...
+Loading shader lmSun.ptx::oxMain...
+Loading shader clip_rtx.ptx::oxMain...
+Loading shader shadow_rtx.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader attrib_trimesh.ptx::interpolate...
+Used host memory: 0mb, available GPU memory: 5156mb
+Used host memory: 0mb, available GPU memory: 5156mb
+Create buffer...
+Num passes: 4
+Num tex: 4
+Skipping pass LDR
+Pass light_HDR...
+Skipping pass Mask
+Skipping pass Dir
+Used host memory: 0mb, available GPU memory: 5156mb
+Launch 1x1 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 5091mb
+-----
+Mem stats:
+Total: 64
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 0
+UV GBuffer: 0
+Scene: 4160
+-----
+Render time: 0.45 sec
+
+Writing...
+light_HDR.lz4
+Done
+Init...
+sun
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: sun
+USING HALF
+Load shaders...
+Loading shader lmSun.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 4
+Num tex: 4
+Skipping pass LDR
+Pass light_HDR...
+Skipping pass Mask
+Skipping pass Dir
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 1x1 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 5036mb
+-----
+Mem stats:
+Total: 2
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 0
+UV GBuffer: 0
+Scene: 4097
+-----
+Render time: 0.74 sec
+
+Writing...
+light_HDR.lz4
+Done
+Init...
+sun
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5156mb
+MODE: sun
+USING HALF
+Load shaders...
+Loading shader lmSun.ptx::oxMain...
+Loading shader clip_rtx.ptx::oxMain...
+Loading shader shadow_rtx.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader attrib_trimesh.ptx::interpolate...
+Used host memory: 0mb, available GPU memory: 5156mb
+Used host memory: 0mb, available GPU memory: 5156mb
+Create buffer...
+Num passes: 4
+Num tex: 4
+Skipping pass LDR
+Pass light_HDR...
+Skipping pass Mask
+Skipping pass Dir
+Used host memory: 0mb, available GPU memory: 5156mb
+Launch 1x1 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 5091mb
+-----
+Mem stats:
+Total: 64
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 0
+UV GBuffer: 0
+Scene: 4160
+-----
+Render time: 0.154 sec
+
+Writing...
+light_HDR.lz4
+Done
+Init...
+sun
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: sun
+USING HALF
+Load shaders...
+Loading shader lmSun.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 4
+Num tex: 4
+Skipping pass LDR
+Pass light_HDR...
+Skipping pass Mask
+Skipping pass Dir
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 1x1 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 5036mb
+-----
+Mem stats:
+Total: 2
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 0
+UV GBuffer: 0
+Scene: 4097
+-----
+Render time: 0.4 sec
+
+Writing...
+light_HDR.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA12.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.997 sec
+Writing...
+uvpos_Trista_LMA12.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA9.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.73 sec
+Writing...
+uvpos_Trista_LMA9.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA16.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.755 sec
+Writing...
+uvpos_Trista_LMA16.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA7.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.69 sec
+Writing...
+uvpos_Trista_LMA7.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA6.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.739 sec
+Writing...
+uvpos_Trista_LMA6.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA10.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.757 sec
+Writing...
+uvpos_Trista_LMA10.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA15.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.748 sec
+Writing...
+uvpos_Trista_LMA15.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA11.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.731 sec
+Writing...
+uvpos_Trista_LMA11.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA14.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.779 sec
+Writing...
+uvpos_Trista_LMA14.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA18.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.744 sec
+Writing...
+uvpos_Trista_LMA18.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA19.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.747 sec
+Writing...
+uvpos_Trista_LMA19.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA21.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.726 sec
+Writing...
+uvpos_Trista_LMA21.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA17.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.768 sec
+Writing...
+uvpos_Trista_LMA17.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA8.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.717 sec
+Writing...
+uvpos_Trista_LMA8.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA13.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.753 sec
+Writing...
+uvpos_Trista_LMA13.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA20.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.735 sec
+Writing...
+uvpos_Trista_LMA20.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA23.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 4x4 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+-----
+Mem stats:
+Total: 163
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 64
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 2x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 3x0...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 0x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 1x1...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 2x1...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 3x1...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 0x2...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 1x2...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 2x2...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 3x2...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 0x3...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 1x3...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 2x3...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 3x3...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Render time: 0.521 sec
+Writing...
+uvpos_Trista_LMA23.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA22.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.641 sec
+Writing...
+uvpos_Trista_LMA22.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA2.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.712 sec
+Writing...
+uvpos_Trista_LMA2.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA4.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.697 sec
+Writing...
+uvpos_Trista_LMA4.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA5.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.696 sec
+Writing...
+uvpos_Trista_LMA5.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA24.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 4x4 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+-----
+Mem stats:
+Total: 163
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 64
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 2x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 3x0...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 0x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 1x1...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 2x1...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 3x1...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 0x2...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 1x2...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 2x2...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 3x2...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 0x3...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 1x3...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 2x3...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Tile 3x3...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4874mb
+Render time: 0.505 sec
+Writing...
+uvpos_Trista_LMA24.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA1.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.66 sec
+Writing...
+uvpos_Trista_LMA1.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LM0.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.764 sec
+Writing...
+uvpos_Trista_LM0.lz4
+Done
+Init...
+fixpos12
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: fixpos12
+USING FLOAT
+Load shaders...
+Loading shader fixPos12.ptx::oxMain...
+Loading shader lambert_backface_check.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader trimesh.ptx::intersect...
+Loading shader trimesh.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 2
+Num tex: 2
+Pass uvpos_Trista_LMA3.lz4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+-----
+Mem stats:
+Total: 355
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 256
+UV GBuffer: 10
+Scene: 4185
+-----
+Tile 1x0...
+Streaming...0
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x0...
+Streaming...1
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x0...
+Streaming...3
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x0...
+Streaming...4
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x0...
+Streaming...6
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x0...
+Streaming...7
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x0...
+Streaming...9
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x1...
+Streaming...10
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x1...
+Streaming...12
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x1...
+Streaming...14
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x1...
+Streaming...15
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x1...
+Streaming...17
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x1...
+Streaming...18
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x1...
+Streaming...20
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x1...
+Streaming...21
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x2...
+Streaming...23
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x2...
+Streaming...25
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x2...
+Streaming...26
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x2...
+Streaming...28
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x2...
+Streaming...29
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x2...
+Streaming...31
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x2...
+Streaming...32
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x2...
+Streaming...34
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x3...
+Streaming...35
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x3...
+Streaming...37
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x3...
+Streaming...39
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x3...
+Streaming...40
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x3...
+Streaming...42
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x3...
+Streaming...43
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x3...
+Streaming...45
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x3...
+Streaming...46
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x4...
+Streaming...48
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x4...
+Streaming...50
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x4...
+Streaming...51
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x4...
+Streaming...53
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x4...
+Streaming...54
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x4...
+Streaming...56
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x4...
+Streaming...57
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x4...
+Streaming...59
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x5...
+Streaming...60
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x5...
+Streaming...62
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x5...
+Streaming...64
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x5...
+Streaming...65
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x5...
+Streaming...67
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x5...
+Streaming...68
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x5...
+Streaming...70
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x5...
+Streaming...71
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x6...
+Streaming...73
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x6...
+Streaming...75
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x6...
+Streaming...76
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x6...
+Streaming...78
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x6...
+Streaming...79
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x6...
+Streaming...81
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x6...
+Streaming...82
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x6...
+Streaming...84
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 0x7...
+Streaming...85
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 1x7...
+Streaming...87
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 2x7...
+Streaming...89
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 3x7...
+Streaming...90
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 4x7...
+Streaming...92
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 5x7...
+Streaming...93
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 6x7...
+Streaming...95
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Tile 7x7...
+Streaming...96
+nFNFPFSd
+Launching...
+Used host memory: 0mb, available GPU memory: 4682mb
+Render time: 0.735 sec
+Writing...
+uvpos_Trista_LMA3.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_12_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 1.628 sec
+
+Writing...
+light_712658426_12_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_12_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 1.201 sec
+
+Writing...
+light_-2025409501_12_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_14_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 2.378 sec
+
+Writing...
+light_712658426_14_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_14_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 3.098 sec
+
+Writing...
+light_-2025409501_14_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_7_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 1.834 sec
+
+Writing...
+light_712658426_7_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_7_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 1.548 sec
+
+Writing...
+light_-2025409501_7_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_16_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.842 sec
+
+Writing...
+light_712658426_16_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_16_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.818 sec
+
+Writing...
+light_-2025409501_16_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_17_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 1.28 sec
+
+Writing...
+light_712658426_17_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_17_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 1.263 sec
+
+Writing...
+light_-2025409501_17_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_13_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.879 sec
+
+Writing...
+light_712658426_13_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_13_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.853 sec
+
+Writing...
+light_-2025409501_13_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_8_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.892 sec
+
+Writing...
+light_712658426_8_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_8_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.861 sec
+
+Writing...
+light_-2025409501_8_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_23_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.978 sec
+
+Writing...
+light_712658426_23_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_23_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.942 sec
+
+Writing...
+light_-2025409501_23_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_9_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 1.101 sec
+
+Writing...
+light_712658426_9_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_9_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 1.068 sec
+
+Writing...
+light_-2025409501_9_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_5_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 1.093 sec
+
+Writing...
+light_712658426_5_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_5_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 1.024 sec
+
+Writing...
+light_-2025409501_5_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.876 sec
+
+Writing...
+light_712658426_4_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_4_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.851 sec
+
+Writing...
+light_-2025409501_4_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_2_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.849 sec
+
+Writing...
+light_712658426_2_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_2_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.831 sec
+
+Writing...
+light_-2025409501_2_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_6_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.889 sec
+
+Writing...
+light_712658426_6_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_6_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.874 sec
+
+Writing...
+light_-2025409501_6_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_15_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.911 sec
+
+Writing...
+light_712658426_15_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_15_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.886 sec
+
+Writing...
+light_-2025409501_15_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_10_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.859 sec
+
+Writing...
+light_712658426_10_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_10_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.83 sec
+
+Writing...
+light_-2025409501_10_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_3_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.826 sec
+
+Writing...
+light_712658426_3_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_3_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.82 sec
+
+Writing...
+light_-2025409501_3_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_1_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.748 sec
+
+Writing...
+light_712658426_1_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_1_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.747 sec
+
+Writing...
+light_-2025409501_1_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_21_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.797 sec
+
+Writing...
+light_712658426_21_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_21_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.782 sec
+
+Writing...
+light_-2025409501_21_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_19_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.794 sec
+
+Writing...
+light_712658426_19_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_19_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.794 sec
+
+Writing...
+light_-2025409501_19_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_712658426_0_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.836 sec
+
+Writing...
+light_712658426_0_HDR.lz4
+Done
+Init...
+arealight
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: arealight
+USING HALF
+Load shaders...
+Loading shader lmAreaLight.ptx::oxMain...
+Loading shader lambert_arealight.ptx::oxMain...
+Loading shader shadow.ptx::oxMain...
+Loading shader miss.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass light_-2025409501_0_HDR...
+Skipping pass Mask
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+-----
+Mem stats:
+Total: 228
+Alphas: 0
+GI albedos: 0
+GI lightmaps: 0
+Light data: 0
+Output: 128
+UV GBuffer: 5
+Scene: 4191
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 4809mb
+Render time: 0.837 sec
+
+Writing...
+light_-2025409501_0_HDR.lz4
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+addmul
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5168mb
+MODE: addmul
+USING FLOAT
+Loading shader addHalf.ptx::oxMain...
+Launched
+Loading shader dilateHalf.ptx::oxMain...
+Loading shader mulHalfByte.ptx::oxMain...
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA12_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 67.081 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA12_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA9_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 162.452 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA9_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA16_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 157.464 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA16_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA7_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 95.129 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA7_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA6_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 131.612 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA6_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA10_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 203.936 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA10_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA15_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 140.214 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA15_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA11_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 118.613 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA11_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA14_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 197.303 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA14_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA18_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 128.808 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA18_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA19_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 215.498 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA19_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA21_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 118.116 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA21_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA17_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 168.753 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA17_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA8_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 117.371 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA8_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA13_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 165.247 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA13_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA20_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 138.234 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA20_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA23_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 4x4 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+-----
+Mem stats:
+Total: -951
+Alphas: 0
+GI albedos: 16
+GI lightmaps: 3008
+Light data: 0
+Output: 32
+UV GBuffer: 7
+Scene: 4177
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 2x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 3x0...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 0x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 1x1...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 2x1...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 3x1...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 0x2...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 1x2...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 2x2...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 3x2...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 0x3...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 1x3...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 2x3...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Tile 3x3...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1893mb
+Render time: 22.582 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA23_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA22_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...28
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x2...
+Streaming...29
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x2...
+Streaming...31
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x2...
+Streaming...32
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x2...
+Streaming...34
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x3...
+Streaming...35
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x3...
+Streaming...37
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x3...
+Streaming...39
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x3...
+Streaming...40
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x3...
+Streaming...42
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x3...
+Streaming...43
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x3...
+Streaming...45
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x3...
+Streaming...46
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x4...
+Streaming...48
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x4...
+Streaming...50
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x4...
+Streaming...51
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x4...
+Streaming...53
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x4...
+Streaming...54
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x4...
+Streaming...56
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x4...
+Streaming...57
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x4...
+Streaming...59
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x5...
+Streaming...60
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x5...
+Streaming...62
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x5...
+Streaming...64
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x5...
+Streaming...65
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x5...
+Streaming...67
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x5...
+Streaming...68
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x5...
+Streaming...70
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x5...
+Streaming...71
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x6...
+Streaming...73
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x6...
+Streaming...75
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x6...
+Streaming...76
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x6...
+Streaming...78
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x6...
+Streaming...79
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x6...
+Streaming...81
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x6...
+Streaming...82
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x6...
+Streaming...84
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x7...
+Streaming...85
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x7...
+Streaming...87
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x7...
+Streaming...89
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x7...
+Streaming...90
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x7...
+Streaming...92
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x7...
+Streaming...93
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x7...
+Streaming...95
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x7...
+Streaming...96
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Render time: 9.344 sec
+Dilate...
+Loading shader dilateHalf.ptx::oxMain...
+0...1...2...3...4...5...6...7...8...9...10...11...12...13...14...15...
+Writing...
+Trista_LMA22_final_HDR.lz4
+Done
+Init...
+texgi
+Loading geometry...
+Loading alphas...
+Tile size: 512
+Device 0: NVIDIA GeForce GTX 1660 SUPER (ON)
+Used host memory: 0mb, available GPU memory: 5038mb
+MODE: texgi
+USING HALF
+Loading additional lightmap: Trista_LMA12_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA9_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA16_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA7_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA6_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA10_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA15_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA11_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA14_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA18_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA19_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA21_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA17_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA8_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA13_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA20_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA23_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA22_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA2_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA4_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA5_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA24_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA1_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LM0_diffuse_HDR.lz4
+LM is half
+Loading additional lightmap: Trista_LMA3_diffuse_HDR.lz4
+LM is half
+Load shaders...
+Loading shader lmTexGI.ptx::oxMain...
+Loading shader lambert_tex_gi2.ptx::oxMain...
+Loading shader shadow3.ptx::oxMain...
+Loading shader trimeshTex.ptx::intersect...
+Loading shader trimeshTex.ptx::bbox...
+Used host memory: 0mb, available GPU memory: 5038mb
+Used host memory: 0mb, available GPU memory: 5038mb
+Create buffer...
+Num passes: 3
+Num tex: 3
+Skipping pass LDR
+Pass Trista_LMA2_final_HDR...
+Skipping pass HDR2
+Used host memory: 0mb, available GPU memory: 5038mb
+Launch 8x8 tiles...
+Tile 0x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+-----
+Mem stats:
+Total: -855
+Alphas: 0
+GI albedos: 64
+GI lightmaps: 3008
+Light data: 0
+Output: 128
+UV GBuffer: 7
+Scene: 4129
+-----
+Tile 1x0...
+Streaming...0
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x0...
+Streaming...1
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x0...
+Streaming...3
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x0...
+Streaming...4
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x0...
+Streaming...6
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x0...
+Streaming...7
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x0...
+Streaming...9
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x1...
+Streaming...10
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x1...
+Streaming...12
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x1...
+Streaming...14
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x1...
+Streaming...15
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 4x1...
+Streaming...17
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 5x1...
+Streaming...18
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 6x1...
+Streaming...20
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 7x1...
+Streaming...21
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 0x2...
+Streaming...23
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 1x2...
+Streaming...25
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 2x2...
+Streaming...26
+npHD
+Launching...
+Used host memory: 0mb, available GPU memory: 1797mb
+Tile 3x2...
+Streaming...1000
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/.uvgblog.txt b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/.uvgblog.txt
new file mode 100644
index 00000000..8c705956
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/.uvgblog.txt
@@ -0,0 +1,758 @@
+2021-11-29
+Rendering UV GBuffer for Trista_LM0 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA82 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA81 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA80 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA79 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA78 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA77 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA76 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA75 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA74 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA73 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA72 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA83 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA71 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA69 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA68 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA67 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA66 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA65 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA64 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA63 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA62 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA61 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA60 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA59 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA70 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA84 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA85 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA86 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA111 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA110 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA109 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA108 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA107 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA106 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA105 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA104 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA103 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA102 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA101 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA100 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA99 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA98 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA97 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA96 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA95 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA94 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA93 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA92 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA91 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA90 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA89 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA88 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA87 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA58 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA57 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA56 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA55 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA25 51
+2021-11-29
+Rendering UV GBuffer for Trista_LM0 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA22 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA21 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA20 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA19 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA18 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA17 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA16 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA15 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA14 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA13 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA23 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA12 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA10 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA9 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA8 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA7 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA6 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA5 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA4 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA3 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA2 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA1 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA11 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA24 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Done
+Done
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA12.lz4" 2 0 12 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA9.lz4" 2 0 14 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA16.lz4" 2 0 7 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA7.lz4" 2 0 16 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA6.lz4" 2 0 17 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA10.lz4" 2 0 13 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA15.lz4" 2 0 8 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA11.lz4" 2 0 23 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA14.lz4" 2 0 9 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA18.lz4" 2 0 5 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA19.lz4" 2 0 4 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA21.lz4" 2 0 2 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA17.lz4" 2 0 6 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA8.lz4" 2 0 15 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA13.lz4" 2 0 10 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA20.lz4" 2 0 3 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA23.lz4" 2 0 11 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA22.lz4" 2 0 1 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA2.lz4" 2 0 21 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA4.lz4" 2 0 19 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA5.lz4" 2 0 18 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA24.lz4" 2 0 24 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA1.lz4" 2 0 22 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LM0.lz4" 2 0 0 0
+Running ftrace fixpos12 "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "uvpos_Trista_LMA3.lz4" 2 0 20 0
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_12" 4 0 12 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_12" 4 0 12 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA12" 4 0 12 comp_12.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_14" 4 0 14 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_14" 4 0 14 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA9" 4 0 14 comp_14.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_7" 4 0 7 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_7" 4 0 7 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA16" 4 0 7 comp_7.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_16" 4 0 16 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_16" 4 0 16 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA7" 4 0 16 comp_16.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_17" 4 0 17 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_17" 4 0 17 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA6" 4 0 17 comp_17.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_13" 4 0 13 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_13" 4 0 13 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA10" 4 0 13 comp_13.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_8" 4 0 8 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_8" 4 0 8 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA15" 4 0 8 comp_8.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_23" 4 0 23 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_23" 4 0 23 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA11" 4 0 23 comp_23.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_9" 4 0 9 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_9" 4 0 9 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA14" 4 0 9 comp_9.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_5" 4 0 5 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_5" 4 0 5 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA18" 4 0 5 comp_5.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_4" 4 0 4 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_4" 4 0 4 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA19" 4 0 4 comp_4.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_2" 4 0 2 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_2" 4 0 2 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA21" 4 0 2 comp_2.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_6" 4 0 6 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_6" 4 0 6 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA17" 4 0 6 comp_6.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_15" 4 0 15 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_15" 4 0 15 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA8" 4 0 15 comp_15.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_10" 4 0 10 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_10" 4 0 10 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA13" 4 0 10 comp_10.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_3" 4 0 3 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_3" 4 0 3 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA20" 4 0 3 comp_3.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA23" 4 0 11 comp_11.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_1" 4 0 1 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_1" 4 0 1 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA22" 4 0 1 comp_1.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_21" 4 0 21 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_21" 4 0 21 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA2" 4 0 21 comp_21.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_19" 4 0 19 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_19" 4 0 19 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA4" 4 0 19 comp_19.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA5" 4 0 18 comp_18.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA24" 4 0 24 comp_24.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA1" 4 0 22 comp_22.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_712658426_0" 4 0 0 lights0.bin
+Running ftrace arealight "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "light_-2025409501_0" 4 0 0 lights1.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LM0" 4 0 0 comp_0.bin
+Running ftrace addmul "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA3" 4 0 20 comp_20.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA12_final" 4 16 12 "gi_Trista_LMA120.bin" "Trista_LMA12_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA9_final" 4 16 14 "gi_Trista_LMA90.bin" "Trista_LMA9_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA16_final" 4 16 7 "gi_Trista_LMA160.bin" "Trista_LMA16_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA7_final" 4 16 16 "gi_Trista_LMA70.bin" "Trista_LMA7_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA6_final" 4 16 17 "gi_Trista_LMA60.bin" "Trista_LMA6_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA10_final" 4 16 13 "gi_Trista_LMA100.bin" "Trista_LMA10_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA15_final" 4 16 8 "gi_Trista_LMA150.bin" "Trista_LMA15_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA11_final" 4 16 23 "gi_Trista_LMA110.bin" "Trista_LMA11_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA14_final" 4 16 9 "gi_Trista_LMA140.bin" "Trista_LMA14_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA18_final" 4 16 5 "gi_Trista_LMA180.bin" "Trista_LMA18_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA19_final" 4 16 4 "gi_Trista_LMA190.bin" "Trista_LMA19_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA21_final" 4 16 2 "gi_Trista_LMA210.bin" "Trista_LMA21_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA17_final" 4 16 6 "gi_Trista_LMA170.bin" "Trista_LMA17_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA8_final" 4 16 15 "gi_Trista_LMA80.bin" "Trista_LMA8_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA13_final" 4 16 10 "gi_Trista_LMA130.bin" "Trista_LMA13_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA20_final" 4 16 3 "gi_Trista_LMA200.bin" "Trista_LMA20_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA23_final" 4 16 11 "gi_Trista_LMA230.bin" "Trista_LMA23_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA22_final" 4 16 1 "gi_Trista_LMA220.bin" "Trista_LMA22_lights_HDR.lz4" vbTraceTex.bin
+Running ftrace texgi "C:\Users\TYLERM~1\AppData\Local\Temp\frender" "Trista_LMA2_final" 4 16 21 "gi_Trista_LMA20.bin" "Trista_LMA2_lights_HDR.lz4" vbTraceTex.bin
+2021-11-30
+Rendering UV GBuffer for Trista_LM0 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA22 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA21 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA20 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA19 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA18 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA17 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA16 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA15 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA14 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA13 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA23 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA12 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA10 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA9 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA8 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA7 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA6 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA5 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA4 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA3 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA2 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA1 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA11 51
+RGBA32F...RGBA8...RGBA8_SRGB...RGBA16F...states...
+Rendering UV normal...
+Rendering faceted UV normal...
+Rendering UV pos...
+Rendering smooth UV pos...
+Rendering UV GBuffer for Trista_LMA24 51
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/NormalsFittingTexture_dds b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/NormalsFittingTexture_dds
new file mode 100644
index 00000000..32297db0
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/NormalsFittingTexture_dds
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/NormalsFittingTexture_dds.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/NormalsFittingTexture_dds.meta
new file mode 100644
index 00000000..c1f57991
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/NormalsFittingTexture_dds.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fad0196ede3a41749af057ec68f43124
+timeCreated: 1531334118
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/OpenImageDenoise.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/OpenImageDenoise.dll
new file mode 100644
index 00000000..cd919307
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/OpenImageDenoise.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/OpenImageDenoise.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/OpenImageDenoise.dll.meta
new file mode 100644
index 00000000..e0450298
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/OpenImageDenoise.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: 4ccddc16f2ea5484dbb20164a60bf488
+timeCreated: 1589355275
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addAO.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addAO.ptx
new file mode 100644
index 00000000..c93e8d92
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addAO.ptx
@@ -0,0 +1,200 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image2[1];
+.global .align 4 .f32 intensity;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9intensityE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9intensityE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9intensityE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9intensityE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9intensityE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .b16 %rs<10>;
+ .reg .f32 %f<15>;
+ .reg .b32 %r<37>;
+ .reg .b64 %rd<39>;
+
+
+ ld.global.v2.u32 {%r13, %r14}, [pixelID];
+ cvt.u64.u32 %rd3, %r13;
+ cvt.u64.u32 %rd4, %r14;
+ mov.u64 %rd37, image;
+ cvta.global.u64 %rd2, %rd37;
+ mov.u32 %r11, 2;
+ mov.u32 %r12, 8;
+ mov.u64 %rd36, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r11, %r12, %rd3, %rd4, %rd36, %rd36);
+ // inline asm
+ ld.u16 %rs1, [%rd1+6];
+ // inline asm
+ { cvt.f32.f16 %f1, %rs1;}
+
+ // inline asm
+ ld.global.v2.u32 {%r17, %r18}, [pixelID];
+ cvt.u64.u32 %rd9, %r17;
+ cvt.u64.u32 %rd10, %r18;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd2, %r11, %r12, %rd9, %rd10, %rd36, %rd36);
+ // inline asm
+ ld.u16 %rs2, [%rd7];
+ // inline asm
+ { cvt.f32.f16 %f2, %rs2;}
+
+ // inline asm
+ ld.global.v2.u32 {%r21, %r22}, [pixelID];
+ cvt.u64.u32 %rd15, %r21;
+ cvt.u64.u32 %rd16, %r22;
+ // inline asm
+ call (%rd13), _rt_buffer_get_64, (%rd2, %r11, %r12, %rd15, %rd16, %rd36, %rd36);
+ // inline asm
+ ld.u16 %rs3, [%rd13+2];
+ // inline asm
+ { cvt.f32.f16 %f3, %rs3;}
+
+ // inline asm
+ ld.global.v2.u32 {%r25, %r26}, [pixelID];
+ cvt.u64.u32 %rd21, %r25;
+ cvt.u64.u32 %rd22, %r26;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd2, %r11, %r12, %rd21, %rd22, %rd36, %rd36);
+ // inline asm
+ ld.u16 %rs4, [%rd19+4];
+ // inline asm
+ { cvt.f32.f16 %f4, %rs4;}
+
+ // inline asm
+ ld.global.v2.u32 {%r29, %r30}, [pixelID];
+ cvt.u64.u32 %rd27, %r29;
+ cvt.u64.u32 %rd28, %r30;
+ mov.u64 %rd38, image2;
+ cvta.global.u64 %rd26, %rd38;
+ mov.u32 %r10, 1;
+ // inline asm
+ call (%rd25), _rt_buffer_get_64, (%rd26, %r11, %r10, %rd27, %rd28, %rd36, %rd36);
+ // inline asm
+ ld.u8 %rs9, [%rd25];
+ cvt.rn.f32.u16 %f9, %rs9;
+ div.rn.f32 %f10, %f9, 0f437F0000;
+ ld.global.f32 %f11, [intensity];
+ add.f32 %f12, %f10, 0fBF800000;
+ fma.rn.f32 %f13, %f11, %f12, 0f3F800000;
+ cvt.sat.f32.f32 %f14, %f13;
+ mul.f32 %f5, %f2, %f14;
+ mul.f32 %f6, %f3, %f14;
+ mul.f32 %f7, %f4, %f14;
+ ld.global.v2.u32 {%r33, %r34}, [pixelID];
+ cvt.u64.u32 %rd33, %r33;
+ cvt.u64.u32 %rd34, %r34;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd2, %r11, %r12, %rd33, %rd34, %rd36, %rd36);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs7, %f7;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs6, %f6;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs5, %f5;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs8, %f1;}
+
+ // inline asm
+ st.v4.u16 [%rd31], {%rs5, %rs6, %rs7, %rs8};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addAO.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addAO.ptx.meta
new file mode 100644
index 00000000..6fda51f9
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addAO.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: aa2c6f245990b69408c255eb48c206eb
+timeCreated: 1534430149
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addDir.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addDir.ptx
new file mode 100644
index 00000000..ef98e4b9
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addDir.ptx
@@ -0,0 +1,327 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image2[1];
+.global .align 1 .b8 imageHDR[1];
+.global .align 1 .b8 imageFinal[1];
+.global .align 4 .f32 DoNormalize;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11DoNormalizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11DoNormalizeE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11DoNormalizeE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11DoNormalizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11DoNormalizeE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<4>;
+ .reg .b16 %rs<20>;
+ .reg .f32 %f<88>;
+ .reg .b32 %r<79>;
+ .reg .b64 %rd<80>;
+
+
+ ld.global.v2.u32 {%r20, %r21}, [pixelID];
+ cvt.u64.u32 %rd4, %r20;
+ cvt.u64.u32 %rd5, %r21;
+ mov.u64 %rd56, imageHDR;
+ cvta.global.u64 %rd3, %rd56;
+ mov.u32 %r18, 2;
+ mov.u32 %r7, 8;
+ mov.u64 %rd55, 0;
+ // inline asm
+ call (%rd2), _rt_buffer_get_64, (%rd3, %r18, %r7, %rd4, %rd5, %rd55, %rd55);
+ // inline asm
+ ld.u16 %rs2, [%rd2];
+ // inline asm
+ { cvt.f32.f16 %f17, %rs2;}
+
+ // inline asm
+ ld.global.v2.u32 {%r24, %r25}, [pixelID];
+ cvt.u64.u32 %rd10, %r24;
+ cvt.u64.u32 %rd11, %r25;
+ // inline asm
+ call (%rd8), _rt_buffer_get_64, (%rd3, %r18, %r7, %rd10, %rd11, %rd55, %rd55);
+ // inline asm
+ ld.u16 %rs3, [%rd8+2];
+ // inline asm
+ { cvt.f32.f16 %f18, %rs3;}
+
+ // inline asm
+ ld.global.v2.u32 {%r28, %r29}, [pixelID];
+ cvt.u64.u32 %rd16, %r28;
+ cvt.u64.u32 %rd17, %r29;
+ // inline asm
+ call (%rd14), _rt_buffer_get_64, (%rd3, %r18, %r7, %rd16, %rd17, %rd55, %rd55);
+ // inline asm
+ ld.u16 %rs4, [%rd14+4];
+ // inline asm
+ { cvt.f32.f16 %f19, %rs4;}
+
+ // inline asm
+ mul.f32 %f20, %f18, 0f3F372474;
+ fma.rn.f32 %f21, %f17, 0f3E59999A, %f20;
+ fma.rn.f32 %f22, %f19, 0f3D93A92A, %f21;
+ ld.global.v2.u32 {%r32, %r33}, [pixelID];
+ cvt.u64.u32 %rd22, %r32;
+ cvt.u64.u32 %rd23, %r33;
+ mov.u64 %rd57, image2;
+ cvta.global.u64 %rd21, %rd57;
+ mov.u32 %r19, 16;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r18, %r19, %rd22, %rd23, %rd55, %rd55);
+ // inline asm
+ ld.v4.f32 {%f23, %f24, %f25, %f26}, [%rd20];
+ ld.global.v2.u32 {%r36, %r37}, [pixelID];
+ cvt.u64.u32 %rd28, %r36;
+ cvt.u64.u32 %rd29, %r37;
+ mov.u64 %rd58, image;
+ cvta.global.u64 %rd27, %rd58;
+ mov.u32 %r17, 4;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r18, %r17, %rd28, %rd29, %rd55, %rd55);
+ // inline asm
+ ld.u8 %rs5, [%rd26];
+ cvt.rn.f32.u16 %f30, %rs5;
+ div.rn.f32 %f31, %f30, 0f437F0000;
+ fma.rn.f32 %f32, %f31, 0f40000000, 0fBF800000;
+ ld.global.v2.u32 {%r40, %r41}, [pixelID];
+ cvt.u64.u32 %rd34, %r40;
+ cvt.u64.u32 %rd35, %r41;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd27, %r18, %r17, %rd34, %rd35, %rd55, %rd55);
+ // inline asm
+ ld.u8 %rs6, [%rd32+1];
+ cvt.rn.f32.u16 %f33, %rs6;
+ div.rn.f32 %f34, %f33, 0f437F0000;
+ fma.rn.f32 %f35, %f34, 0f40000000, 0fBF800000;
+ ld.global.v2.u32 {%r44, %r45}, [pixelID];
+ cvt.u64.u32 %rd40, %r44;
+ cvt.u64.u32 %rd41, %r45;
+ // inline asm
+ call (%rd38), _rt_buffer_get_64, (%rd27, %r18, %r17, %rd40, %rd41, %rd55, %rd55);
+ // inline asm
+ ld.u8 %rs7, [%rd38+2];
+ cvt.rn.f32.u16 %f36, %rs7;
+ div.rn.f32 %f37, %f36, 0f437F0000;
+ fma.rn.f32 %f38, %f37, 0f40000000, 0fBF800000;
+ mul.f32 %f39, %f35, %f35;
+ fma.rn.f32 %f40, %f32, %f32, %f39;
+ fma.rn.f32 %f41, %f38, %f38, %f40;
+ sqrt.rn.f32 %f42, %f41;
+ rcp.rn.f32 %f43, %f42;
+ mul.f32 %f44, %f32, %f43;
+ mul.f32 %f45, %f35, %f43;
+ mul.f32 %f46, %f38, %f43;
+ fma.rn.f32 %f1, %f22, %f44, %f23;
+ fma.rn.f32 %f2, %f22, %f45, %f24;
+ fma.rn.f32 %f3, %f22, %f46, %f25;
+ ld.global.v2.u32 {%r48, %r49}, [pixelID];
+ cvt.u64.u32 %rd46, %r48;
+ cvt.u64.u32 %rd47, %r49;
+ // inline asm
+ call (%rd44), _rt_buffer_get_64, (%rd27, %r18, %r17, %rd46, %rd47, %rd55, %rd55);
+ // inline asm
+ ld.u8 %rs8, [%rd44+3];
+ cvt.rn.f32.u16 %f47, %rs8;
+ div.rn.f32 %f48, %f47, 0f437F0000;
+ ld.global.v2.u32 {%r52, %r53}, [pixelID];
+ cvt.u64.u32 %rd52, %r52;
+ cvt.u64.u32 %rd53, %r53;
+ // inline asm
+ call (%rd50), _rt_buffer_get_64, (%rd21, %r18, %r19, %rd52, %rd53, %rd55, %rd55);
+ // inline asm
+ ld.f32 %f49, [%rd50+12];
+ min.f32 %f87, %f48, %f49;
+ ld.global.f32 %f50, [DoNormalize];
+ setp.gt.f32 %p1, %f50, 0f3F000000;
+ @%p1 bra BB0_2;
+ bra.uni BB0_1;
+
+BB0_2:
+ mul.f32 %f54, %f2, %f2;
+ fma.rn.f32 %f55, %f1, %f1, %f54;
+ fma.rn.f32 %f56, %f3, %f3, %f55;
+ sqrt.rn.f32 %f57, %f56;
+ rcp.rn.f32 %f58, %f57;
+ mul.f32 %f5, %f1, %f58;
+ mul.f32 %f6, %f2, %f58;
+ mul.f32 %f7, %f3, %f58;
+ ld.global.v2.u32 {%r64, %r65}, [pixelID];
+ cvt.u64.u32 %rd68, %r64;
+ cvt.u64.u32 %rd69, %r65;
+ mov.u64 %rd72, uvnormal;
+ cvta.global.u64 %rd67, %rd72;
+ // inline asm
+ call (%rd66), _rt_buffer_get_64, (%rd67, %r18, %r17, %rd68, %rd69, %rd55, %rd55);
+ // inline asm
+ ld.u32 %r1, [%rd66];
+ shr.u32 %r68, %r1, 16;
+ cvt.u16.u32 %rs1, %r68;
+ and.b16 %rs9, %rs1, 255;
+ cvt.u16.u32 %rs10, %r1;
+ or.b16 %rs11, %rs10, %rs9;
+ setp.eq.s16 %p2, %rs11, 0;
+ mov.f32 %f84, 0f00000000;
+ mov.f32 %f85, %f84;
+ mov.f32 %f86, %f84;
+ @%p2 bra BB0_4;
+
+ ld.u8 %rs12, [%rd66+1];
+ and.b16 %rs14, %rs10, 255;
+ cvt.rn.f32.u16 %f59, %rs14;
+ div.rn.f32 %f60, %f59, 0f437F0000;
+ fma.rn.f32 %f61, %f60, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f62, %rs12;
+ div.rn.f32 %f63, %f62, 0f437F0000;
+ fma.rn.f32 %f64, %f63, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f65, %rs9;
+ div.rn.f32 %f66, %f65, 0f437F0000;
+ fma.rn.f32 %f67, %f66, 0f40000000, 0fBF800000;
+ mul.f32 %f68, %f64, %f64;
+ fma.rn.f32 %f69, %f61, %f61, %f68;
+ fma.rn.f32 %f70, %f67, %f67, %f69;
+ sqrt.rn.f32 %f71, %f70;
+ rcp.rn.f32 %f72, %f71;
+ mul.f32 %f84, %f61, %f72;
+ mul.f32 %f85, %f64, %f72;
+ mul.f32 %f86, %f67, %f72;
+
+BB0_4:
+ mul.f32 %f73, %f6, %f85;
+ fma.rn.f32 %f74, %f5, %f84, %f73;
+ fma.rn.f32 %f14, %f7, %f86, %f74;
+ setp.leu.f32 %p3, %f87, 0f00000000;
+ @%p3 bra BB0_6;
+
+ fma.rn.f32 %f75, %f14, 0f3F000000, 0f3F000000;
+ mov.f32 %f76, 0f3B808081;
+ max.f32 %f87, %f75, %f76;
+
+BB0_6:
+ ld.global.v2.u32 {%r71, %r72}, [pixelID];
+ cvt.u64.u32 %rd75, %r71;
+ cvt.u64.u32 %rd76, %r72;
+ mov.u64 %rd79, imageFinal;
+ cvta.global.u64 %rd74, %rd79;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r18, %r17, %rd75, %rd76, %rd55, %rd55);
+ // inline asm
+ fma.rn.f32 %f77, %f5, 0f3F000000, 0f3F000000;
+ mul.f32 %f78, %f77, 0f437F0000;
+ cvt.rzi.u32.f32 %r75, %f78;
+ fma.rn.f32 %f79, %f6, 0f3F000000, 0f3F000000;
+ mul.f32 %f80, %f79, 0f437F0000;
+ cvt.rzi.u32.f32 %r76, %f80;
+ fma.rn.f32 %f81, %f7, 0f3F000000, 0f3F000000;
+ mul.f32 %f82, %f81, 0f437F0000;
+ cvt.rzi.u32.f32 %r77, %f82;
+ mul.f32 %f83, %f87, 0f437F0000;
+ cvt.rzi.u32.f32 %r78, %f83;
+ cvt.u16.u32 %rs16, %r78;
+ cvt.u16.u32 %rs17, %r77;
+ cvt.u16.u32 %rs18, %r76;
+ cvt.u16.u32 %rs19, %r75;
+ st.v4.u8 [%rd73], {%rs19, %rs18, %rs17, %rs16};
+ bra.uni BB0_7;
+
+BB0_1:
+ ld.global.v2.u32 {%r58, %r59}, [pixelID];
+ cvt.u64.u32 %rd61, %r58;
+ cvt.u64.u32 %rd62, %r59;
+ // inline asm
+ call (%rd59), _rt_buffer_get_64, (%rd21, %r18, %r19, %rd61, %rd62, %rd55, %rd55);
+ // inline asm
+ st.v4.f32 [%rd59], {%f1, %f2, %f3, %f87};
+
+BB0_7:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addDir.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addDir.ptx.meta
new file mode 100644
index 00000000..496bc9fe
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addDir.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2610b17ae27a5bb4493e1491e8e5dc4d
+timeCreated: 1537442170
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalf.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalf.ptx
new file mode 100644
index 00000000..ca40514f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalf.ptx
@@ -0,0 +1,228 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image2[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .b16 %rs<13>;
+ .reg .f32 %f<16>;
+ .reg .b32 %r<55>;
+ .reg .b64 %rd<57>;
+
+
+ ld.global.v2.u32 {%r19, %r20}, [pixelID];
+ cvt.u64.u32 %rd3, %r19;
+ cvt.u64.u32 %rd4, %r20;
+ mov.u64 %rd55, image;
+ cvta.global.u64 %rd2, %rd55;
+ mov.u32 %r17, 2;
+ mov.u32 %r18, 8;
+ mov.u64 %rd54, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r17, %r18, %rd3, %rd4, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs1, [%rd1+6];
+ // inline asm
+ { cvt.f32.f16 %f1, %rs1;}
+
+ // inline asm
+ ld.global.v2.u32 {%r23, %r24}, [pixelID];
+ cvt.u64.u32 %rd9, %r23;
+ cvt.u64.u32 %rd10, %r24;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd2, %r17, %r18, %rd9, %rd10, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs2, [%rd7];
+ // inline asm
+ { cvt.f32.f16 %f2, %rs2;}
+
+ // inline asm
+ ld.global.v2.u32 {%r27, %r28}, [pixelID];
+ cvt.u64.u32 %rd15, %r27;
+ cvt.u64.u32 %rd16, %r28;
+ // inline asm
+ call (%rd13), _rt_buffer_get_64, (%rd2, %r17, %r18, %rd15, %rd16, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs3, [%rd13+2];
+ // inline asm
+ { cvt.f32.f16 %f3, %rs3;}
+
+ // inline asm
+ ld.global.v2.u32 {%r31, %r32}, [pixelID];
+ cvt.u64.u32 %rd21, %r31;
+ cvt.u64.u32 %rd22, %r32;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd2, %r17, %r18, %rd21, %rd22, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs4, [%rd19+4];
+ // inline asm
+ { cvt.f32.f16 %f4, %rs4;}
+
+ // inline asm
+ ld.global.v2.u32 {%r35, %r36}, [pixelID];
+ cvt.u64.u32 %rd27, %r35;
+ cvt.u64.u32 %rd28, %r36;
+ mov.u64 %rd56, image2;
+ cvta.global.u64 %rd26, %rd56;
+ // inline asm
+ call (%rd25), _rt_buffer_get_64, (%rd26, %r17, %r18, %rd27, %rd28, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs5, [%rd25+6];
+ // inline asm
+ { cvt.f32.f16 %f5, %rs5;}
+
+ // inline asm
+ ld.global.v2.u32 {%r39, %r40}, [pixelID];
+ cvt.u64.u32 %rd33, %r39;
+ cvt.u64.u32 %rd34, %r40;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd26, %r17, %r18, %rd33, %rd34, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs6, [%rd31];
+ // inline asm
+ { cvt.f32.f16 %f6, %rs6;}
+
+ // inline asm
+ ld.global.v2.u32 {%r43, %r44}, [pixelID];
+ cvt.u64.u32 %rd39, %r43;
+ cvt.u64.u32 %rd40, %r44;
+ // inline asm
+ call (%rd37), _rt_buffer_get_64, (%rd26, %r17, %r18, %rd39, %rd40, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs7, [%rd37+2];
+ // inline asm
+ { cvt.f32.f16 %f7, %rs7;}
+
+ // inline asm
+ ld.global.v2.u32 {%r47, %r48}, [pixelID];
+ cvt.u64.u32 %rd45, %r47;
+ cvt.u64.u32 %rd46, %r48;
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd26, %r17, %r18, %rd45, %rd46, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs8, [%rd43+4];
+ // inline asm
+ { cvt.f32.f16 %f8, %rs8;}
+
+ // inline asm
+ add.f32 %f13, %f2, %f6;
+ add.f32 %f14, %f3, %f7;
+ add.f32 %f15, %f4, %f8;
+ mul.f32 %f9, %f1, %f13;
+ mul.f32 %f10, %f1, %f14;
+ mul.f32 %f11, %f1, %f15;
+ min.f32 %f12, %f1, %f5;
+ ld.global.v2.u32 {%r51, %r52}, [pixelID];
+ cvt.u64.u32 %rd51, %r51;
+ cvt.u64.u32 %rd52, %r52;
+ // inline asm
+ call (%rd49), _rt_buffer_get_64, (%rd26, %r17, %r18, %rd51, %rd52, %rd54, %rd54);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs12, %f12;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs11, %f11;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs10, %f10;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs9, %f9;}
+
+ // inline asm
+ st.v4.u16 [%rd49], {%rs9, %rs10, %rs11, %rs12};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalf.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalf.ptx.meta
new file mode 100644
index 00000000..d3776bd1
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalf.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e11fe20f1d7fb5c4e8a3e879f3aef436
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalfSeparateIndirect.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalfSeparateIndirect.ptx
new file mode 100644
index 00000000..c7fabfc6
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalfSeparateIndirect.ptx
@@ -0,0 +1,290 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image2[1];
+.global .align 1 .b8 imageIndirect[1];
+.global .align 4 .f32 indirectIntensity;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo17indirectIntensityE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename17indirectIntensityE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum17indirectIntensityE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic17indirectIntensityE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation17indirectIntensityE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .b16 %rs<19>;
+ .reg .f32 %f<20>;
+ .reg .b32 %r<79>;
+ .reg .b64 %rd<82>;
+
+
+ ld.global.v2.u32 {%r27, %r28}, [pixelID];
+ cvt.u64.u32 %rd3, %r27;
+ cvt.u64.u32 %rd4, %r28;
+ mov.u64 %rd79, image;
+ cvta.global.u64 %rd2, %rd79;
+ mov.u32 %r25, 2;
+ mov.u32 %r26, 8;
+ mov.u64 %rd78, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r25, %r26, %rd3, %rd4, %rd78, %rd78);
+ // inline asm
+ ld.u16 %rs1, [%rd1+6];
+ // inline asm
+ { cvt.f32.f16 %f1, %rs1;}
+
+ // inline asm
+ ld.global.v2.u32 {%r31, %r32}, [pixelID];
+ cvt.u64.u32 %rd9, %r31;
+ cvt.u64.u32 %rd10, %r32;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd2, %r25, %r26, %rd9, %rd10, %rd78, %rd78);
+ // inline asm
+ ld.u16 %rs2, [%rd7];
+ // inline asm
+ { cvt.f32.f16 %f2, %rs2;}
+
+ // inline asm
+ ld.global.v2.u32 {%r35, %r36}, [pixelID];
+ cvt.u64.u32 %rd15, %r35;
+ cvt.u64.u32 %rd16, %r36;
+ // inline asm
+ call (%rd13), _rt_buffer_get_64, (%rd2, %r25, %r26, %rd15, %rd16, %rd78, %rd78);
+ // inline asm
+ ld.u16 %rs3, [%rd13+2];
+ // inline asm
+ { cvt.f32.f16 %f3, %rs3;}
+
+ // inline asm
+ ld.global.v2.u32 {%r39, %r40}, [pixelID];
+ cvt.u64.u32 %rd21, %r39;
+ cvt.u64.u32 %rd22, %r40;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd2, %r25, %r26, %rd21, %rd22, %rd78, %rd78);
+ // inline asm
+ ld.u16 %rs4, [%rd19+4];
+ // inline asm
+ { cvt.f32.f16 %f4, %rs4;}
+
+ // inline asm
+ ld.global.v2.u32 {%r43, %r44}, [pixelID];
+ cvt.u64.u32 %rd27, %r43;
+ cvt.u64.u32 %rd28, %r44;
+ mov.u64 %rd80, image2;
+ cvta.global.u64 %rd26, %rd80;
+ // inline asm
+ call (%rd25), _rt_buffer_get_64, (%rd26, %r25, %r26, %rd27, %rd28, %rd78, %rd78);
+ // inline asm
+ ld.u16 %rs5, [%rd25+6];
+ // inline asm
+ { cvt.f32.f16 %f5, %rs5;}
+
+ // inline asm
+ ld.global.v2.u32 {%r47, %r48}, [pixelID];
+ cvt.u64.u32 %rd33, %r47;
+ cvt.u64.u32 %rd34, %r48;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd26, %r25, %r26, %rd33, %rd34, %rd78, %rd78);
+ // inline asm
+ ld.u16 %rs6, [%rd31];
+ // inline asm
+ { cvt.f32.f16 %f6, %rs6;}
+
+ // inline asm
+ ld.global.v2.u32 {%r51, %r52}, [pixelID];
+ cvt.u64.u32 %rd39, %r51;
+ cvt.u64.u32 %rd40, %r52;
+ // inline asm
+ call (%rd37), _rt_buffer_get_64, (%rd26, %r25, %r26, %rd39, %rd40, %rd78, %rd78);
+ // inline asm
+ ld.u16 %rs7, [%rd37+2];
+ // inline asm
+ { cvt.f32.f16 %f7, %rs7;}
+
+ // inline asm
+ ld.global.v2.u32 {%r55, %r56}, [pixelID];
+ cvt.u64.u32 %rd45, %r55;
+ cvt.u64.u32 %rd46, %r56;
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd26, %r25, %r26, %rd45, %rd46, %rd78, %rd78);
+ // inline asm
+ ld.u16 %rs8, [%rd43+4];
+ // inline asm
+ { cvt.f32.f16 %f8, %rs8;}
+
+ // inline asm
+ add.f32 %f9, %f2, %f6;
+ add.f32 %f10, %f3, %f7;
+ add.f32 %f11, %f4, %f8;
+ min.f32 %f12, %f1, %f5;
+ ld.global.v2.u32 {%r59, %r60}, [pixelID];
+ cvt.u64.u32 %rd51, %r59;
+ cvt.u64.u32 %rd52, %r60;
+ // inline asm
+ call (%rd49), _rt_buffer_get_64, (%rd26, %r25, %r26, %rd51, %rd52, %rd78, %rd78);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs11, %f11;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs10, %f10;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs9, %f9;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs12, %f12;}
+
+ // inline asm
+ st.v4.u16 [%rd49], {%rs9, %rs10, %rs11, %rs12};
+ ld.global.v2.u32 {%r63, %r64}, [pixelID];
+ cvt.u64.u32 %rd57, %r63;
+ cvt.u64.u32 %rd58, %r64;
+ mov.u64 %rd81, imageIndirect;
+ cvta.global.u64 %rd56, %rd81;
+ // inline asm
+ call (%rd55), _rt_buffer_get_64, (%rd56, %r25, %r26, %rd57, %rd58, %rd78, %rd78);
+ // inline asm
+ ld.u16 %rs13, [%rd55];
+ // inline asm
+ { cvt.f32.f16 %f13, %rs13;}
+
+ // inline asm
+ ld.global.v2.u32 {%r67, %r68}, [pixelID];
+ cvt.u64.u32 %rd63, %r67;
+ cvt.u64.u32 %rd64, %r68;
+ // inline asm
+ call (%rd61), _rt_buffer_get_64, (%rd56, %r25, %r26, %rd63, %rd64, %rd78, %rd78);
+ // inline asm
+ ld.u16 %rs14, [%rd61+2];
+ // inline asm
+ { cvt.f32.f16 %f14, %rs14;}
+
+ // inline asm
+ ld.global.v2.u32 {%r71, %r72}, [pixelID];
+ cvt.u64.u32 %rd69, %r71;
+ cvt.u64.u32 %rd70, %r72;
+ // inline asm
+ call (%rd67), _rt_buffer_get_64, (%rd56, %r25, %r26, %rd69, %rd70, %rd78, %rd78);
+ // inline asm
+ ld.u16 %rs15, [%rd67+4];
+ // inline asm
+ { cvt.f32.f16 %f15, %rs15;}
+
+ // inline asm
+ ld.global.f32 %f19, [indirectIntensity];
+ fma.rn.f32 %f16, %f2, %f19, %f13;
+ fma.rn.f32 %f17, %f3, %f19, %f14;
+ fma.rn.f32 %f18, %f4, %f19, %f15;
+ ld.global.v2.u32 {%r75, %r76}, [pixelID];
+ cvt.u64.u32 %rd75, %r75;
+ cvt.u64.u32 %rd76, %r76;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd56, %r25, %r26, %rd75, %rd76, %rd78, %rd78);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs18, %f18;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs17, %f17;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs16, %f16;}
+
+ // inline asm
+ st.v4.u16 [%rd73], {%rs16, %rs17, %rs18, %rs12};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalfSeparateIndirect.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalfSeparateIndirect.ptx.meta
new file mode 100644
index 00000000..84146528
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addHalfSeparateIndirect.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3eeb7fb131fab904397234e1258187d6
+timeCreated: 1536238249
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addSH.ptx
new file mode 100644
index 00000000..8dcce319
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addSH.ptx
@@ -0,0 +1,666 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 inputImageL0[1];
+.global .align 1 .b8 inputImageL1x[1];
+.global .align 1 .b8 inputImageL1y[1];
+.global .align 1 .b8 inputImageL1z[1];
+.global .align 1 .b8 outputImageL0[1];
+.global .align 1 .b8 outputImageL1x[1];
+.global .align 1 .b8 outputImageL1y[1];
+.global .align 1 .b8 outputImageL1z[1];
+.global .align 1 .b8 packedImageL1x[1];
+.global .align 1 .b8 packedImageL1y[1];
+.global .align 1 .b8 packedImageL1z[1];
+.global .align 4 .f32 DoPack;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6DoPackE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6DoPackE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6DoPackE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic6DoPackE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6DoPackE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<2>;
+ .reg .b16 %rs<51>;
+ .reg .f32 %f<132>;
+ .reg .b32 %r<209>;
+ .reg .b64 %rd<213>;
+
+
+ ld.global.v2.u32 {%r55, %r56}, [pixelID];
+ cvt.u64.u32 %rd3, %r55;
+ cvt.u64.u32 %rd4, %r56;
+ mov.u64 %rd163, inputImageL0;
+ cvta.global.u64 %rd2, %rd163;
+ mov.u32 %r53, 2;
+ mov.u32 %r54, 8;
+ mov.u64 %rd162, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r53, %r54, %rd3, %rd4, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs2, [%rd1];
+ // inline asm
+ { cvt.f32.f16 %f11, %rs2;}
+
+ // inline asm
+ ld.global.v2.u32 {%r59, %r60}, [pixelID];
+ cvt.u64.u32 %rd9, %r59;
+ cvt.u64.u32 %rd10, %r60;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd2, %r53, %r54, %rd9, %rd10, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs3, [%rd7+2];
+ // inline asm
+ { cvt.f32.f16 %f12, %rs3;}
+
+ // inline asm
+ ld.global.v2.u32 {%r63, %r64}, [pixelID];
+ cvt.u64.u32 %rd15, %r63;
+ cvt.u64.u32 %rd16, %r64;
+ // inline asm
+ call (%rd13), _rt_buffer_get_64, (%rd2, %r53, %r54, %rd15, %rd16, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs4, [%rd13+4];
+ // inline asm
+ { cvt.f32.f16 %f13, %rs4;}
+
+ // inline asm
+ ld.global.v2.u32 {%r67, %r68}, [pixelID];
+ cvt.u64.u32 %rd21, %r67;
+ cvt.u64.u32 %rd22, %r68;
+ mov.u64 %rd164, inputImageL1x;
+ cvta.global.u64 %rd20, %rd164;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd20, %r53, %r54, %rd21, %rd22, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs5, [%rd19];
+ // inline asm
+ { cvt.f32.f16 %f14, %rs5;}
+
+ // inline asm
+ ld.global.v2.u32 {%r71, %r72}, [pixelID];
+ cvt.u64.u32 %rd27, %r71;
+ cvt.u64.u32 %rd28, %r72;
+ // inline asm
+ call (%rd25), _rt_buffer_get_64, (%rd20, %r53, %r54, %rd27, %rd28, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs6, [%rd25+2];
+ // inline asm
+ { cvt.f32.f16 %f15, %rs6;}
+
+ // inline asm
+ ld.global.v2.u32 {%r75, %r76}, [pixelID];
+ cvt.u64.u32 %rd33, %r75;
+ cvt.u64.u32 %rd34, %r76;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd20, %r53, %r54, %rd33, %rd34, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs7, [%rd31+4];
+ // inline asm
+ { cvt.f32.f16 %f16, %rs7;}
+
+ // inline asm
+ fma.rn.f32 %f41, %f14, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f42, %f15, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f43, %f16, 0f40000000, 0fBF800000;
+ ld.global.v2.u32 {%r79, %r80}, [pixelID];
+ cvt.u64.u32 %rd39, %r79;
+ cvt.u64.u32 %rd40, %r80;
+ mov.u64 %rd165, inputImageL1y;
+ cvta.global.u64 %rd38, %rd165;
+ // inline asm
+ call (%rd37), _rt_buffer_get_64, (%rd38, %r53, %r54, %rd39, %rd40, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs8, [%rd37];
+ // inline asm
+ { cvt.f32.f16 %f17, %rs8;}
+
+ // inline asm
+ ld.global.v2.u32 {%r83, %r84}, [pixelID];
+ cvt.u64.u32 %rd45, %r83;
+ cvt.u64.u32 %rd46, %r84;
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd38, %r53, %r54, %rd45, %rd46, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs9, [%rd43+2];
+ // inline asm
+ { cvt.f32.f16 %f18, %rs9;}
+
+ // inline asm
+ ld.global.v2.u32 {%r87, %r88}, [pixelID];
+ cvt.u64.u32 %rd51, %r87;
+ cvt.u64.u32 %rd52, %r88;
+ // inline asm
+ call (%rd49), _rt_buffer_get_64, (%rd38, %r53, %r54, %rd51, %rd52, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs10, [%rd49+4];
+ // inline asm
+ { cvt.f32.f16 %f19, %rs10;}
+
+ // inline asm
+ fma.rn.f32 %f44, %f17, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f45, %f18, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f46, %f19, 0f40000000, 0fBF800000;
+ ld.global.v2.u32 {%r91, %r92}, [pixelID];
+ cvt.u64.u32 %rd57, %r91;
+ cvt.u64.u32 %rd58, %r92;
+ mov.u64 %rd166, inputImageL1z;
+ cvta.global.u64 %rd56, %rd166;
+ // inline asm
+ call (%rd55), _rt_buffer_get_64, (%rd56, %r53, %r54, %rd57, %rd58, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs11, [%rd55];
+ // inline asm
+ { cvt.f32.f16 %f20, %rs11;}
+
+ // inline asm
+ ld.global.v2.u32 {%r95, %r96}, [pixelID];
+ cvt.u64.u32 %rd63, %r95;
+ cvt.u64.u32 %rd64, %r96;
+ // inline asm
+ call (%rd61), _rt_buffer_get_64, (%rd56, %r53, %r54, %rd63, %rd64, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs12, [%rd61+2];
+ // inline asm
+ { cvt.f32.f16 %f21, %rs12;}
+
+ // inline asm
+ ld.global.v2.u32 {%r99, %r100}, [pixelID];
+ cvt.u64.u32 %rd69, %r99;
+ cvt.u64.u32 %rd70, %r100;
+ // inline asm
+ call (%rd67), _rt_buffer_get_64, (%rd56, %r53, %r54, %rd69, %rd70, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs13, [%rd67+4];
+ // inline asm
+ { cvt.f32.f16 %f22, %rs13;}
+
+ // inline asm
+ fma.rn.f32 %f47, %f20, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f48, %f21, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f49, %f22, 0f40000000, 0fBF800000;
+ ld.global.v2.u32 {%r103, %r104}, [pixelID];
+ cvt.u64.u32 %rd75, %r103;
+ cvt.u64.u32 %rd76, %r104;
+ mov.u64 %rd167, outputImageL0;
+ cvta.global.u64 %rd74, %rd167;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r53, %r54, %rd75, %rd76, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs14, [%rd73];
+ // inline asm
+ { cvt.f32.f16 %f23, %rs14;}
+
+ // inline asm
+ ld.global.v2.u32 {%r107, %r108}, [pixelID];
+ cvt.u64.u32 %rd81, %r107;
+ cvt.u64.u32 %rd82, %r108;
+ // inline asm
+ call (%rd79), _rt_buffer_get_64, (%rd74, %r53, %r54, %rd81, %rd82, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs15, [%rd79+2];
+ // inline asm
+ { cvt.f32.f16 %f24, %rs15;}
+
+ // inline asm
+ ld.global.v2.u32 {%r111, %r112}, [pixelID];
+ cvt.u64.u32 %rd87, %r111;
+ cvt.u64.u32 %rd88, %r112;
+ // inline asm
+ call (%rd85), _rt_buffer_get_64, (%rd74, %r53, %r54, %rd87, %rd88, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs16, [%rd85+4];
+ // inline asm
+ { cvt.f32.f16 %f25, %rs16;}
+
+ // inline asm
+ ld.global.v2.u32 {%r115, %r116}, [pixelID];
+ cvt.u64.u32 %rd93, %r115;
+ cvt.u64.u32 %rd94, %r116;
+ mov.u64 %rd168, outputImageL1x;
+ cvta.global.u64 %rd92, %rd168;
+ // inline asm
+ call (%rd91), _rt_buffer_get_64, (%rd92, %r53, %r54, %rd93, %rd94, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs17, [%rd91];
+ // inline asm
+ { cvt.f32.f16 %f26, %rs17;}
+
+ // inline asm
+ ld.global.v2.u32 {%r119, %r120}, [pixelID];
+ cvt.u64.u32 %rd99, %r119;
+ cvt.u64.u32 %rd100, %r120;
+ // inline asm
+ call (%rd97), _rt_buffer_get_64, (%rd92, %r53, %r54, %rd99, %rd100, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs18, [%rd97+2];
+ // inline asm
+ { cvt.f32.f16 %f27, %rs18;}
+
+ // inline asm
+ ld.global.v2.u32 {%r123, %r124}, [pixelID];
+ cvt.u64.u32 %rd105, %r123;
+ cvt.u64.u32 %rd106, %r124;
+ // inline asm
+ call (%rd103), _rt_buffer_get_64, (%rd92, %r53, %r54, %rd105, %rd106, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs19, [%rd103+4];
+ // inline asm
+ { cvt.f32.f16 %f28, %rs19;}
+
+ // inline asm
+ fma.rn.f32 %f50, %f26, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f51, %f27, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f52, %f28, 0f40000000, 0fBF800000;
+ mul.f32 %f53, %f23, %f50;
+ mul.f32 %f54, %f24, %f51;
+ mul.f32 %f55, %f25, %f52;
+ ld.global.v2.u32 {%r127, %r128}, [pixelID];
+ cvt.u64.u32 %rd111, %r127;
+ cvt.u64.u32 %rd112, %r128;
+ mov.u64 %rd169, outputImageL1y;
+ cvta.global.u64 %rd110, %rd169;
+ // inline asm
+ call (%rd109), _rt_buffer_get_64, (%rd110, %r53, %r54, %rd111, %rd112, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs20, [%rd109];
+ // inline asm
+ { cvt.f32.f16 %f29, %rs20;}
+
+ // inline asm
+ ld.global.v2.u32 {%r131, %r132}, [pixelID];
+ cvt.u64.u32 %rd117, %r131;
+ cvt.u64.u32 %rd118, %r132;
+ // inline asm
+ call (%rd115), _rt_buffer_get_64, (%rd110, %r53, %r54, %rd117, %rd118, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs21, [%rd115+2];
+ // inline asm
+ { cvt.f32.f16 %f30, %rs21;}
+
+ // inline asm
+ ld.global.v2.u32 {%r135, %r136}, [pixelID];
+ cvt.u64.u32 %rd123, %r135;
+ cvt.u64.u32 %rd124, %r136;
+ // inline asm
+ call (%rd121), _rt_buffer_get_64, (%rd110, %r53, %r54, %rd123, %rd124, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs22, [%rd121+4];
+ // inline asm
+ { cvt.f32.f16 %f31, %rs22;}
+
+ // inline asm
+ fma.rn.f32 %f56, %f29, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f57, %f30, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f58, %f31, 0f40000000, 0fBF800000;
+ mul.f32 %f59, %f23, %f56;
+ mul.f32 %f60, %f24, %f57;
+ mul.f32 %f61, %f25, %f58;
+ ld.global.v2.u32 {%r139, %r140}, [pixelID];
+ cvt.u64.u32 %rd129, %r139;
+ cvt.u64.u32 %rd130, %r140;
+ mov.u64 %rd170, outputImageL1z;
+ cvta.global.u64 %rd128, %rd170;
+ // inline asm
+ call (%rd127), _rt_buffer_get_64, (%rd128, %r53, %r54, %rd129, %rd130, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs23, [%rd127];
+ // inline asm
+ { cvt.f32.f16 %f32, %rs23;}
+
+ // inline asm
+ ld.global.v2.u32 {%r143, %r144}, [pixelID];
+ cvt.u64.u32 %rd135, %r143;
+ cvt.u64.u32 %rd136, %r144;
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd128, %r53, %r54, %rd135, %rd136, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs24, [%rd133+2];
+ // inline asm
+ { cvt.f32.f16 %f33, %rs24;}
+
+ // inline asm
+ ld.global.v2.u32 {%r147, %r148}, [pixelID];
+ cvt.u64.u32 %rd141, %r147;
+ cvt.u64.u32 %rd142, %r148;
+ // inline asm
+ call (%rd139), _rt_buffer_get_64, (%rd128, %r53, %r54, %rd141, %rd142, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs25, [%rd139+4];
+ // inline asm
+ { cvt.f32.f16 %f34, %rs25;}
+
+ // inline asm
+ fma.rn.f32 %f62, %f32, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f63, %f33, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f64, %f34, 0f40000000, 0fBF800000;
+ mul.f32 %f65, %f23, %f62;
+ mul.f32 %f66, %f24, %f63;
+ mul.f32 %f67, %f25, %f64;
+ ld.global.v2.u32 {%r151, %r152}, [pixelID];
+ cvt.u64.u32 %rd147, %r151;
+ cvt.u64.u32 %rd148, %r152;
+ // inline asm
+ call (%rd145), _rt_buffer_get_64, (%rd2, %r53, %r54, %rd147, %rd148, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs26, [%rd145+6];
+ // inline asm
+ { cvt.f32.f16 %f35, %rs26;}
+
+ // inline asm
+ ld.global.v2.u32 {%r155, %r156}, [pixelID];
+ cvt.u64.u32 %rd153, %r155;
+ cvt.u64.u32 %rd154, %r156;
+ // inline asm
+ call (%rd151), _rt_buffer_get_64, (%rd74, %r53, %r54, %rd153, %rd154, %rd162, %rd162);
+ // inline asm
+ ld.u16 %rs27, [%rd151+6];
+ // inline asm
+ { cvt.f32.f16 %f36, %rs27;}
+
+ // inline asm
+ min.f32 %f40, %f35, %f36;
+ add.f32 %f68, %f11, %f23;
+ add.f32 %f69, %f12, %f24;
+ add.f32 %f70, %f13, %f25;
+ fma.rn.f32 %f71, %f11, %f41, %f53;
+ fma.rn.f32 %f72, %f12, %f42, %f54;
+ fma.rn.f32 %f73, %f13, %f43, %f55;
+ fma.rn.f32 %f74, %f11, %f44, %f59;
+ fma.rn.f32 %f75, %f12, %f45, %f60;
+ fma.rn.f32 %f76, %f13, %f46, %f61;
+ fma.rn.f32 %f77, %f11, %f47, %f65;
+ fma.rn.f32 %f78, %f12, %f48, %f66;
+ fma.rn.f32 %f79, %f13, %f49, %f67;
+ mov.f32 %f80, 0f34000000;
+ max.f32 %f81, %f68, %f80;
+ max.f32 %f82, %f69, %f80;
+ max.f32 %f83, %f70, %f80;
+ div.rn.f32 %f84, %f71, %f81;
+ div.rn.f32 %f85, %f72, %f82;
+ div.rn.f32 %f86, %f73, %f83;
+ fma.rn.f32 %f87, %f84, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f88, %f85, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f89, %f86, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f90, %f74, %f81;
+ div.rn.f32 %f91, %f75, %f82;
+ div.rn.f32 %f92, %f76, %f83;
+ fma.rn.f32 %f93, %f90, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f94, %f91, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f95, %f92, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f96, %f77, %f81;
+ div.rn.f32 %f97, %f78, %f82;
+ div.rn.f32 %f98, %f79, %f83;
+ fma.rn.f32 %f99, %f96, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f100, %f97, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f101, %f98, 0f3F000000, 0f3F000000;
+ mul.f32 %f37, %f68, %f40;
+ mul.f32 %f38, %f69, %f40;
+ mul.f32 %f39, %f70, %f40;
+ mul.f32 %f2, %f40, %f87;
+ mul.f32 %f3, %f40, %f88;
+ mul.f32 %f4, %f40, %f89;
+ mul.f32 %f5, %f40, %f93;
+ mul.f32 %f6, %f40, %f94;
+ mul.f32 %f7, %f40, %f95;
+ mul.f32 %f8, %f40, %f99;
+ mul.f32 %f9, %f40, %f100;
+ mul.f32 %f10, %f40, %f101;
+ ld.global.v2.u32 {%r159, %r160}, [pixelID];
+ cvt.u64.u32 %rd159, %r159;
+ cvt.u64.u32 %rd160, %r160;
+ // inline asm
+ call (%rd157), _rt_buffer_get_64, (%rd74, %r53, %r54, %rd159, %rd160, %rd162, %rd162);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f40;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f39;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f38;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f37;}
+
+ // inline asm
+ st.v4.u16 [%rd157], {%rs28, %rs29, %rs30, %rs31};
+ ld.global.f32 %f102, [DoPack];
+ setp.gt.f32 %p1, %f102, 0f3F000000;
+ @%p1 bra BB0_2;
+ bra.uni BB0_1;
+
+BB0_2:
+ mul.f32 %f112, %f2, 0f437F0000;
+ mov.f32 %f113, 0f437F0000;
+ min.f32 %f114, %f112, %f113;
+ mul.f32 %f115, %f3, 0f437F0000;
+ min.f32 %f116, %f115, %f113;
+ mul.f32 %f117, %f4, 0f437F0000;
+ min.f32 %f118, %f117, %f113;
+ mul.f32 %f119, %f5, 0f437F0000;
+ min.f32 %f120, %f119, %f113;
+ mul.f32 %f121, %f6, 0f437F0000;
+ min.f32 %f122, %f121, %f113;
+ mul.f32 %f123, %f7, 0f437F0000;
+ min.f32 %f124, %f123, %f113;
+ mul.f32 %f125, %f8, 0f437F0000;
+ min.f32 %f126, %f125, %f113;
+ mul.f32 %f127, %f9, 0f437F0000;
+ min.f32 %f128, %f127, %f113;
+ mul.f32 %f129, %f10, 0f437F0000;
+ min.f32 %f130, %f129, %f113;
+ ld.global.v2.u32 {%r187, %r188}, [pixelID];
+ cvt.u64.u32 %rd194, %r187;
+ cvt.u64.u32 %rd195, %r188;
+ mov.u64 %rd210, packedImageL1x;
+ cvta.global.u64 %rd193, %rd210;
+ mov.u32 %r186, 4;
+ // inline asm
+ call (%rd192), _rt_buffer_get_64, (%rd193, %r53, %r186, %rd194, %rd195, %rd162, %rd162);
+ // inline asm
+ cvt.rzi.u32.f32 %r191, %f114;
+ cvt.rzi.u32.f32 %r192, %f116;
+ cvt.rzi.u32.f32 %r193, %f118;
+ mul.f32 %f131, %f40, 0f437F0000;
+ cvt.rzi.u32.f32 %r194, %f131;
+ cvt.u16.u32 %rs41, %r193;
+ cvt.u16.u32 %rs42, %r192;
+ cvt.u16.u32 %rs43, %r191;
+ cvt.u16.u32 %rs44, %r194;
+ st.v4.u8 [%rd192], {%rs43, %rs42, %rs41, %rs44};
+ ld.global.v2.u32 {%r195, %r196}, [pixelID];
+ cvt.u64.u32 %rd200, %r195;
+ cvt.u64.u32 %rd201, %r196;
+ mov.u64 %rd211, packedImageL1y;
+ cvta.global.u64 %rd199, %rd211;
+ // inline asm
+ call (%rd198), _rt_buffer_get_64, (%rd199, %r53, %r186, %rd200, %rd201, %rd162, %rd162);
+ // inline asm
+ cvt.rzi.u32.f32 %r199, %f120;
+ cvt.rzi.u32.f32 %r200, %f122;
+ cvt.rzi.u32.f32 %r201, %f124;
+ cvt.u16.u32 %rs45, %r201;
+ cvt.u16.u32 %rs46, %r200;
+ cvt.u16.u32 %rs47, %r199;
+ st.v4.u8 [%rd198], {%rs47, %rs46, %rs45, %rs44};
+ ld.global.v2.u32 {%r202, %r203}, [pixelID];
+ cvt.u64.u32 %rd206, %r202;
+ cvt.u64.u32 %rd207, %r203;
+ mov.u64 %rd212, packedImageL1z;
+ cvta.global.u64 %rd205, %rd212;
+ // inline asm
+ call (%rd204), _rt_buffer_get_64, (%rd205, %r53, %r186, %rd206, %rd207, %rd162, %rd162);
+ // inline asm
+ cvt.rzi.u32.f32 %r206, %f126;
+ cvt.rzi.u32.f32 %r207, %f128;
+ cvt.rzi.u32.f32 %r208, %f130;
+ cvt.u16.u32 %rs48, %r208;
+ cvt.u16.u32 %rs49, %r207;
+ cvt.u16.u32 %rs50, %r206;
+ st.v4.u8 [%rd204], {%rs50, %rs49, %rs48, %rs44};
+ bra.uni BB0_3;
+
+BB0_1:
+ ld.global.v2.u32 {%r169, %r170}, [pixelID];
+ cvt.u64.u32 %rd173, %r169;
+ cvt.u64.u32 %rd174, %r170;
+ // inline asm
+ call (%rd171), _rt_buffer_get_64, (%rd92, %r53, %r54, %rd173, %rd174, %rd162, %rd162);
+ // inline asm
+ cvt.sat.f32.f32 %f103, %f2;
+ cvt.sat.f32.f32 %f104, %f3;
+ cvt.sat.f32.f32 %f105, %f4;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f105;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f104;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f103;}
+
+ // inline asm
+ st.v4.u16 [%rd171], {%rs32, %rs33, %rs34, %rs31};
+ ld.global.v2.u32 {%r173, %r174}, [pixelID];
+ cvt.u64.u32 %rd179, %r173;
+ cvt.u64.u32 %rd180, %r174;
+ // inline asm
+ call (%rd177), _rt_buffer_get_64, (%rd110, %r53, %r54, %rd179, %rd180, %rd162, %rd162);
+ // inline asm
+ cvt.sat.f32.f32 %f106, %f5;
+ cvt.sat.f32.f32 %f107, %f6;
+ cvt.sat.f32.f32 %f108, %f7;
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f108;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f107;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs35, %f106;}
+
+ // inline asm
+ st.v4.u16 [%rd177], {%rs35, %rs36, %rs37, %rs31};
+ ld.global.v2.u32 {%r177, %r178}, [pixelID];
+ cvt.u64.u32 %rd185, %r177;
+ cvt.u64.u32 %rd186, %r178;
+ // inline asm
+ call (%rd183), _rt_buffer_get_64, (%rd128, %r53, %r54, %rd185, %rd186, %rd162, %rd162);
+ // inline asm
+ cvt.sat.f32.f32 %f109, %f8;
+ cvt.sat.f32.f32 %f110, %f9;
+ cvt.sat.f32.f32 %f111, %f10;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f111;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f110;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f109;}
+
+ // inline asm
+ st.v4.u16 [%rd183], {%rs38, %rs39, %rs40, %rs31};
+
+BB0_3:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addSH.ptx.meta
new file mode 100644
index 00000000..e352a558
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/addSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8e93cdd837ccece47adea672aa4bcff2
+timeCreated: 1537695617
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/alphabuffergen.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/alphabuffergen.dll
new file mode 100644
index 00000000..6d02dac6
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/alphabuffergen.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/alphabuffergen.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/alphabuffergen.dll.meta
new file mode 100644
index 00000000..5a43a031
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/alphabuffergen.dll.meta
@@ -0,0 +1,138 @@
+fileFormatVersion: 2
+guid: 36d566e460135294e9e29bd27a12b9b5
+timeCreated: 1526150503
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ '': Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 1
+ Exclude Editor: 0
+ Exclude Linux: 1
+ Exclude Linux64: 1
+ Exclude LinuxUniversal: 1
+ Exclude OSXIntel: 1
+ Exclude OSXIntel64: 1
+ Exclude OSXUniversal: 1
+ Exclude WebGL: 1
+ Exclude Win: 1
+ Exclude Win64: 1
+ Exclude iOS: 1
+ data:
+ first:
+ '': Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ OS: AnyOS
+ data:
+ first:
+ Android: Android
+ second:
+ enabled: 0
+ settings:
+ CPU: ARMv7
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ data:
+ first:
+ Facebook: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Facebook: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Linux
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ data:
+ first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ data:
+ first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXIntel
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: OSXIntel64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ iPhone: iOS
+ second:
+ enabled: 0
+ settings:
+ CompileFlags:
+ FrameworkDependencies:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimesh.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimesh.ptx
new file mode 100644
index 00000000..82a31f75
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimesh.ptx
@@ -0,0 +1,265 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z11interpolatei
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 4 .f32 triAlpha;
+.global .align 1 .b8 vertex_buffer[1];
+.global .align 1 .b8 index_buffer[1];
+.global .align 4 .u32 firstAlphaTriangle;
+.global .align 1 .b8 vertex_buffer_uv[1];
+.global .align 1 .b8 triangleAlphaIDs[1];
+.global .align 1 .b8 alphaTextures[1];
+.global .align 4 .b8 ray[36];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8triAlphaE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo18firstAlphaTriangleE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8triAlphaE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename18firstAlphaTriangleE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8triAlphaE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum18firstAlphaTriangleE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic8triAlphaE[19] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 114, 105, 65, 108, 112, 104, 97, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic18firstAlphaTriangleE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8triAlphaE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation18firstAlphaTriangleE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+
+.visible .entry _Z11interpolatei(
+ .param .u32 _Z11interpolatei_param_0
+)
+{
+ .reg .pred %p<3>;
+ .reg .f32 %f<65>;
+ .reg .b32 %r<39>;
+ .reg .b64 %rd<76>;
+
+
+ ld.param.u32 %r5, [_Z11interpolatei_param_0];
+ // inline asm
+ call (%f6, %f7), _rt_get_triangle_barycentrics, ();
+ // inline asm
+ cvt.s64.s32 %rd3, %r5;
+ mov.u64 %rd7, index_buffer;
+ cvta.global.u64 %rd2, %rd7;
+ mov.u32 %r6, 1;
+ mov.u32 %r7, 12;
+ mov.u64 %rd6, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r6, %r7, %rd3, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.u32 %r1, [%rd1];
+ ld.u32 %r2, [%rd1+4];
+ ld.u32 %r3, [%rd1+8];
+ ld.global.u32 %r4, [firstAlphaTriangle];
+ setp.gt.s32 %p1, %r4, %r5;
+ mov.f32 %f64, 0f3F800000;
+ sub.f32 %f9, %f64, %f6;
+ sub.f32 %f3, %f9, %f7;
+ @%p1 bra BB0_2;
+
+ cvt.s64.s32 %rd28, %r3;
+ sub.s32 %r26, %r5, %r4;
+ cvt.s64.s32 %rd10, %r26;
+ mov.u64 %rd53, triangleAlphaIDs;
+ cvta.global.u64 %rd9, %rd53;
+ mov.u32 %r22, 4;
+ // inline asm
+ call (%rd8), _rt_buffer_get_64, (%rd9, %r6, %r22, %rd10, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.u32 %rd54, [%rd8];
+ cvt.u32.u64 %r27, %rd54;
+ shr.u32 %r28, %r27, 16;
+ cvt.s64.s32 %rd16, %r1;
+ mov.u64 %rd55, vertex_buffer_uv;
+ cvta.global.u64 %rd15, %rd55;
+ mov.u32 %r15, 8;
+ // inline asm
+ call (%rd14), _rt_buffer_get_64, (%rd15, %r6, %r15, %rd16, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.v2.f32 {%f10, %f11}, [%rd14];
+ cvt.s64.s32 %rd22, %r2;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd15, %r6, %r15, %rd22, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.v2.f32 {%f14, %f15}, [%rd20];
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd15, %r6, %r15, %rd28, %rd6, %rd6, %rd6);
+ // inline asm
+ mul.f32 %f18, %f6, %f14;
+ mul.f32 %f19, %f6, %f15;
+ fma.rn.f32 %f20, %f3, %f10, %f18;
+ fma.rn.f32 %f21, %f3, %f11, %f19;
+ ld.v2.f32 {%f22, %f23}, [%rd26];
+ fma.rn.f32 %f26, %f7, %f22, %f20;
+ fma.rn.f32 %f27, %f7, %f23, %f21;
+ abs.f32 %f28, %f26;
+ cvt.rmi.f32.f32 %f29, %f28;
+ sub.f32 %f30, %f28, %f29;
+ abs.f32 %f31, %f27;
+ cvt.rmi.f32.f32 %f32, %f31;
+ sub.f32 %f33, %f31, %f32;
+ and.b64 %rd34, %rd54, 65535;
+ mov.u64 %rd56, alphaTextures;
+ cvta.global.u64 %rd33, %rd56;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd33, %r6, %r22, %rd34, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.u32 %r18, [%rd32];
+ mov.u32 %r24, 2;
+ // inline asm
+ call (%rd38, %rd39, %rd40, %rd41), _rt_buffer_get_id_size_64, (%r18, %r24, %r6);
+ // inline asm
+ cvt.rn.f32.u64 %f34, %rd38;
+ mul.f32 %f35, %f30, %f34;
+ cvt.rzi.u32.f32 %r29, %f35;
+ cvt.rn.f32.u64 %f36, %rd39;
+ mul.f32 %f37, %f33, %f36;
+ cvt.rzi.u32.f32 %r30, %f37;
+ // inline asm
+ call (%rd42), _rt_buffer_get_64, (%rd33, %r6, %r22, %rd34, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.u32 %r23, [%rd42];
+ cvt.u64.u32 %rd49, %r29;
+ cvt.u64.u32 %rd50, %r30;
+ // inline asm
+ call (%rd48), _rt_buffer_get_id_64, (%r23, %r24, %r6, %rd49, %rd50, %rd6, %rd6);
+ // inline asm
+ ld.u8 %r31, [%rd48];
+ and.b32 %r32, %r31, %r28;
+ setp.eq.s32 %p2, %r32, 0;
+ selp.f32 %f64, 0f00000000, 0f3F800000, %p2;
+
+BB0_2:
+ st.global.f32 [triAlpha], %f64;
+ cvt.s64.s32 %rd59, %r1;
+ mov.u64 %rd75, vertex_buffer;
+ cvta.global.u64 %rd58, %rd75;
+ mov.u32 %r38, 24;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd58, %r6, %r38, %rd59, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.f32 %f38, [%rd57+20];
+ ld.f32 %f39, [%rd57+16];
+ ld.f32 %f40, [%rd57+12];
+ cvt.s64.s32 %rd65, %r2;
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd58, %r6, %r38, %rd65, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.f32 %f41, [%rd63+20];
+ ld.f32 %f42, [%rd63+16];
+ ld.f32 %f43, [%rd63+12];
+ cvt.s64.s32 %rd71, %r3;
+ // inline asm
+ call (%rd69), _rt_buffer_get_64, (%rd58, %r6, %r38, %rd71, %rd6, %rd6, %rd6);
+ // inline asm
+ mul.f32 %f44, %f6, %f43;
+ mul.f32 %f45, %f6, %f42;
+ mul.f32 %f46, %f6, %f41;
+ fma.rn.f32 %f47, %f3, %f40, %f44;
+ fma.rn.f32 %f48, %f3, %f39, %f45;
+ fma.rn.f32 %f49, %f3, %f38, %f46;
+ ld.f32 %f50, [%rd69+20];
+ ld.f32 %f51, [%rd69+16];
+ ld.f32 %f52, [%rd69+12];
+ fma.rn.f32 %f53, %f7, %f52, %f47;
+ fma.rn.f32 %f54, %f7, %f51, %f48;
+ fma.rn.f32 %f55, %f7, %f50, %f49;
+ mul.f32 %f56, %f54, %f54;
+ fma.rn.f32 %f57, %f53, %f53, %f56;
+ fma.rn.f32 %f58, %f55, %f55, %f57;
+ sqrt.rn.f32 %f59, %f58;
+ rcp.rn.f32 %f60, %f59;
+ mul.f32 %f61, %f60, %f53;
+ mul.f32 %f62, %f60, %f54;
+ mul.f32 %f63, %f60, %f55;
+ st.global.f32 [normal], %f61;
+ st.global.f32 [normal+4], %f62;
+ st.global.f32 [normal+8], %f63;
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimesh.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimesh.ptx.meta
new file mode 100644
index 00000000..c55d3ddc
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimesh.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 84cdf34ffa295d046887fff61e29ed06
+timeCreated: 1549654014
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTex.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTex.ptx
new file mode 100644
index 00000000..5555a98c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTex.ptx
@@ -0,0 +1,301 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z11interpolatei
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 8 .b8 texCoords[8];
+.global .align 4 .f32 triAlpha;
+.global .align 1 .b8 vertex_buffer[1];
+.global .align 1 .b8 index_buffer[1];
+.global .align 4 .u32 firstAlphaTriangle;
+.global .align 1 .b8 vertex_buffer_uv[1];
+.global .align 1 .b8 triangleAlphaIDs[1];
+.global .align 1 .b8 alphaTextures[1];
+.global .align 4 .b8 ray[36];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8triAlphaE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo18firstAlphaTriangleE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8triAlphaE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename18firstAlphaTriangleE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8triAlphaE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum18firstAlphaTriangleE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic8triAlphaE[19] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 114, 105, 65, 108, 112, 104, 97, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic18firstAlphaTriangleE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8triAlphaE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation18firstAlphaTriangleE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+
+.visible .entry _Z11interpolatei(
+ .param .u32 _Z11interpolatei_param_0
+)
+{
+ .reg .pred %p<4>;
+ .reg .f32 %f<88>;
+ .reg .b32 %r<45>;
+ .reg .b64 %rd<95>;
+
+
+ ld.param.u32 %r5, [_Z11interpolatei_param_0];
+ // inline asm
+ call (%f15, %f16), _rt_get_triangle_barycentrics, ();
+ // inline asm
+ cvt.s64.s32 %rd4, %r5;
+ mov.u64 %rd8, index_buffer;
+ cvta.global.u64 %rd3, %rd8;
+ mov.u32 %r6, 1;
+ mov.u32 %r7, 12;
+ mov.u64 %rd7, 0;
+ // inline asm
+ call (%rd2), _rt_buffer_get_64, (%rd3, %r6, %r7, %rd4, %rd7, %rd7, %rd7);
+ // inline asm
+ ld.u32 %r1, [%rd2];
+ ld.u32 %r2, [%rd2+4];
+ ld.u32 %r3, [%rd2+8];
+ ld.global.u32 %r4, [firstAlphaTriangle];
+ setp.gt.s32 %p1, %r4, %r5;
+ mov.f32 %f85, 0f3F800000;
+ sub.f32 %f18, %f85, %f15;
+ sub.f32 %f3, %f18, %f16;
+ @%p1 bra BB0_2;
+
+ cvt.s64.s32 %rd29, %r3;
+ sub.s32 %r26, %r5, %r4;
+ cvt.s64.s32 %rd11, %r26;
+ mov.u64 %rd54, triangleAlphaIDs;
+ cvta.global.u64 %rd10, %rd54;
+ mov.u32 %r22, 4;
+ // inline asm
+ call (%rd9), _rt_buffer_get_64, (%rd10, %r6, %r22, %rd11, %rd7, %rd7, %rd7);
+ // inline asm
+ ld.u32 %rd55, [%rd9];
+ cvt.u32.u64 %r27, %rd55;
+ shr.u32 %r28, %r27, 16;
+ cvt.s64.s32 %rd17, %r1;
+ mov.u64 %rd56, vertex_buffer_uv;
+ cvta.global.u64 %rd16, %rd56;
+ mov.u32 %r15, 8;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd16, %r6, %r15, %rd17, %rd7, %rd7, %rd7);
+ // inline asm
+ ld.v2.f32 {%f19, %f20}, [%rd15];
+ cvt.s64.s32 %rd23, %r2;
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd16, %r6, %r15, %rd23, %rd7, %rd7, %rd7);
+ // inline asm
+ ld.v2.f32 {%f23, %f24}, [%rd21];
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd16, %r6, %r15, %rd29, %rd7, %rd7, %rd7);
+ // inline asm
+ mul.f32 %f27, %f15, %f23;
+ mul.f32 %f28, %f15, %f24;
+ fma.rn.f32 %f29, %f3, %f19, %f27;
+ fma.rn.f32 %f30, %f3, %f20, %f28;
+ ld.v2.f32 {%f31, %f32}, [%rd27];
+ fma.rn.f32 %f35, %f16, %f31, %f29;
+ fma.rn.f32 %f36, %f16, %f32, %f30;
+ abs.f32 %f37, %f35;
+ cvt.rmi.f32.f32 %f38, %f37;
+ sub.f32 %f39, %f37, %f38;
+ abs.f32 %f40, %f36;
+ cvt.rmi.f32.f32 %f41, %f40;
+ sub.f32 %f42, %f40, %f41;
+ and.b64 %rd35, %rd55, 65535;
+ mov.u64 %rd57, alphaTextures;
+ cvta.global.u64 %rd34, %rd57;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r6, %r22, %rd35, %rd7, %rd7, %rd7);
+ // inline asm
+ ld.u32 %r18, [%rd33];
+ mov.u32 %r24, 2;
+ // inline asm
+ call (%rd39, %rd40, %rd41, %rd42), _rt_buffer_get_id_size_64, (%r18, %r24, %r6);
+ // inline asm
+ cvt.rn.f32.u64 %f43, %rd39;
+ mul.f32 %f44, %f39, %f43;
+ cvt.rzi.u32.f32 %r29, %f44;
+ cvt.rn.f32.u64 %f45, %rd40;
+ mul.f32 %f46, %f42, %f45;
+ cvt.rzi.u32.f32 %r30, %f46;
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd34, %r6, %r22, %rd35, %rd7, %rd7, %rd7);
+ // inline asm
+ ld.u32 %r23, [%rd43];
+ cvt.u64.u32 %rd50, %r29;
+ cvt.u64.u32 %rd51, %r30;
+ // inline asm
+ call (%rd49), _rt_buffer_get_id_64, (%r23, %r24, %r6, %rd50, %rd51, %rd7, %rd7);
+ // inline asm
+ ld.u8 %r31, [%rd49];
+ and.b32 %r32, %r31, %r28;
+ setp.eq.s32 %p2, %r32, 0;
+ selp.f32 %f85, 0f00000000, 0f3F800000, %p2;
+
+BB0_2:
+ st.global.f32 [triAlpha], %f85;
+ cvt.s64.s32 %rd78, %r1;
+ mov.u64 %rd94, vertex_buffer;
+ cvta.global.u64 %rd59, %rd94;
+ mov.u32 %r44, 32;
+ // inline asm
+ call (%rd58), _rt_buffer_get_64, (%rd59, %r6, %r44, %rd78, %rd7, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f47, [%rd58+20];
+ ld.f32 %f48, [%rd58+16];
+ ld.f32 %f49, [%rd58+12];
+ cvt.s64.s32 %rd84, %r2;
+ // inline asm
+ call (%rd64), _rt_buffer_get_64, (%rd59, %r6, %r44, %rd84, %rd7, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f50, [%rd64+20];
+ ld.f32 %f51, [%rd64+16];
+ ld.f32 %f52, [%rd64+12];
+ cvt.s64.s32 %rd90, %r3;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd59, %r6, %r44, %rd90, %rd7, %rd7, %rd7);
+ // inline asm
+ mul.f32 %f53, %f15, %f52;
+ mul.f32 %f54, %f15, %f51;
+ mul.f32 %f55, %f15, %f50;
+ fma.rn.f32 %f56, %f3, %f49, %f53;
+ fma.rn.f32 %f57, %f3, %f48, %f54;
+ fma.rn.f32 %f58, %f3, %f47, %f55;
+ ld.f32 %f59, [%rd70+20];
+ ld.f32 %f60, [%rd70+16];
+ ld.f32 %f61, [%rd70+12];
+ fma.rn.f32 %f62, %f16, %f61, %f56;
+ fma.rn.f32 %f63, %f16, %f60, %f57;
+ fma.rn.f32 %f64, %f16, %f59, %f58;
+ mul.f32 %f65, %f63, %f63;
+ fma.rn.f32 %f66, %f62, %f62, %f65;
+ fma.rn.f32 %f67, %f64, %f64, %f66;
+ sqrt.rn.f32 %f68, %f67;
+ rcp.rn.f32 %f69, %f68;
+ mul.f32 %f70, %f69, %f62;
+ mul.f32 %f71, %f69, %f63;
+ mul.f32 %f72, %f69, %f64;
+ st.global.f32 [normal], %f70;
+ st.global.f32 [normal+4], %f71;
+ st.global.f32 [normal+8], %f72;
+ // inline asm
+ call (%rd76), _rt_buffer_get_64, (%rd59, %r6, %r44, %rd78, %rd7, %rd7, %rd7);
+ // inline asm
+ ld.v2.f32 {%f86, %f74}, [%rd76+24];
+ // inline asm
+ call (%rd82), _rt_buffer_get_64, (%rd59, %r6, %r44, %rd84, %rd7, %rd7, %rd7);
+ // inline asm
+ ld.v2.f32 {%f75, %f76}, [%rd82+24];
+ // inline asm
+ call (%rd88), _rt_buffer_get_64, (%rd59, %r6, %r44, %rd90, %rd7, %rd7, %rd7);
+ // inline asm
+ setp.lt.f32 %p3, %f74, 0f00000000;
+ @%p3 bra BB0_4;
+ bra.uni BB0_3;
+
+BB0_4:
+ add.f32 %f87, %f74, 0f3F800000;
+ bra.uni BB0_5;
+
+BB0_3:
+ ld.v2.f32 {%f77, %f78}, [%rd88+24];
+ mul.f32 %f81, %f15, %f75;
+ mul.f32 %f82, %f15, %f76;
+ fma.rn.f32 %f83, %f3, %f86, %f81;
+ fma.rn.f32 %f84, %f3, %f74, %f82;
+ fma.rn.f32 %f86, %f16, %f77, %f83;
+ fma.rn.f32 %f87, %f16, %f78, %f84;
+
+BB0_5:
+ st.global.v2.f32 [texCoords], {%f86, %f87};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTex.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTex.ptx.meta
new file mode 100644
index 00000000..0bada72b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTex.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 855bb282e20f49b4cb68df002aea39ce
+timeCreated: 1549654381
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTexLODselect.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTexLODselect.ptx
new file mode 100644
index 00000000..584e7e68
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTexLODselect.ptx
@@ -0,0 +1,341 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z11interpolatei
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 8 .b8 texCoords[8];
+.global .align 4 .f32 triAlpha;
+.global .align 1 .b8 vertex_buffer[1];
+.global .align 1 .b8 index_buffer[1];
+.global .align 4 .u32 firstAlphaTriangle;
+.global .align 1 .b8 vertex_buffer_uv[1];
+.global .align 1 .b8 triangleAlphaIDs[1];
+.global .align 1 .b8 alphaTextures[1];
+.global .align 4 .b8 ray[36];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8triAlphaE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo18firstAlphaTriangleE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8triAlphaE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename18firstAlphaTriangleE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8triAlphaE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum18firstAlphaTriangleE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic8triAlphaE[19] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 114, 105, 65, 108, 112, 104, 97, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic18firstAlphaTriangleE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8triAlphaE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation18firstAlphaTriangleE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+
+.visible .entry _Z11interpolatei(
+ .param .u32 _Z11interpolatei_param_0
+)
+{
+ .reg .pred %p<3>;
+ .reg .f32 %f<134>;
+ .reg .b32 %r<51>;
+ .reg .b64 %rd<112>;
+
+
+ ld.param.u32 %r5, [_Z11interpolatei_param_0];
+ // inline asm
+ call (%f6, %f7), _rt_get_triangle_barycentrics, ();
+ // inline asm
+ cvt.s64.s32 %rd3, %r5;
+ mov.u64 %rd7, index_buffer;
+ cvta.global.u64 %rd2, %rd7;
+ mov.u32 %r6, 1;
+ mov.u32 %r7, 12;
+ mov.u64 %rd6, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r6, %r7, %rd3, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.u32 %r1, [%rd1];
+ ld.u32 %r2, [%rd1+4];
+ ld.u32 %r3, [%rd1+8];
+ ld.global.u32 %r4, [firstAlphaTriangle];
+ setp.gt.s32 %p1, %r4, %r5;
+ mov.f32 %f133, 0f3F800000;
+ sub.f32 %f9, %f133, %f6;
+ sub.f32 %f3, %f9, %f7;
+ @%p1 bra BB0_2;
+
+ cvt.s64.s32 %rd28, %r3;
+ sub.s32 %r26, %r5, %r4;
+ cvt.s64.s32 %rd10, %r26;
+ mov.u64 %rd53, triangleAlphaIDs;
+ cvta.global.u64 %rd9, %rd53;
+ mov.u32 %r22, 4;
+ // inline asm
+ call (%rd8), _rt_buffer_get_64, (%rd9, %r6, %r22, %rd10, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.u32 %rd54, [%rd8];
+ cvt.u32.u64 %r27, %rd54;
+ shr.u32 %r28, %r27, 16;
+ cvt.s64.s32 %rd16, %r1;
+ mov.u64 %rd55, vertex_buffer_uv;
+ cvta.global.u64 %rd15, %rd55;
+ mov.u32 %r15, 8;
+ // inline asm
+ call (%rd14), _rt_buffer_get_64, (%rd15, %r6, %r15, %rd16, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.v2.f32 {%f10, %f11}, [%rd14];
+ cvt.s64.s32 %rd22, %r2;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd15, %r6, %r15, %rd22, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.v2.f32 {%f14, %f15}, [%rd20];
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd15, %r6, %r15, %rd28, %rd6, %rd6, %rd6);
+ // inline asm
+ mul.f32 %f18, %f6, %f14;
+ mul.f32 %f19, %f6, %f15;
+ fma.rn.f32 %f20, %f3, %f10, %f18;
+ fma.rn.f32 %f21, %f3, %f11, %f19;
+ ld.v2.f32 {%f22, %f23}, [%rd26];
+ fma.rn.f32 %f26, %f7, %f22, %f20;
+ fma.rn.f32 %f27, %f7, %f23, %f21;
+ abs.f32 %f28, %f26;
+ cvt.rmi.f32.f32 %f29, %f28;
+ sub.f32 %f30, %f28, %f29;
+ abs.f32 %f31, %f27;
+ cvt.rmi.f32.f32 %f32, %f31;
+ sub.f32 %f33, %f31, %f32;
+ and.b64 %rd34, %rd54, 65535;
+ mov.u64 %rd56, alphaTextures;
+ cvta.global.u64 %rd33, %rd56;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd33, %r6, %r22, %rd34, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.u32 %r18, [%rd32];
+ mov.u32 %r24, 2;
+ // inline asm
+ call (%rd38, %rd39, %rd40, %rd41), _rt_buffer_get_id_size_64, (%r18, %r24, %r6);
+ // inline asm
+ cvt.rn.f32.u64 %f34, %rd38;
+ mul.f32 %f35, %f30, %f34;
+ cvt.rzi.u32.f32 %r29, %f35;
+ cvt.rn.f32.u64 %f36, %rd39;
+ mul.f32 %f37, %f33, %f36;
+ cvt.rzi.u32.f32 %r30, %f37;
+ // inline asm
+ call (%rd42), _rt_buffer_get_64, (%rd33, %r6, %r22, %rd34, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.u32 %r23, [%rd42];
+ cvt.u64.u32 %rd49, %r29;
+ cvt.u64.u32 %rd50, %r30;
+ // inline asm
+ call (%rd48), _rt_buffer_get_id_64, (%r23, %r24, %r6, %rd49, %rd50, %rd6, %rd6);
+ // inline asm
+ ld.u8 %r31, [%rd48];
+ and.b32 %r32, %r31, %r28;
+ setp.eq.s32 %p2, %r32, 0;
+ selp.f32 %f133, 0f00000000, 0f3F800000, %p2;
+
+BB0_2:
+ st.global.f32 [triAlpha], %f133;
+ cvt.s64.s32 %rd95, %r1;
+ mov.u64 %rd111, vertex_buffer;
+ cvta.global.u64 %rd58, %rd111;
+ mov.u32 %r50, 32;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd58, %r6, %r50, %rd95, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.f32 %f38, [%rd57+8];
+ ld.v2.f32 {%f39, %f40}, [%rd57];
+ cvt.s64.s32 %rd101, %r2;
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd58, %r6, %r50, %rd101, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.f32 %f43, [%rd63+8];
+ ld.v2.f32 {%f44, %f45}, [%rd63];
+ cvt.s64.s32 %rd107, %r3;
+ // inline asm
+ call (%rd69), _rt_buffer_get_64, (%rd58, %r6, %r50, %rd107, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.f32 %f48, [%rd69+8];
+ ld.v2.f32 {%f49, %f50}, [%rd69];
+ // inline asm
+ call (%rd75), _rt_buffer_get_64, (%rd58, %r6, %r50, %rd95, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.f32 %f53, [%rd75+20];
+ ld.f32 %f54, [%rd75+16];
+ ld.f32 %f55, [%rd75+12];
+ // inline asm
+ call (%rd81), _rt_buffer_get_64, (%rd58, %r6, %r50, %rd101, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.f32 %f56, [%rd81+20];
+ ld.f32 %f57, [%rd81+16];
+ ld.f32 %f58, [%rd81+12];
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd58, %r6, %r50, %rd107, %rd6, %rd6, %rd6);
+ // inline asm
+ mul.f32 %f59, %f6, %f58;
+ mul.f32 %f60, %f6, %f57;
+ mul.f32 %f61, %f6, %f56;
+ fma.rn.f32 %f62, %f3, %f55, %f59;
+ fma.rn.f32 %f63, %f3, %f54, %f60;
+ fma.rn.f32 %f64, %f3, %f53, %f61;
+ ld.f32 %f65, [%rd87+20];
+ ld.f32 %f66, [%rd87+16];
+ ld.f32 %f67, [%rd87+12];
+ fma.rn.f32 %f68, %f7, %f67, %f62;
+ fma.rn.f32 %f69, %f7, %f66, %f63;
+ fma.rn.f32 %f70, %f7, %f65, %f64;
+ mul.f32 %f71, %f69, %f69;
+ fma.rn.f32 %f72, %f68, %f68, %f71;
+ fma.rn.f32 %f73, %f70, %f70, %f72;
+ sqrt.rn.f32 %f74, %f73;
+ rcp.rn.f32 %f75, %f74;
+ mul.f32 %f76, %f75, %f68;
+ mul.f32 %f77, %f75, %f69;
+ mul.f32 %f78, %f75, %f70;
+ st.global.f32 [normal], %f76;
+ st.global.f32 [normal+4], %f77;
+ st.global.f32 [normal+8], %f78;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd58, %r6, %r50, %rd95, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.v2.f32 {%f79, %f80}, [%rd93+24];
+ // inline asm
+ call (%rd99), _rt_buffer_get_64, (%rd58, %r6, %r50, %rd101, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.v2.f32 {%f83, %f84}, [%rd99+24];
+ // inline asm
+ call (%rd105), _rt_buffer_get_64, (%rd58, %r6, %r50, %rd107, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.v2.f32 {%f87, %f88}, [%rd105+24];
+ mul.f32 %f91, %f6, %f83;
+ fma.rn.f32 %f92, %f3, %f79, %f91;
+ sub.f32 %f93, %f44, %f39;
+ sub.f32 %f94, %f45, %f40;
+ sub.f32 %f95, %f43, %f38;
+ sub.f32 %f96, %f49, %f39;
+ sub.f32 %f97, %f50, %f40;
+ sub.f32 %f98, %f48, %f38;
+ mul.f32 %f99, %f94, %f98;
+ mul.f32 %f100, %f95, %f97;
+ sub.f32 %f101, %f99, %f100;
+ mul.f32 %f102, %f95, %f96;
+ mul.f32 %f103, %f93, %f98;
+ sub.f32 %f104, %f102, %f103;
+ mul.f32 %f105, %f93, %f97;
+ mul.f32 %f106, %f94, %f96;
+ sub.f32 %f107, %f105, %f106;
+ mul.f32 %f108, %f104, %f104;
+ fma.rn.f32 %f109, %f101, %f101, %f108;
+ fma.rn.f32 %f110, %f107, %f107, %f109;
+ sqrt.rn.f32 %f111, %f110;
+ mul.f32 %f112, %f111, 0f3F000000;
+ sub.f32 %f113, %f83, %f79;
+ sub.f32 %f114, %f84, %f80;
+ sub.f32 %f115, %f87, %f79;
+ sub.f32 %f116, %f88, %f80;
+ mul.f32 %f117, %f114, 0f00000000;
+ mul.f32 %f118, %f116, 0f00000000;
+ sub.f32 %f119, %f117, %f118;
+ mul.f32 %f120, %f115, 0f00000000;
+ mul.f32 %f121, %f113, 0f00000000;
+ sub.f32 %f122, %f120, %f121;
+ mul.f32 %f123, %f113, %f116;
+ mul.f32 %f124, %f114, %f115;
+ sub.f32 %f125, %f123, %f124;
+ mul.f32 %f126, %f122, %f122;
+ fma.rn.f32 %f127, %f119, %f119, %f126;
+ fma.rn.f32 %f128, %f125, %f125, %f127;
+ sqrt.rn.f32 %f129, %f128;
+ mul.f32 %f130, %f129, 0f3F000000;
+ div.rn.f32 %f131, %f112, %f130;
+ fma.rn.f32 %f132, %f7, %f87, %f92;
+ st.global.v2.f32 [texCoords], {%f132, %f131};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTexLODselect.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTexLODselect.ptx.meta
new file mode 100644
index 00000000..d5bfc631
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/attrib_trimeshTexLODselect.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: aac069d2f1ef4f54b99e859563c0b380
+timeCreated: 1552566788
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/clip_rtx.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/clip_rtx.ptx
new file mode 100644
index 00000000..fb6e5033
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/clip_rtx.ptx
@@ -0,0 +1,114 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 4 .f32 triAlpha;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8triAlphaE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8triAlphaE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8triAlphaE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic8triAlphaE[19] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 114, 105, 65, 108, 112, 104, 97, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8triAlphaE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<2>;
+ .reg .f32 %f<2>;
+
+
+ ld.global.f32 %f1, [triAlpha];
+ setp.neu.f32 %p1, %f1, 0f00000000;
+ @%p1 bra BB0_2;
+
+ // inline asm
+ call _rt_ignore_intersection, ();
+ // inline asm
+
+BB0_2:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/clip_rtx.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/clip_rtx.ptx.meta
new file mode 100644
index 00000000..b8c5bc6e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/clip_rtx.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 55fda1d6fc84d9e42838115c0ee88ec2
+timeCreated: 1549922863
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/combineMasks.exe b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/combineMasks.exe
new file mode 100644
index 00000000..3386fa2b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/combineMasks.exe
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/combineMasks.exe.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/combineMasks.exe.meta
new file mode 100644
index 00000000..c0623198
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/combineMasks.exe.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5aaaa91ab09a47640a15dcc03d1d0fac
+timeCreated: 1534844129
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cookieOutput.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cookieOutput.pso
new file mode 100644
index 00000000..4351a32f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cookieOutput.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cookieOutput.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cookieOutput.pso.meta
new file mode 100644
index 00000000..d19d5a7a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cookieOutput.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dd0648d1aa6ef1846b294f90270347e7
+timeCreated: 1526155640
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart32_91.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart32_91.dll
new file mode 100644
index 00000000..58bb9702
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart32_91.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart32_91.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart32_91.dll.meta
new file mode 100644
index 00000000..a7067acf
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart32_91.dll.meta
@@ -0,0 +1,115 @@
+fileFormatVersion: 2
+guid: 4e60d954644e0a145b35eea29aeba48a
+timeCreated: 1526150503
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ '': Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 1
+ Exclude Editor: 0
+ Exclude Linux: 1
+ Exclude Linux64: 1
+ Exclude LinuxUniversal: 1
+ Exclude OSXIntel: 1
+ Exclude OSXIntel64: 1
+ Exclude OSXUniversal: 1
+ Exclude WebGL: 1
+ Exclude Win: 1
+ Exclude Win64: 1
+ Exclude iOS: 1
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ data:
+ first:
+ Facebook: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Facebook: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Linux
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXIntel
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXIntel64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_90.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_90.dll
new file mode 100644
index 00000000..ea61794b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_90.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_90.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_90.dll.meta
new file mode 100644
index 00000000..ad528ee9
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_90.dll.meta
@@ -0,0 +1,115 @@
+fileFormatVersion: 2
+guid: dce443ff26676e84a942d0b78415b969
+timeCreated: 1526150504
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ '': Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 1
+ Exclude Editor: 0
+ Exclude Linux: 1
+ Exclude Linux64: 1
+ Exclude LinuxUniversal: 1
+ Exclude OSXIntel: 1
+ Exclude OSXIntel64: 1
+ Exclude OSXUniversal: 1
+ Exclude WebGL: 1
+ Exclude Win: 1
+ Exclude Win64: 1
+ Exclude iOS: 1
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ data:
+ first:
+ Facebook: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Facebook: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Linux
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXIntel
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXIntel64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_91.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_91.dll
new file mode 100644
index 00000000..a7cad6c7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_91.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_91.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_91.dll.meta
new file mode 100644
index 00000000..b0ebd318
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudart64_91.dll.meta
@@ -0,0 +1,115 @@
+fileFormatVersion: 2
+guid: 76bf0bd45bbd4f34598f7ce6ac52f5e9
+timeCreated: 1526150503
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ '': Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 1
+ Exclude Editor: 0
+ Exclude Linux: 1
+ Exclude Linux64: 1
+ Exclude LinuxUniversal: 1
+ Exclude OSXIntel: 1
+ Exclude OSXIntel64: 1
+ Exclude OSXUniversal: 1
+ Exclude WebGL: 1
+ Exclude Win: 1
+ Exclude Win64: 1
+ Exclude iOS: 1
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ data:
+ first:
+ Facebook: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Facebook: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Linux
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXIntel
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXIntel64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudnn64_7.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudnn64_7.dll
new file mode 100644
index 00000000..f7a23ada
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudnn64_7.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:82c590e787b564e4a2064925569b17f565dbbaa558fc9ef3ab6b7bf879e4d236
+size 338200992
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudnn64_7.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudnn64_7.dll.meta
new file mode 100644
index 00000000..dc473632
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/cudnn64_7.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: 4442e59a46322ab45ae831f1bd869c5c
+timeCreated: 1526331884
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/d3dcompiler_47.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/d3dcompiler_47.dll
new file mode 100644
index 00000000..356a777f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/d3dcompiler_47.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/d3dcompiler_47.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/d3dcompiler_47.dll.meta
new file mode 100644
index 00000000..eb47476b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/d3dcompiler_47.dll.meta
@@ -0,0 +1,138 @@
+fileFormatVersion: 2
+guid: c17aba6c3878ffb4da8ecb9800b93d9e
+timeCreated: 1526150504
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ '': Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 1
+ Exclude Editor: 0
+ Exclude Linux: 1
+ Exclude Linux64: 1
+ Exclude LinuxUniversal: 1
+ Exclude OSXIntel: 1
+ Exclude OSXIntel64: 1
+ Exclude OSXUniversal: 1
+ Exclude WebGL: 1
+ Exclude Win: 1
+ Exclude Win64: 1
+ Exclude iOS: 1
+ data:
+ first:
+ '': Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ OS: AnyOS
+ data:
+ first:
+ Android: Android
+ second:
+ enabled: 0
+ settings:
+ CPU: ARMv7
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ data:
+ first:
+ Facebook: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Facebook: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: Linux
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ data:
+ first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ data:
+ first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXIntel
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: OSXIntel64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ iPhone: iOS
+ second:
+ enabled: 0
+ settings:
+ CompileFlags:
+ FrameworkDependencies:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/debugLines.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/debugLines.pso
new file mode 100644
index 00000000..3198893e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/debugLines.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/debugLines.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/debugLines.pso.meta
new file mode 100644
index 00000000..36e3e924
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/debugLines.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4c983cb8f06427e46be24df2114836d6
+timeCreated: 1580816320
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish.ptx
new file mode 100644
index 00000000..0f73050a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish.ptx
@@ -0,0 +1,1050 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 1 .b8 output_buffer[1];
+.global .align 1 .b8 image2[1];
+.global .align 4 .u32 mode;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4modeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename4modeE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4modeE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic4modeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4modeE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<105>;
+ .reg .b16 %rs<8>;
+ .reg .f32 %f<669>;
+ .reg .b32 %r<87>;
+ .reg .b64 %rd<35>;
+
+
+ ld.global.v2.u32 {%r3, %r4}, [pixelID];
+ cvt.u64.u32 %rd3, %r3;
+ cvt.u64.u32 %rd4, %r4;
+ mov.u64 %rd7, output_buffer;
+ cvta.global.u64 %rd2, %rd7;
+ mov.u32 %r1, 2;
+ mov.u32 %r2, 16;
+ mov.u64 %rd6, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r1, %r2, %rd3, %rd4, %rd6, %rd6);
+ // inline asm
+ ld.v4.f32 {%f96, %f97, %f98, %f99}, [%rd1];
+ ld.global.u32 %r7, [mode];
+ setp.eq.s32 %p7, %r7, 1;
+ selp.f32 %f2, %f98, %f96, %p7;
+ selp.f32 %f3, %f96, %f98, %p7;
+ setp.eq.s32 %p8, %r7, 0;
+ mov.f32 %f102, 0f3F8CCCCD;
+ cvt.rzi.f32.f32 %f103, %f102;
+ fma.rn.f32 %f104, %f103, 0fC0000000, 0f400CCCCD;
+ abs.f32 %f4, %f104;
+ @%p8 bra BB0_35;
+
+ ld.global.v2.u32 {%r14, %r15}, [pixelID];
+ cvt.u64.u32 %rd10, %r14;
+ cvt.u64.u32 %rd11, %r15;
+ mov.u64 %rd26, image2;
+ cvta.global.u64 %rd9, %rd26;
+ mov.u32 %r13, 8;
+ // inline asm
+ call (%rd8), _rt_buffer_get_64, (%rd9, %r1, %r13, %rd10, %rd11, %rd6, %rd6);
+ // inline asm
+ ld.u16 %rs1, [%rd8];
+ // inline asm
+ { cvt.f32.f16 %f105, %rs1;}
+
+ // inline asm
+ ld.global.v2.u32 {%r18, %r19}, [pixelID];
+ cvt.u64.u32 %rd16, %r18;
+ cvt.u64.u32 %rd17, %r19;
+ // inline asm
+ call (%rd14), _rt_buffer_get_64, (%rd9, %r1, %r13, %rd16, %rd17, %rd6, %rd6);
+ // inline asm
+ ld.u16 %rs2, [%rd14+2];
+ // inline asm
+ { cvt.f32.f16 %f106, %rs2;}
+
+ // inline asm
+ ld.global.v2.u32 {%r22, %r23}, [pixelID];
+ cvt.u64.u32 %rd22, %r22;
+ cvt.u64.u32 %rd23, %r23;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd9, %r1, %r13, %rd22, %rd23, %rd6, %rd6);
+ // inline asm
+ ld.u16 %rs3, [%rd20+4];
+ // inline asm
+ { cvt.f32.f16 %f107, %rs3;}
+
+ // inline asm
+ mov.f32 %f110, 0f3F800000;
+ sub.f32 %f8, %f110, %f2;
+ abs.f32 %f9, %f8;
+ setp.lt.f32 %p9, %f9, 0f00800000;
+ mul.f32 %f111, %f9, 0f4B800000;
+ selp.f32 %f112, 0fC3170000, 0fC2FE0000, %p9;
+ selp.f32 %f113, %f111, %f9, %p9;
+ mov.b32 %r26, %f113;
+ and.b32 %r27, %r26, 8388607;
+ or.b32 %r28, %r27, 1065353216;
+ mov.b32 %f114, %r28;
+ shr.u32 %r29, %r26, 23;
+ cvt.rn.f32.u32 %f115, %r29;
+ add.f32 %f116, %f112, %f115;
+ setp.gt.f32 %p10, %f114, 0f3FB504F3;
+ mul.f32 %f117, %f114, 0f3F000000;
+ add.f32 %f118, %f116, 0f3F800000;
+ selp.f32 %f119, %f117, %f114, %p10;
+ selp.f32 %f120, %f118, %f116, %p10;
+ add.f32 %f121, %f119, 0fBF800000;
+ add.f32 %f109, %f119, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f108,%f109;
+ // inline asm
+ add.f32 %f122, %f121, %f121;
+ mul.f32 %f123, %f108, %f122;
+ mul.f32 %f124, %f123, %f123;
+ mov.f32 %f125, 0f3C4CAF63;
+ mov.f32 %f126, 0f3B18F0FE;
+ fma.rn.f32 %f127, %f126, %f124, %f125;
+ mov.f32 %f128, 0f3DAAAABD;
+ fma.rn.f32 %f129, %f127, %f124, %f128;
+ mul.rn.f32 %f130, %f129, %f124;
+ mul.rn.f32 %f131, %f130, %f123;
+ sub.f32 %f132, %f121, %f123;
+ neg.f32 %f133, %f123;
+ add.f32 %f134, %f132, %f132;
+ fma.rn.f32 %f135, %f133, %f121, %f134;
+ mul.rn.f32 %f136, %f108, %f135;
+ add.f32 %f137, %f131, %f123;
+ sub.f32 %f138, %f123, %f137;
+ add.f32 %f139, %f131, %f138;
+ add.f32 %f140, %f136, %f139;
+ add.f32 %f141, %f137, %f140;
+ sub.f32 %f142, %f137, %f141;
+ add.f32 %f143, %f140, %f142;
+ mov.f32 %f144, 0f3F317200;
+ mul.rn.f32 %f145, %f120, %f144;
+ mov.f32 %f146, 0f35BFBE8E;
+ mul.rn.f32 %f147, %f120, %f146;
+ add.f32 %f148, %f145, %f141;
+ sub.f32 %f149, %f145, %f148;
+ add.f32 %f150, %f141, %f149;
+ add.f32 %f151, %f143, %f150;
+ add.f32 %f152, %f147, %f151;
+ add.f32 %f153, %f148, %f152;
+ sub.f32 %f154, %f148, %f153;
+ add.f32 %f155, %f152, %f154;
+ mov.f32 %f156, 0f400CCCCD;
+ mul.rn.f32 %f157, %f156, %f153;
+ neg.f32 %f158, %f157;
+ fma.rn.f32 %f159, %f156, %f153, %f158;
+ fma.rn.f32 %f160, %f156, %f155, %f159;
+ mov.f32 %f161, 0f00000000;
+ fma.rn.f32 %f162, %f161, %f153, %f160;
+ add.rn.f32 %f163, %f157, %f162;
+ neg.f32 %f164, %f163;
+ add.rn.f32 %f165, %f157, %f164;
+ add.rn.f32 %f166, %f165, %f162;
+ mov.b32 %r30, %f163;
+ setp.eq.s32 %p11, %r30, 1118925336;
+ add.s32 %r31, %r30, -1;
+ mov.b32 %f167, %r31;
+ add.f32 %f168, %f166, 0f37000000;
+ selp.f32 %f169, %f167, %f163, %p11;
+ selp.f32 %f10, %f168, %f166, %p11;
+ mul.f32 %f170, %f169, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f171, %f170;
+ mov.f32 %f172, 0fBF317200;
+ fma.rn.f32 %f173, %f171, %f172, %f169;
+ mov.f32 %f174, 0fB5BFBE8E;
+ fma.rn.f32 %f175, %f171, %f174, %f173;
+ mul.f32 %f176, %f175, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f177, %f176;
+ add.f32 %f178, %f171, 0f00000000;
+ ex2.approx.f32 %f179, %f178;
+ mul.f32 %f180, %f177, %f179;
+ setp.lt.f32 %p12, %f169, 0fC2D20000;
+ selp.f32 %f181, 0f00000000, %f180, %p12;
+ setp.gt.f32 %p13, %f169, 0f42D20000;
+ selp.f32 %f648, 0f7F800000, %f181, %p13;
+ setp.eq.f32 %p14, %f648, 0f7F800000;
+ @%p14 bra BB0_3;
+
+ fma.rn.f32 %f648, %f648, %f10, %f648;
+
+BB0_3:
+ setp.lt.f32 %p15, %f8, 0f00000000;
+ setp.eq.f32 %p16, %f4, 0f3F800000;
+ and.pred %p1, %p15, %p16;
+ mov.b32 %r32, %f648;
+ xor.b32 %r33, %r32, -2147483648;
+ mov.b32 %f182, %r33;
+ selp.f32 %f650, %f182, %f648, %p1;
+ setp.eq.f32 %p17, %f8, 0f00000000;
+ @%p17 bra BB0_6;
+ bra.uni BB0_4;
+
+BB0_6:
+ add.f32 %f185, %f8, %f8;
+ selp.f32 %f650, %f185, 0f00000000, %p16;
+ bra.uni BB0_7;
+
+BB0_35:
+ abs.f32 %f52, %f2;
+ setp.lt.f32 %p57, %f52, 0f00800000;
+ mul.f32 %f359, %f52, 0f4B800000;
+ selp.f32 %f360, 0fC3170000, 0fC2FE0000, %p57;
+ selp.f32 %f361, %f359, %f52, %p57;
+ mov.b32 %r53, %f361;
+ and.b32 %r54, %r53, 8388607;
+ or.b32 %r55, %r54, 1065353216;
+ mov.b32 %f362, %r55;
+ shr.u32 %r56, %r53, 23;
+ cvt.rn.f32.u32 %f363, %r56;
+ add.f32 %f364, %f360, %f363;
+ setp.gt.f32 %p58, %f362, 0f3FB504F3;
+ mul.f32 %f365, %f362, 0f3F000000;
+ add.f32 %f366, %f364, 0f3F800000;
+ selp.f32 %f367, %f365, %f362, %p58;
+ selp.f32 %f368, %f366, %f364, %p58;
+ add.f32 %f369, %f367, 0fBF800000;
+ add.f32 %f358, %f367, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f357,%f358;
+ // inline asm
+ add.f32 %f370, %f369, %f369;
+ mul.f32 %f371, %f357, %f370;
+ mul.f32 %f372, %f371, %f371;
+ mov.f32 %f373, 0f3C4CAF63;
+ mov.f32 %f374, 0f3B18F0FE;
+ fma.rn.f32 %f375, %f374, %f372, %f373;
+ mov.f32 %f376, 0f3DAAAABD;
+ fma.rn.f32 %f377, %f375, %f372, %f376;
+ mul.rn.f32 %f378, %f377, %f372;
+ mul.rn.f32 %f379, %f378, %f371;
+ sub.f32 %f380, %f369, %f371;
+ neg.f32 %f381, %f371;
+ add.f32 %f382, %f380, %f380;
+ fma.rn.f32 %f383, %f381, %f369, %f382;
+ mul.rn.f32 %f384, %f357, %f383;
+ add.f32 %f385, %f379, %f371;
+ sub.f32 %f386, %f371, %f385;
+ add.f32 %f387, %f379, %f386;
+ add.f32 %f388, %f384, %f387;
+ add.f32 %f389, %f385, %f388;
+ sub.f32 %f390, %f385, %f389;
+ add.f32 %f391, %f388, %f390;
+ mov.f32 %f392, 0f3F317200;
+ mul.rn.f32 %f393, %f368, %f392;
+ mov.f32 %f394, 0f35BFBE8E;
+ mul.rn.f32 %f395, %f368, %f394;
+ add.f32 %f396, %f393, %f389;
+ sub.f32 %f397, %f393, %f396;
+ add.f32 %f398, %f389, %f397;
+ add.f32 %f399, %f391, %f398;
+ add.f32 %f400, %f395, %f399;
+ add.f32 %f401, %f396, %f400;
+ sub.f32 %f402, %f396, %f401;
+ add.f32 %f403, %f400, %f402;
+ mov.f32 %f404, 0f400CCCCD;
+ mul.rn.f32 %f405, %f404, %f401;
+ neg.f32 %f406, %f405;
+ fma.rn.f32 %f407, %f404, %f401, %f406;
+ fma.rn.f32 %f408, %f404, %f403, %f407;
+ mov.f32 %f409, 0f00000000;
+ fma.rn.f32 %f410, %f409, %f401, %f408;
+ add.rn.f32 %f411, %f405, %f410;
+ neg.f32 %f412, %f411;
+ add.rn.f32 %f413, %f405, %f412;
+ add.rn.f32 %f414, %f413, %f410;
+ mov.b32 %r57, %f411;
+ setp.eq.s32 %p59, %r57, 1118925336;
+ add.s32 %r58, %r57, -1;
+ mov.b32 %f415, %r58;
+ add.f32 %f416, %f414, 0f37000000;
+ selp.f32 %f417, %f415, %f411, %p59;
+ selp.f32 %f53, %f416, %f414, %p59;
+ mul.f32 %f418, %f417, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f419, %f418;
+ mov.f32 %f420, 0fBF317200;
+ fma.rn.f32 %f421, %f419, %f420, %f417;
+ mov.f32 %f422, 0fB5BFBE8E;
+ fma.rn.f32 %f423, %f419, %f422, %f421;
+ mul.f32 %f424, %f423, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f425, %f424;
+ add.f32 %f426, %f419, 0f00000000;
+ ex2.approx.f32 %f427, %f426;
+ mul.f32 %f428, %f425, %f427;
+ setp.lt.f32 %p60, %f417, 0fC2D20000;
+ selp.f32 %f429, 0f00000000, %f428, %p60;
+ setp.gt.f32 %p61, %f417, 0f42D20000;
+ selp.f32 %f657, 0f7F800000, %f429, %p61;
+ setp.eq.f32 %p62, %f657, 0f7F800000;
+ @%p62 bra BB0_37;
+
+ fma.rn.f32 %f657, %f657, %f53, %f657;
+
+BB0_37:
+ setp.lt.f32 %p63, %f2, 0f00000000;
+ setp.eq.f32 %p64, %f4, 0f3F800000;
+ and.pred %p4, %p63, %p64;
+ mov.b32 %r59, %f657;
+ xor.b32 %r60, %r59, -2147483648;
+ mov.b32 %f430, %r60;
+ selp.f32 %f659, %f430, %f657, %p4;
+ setp.eq.f32 %p65, %f2, 0f00000000;
+ @%p65 bra BB0_40;
+ bra.uni BB0_38;
+
+BB0_40:
+ add.f32 %f433, %f2, %f2;
+ selp.f32 %f659, %f433, 0f00000000, %p64;
+ bra.uni BB0_41;
+
+BB0_4:
+ setp.geu.f32 %p18, %f8, 0f00000000;
+ @%p18 bra BB0_7;
+
+ mov.f32 %f630, 0f400CCCCD;
+ cvt.rzi.f32.f32 %f184, %f630;
+ setp.neu.f32 %p19, %f184, 0f400CCCCD;
+ selp.f32 %f650, 0f7FFFFFFF, %f650, %p19;
+
+BB0_7:
+ abs.f32 %f604, %f8;
+ add.f32 %f186, %f604, 0f400CCCCD;
+ mov.b32 %r34, %f186;
+ setp.lt.s32 %p21, %r34, 2139095040;
+ @%p21 bra BB0_12;
+
+ abs.f32 %f628, %f8;
+ setp.gtu.f32 %p22, %f628, 0f7F800000;
+ @%p22 bra BB0_11;
+ bra.uni BB0_9;
+
+BB0_11:
+ add.f32 %f650, %f8, 0f400CCCCD;
+ bra.uni BB0_12;
+
+BB0_9:
+ abs.f32 %f629, %f8;
+ setp.neu.f32 %p23, %f629, 0f7F800000;
+ @%p23 bra BB0_12;
+
+ selp.f32 %f650, 0fFF800000, 0f7F800000, %p1;
+
+BB0_12:
+ mov.f32 %f614, 0fB5BFBE8E;
+ mov.f32 %f613, 0fBF317200;
+ mov.f32 %f612, 0f00000000;
+ mov.f32 %f611, 0f35BFBE8E;
+ mov.f32 %f610, 0f3F317200;
+ mov.f32 %f609, 0f3DAAAABD;
+ mov.f32 %f608, 0f3C4CAF63;
+ mov.f32 %f607, 0f3B18F0FE;
+ mov.f32 %f606, 0f3F800000;
+ mov.f32 %f605, 0f400CCCCD;
+ setp.eq.f32 %p24, %f8, 0f3F800000;
+ selp.f32 %f189, 0f3F800000, %f650, %p24;
+ cvt.sat.f32.f32 %f21, %f189;
+ sub.f32 %f22, %f606, %f97;
+ abs.f32 %f23, %f22;
+ setp.lt.f32 %p25, %f23, 0f00800000;
+ mul.f32 %f191, %f23, 0f4B800000;
+ selp.f32 %f192, 0fC3170000, 0fC2FE0000, %p25;
+ selp.f32 %f193, %f191, %f23, %p25;
+ mov.b32 %r35, %f193;
+ and.b32 %r36, %r35, 8388607;
+ or.b32 %r37, %r36, 1065353216;
+ mov.b32 %f194, %r37;
+ shr.u32 %r38, %r35, 23;
+ cvt.rn.f32.u32 %f195, %r38;
+ add.f32 %f196, %f192, %f195;
+ setp.gt.f32 %p26, %f194, 0f3FB504F3;
+ mul.f32 %f197, %f194, 0f3F000000;
+ add.f32 %f198, %f196, 0f3F800000;
+ selp.f32 %f199, %f197, %f194, %p26;
+ selp.f32 %f200, %f198, %f196, %p26;
+ add.f32 %f201, %f199, 0fBF800000;
+ add.f32 %f188, %f199, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f187,%f188;
+ // inline asm
+ add.f32 %f202, %f201, %f201;
+ mul.f32 %f203, %f187, %f202;
+ mul.f32 %f204, %f203, %f203;
+ fma.rn.f32 %f207, %f607, %f204, %f608;
+ fma.rn.f32 %f209, %f207, %f204, %f609;
+ mul.rn.f32 %f210, %f209, %f204;
+ mul.rn.f32 %f211, %f210, %f203;
+ sub.f32 %f212, %f201, %f203;
+ neg.f32 %f213, %f203;
+ add.f32 %f214, %f212, %f212;
+ fma.rn.f32 %f215, %f213, %f201, %f214;
+ mul.rn.f32 %f216, %f187, %f215;
+ add.f32 %f217, %f211, %f203;
+ sub.f32 %f218, %f203, %f217;
+ add.f32 %f219, %f211, %f218;
+ add.f32 %f220, %f216, %f219;
+ add.f32 %f221, %f217, %f220;
+ sub.f32 %f222, %f217, %f221;
+ add.f32 %f223, %f220, %f222;
+ mul.rn.f32 %f225, %f200, %f610;
+ mul.rn.f32 %f227, %f200, %f611;
+ add.f32 %f228, %f225, %f221;
+ sub.f32 %f229, %f225, %f228;
+ add.f32 %f230, %f221, %f229;
+ add.f32 %f231, %f223, %f230;
+ add.f32 %f232, %f227, %f231;
+ add.f32 %f233, %f228, %f232;
+ sub.f32 %f234, %f228, %f233;
+ add.f32 %f235, %f232, %f234;
+ mul.rn.f32 %f237, %f605, %f233;
+ neg.f32 %f238, %f237;
+ fma.rn.f32 %f239, %f605, %f233, %f238;
+ fma.rn.f32 %f240, %f605, %f235, %f239;
+ fma.rn.f32 %f242, %f612, %f233, %f240;
+ add.rn.f32 %f243, %f237, %f242;
+ neg.f32 %f244, %f243;
+ add.rn.f32 %f245, %f237, %f244;
+ add.rn.f32 %f246, %f245, %f242;
+ mov.b32 %r39, %f243;
+ setp.eq.s32 %p27, %r39, 1118925336;
+ add.s32 %r40, %r39, -1;
+ mov.b32 %f247, %r40;
+ add.f32 %f248, %f246, 0f37000000;
+ selp.f32 %f249, %f247, %f243, %p27;
+ selp.f32 %f24, %f248, %f246, %p27;
+ mul.f32 %f250, %f249, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f251, %f250;
+ fma.rn.f32 %f253, %f251, %f613, %f249;
+ fma.rn.f32 %f255, %f251, %f614, %f253;
+ mul.f32 %f256, %f255, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f257, %f256;
+ add.f32 %f258, %f251, 0f00000000;
+ ex2.approx.f32 %f259, %f258;
+ mul.f32 %f260, %f257, %f259;
+ setp.lt.f32 %p28, %f249, 0fC2D20000;
+ selp.f32 %f261, 0f00000000, %f260, %p28;
+ setp.gt.f32 %p29, %f249, 0f42D20000;
+ selp.f32 %f651, 0f7F800000, %f261, %p29;
+ setp.eq.f32 %p30, %f651, 0f7F800000;
+ @%p30 bra BB0_14;
+
+ fma.rn.f32 %f651, %f651, %f24, %f651;
+
+BB0_14:
+ setp.lt.f32 %p31, %f22, 0f00000000;
+ and.pred %p2, %p31, %p16;
+ mov.b32 %r41, %f651;
+ xor.b32 %r42, %r41, -2147483648;
+ mov.b32 %f262, %r42;
+ selp.f32 %f653, %f262, %f651, %p2;
+ setp.eq.f32 %p33, %f22, 0f00000000;
+ @%p33 bra BB0_17;
+ bra.uni BB0_15;
+
+BB0_17:
+ add.f32 %f265, %f22, %f22;
+ selp.f32 %f653, %f265, 0f00000000, %p16;
+ bra.uni BB0_18;
+
+BB0_15:
+ setp.geu.f32 %p34, %f22, 0f00000000;
+ @%p34 bra BB0_18;
+
+ mov.f32 %f627, 0f400CCCCD;
+ cvt.rzi.f32.f32 %f264, %f627;
+ setp.neu.f32 %p35, %f264, 0f400CCCCD;
+ selp.f32 %f653, 0f7FFFFFFF, %f653, %p35;
+
+BB0_18:
+ add.f32 %f266, %f23, 0f400CCCCD;
+ mov.b32 %r43, %f266;
+ setp.lt.s32 %p37, %r43, 2139095040;
+ @%p37 bra BB0_23;
+
+ setp.gtu.f32 %p38, %f23, 0f7F800000;
+ @%p38 bra BB0_22;
+ bra.uni BB0_20;
+
+BB0_22:
+ add.f32 %f653, %f22, 0f400CCCCD;
+ bra.uni BB0_23;
+
+BB0_20:
+ setp.neu.f32 %p39, %f23, 0f7F800000;
+ @%p39 bra BB0_23;
+
+ selp.f32 %f653, 0fFF800000, 0f7F800000, %p2;
+
+BB0_23:
+ mov.f32 %f624, 0fB5BFBE8E;
+ mov.f32 %f623, 0fBF317200;
+ mov.f32 %f622, 0f00000000;
+ mov.f32 %f621, 0f35BFBE8E;
+ mov.f32 %f620, 0f3F317200;
+ mov.f32 %f619, 0f3DAAAABD;
+ mov.f32 %f618, 0f3C4CAF63;
+ mov.f32 %f617, 0f3B18F0FE;
+ mov.f32 %f616, 0f3F800000;
+ mov.f32 %f615, 0f400CCCCD;
+ setp.eq.f32 %p40, %f22, 0f3F800000;
+ selp.f32 %f269, 0f3F800000, %f653, %p40;
+ cvt.sat.f32.f32 %f35, %f269;
+ sub.f32 %f36, %f616, %f3;
+ abs.f32 %f37, %f36;
+ setp.lt.f32 %p41, %f37, 0f00800000;
+ mul.f32 %f271, %f37, 0f4B800000;
+ selp.f32 %f272, 0fC3170000, 0fC2FE0000, %p41;
+ selp.f32 %f273, %f271, %f37, %p41;
+ mov.b32 %r44, %f273;
+ and.b32 %r45, %r44, 8388607;
+ or.b32 %r46, %r45, 1065353216;
+ mov.b32 %f274, %r46;
+ shr.u32 %r47, %r44, 23;
+ cvt.rn.f32.u32 %f275, %r47;
+ add.f32 %f276, %f272, %f275;
+ setp.gt.f32 %p42, %f274, 0f3FB504F3;
+ mul.f32 %f277, %f274, 0f3F000000;
+ add.f32 %f278, %f276, 0f3F800000;
+ selp.f32 %f279, %f277, %f274, %p42;
+ selp.f32 %f280, %f278, %f276, %p42;
+ add.f32 %f281, %f279, 0fBF800000;
+ add.f32 %f268, %f279, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f267,%f268;
+ // inline asm
+ add.f32 %f282, %f281, %f281;
+ mul.f32 %f283, %f267, %f282;
+ mul.f32 %f284, %f283, %f283;
+ fma.rn.f32 %f287, %f617, %f284, %f618;
+ fma.rn.f32 %f289, %f287, %f284, %f619;
+ mul.rn.f32 %f290, %f289, %f284;
+ mul.rn.f32 %f291, %f290, %f283;
+ sub.f32 %f292, %f281, %f283;
+ neg.f32 %f293, %f283;
+ add.f32 %f294, %f292, %f292;
+ fma.rn.f32 %f295, %f293, %f281, %f294;
+ mul.rn.f32 %f296, %f267, %f295;
+ add.f32 %f297, %f291, %f283;
+ sub.f32 %f298, %f283, %f297;
+ add.f32 %f299, %f291, %f298;
+ add.f32 %f300, %f296, %f299;
+ add.f32 %f301, %f297, %f300;
+ sub.f32 %f302, %f297, %f301;
+ add.f32 %f303, %f300, %f302;
+ mul.rn.f32 %f305, %f280, %f620;
+ mul.rn.f32 %f307, %f280, %f621;
+ add.f32 %f308, %f305, %f301;
+ sub.f32 %f309, %f305, %f308;
+ add.f32 %f310, %f301, %f309;
+ add.f32 %f311, %f303, %f310;
+ add.f32 %f312, %f307, %f311;
+ add.f32 %f313, %f308, %f312;
+ sub.f32 %f314, %f308, %f313;
+ add.f32 %f315, %f312, %f314;
+ mul.rn.f32 %f317, %f615, %f313;
+ neg.f32 %f318, %f317;
+ fma.rn.f32 %f319, %f615, %f313, %f318;
+ fma.rn.f32 %f320, %f615, %f315, %f319;
+ fma.rn.f32 %f322, %f622, %f313, %f320;
+ add.rn.f32 %f323, %f317, %f322;
+ neg.f32 %f324, %f323;
+ add.rn.f32 %f325, %f317, %f324;
+ add.rn.f32 %f326, %f325, %f322;
+ mov.b32 %r48, %f323;
+ setp.eq.s32 %p43, %r48, 1118925336;
+ add.s32 %r49, %r48, -1;
+ mov.b32 %f327, %r49;
+ add.f32 %f328, %f326, 0f37000000;
+ selp.f32 %f329, %f327, %f323, %p43;
+ selp.f32 %f38, %f328, %f326, %p43;
+ mul.f32 %f330, %f329, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f331, %f330;
+ fma.rn.f32 %f333, %f331, %f623, %f329;
+ fma.rn.f32 %f335, %f331, %f624, %f333;
+ mul.f32 %f336, %f335, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f337, %f336;
+ add.f32 %f338, %f331, 0f00000000;
+ ex2.approx.f32 %f339, %f338;
+ mul.f32 %f340, %f337, %f339;
+ setp.lt.f32 %p44, %f329, 0fC2D20000;
+ selp.f32 %f341, 0f00000000, %f340, %p44;
+ setp.gt.f32 %p45, %f329, 0f42D20000;
+ selp.f32 %f654, 0f7F800000, %f341, %p45;
+ setp.eq.f32 %p46, %f654, 0f7F800000;
+ @%p46 bra BB0_25;
+
+ fma.rn.f32 %f654, %f654, %f38, %f654;
+
+BB0_25:
+ setp.lt.f32 %p47, %f36, 0f00000000;
+ and.pred %p3, %p47, %p16;
+ mov.b32 %r50, %f654;
+ xor.b32 %r51, %r50, -2147483648;
+ mov.b32 %f342, %r51;
+ selp.f32 %f656, %f342, %f654, %p3;
+ setp.eq.f32 %p49, %f36, 0f00000000;
+ @%p49 bra BB0_28;
+ bra.uni BB0_26;
+
+BB0_28:
+ add.f32 %f345, %f36, %f36;
+ selp.f32 %f656, %f345, 0f00000000, %p16;
+ bra.uni BB0_29;
+
+BB0_26:
+ setp.geu.f32 %p50, %f36, 0f00000000;
+ @%p50 bra BB0_29;
+
+ mov.f32 %f626, 0f400CCCCD;
+ cvt.rzi.f32.f32 %f344, %f626;
+ setp.neu.f32 %p51, %f344, 0f400CCCCD;
+ selp.f32 %f656, 0f7FFFFFFF, %f656, %p51;
+
+BB0_29:
+ abs.f32 %f631, %f36;
+ add.f32 %f346, %f631, 0f400CCCCD;
+ mov.b32 %r52, %f346;
+ setp.lt.s32 %p53, %r52, 2139095040;
+ @%p53 bra BB0_34;
+
+ abs.f32 %f632, %f36;
+ setp.gtu.f32 %p54, %f632, 0f7F800000;
+ @%p54 bra BB0_33;
+ bra.uni BB0_31;
+
+BB0_33:
+ add.f32 %f656, %f36, 0f400CCCCD;
+ bra.uni BB0_34;
+
+BB0_31:
+ abs.f32 %f633, %f36;
+ setp.neu.f32 %p55, %f633, 0f7F800000;
+ @%p55 bra BB0_34;
+
+ selp.f32 %f656, 0fFF800000, 0f7F800000, %p3;
+
+BB0_34:
+ mov.f32 %f625, 0f3F800000;
+ setp.eq.f32 %p56, %f36, 0f3F800000;
+ selp.f32 %f347, 0f3F800000, %f656, %p56;
+ cvt.sat.f32.f32 %f348, %f347;
+ max.f32 %f349, %f21, %f35;
+ max.f32 %f350, %f349, %f348;
+ sub.f32 %f352, %f625, %f350;
+ rcp.rn.f32 %f353, %f352;
+ mul.f32 %f354, %f21, %f353;
+ mul.f32 %f355, %f35, %f353;
+ mul.f32 %f356, %f348, %f353;
+ min.f32 %f666, %f354, %f105;
+ min.f32 %f667, %f355, %f106;
+ min.f32 %f668, %f356, %f107;
+ bra.uni BB0_69;
+
+BB0_38:
+ setp.geu.f32 %p66, %f2, 0f00000000;
+ @%p66 bra BB0_41;
+
+ cvt.rzi.f32.f32 %f432, %f404;
+ setp.neu.f32 %p67, %f432, 0f400CCCCD;
+ selp.f32 %f659, 0f7FFFFFFF, %f659, %p67;
+
+BB0_41:
+ add.f32 %f434, %f52, 0f400CCCCD;
+ mov.b32 %r61, %f434;
+ setp.lt.s32 %p69, %r61, 2139095040;
+ @%p69 bra BB0_46;
+
+ setp.gtu.f32 %p70, %f52, 0f7F800000;
+ @%p70 bra BB0_45;
+ bra.uni BB0_43;
+
+BB0_45:
+ add.f32 %f659, %f2, 0f400CCCCD;
+ bra.uni BB0_46;
+
+BB0_43:
+ setp.neu.f32 %p71, %f52, 0f7F800000;
+ @%p71 bra BB0_46;
+
+ selp.f32 %f659, 0fFF800000, 0f7F800000, %p4;
+
+BB0_46:
+ mov.f32 %f640, 0fBF317200;
+ mov.f32 %f639, 0f00000000;
+ mov.f32 %f638, 0f35BFBE8E;
+ mov.f32 %f637, 0f3F317200;
+ mov.f32 %f636, 0f3DAAAABD;
+ mov.f32 %f635, 0f3C4CAF63;
+ mov.f32 %f634, 0f3B18F0FE;
+ setp.eq.f32 %p72, %f2, 0f3F800000;
+ selp.f32 %f437, 0f3F800000, %f659, %p72;
+ cvt.sat.f32.f32 %f64, %f437;
+ abs.f32 %f65, %f97;
+ setp.lt.f32 %p73, %f65, 0f00800000;
+ mul.f32 %f438, %f65, 0f4B800000;
+ selp.f32 %f439, 0fC3170000, 0fC2FE0000, %p73;
+ selp.f32 %f440, %f438, %f65, %p73;
+ mov.b32 %r62, %f440;
+ and.b32 %r63, %r62, 8388607;
+ or.b32 %r64, %r63, 1065353216;
+ mov.b32 %f441, %r64;
+ shr.u32 %r65, %r62, 23;
+ cvt.rn.f32.u32 %f442, %r65;
+ add.f32 %f443, %f439, %f442;
+ setp.gt.f32 %p74, %f441, 0f3FB504F3;
+ mul.f32 %f444, %f441, 0f3F000000;
+ add.f32 %f445, %f443, 0f3F800000;
+ selp.f32 %f446, %f444, %f441, %p74;
+ selp.f32 %f447, %f445, %f443, %p74;
+ add.f32 %f448, %f446, 0fBF800000;
+ add.f32 %f436, %f446, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f435,%f436;
+ // inline asm
+ add.f32 %f449, %f448, %f448;
+ mul.f32 %f450, %f435, %f449;
+ mul.f32 %f451, %f450, %f450;
+ fma.rn.f32 %f454, %f634, %f451, %f635;
+ fma.rn.f32 %f456, %f454, %f451, %f636;
+ mul.rn.f32 %f457, %f456, %f451;
+ mul.rn.f32 %f458, %f457, %f450;
+ sub.f32 %f459, %f448, %f450;
+ neg.f32 %f460, %f450;
+ add.f32 %f461, %f459, %f459;
+ fma.rn.f32 %f462, %f460, %f448, %f461;
+ mul.rn.f32 %f463, %f435, %f462;
+ add.f32 %f464, %f458, %f450;
+ sub.f32 %f465, %f450, %f464;
+ add.f32 %f466, %f458, %f465;
+ add.f32 %f467, %f463, %f466;
+ add.f32 %f468, %f464, %f467;
+ sub.f32 %f469, %f464, %f468;
+ add.f32 %f470, %f467, %f469;
+ mul.rn.f32 %f472, %f447, %f637;
+ mul.rn.f32 %f474, %f447, %f638;
+ add.f32 %f475, %f472, %f468;
+ sub.f32 %f476, %f472, %f475;
+ add.f32 %f477, %f468, %f476;
+ add.f32 %f478, %f470, %f477;
+ add.f32 %f479, %f474, %f478;
+ add.f32 %f480, %f475, %f479;
+ sub.f32 %f481, %f475, %f480;
+ add.f32 %f482, %f479, %f481;
+ mul.rn.f32 %f484, %f404, %f480;
+ neg.f32 %f485, %f484;
+ fma.rn.f32 %f486, %f404, %f480, %f485;
+ fma.rn.f32 %f487, %f404, %f482, %f486;
+ fma.rn.f32 %f489, %f639, %f480, %f487;
+ add.rn.f32 %f490, %f484, %f489;
+ neg.f32 %f491, %f490;
+ add.rn.f32 %f492, %f484, %f491;
+ add.rn.f32 %f493, %f492, %f489;
+ mov.b32 %r66, %f490;
+ setp.eq.s32 %p75, %r66, 1118925336;
+ add.s32 %r67, %r66, -1;
+ mov.b32 %f494, %r67;
+ add.f32 %f495, %f493, 0f37000000;
+ selp.f32 %f496, %f494, %f490, %p75;
+ selp.f32 %f66, %f495, %f493, %p75;
+ mul.f32 %f497, %f496, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f498, %f497;
+ fma.rn.f32 %f500, %f498, %f640, %f496;
+ fma.rn.f32 %f502, %f498, %f422, %f500;
+ mul.f32 %f503, %f502, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f504, %f503;
+ add.f32 %f505, %f498, 0f00000000;
+ ex2.approx.f32 %f506, %f505;
+ mul.f32 %f507, %f504, %f506;
+ setp.lt.f32 %p76, %f496, 0fC2D20000;
+ selp.f32 %f508, 0f00000000, %f507, %p76;
+ setp.gt.f32 %p77, %f496, 0f42D20000;
+ selp.f32 %f660, 0f7F800000, %f508, %p77;
+ setp.eq.f32 %p78, %f660, 0f7F800000;
+ @%p78 bra BB0_48;
+
+ fma.rn.f32 %f660, %f660, %f66, %f660;
+
+BB0_48:
+ setp.lt.f32 %p79, %f97, 0f00000000;
+ and.pred %p5, %p79, %p64;
+ mov.b32 %r68, %f660;
+ xor.b32 %r69, %r68, -2147483648;
+ mov.b32 %f509, %r69;
+ selp.f32 %f662, %f509, %f660, %p5;
+ setp.eq.f32 %p81, %f97, 0f00000000;
+ @%p81 bra BB0_51;
+ bra.uni BB0_49;
+
+BB0_51:
+ add.f32 %f512, %f97, %f97;
+ selp.f32 %f662, %f512, 0f00000000, %p64;
+ bra.uni BB0_52;
+
+BB0_49:
+ setp.geu.f32 %p82, %f97, 0f00000000;
+ @%p82 bra BB0_52;
+
+ cvt.rzi.f32.f32 %f511, %f404;
+ setp.neu.f32 %p83, %f511, 0f400CCCCD;
+ selp.f32 %f662, 0f7FFFFFFF, %f662, %p83;
+
+BB0_52:
+ add.f32 %f513, %f65, 0f400CCCCD;
+ mov.b32 %r70, %f513;
+ setp.lt.s32 %p85, %r70, 2139095040;
+ @%p85 bra BB0_57;
+
+ setp.gtu.f32 %p86, %f65, 0f7F800000;
+ @%p86 bra BB0_56;
+ bra.uni BB0_54;
+
+BB0_56:
+ add.f32 %f662, %f97, 0f400CCCCD;
+ bra.uni BB0_57;
+
+BB0_54:
+ setp.neu.f32 %p87, %f65, 0f7F800000;
+ @%p87 bra BB0_57;
+
+ selp.f32 %f662, 0fFF800000, 0f7F800000, %p5;
+
+BB0_57:
+ mov.f32 %f647, 0fBF317200;
+ mov.f32 %f646, 0f00000000;
+ mov.f32 %f645, 0f35BFBE8E;
+ mov.f32 %f644, 0f3F317200;
+ mov.f32 %f643, 0f3DAAAABD;
+ mov.f32 %f642, 0f3C4CAF63;
+ mov.f32 %f641, 0f3B18F0FE;
+ setp.eq.f32 %p88, %f97, 0f3F800000;
+ selp.f32 %f516, 0f3F800000, %f662, %p88;
+ cvt.sat.f32.f32 %f77, %f516;
+ abs.f32 %f78, %f3;
+ setp.lt.f32 %p89, %f78, 0f00800000;
+ mul.f32 %f517, %f78, 0f4B800000;
+ selp.f32 %f518, 0fC3170000, 0fC2FE0000, %p89;
+ selp.f32 %f519, %f517, %f78, %p89;
+ mov.b32 %r71, %f519;
+ and.b32 %r72, %r71, 8388607;
+ or.b32 %r73, %r72, 1065353216;
+ mov.b32 %f520, %r73;
+ shr.u32 %r74, %r71, 23;
+ cvt.rn.f32.u32 %f521, %r74;
+ add.f32 %f522, %f518, %f521;
+ setp.gt.f32 %p90, %f520, 0f3FB504F3;
+ mul.f32 %f523, %f520, 0f3F000000;
+ add.f32 %f524, %f522, 0f3F800000;
+ selp.f32 %f525, %f523, %f520, %p90;
+ selp.f32 %f526, %f524, %f522, %p90;
+ add.f32 %f527, %f525, 0fBF800000;
+ add.f32 %f515, %f525, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f514,%f515;
+ // inline asm
+ add.f32 %f528, %f527, %f527;
+ mul.f32 %f529, %f514, %f528;
+ mul.f32 %f530, %f529, %f529;
+ fma.rn.f32 %f533, %f641, %f530, %f642;
+ fma.rn.f32 %f535, %f533, %f530, %f643;
+ mul.rn.f32 %f536, %f535, %f530;
+ mul.rn.f32 %f537, %f536, %f529;
+ sub.f32 %f538, %f527, %f529;
+ neg.f32 %f539, %f529;
+ add.f32 %f540, %f538, %f538;
+ fma.rn.f32 %f541, %f539, %f527, %f540;
+ mul.rn.f32 %f542, %f514, %f541;
+ add.f32 %f543, %f537, %f529;
+ sub.f32 %f544, %f529, %f543;
+ add.f32 %f545, %f537, %f544;
+ add.f32 %f546, %f542, %f545;
+ add.f32 %f547, %f543, %f546;
+ sub.f32 %f548, %f543, %f547;
+ add.f32 %f549, %f546, %f548;
+ mul.rn.f32 %f551, %f526, %f644;
+ mul.rn.f32 %f553, %f526, %f645;
+ add.f32 %f554, %f551, %f547;
+ sub.f32 %f555, %f551, %f554;
+ add.f32 %f556, %f547, %f555;
+ add.f32 %f557, %f549, %f556;
+ add.f32 %f558, %f553, %f557;
+ add.f32 %f559, %f554, %f558;
+ sub.f32 %f560, %f554, %f559;
+ add.f32 %f561, %f558, %f560;
+ mul.rn.f32 %f563, %f404, %f559;
+ neg.f32 %f564, %f563;
+ fma.rn.f32 %f565, %f404, %f559, %f564;
+ fma.rn.f32 %f566, %f404, %f561, %f565;
+ fma.rn.f32 %f568, %f646, %f559, %f566;
+ add.rn.f32 %f569, %f563, %f568;
+ neg.f32 %f570, %f569;
+ add.rn.f32 %f571, %f563, %f570;
+ add.rn.f32 %f572, %f571, %f568;
+ mov.b32 %r75, %f569;
+ setp.eq.s32 %p91, %r75, 1118925336;
+ add.s32 %r76, %r75, -1;
+ mov.b32 %f573, %r76;
+ add.f32 %f574, %f572, 0f37000000;
+ selp.f32 %f575, %f573, %f569, %p91;
+ selp.f32 %f79, %f574, %f572, %p91;
+ mul.f32 %f576, %f575, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f577, %f576;
+ fma.rn.f32 %f579, %f577, %f647, %f575;
+ fma.rn.f32 %f581, %f577, %f422, %f579;
+ mul.f32 %f582, %f581, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f583, %f582;
+ add.f32 %f584, %f577, 0f00000000;
+ ex2.approx.f32 %f585, %f584;
+ mul.f32 %f586, %f583, %f585;
+ setp.lt.f32 %p92, %f575, 0fC2D20000;
+ selp.f32 %f587, 0f00000000, %f586, %p92;
+ setp.gt.f32 %p93, %f575, 0f42D20000;
+ selp.f32 %f663, 0f7F800000, %f587, %p93;
+ setp.eq.f32 %p94, %f663, 0f7F800000;
+ @%p94 bra BB0_59;
+
+ fma.rn.f32 %f663, %f663, %f79, %f663;
+
+BB0_59:
+ setp.lt.f32 %p95, %f3, 0f00000000;
+ and.pred %p6, %p95, %p64;
+ mov.b32 %r77, %f663;
+ xor.b32 %r78, %r77, -2147483648;
+ mov.b32 %f588, %r78;
+ selp.f32 %f665, %f588, %f663, %p6;
+ setp.eq.f32 %p97, %f3, 0f00000000;
+ @%p97 bra BB0_62;
+ bra.uni BB0_60;
+
+BB0_62:
+ add.f32 %f591, %f3, %f3;
+ selp.f32 %f665, %f591, 0f00000000, %p64;
+ bra.uni BB0_63;
+
+BB0_60:
+ setp.geu.f32 %p98, %f3, 0f00000000;
+ @%p98 bra BB0_63;
+
+ cvt.rzi.f32.f32 %f590, %f404;
+ setp.neu.f32 %p99, %f590, 0f400CCCCD;
+ selp.f32 %f665, 0f7FFFFFFF, %f665, %p99;
+
+BB0_63:
+ add.f32 %f592, %f78, 0f400CCCCD;
+ mov.b32 %r79, %f592;
+ setp.lt.s32 %p101, %r79, 2139095040;
+ @%p101 bra BB0_68;
+
+ setp.gtu.f32 %p102, %f78, 0f7F800000;
+ @%p102 bra BB0_67;
+ bra.uni BB0_65;
+
+BB0_67:
+ add.f32 %f665, %f3, 0f400CCCCD;
+ bra.uni BB0_68;
+
+BB0_65:
+ setp.neu.f32 %p103, %f78, 0f7F800000;
+ @%p103 bra BB0_68;
+
+ selp.f32 %f665, 0fFF800000, 0f7F800000, %p6;
+
+BB0_68:
+ setp.eq.f32 %p104, %f3, 0f3F800000;
+ selp.f32 %f593, 0f3F800000, %f665, %p104;
+ cvt.sat.f32.f32 %f594, %f593;
+ max.f32 %f595, %f64, %f77;
+ max.f32 %f596, %f595, %f594;
+ mov.f32 %f597, 0f3F800000;
+ sub.f32 %f598, %f597, %f596;
+ rcp.rn.f32 %f599, %f598;
+ mul.f32 %f666, %f64, %f599;
+ mul.f32 %f667, %f77, %f599;
+ mul.f32 %f668, %f594, %f599;
+
+BB0_69:
+ mov.u64 %rd34, 0;
+ mov.u32 %r86, 2;
+ ld.global.v2.u32 {%r82, %r83}, [pixelID];
+ cvt.u64.u32 %rd29, %r82;
+ cvt.u64.u32 %rd30, %r83;
+ mov.u64 %rd33, image2;
+ cvta.global.u64 %rd28, %rd33;
+ mov.u32 %r81, 8;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r86, %r81, %rd29, %rd30, %rd34, %rd34);
+ // inline asm
+ mov.f32 %f603, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs7, %f603;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs6, %f668;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs5, %f667;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs4, %f666;}
+
+ // inline asm
+ st.v4.u16 [%rd27], {%rs4, %rs5, %rs6, %rs7};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish.ptx.meta
new file mode 100644
index 00000000..136b2e08
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bbbbce75a9e818f4ea65df709d80bc4c
+timeCreated: 1526332011
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish72.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish72.ptx
new file mode 100644
index 00000000..b9ca48eb
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish72.ptx
@@ -0,0 +1,93 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl __raygen__oxMain
+.const .align 8 .b8 cs[32];
+
+.visible .entry __raygen__oxMain(
+
+)
+{
+ .reg .pred %p<3>;
+ .reg .b16 %rs<12>;
+ .reg .f32 %f<26>;
+ .reg .b32 %r<9>;
+ .reg .b64 %rd<13>;
+
+
+ // inline asm
+ call (%r1), _optix_get_launch_index_x, ();
+ // inline asm
+ // inline asm
+ call (%r2), _optix_get_launch_index_y, ();
+ // inline asm
+ ld.const.u64 %rd3, [cs+8];
+ cvta.to.global.u64 %rd4, %rd3;
+ ld.const.v2.u32 {%r4, %r5}, [cs+24];
+ mad.lo.s32 %r7, %r4, %r2, %r1;
+ cvt.u64.u32 %rd1, %r7;
+ mul.wide.u32 %rd5, %r7, 16;
+ add.s64 %rd6, %rd4, %rd5;
+ ld.global.v4.f32 {%f10, %f24, %f12, %f13}, [%rd6];
+ setp.eq.s32 %p1, %r5, 1;
+ selp.f32 %f23, %f12, %f10, %p1;
+ selp.f32 %f25, %f10, %f12, %p1;
+ setp.eq.s32 %p2, %r5, 0;
+ ld.const.u64 %rd2, [cs];
+ @%p2 bra BB0_2;
+
+ cvta.to.global.u64 %rd7, %rd2;
+ shl.b64 %rd8, %rd1, 3;
+ add.s64 %rd9, %rd7, %rd8;
+ ld.global.v4.u16 {%rs4, %rs5, %rs6, %rs7}, [%rd9];
+ // inline asm
+ { cvt.f32.f16 %f16, %rs4;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f17, %rs5;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f18, %rs6;}
+
+ // inline asm
+ min.f32 %f23, %f23, %f16;
+ min.f32 %f24, %f24, %f17;
+ min.f32 %f25, %f25, %f18;
+
+BB0_2:
+ cvta.to.global.u64 %rd10, %rd2;
+ shl.b64 %rd11, %rd1, 3;
+ add.s64 %rd12, %rd10, %rd11;
+ mov.f32 %f22, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs11, %f22;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs10, %f25;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs9, %f24;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs8, %f23;}
+
+ // inline asm
+ st.global.v4.u16 [%rd12], {%rs8, %rs9, %rs10, %rs11};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish72.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish72.ptx.meta
new file mode 100644
index 00000000..f151aac8
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinish72.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 09ae1bcf43095f94eadb21257b0ccff0
+timeCreated: 1605208943
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishOIDN.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishOIDN.ptx
new file mode 100644
index 00000000..69fed3fe
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishOIDN.ptx
@@ -0,0 +1,107 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 1 .b8 output_buffer[1];
+.global .align 1 .b8 image2[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .b16 %rs<5>;
+ .reg .f32 %f<5>;
+ .reg .b32 %r<13>;
+ .reg .b64 %rd<15>;
+
+
+ ld.global.v2.u32 {%r5, %r6}, [pixelID];
+ cvt.u64.u32 %rd3, %r5;
+ cvt.u64.u32 %rd4, %r6;
+ mov.u64 %rd13, output_buffer;
+ cvta.global.u64 %rd2, %rd13;
+ mov.u32 %r3, 2;
+ mov.u32 %r2, 12;
+ mov.u64 %rd12, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r3, %r2, %rd3, %rd4, %rd12, %rd12);
+ // inline asm
+ ld.f32 %f1, [%rd1];
+ ld.f32 %f2, [%rd1+4];
+ ld.f32 %f3, [%rd1+8];
+ ld.global.v2.u32 {%r9, %r10}, [pixelID];
+ cvt.u64.u32 %rd9, %r9;
+ cvt.u64.u32 %rd10, %r10;
+ mov.u64 %rd14, image2;
+ cvta.global.u64 %rd8, %rd14;
+ mov.u32 %r4, 8;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd8, %r3, %r4, %rd9, %rd10, %rd12, %rd12);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs3, %f3;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs2, %f2;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs1, %f1;}
+
+ // inline asm
+ mov.f32 %f4, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs4, %f4;}
+
+ // inline asm
+ st.v4.u16 [%rd7], {%rs1, %rs2, %rs3, %rs4};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishOIDN.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishOIDN.ptx.meta
new file mode 100644
index 00000000..034f199b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishOIDN.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 37a0eda7ff3594543a94083548bef4fb
+timeCreated: 1589355275
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH.ptx
new file mode 100644
index 00000000..a67d1e43
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH.ptx
@@ -0,0 +1,598 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 1 .b8 output_buffer[1];
+.global .align 1 .b8 image2[1];
+.global .align 1 .b8 image3[1];
+.global .align 4 .u32 mode;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4modeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename4modeE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4modeE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic4modeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4modeE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<53>;
+ .reg .b16 %rs<9>;
+ .reg .f32 %f<338>;
+ .reg .b32 %r<52>;
+ .reg .b64 %rd<24>;
+
+
+ ld.global.v2.u32 {%r3, %r4}, [pixelID];
+ cvt.u64.u32 %rd3, %r3;
+ cvt.u64.u32 %rd4, %r4;
+ mov.u64 %rd7, output_buffer;
+ cvta.global.u64 %rd2, %rd7;
+ mov.u32 %r1, 2;
+ mov.u32 %r2, 16;
+ mov.u64 %rd6, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r1, %r2, %rd3, %rd4, %rd6, %rd6);
+ // inline asm
+ ld.v4.f32 {%f46, %f47, %f48, %f49}, [%rd1];
+ mov.f32 %f50, 0f3F8CCCCD;
+ cvt.rzi.f32.f32 %f51, %f50;
+ fma.rn.f32 %f52, %f51, 0fC0000000, 0f400CCCCD;
+ abs.f32 %f3, %f52;
+ abs.f32 %f5, %f46;
+ setp.lt.f32 %p4, %f5, 0f00800000;
+ mul.f32 %f53, %f5, 0f4B800000;
+ selp.f32 %f54, 0fC3170000, 0fC2FE0000, %p4;
+ selp.f32 %f55, %f53, %f5, %p4;
+ mov.b32 %r7, %f55;
+ and.b32 %r8, %r7, 8388607;
+ or.b32 %r9, %r8, 1065353216;
+ mov.b32 %f56, %r9;
+ shr.u32 %r10, %r7, 23;
+ cvt.rn.f32.u32 %f57, %r10;
+ add.f32 %f58, %f54, %f57;
+ setp.gt.f32 %p5, %f56, 0f3FB504F3;
+ mul.f32 %f59, %f56, 0f3F000000;
+ add.f32 %f60, %f58, 0f3F800000;
+ selp.f32 %f61, %f59, %f56, %p5;
+ selp.f32 %f62, %f60, %f58, %p5;
+ add.f32 %f63, %f61, 0fBF800000;
+ add.f32 %f45, %f61, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f44,%f45;
+ // inline asm
+ add.f32 %f64, %f63, %f63;
+ mul.f32 %f65, %f44, %f64;
+ mul.f32 %f66, %f65, %f65;
+ mov.f32 %f67, 0f3C4CAF63;
+ mov.f32 %f68, 0f3B18F0FE;
+ fma.rn.f32 %f69, %f68, %f66, %f67;
+ mov.f32 %f70, 0f3DAAAABD;
+ fma.rn.f32 %f71, %f69, %f66, %f70;
+ mul.rn.f32 %f72, %f71, %f66;
+ mul.rn.f32 %f73, %f72, %f65;
+ sub.f32 %f74, %f63, %f65;
+ neg.f32 %f75, %f65;
+ add.f32 %f76, %f74, %f74;
+ fma.rn.f32 %f77, %f75, %f63, %f76;
+ mul.rn.f32 %f78, %f44, %f77;
+ add.f32 %f79, %f73, %f65;
+ sub.f32 %f80, %f65, %f79;
+ add.f32 %f81, %f73, %f80;
+ add.f32 %f82, %f78, %f81;
+ add.f32 %f83, %f79, %f82;
+ sub.f32 %f84, %f79, %f83;
+ add.f32 %f85, %f82, %f84;
+ mov.f32 %f86, 0f3F317200;
+ mul.rn.f32 %f87, %f62, %f86;
+ mov.f32 %f88, 0f35BFBE8E;
+ mul.rn.f32 %f89, %f62, %f88;
+ add.f32 %f90, %f87, %f83;
+ sub.f32 %f91, %f87, %f90;
+ add.f32 %f92, %f83, %f91;
+ add.f32 %f93, %f85, %f92;
+ add.f32 %f94, %f89, %f93;
+ add.f32 %f95, %f90, %f94;
+ sub.f32 %f96, %f90, %f95;
+ add.f32 %f97, %f94, %f96;
+ mov.f32 %f98, 0f400CCCCD;
+ mul.rn.f32 %f99, %f98, %f95;
+ neg.f32 %f100, %f99;
+ fma.rn.f32 %f101, %f98, %f95, %f100;
+ fma.rn.f32 %f102, %f98, %f97, %f101;
+ mov.f32 %f103, 0f00000000;
+ fma.rn.f32 %f104, %f103, %f95, %f102;
+ add.rn.f32 %f105, %f99, %f104;
+ neg.f32 %f106, %f105;
+ add.rn.f32 %f107, %f99, %f106;
+ add.rn.f32 %f108, %f107, %f104;
+ mov.b32 %r11, %f105;
+ setp.eq.s32 %p6, %r11, 1118925336;
+ add.s32 %r12, %r11, -1;
+ mov.b32 %f109, %r12;
+ add.f32 %f110, %f108, 0f37000000;
+ selp.f32 %f111, %f109, %f105, %p6;
+ selp.f32 %f6, %f110, %f108, %p6;
+ mul.f32 %f112, %f111, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f113, %f112;
+ mov.f32 %f114, 0fBF317200;
+ fma.rn.f32 %f115, %f113, %f114, %f111;
+ mov.f32 %f116, 0fB5BFBE8E;
+ fma.rn.f32 %f117, %f113, %f116, %f115;
+ mul.f32 %f118, %f117, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f119, %f118;
+ add.f32 %f120, %f113, 0f00000000;
+ ex2.approx.f32 %f121, %f120;
+ mul.f32 %f122, %f119, %f121;
+ setp.lt.f32 %p7, %f111, 0fC2D20000;
+ selp.f32 %f123, 0f00000000, %f122, %p7;
+ setp.gt.f32 %p8, %f111, 0f42D20000;
+ selp.f32 %f329, 0f7F800000, %f123, %p8;
+ setp.eq.f32 %p9, %f329, 0f7F800000;
+ @%p9 bra BB0_2;
+
+ fma.rn.f32 %f329, %f329, %f6, %f329;
+
+BB0_2:
+ setp.lt.f32 %p10, %f46, 0f00000000;
+ setp.eq.f32 %p11, %f3, 0f3F800000;
+ and.pred %p1, %p10, %p11;
+ mov.b32 %r13, %f329;
+ xor.b32 %r14, %r13, -2147483648;
+ mov.b32 %f124, %r14;
+ selp.f32 %f331, %f124, %f329, %p1;
+ setp.eq.f32 %p12, %f46, 0f00000000;
+ @%p12 bra BB0_5;
+ bra.uni BB0_3;
+
+BB0_5:
+ add.f32 %f127, %f46, %f46;
+ selp.f32 %f331, %f127, 0f00000000, %p11;
+ bra.uni BB0_6;
+
+BB0_3:
+ setp.geu.f32 %p13, %f46, 0f00000000;
+ @%p13 bra BB0_6;
+
+ mov.f32 %f328, 0f400CCCCD;
+ cvt.rzi.f32.f32 %f126, %f328;
+ setp.neu.f32 %p14, %f126, 0f400CCCCD;
+ selp.f32 %f331, 0f7FFFFFFF, %f331, %p14;
+
+BB0_6:
+ abs.f32 %f305, %f46;
+ add.f32 %f128, %f305, 0f400CCCCD;
+ mov.b32 %r15, %f128;
+ setp.lt.s32 %p16, %r15, 2139095040;
+ @%p16 bra BB0_11;
+
+ abs.f32 %f326, %f46;
+ setp.gtu.f32 %p17, %f326, 0f7F800000;
+ @%p17 bra BB0_10;
+ bra.uni BB0_8;
+
+BB0_10:
+ add.f32 %f331, %f46, 0f400CCCCD;
+ bra.uni BB0_11;
+
+BB0_8:
+ abs.f32 %f327, %f46;
+ setp.neu.f32 %p18, %f327, 0f7F800000;
+ @%p18 bra BB0_11;
+
+ selp.f32 %f331, 0fFF800000, 0f7F800000, %p1;
+
+BB0_11:
+ mov.f32 %f314, 0fB5BFBE8E;
+ mov.f32 %f313, 0fBF317200;
+ mov.f32 %f312, 0f00000000;
+ mov.f32 %f311, 0f35BFBE8E;
+ mov.f32 %f310, 0f3F317200;
+ mov.f32 %f309, 0f3DAAAABD;
+ mov.f32 %f308, 0f3C4CAF63;
+ mov.f32 %f307, 0f3B18F0FE;
+ mov.f32 %f306, 0f400CCCCD;
+ setp.eq.f32 %p19, %f46, 0f3F800000;
+ selp.f32 %f131, 0f3F800000, %f331, %p19;
+ cvt.sat.f32.f32 %f17, %f131;
+ abs.f32 %f18, %f47;
+ setp.lt.f32 %p20, %f18, 0f00800000;
+ mul.f32 %f132, %f18, 0f4B800000;
+ selp.f32 %f133, 0fC3170000, 0fC2FE0000, %p20;
+ selp.f32 %f134, %f132, %f18, %p20;
+ mov.b32 %r16, %f134;
+ and.b32 %r17, %r16, 8388607;
+ or.b32 %r18, %r17, 1065353216;
+ mov.b32 %f135, %r18;
+ shr.u32 %r19, %r16, 23;
+ cvt.rn.f32.u32 %f136, %r19;
+ add.f32 %f137, %f133, %f136;
+ setp.gt.f32 %p21, %f135, 0f3FB504F3;
+ mul.f32 %f138, %f135, 0f3F000000;
+ add.f32 %f139, %f137, 0f3F800000;
+ selp.f32 %f140, %f138, %f135, %p21;
+ selp.f32 %f141, %f139, %f137, %p21;
+ add.f32 %f142, %f140, 0fBF800000;
+ add.f32 %f130, %f140, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f129,%f130;
+ // inline asm
+ add.f32 %f143, %f142, %f142;
+ mul.f32 %f144, %f129, %f143;
+ mul.f32 %f145, %f144, %f144;
+ fma.rn.f32 %f148, %f307, %f145, %f308;
+ fma.rn.f32 %f150, %f148, %f145, %f309;
+ mul.rn.f32 %f151, %f150, %f145;
+ mul.rn.f32 %f152, %f151, %f144;
+ sub.f32 %f153, %f142, %f144;
+ neg.f32 %f154, %f144;
+ add.f32 %f155, %f153, %f153;
+ fma.rn.f32 %f156, %f154, %f142, %f155;
+ mul.rn.f32 %f157, %f129, %f156;
+ add.f32 %f158, %f152, %f144;
+ sub.f32 %f159, %f144, %f158;
+ add.f32 %f160, %f152, %f159;
+ add.f32 %f161, %f157, %f160;
+ add.f32 %f162, %f158, %f161;
+ sub.f32 %f163, %f158, %f162;
+ add.f32 %f164, %f161, %f163;
+ mul.rn.f32 %f166, %f141, %f310;
+ mul.rn.f32 %f168, %f141, %f311;
+ add.f32 %f169, %f166, %f162;
+ sub.f32 %f170, %f166, %f169;
+ add.f32 %f171, %f162, %f170;
+ add.f32 %f172, %f164, %f171;
+ add.f32 %f173, %f168, %f172;
+ add.f32 %f174, %f169, %f173;
+ sub.f32 %f175, %f169, %f174;
+ add.f32 %f176, %f173, %f175;
+ mul.rn.f32 %f178, %f306, %f174;
+ neg.f32 %f179, %f178;
+ fma.rn.f32 %f180, %f306, %f174, %f179;
+ fma.rn.f32 %f181, %f306, %f176, %f180;
+ fma.rn.f32 %f183, %f312, %f174, %f181;
+ add.rn.f32 %f184, %f178, %f183;
+ neg.f32 %f185, %f184;
+ add.rn.f32 %f186, %f178, %f185;
+ add.rn.f32 %f187, %f186, %f183;
+ mov.b32 %r20, %f184;
+ setp.eq.s32 %p22, %r20, 1118925336;
+ add.s32 %r21, %r20, -1;
+ mov.b32 %f188, %r21;
+ add.f32 %f189, %f187, 0f37000000;
+ selp.f32 %f190, %f188, %f184, %p22;
+ selp.f32 %f19, %f189, %f187, %p22;
+ mul.f32 %f191, %f190, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f192, %f191;
+ fma.rn.f32 %f194, %f192, %f313, %f190;
+ fma.rn.f32 %f196, %f192, %f314, %f194;
+ mul.f32 %f197, %f196, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f198, %f197;
+ add.f32 %f199, %f192, 0f00000000;
+ ex2.approx.f32 %f200, %f199;
+ mul.f32 %f201, %f198, %f200;
+ setp.lt.f32 %p23, %f190, 0fC2D20000;
+ selp.f32 %f202, 0f00000000, %f201, %p23;
+ setp.gt.f32 %p24, %f190, 0f42D20000;
+ selp.f32 %f332, 0f7F800000, %f202, %p24;
+ setp.eq.f32 %p25, %f332, 0f7F800000;
+ @%p25 bra BB0_13;
+
+ fma.rn.f32 %f332, %f332, %f19, %f332;
+
+BB0_13:
+ setp.lt.f32 %p26, %f47, 0f00000000;
+ and.pred %p2, %p26, %p11;
+ mov.b32 %r22, %f332;
+ xor.b32 %r23, %r22, -2147483648;
+ mov.b32 %f203, %r23;
+ selp.f32 %f334, %f203, %f332, %p2;
+ setp.eq.f32 %p28, %f47, 0f00000000;
+ @%p28 bra BB0_16;
+ bra.uni BB0_14;
+
+BB0_16:
+ add.f32 %f206, %f47, %f47;
+ selp.f32 %f334, %f206, 0f00000000, %p11;
+ bra.uni BB0_17;
+
+BB0_14:
+ setp.geu.f32 %p29, %f47, 0f00000000;
+ @%p29 bra BB0_17;
+
+ mov.f32 %f325, 0f400CCCCD;
+ cvt.rzi.f32.f32 %f205, %f325;
+ setp.neu.f32 %p30, %f205, 0f400CCCCD;
+ selp.f32 %f334, 0f7FFFFFFF, %f334, %p30;
+
+BB0_17:
+ add.f32 %f207, %f18, 0f400CCCCD;
+ mov.b32 %r24, %f207;
+ setp.lt.s32 %p32, %r24, 2139095040;
+ @%p32 bra BB0_22;
+
+ setp.gtu.f32 %p33, %f18, 0f7F800000;
+ @%p33 bra BB0_21;
+ bra.uni BB0_19;
+
+BB0_21:
+ add.f32 %f334, %f47, 0f400CCCCD;
+ bra.uni BB0_22;
+
+BB0_19:
+ setp.neu.f32 %p34, %f18, 0f7F800000;
+ @%p34 bra BB0_22;
+
+ selp.f32 %f334, 0fFF800000, 0f7F800000, %p2;
+
+BB0_22:
+ mov.f32 %f323, 0fB5BFBE8E;
+ mov.f32 %f322, 0fBF317200;
+ mov.f32 %f321, 0f00000000;
+ mov.f32 %f320, 0f35BFBE8E;
+ mov.f32 %f319, 0f3F317200;
+ mov.f32 %f318, 0f3DAAAABD;
+ mov.f32 %f317, 0f3C4CAF63;
+ mov.f32 %f316, 0f3B18F0FE;
+ mov.f32 %f315, 0f400CCCCD;
+ setp.eq.f32 %p35, %f47, 0f3F800000;
+ selp.f32 %f210, 0f3F800000, %f334, %p35;
+ cvt.sat.f32.f32 %f30, %f210;
+ abs.f32 %f31, %f48;
+ setp.lt.f32 %p36, %f31, 0f00800000;
+ mul.f32 %f211, %f31, 0f4B800000;
+ selp.f32 %f212, 0fC3170000, 0fC2FE0000, %p36;
+ selp.f32 %f213, %f211, %f31, %p36;
+ mov.b32 %r25, %f213;
+ and.b32 %r26, %r25, 8388607;
+ or.b32 %r27, %r26, 1065353216;
+ mov.b32 %f214, %r27;
+ shr.u32 %r28, %r25, 23;
+ cvt.rn.f32.u32 %f215, %r28;
+ add.f32 %f216, %f212, %f215;
+ setp.gt.f32 %p37, %f214, 0f3FB504F3;
+ mul.f32 %f217, %f214, 0f3F000000;
+ add.f32 %f218, %f216, 0f3F800000;
+ selp.f32 %f219, %f217, %f214, %p37;
+ selp.f32 %f220, %f218, %f216, %p37;
+ add.f32 %f221, %f219, 0fBF800000;
+ add.f32 %f209, %f219, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f208,%f209;
+ // inline asm
+ add.f32 %f222, %f221, %f221;
+ mul.f32 %f223, %f208, %f222;
+ mul.f32 %f224, %f223, %f223;
+ fma.rn.f32 %f227, %f316, %f224, %f317;
+ fma.rn.f32 %f229, %f227, %f224, %f318;
+ mul.rn.f32 %f230, %f229, %f224;
+ mul.rn.f32 %f231, %f230, %f223;
+ sub.f32 %f232, %f221, %f223;
+ neg.f32 %f233, %f223;
+ add.f32 %f234, %f232, %f232;
+ fma.rn.f32 %f235, %f233, %f221, %f234;
+ mul.rn.f32 %f236, %f208, %f235;
+ add.f32 %f237, %f231, %f223;
+ sub.f32 %f238, %f223, %f237;
+ add.f32 %f239, %f231, %f238;
+ add.f32 %f240, %f236, %f239;
+ add.f32 %f241, %f237, %f240;
+ sub.f32 %f242, %f237, %f241;
+ add.f32 %f243, %f240, %f242;
+ mul.rn.f32 %f245, %f220, %f319;
+ mul.rn.f32 %f247, %f220, %f320;
+ add.f32 %f248, %f245, %f241;
+ sub.f32 %f249, %f245, %f248;
+ add.f32 %f250, %f241, %f249;
+ add.f32 %f251, %f243, %f250;
+ add.f32 %f252, %f247, %f251;
+ add.f32 %f253, %f248, %f252;
+ sub.f32 %f254, %f248, %f253;
+ add.f32 %f255, %f252, %f254;
+ mul.rn.f32 %f257, %f315, %f253;
+ neg.f32 %f258, %f257;
+ fma.rn.f32 %f259, %f315, %f253, %f258;
+ fma.rn.f32 %f260, %f315, %f255, %f259;
+ fma.rn.f32 %f262, %f321, %f253, %f260;
+ add.rn.f32 %f263, %f257, %f262;
+ neg.f32 %f264, %f263;
+ add.rn.f32 %f265, %f257, %f264;
+ add.rn.f32 %f266, %f265, %f262;
+ mov.b32 %r29, %f263;
+ setp.eq.s32 %p38, %r29, 1118925336;
+ add.s32 %r30, %r29, -1;
+ mov.b32 %f267, %r30;
+ add.f32 %f268, %f266, 0f37000000;
+ selp.f32 %f269, %f267, %f263, %p38;
+ selp.f32 %f32, %f268, %f266, %p38;
+ mul.f32 %f270, %f269, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f271, %f270;
+ fma.rn.f32 %f273, %f271, %f322, %f269;
+ fma.rn.f32 %f275, %f271, %f323, %f273;
+ mul.f32 %f276, %f275, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f277, %f276;
+ add.f32 %f278, %f271, 0f00000000;
+ ex2.approx.f32 %f279, %f278;
+ mul.f32 %f280, %f277, %f279;
+ setp.lt.f32 %p39, %f269, 0fC2D20000;
+ selp.f32 %f281, 0f00000000, %f280, %p39;
+ setp.gt.f32 %p40, %f269, 0f42D20000;
+ selp.f32 %f335, 0f7F800000, %f281, %p40;
+ setp.eq.f32 %p41, %f335, 0f7F800000;
+ @%p41 bra BB0_24;
+
+ fma.rn.f32 %f335, %f335, %f32, %f335;
+
+BB0_24:
+ setp.lt.f32 %p42, %f48, 0f00000000;
+ and.pred %p3, %p42, %p11;
+ mov.b32 %r31, %f335;
+ xor.b32 %r32, %r31, -2147483648;
+ mov.b32 %f282, %r32;
+ selp.f32 %f337, %f282, %f335, %p3;
+ setp.eq.f32 %p44, %f48, 0f00000000;
+ @%p44 bra BB0_27;
+ bra.uni BB0_25;
+
+BB0_27:
+ add.f32 %f285, %f48, %f48;
+ selp.f32 %f337, %f285, 0f00000000, %p11;
+ bra.uni BB0_28;
+
+BB0_25:
+ setp.geu.f32 %p45, %f48, 0f00000000;
+ @%p45 bra BB0_28;
+
+ mov.f32 %f324, 0f400CCCCD;
+ cvt.rzi.f32.f32 %f284, %f324;
+ setp.neu.f32 %p46, %f284, 0f400CCCCD;
+ selp.f32 %f337, 0f7FFFFFFF, %f337, %p46;
+
+BB0_28:
+ add.f32 %f286, %f31, 0f400CCCCD;
+ mov.b32 %r33, %f286;
+ setp.lt.s32 %p48, %r33, 2139095040;
+ @%p48 bra BB0_33;
+
+ setp.gtu.f32 %p49, %f31, 0f7F800000;
+ @%p49 bra BB0_32;
+ bra.uni BB0_30;
+
+BB0_32:
+ add.f32 %f337, %f48, 0f400CCCCD;
+ bra.uni BB0_33;
+
+BB0_30:
+ setp.neu.f32 %p50, %f31, 0f7F800000;
+ @%p50 bra BB0_33;
+
+ selp.f32 %f337, 0fFF800000, 0f7F800000, %p3;
+
+BB0_33:
+ setp.eq.f32 %p51, %f48, 0f3F800000;
+ selp.f32 %f287, 0f3F800000, %f337, %p51;
+ cvt.sat.f32.f32 %f43, %f287;
+ ld.global.u32 %r34, [mode];
+ setp.gt.s32 %p52, %r34, 0;
+ @%p52 bra BB0_35;
+ bra.uni BB0_34;
+
+BB0_35:
+ mov.u64 %rd23, 0;
+ mov.u32 %r51, 2;
+ ld.global.v2.u32 {%r43, %r44}, [pixelID];
+ cvt.u64.u32 %rd17, %r43;
+ cvt.u64.u32 %rd18, %r44;
+ mov.u64 %rd21, image3;
+ cvta.global.u64 %rd16, %rd21;
+ mov.u32 %r42, 4;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd16, %r51, %r42, %rd17, %rd18, %rd23, %rd23);
+ // inline asm
+ cvt.sat.f32.f32 %f299, %f17;
+ mul.f32 %f300, %f299, 0f437F0000;
+ cvt.rzi.u32.f32 %r47, %f300;
+ cvt.sat.f32.f32 %f301, %f30;
+ mul.f32 %f302, %f301, 0f437F0000;
+ cvt.rzi.u32.f32 %r48, %f302;
+ cvt.sat.f32.f32 %f303, %f43;
+ mul.f32 %f304, %f303, 0f437F0000;
+ cvt.rzi.u32.f32 %r49, %f304;
+ cvt.u16.u32 %rs5, %r49;
+ cvt.u16.u32 %rs6, %r48;
+ cvt.u16.u32 %rs7, %r47;
+ mov.u16 %rs8, 255;
+ st.v4.u8 [%rd15], {%rs7, %rs6, %rs5, %rs8};
+ bra.uni BB0_36;
+
+BB0_34:
+ mov.u64 %rd22, 0;
+ mov.u32 %r50, 2;
+ max.f32 %f292, %f17, %f30;
+ max.f32 %f293, %f292, %f43;
+ mov.f32 %f291, 0f3F800000;
+ sub.f32 %f294, %f291, %f293;
+ rcp.rn.f32 %f295, %f294;
+ mul.f32 %f296, %f17, %f295;
+ mul.f32 %f297, %f30, %f295;
+ mul.f32 %f298, %f43, %f295;
+ mul.f32 %f288, %f296, 0f3E800000;
+ mul.f32 %f289, %f297, 0f3E800000;
+ mul.f32 %f290, %f298, 0f3E800000;
+ ld.global.v2.u32 {%r37, %r38}, [pixelID];
+ cvt.u64.u32 %rd10, %r37;
+ cvt.u64.u32 %rd11, %r38;
+ mov.u64 %rd14, image2;
+ cvta.global.u64 %rd9, %rd14;
+ mov.u32 %r36, 8;
+ // inline asm
+ call (%rd8), _rt_buffer_get_64, (%rd9, %r50, %r36, %rd10, %rd11, %rd22, %rd22);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs3, %f290;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs2, %f289;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs1, %f288;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs4, %f291;}
+
+ // inline asm
+ st.v4.u16 [%rd8], {%rs1, %rs2, %rs3, %rs4};
+
+BB0_36:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH.ptx.meta
new file mode 100644
index 00000000..c48cb561
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7fd4e37367df86746b44d9f09203b06a
+timeCreated: 1538345689
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH72.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH72.ptx
new file mode 100644
index 00000000..cd5ee610
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH72.ptx
@@ -0,0 +1,526 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl __raygen__oxMain
+.const .align 8 .b8 cs[32];
+
+.visible .entry __raygen__oxMain(
+
+)
+{
+ .reg .pred %p<53>;
+ .reg .b16 %rs<9>;
+ .reg .f32 %f<326>;
+ .reg .b32 %r<39>;
+ .reg .b64 %rd<14>;
+
+
+ // inline asm
+ call (%r1), _optix_get_launch_index_x, ();
+ // inline asm
+ // inline asm
+ call (%r2), _optix_get_launch_index_y, ();
+ // inline asm
+ ld.const.u64 %rd2, [cs+8];
+ cvta.to.global.u64 %rd3, %rd2;
+ ld.const.v2.u32 {%r4, %r5}, [cs+24];
+ mad.lo.s32 %r7, %r4, %r2, %r1;
+ cvt.u64.u32 %rd1, %r7;
+ mul.wide.u32 %rd4, %r7, 16;
+ add.s64 %rd5, %rd3, %rd4;
+ ld.global.v4.f32 {%f43, %f44, %f45, %f46}, [%rd5];
+ setp.gt.s32 %p4, %r5, 0;
+ @%p4 bra BB0_2;
+ bra.uni BB0_1;
+
+BB0_2:
+ mov.f32 %f53, 0f3F8CCCCD;
+ cvt.rzi.f32.f32 %f54, %f53;
+ fma.rn.f32 %f55, %f54, 0fC0000000, 0f400CCCCD;
+ abs.f32 %f4, %f55;
+ abs.f32 %f5, %f43;
+ setp.lt.f32 %p5, %f5, 0f00800000;
+ mul.f32 %f56, %f5, 0f4B800000;
+ selp.f32 %f57, 0fC3170000, 0fC2FE0000, %p5;
+ selp.f32 %f58, %f56, %f5, %p5;
+ mov.b32 %r9, %f58;
+ and.b32 %r10, %r9, 8388607;
+ or.b32 %r11, %r10, 1065353216;
+ mov.b32 %f59, %r11;
+ shr.u32 %r12, %r9, 23;
+ cvt.rn.f32.u32 %f60, %r12;
+ add.f32 %f61, %f57, %f60;
+ setp.gt.f32 %p6, %f59, 0f3FB504F3;
+ mul.f32 %f62, %f59, 0f3F000000;
+ add.f32 %f63, %f61, 0f3F800000;
+ selp.f32 %f64, %f62, %f59, %p6;
+ selp.f32 %f65, %f63, %f61, %p6;
+ add.f32 %f66, %f64, 0fBF800000;
+ add.f32 %f52, %f64, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f51,%f52;
+ // inline asm
+ add.f32 %f67, %f66, %f66;
+ mul.f32 %f68, %f51, %f67;
+ mul.f32 %f69, %f68, %f68;
+ mov.f32 %f70, 0f3C4CAF63;
+ mov.f32 %f71, 0f3B18F0FE;
+ fma.rn.f32 %f72, %f71, %f69, %f70;
+ mov.f32 %f73, 0f3DAAAABD;
+ fma.rn.f32 %f74, %f72, %f69, %f73;
+ mul.rn.f32 %f75, %f74, %f69;
+ mul.rn.f32 %f76, %f75, %f68;
+ sub.f32 %f77, %f66, %f68;
+ neg.f32 %f78, %f68;
+ add.f32 %f79, %f77, %f77;
+ fma.rn.f32 %f80, %f78, %f66, %f79;
+ mul.rn.f32 %f81, %f51, %f80;
+ add.f32 %f82, %f76, %f68;
+ sub.f32 %f83, %f68, %f82;
+ add.f32 %f84, %f76, %f83;
+ add.f32 %f85, %f81, %f84;
+ add.f32 %f86, %f82, %f85;
+ sub.f32 %f87, %f82, %f86;
+ add.f32 %f88, %f85, %f87;
+ mov.f32 %f89, 0f3F317200;
+ mul.rn.f32 %f90, %f65, %f89;
+ mov.f32 %f91, 0f35BFBE8E;
+ mul.rn.f32 %f92, %f65, %f91;
+ add.f32 %f93, %f90, %f86;
+ sub.f32 %f94, %f90, %f93;
+ add.f32 %f95, %f86, %f94;
+ add.f32 %f96, %f88, %f95;
+ add.f32 %f97, %f92, %f96;
+ add.f32 %f98, %f93, %f97;
+ sub.f32 %f99, %f93, %f98;
+ add.f32 %f100, %f97, %f99;
+ mov.f32 %f101, 0f400CCCCD;
+ mul.rn.f32 %f102, %f101, %f98;
+ neg.f32 %f103, %f102;
+ fma.rn.f32 %f104, %f101, %f98, %f103;
+ fma.rn.f32 %f105, %f101, %f100, %f104;
+ mov.f32 %f106, 0f00000000;
+ fma.rn.f32 %f107, %f106, %f98, %f105;
+ add.rn.f32 %f108, %f102, %f107;
+ neg.f32 %f109, %f108;
+ add.rn.f32 %f110, %f102, %f109;
+ add.rn.f32 %f111, %f110, %f107;
+ mov.b32 %r13, %f108;
+ setp.eq.s32 %p7, %r13, 1118925336;
+ add.s32 %r14, %r13, -1;
+ mov.b32 %f112, %r14;
+ add.f32 %f113, %f111, 0f37000000;
+ selp.f32 %f114, %f112, %f108, %p7;
+ selp.f32 %f6, %f113, %f111, %p7;
+ mul.f32 %f115, %f114, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f116, %f115;
+ mov.f32 %f117, 0fBF317200;
+ fma.rn.f32 %f118, %f116, %f117, %f114;
+ mov.f32 %f119, 0fB5BFBE8E;
+ fma.rn.f32 %f120, %f116, %f119, %f118;
+ mul.f32 %f121, %f120, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f122, %f121;
+ add.f32 %f123, %f116, 0f00000000;
+ ex2.approx.f32 %f124, %f123;
+ mul.f32 %f125, %f122, %f124;
+ setp.lt.f32 %p8, %f114, 0fC2D20000;
+ selp.f32 %f126, 0f00000000, %f125, %p8;
+ setp.gt.f32 %p9, %f114, 0f42D20000;
+ selp.f32 %f317, 0f7F800000, %f126, %p9;
+ setp.eq.f32 %p10, %f317, 0f7F800000;
+ @%p10 bra BB0_4;
+
+ fma.rn.f32 %f317, %f317, %f6, %f317;
+
+BB0_4:
+ setp.lt.f32 %p11, %f43, 0f00000000;
+ setp.eq.f32 %p12, %f4, 0f3F800000;
+ and.pred %p1, %p11, %p12;
+ mov.b32 %r15, %f317;
+ xor.b32 %r16, %r15, -2147483648;
+ mov.b32 %f127, %r16;
+ selp.f32 %f319, %f127, %f317, %p1;
+ setp.eq.f32 %p13, %f43, 0f00000000;
+ @%p13 bra BB0_7;
+ bra.uni BB0_5;
+
+BB0_7:
+ add.f32 %f130, %f43, %f43;
+ selp.f32 %f319, %f130, 0f00000000, %p12;
+ bra.uni BB0_8;
+
+BB0_1:
+ ld.const.u64 %rd6, [cs];
+ cvta.to.global.u64 %rd7, %rd6;
+ shl.b64 %rd8, %rd1, 3;
+ add.s64 %rd9, %rd7, %rd8;
+ mov.f32 %f50, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs4, %f50;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs3, %f45;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs2, %f44;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs1, %f43;}
+
+ // inline asm
+ st.global.v4.u16 [%rd9], {%rs1, %rs2, %rs3, %rs4};
+ bra.uni BB0_36;
+
+BB0_5:
+ setp.geu.f32 %p14, %f43, 0f00000000;
+ @%p14 bra BB0_8;
+
+ cvt.rzi.f32.f32 %f129, %f101;
+ setp.neu.f32 %p15, %f129, 0f400CCCCD;
+ selp.f32 %f319, 0f7FFFFFFF, %f319, %p15;
+
+BB0_8:
+ abs.f32 %f298, %f43;
+ add.f32 %f131, %f298, 0f400CCCCD;
+ mov.b32 %r17, %f131;
+ setp.lt.s32 %p17, %r17, 2139095040;
+ @%p17 bra BB0_13;
+
+ abs.f32 %f315, %f43;
+ setp.gtu.f32 %p18, %f315, 0f7F800000;
+ @%p18 bra BB0_12;
+ bra.uni BB0_10;
+
+BB0_12:
+ add.f32 %f319, %f43, 0f400CCCCD;
+ bra.uni BB0_13;
+
+BB0_10:
+ abs.f32 %f316, %f43;
+ setp.neu.f32 %p19, %f316, 0f7F800000;
+ @%p19 bra BB0_13;
+
+ selp.f32 %f319, 0fFF800000, 0f7F800000, %p1;
+
+BB0_13:
+ mov.f32 %f306, 0fB5BFBE8E;
+ mov.f32 %f305, 0fBF317200;
+ mov.f32 %f304, 0f00000000;
+ mov.f32 %f303, 0f35BFBE8E;
+ mov.f32 %f302, 0f3F317200;
+ mov.f32 %f301, 0f3DAAAABD;
+ mov.f32 %f300, 0f3C4CAF63;
+ mov.f32 %f299, 0f3B18F0FE;
+ setp.eq.f32 %p20, %f43, 0f3F800000;
+ selp.f32 %f134, 0f3F800000, %f319, %p20;
+ cvt.sat.f32.f32 %f17, %f134;
+ abs.f32 %f18, %f44;
+ setp.lt.f32 %p21, %f18, 0f00800000;
+ mul.f32 %f135, %f18, 0f4B800000;
+ selp.f32 %f136, 0fC3170000, 0fC2FE0000, %p21;
+ selp.f32 %f137, %f135, %f18, %p21;
+ mov.b32 %r18, %f137;
+ and.b32 %r19, %r18, 8388607;
+ or.b32 %r20, %r19, 1065353216;
+ mov.b32 %f138, %r20;
+ shr.u32 %r21, %r18, 23;
+ cvt.rn.f32.u32 %f139, %r21;
+ add.f32 %f140, %f136, %f139;
+ setp.gt.f32 %p22, %f138, 0f3FB504F3;
+ mul.f32 %f141, %f138, 0f3F000000;
+ add.f32 %f142, %f140, 0f3F800000;
+ selp.f32 %f143, %f141, %f138, %p22;
+ selp.f32 %f144, %f142, %f140, %p22;
+ add.f32 %f145, %f143, 0fBF800000;
+ add.f32 %f133, %f143, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f132,%f133;
+ // inline asm
+ add.f32 %f146, %f145, %f145;
+ mul.f32 %f147, %f132, %f146;
+ mul.f32 %f148, %f147, %f147;
+ fma.rn.f32 %f151, %f299, %f148, %f300;
+ fma.rn.f32 %f153, %f151, %f148, %f301;
+ mul.rn.f32 %f154, %f153, %f148;
+ mul.rn.f32 %f155, %f154, %f147;
+ sub.f32 %f156, %f145, %f147;
+ neg.f32 %f157, %f147;
+ add.f32 %f158, %f156, %f156;
+ fma.rn.f32 %f159, %f157, %f145, %f158;
+ mul.rn.f32 %f160, %f132, %f159;
+ add.f32 %f161, %f155, %f147;
+ sub.f32 %f162, %f147, %f161;
+ add.f32 %f163, %f155, %f162;
+ add.f32 %f164, %f160, %f163;
+ add.f32 %f165, %f161, %f164;
+ sub.f32 %f166, %f161, %f165;
+ add.f32 %f167, %f164, %f166;
+ mul.rn.f32 %f169, %f144, %f302;
+ mul.rn.f32 %f171, %f144, %f303;
+ add.f32 %f172, %f169, %f165;
+ sub.f32 %f173, %f169, %f172;
+ add.f32 %f174, %f165, %f173;
+ add.f32 %f175, %f167, %f174;
+ add.f32 %f176, %f171, %f175;
+ add.f32 %f177, %f172, %f176;
+ sub.f32 %f178, %f172, %f177;
+ add.f32 %f179, %f176, %f178;
+ mul.rn.f32 %f181, %f101, %f177;
+ neg.f32 %f182, %f181;
+ fma.rn.f32 %f183, %f101, %f177, %f182;
+ fma.rn.f32 %f184, %f101, %f179, %f183;
+ fma.rn.f32 %f186, %f304, %f177, %f184;
+ add.rn.f32 %f187, %f181, %f186;
+ neg.f32 %f188, %f187;
+ add.rn.f32 %f189, %f181, %f188;
+ add.rn.f32 %f190, %f189, %f186;
+ mov.b32 %r22, %f187;
+ setp.eq.s32 %p23, %r22, 1118925336;
+ add.s32 %r23, %r22, -1;
+ mov.b32 %f191, %r23;
+ add.f32 %f192, %f190, 0f37000000;
+ selp.f32 %f193, %f191, %f187, %p23;
+ selp.f32 %f19, %f192, %f190, %p23;
+ mul.f32 %f194, %f193, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f195, %f194;
+ fma.rn.f32 %f197, %f195, %f305, %f193;
+ fma.rn.f32 %f199, %f195, %f306, %f197;
+ mul.f32 %f200, %f199, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f201, %f200;
+ add.f32 %f202, %f195, 0f00000000;
+ ex2.approx.f32 %f203, %f202;
+ mul.f32 %f204, %f201, %f203;
+ setp.lt.f32 %p24, %f193, 0fC2D20000;
+ selp.f32 %f205, 0f00000000, %f204, %p24;
+ setp.gt.f32 %p25, %f193, 0f42D20000;
+ selp.f32 %f320, 0f7F800000, %f205, %p25;
+ setp.eq.f32 %p26, %f320, 0f7F800000;
+ @%p26 bra BB0_15;
+
+ fma.rn.f32 %f320, %f320, %f19, %f320;
+
+BB0_15:
+ setp.lt.f32 %p27, %f44, 0f00000000;
+ and.pred %p2, %p27, %p12;
+ mov.b32 %r24, %f320;
+ xor.b32 %r25, %r24, -2147483648;
+ mov.b32 %f206, %r25;
+ selp.f32 %f322, %f206, %f320, %p2;
+ setp.eq.f32 %p29, %f44, 0f00000000;
+ @%p29 bra BB0_18;
+ bra.uni BB0_16;
+
+BB0_18:
+ add.f32 %f209, %f44, %f44;
+ selp.f32 %f322, %f209, 0f00000000, %p12;
+ bra.uni BB0_19;
+
+BB0_16:
+ setp.geu.f32 %p30, %f44, 0f00000000;
+ @%p30 bra BB0_19;
+
+ cvt.rzi.f32.f32 %f208, %f101;
+ setp.neu.f32 %p31, %f208, 0f400CCCCD;
+ selp.f32 %f322, 0f7FFFFFFF, %f322, %p31;
+
+BB0_19:
+ add.f32 %f210, %f18, 0f400CCCCD;
+ mov.b32 %r26, %f210;
+ setp.lt.s32 %p33, %r26, 2139095040;
+ @%p33 bra BB0_24;
+
+ setp.gtu.f32 %p34, %f18, 0f7F800000;
+ @%p34 bra BB0_23;
+ bra.uni BB0_21;
+
+BB0_23:
+ add.f32 %f322, %f44, 0f400CCCCD;
+ bra.uni BB0_24;
+
+BB0_21:
+ setp.neu.f32 %p35, %f18, 0f7F800000;
+ @%p35 bra BB0_24;
+
+ selp.f32 %f322, 0fFF800000, 0f7F800000, %p2;
+
+BB0_24:
+ mov.f32 %f314, 0fB5BFBE8E;
+ mov.f32 %f313, 0fBF317200;
+ mov.f32 %f312, 0f00000000;
+ mov.f32 %f311, 0f35BFBE8E;
+ mov.f32 %f310, 0f3F317200;
+ mov.f32 %f309, 0f3DAAAABD;
+ mov.f32 %f308, 0f3C4CAF63;
+ mov.f32 %f307, 0f3B18F0FE;
+ setp.eq.f32 %p36, %f44, 0f3F800000;
+ selp.f32 %f213, 0f3F800000, %f322, %p36;
+ cvt.sat.f32.f32 %f30, %f213;
+ abs.f32 %f31, %f45;
+ setp.lt.f32 %p37, %f31, 0f00800000;
+ mul.f32 %f214, %f31, 0f4B800000;
+ selp.f32 %f215, 0fC3170000, 0fC2FE0000, %p37;
+ selp.f32 %f216, %f214, %f31, %p37;
+ mov.b32 %r27, %f216;
+ and.b32 %r28, %r27, 8388607;
+ or.b32 %r29, %r28, 1065353216;
+ mov.b32 %f217, %r29;
+ shr.u32 %r30, %r27, 23;
+ cvt.rn.f32.u32 %f218, %r30;
+ add.f32 %f219, %f215, %f218;
+ setp.gt.f32 %p38, %f217, 0f3FB504F3;
+ mul.f32 %f220, %f217, 0f3F000000;
+ add.f32 %f221, %f219, 0f3F800000;
+ selp.f32 %f222, %f220, %f217, %p38;
+ selp.f32 %f223, %f221, %f219, %p38;
+ add.f32 %f224, %f222, 0fBF800000;
+ add.f32 %f212, %f222, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f211,%f212;
+ // inline asm
+ add.f32 %f225, %f224, %f224;
+ mul.f32 %f226, %f211, %f225;
+ mul.f32 %f227, %f226, %f226;
+ fma.rn.f32 %f230, %f307, %f227, %f308;
+ fma.rn.f32 %f232, %f230, %f227, %f309;
+ mul.rn.f32 %f233, %f232, %f227;
+ mul.rn.f32 %f234, %f233, %f226;
+ sub.f32 %f235, %f224, %f226;
+ neg.f32 %f236, %f226;
+ add.f32 %f237, %f235, %f235;
+ fma.rn.f32 %f238, %f236, %f224, %f237;
+ mul.rn.f32 %f239, %f211, %f238;
+ add.f32 %f240, %f234, %f226;
+ sub.f32 %f241, %f226, %f240;
+ add.f32 %f242, %f234, %f241;
+ add.f32 %f243, %f239, %f242;
+ add.f32 %f244, %f240, %f243;
+ sub.f32 %f245, %f240, %f244;
+ add.f32 %f246, %f243, %f245;
+ mul.rn.f32 %f248, %f223, %f310;
+ mul.rn.f32 %f250, %f223, %f311;
+ add.f32 %f251, %f248, %f244;
+ sub.f32 %f252, %f248, %f251;
+ add.f32 %f253, %f244, %f252;
+ add.f32 %f254, %f246, %f253;
+ add.f32 %f255, %f250, %f254;
+ add.f32 %f256, %f251, %f255;
+ sub.f32 %f257, %f251, %f256;
+ add.f32 %f258, %f255, %f257;
+ mul.rn.f32 %f260, %f101, %f256;
+ neg.f32 %f261, %f260;
+ fma.rn.f32 %f262, %f101, %f256, %f261;
+ fma.rn.f32 %f263, %f101, %f258, %f262;
+ fma.rn.f32 %f265, %f312, %f256, %f263;
+ add.rn.f32 %f266, %f260, %f265;
+ neg.f32 %f267, %f266;
+ add.rn.f32 %f268, %f260, %f267;
+ add.rn.f32 %f269, %f268, %f265;
+ mov.b32 %r31, %f266;
+ setp.eq.s32 %p39, %r31, 1118925336;
+ add.s32 %r32, %r31, -1;
+ mov.b32 %f270, %r32;
+ add.f32 %f271, %f269, 0f37000000;
+ selp.f32 %f272, %f270, %f266, %p39;
+ selp.f32 %f32, %f271, %f269, %p39;
+ mul.f32 %f273, %f272, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f274, %f273;
+ fma.rn.f32 %f276, %f274, %f313, %f272;
+ fma.rn.f32 %f278, %f274, %f314, %f276;
+ mul.f32 %f279, %f278, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f280, %f279;
+ add.f32 %f281, %f274, 0f00000000;
+ ex2.approx.f32 %f282, %f281;
+ mul.f32 %f283, %f280, %f282;
+ setp.lt.f32 %p40, %f272, 0fC2D20000;
+ selp.f32 %f284, 0f00000000, %f283, %p40;
+ setp.gt.f32 %p41, %f272, 0f42D20000;
+ selp.f32 %f323, 0f7F800000, %f284, %p41;
+ setp.eq.f32 %p42, %f323, 0f7F800000;
+ @%p42 bra BB0_26;
+
+ fma.rn.f32 %f323, %f323, %f32, %f323;
+
+BB0_26:
+ setp.lt.f32 %p43, %f45, 0f00000000;
+ and.pred %p3, %p43, %p12;
+ mov.b32 %r33, %f323;
+ xor.b32 %r34, %r33, -2147483648;
+ mov.b32 %f285, %r34;
+ selp.f32 %f325, %f285, %f323, %p3;
+ setp.eq.f32 %p45, %f45, 0f00000000;
+ @%p45 bra BB0_29;
+ bra.uni BB0_27;
+
+BB0_29:
+ add.f32 %f288, %f45, %f45;
+ selp.f32 %f325, %f288, 0f00000000, %p12;
+ bra.uni BB0_30;
+
+BB0_27:
+ setp.geu.f32 %p46, %f45, 0f00000000;
+ @%p46 bra BB0_30;
+
+ cvt.rzi.f32.f32 %f287, %f101;
+ setp.neu.f32 %p47, %f287, 0f400CCCCD;
+ selp.f32 %f325, 0f7FFFFFFF, %f325, %p47;
+
+BB0_30:
+ add.f32 %f289, %f31, 0f400CCCCD;
+ mov.b32 %r35, %f289;
+ setp.lt.s32 %p49, %r35, 2139095040;
+ @%p49 bra BB0_35;
+
+ setp.gtu.f32 %p50, %f31, 0f7F800000;
+ @%p50 bra BB0_34;
+ bra.uni BB0_32;
+
+BB0_34:
+ add.f32 %f325, %f45, 0f400CCCCD;
+ bra.uni BB0_35;
+
+BB0_32:
+ setp.neu.f32 %p51, %f31, 0f7F800000;
+ @%p51 bra BB0_35;
+
+ selp.f32 %f325, 0fFF800000, 0f7F800000, %p3;
+
+BB0_35:
+ setp.eq.f32 %p52, %f45, 0f3F800000;
+ selp.f32 %f290, 0f3F800000, %f325, %p52;
+ cvt.sat.f32.f32 %f291, %f290;
+ cvt.sat.f32.f32 %f292, %f17;
+ mul.f32 %f293, %f292, 0f437F0000;
+ cvt.rzi.u32.f32 %r36, %f293;
+ cvt.sat.f32.f32 %f294, %f30;
+ mul.f32 %f295, %f294, 0f437F0000;
+ cvt.rzi.u32.f32 %r37, %f295;
+ cvt.sat.f32.f32 %f296, %f291;
+ mul.f32 %f297, %f296, 0f437F0000;
+ cvt.rzi.u32.f32 %r38, %f297;
+ ld.const.u64 %rd10, [cs+16];
+ cvta.to.global.u64 %rd11, %rd10;
+ shl.b64 %rd12, %rd1, 2;
+ add.s64 %rd13, %rd11, %rd12;
+ cvt.u16.u32 %rs5, %r38;
+ cvt.u16.u32 %rs6, %r37;
+ cvt.u16.u32 %rs7, %r36;
+ mov.u16 %rs8, 255;
+ st.global.v4.u8 [%rd13], {%rs7, %rs6, %rs5, %rs8};
+
+BB0_36:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH72.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH72.ptx.meta
new file mode 100644
index 00000000..4e9520e0
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH72.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 941f8431b37da2447b84b09660fed6c7
+timeCreated: 1605379707
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH_OIDN.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH_OIDN.ptx
new file mode 100644
index 00000000..b93a4d0f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH_OIDN.ptx
@@ -0,0 +1,167 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 1 .b8 output_buffer[1];
+.global .align 1 .b8 image2[1];
+.global .align 1 .b8 image3[1];
+.global .align 4 .u32 mode;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4modeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename4modeE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4modeE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic4modeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4modeE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<2>;
+ .reg .b16 %rs<12>;
+ .reg .f32 %f<17>;
+ .reg .b32 %r<37>;
+ .reg .b64 %rd<43>;
+
+
+ ld.global.v2.u32 {%r3, %r4}, [pixelID];
+ cvt.u64.u32 %rd5, %r3;
+ cvt.u64.u32 %rd6, %r4;
+ mov.u64 %rd9, output_buffer;
+ cvta.global.u64 %rd4, %rd9;
+ mov.u32 %r1, 2;
+ mov.u32 %r2, 12;
+ mov.u64 %rd8, 0;
+ // inline asm
+ call (%rd3), _rt_buffer_get_64, (%rd4, %r1, %r2, %rd5, %rd6, %rd8, %rd8);
+ // inline asm
+ ld.f32 %f1, [%rd3];
+ ld.f32 %f2, [%rd3+4];
+ ld.f32 %f3, [%rd3+8];
+ ld.global.u32 %r7, [mode];
+ setp.gt.s32 %p1, %r7, 0;
+ ld.global.v2.u32 {%r8, %r9}, [pixelID];
+ cvt.u64.u32 %rd1, %r8;
+ cvt.u64.u32 %rd2, %r9;
+ @%p1 bra BB0_2;
+ bra.uni BB0_1;
+
+BB0_2:
+ mov.u64 %rd41, image2;
+ cvta.global.u64 %rd18, %rd41;
+ mov.u32 %r19, 8;
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd18, %r1, %r19, %rd1, %rd2, %rd8, %rd8);
+ // inline asm
+ ld.global.v2.u32 {%r22, %r23}, [pixelID];
+ cvt.u64.u32 %rd25, %r22;
+ cvt.u64.u32 %rd26, %r23;
+ // inline asm
+ call (%rd23), _rt_buffer_get_64, (%rd18, %r1, %r19, %rd25, %rd26, %rd8, %rd8);
+ // inline asm
+ ld.global.v2.u32 {%r26, %r27}, [pixelID];
+ cvt.u64.u32 %rd31, %r26;
+ cvt.u64.u32 %rd32, %r27;
+ // inline asm
+ call (%rd29), _rt_buffer_get_64, (%rd18, %r1, %r19, %rd31, %rd32, %rd8, %rd8);
+ // inline asm
+ ld.global.v2.u32 {%r30, %r31}, [pixelID];
+ cvt.u64.u32 %rd37, %r30;
+ cvt.u64.u32 %rd38, %r31;
+ mov.u64 %rd42, image3;
+ cvta.global.u64 %rd36, %rd42;
+ mov.u32 %r21, 4;
+ // inline asm
+ call (%rd35), _rt_buffer_get_64, (%rd36, %r1, %r21, %rd37, %rd38, %rd8, %rd8);
+ // inline asm
+ cvt.sat.f32.f32 %f11, %f1;
+ mul.f32 %f12, %f11, 0f437F0000;
+ cvt.rzi.u32.f32 %r34, %f12;
+ cvt.sat.f32.f32 %f13, %f2;
+ mul.f32 %f14, %f13, 0f437F0000;
+ cvt.rzi.u32.f32 %r35, %f14;
+ cvt.sat.f32.f32 %f15, %f3;
+ mul.f32 %f16, %f15, 0f437F0000;
+ cvt.rzi.u32.f32 %r36, %f16;
+ cvt.u16.u32 %rs8, %r36;
+ cvt.u16.u32 %rs9, %r35;
+ cvt.u16.u32 %rs10, %r34;
+ mov.u16 %rs11, 255;
+ st.v4.u8 [%rd35], {%rs10, %rs9, %rs8, %rs11};
+ bra.uni BB0_3;
+
+BB0_1:
+ mov.u64 %rd16, image2;
+ cvta.global.u64 %rd11, %rd16;
+ mov.u32 %r13, 8;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r1, %r13, %rd1, %rd2, %rd8, %rd8);
+ // inline asm
+ mov.f32 %f7, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs4, %f7;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs3, %f3;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs2, %f2;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs1, %f1;}
+
+ // inline asm
+ st.v4.u16 [%rd10], {%rs1, %rs2, %rs3, %rs4};
+
+BB0_3:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH_OIDN.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH_OIDN.ptx.meta
new file mode 100644
index 00000000..018af1dc
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiseFinishSH_OIDN.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0d06c9e9bf3986941abe247af43f8ae1
+timeCreated: 1599897795
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare.ptx
new file mode 100644
index 00000000..9fb2836a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare.ptx
@@ -0,0 +1,586 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 input_buffer[1];
+.global .align 4 .u32 mode;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4modeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename4modeE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4modeE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic4modeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4modeE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<54>;
+ .reg .b16 %rs<4>;
+ .reg .f32 %f<335>;
+ .reg .b32 %r<55>;
+ .reg .b64 %rd<29>;
+
+
+ ld.global.v2.u32 {%r7, %r8}, [pixelID];
+ cvt.u64.u32 %rd4, %r7;
+ cvt.u64.u32 %rd5, %r8;
+ mov.u64 %rd20, image;
+ cvta.global.u64 %rd3, %rd20;
+ mov.u32 %r5, 2;
+ mov.u32 %r6, 8;
+ mov.u64 %rd19, 0;
+ // inline asm
+ call (%rd2), _rt_buffer_get_64, (%rd3, %r5, %r6, %rd4, %rd5, %rd19, %rd19);
+ // inline asm
+ ld.u16 %rs1, [%rd2];
+ // inline asm
+ { cvt.f32.f16 %f44, %rs1;}
+
+ // inline asm
+ ld.global.v2.u32 {%r11, %r12}, [pixelID];
+ cvt.u64.u32 %rd10, %r11;
+ cvt.u64.u32 %rd11, %r12;
+ // inline asm
+ call (%rd8), _rt_buffer_get_64, (%rd3, %r5, %r6, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ ld.u16 %rs2, [%rd8+2];
+ // inline asm
+ { cvt.f32.f16 %f45, %rs2;}
+
+ // inline asm
+ ld.global.v2.u32 {%r15, %r16}, [pixelID];
+ cvt.u64.u32 %rd16, %r15;
+ cvt.u64.u32 %rd17, %r16;
+ // inline asm
+ call (%rd14), _rt_buffer_get_64, (%rd3, %r5, %r6, %rd16, %rd17, %rd19, %rd19);
+ // inline asm
+ ld.u16 %rs3, [%rd14+4];
+ // inline asm
+ { cvt.f32.f16 %f46, %rs3;}
+
+ // inline asm
+ max.f32 %f49, %f44, %f45;
+ max.f32 %f50, %f49, %f46;
+ add.f32 %f51, %f50, 0f3F800000;
+ rcp.rn.f32 %f52, %f51;
+ mul.f32 %f53, %f44, %f52;
+ mul.f32 %f1, %f45, %f52;
+ mul.f32 %f54, %f46, %f52;
+ ld.global.u32 %r19, [mode];
+ setp.eq.s32 %p4, %r19, 1;
+ selp.f32 %f2, %f54, %f53, %p4;
+ selp.f32 %f3, %f53, %f54, %p4;
+ abs.f32 %f5, %f2;
+ setp.lt.f32 %p5, %f5, 0f00800000;
+ mul.f32 %f58, %f5, 0f4B800000;
+ selp.f32 %f59, 0fC3170000, 0fC2FE0000, %p5;
+ selp.f32 %f60, %f58, %f5, %p5;
+ mov.b32 %r20, %f60;
+ and.b32 %r21, %r20, 8388607;
+ or.b32 %r22, %r21, 1065353216;
+ mov.b32 %f61, %r22;
+ shr.u32 %r23, %r20, 23;
+ cvt.rn.f32.u32 %f62, %r23;
+ add.f32 %f63, %f59, %f62;
+ setp.gt.f32 %p6, %f61, 0f3FB504F3;
+ mul.f32 %f64, %f61, 0f3F000000;
+ add.f32 %f65, %f63, 0f3F800000;
+ selp.f32 %f66, %f64, %f61, %p6;
+ selp.f32 %f67, %f65, %f63, %p6;
+ add.f32 %f68, %f66, 0fBF800000;
+ add.f32 %f48, %f66, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f47,%f48;
+ // inline asm
+ add.f32 %f69, %f68, %f68;
+ mul.f32 %f70, %f47, %f69;
+ mul.f32 %f71, %f70, %f70;
+ mov.f32 %f72, 0f3C4CAF63;
+ mov.f32 %f73, 0f3B18F0FE;
+ fma.rn.f32 %f74, %f73, %f71, %f72;
+ mov.f32 %f75, 0f3DAAAABD;
+ fma.rn.f32 %f76, %f74, %f71, %f75;
+ mul.rn.f32 %f77, %f76, %f71;
+ mul.rn.f32 %f78, %f77, %f70;
+ sub.f32 %f79, %f68, %f70;
+ neg.f32 %f80, %f70;
+ add.f32 %f81, %f79, %f79;
+ fma.rn.f32 %f82, %f80, %f68, %f81;
+ mul.rn.f32 %f83, %f47, %f82;
+ add.f32 %f84, %f78, %f70;
+ sub.f32 %f85, %f70, %f84;
+ add.f32 %f86, %f78, %f85;
+ add.f32 %f87, %f83, %f86;
+ add.f32 %f88, %f84, %f87;
+ sub.f32 %f89, %f84, %f88;
+ add.f32 %f90, %f87, %f89;
+ mov.f32 %f91, 0f3F317200;
+ mul.rn.f32 %f92, %f67, %f91;
+ mov.f32 %f93, 0f35BFBE8E;
+ mul.rn.f32 %f94, %f67, %f93;
+ add.f32 %f95, %f92, %f88;
+ sub.f32 %f96, %f92, %f95;
+ add.f32 %f97, %f88, %f96;
+ add.f32 %f98, %f90, %f97;
+ add.f32 %f99, %f94, %f98;
+ add.f32 %f100, %f95, %f99;
+ sub.f32 %f101, %f95, %f100;
+ add.f32 %f102, %f99, %f101;
+ mov.f32 %f103, 0f3EE8BA2E;
+ mul.rn.f32 %f104, %f103, %f100;
+ neg.f32 %f105, %f104;
+ fma.rn.f32 %f106, %f103, %f100, %f105;
+ fma.rn.f32 %f107, %f103, %f102, %f106;
+ mov.f32 %f108, 0f00000000;
+ fma.rn.f32 %f109, %f108, %f100, %f107;
+ add.rn.f32 %f110, %f104, %f109;
+ neg.f32 %f111, %f110;
+ add.rn.f32 %f112, %f104, %f111;
+ add.rn.f32 %f113, %f112, %f109;
+ mov.b32 %r24, %f110;
+ setp.eq.s32 %p7, %r24, 1118925336;
+ add.s32 %r25, %r24, -1;
+ mov.b32 %f114, %r25;
+ add.f32 %f115, %f113, 0f37000000;
+ selp.f32 %f116, %f114, %f110, %p7;
+ selp.f32 %f6, %f115, %f113, %p7;
+ mul.f32 %f117, %f116, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f118, %f117;
+ mov.f32 %f119, 0fBF317200;
+ fma.rn.f32 %f120, %f118, %f119, %f116;
+ mov.f32 %f121, 0fB5BFBE8E;
+ fma.rn.f32 %f122, %f118, %f121, %f120;
+ mul.f32 %f123, %f122, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f124, %f123;
+ add.f32 %f125, %f118, 0f00000000;
+ ex2.approx.f32 %f126, %f125;
+ mul.f32 %f127, %f124, %f126;
+ setp.lt.f32 %p8, %f116, 0fC2D20000;
+ selp.f32 %f128, 0f00000000, %f127, %p8;
+ setp.gt.f32 %p9, %f116, 0f42D20000;
+ selp.f32 %f326, 0f7F800000, %f128, %p9;
+ setp.eq.f32 %p10, %f326, 0f7F800000;
+ @%p10 bra BB0_2;
+
+ fma.rn.f32 %f326, %f326, %f6, %f326;
+
+BB0_2:
+ mov.f32 %f325, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f324, %f325;
+ fma.rn.f32 %f323, %f324, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f322, %f323;
+ setp.lt.f32 %p11, %f2, 0f00000000;
+ setp.eq.f32 %p12, %f322, 0f3F800000;
+ and.pred %p1, %p11, %p12;
+ mov.b32 %r26, %f326;
+ xor.b32 %r27, %r26, -2147483648;
+ mov.b32 %f129, %r27;
+ selp.f32 %f328, %f129, %f326, %p1;
+ setp.eq.f32 %p13, %f2, 0f00000000;
+ @%p13 bra BB0_5;
+ bra.uni BB0_3;
+
+BB0_5:
+ add.f32 %f132, %f2, %f2;
+ selp.f32 %f328, %f132, 0f00000000, %p12;
+ bra.uni BB0_6;
+
+BB0_3:
+ setp.geu.f32 %p14, %f2, 0f00000000;
+ @%p14 bra BB0_6;
+
+ mov.f32 %f321, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f131, %f321;
+ setp.neu.f32 %p15, %f131, 0f3EE8BA2E;
+ selp.f32 %f328, 0f7FFFFFFF, %f328, %p15;
+
+BB0_6:
+ abs.f32 %f298, %f2;
+ add.f32 %f133, %f298, 0f3EE8BA2E;
+ mov.b32 %r28, %f133;
+ setp.lt.s32 %p17, %r28, 2139095040;
+ @%p17 bra BB0_11;
+
+ abs.f32 %f319, %f2;
+ setp.gtu.f32 %p18, %f319, 0f7F800000;
+ @%p18 bra BB0_10;
+ bra.uni BB0_8;
+
+BB0_10:
+ add.f32 %f328, %f2, 0f3EE8BA2E;
+ bra.uni BB0_11;
+
+BB0_8:
+ abs.f32 %f320, %f2;
+ setp.neu.f32 %p19, %f320, 0f7F800000;
+ @%p19 bra BB0_11;
+
+ selp.f32 %f328, 0fFF800000, 0f7F800000, %p1;
+
+BB0_11:
+ mov.f32 %f307, 0fB5BFBE8E;
+ mov.f32 %f306, 0fBF317200;
+ mov.f32 %f305, 0f00000000;
+ mov.f32 %f304, 0f35BFBE8E;
+ mov.f32 %f303, 0f3F317200;
+ mov.f32 %f302, 0f3DAAAABD;
+ mov.f32 %f301, 0f3C4CAF63;
+ mov.f32 %f300, 0f3B18F0FE;
+ mov.f32 %f299, 0f3EE8BA2E;
+ setp.eq.f32 %p20, %f2, 0f3F800000;
+ selp.f32 %f136, 0f3F800000, %f328, %p20;
+ cvt.sat.f32.f32 %f17, %f136;
+ abs.f32 %f18, %f1;
+ setp.lt.f32 %p21, %f18, 0f00800000;
+ mul.f32 %f137, %f18, 0f4B800000;
+ selp.f32 %f138, 0fC3170000, 0fC2FE0000, %p21;
+ selp.f32 %f139, %f137, %f18, %p21;
+ mov.b32 %r29, %f139;
+ and.b32 %r30, %r29, 8388607;
+ or.b32 %r31, %r30, 1065353216;
+ mov.b32 %f140, %r31;
+ shr.u32 %r32, %r29, 23;
+ cvt.rn.f32.u32 %f141, %r32;
+ add.f32 %f142, %f138, %f141;
+ setp.gt.f32 %p22, %f140, 0f3FB504F3;
+ mul.f32 %f143, %f140, 0f3F000000;
+ add.f32 %f144, %f142, 0f3F800000;
+ selp.f32 %f145, %f143, %f140, %p22;
+ selp.f32 %f146, %f144, %f142, %p22;
+ add.f32 %f147, %f145, 0fBF800000;
+ add.f32 %f135, %f145, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f134,%f135;
+ // inline asm
+ add.f32 %f148, %f147, %f147;
+ mul.f32 %f149, %f134, %f148;
+ mul.f32 %f150, %f149, %f149;
+ fma.rn.f32 %f153, %f300, %f150, %f301;
+ fma.rn.f32 %f155, %f153, %f150, %f302;
+ mul.rn.f32 %f156, %f155, %f150;
+ mul.rn.f32 %f157, %f156, %f149;
+ sub.f32 %f158, %f147, %f149;
+ neg.f32 %f159, %f149;
+ add.f32 %f160, %f158, %f158;
+ fma.rn.f32 %f161, %f159, %f147, %f160;
+ mul.rn.f32 %f162, %f134, %f161;
+ add.f32 %f163, %f157, %f149;
+ sub.f32 %f164, %f149, %f163;
+ add.f32 %f165, %f157, %f164;
+ add.f32 %f166, %f162, %f165;
+ add.f32 %f167, %f163, %f166;
+ sub.f32 %f168, %f163, %f167;
+ add.f32 %f169, %f166, %f168;
+ mul.rn.f32 %f171, %f146, %f303;
+ mul.rn.f32 %f173, %f146, %f304;
+ add.f32 %f174, %f171, %f167;
+ sub.f32 %f175, %f171, %f174;
+ add.f32 %f176, %f167, %f175;
+ add.f32 %f177, %f169, %f176;
+ add.f32 %f178, %f173, %f177;
+ add.f32 %f179, %f174, %f178;
+ sub.f32 %f180, %f174, %f179;
+ add.f32 %f181, %f178, %f180;
+ mul.rn.f32 %f183, %f299, %f179;
+ neg.f32 %f184, %f183;
+ fma.rn.f32 %f185, %f299, %f179, %f184;
+ fma.rn.f32 %f186, %f299, %f181, %f185;
+ fma.rn.f32 %f188, %f305, %f179, %f186;
+ add.rn.f32 %f189, %f183, %f188;
+ neg.f32 %f190, %f189;
+ add.rn.f32 %f191, %f183, %f190;
+ add.rn.f32 %f192, %f191, %f188;
+ mov.b32 %r33, %f189;
+ setp.eq.s32 %p23, %r33, 1118925336;
+ add.s32 %r34, %r33, -1;
+ mov.b32 %f193, %r34;
+ add.f32 %f194, %f192, 0f37000000;
+ selp.f32 %f195, %f193, %f189, %p23;
+ selp.f32 %f19, %f194, %f192, %p23;
+ mul.f32 %f196, %f195, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f197, %f196;
+ fma.rn.f32 %f199, %f197, %f306, %f195;
+ fma.rn.f32 %f201, %f197, %f307, %f199;
+ mul.f32 %f202, %f201, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f203, %f202;
+ add.f32 %f204, %f197, 0f00000000;
+ ex2.approx.f32 %f205, %f204;
+ mul.f32 %f206, %f203, %f205;
+ setp.lt.f32 %p24, %f195, 0fC2D20000;
+ selp.f32 %f207, 0f00000000, %f206, %p24;
+ setp.gt.f32 %p25, %f195, 0f42D20000;
+ selp.f32 %f329, 0f7F800000, %f207, %p25;
+ setp.eq.f32 %p26, %f329, 0f7F800000;
+ @%p26 bra BB0_13;
+
+ fma.rn.f32 %f329, %f329, %f19, %f329;
+
+BB0_13:
+ setp.lt.f32 %p27, %f1, 0f00000000;
+ and.pred %p2, %p27, %p12;
+ mov.b32 %r35, %f329;
+ xor.b32 %r36, %r35, -2147483648;
+ mov.b32 %f208, %r36;
+ selp.f32 %f331, %f208, %f329, %p2;
+ setp.eq.f32 %p29, %f1, 0f00000000;
+ @%p29 bra BB0_16;
+ bra.uni BB0_14;
+
+BB0_16:
+ add.f32 %f211, %f1, %f1;
+ selp.f32 %f331, %f211, 0f00000000, %p12;
+ bra.uni BB0_17;
+
+BB0_14:
+ setp.geu.f32 %p30, %f1, 0f00000000;
+ @%p30 bra BB0_17;
+
+ mov.f32 %f318, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f210, %f318;
+ setp.neu.f32 %p31, %f210, 0f3EE8BA2E;
+ selp.f32 %f331, 0f7FFFFFFF, %f331, %p31;
+
+BB0_17:
+ add.f32 %f212, %f18, 0f3EE8BA2E;
+ mov.b32 %r37, %f212;
+ setp.lt.s32 %p33, %r37, 2139095040;
+ @%p33 bra BB0_22;
+
+ setp.gtu.f32 %p34, %f18, 0f7F800000;
+ @%p34 bra BB0_21;
+ bra.uni BB0_19;
+
+BB0_21:
+ add.f32 %f331, %f1, 0f3EE8BA2E;
+ bra.uni BB0_22;
+
+BB0_19:
+ setp.neu.f32 %p35, %f18, 0f7F800000;
+ @%p35 bra BB0_22;
+
+ selp.f32 %f331, 0fFF800000, 0f7F800000, %p2;
+
+BB0_22:
+ mov.f32 %f316, 0fB5BFBE8E;
+ mov.f32 %f315, 0fBF317200;
+ mov.f32 %f314, 0f00000000;
+ mov.f32 %f313, 0f35BFBE8E;
+ mov.f32 %f312, 0f3F317200;
+ mov.f32 %f311, 0f3DAAAABD;
+ mov.f32 %f310, 0f3C4CAF63;
+ mov.f32 %f309, 0f3B18F0FE;
+ mov.f32 %f308, 0f3EE8BA2E;
+ setp.eq.f32 %p36, %f1, 0f3F800000;
+ selp.f32 %f215, 0f3F800000, %f331, %p36;
+ cvt.sat.f32.f32 %f30, %f215;
+ abs.f32 %f31, %f3;
+ setp.lt.f32 %p37, %f31, 0f00800000;
+ mul.f32 %f216, %f31, 0f4B800000;
+ selp.f32 %f217, 0fC3170000, 0fC2FE0000, %p37;
+ selp.f32 %f218, %f216, %f31, %p37;
+ mov.b32 %r38, %f218;
+ and.b32 %r39, %r38, 8388607;
+ or.b32 %r40, %r39, 1065353216;
+ mov.b32 %f219, %r40;
+ shr.u32 %r41, %r38, 23;
+ cvt.rn.f32.u32 %f220, %r41;
+ add.f32 %f221, %f217, %f220;
+ setp.gt.f32 %p38, %f219, 0f3FB504F3;
+ mul.f32 %f222, %f219, 0f3F000000;
+ add.f32 %f223, %f221, 0f3F800000;
+ selp.f32 %f224, %f222, %f219, %p38;
+ selp.f32 %f225, %f223, %f221, %p38;
+ add.f32 %f226, %f224, 0fBF800000;
+ add.f32 %f214, %f224, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f213,%f214;
+ // inline asm
+ add.f32 %f227, %f226, %f226;
+ mul.f32 %f228, %f213, %f227;
+ mul.f32 %f229, %f228, %f228;
+ fma.rn.f32 %f232, %f309, %f229, %f310;
+ fma.rn.f32 %f234, %f232, %f229, %f311;
+ mul.rn.f32 %f235, %f234, %f229;
+ mul.rn.f32 %f236, %f235, %f228;
+ sub.f32 %f237, %f226, %f228;
+ neg.f32 %f238, %f228;
+ add.f32 %f239, %f237, %f237;
+ fma.rn.f32 %f240, %f238, %f226, %f239;
+ mul.rn.f32 %f241, %f213, %f240;
+ add.f32 %f242, %f236, %f228;
+ sub.f32 %f243, %f228, %f242;
+ add.f32 %f244, %f236, %f243;
+ add.f32 %f245, %f241, %f244;
+ add.f32 %f246, %f242, %f245;
+ sub.f32 %f247, %f242, %f246;
+ add.f32 %f248, %f245, %f247;
+ mul.rn.f32 %f250, %f225, %f312;
+ mul.rn.f32 %f252, %f225, %f313;
+ add.f32 %f253, %f250, %f246;
+ sub.f32 %f254, %f250, %f253;
+ add.f32 %f255, %f246, %f254;
+ add.f32 %f256, %f248, %f255;
+ add.f32 %f257, %f252, %f256;
+ add.f32 %f258, %f253, %f257;
+ sub.f32 %f259, %f253, %f258;
+ add.f32 %f260, %f257, %f259;
+ mul.rn.f32 %f262, %f308, %f258;
+ neg.f32 %f263, %f262;
+ fma.rn.f32 %f264, %f308, %f258, %f263;
+ fma.rn.f32 %f265, %f308, %f260, %f264;
+ fma.rn.f32 %f267, %f314, %f258, %f265;
+ add.rn.f32 %f268, %f262, %f267;
+ neg.f32 %f269, %f268;
+ add.rn.f32 %f270, %f262, %f269;
+ add.rn.f32 %f271, %f270, %f267;
+ mov.b32 %r42, %f268;
+ setp.eq.s32 %p39, %r42, 1118925336;
+ add.s32 %r43, %r42, -1;
+ mov.b32 %f272, %r43;
+ add.f32 %f273, %f271, 0f37000000;
+ selp.f32 %f274, %f272, %f268, %p39;
+ selp.f32 %f32, %f273, %f271, %p39;
+ mul.f32 %f275, %f274, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f276, %f275;
+ fma.rn.f32 %f278, %f276, %f315, %f274;
+ fma.rn.f32 %f280, %f276, %f316, %f278;
+ mul.f32 %f281, %f280, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f282, %f281;
+ add.f32 %f283, %f276, 0f00000000;
+ ex2.approx.f32 %f284, %f283;
+ mul.f32 %f285, %f282, %f284;
+ setp.lt.f32 %p40, %f274, 0fC2D20000;
+ selp.f32 %f286, 0f00000000, %f285, %p40;
+ setp.gt.f32 %p41, %f274, 0f42D20000;
+ selp.f32 %f332, 0f7F800000, %f286, %p41;
+ setp.eq.f32 %p42, %f332, 0f7F800000;
+ @%p42 bra BB0_24;
+
+ fma.rn.f32 %f332, %f332, %f32, %f332;
+
+BB0_24:
+ setp.lt.f32 %p43, %f3, 0f00000000;
+ and.pred %p3, %p43, %p12;
+ mov.b32 %r44, %f332;
+ xor.b32 %r45, %r44, -2147483648;
+ mov.b32 %f287, %r45;
+ selp.f32 %f334, %f287, %f332, %p3;
+ setp.eq.f32 %p45, %f3, 0f00000000;
+ @%p45 bra BB0_27;
+ bra.uni BB0_25;
+
+BB0_27:
+ add.f32 %f290, %f3, %f3;
+ selp.f32 %f334, %f290, 0f00000000, %p12;
+ bra.uni BB0_28;
+
+BB0_25:
+ setp.geu.f32 %p46, %f3, 0f00000000;
+ @%p46 bra BB0_28;
+
+ mov.f32 %f317, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f289, %f317;
+ setp.neu.f32 %p47, %f289, 0f3EE8BA2E;
+ selp.f32 %f334, 0f7FFFFFFF, %f334, %p47;
+
+BB0_28:
+ add.f32 %f291, %f31, 0f3EE8BA2E;
+ mov.b32 %r46, %f291;
+ setp.lt.s32 %p49, %r46, 2139095040;
+ @%p49 bra BB0_33;
+
+ setp.gtu.f32 %p50, %f31, 0f7F800000;
+ @%p50 bra BB0_32;
+ bra.uni BB0_30;
+
+BB0_32:
+ add.f32 %f334, %f3, 0f3EE8BA2E;
+ bra.uni BB0_33;
+
+BB0_30:
+ setp.neu.f32 %p51, %f31, 0f7F800000;
+ @%p51 bra BB0_33;
+
+ selp.f32 %f334, 0fFF800000, 0f7F800000, %p3;
+
+BB0_33:
+ mov.u64 %rd28, 0;
+ mov.u32 %r54, 2;
+ setp.eq.f32 %p52, %f3, 0f3F800000;
+ selp.f32 %f292, 0f3F800000, %f334, %p52;
+ cvt.sat.f32.f32 %f43, %f292;
+ ld.global.v2.u32 {%r49, %r50}, [pixelID];
+ cvt.u64.u32 %rd23, %r49;
+ cvt.u64.u32 %rd24, %r50;
+ mov.u64 %rd27, input_buffer;
+ cvta.global.u64 %rd22, %rd27;
+ mov.u32 %r48, 16;
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd22, %r54, %r48, %rd23, %rd24, %rd28, %rd28);
+ // inline asm
+ ld.global.u32 %r53, [mode];
+ setp.eq.s32 %p53, %r53, 0;
+ @%p53 bra BB0_35;
+
+ mov.f32 %f293, 0f3F800000;
+ sub.f32 %f294, %f293, %f43;
+ sub.f32 %f295, %f293, %f30;
+ sub.f32 %f296, %f293, %f17;
+ st.v4.f32 [%rd21], {%f296, %f295, %f294, %f293};
+ bra.uni BB0_36;
+
+BB0_35:
+ mov.f32 %f297, 0f3F800000;
+ st.v4.f32 [%rd21], {%f17, %f30, %f43, %f297};
+
+BB0_36:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare.ptx.meta
new file mode 100644
index 00000000..efea276a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3c975724414595b499496e69340c5672
+timeCreated: 1526332011
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare72.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare72.ptx
new file mode 100644
index 00000000..391b5873
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare72.ptx
@@ -0,0 +1,71 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl __raygen__oxMain
+.const .align 8 .b8 cs[32];
+
+.visible .entry __raygen__oxMain(
+
+)
+{
+ .reg .pred %p<3>;
+ .reg .b16 %rs<8>;
+ .reg .f32 %f<13>;
+ .reg .b32 %r<9>;
+ .reg .b64 %rd<9>;
+
+
+ // inline asm
+ call (%r1), _optix_get_launch_index_x, ();
+ // inline asm
+ // inline asm
+ call (%r2), _optix_get_launch_index_y, ();
+ // inline asm
+ ld.const.u64 %rd1, [cs];
+ cvta.to.global.u64 %rd2, %rd1;
+ ld.const.v2.u32 {%r4, %r5}, [cs+24];
+ mad.lo.s32 %r7, %r4, %r2, %r1;
+ mul.wide.u32 %rd3, %r7, 8;
+ add.s64 %rd4, %rd2, %rd3;
+ ld.global.v4.u16 {%rs4, %rs5, %rs6, %rs7}, [%rd4];
+ // inline asm
+ { cvt.f32.f16 %f1, %rs4;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f2, %rs5;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f3, %rs6;}
+
+ // inline asm
+ setp.eq.s32 %p1, %r5, 1;
+ selp.f32 %f4, %f1, %f3, %p1;
+ selp.f32 %f5, %f3, %f1, %p1;
+ setp.eq.s32 %p2, %r5, 0;
+ mov.f32 %f6, 0f3F800000;
+ sub.f32 %f7, %f6, %f5;
+ sub.f32 %f8, %f6, %f2;
+ sub.f32 %f9, %f6, %f4;
+ ld.const.u64 %rd5, [cs+8];
+ cvta.to.global.u64 %rd6, %rd5;
+ mul.wide.u32 %rd7, %r7, 16;
+ add.s64 %rd8, %rd6, %rd7;
+ selp.f32 %f10, %f4, %f9, %p2;
+ selp.f32 %f11, %f5, %f7, %p2;
+ selp.f32 %f12, %f2, %f8, %p2;
+ st.global.v4.f32 [%rd8], {%f11, %f12, %f10, %f6};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare72.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare72.ptx.meta
new file mode 100644
index 00000000..fe6cff2b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepare72.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 37759ebb3c14dd94c8fd9cb41ba67722
+timeCreated: 1605208943
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareOIDN.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareOIDN.ptx
new file mode 100644
index 00000000..d2b42d8d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareOIDN.ptx
@@ -0,0 +1,116 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 input_buffer[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .b16 %rs<4>;
+ .reg .f32 %f<4>;
+ .reg .b32 %r<25>;
+ .reg .b64 %rd<27>;
+
+
+ ld.global.v2.u32 {%r9, %r10}, [pixelID];
+ cvt.u64.u32 %rd3, %r9;
+ cvt.u64.u32 %rd4, %r10;
+ mov.u64 %rd25, image;
+ cvta.global.u64 %rd2, %rd25;
+ mov.u32 %r7, 2;
+ mov.u32 %r6, 8;
+ mov.u64 %rd24, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r7, %r6, %rd3, %rd4, %rd24, %rd24);
+ // inline asm
+ ld.u16 %rs1, [%rd1];
+ // inline asm
+ { cvt.f32.f16 %f1, %rs1;}
+
+ // inline asm
+ ld.global.v2.u32 {%r13, %r14}, [pixelID];
+ cvt.u64.u32 %rd9, %r13;
+ cvt.u64.u32 %rd10, %r14;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd2, %r7, %r6, %rd9, %rd10, %rd24, %rd24);
+ // inline asm
+ ld.u16 %rs2, [%rd7+2];
+ // inline asm
+ { cvt.f32.f16 %f2, %rs2;}
+
+ // inline asm
+ ld.global.v2.u32 {%r17, %r18}, [pixelID];
+ cvt.u64.u32 %rd15, %r17;
+ cvt.u64.u32 %rd16, %r18;
+ // inline asm
+ call (%rd13), _rt_buffer_get_64, (%rd2, %r7, %r6, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ ld.u16 %rs3, [%rd13+4];
+ // inline asm
+ { cvt.f32.f16 %f3, %rs3;}
+
+ // inline asm
+ ld.global.v2.u32 {%r21, %r22}, [pixelID];
+ cvt.u64.u32 %rd21, %r21;
+ cvt.u64.u32 %rd22, %r22;
+ mov.u64 %rd26, input_buffer;
+ cvta.global.u64 %rd20, %rd26;
+ mov.u32 %r8, 12;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd20, %r7, %r8, %rd21, %rd22, %rd24, %rd24);
+ // inline asm
+ st.f32 [%rd19+8], %f3;
+ st.f32 [%rd19+4], %f2;
+ st.f32 [%rd19], %f1;
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareOIDN.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareOIDN.ptx.meta
new file mode 100644
index 00000000..9c476601
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareOIDN.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 239bdcce70626464e9dbf82737527c87
+timeCreated: 1589355275
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH.ptx
new file mode 100644
index 00000000..92bce048
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH.ptx
@@ -0,0 +1,595 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 1 .b8 input_buffer[1];
+.global .align 1 .b8 image[1];
+.global .align 4 .u32 mode;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4modeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename4modeE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4modeE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic4modeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4modeE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<53>;
+ .reg .b16 %rs<4>;
+ .reg .f32 %f<327>;
+ .reg .b32 %r<67>;
+ .reg .b64 %rd<48>;
+
+
+ ld.global.u32 %r1, [mode];
+ setp.gt.s32 %p4, %r1, 0;
+ ld.global.v2.u32 {%r2, %r3}, [pixelID];
+ cvt.u64.u32 %rd1, %r2;
+ cvt.u64.u32 %rd2, %r3;
+ @%p4 bra BB0_2;
+ bra.uni BB0_1;
+
+BB0_2:
+ mov.u64 %rd40, input_buffer;
+ cvta.global.u64 %rd23, %rd40;
+ mov.u32 %r24, 2;
+ mov.u32 %r25, 16;
+ mov.u64 %rd39, 0;
+ // inline asm
+ call (%rd22), _rt_buffer_get_64, (%rd23, %r24, %r25, %rd1, %rd2, %rd39, %rd39);
+ // inline asm
+ ld.f32 %f315, [%rd22];
+ ld.global.v2.u32 {%r26, %r27}, [pixelID];
+ cvt.u64.u32 %rd30, %r26;
+ cvt.u64.u32 %rd31, %r27;
+ // inline asm
+ call (%rd28), _rt_buffer_get_64, (%rd23, %r24, %r25, %rd30, %rd31, %rd39, %rd39);
+ // inline asm
+ ld.f32 %f316, [%rd28+4];
+ ld.global.v2.u32 {%r30, %r31}, [pixelID];
+ cvt.u64.u32 %rd36, %r30;
+ cvt.u64.u32 %rd37, %r31;
+ // inline asm
+ call (%rd34), _rt_buffer_get_64, (%rd23, %r24, %r25, %rd36, %rd37, %rd39, %rd39);
+ // inline asm
+ ld.f32 %f317, [%rd34+8];
+ bra.uni BB0_3;
+
+BB0_1:
+ mov.u64 %rd21, image;
+ cvta.global.u64 %rd4, %rd21;
+ mov.u32 %r10, 2;
+ mov.u32 %r11, 8;
+ mov.u64 %rd20, 0;
+ // inline asm
+ call (%rd3), _rt_buffer_get_64, (%rd4, %r10, %r11, %rd1, %rd2, %rd20, %rd20);
+ // inline asm
+ ld.u16 %rs1, [%rd3];
+ // inline asm
+ { cvt.f32.f16 %f49, %rs1;}
+
+ // inline asm
+ ld.global.v2.u32 {%r12, %r13}, [pixelID];
+ cvt.u64.u32 %rd11, %r12;
+ cvt.u64.u32 %rd12, %r13;
+ // inline asm
+ call (%rd9), _rt_buffer_get_64, (%rd4, %r10, %r11, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ ld.u16 %rs2, [%rd9+2];
+ // inline asm
+ { cvt.f32.f16 %f50, %rs2;}
+
+ // inline asm
+ ld.global.v2.u32 {%r16, %r17}, [pixelID];
+ cvt.u64.u32 %rd17, %r16;
+ cvt.u64.u32 %rd18, %r17;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd4, %r10, %r11, %rd17, %rd18, %rd20, %rd20);
+ // inline asm
+ ld.u16 %rs3, [%rd15+4];
+ // inline asm
+ { cvt.f32.f16 %f51, %rs3;}
+
+ // inline asm
+ mul.f32 %f52, %f49, 0f40800000;
+ mul.f32 %f53, %f50, 0f40800000;
+ mul.f32 %f54, %f51, 0f40800000;
+ max.f32 %f55, %f52, %f53;
+ max.f32 %f56, %f55, %f54;
+ add.f32 %f57, %f56, 0f3F800000;
+ rcp.rn.f32 %f58, %f57;
+ mul.f32 %f315, %f52, %f58;
+ mul.f32 %f316, %f53, %f58;
+ mul.f32 %f317, %f54, %f58;
+
+BB0_3:
+ mov.f32 %f61, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f62, %f61;
+ fma.rn.f32 %f63, %f62, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f10, %f63;
+ abs.f32 %f11, %f315;
+ setp.lt.f32 %p5, %f11, 0f00800000;
+ mul.f32 %f64, %f11, 0f4B800000;
+ selp.f32 %f65, 0fC3170000, 0fC2FE0000, %p5;
+ selp.f32 %f66, %f64, %f11, %p5;
+ mov.b32 %r34, %f66;
+ and.b32 %r35, %r34, 8388607;
+ or.b32 %r36, %r35, 1065353216;
+ mov.b32 %f67, %r36;
+ shr.u32 %r37, %r34, 23;
+ cvt.rn.f32.u32 %f68, %r37;
+ add.f32 %f69, %f65, %f68;
+ setp.gt.f32 %p6, %f67, 0f3FB504F3;
+ mul.f32 %f70, %f67, 0f3F000000;
+ add.f32 %f71, %f69, 0f3F800000;
+ selp.f32 %f72, %f70, %f67, %p6;
+ selp.f32 %f73, %f71, %f69, %p6;
+ add.f32 %f74, %f72, 0fBF800000;
+ add.f32 %f60, %f72, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f59,%f60;
+ // inline asm
+ add.f32 %f75, %f74, %f74;
+ mul.f32 %f76, %f59, %f75;
+ mul.f32 %f77, %f76, %f76;
+ mov.f32 %f78, 0f3C4CAF63;
+ mov.f32 %f79, 0f3B18F0FE;
+ fma.rn.f32 %f80, %f79, %f77, %f78;
+ mov.f32 %f81, 0f3DAAAABD;
+ fma.rn.f32 %f82, %f80, %f77, %f81;
+ mul.rn.f32 %f83, %f82, %f77;
+ mul.rn.f32 %f84, %f83, %f76;
+ sub.f32 %f85, %f74, %f76;
+ neg.f32 %f86, %f76;
+ add.f32 %f87, %f85, %f85;
+ fma.rn.f32 %f88, %f86, %f74, %f87;
+ mul.rn.f32 %f89, %f59, %f88;
+ add.f32 %f90, %f84, %f76;
+ sub.f32 %f91, %f76, %f90;
+ add.f32 %f92, %f84, %f91;
+ add.f32 %f93, %f89, %f92;
+ add.f32 %f94, %f90, %f93;
+ sub.f32 %f95, %f90, %f94;
+ add.f32 %f96, %f93, %f95;
+ mov.f32 %f97, 0f3F317200;
+ mul.rn.f32 %f98, %f73, %f97;
+ mov.f32 %f99, 0f35BFBE8E;
+ mul.rn.f32 %f100, %f73, %f99;
+ add.f32 %f101, %f98, %f94;
+ sub.f32 %f102, %f98, %f101;
+ add.f32 %f103, %f94, %f102;
+ add.f32 %f104, %f96, %f103;
+ add.f32 %f105, %f100, %f104;
+ add.f32 %f106, %f101, %f105;
+ sub.f32 %f107, %f101, %f106;
+ add.f32 %f108, %f105, %f107;
+ mov.f32 %f109, 0f3EE8BA2E;
+ mul.rn.f32 %f110, %f109, %f106;
+ neg.f32 %f111, %f110;
+ fma.rn.f32 %f112, %f109, %f106, %f111;
+ fma.rn.f32 %f113, %f109, %f108, %f112;
+ mov.f32 %f114, 0f00000000;
+ fma.rn.f32 %f115, %f114, %f106, %f113;
+ add.rn.f32 %f116, %f110, %f115;
+ neg.f32 %f117, %f116;
+ add.rn.f32 %f118, %f110, %f117;
+ add.rn.f32 %f119, %f118, %f115;
+ mov.b32 %r38, %f116;
+ setp.eq.s32 %p7, %r38, 1118925336;
+ add.s32 %r39, %r38, -1;
+ mov.b32 %f120, %r39;
+ add.f32 %f121, %f119, 0f37000000;
+ selp.f32 %f122, %f120, %f116, %p7;
+ selp.f32 %f12, %f121, %f119, %p7;
+ mul.f32 %f123, %f122, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f124, %f123;
+ mov.f32 %f125, 0fBF317200;
+ fma.rn.f32 %f126, %f124, %f125, %f122;
+ mov.f32 %f127, 0fB5BFBE8E;
+ fma.rn.f32 %f128, %f124, %f127, %f126;
+ mul.f32 %f129, %f128, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f130, %f129;
+ add.f32 %f131, %f124, 0f00000000;
+ ex2.approx.f32 %f132, %f131;
+ mul.f32 %f133, %f130, %f132;
+ setp.lt.f32 %p8, %f122, 0fC2D20000;
+ selp.f32 %f134, 0f00000000, %f133, %p8;
+ setp.gt.f32 %p9, %f122, 0f42D20000;
+ selp.f32 %f318, 0f7F800000, %f134, %p9;
+ setp.eq.f32 %p10, %f318, 0f7F800000;
+ @%p10 bra BB0_5;
+
+ fma.rn.f32 %f318, %f318, %f12, %f318;
+
+BB0_5:
+ setp.lt.f32 %p11, %f315, 0f00000000;
+ setp.eq.f32 %p12, %f10, 0f3F800000;
+ and.pred %p1, %p11, %p12;
+ mov.b32 %r40, %f318;
+ xor.b32 %r41, %r40, -2147483648;
+ mov.b32 %f135, %r41;
+ selp.f32 %f320, %f135, %f318, %p1;
+ setp.eq.f32 %p13, %f315, 0f00000000;
+ @%p13 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f138, %f315, %f315;
+ selp.f32 %f320, %f138, 0f00000000, %p12;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p14, %f315, 0f00000000;
+ @%p14 bra BB0_9;
+
+ cvt.rzi.f32.f32 %f137, %f109;
+ setp.neu.f32 %p15, %f137, 0f3EE8BA2E;
+ selp.f32 %f320, 0f7FFFFFFF, %f320, %p15;
+
+BB0_9:
+ add.f32 %f139, %f11, 0f3EE8BA2E;
+ mov.b32 %r42, %f139;
+ setp.lt.s32 %p17, %r42, 2139095040;
+ @%p17 bra BB0_14;
+
+ setp.gtu.f32 %p18, %f11, 0f7F800000;
+ @%p18 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f320, %f315, 0f3EE8BA2E;
+ bra.uni BB0_14;
+
+BB0_11:
+ setp.neu.f32 %p19, %f11, 0f7F800000;
+ @%p19 bra BB0_14;
+
+ selp.f32 %f320, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ mov.f32 %f307, 0fBF317200;
+ mov.f32 %f306, 0f00000000;
+ mov.f32 %f305, 0f35BFBE8E;
+ mov.f32 %f304, 0f3F317200;
+ mov.f32 %f303, 0f3DAAAABD;
+ mov.f32 %f302, 0f3C4CAF63;
+ mov.f32 %f301, 0f3B18F0FE;
+ setp.eq.f32 %p20, %f315, 0f3F800000;
+ selp.f32 %f142, 0f3F800000, %f320, %p20;
+ cvt.sat.f32.f32 %f23, %f142;
+ abs.f32 %f24, %f316;
+ setp.lt.f32 %p21, %f24, 0f00800000;
+ mul.f32 %f143, %f24, 0f4B800000;
+ selp.f32 %f144, 0fC3170000, 0fC2FE0000, %p21;
+ selp.f32 %f145, %f143, %f24, %p21;
+ mov.b32 %r43, %f145;
+ and.b32 %r44, %r43, 8388607;
+ or.b32 %r45, %r44, 1065353216;
+ mov.b32 %f146, %r45;
+ shr.u32 %r46, %r43, 23;
+ cvt.rn.f32.u32 %f147, %r46;
+ add.f32 %f148, %f144, %f147;
+ setp.gt.f32 %p22, %f146, 0f3FB504F3;
+ mul.f32 %f149, %f146, 0f3F000000;
+ add.f32 %f150, %f148, 0f3F800000;
+ selp.f32 %f151, %f149, %f146, %p22;
+ selp.f32 %f152, %f150, %f148, %p22;
+ add.f32 %f153, %f151, 0fBF800000;
+ add.f32 %f141, %f151, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f140,%f141;
+ // inline asm
+ add.f32 %f154, %f153, %f153;
+ mul.f32 %f155, %f140, %f154;
+ mul.f32 %f156, %f155, %f155;
+ fma.rn.f32 %f159, %f301, %f156, %f302;
+ fma.rn.f32 %f161, %f159, %f156, %f303;
+ mul.rn.f32 %f162, %f161, %f156;
+ mul.rn.f32 %f163, %f162, %f155;
+ sub.f32 %f164, %f153, %f155;
+ neg.f32 %f165, %f155;
+ add.f32 %f166, %f164, %f164;
+ fma.rn.f32 %f167, %f165, %f153, %f166;
+ mul.rn.f32 %f168, %f140, %f167;
+ add.f32 %f169, %f163, %f155;
+ sub.f32 %f170, %f155, %f169;
+ add.f32 %f171, %f163, %f170;
+ add.f32 %f172, %f168, %f171;
+ add.f32 %f173, %f169, %f172;
+ sub.f32 %f174, %f169, %f173;
+ add.f32 %f175, %f172, %f174;
+ mul.rn.f32 %f177, %f152, %f304;
+ mul.rn.f32 %f179, %f152, %f305;
+ add.f32 %f180, %f177, %f173;
+ sub.f32 %f181, %f177, %f180;
+ add.f32 %f182, %f173, %f181;
+ add.f32 %f183, %f175, %f182;
+ add.f32 %f184, %f179, %f183;
+ add.f32 %f185, %f180, %f184;
+ sub.f32 %f186, %f180, %f185;
+ add.f32 %f187, %f184, %f186;
+ mul.rn.f32 %f189, %f109, %f185;
+ neg.f32 %f190, %f189;
+ fma.rn.f32 %f191, %f109, %f185, %f190;
+ fma.rn.f32 %f192, %f109, %f187, %f191;
+ fma.rn.f32 %f194, %f306, %f185, %f192;
+ add.rn.f32 %f195, %f189, %f194;
+ neg.f32 %f196, %f195;
+ add.rn.f32 %f197, %f189, %f196;
+ add.rn.f32 %f198, %f197, %f194;
+ mov.b32 %r47, %f195;
+ setp.eq.s32 %p23, %r47, 1118925336;
+ add.s32 %r48, %r47, -1;
+ mov.b32 %f199, %r48;
+ add.f32 %f200, %f198, 0f37000000;
+ selp.f32 %f201, %f199, %f195, %p23;
+ selp.f32 %f25, %f200, %f198, %p23;
+ mul.f32 %f202, %f201, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f203, %f202;
+ fma.rn.f32 %f205, %f203, %f307, %f201;
+ fma.rn.f32 %f207, %f203, %f127, %f205;
+ mul.f32 %f208, %f207, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f209, %f208;
+ add.f32 %f210, %f203, 0f00000000;
+ ex2.approx.f32 %f211, %f210;
+ mul.f32 %f212, %f209, %f211;
+ setp.lt.f32 %p24, %f201, 0fC2D20000;
+ selp.f32 %f213, 0f00000000, %f212, %p24;
+ setp.gt.f32 %p25, %f201, 0f42D20000;
+ selp.f32 %f321, 0f7F800000, %f213, %p25;
+ setp.eq.f32 %p26, %f321, 0f7F800000;
+ @%p26 bra BB0_16;
+
+ fma.rn.f32 %f321, %f321, %f25, %f321;
+
+BB0_16:
+ setp.lt.f32 %p27, %f316, 0f00000000;
+ and.pred %p2, %p27, %p12;
+ mov.b32 %r49, %f321;
+ xor.b32 %r50, %r49, -2147483648;
+ mov.b32 %f214, %r50;
+ selp.f32 %f323, %f214, %f321, %p2;
+ setp.eq.f32 %p29, %f316, 0f00000000;
+ @%p29 bra BB0_19;
+ bra.uni BB0_17;
+
+BB0_19:
+ add.f32 %f217, %f316, %f316;
+ selp.f32 %f323, %f217, 0f00000000, %p12;
+ bra.uni BB0_20;
+
+BB0_17:
+ setp.geu.f32 %p30, %f316, 0f00000000;
+ @%p30 bra BB0_20;
+
+ cvt.rzi.f32.f32 %f216, %f109;
+ setp.neu.f32 %p31, %f216, 0f3EE8BA2E;
+ selp.f32 %f323, 0f7FFFFFFF, %f323, %p31;
+
+BB0_20:
+ add.f32 %f218, %f24, 0f3EE8BA2E;
+ mov.b32 %r51, %f218;
+ setp.lt.s32 %p33, %r51, 2139095040;
+ @%p33 bra BB0_25;
+
+ setp.gtu.f32 %p34, %f24, 0f7F800000;
+ @%p34 bra BB0_24;
+ bra.uni BB0_22;
+
+BB0_24:
+ add.f32 %f323, %f316, 0f3EE8BA2E;
+ bra.uni BB0_25;
+
+BB0_22:
+ setp.neu.f32 %p35, %f24, 0f7F800000;
+ @%p35 bra BB0_25;
+
+ selp.f32 %f323, 0fFF800000, 0f7F800000, %p2;
+
+BB0_25:
+ mov.f32 %f314, 0fBF317200;
+ mov.f32 %f313, 0f00000000;
+ mov.f32 %f312, 0f35BFBE8E;
+ mov.f32 %f311, 0f3F317200;
+ mov.f32 %f310, 0f3DAAAABD;
+ mov.f32 %f309, 0f3C4CAF63;
+ mov.f32 %f308, 0f3B18F0FE;
+ setp.eq.f32 %p36, %f316, 0f3F800000;
+ selp.f32 %f221, 0f3F800000, %f323, %p36;
+ cvt.sat.f32.f32 %f36, %f221;
+ abs.f32 %f37, %f317;
+ setp.lt.f32 %p37, %f37, 0f00800000;
+ mul.f32 %f222, %f37, 0f4B800000;
+ selp.f32 %f223, 0fC3170000, 0fC2FE0000, %p37;
+ selp.f32 %f224, %f222, %f37, %p37;
+ mov.b32 %r52, %f224;
+ and.b32 %r53, %r52, 8388607;
+ or.b32 %r54, %r53, 1065353216;
+ mov.b32 %f225, %r54;
+ shr.u32 %r55, %r52, 23;
+ cvt.rn.f32.u32 %f226, %r55;
+ add.f32 %f227, %f223, %f226;
+ setp.gt.f32 %p38, %f225, 0f3FB504F3;
+ mul.f32 %f228, %f225, 0f3F000000;
+ add.f32 %f229, %f227, 0f3F800000;
+ selp.f32 %f230, %f228, %f225, %p38;
+ selp.f32 %f231, %f229, %f227, %p38;
+ add.f32 %f232, %f230, 0fBF800000;
+ add.f32 %f220, %f230, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f219,%f220;
+ // inline asm
+ add.f32 %f233, %f232, %f232;
+ mul.f32 %f234, %f219, %f233;
+ mul.f32 %f235, %f234, %f234;
+ fma.rn.f32 %f238, %f308, %f235, %f309;
+ fma.rn.f32 %f240, %f238, %f235, %f310;
+ mul.rn.f32 %f241, %f240, %f235;
+ mul.rn.f32 %f242, %f241, %f234;
+ sub.f32 %f243, %f232, %f234;
+ neg.f32 %f244, %f234;
+ add.f32 %f245, %f243, %f243;
+ fma.rn.f32 %f246, %f244, %f232, %f245;
+ mul.rn.f32 %f247, %f219, %f246;
+ add.f32 %f248, %f242, %f234;
+ sub.f32 %f249, %f234, %f248;
+ add.f32 %f250, %f242, %f249;
+ add.f32 %f251, %f247, %f250;
+ add.f32 %f252, %f248, %f251;
+ sub.f32 %f253, %f248, %f252;
+ add.f32 %f254, %f251, %f253;
+ mul.rn.f32 %f256, %f231, %f311;
+ mul.rn.f32 %f258, %f231, %f312;
+ add.f32 %f259, %f256, %f252;
+ sub.f32 %f260, %f256, %f259;
+ add.f32 %f261, %f252, %f260;
+ add.f32 %f262, %f254, %f261;
+ add.f32 %f263, %f258, %f262;
+ add.f32 %f264, %f259, %f263;
+ sub.f32 %f265, %f259, %f264;
+ add.f32 %f266, %f263, %f265;
+ mul.rn.f32 %f268, %f109, %f264;
+ neg.f32 %f269, %f268;
+ fma.rn.f32 %f270, %f109, %f264, %f269;
+ fma.rn.f32 %f271, %f109, %f266, %f270;
+ fma.rn.f32 %f273, %f313, %f264, %f271;
+ add.rn.f32 %f274, %f268, %f273;
+ neg.f32 %f275, %f274;
+ add.rn.f32 %f276, %f268, %f275;
+ add.rn.f32 %f277, %f276, %f273;
+ mov.b32 %r56, %f274;
+ setp.eq.s32 %p39, %r56, 1118925336;
+ add.s32 %r57, %r56, -1;
+ mov.b32 %f278, %r57;
+ add.f32 %f279, %f277, 0f37000000;
+ selp.f32 %f280, %f278, %f274, %p39;
+ selp.f32 %f38, %f279, %f277, %p39;
+ mul.f32 %f281, %f280, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f282, %f281;
+ fma.rn.f32 %f284, %f282, %f314, %f280;
+ fma.rn.f32 %f286, %f282, %f127, %f284;
+ mul.f32 %f287, %f286, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f288, %f287;
+ add.f32 %f289, %f282, 0f00000000;
+ ex2.approx.f32 %f290, %f289;
+ mul.f32 %f291, %f288, %f290;
+ setp.lt.f32 %p40, %f280, 0fC2D20000;
+ selp.f32 %f292, 0f00000000, %f291, %p40;
+ setp.gt.f32 %p41, %f280, 0f42D20000;
+ selp.f32 %f324, 0f7F800000, %f292, %p41;
+ setp.eq.f32 %p42, %f324, 0f7F800000;
+ @%p42 bra BB0_27;
+
+ fma.rn.f32 %f324, %f324, %f38, %f324;
+
+BB0_27:
+ setp.lt.f32 %p43, %f317, 0f00000000;
+ and.pred %p3, %p43, %p12;
+ mov.b32 %r58, %f324;
+ xor.b32 %r59, %r58, -2147483648;
+ mov.b32 %f293, %r59;
+ selp.f32 %f326, %f293, %f324, %p3;
+ setp.eq.f32 %p45, %f317, 0f00000000;
+ @%p45 bra BB0_30;
+ bra.uni BB0_28;
+
+BB0_30:
+ add.f32 %f296, %f317, %f317;
+ selp.f32 %f326, %f296, 0f00000000, %p12;
+ bra.uni BB0_31;
+
+BB0_28:
+ setp.geu.f32 %p46, %f317, 0f00000000;
+ @%p46 bra BB0_31;
+
+ cvt.rzi.f32.f32 %f295, %f109;
+ setp.neu.f32 %p47, %f295, 0f3EE8BA2E;
+ selp.f32 %f326, 0f7FFFFFFF, %f326, %p47;
+
+BB0_31:
+ add.f32 %f297, %f37, 0f3EE8BA2E;
+ mov.b32 %r60, %f297;
+ setp.lt.s32 %p49, %r60, 2139095040;
+ @%p49 bra BB0_36;
+
+ setp.gtu.f32 %p50, %f37, 0f7F800000;
+ @%p50 bra BB0_35;
+ bra.uni BB0_33;
+
+BB0_35:
+ add.f32 %f326, %f317, 0f3EE8BA2E;
+ bra.uni BB0_36;
+
+BB0_33:
+ setp.neu.f32 %p51, %f37, 0f7F800000;
+ @%p51 bra BB0_36;
+
+ selp.f32 %f326, 0fFF800000, 0f7F800000, %p3;
+
+BB0_36:
+ setp.eq.f32 %p52, %f317, 0f3F800000;
+ selp.f32 %f298, 0f3F800000, %f326, %p52;
+ ld.global.v2.u32 {%r63, %r64}, [pixelID];
+ cvt.u64.u32 %rd43, %r63;
+ cvt.u64.u32 %rd44, %r64;
+ mov.u64 %rd47, input_buffer;
+ cvta.global.u64 %rd42, %rd47;
+ mov.u32 %r61, 2;
+ mov.u32 %r62, 16;
+ mov.u64 %rd46, 0;
+ // inline asm
+ call (%rd41), _rt_buffer_get_64, (%rd42, %r61, %r62, %rd43, %rd44, %rd46, %rd46);
+ // inline asm
+ cvt.sat.f32.f32 %f299, %f298;
+ mov.f32 %f300, 0f3F800000;
+ st.v4.f32 [%rd41], {%f23, %f36, %f299, %f300};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH.ptx.meta
new file mode 100644
index 00000000..3200f9e8
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 20b1479cc74212c4bb1e3ac7a32c7eb4
+timeCreated: 1538345689
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH72.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH72.ptx
new file mode 100644
index 00000000..34da48b1
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH72.ptx
@@ -0,0 +1,519 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl __raygen__oxMain
+.const .align 8 .b8 cs[32];
+
+.visible .entry __raygen__oxMain(
+
+)
+{
+ .reg .pred %p<53>;
+ .reg .b16 %rs<8>;
+ .reg .f32 %f<334>;
+ .reg .b32 %r<42>;
+ .reg .b64 %rd<16>;
+
+
+ // inline asm
+ call (%r6), _optix_get_launch_index_x, ();
+ // inline asm
+ // inline asm
+ call (%r7), _optix_get_launch_index_y, ();
+ // inline asm
+ ld.const.u32 %r9, [cs+28];
+ setp.gt.s32 %p4, %r9, 0;
+ @%p4 bra BB0_2;
+ bra.uni BB0_1;
+
+BB0_2:
+ ld.const.u64 %rd2, [cs+8];
+ cvta.to.global.u64 %rd8, %rd2;
+ ld.const.u32 %r4, [cs+24];
+ mad.lo.s32 %r11, %r4, %r7, %r6;
+ mul.wide.u32 %rd9, %r11, 16;
+ add.s64 %rd10, %rd8, %rd9;
+ ld.global.v4.f32 {%f55, %f56, %f57, %f58}, [%rd10];
+ mov.f32 %f59, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f60, %f59;
+ fma.rn.f32 %f61, %f60, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f6, %f61;
+ abs.f32 %f8, %f55;
+ setp.lt.f32 %p5, %f8, 0f00800000;
+ mul.f32 %f62, %f8, 0f4B800000;
+ selp.f32 %f63, 0fC3170000, 0fC2FE0000, %p5;
+ selp.f32 %f64, %f62, %f8, %p5;
+ mov.b32 %r12, %f64;
+ and.b32 %r13, %r12, 8388607;
+ or.b32 %r14, %r13, 1065353216;
+ mov.b32 %f65, %r14;
+ shr.u32 %r15, %r12, 23;
+ cvt.rn.f32.u32 %f66, %r15;
+ add.f32 %f67, %f63, %f66;
+ setp.gt.f32 %p6, %f65, 0f3FB504F3;
+ mul.f32 %f68, %f65, 0f3F000000;
+ add.f32 %f69, %f67, 0f3F800000;
+ selp.f32 %f70, %f68, %f65, %p6;
+ selp.f32 %f71, %f69, %f67, %p6;
+ add.f32 %f72, %f70, 0fBF800000;
+ add.f32 %f54, %f70, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f53,%f54;
+ // inline asm
+ add.f32 %f73, %f72, %f72;
+ mul.f32 %f74, %f53, %f73;
+ mul.f32 %f75, %f74, %f74;
+ mov.f32 %f76, 0f3C4CAF63;
+ mov.f32 %f77, 0f3B18F0FE;
+ fma.rn.f32 %f78, %f77, %f75, %f76;
+ mov.f32 %f79, 0f3DAAAABD;
+ fma.rn.f32 %f80, %f78, %f75, %f79;
+ mul.rn.f32 %f81, %f80, %f75;
+ mul.rn.f32 %f82, %f81, %f74;
+ sub.f32 %f83, %f72, %f74;
+ neg.f32 %f84, %f74;
+ add.f32 %f85, %f83, %f83;
+ fma.rn.f32 %f86, %f84, %f72, %f85;
+ mul.rn.f32 %f87, %f53, %f86;
+ add.f32 %f88, %f82, %f74;
+ sub.f32 %f89, %f74, %f88;
+ add.f32 %f90, %f82, %f89;
+ add.f32 %f91, %f87, %f90;
+ add.f32 %f92, %f88, %f91;
+ sub.f32 %f93, %f88, %f92;
+ add.f32 %f94, %f91, %f93;
+ mov.f32 %f95, 0f3F317200;
+ mul.rn.f32 %f96, %f71, %f95;
+ mov.f32 %f97, 0f35BFBE8E;
+ mul.rn.f32 %f98, %f71, %f97;
+ add.f32 %f99, %f96, %f92;
+ sub.f32 %f100, %f96, %f99;
+ add.f32 %f101, %f92, %f100;
+ add.f32 %f102, %f94, %f101;
+ add.f32 %f103, %f98, %f102;
+ add.f32 %f104, %f99, %f103;
+ sub.f32 %f105, %f99, %f104;
+ add.f32 %f106, %f103, %f105;
+ mov.f32 %f107, 0f3EE8BA2E;
+ mul.rn.f32 %f108, %f107, %f104;
+ neg.f32 %f109, %f108;
+ fma.rn.f32 %f110, %f107, %f104, %f109;
+ fma.rn.f32 %f111, %f107, %f106, %f110;
+ mov.f32 %f112, 0f00000000;
+ fma.rn.f32 %f113, %f112, %f104, %f111;
+ add.rn.f32 %f114, %f108, %f113;
+ neg.f32 %f115, %f114;
+ add.rn.f32 %f116, %f108, %f115;
+ add.rn.f32 %f117, %f116, %f113;
+ mov.b32 %r16, %f114;
+ setp.eq.s32 %p7, %r16, 1118925336;
+ add.s32 %r17, %r16, -1;
+ mov.b32 %f118, %r17;
+ add.f32 %f119, %f117, 0f37000000;
+ selp.f32 %f120, %f118, %f114, %p7;
+ selp.f32 %f9, %f119, %f117, %p7;
+ mul.f32 %f121, %f120, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f122, %f121;
+ mov.f32 %f123, 0fBF317200;
+ fma.rn.f32 %f124, %f122, %f123, %f120;
+ mov.f32 %f125, 0fB5BFBE8E;
+ fma.rn.f32 %f126, %f122, %f125, %f124;
+ mul.f32 %f127, %f126, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f128, %f127;
+ add.f32 %f129, %f122, 0f00000000;
+ ex2.approx.f32 %f130, %f129;
+ mul.f32 %f131, %f128, %f130;
+ setp.lt.f32 %p8, %f120, 0fC2D20000;
+ selp.f32 %f132, 0f00000000, %f131, %p8;
+ setp.gt.f32 %p9, %f120, 0f42D20000;
+ selp.f32 %f322, 0f7F800000, %f132, %p9;
+ setp.eq.f32 %p10, %f322, 0f7F800000;
+ @%p10 bra BB0_4;
+
+ fma.rn.f32 %f322, %f322, %f9, %f322;
+
+BB0_4:
+ setp.lt.f32 %p11, %f55, 0f00000000;
+ setp.eq.f32 %p12, %f6, 0f3F800000;
+ and.pred %p1, %p11, %p12;
+ mov.b32 %r18, %f322;
+ xor.b32 %r19, %r18, -2147483648;
+ mov.b32 %f133, %r19;
+ selp.f32 %f324, %f133, %f322, %p1;
+ setp.eq.f32 %p13, %f55, 0f00000000;
+ @%p13 bra BB0_7;
+ bra.uni BB0_5;
+
+BB0_7:
+ add.f32 %f136, %f55, %f55;
+ selp.f32 %f324, %f136, 0f00000000, %p12;
+ bra.uni BB0_8;
+
+BB0_1:
+ ld.const.u64 %rd4, [cs];
+ cvta.to.global.u64 %rd5, %rd4;
+ ld.const.u32 %r41, [cs+24];
+ mad.lo.s32 %r10, %r41, %r7, %r6;
+ mul.wide.u32 %rd6, %r10, 8;
+ add.s64 %rd7, %rd5, %rd6;
+ ld.global.v4.u16 {%rs4, %rs5, %rs6, %rs7}, [%rd7];
+ // inline asm
+ { cvt.f32.f16 %f331, %rs4;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f332, %rs5;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f333, %rs6;}
+
+ // inline asm
+ ld.const.u64 %rd15, [cs+8];
+ bra.uni BB0_36;
+
+BB0_5:
+ setp.geu.f32 %p14, %f55, 0f00000000;
+ @%p14 bra BB0_8;
+
+ mov.f32 %f321, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f135, %f321;
+ setp.neu.f32 %p15, %f135, 0f3EE8BA2E;
+ selp.f32 %f324, 0f7FFFFFFF, %f324, %p15;
+
+BB0_8:
+ abs.f32 %f298, %f55;
+ add.f32 %f137, %f298, 0f3EE8BA2E;
+ mov.b32 %r20, %f137;
+ setp.lt.s32 %p17, %r20, 2139095040;
+ @%p17 bra BB0_13;
+
+ abs.f32 %f319, %f55;
+ setp.gtu.f32 %p18, %f319, 0f7F800000;
+ @%p18 bra BB0_12;
+ bra.uni BB0_10;
+
+BB0_12:
+ add.f32 %f324, %f55, 0f3EE8BA2E;
+ bra.uni BB0_13;
+
+BB0_10:
+ abs.f32 %f320, %f55;
+ setp.neu.f32 %p19, %f320, 0f7F800000;
+ @%p19 bra BB0_13;
+
+ selp.f32 %f324, 0fFF800000, 0f7F800000, %p1;
+
+BB0_13:
+ mov.f32 %f307, 0fB5BFBE8E;
+ mov.f32 %f306, 0fBF317200;
+ mov.f32 %f305, 0f00000000;
+ mov.f32 %f304, 0f35BFBE8E;
+ mov.f32 %f303, 0f3F317200;
+ mov.f32 %f302, 0f3DAAAABD;
+ mov.f32 %f301, 0f3C4CAF63;
+ mov.f32 %f300, 0f3B18F0FE;
+ mov.f32 %f299, 0f3EE8BA2E;
+ setp.eq.f32 %p20, %f55, 0f3F800000;
+ selp.f32 %f140, 0f3F800000, %f324, %p20;
+ cvt.sat.f32.f32 %f331, %f140;
+ abs.f32 %f21, %f56;
+ setp.lt.f32 %p21, %f21, 0f00800000;
+ mul.f32 %f141, %f21, 0f4B800000;
+ selp.f32 %f142, 0fC3170000, 0fC2FE0000, %p21;
+ selp.f32 %f143, %f141, %f21, %p21;
+ mov.b32 %r21, %f143;
+ and.b32 %r22, %r21, 8388607;
+ or.b32 %r23, %r22, 1065353216;
+ mov.b32 %f144, %r23;
+ shr.u32 %r24, %r21, 23;
+ cvt.rn.f32.u32 %f145, %r24;
+ add.f32 %f146, %f142, %f145;
+ setp.gt.f32 %p22, %f144, 0f3FB504F3;
+ mul.f32 %f147, %f144, 0f3F000000;
+ add.f32 %f148, %f146, 0f3F800000;
+ selp.f32 %f149, %f147, %f144, %p22;
+ selp.f32 %f150, %f148, %f146, %p22;
+ add.f32 %f151, %f149, 0fBF800000;
+ add.f32 %f139, %f149, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f138,%f139;
+ // inline asm
+ add.f32 %f152, %f151, %f151;
+ mul.f32 %f153, %f138, %f152;
+ mul.f32 %f154, %f153, %f153;
+ fma.rn.f32 %f157, %f300, %f154, %f301;
+ fma.rn.f32 %f159, %f157, %f154, %f302;
+ mul.rn.f32 %f160, %f159, %f154;
+ mul.rn.f32 %f161, %f160, %f153;
+ sub.f32 %f162, %f151, %f153;
+ neg.f32 %f163, %f153;
+ add.f32 %f164, %f162, %f162;
+ fma.rn.f32 %f165, %f163, %f151, %f164;
+ mul.rn.f32 %f166, %f138, %f165;
+ add.f32 %f167, %f161, %f153;
+ sub.f32 %f168, %f153, %f167;
+ add.f32 %f169, %f161, %f168;
+ add.f32 %f170, %f166, %f169;
+ add.f32 %f171, %f167, %f170;
+ sub.f32 %f172, %f167, %f171;
+ add.f32 %f173, %f170, %f172;
+ mul.rn.f32 %f175, %f150, %f303;
+ mul.rn.f32 %f177, %f150, %f304;
+ add.f32 %f178, %f175, %f171;
+ sub.f32 %f179, %f175, %f178;
+ add.f32 %f180, %f171, %f179;
+ add.f32 %f181, %f173, %f180;
+ add.f32 %f182, %f177, %f181;
+ add.f32 %f183, %f178, %f182;
+ sub.f32 %f184, %f178, %f183;
+ add.f32 %f185, %f182, %f184;
+ mul.rn.f32 %f187, %f299, %f183;
+ neg.f32 %f188, %f187;
+ fma.rn.f32 %f189, %f299, %f183, %f188;
+ fma.rn.f32 %f190, %f299, %f185, %f189;
+ fma.rn.f32 %f192, %f305, %f183, %f190;
+ add.rn.f32 %f193, %f187, %f192;
+ neg.f32 %f194, %f193;
+ add.rn.f32 %f195, %f187, %f194;
+ add.rn.f32 %f196, %f195, %f192;
+ mov.b32 %r25, %f193;
+ setp.eq.s32 %p23, %r25, 1118925336;
+ add.s32 %r26, %r25, -1;
+ mov.b32 %f197, %r26;
+ add.f32 %f198, %f196, 0f37000000;
+ selp.f32 %f199, %f197, %f193, %p23;
+ selp.f32 %f22, %f198, %f196, %p23;
+ mul.f32 %f200, %f199, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f201, %f200;
+ fma.rn.f32 %f203, %f201, %f306, %f199;
+ fma.rn.f32 %f205, %f201, %f307, %f203;
+ mul.f32 %f206, %f205, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f207, %f206;
+ add.f32 %f208, %f201, 0f00000000;
+ ex2.approx.f32 %f209, %f208;
+ mul.f32 %f210, %f207, %f209;
+ setp.lt.f32 %p24, %f199, 0fC2D20000;
+ selp.f32 %f211, 0f00000000, %f210, %p24;
+ setp.gt.f32 %p25, %f199, 0f42D20000;
+ selp.f32 %f325, 0f7F800000, %f211, %p25;
+ setp.eq.f32 %p26, %f325, 0f7F800000;
+ @%p26 bra BB0_15;
+
+ fma.rn.f32 %f325, %f325, %f22, %f325;
+
+BB0_15:
+ setp.lt.f32 %p27, %f56, 0f00000000;
+ and.pred %p2, %p27, %p12;
+ mov.b32 %r27, %f325;
+ xor.b32 %r28, %r27, -2147483648;
+ mov.b32 %f212, %r28;
+ selp.f32 %f327, %f212, %f325, %p2;
+ setp.eq.f32 %p29, %f56, 0f00000000;
+ @%p29 bra BB0_18;
+ bra.uni BB0_16;
+
+BB0_18:
+ add.f32 %f215, %f56, %f56;
+ selp.f32 %f327, %f215, 0f00000000, %p12;
+ bra.uni BB0_19;
+
+BB0_16:
+ setp.geu.f32 %p30, %f56, 0f00000000;
+ @%p30 bra BB0_19;
+
+ mov.f32 %f318, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f214, %f318;
+ setp.neu.f32 %p31, %f214, 0f3EE8BA2E;
+ selp.f32 %f327, 0f7FFFFFFF, %f327, %p31;
+
+BB0_19:
+ add.f32 %f216, %f21, 0f3EE8BA2E;
+ mov.b32 %r29, %f216;
+ setp.lt.s32 %p33, %r29, 2139095040;
+ @%p33 bra BB0_24;
+
+ setp.gtu.f32 %p34, %f21, 0f7F800000;
+ @%p34 bra BB0_23;
+ bra.uni BB0_21;
+
+BB0_23:
+ add.f32 %f327, %f56, 0f3EE8BA2E;
+ bra.uni BB0_24;
+
+BB0_21:
+ setp.neu.f32 %p35, %f21, 0f7F800000;
+ @%p35 bra BB0_24;
+
+ selp.f32 %f327, 0fFF800000, 0f7F800000, %p2;
+
+BB0_24:
+ mov.f32 %f316, 0fB5BFBE8E;
+ mov.f32 %f315, 0fBF317200;
+ mov.f32 %f314, 0f00000000;
+ mov.f32 %f313, 0f35BFBE8E;
+ mov.f32 %f312, 0f3F317200;
+ mov.f32 %f311, 0f3DAAAABD;
+ mov.f32 %f310, 0f3C4CAF63;
+ mov.f32 %f309, 0f3B18F0FE;
+ mov.f32 %f308, 0f3EE8BA2E;
+ setp.eq.f32 %p36, %f56, 0f3F800000;
+ selp.f32 %f219, 0f3F800000, %f327, %p36;
+ cvt.sat.f32.f32 %f332, %f219;
+ abs.f32 %f34, %f57;
+ setp.lt.f32 %p37, %f34, 0f00800000;
+ mul.f32 %f220, %f34, 0f4B800000;
+ selp.f32 %f221, 0fC3170000, 0fC2FE0000, %p37;
+ selp.f32 %f222, %f220, %f34, %p37;
+ mov.b32 %r30, %f222;
+ and.b32 %r31, %r30, 8388607;
+ or.b32 %r32, %r31, 1065353216;
+ mov.b32 %f223, %r32;
+ shr.u32 %r33, %r30, 23;
+ cvt.rn.f32.u32 %f224, %r33;
+ add.f32 %f225, %f221, %f224;
+ setp.gt.f32 %p38, %f223, 0f3FB504F3;
+ mul.f32 %f226, %f223, 0f3F000000;
+ add.f32 %f227, %f225, 0f3F800000;
+ selp.f32 %f228, %f226, %f223, %p38;
+ selp.f32 %f229, %f227, %f225, %p38;
+ add.f32 %f230, %f228, 0fBF800000;
+ add.f32 %f218, %f228, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f217,%f218;
+ // inline asm
+ add.f32 %f231, %f230, %f230;
+ mul.f32 %f232, %f217, %f231;
+ mul.f32 %f233, %f232, %f232;
+ fma.rn.f32 %f236, %f309, %f233, %f310;
+ fma.rn.f32 %f238, %f236, %f233, %f311;
+ mul.rn.f32 %f239, %f238, %f233;
+ mul.rn.f32 %f240, %f239, %f232;
+ sub.f32 %f241, %f230, %f232;
+ neg.f32 %f242, %f232;
+ add.f32 %f243, %f241, %f241;
+ fma.rn.f32 %f244, %f242, %f230, %f243;
+ mul.rn.f32 %f245, %f217, %f244;
+ add.f32 %f246, %f240, %f232;
+ sub.f32 %f247, %f232, %f246;
+ add.f32 %f248, %f240, %f247;
+ add.f32 %f249, %f245, %f248;
+ add.f32 %f250, %f246, %f249;
+ sub.f32 %f251, %f246, %f250;
+ add.f32 %f252, %f249, %f251;
+ mul.rn.f32 %f254, %f229, %f312;
+ mul.rn.f32 %f256, %f229, %f313;
+ add.f32 %f257, %f254, %f250;
+ sub.f32 %f258, %f254, %f257;
+ add.f32 %f259, %f250, %f258;
+ add.f32 %f260, %f252, %f259;
+ add.f32 %f261, %f256, %f260;
+ add.f32 %f262, %f257, %f261;
+ sub.f32 %f263, %f257, %f262;
+ add.f32 %f264, %f261, %f263;
+ mul.rn.f32 %f266, %f308, %f262;
+ neg.f32 %f267, %f266;
+ fma.rn.f32 %f268, %f308, %f262, %f267;
+ fma.rn.f32 %f269, %f308, %f264, %f268;
+ fma.rn.f32 %f271, %f314, %f262, %f269;
+ add.rn.f32 %f272, %f266, %f271;
+ neg.f32 %f273, %f272;
+ add.rn.f32 %f274, %f266, %f273;
+ add.rn.f32 %f275, %f274, %f271;
+ mov.b32 %r34, %f272;
+ setp.eq.s32 %p39, %r34, 1118925336;
+ add.s32 %r35, %r34, -1;
+ mov.b32 %f276, %r35;
+ add.f32 %f277, %f275, 0f37000000;
+ selp.f32 %f278, %f276, %f272, %p39;
+ selp.f32 %f35, %f277, %f275, %p39;
+ mul.f32 %f279, %f278, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f280, %f279;
+ fma.rn.f32 %f282, %f280, %f315, %f278;
+ fma.rn.f32 %f284, %f280, %f316, %f282;
+ mul.f32 %f285, %f284, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f286, %f285;
+ add.f32 %f287, %f280, 0f00000000;
+ ex2.approx.f32 %f288, %f287;
+ mul.f32 %f289, %f286, %f288;
+ setp.lt.f32 %p40, %f278, 0fC2D20000;
+ selp.f32 %f290, 0f00000000, %f289, %p40;
+ setp.gt.f32 %p41, %f278, 0f42D20000;
+ selp.f32 %f328, 0f7F800000, %f290, %p41;
+ setp.eq.f32 %p42, %f328, 0f7F800000;
+ @%p42 bra BB0_26;
+
+ fma.rn.f32 %f328, %f328, %f35, %f328;
+
+BB0_26:
+ setp.lt.f32 %p43, %f57, 0f00000000;
+ and.pred %p3, %p43, %p12;
+ mov.b32 %r36, %f328;
+ xor.b32 %r37, %r36, -2147483648;
+ mov.b32 %f291, %r37;
+ selp.f32 %f330, %f291, %f328, %p3;
+ setp.eq.f32 %p45, %f57, 0f00000000;
+ @%p45 bra BB0_29;
+ bra.uni BB0_27;
+
+BB0_29:
+ add.f32 %f294, %f57, %f57;
+ selp.f32 %f330, %f294, 0f00000000, %p12;
+ bra.uni BB0_30;
+
+BB0_27:
+ setp.geu.f32 %p46, %f57, 0f00000000;
+ @%p46 bra BB0_30;
+
+ mov.f32 %f317, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f293, %f317;
+ setp.neu.f32 %p47, %f293, 0f3EE8BA2E;
+ selp.f32 %f330, 0f7FFFFFFF, %f330, %p47;
+
+BB0_30:
+ add.f32 %f295, %f34, 0f3EE8BA2E;
+ mov.b32 %r38, %f295;
+ setp.lt.s32 %p49, %r38, 2139095040;
+ @%p49 bra BB0_35;
+
+ setp.gtu.f32 %p50, %f34, 0f7F800000;
+ @%p50 bra BB0_34;
+ bra.uni BB0_32;
+
+BB0_34:
+ add.f32 %f330, %f57, 0f3EE8BA2E;
+ bra.uni BB0_35;
+
+BB0_32:
+ setp.neu.f32 %p51, %f34, 0f7F800000;
+ @%p51 bra BB0_35;
+
+ selp.f32 %f330, 0fFF800000, 0f7F800000, %p3;
+
+BB0_35:
+ ld.const.u64 %rd15, [cs+8];
+ ld.const.u32 %r41, [cs+24];
+ setp.eq.f32 %p52, %f57, 0f3F800000;
+ selp.f32 %f296, 0f3F800000, %f330, %p52;
+ cvt.sat.f32.f32 %f333, %f296;
+
+BB0_36:
+ mad.lo.s32 %r39, %r41, %r7, %r6;
+ cvta.to.global.u64 %rd11, %rd15;
+ mul.wide.u32 %rd12, %r39, 16;
+ add.s64 %rd13, %rd11, %rd12;
+ mov.f32 %f297, 0f3F800000;
+ st.global.v4.f32 [%rd13], {%f331, %f332, %f333, %f297};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH72.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH72.ptx.meta
new file mode 100644
index 00000000..ea675adb
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH72.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cf96e815cf5f4354a9ccd4524316bf97
+timeCreated: 1605376410
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH_OIDN.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH_OIDN.ptx
new file mode 100644
index 00000000..d2896873
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH_OIDN.ptx
@@ -0,0 +1,159 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 1 .b8 input_buffer[1];
+.global .align 1 .b8 image[1];
+.global .align 4 .u32 mode;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4modeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename4modeE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4modeE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic4modeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4modeE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<2>;
+ .reg .b16 %rs<4>;
+ .reg .f32 %f<16>;
+ .reg .b32 %r<40>;
+ .reg .b64 %rd<48>;
+
+
+ ld.global.u32 %r1, [mode];
+ setp.gt.s32 %p1, %r1, 0;
+ ld.global.v2.u32 {%r2, %r3}, [pixelID];
+ cvt.u64.u32 %rd1, %r2;
+ cvt.u64.u32 %rd2, %r3;
+ @%p1 bra BB0_2;
+ bra.uni BB0_1;
+
+BB0_2:
+ mov.u64 %rd40, input_buffer;
+ cvta.global.u64 %rd23, %rd40;
+ mov.u32 %r24, 2;
+ mov.u32 %r25, 12;
+ mov.u64 %rd39, 0;
+ // inline asm
+ call (%rd22), _rt_buffer_get_64, (%rd23, %r24, %r25, %rd1, %rd2, %rd39, %rd39);
+ // inline asm
+ ld.f32 %f13, [%rd22];
+ ld.global.v2.u32 {%r26, %r27}, [pixelID];
+ cvt.u64.u32 %rd30, %r26;
+ cvt.u64.u32 %rd31, %r27;
+ // inline asm
+ call (%rd28), _rt_buffer_get_64, (%rd23, %r24, %r25, %rd30, %rd31, %rd39, %rd39);
+ // inline asm
+ ld.f32 %f14, [%rd28+4];
+ ld.global.v2.u32 {%r30, %r31}, [pixelID];
+ cvt.u64.u32 %rd36, %r30;
+ cvt.u64.u32 %rd37, %r31;
+ // inline asm
+ call (%rd34), _rt_buffer_get_64, (%rd23, %r24, %r25, %rd36, %rd37, %rd39, %rd39);
+ // inline asm
+ ld.f32 %f15, [%rd34+8];
+ bra.uni BB0_3;
+
+BB0_1:
+ mov.u64 %rd21, image;
+ cvta.global.u64 %rd4, %rd21;
+ mov.u32 %r10, 2;
+ mov.u32 %r11, 8;
+ mov.u64 %rd20, 0;
+ // inline asm
+ call (%rd3), _rt_buffer_get_64, (%rd4, %r10, %r11, %rd1, %rd2, %rd20, %rd20);
+ // inline asm
+ ld.u16 %rs1, [%rd3];
+ // inline asm
+ { cvt.f32.f16 %f13, %rs1;}
+
+ // inline asm
+ ld.global.v2.u32 {%r12, %r13}, [pixelID];
+ cvt.u64.u32 %rd11, %r12;
+ cvt.u64.u32 %rd12, %r13;
+ // inline asm
+ call (%rd9), _rt_buffer_get_64, (%rd4, %r10, %r11, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ ld.u16 %rs2, [%rd9+2];
+ // inline asm
+ { cvt.f32.f16 %f14, %rs2;}
+
+ // inline asm
+ ld.global.v2.u32 {%r16, %r17}, [pixelID];
+ cvt.u64.u32 %rd17, %r16;
+ cvt.u64.u32 %rd18, %r17;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd4, %r10, %r11, %rd17, %rd18, %rd20, %rd20);
+ // inline asm
+ ld.u16 %rs3, [%rd15+4];
+ // inline asm
+ { cvt.f32.f16 %f15, %rs3;}
+
+ // inline asm
+
+BB0_3:
+ ld.global.v2.u32 {%r36, %r37}, [pixelID];
+ cvt.u64.u32 %rd43, %r36;
+ cvt.u64.u32 %rd44, %r37;
+ mov.u64 %rd47, input_buffer;
+ cvta.global.u64 %rd42, %rd47;
+ mov.u32 %r34, 2;
+ mov.u32 %r35, 12;
+ mov.u64 %rd46, 0;
+ // inline asm
+ call (%rd41), _rt_buffer_get_64, (%rd42, %r34, %r35, %rd43, %rd44, %rd46, %rd46);
+ // inline asm
+ st.f32 [%rd41+8], %f15;
+ st.f32 [%rd41+4], %f14;
+ st.f32 [%rd41], %f13;
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH_OIDN.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH_OIDN.ptx.meta
new file mode 100644
index 00000000..068e0111
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoisePrepareSH_OIDN.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f763370827bb0e94b89c753d02bf676d
+timeCreated: 1599897795
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser.exe b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser.exe
new file mode 100644
index 00000000..1b4357d5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser.exe
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser.exe.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser.exe.meta
new file mode 100644
index 00000000..0bae6a56
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser.exe.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 00324aa8cc137c44cb8bdb89b0b85076
+timeCreated: 1562931708
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser72.exe b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser72.exe
new file mode 100644
index 00000000..af5397e7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser72.exe
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser72.exe.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser72.exe.meta
new file mode 100644
index 00000000..a97ccc68
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiser72.exe.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 923624ea465edaf4e8fbde0e3317fa96
+timeCreated: 1605206208
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserLegacy.exe b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserLegacy.exe
new file mode 100644
index 00000000..b2a36993
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserLegacy.exe
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserLegacy.exe.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserLegacy.exe.meta
new file mode 100644
index 00000000..7aaa527c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserLegacy.exe.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e835870912302c34abd30850e21d1f0b
+timeCreated: 1573289338
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserOIDN.exe b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserOIDN.exe
new file mode 100644
index 00000000..6bd72748
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserOIDN.exe
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserOIDN.exe.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserOIDN.exe.meta
new file mode 100644
index 00000000..e900af34
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/denoiserOIDN.exe.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7c5044bbfa3bae54196b28dca3529e39
+timeCreated: 1605444920
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.pso
new file mode 100644
index 00000000..28adb557
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.pso.meta
new file mode 100644
index 00000000..87c15687
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e5bdfd4e6f60ffb438e29f5ce906e4c0
+timeCreated: 1529751953
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.ptx
new file mode 100644
index 00000000..b903d35c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.ptx
@@ -0,0 +1,473 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<14>;
+ .reg .b16 %rs<45>;
+ .reg .f32 %f<159>;
+ .reg .b32 %r<149>;
+ .reg .b64 %rd<271>;
+
+
+ ld.global.v2.u32 {%r18, %r19}, [pixelID];
+ cvt.u64.u32 %rd9, %r18;
+ cvt.u64.u32 %rd10, %r19;
+ mov.u64 %rd13, image;
+ cvta.global.u64 %rd8, %rd13;
+ mov.u32 %r16, 2;
+ mov.u32 %r17, 4;
+ mov.u64 %rd12, 0;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd9, %rd10, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs1, [%rd7+3];
+ setp.ne.s16 %p1, %rs1, 0;
+ @%p1 bra BB0_17;
+
+ ld.global.v2.u32 {%r33, %r34}, [pixelID];
+ cvt.u64.u32 %rd16, %r33;
+ cvt.u64.u32 %rd17, %r34;
+ // inline asm
+ call (%rd14), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd16, %rd17, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs2, [%rd14+2];
+ cvt.rn.f32.u16 %f61, %rs2;
+ div.rn.f32 %f135, %f61, 0f437F0000;
+ ld.global.v2.u32 {%r37, %r38}, [pixelID];
+ cvt.u64.u32 %rd22, %r37;
+ cvt.u64.u32 %rd23, %r38;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd22, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs3, [%rd20+1];
+ cvt.rn.f32.u16 %f62, %rs3;
+ div.rn.f32 %f136, %f62, 0f437F0000;
+ ld.global.v2.u32 {%r41, %r42}, [pixelID];
+ cvt.u64.u32 %rd28, %r41;
+ cvt.u64.u32 %rd29, %r42;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd28, %rd29, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs4, [%rd26];
+ cvt.rn.f32.u16 %f63, %rs4;
+ div.rn.f32 %f137, %f63, 0f437F0000;
+ ld.global.v2.u32 {%r45, %r46}, [pixelID];
+ cvt.u64.u32 %rd34, %r45;
+ cvt.u64.u32 %rd35, %r46;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd34, %rd35, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs5, [%rd32+3];
+ cvt.rn.f32.u16 %f64, %rs5;
+ div.rn.f32 %f138, %f64, 0f437F0000;
+ ld.global.v2.u32 {%r49, %r50}, [pixelID];
+ setp.eq.s32 %p2, %r49, 0;
+ add.s32 %r52, %r49, -1;
+ cvt.u64.u32 %rd45, %r52;
+ selp.b64 %rd40, 0, %rd45, %p2;
+ setp.eq.s32 %p3, %r50, 0;
+ add.s32 %r54, %r50, -1;
+ cvt.u64.u32 %rd46, %r54;
+ selp.b64 %rd41, 0, %rd46, %p3;
+ ld.global.v2.u32 {%r55, %r56}, [resolution];
+ add.s32 %r58, %r55, -1;
+ setp.eq.s32 %p4, %r49, %r58;
+ add.s32 %r59, %r49, 1;
+ selp.b32 %r1, %r58, %r59, %p4;
+ add.s32 %r61, %r56, -1;
+ setp.eq.s32 %p5, %r50, %r61;
+ add.s32 %r62, %r50, 1;
+ selp.b32 %r2, %r61, %r62, %p5;
+ // inline asm
+ call (%rd38), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs6, [%rd38+3];
+ setp.eq.s16 %p6, %rs6, 0;
+ mov.u32 %r143, 0;
+ @%p6 bra BB0_3;
+
+ // inline asm
+ call (%rd47), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs7, [%rd47+2];
+ cvt.rn.f32.u16 %f65, %rs7;
+ div.rn.f32 %f66, %f65, 0f437F0000;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs8, [%rd53+1];
+ cvt.rn.f32.u16 %f67, %rs8;
+ div.rn.f32 %f68, %f67, 0f437F0000;
+ // inline asm
+ call (%rd59), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs9, [%rd59];
+ cvt.rn.f32.u16 %f69, %rs9;
+ div.rn.f32 %f70, %f69, 0f437F0000;
+ // inline asm
+ call (%rd65), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs10, [%rd65+3];
+ cvt.rn.f32.u16 %f71, %rs10;
+ div.rn.f32 %f72, %f71, 0f437F0000;
+ add.f32 %f135, %f135, %f66;
+ add.f32 %f136, %f136, %f68;
+ add.f32 %f137, %f137, %f70;
+ add.f32 %f138, %f138, %f72;
+ mov.u32 %r143, 1;
+
+BB0_3:
+ ld.global.u32 %rd74, [pixelID];
+ // inline asm
+ call (%rd72), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd74, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs11, [%rd72+3];
+ setp.eq.s16 %p7, %rs11, 0;
+ @%p7 bra BB0_5;
+
+ // inline asm
+ call (%rd79), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd74, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs12, [%rd79+2];
+ cvt.rn.f32.u16 %f73, %rs12;
+ div.rn.f32 %f74, %f73, 0f437F0000;
+ // inline asm
+ call (%rd85), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd74, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs13, [%rd85+1];
+ cvt.rn.f32.u16 %f75, %rs13;
+ div.rn.f32 %f76, %f75, 0f437F0000;
+ // inline asm
+ call (%rd91), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd74, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs14, [%rd91];
+ cvt.rn.f32.u16 %f77, %rs14;
+ div.rn.f32 %f78, %f77, 0f437F0000;
+ // inline asm
+ call (%rd97), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd74, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs15, [%rd97+3];
+ cvt.rn.f32.u16 %f79, %rs15;
+ div.rn.f32 %f80, %f79, 0f437F0000;
+ add.f32 %f135, %f135, %f74;
+ add.f32 %f136, %f136, %f76;
+ add.f32 %f137, %f137, %f78;
+ add.f32 %f138, %f138, %f80;
+ add.s32 %r143, %r143, 1;
+
+BB0_5:
+ cvt.u64.u32 %rd106, %r1;
+ // inline asm
+ call (%rd104), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs16, [%rd104+3];
+ setp.eq.s16 %p8, %rs16, 0;
+ @%p8 bra BB0_7;
+
+ // inline asm
+ call (%rd111), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs17, [%rd111+2];
+ cvt.rn.f32.u16 %f81, %rs17;
+ div.rn.f32 %f82, %f81, 0f437F0000;
+ // inline asm
+ call (%rd117), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs18, [%rd117+1];
+ cvt.rn.f32.u16 %f83, %rs18;
+ div.rn.f32 %f84, %f83, 0f437F0000;
+ // inline asm
+ call (%rd123), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs19, [%rd123];
+ cvt.rn.f32.u16 %f85, %rs19;
+ div.rn.f32 %f86, %f85, 0f437F0000;
+ // inline asm
+ call (%rd129), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd41, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs20, [%rd129+3];
+ cvt.rn.f32.u16 %f87, %rs20;
+ div.rn.f32 %f88, %f87, 0f437F0000;
+ add.f32 %f135, %f135, %f82;
+ add.f32 %f136, %f136, %f84;
+ add.f32 %f137, %f137, %f86;
+ add.f32 %f138, %f138, %f88;
+ add.s32 %r143, %r143, 1;
+
+BB0_7:
+ ld.global.u32 %rd139, [pixelID+4];
+ // inline asm
+ call (%rd136), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd139, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs21, [%rd136+3];
+ setp.eq.s16 %p9, %rs21, 0;
+ @%p9 bra BB0_9;
+
+ // inline asm
+ call (%rd143), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd139, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs22, [%rd143+2];
+ cvt.rn.f32.u16 %f89, %rs22;
+ div.rn.f32 %f90, %f89, 0f437F0000;
+ // inline asm
+ call (%rd149), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd139, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs23, [%rd149+1];
+ cvt.rn.f32.u16 %f91, %rs23;
+ div.rn.f32 %f92, %f91, 0f437F0000;
+ // inline asm
+ call (%rd155), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd139, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs24, [%rd155];
+ cvt.rn.f32.u16 %f93, %rs24;
+ div.rn.f32 %f94, %f93, 0f437F0000;
+ // inline asm
+ call (%rd161), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd139, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs25, [%rd161+3];
+ cvt.rn.f32.u16 %f95, %rs25;
+ div.rn.f32 %f96, %f95, 0f437F0000;
+ add.f32 %f135, %f135, %f90;
+ add.f32 %f136, %f136, %f92;
+ add.f32 %f137, %f137, %f94;
+ add.f32 %f138, %f138, %f96;
+ add.s32 %r143, %r143, 1;
+
+BB0_9:
+ // inline asm
+ call (%rd168), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd139, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs26, [%rd168+3];
+ setp.eq.s16 %p10, %rs26, 0;
+ @%p10 bra BB0_11;
+
+ // inline asm
+ call (%rd175), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd139, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs27, [%rd175+2];
+ cvt.rn.f32.u16 %f97, %rs27;
+ div.rn.f32 %f98, %f97, 0f437F0000;
+ // inline asm
+ call (%rd181), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd139, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs28, [%rd181+1];
+ cvt.rn.f32.u16 %f99, %rs28;
+ div.rn.f32 %f100, %f99, 0f437F0000;
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd139, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs29, [%rd187];
+ cvt.rn.f32.u16 %f101, %rs29;
+ div.rn.f32 %f102, %f101, 0f437F0000;
+ // inline asm
+ call (%rd193), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd139, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs30, [%rd193+3];
+ cvt.rn.f32.u16 %f103, %rs30;
+ div.rn.f32 %f104, %f103, 0f437F0000;
+ add.f32 %f135, %f135, %f98;
+ add.f32 %f136, %f136, %f100;
+ add.f32 %f137, %f137, %f102;
+ add.f32 %f138, %f138, %f104;
+ add.s32 %r143, %r143, 1;
+
+BB0_11:
+ cvt.u64.u32 %rd203, %r2;
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd203, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs31, [%rd200+3];
+ setp.eq.s16 %p11, %rs31, 0;
+ @%p11 bra BB0_13;
+
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd203, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs32, [%rd207+2];
+ cvt.rn.f32.u16 %f105, %rs32;
+ div.rn.f32 %f106, %f105, 0f437F0000;
+ // inline asm
+ call (%rd213), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd203, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs33, [%rd213+1];
+ cvt.rn.f32.u16 %f107, %rs33;
+ div.rn.f32 %f108, %f107, 0f437F0000;
+ // inline asm
+ call (%rd219), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd203, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs34, [%rd219];
+ cvt.rn.f32.u16 %f109, %rs34;
+ div.rn.f32 %f110, %f109, 0f437F0000;
+ // inline asm
+ call (%rd225), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd40, %rd203, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs35, [%rd225+3];
+ cvt.rn.f32.u16 %f111, %rs35;
+ div.rn.f32 %f112, %f111, 0f437F0000;
+ add.f32 %f135, %f135, %f106;
+ add.f32 %f136, %f136, %f108;
+ add.f32 %f137, %f137, %f110;
+ add.f32 %f138, %f138, %f112;
+ add.s32 %r143, %r143, 1;
+
+BB0_13:
+ // inline asm
+ call (%rd232), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd203, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs36, [%rd232+3];
+ setp.eq.s16 %p12, %rs36, 0;
+ @%p12 bra BB0_15;
+
+ // inline asm
+ call (%rd239), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd203, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs37, [%rd239+2];
+ cvt.rn.f32.u16 %f113, %rs37;
+ div.rn.f32 %f114, %f113, 0f437F0000;
+ // inline asm
+ call (%rd245), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd203, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs38, [%rd245+1];
+ cvt.rn.f32.u16 %f115, %rs38;
+ div.rn.f32 %f116, %f115, 0f437F0000;
+ // inline asm
+ call (%rd251), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd203, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs39, [%rd251];
+ cvt.rn.f32.u16 %f117, %rs39;
+ div.rn.f32 %f118, %f117, 0f437F0000;
+ // inline asm
+ call (%rd257), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd106, %rd203, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs40, [%rd257+3];
+ cvt.rn.f32.u16 %f119, %rs40;
+ div.rn.f32 %f120, %f119, 0f437F0000;
+ add.f32 %f135, %f135, %f114;
+ add.f32 %f136, %f136, %f116;
+ add.f32 %f137, %f137, %f118;
+ add.f32 %f138, %f138, %f120;
+ add.s32 %r143, %r143, 1;
+
+BB0_15:
+ setp.eq.s32 %p13, %r143, 0;
+ @%p13 bra BB0_17;
+
+ cvt.rn.f32.u32 %f121, %r143;
+ rcp.rn.f32 %f122, %f121;
+ mul.f32 %f123, %f135, %f122;
+ mul.f32 %f124, %f136, %f122;
+ mul.f32 %f125, %f137, %f122;
+ mul.f32 %f126, %f138, %f122;
+ mul.f32 %f127, %f123, 0f437F0000;
+ mul.f32 %f128, %f124, 0f437F0000;
+ mul.f32 %f129, %f125, 0f437F0000;
+ mul.f32 %f130, %f126, 0f437F0000;
+ ld.global.v2.u32 {%r134, %r135}, [pixelID];
+ cvt.u64.u32 %rd266, %r134;
+ cvt.u64.u32 %rd267, %r135;
+ // inline asm
+ call (%rd264), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd266, %rd267, %rd12, %rd12);
+ // inline asm
+ cvt.rzi.u32.f32 %r138, %f129;
+ cvt.rzi.u32.f32 %r139, %f128;
+ cvt.rzi.u32.f32 %r140, %f127;
+ cvt.rzi.u32.f32 %r141, %f130;
+ cvt.u16.u32 %rs41, %r141;
+ cvt.u16.u32 %rs42, %r140;
+ cvt.u16.u32 %rs43, %r139;
+ cvt.u16.u32 %rs44, %r138;
+ st.v4.u8 [%rd264], {%rs44, %rs43, %rs42, %rs41};
+
+BB0_17:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.ptx.meta
new file mode 100644
index 00000000..5fc03ec0
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilate.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8714cded3f3d6d64681ce7f4c7b804a6
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateFloat.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateFloat.ptx
new file mode 100644
index 00000000..7332df82
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateFloat.ptx
@@ -0,0 +1,284 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<14>;
+ .reg .f32 %f<134>;
+ .reg .b32 %r<85>;
+ .reg .b64 %rd<127>;
+
+
+ ld.global.v2.u32 {%r18, %r19}, [pixelID];
+ cvt.u64.u32 %rd9, %r18;
+ cvt.u64.u32 %rd10, %r19;
+ mov.u64 %rd13, image;
+ cvta.global.u64 %rd8, %rd13;
+ mov.u32 %r16, 2;
+ mov.u32 %r17, 16;
+ mov.u64 %rd12, 0;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd9, %rd10, %rd12, %rd12);
+ // inline asm
+ ld.f32 %f46, [%rd7+12];
+ setp.gt.f32 %p1, %f46, 0f00000000;
+ @%p1 bra BB0_17;
+
+ ld.global.v2.u32 {%r27, %r28}, [pixelID];
+ cvt.u64.u32 %rd16, %r27;
+ cvt.u64.u32 %rd17, %r28;
+ // inline asm
+ call (%rd14), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd16, %rd17, %rd12, %rd12);
+ // inline asm
+ ld.v4.f32 {%f116, %f117, %f118, %f50}, [%rd14];
+ ld.global.v2.u32 {%r31, %r32}, [pixelID];
+ setp.eq.s32 %p2, %r31, 0;
+ add.s32 %r34, %r31, -1;
+ cvt.u64.u32 %rd27, %r34;
+ selp.b64 %rd22, 0, %rd27, %p2;
+ setp.eq.s32 %p3, %r32, 0;
+ add.s32 %r36, %r32, -1;
+ cvt.u64.u32 %rd28, %r36;
+ selp.b64 %rd23, 0, %rd28, %p3;
+ ld.global.v2.u32 {%r37, %r38}, [resolution];
+ add.s32 %r40, %r37, -1;
+ setp.eq.s32 %p4, %r31, %r40;
+ add.s32 %r41, %r31, 1;
+ selp.b32 %r1, %r40, %r41, %p4;
+ add.s32 %r43, %r38, -1;
+ setp.eq.s32 %p5, %r32, %r43;
+ add.s32 %r44, %r32, 1;
+ selp.b32 %r2, %r43, %r44, %p5;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd22, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.f32 %f51, [%rd20+12];
+ mov.u32 %r79, 0;
+ setp.leu.f32 %p6, %f51, 0f00000000;
+ @%p6 bra BB0_3;
+
+ // inline asm
+ call (%rd29), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd22, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.v4.f32 {%f52, %f53, %f54, %f55}, [%rd29];
+ add.f32 %f116, %f116, %f52;
+ add.f32 %f117, %f117, %f53;
+ add.f32 %f118, %f118, %f54;
+ mov.u32 %r79, 1;
+
+BB0_3:
+ ld.global.u32 %rd38, [pixelID];
+ // inline asm
+ call (%rd36), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd38, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.f32 %f59, [%rd36+12];
+ setp.leu.f32 %p7, %f59, 0f00000000;
+ @%p7 bra BB0_5;
+
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd38, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.v4.f32 {%f60, %f61, %f62, %f63}, [%rd43];
+ add.f32 %f116, %f116, %f60;
+ add.f32 %f117, %f117, %f61;
+ add.f32 %f118, %f118, %f62;
+ add.s32 %r79, %r79, 1;
+
+BB0_5:
+ cvt.u64.u32 %rd52, %r1;
+ // inline asm
+ call (%rd50), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd52, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.f32 %f67, [%rd50+12];
+ setp.leu.f32 %p8, %f67, 0f00000000;
+ @%p8 bra BB0_7;
+
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd52, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.v4.f32 {%f68, %f69, %f70, %f71}, [%rd57];
+ add.f32 %f116, %f116, %f68;
+ add.f32 %f117, %f117, %f69;
+ add.f32 %f118, %f118, %f70;
+ add.s32 %r79, %r79, 1;
+
+BB0_7:
+ ld.global.u32 %rd67, [pixelID+4];
+ // inline asm
+ call (%rd64), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd22, %rd67, %rd12, %rd12);
+ // inline asm
+ ld.f32 %f75, [%rd64+12];
+ setp.leu.f32 %p9, %f75, 0f00000000;
+ @%p9 bra BB0_9;
+
+ // inline asm
+ call (%rd71), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd22, %rd67, %rd12, %rd12);
+ // inline asm
+ ld.v4.f32 {%f76, %f77, %f78, %f79}, [%rd71];
+ add.f32 %f116, %f116, %f76;
+ add.f32 %f117, %f117, %f77;
+ add.f32 %f118, %f118, %f78;
+ add.s32 %r79, %r79, 1;
+
+BB0_9:
+ // inline asm
+ call (%rd78), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd52, %rd67, %rd12, %rd12);
+ // inline asm
+ ld.f32 %f83, [%rd78+12];
+ setp.leu.f32 %p10, %f83, 0f00000000;
+ @%p10 bra BB0_11;
+
+ // inline asm
+ call (%rd85), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd52, %rd67, %rd12, %rd12);
+ // inline asm
+ ld.v4.f32 {%f84, %f85, %f86, %f87}, [%rd85];
+ add.f32 %f116, %f116, %f84;
+ add.f32 %f117, %f117, %f85;
+ add.f32 %f118, %f118, %f86;
+ add.s32 %r79, %r79, 1;
+
+BB0_11:
+ cvt.u64.u32 %rd95, %r2;
+ // inline asm
+ call (%rd92), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd22, %rd95, %rd12, %rd12);
+ // inline asm
+ ld.f32 %f91, [%rd92+12];
+ setp.leu.f32 %p11, %f91, 0f00000000;
+ @%p11 bra BB0_13;
+
+ // inline asm
+ call (%rd99), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd22, %rd95, %rd12, %rd12);
+ // inline asm
+ ld.v4.f32 {%f92, %f93, %f94, %f95}, [%rd99];
+ add.f32 %f116, %f116, %f92;
+ add.f32 %f117, %f117, %f93;
+ add.f32 %f118, %f118, %f94;
+ add.s32 %r79, %r79, 1;
+
+BB0_13:
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd52, %rd95, %rd12, %rd12);
+ // inline asm
+ ld.f32 %f99, [%rd106+12];
+ setp.leu.f32 %p12, %f99, 0f00000000;
+ @%p12 bra BB0_15;
+
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd52, %rd95, %rd12, %rd12);
+ // inline asm
+ ld.v4.f32 {%f100, %f101, %f102, %f103}, [%rd113];
+ add.f32 %f116, %f116, %f100;
+ add.f32 %f117, %f117, %f101;
+ add.f32 %f118, %f118, %f102;
+ add.s32 %r79, %r79, 1;
+
+BB0_15:
+ setp.eq.s32 %p13, %r79, 0;
+ @%p13 bra BB0_17;
+
+ cvt.rn.f32.u32 %f107, %r79;
+ rcp.rn.f32 %f108, %f107;
+ ld.global.v2.u32 {%r74, %r75}, [pixelID];
+ cvt.u64.u32 %rd122, %r74;
+ cvt.u64.u32 %rd123, %r75;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd122, %rd123, %rd12, %rd12);
+ // inline asm
+ mul.f32 %f109, %f118, %f108;
+ mul.f32 %f110, %f117, %f108;
+ mul.f32 %f111, %f116, %f108;
+ mov.f32 %f112, 0f3F800000;
+ st.v4.f32 [%rd120], {%f111, %f110, %f109, %f112};
+
+BB0_17:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateFloat.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateFloat.ptx.meta
new file mode 100644
index 00000000..8f33fbe4
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateFloat.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a3321abd087b2e44e8f1852158e8d948
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateHalf.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateHalf.ptx
new file mode 100644
index 00000000..0d6fd130
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateHalf.ptx
@@ -0,0 +1,472 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<14>;
+ .reg .b16 %rs<39>;
+ .reg .f32 %f<98>;
+ .reg .b32 %r<125>;
+ .reg .b64 %rd<223>;
+
+
+ ld.global.v2.u32 {%r18, %r19}, [pixelID];
+ cvt.u64.u32 %rd9, %r18;
+ cvt.u64.u32 %rd10, %r19;
+ mov.u64 %rd13, image;
+ cvta.global.u64 %rd8, %rd13;
+ mov.u32 %r16, 2;
+ mov.u32 %r17, 8;
+ mov.u64 %rd12, 0;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd9, %rd10, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs3, [%rd7+6];
+ mov.f32 %f46, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs2, %f46;}
+
+ // inline asm
+ setp.gt.u16 %p1, %rs3, %rs2;
+ @%p1 bra BB0_17;
+
+ ld.global.v2.u32 {%r31, %r32}, [pixelID];
+ cvt.u64.u32 %rd16, %r31;
+ cvt.u64.u32 %rd17, %r32;
+ // inline asm
+ call (%rd14), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd16, %rd17, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs4, [%rd14];
+ // inline asm
+ { cvt.f32.f16 %f80, %rs4;}
+
+ // inline asm
+ ld.global.v2.u32 {%r35, %r36}, [pixelID];
+ cvt.u64.u32 %rd22, %r35;
+ cvt.u64.u32 %rd23, %r36;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd22, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs5, [%rd20+2];
+ // inline asm
+ { cvt.f32.f16 %f81, %rs5;}
+
+ // inline asm
+ ld.global.v2.u32 {%r39, %r40}, [pixelID];
+ cvt.u64.u32 %rd28, %r39;
+ cvt.u64.u32 %rd29, %r40;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd28, %rd29, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs6, [%rd26+4];
+ // inline asm
+ { cvt.f32.f16 %f82, %rs6;}
+
+ // inline asm
+ ld.global.v2.u32 {%r43, %r44}, [pixelID];
+ setp.eq.s32 %p2, %r43, 0;
+ add.s32 %r46, %r43, -1;
+ cvt.u64.u32 %rd39, %r46;
+ selp.b64 %rd34, 0, %rd39, %p2;
+ setp.eq.s32 %p3, %r44, 0;
+ add.s32 %r48, %r44, -1;
+ cvt.u64.u32 %rd40, %r48;
+ selp.b64 %rd35, 0, %rd40, %p3;
+ ld.global.v2.u32 {%r49, %r50}, [resolution];
+ add.s32 %r52, %r49, -1;
+ setp.eq.s32 %p4, %r43, %r52;
+ add.s32 %r53, %r43, 1;
+ selp.b32 %r1, %r52, %r53, %p4;
+ add.s32 %r55, %r50, -1;
+ setp.eq.s32 %p5, %r44, %r55;
+ add.s32 %r56, %r44, 1;
+ selp.b32 %r2, %r55, %r56, %p5;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd34, %rd35, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs7, [%rd32+6];
+ mov.u32 %r119, 0;
+ setp.le.u16 %p6, %rs7, %rs2;
+ @%p6 bra BB0_3;
+
+ // inline asm
+ call (%rd41), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd34, %rd35, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs8, [%rd41];
+ // inline asm
+ { cvt.f32.f16 %f50, %rs8;}
+
+ // inline asm
+ // inline asm
+ call (%rd47), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd34, %rd35, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs9, [%rd47+2];
+ // inline asm
+ { cvt.f32.f16 %f51, %rs9;}
+
+ // inline asm
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd34, %rd35, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs10, [%rd53+4];
+ // inline asm
+ { cvt.f32.f16 %f52, %rs10;}
+
+ // inline asm
+ add.f32 %f80, %f80, %f50;
+ add.f32 %f81, %f81, %f51;
+ add.f32 %f82, %f82, %f52;
+ mov.u32 %r119, 1;
+
+BB0_3:
+ ld.global.u32 %rd62, [pixelID];
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd62, %rd35, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs11, [%rd60+6];
+ setp.le.u16 %p7, %rs11, %rs2;
+ @%p7 bra BB0_5;
+
+ // inline asm
+ call (%rd67), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd62, %rd35, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs12, [%rd67];
+ // inline asm
+ { cvt.f32.f16 %f53, %rs12;}
+
+ // inline asm
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd62, %rd35, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs13, [%rd73+2];
+ // inline asm
+ { cvt.f32.f16 %f54, %rs13;}
+
+ // inline asm
+ // inline asm
+ call (%rd79), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd62, %rd35, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs14, [%rd79+4];
+ // inline asm
+ { cvt.f32.f16 %f55, %rs14;}
+
+ // inline asm
+ add.f32 %f80, %f80, %f53;
+ add.f32 %f81, %f81, %f54;
+ add.f32 %f82, %f82, %f55;
+ add.s32 %r119, %r119, 1;
+
+BB0_5:
+ cvt.u64.u32 %rd88, %r1;
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd88, %rd35, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs15, [%rd86+6];
+ setp.le.u16 %p8, %rs15, %rs2;
+ @%p8 bra BB0_7;
+
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd88, %rd35, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs16, [%rd93];
+ // inline asm
+ { cvt.f32.f16 %f56, %rs16;}
+
+ // inline asm
+ // inline asm
+ call (%rd99), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd88, %rd35, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs17, [%rd99+2];
+ // inline asm
+ { cvt.f32.f16 %f57, %rs17;}
+
+ // inline asm
+ // inline asm
+ call (%rd105), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd88, %rd35, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs18, [%rd105+4];
+ // inline asm
+ { cvt.f32.f16 %f58, %rs18;}
+
+ // inline asm
+ add.f32 %f80, %f80, %f56;
+ add.f32 %f81, %f81, %f57;
+ add.f32 %f82, %f82, %f58;
+ add.s32 %r119, %r119, 1;
+
+BB0_7:
+ ld.global.u32 %rd115, [pixelID+4];
+ // inline asm
+ call (%rd112), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd34, %rd115, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs19, [%rd112+6];
+ setp.le.u16 %p9, %rs19, %rs2;
+ @%p9 bra BB0_9;
+
+ // inline asm
+ call (%rd119), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd34, %rd115, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs20, [%rd119];
+ // inline asm
+ { cvt.f32.f16 %f59, %rs20;}
+
+ // inline asm
+ // inline asm
+ call (%rd125), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd34, %rd115, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs21, [%rd125+2];
+ // inline asm
+ { cvt.f32.f16 %f60, %rs21;}
+
+ // inline asm
+ // inline asm
+ call (%rd131), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd34, %rd115, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs22, [%rd131+4];
+ // inline asm
+ { cvt.f32.f16 %f61, %rs22;}
+
+ // inline asm
+ add.f32 %f80, %f80, %f59;
+ add.f32 %f81, %f81, %f60;
+ add.f32 %f82, %f82, %f61;
+ add.s32 %r119, %r119, 1;
+
+BB0_9:
+ // inline asm
+ call (%rd138), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd88, %rd115, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs23, [%rd138+6];
+ setp.le.u16 %p10, %rs23, %rs2;
+ @%p10 bra BB0_11;
+
+ // inline asm
+ call (%rd145), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd88, %rd115, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs24, [%rd145];
+ // inline asm
+ { cvt.f32.f16 %f62, %rs24;}
+
+ // inline asm
+ // inline asm
+ call (%rd151), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd88, %rd115, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs25, [%rd151+2];
+ // inline asm
+ { cvt.f32.f16 %f63, %rs25;}
+
+ // inline asm
+ // inline asm
+ call (%rd157), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd88, %rd115, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs26, [%rd157+4];
+ // inline asm
+ { cvt.f32.f16 %f64, %rs26;}
+
+ // inline asm
+ add.f32 %f80, %f80, %f62;
+ add.f32 %f81, %f81, %f63;
+ add.f32 %f82, %f82, %f64;
+ add.s32 %r119, %r119, 1;
+
+BB0_11:
+ cvt.u64.u32 %rd167, %r2;
+ // inline asm
+ call (%rd164), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd34, %rd167, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs27, [%rd164+6];
+ setp.le.u16 %p11, %rs27, %rs2;
+ @%p11 bra BB0_13;
+
+ // inline asm
+ call (%rd171), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd34, %rd167, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs28, [%rd171];
+ // inline asm
+ { cvt.f32.f16 %f65, %rs28;}
+
+ // inline asm
+ // inline asm
+ call (%rd177), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd34, %rd167, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs29, [%rd177+2];
+ // inline asm
+ { cvt.f32.f16 %f66, %rs29;}
+
+ // inline asm
+ // inline asm
+ call (%rd183), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd34, %rd167, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs30, [%rd183+4];
+ // inline asm
+ { cvt.f32.f16 %f67, %rs30;}
+
+ // inline asm
+ add.f32 %f80, %f80, %f65;
+ add.f32 %f81, %f81, %f66;
+ add.f32 %f82, %f82, %f67;
+ add.s32 %r119, %r119, 1;
+
+BB0_13:
+ // inline asm
+ call (%rd190), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd88, %rd167, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs31, [%rd190+6];
+ setp.le.u16 %p12, %rs31, %rs2;
+ @%p12 bra BB0_15;
+
+ // inline asm
+ call (%rd197), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd88, %rd167, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs32, [%rd197];
+ // inline asm
+ { cvt.f32.f16 %f68, %rs32;}
+
+ // inline asm
+ // inline asm
+ call (%rd203), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd88, %rd167, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs33, [%rd203+2];
+ // inline asm
+ { cvt.f32.f16 %f69, %rs33;}
+
+ // inline asm
+ // inline asm
+ call (%rd209), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd88, %rd167, %rd12, %rd12);
+ // inline asm
+ ld.u16 %rs34, [%rd209+4];
+ // inline asm
+ { cvt.f32.f16 %f70, %rs34;}
+
+ // inline asm
+ add.f32 %f80, %f80, %f68;
+ add.f32 %f81, %f81, %f69;
+ add.f32 %f82, %f82, %f70;
+ add.s32 %r119, %r119, 1;
+
+BB0_15:
+ setp.eq.s32 %p13, %r119, 0;
+ @%p13 bra BB0_17;
+
+ cvt.rn.f32.u32 %f75, %r119;
+ rcp.rn.f32 %f76, %f75;
+ mul.f32 %f71, %f80, %f76;
+ mul.f32 %f72, %f81, %f76;
+ mul.f32 %f73, %f82, %f76;
+ ld.global.v2.u32 {%r114, %r115}, [pixelID];
+ cvt.u64.u32 %rd218, %r114;
+ cvt.u64.u32 %rd219, %r115;
+ // inline asm
+ call (%rd216), _rt_buffer_get_64, (%rd8, %r16, %r17, %rd218, %rd219, %rd12, %rd12);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f73;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f72;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs35, %f71;}
+
+ // inline asm
+ mov.f32 %f74, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f74;}
+
+ // inline asm
+ st.v4.u16 [%rd216], {%rs35, %rs36, %rs37, %rs38};
+
+BB0_17:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateHalf.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateHalf.ptx.meta
new file mode 100644
index 00000000..2959f463
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateHalf.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 221f0729ddb8fc742a94d3f5ed9ae330
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateMask.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateMask.ptx
new file mode 100644
index 00000000..02c61cfd
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateMask.ptx
@@ -0,0 +1,286 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<14>;
+ .reg .b16 %rs<19>;
+ .reg .f32 %f<41>;
+ .reg .b32 %r<86>;
+ .reg .b64 %rd<127>;
+
+
+ ld.global.v2.u32 {%r18, %r19}, [pixelID];
+ cvt.u64.u32 %rd9, %r18;
+ cvt.u64.u32 %rd10, %r19;
+ mov.u64 %rd13, image;
+ cvta.global.u64 %rd8, %rd13;
+ mov.u32 %r17, 2;
+ mov.u64 %rd12, 0;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd9, %rd10, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs1, [%rd7+1];
+ setp.ne.s16 %p1, %rs1, 0;
+ @%p1 bra BB0_17;
+
+ ld.global.v2.u32 {%r27, %r28}, [pixelID];
+ cvt.u64.u32 %rd16, %r27;
+ cvt.u64.u32 %rd17, %r28;
+ // inline asm
+ call (%rd14), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd16, %rd17, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs2, [%rd14];
+ cvt.rn.f32.u16 %f16, %rs2;
+ div.rn.f32 %f35, %f16, 0f437F0000;
+ ld.global.v2.u32 {%r31, %r32}, [pixelID];
+ setp.eq.s32 %p2, %r31, 0;
+ add.s32 %r34, %r31, -1;
+ cvt.u64.u32 %rd27, %r34;
+ selp.b64 %rd22, 0, %rd27, %p2;
+ setp.eq.s32 %p3, %r32, 0;
+ add.s32 %r36, %r32, -1;
+ cvt.u64.u32 %rd28, %r36;
+ selp.b64 %rd23, 0, %rd28, %p3;
+ ld.global.v2.u32 {%r37, %r38}, [resolution];
+ add.s32 %r40, %r37, -1;
+ setp.eq.s32 %p4, %r31, %r40;
+ add.s32 %r41, %r31, 1;
+ selp.b32 %r1, %r40, %r41, %p4;
+ add.s32 %r43, %r38, -1;
+ setp.eq.s32 %p5, %r32, %r43;
+ add.s32 %r44, %r32, 1;
+ selp.b32 %r2, %r43, %r44, %p5;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd22, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs3, [%rd20+1];
+ setp.eq.s16 %p6, %rs3, 0;
+ mov.u32 %r80, 0;
+ @%p6 bra BB0_3;
+
+ // inline asm
+ call (%rd29), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd22, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs4, [%rd29];
+ cvt.rn.f32.u16 %f17, %rs4;
+ div.rn.f32 %f18, %f17, 0f437F0000;
+ add.f32 %f35, %f35, %f18;
+ mov.u32 %r80, 1;
+
+BB0_3:
+ ld.global.u32 %rd38, [pixelID];
+ // inline asm
+ call (%rd36), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd38, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs5, [%rd36+1];
+ setp.eq.s16 %p7, %rs5, 0;
+ @%p7 bra BB0_5;
+
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd38, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs6, [%rd43];
+ cvt.rn.f32.u16 %f19, %rs6;
+ div.rn.f32 %f20, %f19, 0f437F0000;
+ add.f32 %f35, %f35, %f20;
+ add.s32 %r80, %r80, 1;
+
+BB0_5:
+ cvt.u64.u32 %rd52, %r1;
+ // inline asm
+ call (%rd50), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd52, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs7, [%rd50+1];
+ setp.eq.s16 %p8, %rs7, 0;
+ @%p8 bra BB0_7;
+
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd52, %rd23, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs8, [%rd57];
+ cvt.rn.f32.u16 %f21, %rs8;
+ div.rn.f32 %f22, %f21, 0f437F0000;
+ add.f32 %f35, %f35, %f22;
+ add.s32 %r80, %r80, 1;
+
+BB0_7:
+ ld.global.u32 %rd67, [pixelID+4];
+ // inline asm
+ call (%rd64), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd22, %rd67, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs9, [%rd64+1];
+ setp.eq.s16 %p9, %rs9, 0;
+ @%p9 bra BB0_9;
+
+ // inline asm
+ call (%rd71), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd22, %rd67, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs10, [%rd71];
+ cvt.rn.f32.u16 %f23, %rs10;
+ div.rn.f32 %f24, %f23, 0f437F0000;
+ add.f32 %f35, %f35, %f24;
+ add.s32 %r80, %r80, 1;
+
+BB0_9:
+ // inline asm
+ call (%rd78), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd52, %rd67, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs11, [%rd78+1];
+ setp.eq.s16 %p10, %rs11, 0;
+ @%p10 bra BB0_11;
+
+ // inline asm
+ call (%rd85), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd52, %rd67, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs12, [%rd85];
+ cvt.rn.f32.u16 %f25, %rs12;
+ div.rn.f32 %f26, %f25, 0f437F0000;
+ add.f32 %f35, %f35, %f26;
+ add.s32 %r80, %r80, 1;
+
+BB0_11:
+ cvt.u64.u32 %rd95, %r2;
+ // inline asm
+ call (%rd92), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd22, %rd95, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs13, [%rd92+1];
+ setp.eq.s16 %p11, %rs13, 0;
+ @%p11 bra BB0_13;
+
+ // inline asm
+ call (%rd99), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd22, %rd95, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs14, [%rd99];
+ cvt.rn.f32.u16 %f27, %rs14;
+ div.rn.f32 %f28, %f27, 0f437F0000;
+ add.f32 %f35, %f35, %f28;
+ add.s32 %r80, %r80, 1;
+
+BB0_13:
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd52, %rd95, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs15, [%rd106+1];
+ setp.eq.s16 %p12, %rs15, 0;
+ @%p12 bra BB0_15;
+
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd52, %rd95, %rd12, %rd12);
+ // inline asm
+ ld.u8 %rs16, [%rd113];
+ cvt.rn.f32.u16 %f29, %rs16;
+ div.rn.f32 %f30, %f29, 0f437F0000;
+ add.f32 %f35, %f35, %f30;
+ add.s32 %r80, %r80, 1;
+
+BB0_15:
+ setp.eq.s32 %p13, %r80, 0;
+ @%p13 bra BB0_17;
+
+ cvt.rn.f32.u32 %f31, %r80;
+ div.rn.f32 %f32, %f35, %f31;
+ ld.global.v2.u32 {%r74, %r75}, [pixelID];
+ cvt.u64.u32 %rd122, %r74;
+ cvt.u64.u32 %rd123, %r75;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd8, %r17, %r17, %rd122, %rd123, %rd12, %rd12);
+ // inline asm
+ mul.f32 %f33, %f32, 0f437F0000;
+ cvt.rzi.u32.f32 %r78, %f33;
+ cvt.u16.u32 %rs17, %r78;
+ mov.u16 %rs18, 255;
+ st.v2.u8 [%rd120], {%rs17, %rs18};
+
+BB0_17:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateMask.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateMask.ptx.meta
new file mode 100644
index 00000000..fa3ed217
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateMask.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 47011ee837ad730478e644f3ec8b3953
+timeCreated: 1534426493
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateSimple.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateSimple.pso
new file mode 100644
index 00000000..9f47d28a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateSimple.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateSimple.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateSimple.pso.meta
new file mode 100644
index 00000000..33e3cab0
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/dilateSimple.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fb7aef4959b95904399631eb75d7f0e5
+timeCreated: 1530103296
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/exception.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/exception.ptx
new file mode 100644
index 00000000..6bf2bf19
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/exception.ptx
@@ -0,0 +1,934 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.extern .func (.param .b32 func_retval0) vprintf
+(
+ .param .b64 vprintf_param_0,
+ .param .b64 vprintf_param_1
+)
+;
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 16 .b8 $str[64] = {67, 97, 117, 103, 104, 116, 32, 82, 84, 95, 69, 88, 67, 69, 80, 84, 73, 79, 78, 95, 83, 84, 65, 67, 75, 95, 79, 86, 69, 82, 70, 76, 79, 87, 10, 32, 32, 108, 97, 117, 110, 99, 104, 32, 105, 110, 100, 101, 120, 32, 58, 32, 37, 100, 44, 32, 37, 100, 44, 32, 37, 100, 10, 0};
+.global .align 16 .b8 $str1[218] = {67, 97, 117, 103, 104, 116, 32, 82, 84, 95, 69, 88, 67, 69, 80, 84, 73, 79, 78, 95, 66, 85, 70, 70, 69, 82, 95, 73, 78, 68, 69, 88, 95, 79, 85, 84, 95, 79, 70, 95, 66, 79, 85, 78, 68, 83, 10, 32, 32, 108, 97, 117, 110, 99, 104, 32, 105, 110, 100, 101, 120, 32, 32, 32, 58, 32, 37, 100, 44, 32, 37, 100, 44, 32, 37, 100, 10, 32, 32, 98, 117, 102, 102, 101, 114, 32, 97, 100, 100, 114, 101, 115, 115, 32, 58, 32, 48, 120, 37, 108, 108, 88, 10, 32, 32, 100, 105, 109, 101, 110, 115, 105, 111, 110, 97, 108, 105, 116, 121, 32, 58, 32, 37, 100, 10, 32, 32, 115, 105, 122, 101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 58, 32, 37, 108, 108, 100, 120, 37, 108, 108, 100, 120, 37, 108, 108, 100, 10, 32, 32, 101, 108, 101, 109, 101, 110, 116, 32, 115, 105, 122, 101, 32, 32, 32, 58, 32, 37, 100, 10, 32, 32, 97, 99, 99, 101, 115, 115, 101, 100, 32, 105, 110, 100, 101, 120, 32, 58, 32, 37, 108, 108, 100, 44, 32, 37, 108, 108, 100, 44, 32, 37, 108, 108, 100, 10, 0};
+.global .align 16 .b8 $str2[40] = {67, 97, 117, 103, 104, 116, 32, 82, 84, 95, 69, 88, 67, 69, 80, 84, 73, 79, 78, 95, 80, 82, 79, 71, 82, 65, 77, 95, 73, 68, 95, 73, 78, 86, 65, 76, 73, 68, 10, 0};
+.global .align 16 .b8 $str3[46] = {9, 112, 114, 111, 103, 114, 97, 109, 32, 73, 68, 32, 101, 113, 117, 97, 108, 32, 116, 111, 32, 82, 84, 95, 80, 82, 79, 71, 82, 65, 77, 95, 73, 68, 95, 78, 85, 76, 76, 32, 117, 115, 101, 100, 10, 0};
+.global .align 16 .b8 $str4[56] = {9, 112, 114, 111, 103, 114, 97, 109, 32, 73, 68, 32, 40, 37, 100, 41, 32, 105, 115, 32, 110, 111, 116, 32, 105, 110, 32, 116, 104, 101, 32, 118, 97, 108, 105, 100, 32, 114, 97, 110, 103, 101, 32, 111, 102, 32, 91, 49, 44, 115, 105, 122, 101, 41, 10, 0};
+.global .align 16 .b8 $str5[39] = {9, 112, 114, 111, 103, 114, 97, 109, 32, 73, 68, 32, 111, 102, 32, 97, 32, 100, 101, 108, 101, 116, 101, 100, 32, 112, 114, 111, 103, 114, 97, 109, 32, 117, 115, 101, 100, 10, 0};
+.global .align 16 .b8 $str6[40] = {67, 97, 117, 103, 104, 116, 32, 82, 84, 95, 69, 88, 67, 69, 80, 84, 73, 79, 78, 95, 84, 69, 88, 84, 85, 82, 69, 95, 73, 68, 95, 73, 78, 86, 65, 76, 73, 68, 10, 0};
+.global .align 16 .b8 $str7[33] = {9, 116, 101, 120, 116, 117, 114, 101, 32, 73, 68, 32, 40, 37, 100, 41, 32, 105, 115, 32, 105, 110, 118, 97, 108, 105, 100, 32, 40, 48, 41, 10, 0};
+.global .align 16 .b8 $str8[56] = {9, 116, 101, 120, 116, 117, 114, 101, 32, 73, 68, 32, 40, 37, 100, 41, 32, 105, 115, 32, 110, 111, 116, 32, 105, 110, 32, 116, 104, 101, 32, 118, 97, 108, 105, 100, 32, 114, 97, 110, 103, 101, 32, 111, 102, 32, 91, 49, 44, 115, 105, 122, 101, 41, 10, 0};
+.global .align 16 .b8 $str9[34] = {9, 116, 101, 120, 116, 117, 114, 101, 32, 73, 68, 32, 40, 37, 100, 41, 32, 105, 115, 32, 105, 110, 118, 97, 108, 105, 100, 32, 40, 45, 49, 41, 10, 0};
+.global .align 16 .b8 $str10[39] = {67, 97, 117, 103, 104, 116, 32, 82, 84, 95, 69, 88, 67, 69, 80, 84, 73, 79, 78, 95, 66, 85, 70, 70, 69, 82, 95, 73, 68, 95, 73, 78, 86, 65, 76, 73, 68, 10, 0};
+.global .align 16 .b8 $str11[44] = {9, 98, 117, 102, 102, 101, 114, 32, 73, 68, 32, 101, 113, 117, 97, 108, 32, 116, 111, 32, 82, 84, 95, 66, 85, 70, 70, 69, 82, 95, 73, 68, 95, 78, 85, 76, 76, 32, 117, 115, 101, 100, 10, 0};
+.global .align 16 .b8 $str12[55] = {9, 98, 117, 102, 102, 101, 114, 32, 73, 68, 32, 40, 37, 100, 41, 32, 105, 115, 32, 110, 111, 116, 32, 105, 110, 32, 116, 104, 101, 32, 118, 97, 108, 105, 100, 32, 114, 97, 110, 103, 101, 32, 111, 102, 32, 91, 49, 44, 115, 105, 122, 101, 41, 10, 0};
+.global .align 16 .b8 $str13[37] = {9, 66, 117, 102, 102, 101, 114, 32, 73, 68, 32, 111, 102, 32, 97, 32, 100, 101, 108, 101, 116, 101, 100, 32, 98, 117, 102, 102, 101, 114, 32, 117, 115, 101, 100, 10, 0};
+.global .align 16 .b8 $str14[145] = {67, 97, 117, 103, 104, 116, 32, 82, 84, 95, 69, 88, 67, 69, 80, 84, 73, 79, 78, 95, 73, 78, 68, 69, 88, 95, 79, 85, 84, 95, 79, 70, 95, 66, 79, 85, 78, 68, 83, 10, 32, 32, 108, 97, 117, 110, 99, 104, 32, 105, 110, 100, 101, 120, 32, 32, 32, 58, 32, 37, 100, 44, 32, 37, 100, 44, 32, 37, 100, 10, 32, 32, 98, 117, 102, 102, 101, 114, 32, 97, 100, 100, 114, 101, 115, 115, 32, 58, 32, 48, 120, 37, 108, 108, 88, 10, 32, 32, 115, 105, 122, 101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 58, 32, 37, 108, 108, 100, 10, 32, 32, 97, 99, 99, 101, 115, 115, 101, 100, 32, 105, 110, 100, 101, 120, 32, 58, 32, 37, 108, 108, 100, 10, 0};
+.global .align 16 .b8 $str15[179] = {67, 97, 117, 103, 104, 116, 32, 82, 84, 95, 69, 88, 67, 69, 80, 84, 73, 79, 78, 95, 73, 78, 86, 65, 76, 73, 68, 95, 82, 65, 89, 10, 32, 32, 108, 97, 117, 110, 99, 104, 32, 105, 110, 100, 101, 120, 32, 32, 58, 32, 37, 100, 44, 32, 37, 100, 44, 32, 37, 100, 10, 32, 32, 114, 97, 121, 32, 111, 114, 105, 103, 105, 110, 32, 32, 32, 32, 58, 32, 37, 102, 32, 37, 102, 32, 37, 102, 10, 32, 32, 114, 97, 121, 32, 100, 105, 114, 101, 99, 116, 105, 111, 110, 32, 58, 32, 37, 102, 32, 37, 102, 32, 37, 102, 10, 32, 32, 114, 97, 121, 32, 116, 121, 112, 101, 32, 32, 32, 32, 32, 32, 58, 32, 37, 100, 10, 32, 32, 114, 97, 121, 32, 116, 109, 105, 110, 32, 32, 32, 32, 32, 32, 58, 32, 37, 102, 10, 32, 32, 114, 97, 121, 32, 116, 109, 97, 120, 32, 32, 32, 32, 32, 32, 58, 32, 37, 102, 10, 0};
+.global .align 16 .b8 $str16[84] = {67, 97, 117, 103, 104, 116, 32, 82, 84, 95, 69, 88, 67, 69, 80, 84, 73, 79, 78, 95, 73, 78, 84, 69, 82, 78, 65, 76, 95, 69, 82, 82, 79, 82, 10, 32, 32, 108, 97, 117, 110, 99, 104, 32, 105, 110, 100, 101, 120, 32, 58, 32, 37, 100, 44, 32, 37, 100, 44, 32, 37, 100, 10, 32, 32, 101, 114, 114, 111, 114, 32, 105, 100, 32, 32, 32, 32, 32, 58, 32, 37, 100, 10, 0};
+.global .align 16 .b8 $str17[57] = {67, 97, 117, 103, 104, 116, 32, 82, 84, 95, 69, 88, 67, 69, 80, 84, 73, 79, 78, 95, 85, 83, 69, 82, 43, 37, 100, 10, 32, 32, 108, 97, 117, 110, 99, 104, 32, 105, 110, 100, 101, 120, 32, 58, 32, 37, 100, 44, 32, 37, 100, 44, 32, 37, 100, 10, 0};
+.global .align 16 .b8 $str18[54] = {67, 97, 117, 103, 104, 116, 32, 117, 110, 107, 110, 111, 119, 110, 32, 101, 120, 99, 101, 112, 116, 105, 111, 110, 10, 32, 32, 108, 97, 117, 110, 99, 104, 32, 105, 110, 100, 101, 120, 32, 58, 32, 37, 100, 44, 32, 37, 100, 44, 32, 37, 100, 10, 0};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 16 .b8 __local_depot0[208];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<40>;
+ .reg .f32 %f<9>;
+ .reg .b32 %r<84>;
+ .reg .f64 %fd<9>;
+ .reg .b64 %rd<90>;
+
+
+ mov.u64 %rd89, __local_depot0;
+ cvta.local.u64 %SP, %rd89;
+ // inline asm
+ call (%r39), _rt_get_exception_code, ();
+ // inline asm
+ // inline asm
+ call (%r40), _rt_get_exception_code, ();
+ // inline asm
+ setp.eq.s32 %p1, %r40, 1020;
+ @%p1 bra BB0_58;
+ bra.uni BB0_1;
+
+BB0_58:
+ ld.volatile.global.u32 %r36, [_ZN21rti_internal_register14reg_rayIndex_xE];
+ ld.volatile.global.u32 %r37, [_ZN21rti_internal_register14reg_rayIndex_yE];
+ ld.volatile.global.u32 %r38, [_ZN21rti_internal_register14reg_rayIndex_zE];
+ // inline asm
+ call (%r81), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p39, %r81, 0;
+ @%p39 bra BB0_60;
+
+ add.u64 %rd83, %SP, 184;
+ cvta.to.local.u64 %rd84, %rd83;
+ st.local.v2.u32 [%rd84], {%r36, %r37};
+ st.local.u32 [%rd84+8], %r38;
+ mov.u64 %rd85, $str;
+ cvta.global.u64 %rd86, %rd85;
+ // Callseq Start 18
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd86;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd83;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r82, [retval0+0];
+
+ //{
+ }// Callseq End 18
+ bra.uni BB0_60;
+
+BB0_1:
+ setp.eq.s32 %p2, %r40, 1021;
+ @%p2 bra BB0_52;
+ bra.uni BB0_2;
+
+BB0_52:
+ ld.volatile.global.u32 %r30, [_ZN21rti_internal_register21reg_exception_detail0E];
+ ld.volatile.global.u32 %r31, [_ZN21rti_internal_register14reg_rayIndex_xE];
+ ld.volatile.global.u32 %r32, [_ZN21rti_internal_register14reg_rayIndex_yE];
+ ld.volatile.global.u32 %r33, [_ZN21rti_internal_register14reg_rayIndex_zE];
+ ld.volatile.global.u64 %rd5, [_ZN21rti_internal_register24reg_exception_64_detail0E];
+ ld.volatile.global.u32 %r34, [_ZN21rti_internal_register21reg_exception_detail0E];
+ ld.volatile.global.u64 %rd6, [_ZN21rti_internal_register24reg_exception_64_detail1E];
+ mov.u64 %rd88, 1;
+ setp.lt.u32 %p36, %r30, 2;
+ mov.u64 %rd87, %rd88;
+ @%p36 bra BB0_54;
+
+ ld.volatile.global.u64 %rd87, [_ZN21rti_internal_register24reg_exception_64_detail2E];
+
+BB0_54:
+ setp.lt.u32 %p37, %r30, 3;
+ @%p37 bra BB0_56;
+
+ ld.volatile.global.u64 %rd88, [_ZN21rti_internal_register24reg_exception_64_detail3E];
+
+BB0_56:
+ ld.volatile.global.u32 %r35, [_ZN21rti_internal_register21reg_exception_detail1E];
+ ld.volatile.global.u64 %rd11, [_ZN21rti_internal_register24reg_exception_64_detail4E];
+ ld.volatile.global.u64 %rd12, [_ZN21rti_internal_register24reg_exception_64_detail5E];
+ ld.volatile.global.u64 %rd13, [_ZN21rti_internal_register24reg_exception_64_detail6E];
+ // inline asm
+ call (%r79), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p38, %r79, 0;
+ @%p38 bra BB0_60;
+
+ add.u64 %rd79, %SP, 96;
+ cvta.to.local.u64 %rd80, %rd79;
+ st.local.v2.u32 [%rd80], {%r31, %r32};
+ st.local.u32 [%rd80+8], %r33;
+ st.local.u32 [%rd80+24], %r34;
+ st.local.u32 [%rd80+56], %r35;
+ st.local.u64 [%rd80+16], %rd5;
+ st.local.u64 [%rd80+32], %rd6;
+ st.local.u64 [%rd80+40], %rd87;
+ st.local.u64 [%rd80+48], %rd88;
+ st.local.u64 [%rd80+64], %rd11;
+ st.local.u64 [%rd80+72], %rd12;
+ st.local.u64 [%rd80+80], %rd13;
+ mov.u64 %rd81, $str1;
+ cvta.global.u64 %rd82, %rd81;
+ // Callseq Start 17
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd82;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd79;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r80, [retval0+0];
+
+ //{
+ }// Callseq End 17
+
+BB0_60:
+ ret;
+
+BB0_2:
+ setp.eq.s32 %p3, %r40, 1006;
+ @%p3 bra BB0_41;
+ bra.uni BB0_3;
+
+BB0_41:
+ // inline asm
+ call (%r70), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p29, %r70, 0;
+ @%p29 bra BB0_43;
+
+ mov.u64 %rd64, $str2;
+ cvta.global.u64 %rd65, %rd64;
+ mov.u64 %rd66, 0;
+ // Callseq Start 13
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd65;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd66;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r71, [retval0+0];
+
+ //{
+ }// Callseq End 13
+
+BB0_43:
+ ld.volatile.global.u32 %r72, [_ZN21rti_internal_register21reg_exception_detail1E];
+ setp.eq.s32 %p30, %r72, 0;
+ @%p30 bra BB0_50;
+
+ setp.eq.s32 %p31, %r72, 1;
+ @%p31 bra BB0_48;
+ bra.uni BB0_45;
+
+BB0_48:
+ ld.volatile.global.u32 %r29, [_ZN21rti_internal_register21reg_exception_detail0E];
+ // inline asm
+ call (%r75), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p34, %r75, 0;
+ @%p34 bra BB0_60;
+
+ add.u64 %rd70, %SP, 88;
+ cvta.to.local.u64 %rd71, %rd70;
+ st.local.u32 [%rd71], %r29;
+ mov.u64 %rd72, $str4;
+ cvta.global.u64 %rd73, %rd72;
+ // Callseq Start 15
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd73;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd70;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r76, [retval0+0];
+
+ //{
+ }// Callseq End 15
+ bra.uni BB0_60;
+
+BB0_3:
+ setp.eq.s32 %p4, %r40, 1007;
+ @%p4 bra BB0_30;
+ bra.uni BB0_4;
+
+BB0_30:
+ // inline asm
+ call (%r61), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p22, %r61, 0;
+ @%p22 bra BB0_32;
+
+ mov.u64 %rd49, $str6;
+ cvta.global.u64 %rd50, %rd49;
+ mov.u64 %rd51, 0;
+ // Callseq Start 9
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd50;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd51;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r62, [retval0+0];
+
+ //{
+ }// Callseq End 9
+
+BB0_32:
+ ld.volatile.global.u32 %r63, [_ZN21rti_internal_register21reg_exception_detail1E];
+ setp.eq.s32 %p23, %r63, 0;
+ @%p23 bra BB0_39;
+
+ setp.eq.s32 %p24, %r63, 1;
+ @%p24 bra BB0_37;
+ bra.uni BB0_34;
+
+BB0_37:
+ ld.volatile.global.u32 %r27, [_ZN21rti_internal_register21reg_exception_detail0E];
+ // inline asm
+ call (%r66), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p27, %r66, 0;
+ @%p27 bra BB0_60;
+
+ add.u64 %rd56, %SP, 72;
+ cvta.to.local.u64 %rd57, %rd56;
+ st.local.u32 [%rd57], %r27;
+ mov.u64 %rd58, $str8;
+ cvta.global.u64 %rd59, %rd58;
+ // Callseq Start 11
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd59;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd56;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r67, [retval0+0];
+
+ //{
+ }// Callseq End 11
+ bra.uni BB0_60;
+
+BB0_4:
+ setp.eq.s32 %p5, %r40, 1018;
+ @%p5 bra BB0_19;
+ bra.uni BB0_5;
+
+BB0_19:
+ // inline asm
+ call (%r52), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p15, %r52, 0;
+ @%p15 bra BB0_21;
+
+ mov.u64 %rd36, $str10;
+ cvta.global.u64 %rd37, %rd36;
+ mov.u64 %rd38, 0;
+ // Callseq Start 5
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd37;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd38;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r53, [retval0+0];
+
+ //{
+ }// Callseq End 5
+
+BB0_21:
+ ld.volatile.global.u32 %r54, [_ZN21rti_internal_register21reg_exception_detail1E];
+ setp.eq.s32 %p16, %r54, 0;
+ @%p16 bra BB0_28;
+
+ setp.eq.s32 %p17, %r54, 1;
+ @%p17 bra BB0_26;
+ bra.uni BB0_23;
+
+BB0_26:
+ ld.volatile.global.u32 %r25, [_ZN21rti_internal_register21reg_exception_detail0E];
+ // inline asm
+ call (%r57), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p20, %r57, 0;
+ @%p20 bra BB0_60;
+
+ add.u64 %rd42, %SP, 56;
+ cvta.to.local.u64 %rd43, %rd42;
+ st.local.u32 [%rd43], %r25;
+ mov.u64 %rd44, $str12;
+ cvta.global.u64 %rd45, %rd44;
+ // Callseq Start 7
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd45;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd42;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r58, [retval0+0];
+
+ //{
+ }// Callseq End 7
+ bra.uni BB0_60;
+
+BB0_50:
+ // inline asm
+ call (%r77), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p35, %r77, 0;
+ @%p35 bra BB0_60;
+
+ mov.u64 %rd74, $str3;
+ cvta.global.u64 %rd75, %rd74;
+ mov.u64 %rd76, 0;
+ // Callseq Start 16
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd75;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd76;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r78, [retval0+0];
+
+ //{
+ }// Callseq End 16
+ bra.uni BB0_60;
+
+BB0_45:
+ setp.ne.s32 %p32, %r72, 2;
+ @%p32 bra BB0_60;
+
+ // inline asm
+ call (%r73), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p33, %r73, 0;
+ @%p33 bra BB0_60;
+
+ mov.u64 %rd67, $str5;
+ cvta.global.u64 %rd68, %rd67;
+ mov.u64 %rd69, 0;
+ // Callseq Start 14
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd68;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd69;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r74, [retval0+0];
+
+ //{
+ }// Callseq End 14
+ bra.uni BB0_60;
+
+BB0_5:
+ setp.eq.s32 %p6, %r40, 1019;
+ @%p6 bra BB0_17;
+ bra.uni BB0_6;
+
+BB0_17:
+ ld.volatile.global.u32 %r50, [_ZN21rti_internal_register21reg_exception_detail0E];
+ ld.volatile.global.u32 %r22, [_ZN21rti_internal_register14reg_rayIndex_xE];
+ ld.volatile.global.u32 %r23, [_ZN21rti_internal_register14reg_rayIndex_yE];
+ ld.volatile.global.u32 %r24, [_ZN21rti_internal_register14reg_rayIndex_zE];
+ ld.volatile.global.u64 %rd2, [_ZN21rti_internal_register24reg_exception_64_detail0E];
+ ld.volatile.global.u64 %rd3, [_ZN21rti_internal_register24reg_exception_64_detail1E];
+ ld.volatile.global.u64 %rd4, [_ZN21rti_internal_register24reg_exception_64_detail2E];
+ // inline asm
+ call (%r49), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p14, %r49, 0;
+ @%p14 bra BB0_60;
+
+ add.u64 %rd32, %SP, 16;
+ cvta.to.local.u64 %rd33, %rd32;
+ st.local.v2.u32 [%rd33], {%r22, %r23};
+ st.local.u32 [%rd33+8], %r24;
+ st.local.u64 [%rd33+16], %rd2;
+ st.local.u64 [%rd33+24], %rd3;
+ st.local.u64 [%rd33+32], %rd4;
+ mov.u64 %rd34, $str14;
+ cvta.global.u64 %rd35, %rd34;
+ // Callseq Start 4
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd35;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd32;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r51, [retval0+0];
+
+ //{
+ }// Callseq End 4
+ bra.uni BB0_60;
+
+BB0_39:
+ ld.volatile.global.u32 %r28, [_ZN21rti_internal_register21reg_exception_detail0E];
+ // inline asm
+ call (%r68), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p28, %r68, 0;
+ @%p28 bra BB0_60;
+
+ add.u64 %rd60, %SP, 80;
+ cvta.to.local.u64 %rd61, %rd60;
+ st.local.u32 [%rd61], %r28;
+ mov.u64 %rd62, $str7;
+ cvta.global.u64 %rd63, %rd62;
+ // Callseq Start 12
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd63;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd60;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r69, [retval0+0];
+
+ //{
+ }// Callseq End 12
+ bra.uni BB0_60;
+
+BB0_34:
+ setp.ne.s32 %p25, %r63, 2;
+ @%p25 bra BB0_60;
+
+ ld.volatile.global.u32 %r26, [_ZN21rti_internal_register21reg_exception_detail0E];
+ // inline asm
+ call (%r64), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p26, %r64, 0;
+ @%p26 bra BB0_60;
+
+ add.u64 %rd52, %SP, 64;
+ cvta.to.local.u64 %rd53, %rd52;
+ st.local.u32 [%rd53], %r26;
+ mov.u64 %rd54, $str9;
+ cvta.global.u64 %rd55, %rd54;
+ // Callseq Start 10
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd55;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd52;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r65, [retval0+0];
+
+ //{
+ }// Callseq End 10
+ bra.uni BB0_60;
+
+BB0_6:
+ setp.eq.s32 %p7, %r40, 1022;
+ @%p7 bra BB0_15;
+ bra.uni BB0_7;
+
+BB0_15:
+ ld.volatile.global.u32 %r10, [_ZN21rti_internal_register14reg_rayIndex_xE];
+ ld.volatile.global.u32 %r11, [_ZN21rti_internal_register14reg_rayIndex_yE];
+ ld.volatile.global.u32 %r12, [_ZN21rti_internal_register14reg_rayIndex_zE];
+ ld.volatile.global.u32 %r13, [_ZN21rti_internal_register21reg_exception_detail0E];
+ ld.volatile.global.u32 %r14, [_ZN21rti_internal_register21reg_exception_detail1E];
+ ld.volatile.global.u32 %r15, [_ZN21rti_internal_register21reg_exception_detail2E];
+ ld.volatile.global.u32 %r16, [_ZN21rti_internal_register21reg_exception_detail3E];
+ ld.volatile.global.u32 %r17, [_ZN21rti_internal_register21reg_exception_detail4E];
+ ld.volatile.global.u32 %r18, [_ZN21rti_internal_register21reg_exception_detail5E];
+ ld.volatile.global.u32 %r19, [_ZN21rti_internal_register21reg_exception_detail6E];
+ ld.volatile.global.u32 %r20, [_ZN21rti_internal_register21reg_exception_detail7E];
+ ld.volatile.global.u32 %r21, [_ZN21rti_internal_register21reg_exception_detail8E];
+ // inline asm
+ call (%r47), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p13, %r47, 0;
+ @%p13 bra BB0_60;
+
+ mov.b32 %f1, %r13;
+ cvt.f64.f32 %fd1, %f1;
+ mov.b32 %f2, %r14;
+ cvt.f64.f32 %fd2, %f2;
+ mov.b32 %f3, %r15;
+ cvt.f64.f32 %fd3, %f3;
+ mov.b32 %f4, %r16;
+ cvt.f64.f32 %fd4, %f4;
+ mov.b32 %f5, %r17;
+ cvt.f64.f32 %fd5, %f5;
+ mov.b32 %f6, %r18;
+ cvt.f64.f32 %fd6, %f6;
+ mov.b32 %f7, %r20;
+ cvt.f64.f32 %fd7, %f7;
+ mov.b32 %f8, %r21;
+ cvt.f64.f32 %fd8, %f8;
+ add.u64 %rd28, %SP, 96;
+ cvta.to.local.u64 %rd29, %rd28;
+ st.local.v2.u32 [%rd29], {%r10, %r11};
+ st.local.u32 [%rd29+8], %r12;
+ st.local.u32 [%rd29+64], %r19;
+ st.local.f64 [%rd29+16], %fd1;
+ st.local.f64 [%rd29+24], %fd2;
+ st.local.f64 [%rd29+32], %fd3;
+ st.local.f64 [%rd29+40], %fd4;
+ st.local.f64 [%rd29+48], %fd5;
+ st.local.f64 [%rd29+56], %fd6;
+ st.local.f64 [%rd29+72], %fd7;
+ st.local.f64 [%rd29+80], %fd8;
+ mov.u64 %rd30, $str15;
+ cvta.global.u64 %rd31, %rd30;
+ // Callseq Start 3
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd31;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd28;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r48, [retval0+0];
+
+ //{
+ }// Callseq End 3
+ bra.uni BB0_60;
+
+BB0_28:
+ // inline asm
+ call (%r59), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p21, %r59, 0;
+ @%p21 bra BB0_60;
+
+ mov.u64 %rd46, $str11;
+ cvta.global.u64 %rd47, %rd46;
+ mov.u64 %rd48, 0;
+ // Callseq Start 8
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd47;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd48;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r60, [retval0+0];
+
+ //{
+ }// Callseq End 8
+ bra.uni BB0_60;
+
+BB0_23:
+ setp.ne.s32 %p18, %r54, 2;
+ @%p18 bra BB0_60;
+
+ // inline asm
+ call (%r55), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p19, %r55, 0;
+ @%p19 bra BB0_60;
+
+ mov.u64 %rd39, $str13;
+ cvta.global.u64 %rd40, %rd39;
+ mov.u64 %rd41, 0;
+ // Callseq Start 6
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd40;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd41;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r56, [retval0+0];
+
+ //{
+ }// Callseq End 6
+ bra.uni BB0_60;
+
+BB0_7:
+ setp.eq.s32 %p8, %r40, 1023;
+ add.u64 %rd14, %SP, 0;
+ cvta.to.local.u64 %rd15, %rd14;
+ add.s64 %rd1, %rd15, 4;
+ @%p8 bra BB0_13;
+ bra.uni BB0_8;
+
+BB0_13:
+ ld.volatile.global.u32 %r6, [_ZN21rti_internal_register14reg_rayIndex_xE];
+ ld.volatile.global.u32 %r7, [_ZN21rti_internal_register14reg_rayIndex_yE];
+ ld.volatile.global.u32 %r8, [_ZN21rti_internal_register14reg_rayIndex_zE];
+ ld.volatile.global.u32 %r9, [_ZN21rti_internal_register21reg_exception_detail0E];
+ // inline asm
+ call (%r45), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p12, %r45, 0;
+ @%p12 bra BB0_60;
+
+ st.local.u32 [%rd15], %r6;
+ st.local.u32 [%rd1], %r7;
+ st.local.v2.u32 [%rd1+4], {%r8, %r9};
+ mov.u64 %rd26, $str16;
+ cvta.global.u64 %rd27, %rd26;
+ // Callseq Start 2
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd27;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd14;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r46, [retval0+0];
+
+ //{
+ }// Callseq End 2
+ bra.uni BB0_60;
+
+BB0_8:
+ add.s32 %r2, %r40, -1024;
+ setp.lt.u32 %p9, %r2, 64512;
+ ld.volatile.global.u32 %r3, [_ZN21rti_internal_register14reg_rayIndex_xE];
+ ld.volatile.global.u32 %r4, [_ZN21rti_internal_register14reg_rayIndex_yE];
+ ld.volatile.global.u32 %r5, [_ZN21rti_internal_register14reg_rayIndex_zE];
+ @%p9 bra BB0_11;
+ bra.uni BB0_9;
+
+BB0_11:
+ // inline asm
+ call (%r43), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p11, %r43, 0;
+ @%p11 bra BB0_60;
+
+ add.s32 %r83, %r40, -1024;
+ st.local.u32 [%rd15], %r83;
+ st.local.u32 [%rd1], %r3;
+ st.local.v2.u32 [%rd1+4], {%r4, %r5};
+ mov.u64 %rd22, $str17;
+ cvta.global.u64 %rd23, %rd22;
+ // Callseq Start 1
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd23;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd14;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r44, [retval0+0];
+
+ //{
+ }// Callseq End 1
+ bra.uni BB0_60;
+
+BB0_9:
+ // inline asm
+ call (%r41), _rt_print_active, ();
+ // inline asm
+ setp.eq.s32 %p10, %r41, 0;
+ @%p10 bra BB0_60;
+
+ add.u64 %rd16, %SP, 184;
+ cvta.to.local.u64 %rd17, %rd16;
+ st.local.v2.u32 [%rd17], {%r3, %r4};
+ st.local.u32 [%rd17+8], %r5;
+ mov.u64 %rd18, $str18;
+ cvta.global.u64 %rd19, %rd18;
+ // Callseq Start 0
+ {
+ .reg .b32 temp_param_reg;
+ // <end>}
+ .param .b64 param0;
+ st.param.b64 [param0+0], %rd19;
+ .param .b64 param1;
+ st.param.b64 [param1+0], %rd16;
+ .param .b32 retval0;
+ call.uni (retval0),
+ vprintf,
+ (
+ param0,
+ param1
+ );
+ ld.param.b32 %r42, [retval0+0];
+
+ //{
+ }// Callseq End 0
+ bra.uni BB0_60;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/exception.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/exception.ptx.meta
new file mode 100644
index 00000000..091f8325
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/exception.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9d9bc0dee203fca4e82a2ec45087ad9e
+timeCreated: 1527356601
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos.ptx
new file mode 100644
index 00000000..ccb3b806
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos.ptx
@@ -0,0 +1,337 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 uvfacenormal[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<12>;
+ .reg .b16 %rs<9>;
+ .reg .f32 %f<153>;
+ .reg .b32 %r<59>;
+ .reg .b64 %rd<57>;
+
+
+ mov.u64 %rd56, __local_depot0;
+ cvta.local.u64 %SP, %rd56;
+ ld.global.v2.u32 {%r6, %r7}, [pixelID];
+ cvt.u64.u32 %rd4, %r6;
+ cvt.u64.u32 %rd5, %r7;
+ mov.u64 %rd8, uvfacenormal;
+ cvta.global.u64 %rd3, %rd8;
+ mov.u32 %r4, 2;
+ mov.u32 %r5, 4;
+ mov.u64 %rd7, 0;
+ // inline asm
+ call (%rd2), _rt_buffer_get_64, (%rd3, %r4, %r5, %rd4, %rd5, %rd7, %rd7);
+ // inline asm
+ ld.u32 %r1, [%rd2];
+ shr.u32 %r10, %r1, 16;
+ cvt.u16.u32 %rs1, %r10;
+ and.b16 %rs2, %rs1, 255;
+ cvt.u16.u32 %rs3, %r1;
+ or.b16 %rs4, %rs3, %rs2;
+ setp.eq.s16 %p1, %rs4, 0;
+ mov.f32 %f143, 0f00000000;
+ mov.f32 %f144, %f143;
+ mov.f32 %f145, %f143;
+ @%p1 bra BB0_2;
+
+ ld.u8 %rs5, [%rd2+1];
+ and.b16 %rs7, %rs3, 255;
+ cvt.rn.f32.u16 %f61, %rs7;
+ div.rn.f32 %f62, %f61, 0f437F0000;
+ fma.rn.f32 %f63, %f62, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f64, %rs5;
+ div.rn.f32 %f65, %f64, 0f437F0000;
+ fma.rn.f32 %f66, %f65, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f67, %rs2;
+ div.rn.f32 %f68, %f67, 0f437F0000;
+ fma.rn.f32 %f69, %f68, 0f40000000, 0fBF800000;
+ mul.f32 %f70, %f66, %f66;
+ fma.rn.f32 %f71, %f63, %f63, %f70;
+ fma.rn.f32 %f72, %f69, %f69, %f71;
+ sqrt.rn.f32 %f73, %f72;
+ rcp.rn.f32 %f74, %f73;
+ mul.f32 %f143, %f63, %f74;
+ mul.f32 %f144, %f66, %f74;
+ mul.f32 %f145, %f69, %f74;
+
+BB0_2:
+ ld.global.v2.u32 {%r11, %r12}, [pixelID];
+ ld.global.v2.u32 {%r14, %r15}, [tileInfo];
+ add.s32 %r2, %r11, %r14;
+ add.s32 %r3, %r12, %r15;
+ setp.eq.f32 %p2, %f144, 0f00000000;
+ setp.eq.f32 %p3, %f143, 0f00000000;
+ and.pred %p4, %p3, %p2;
+ setp.eq.f32 %p5, %f145, 0f00000000;
+ and.pred %p6, %p4, %p5;
+ @%p6 bra BB0_9;
+ bra.uni BB0_3;
+
+BB0_9:
+ cvt.u64.u32 %rd51, %r2;
+ cvt.u64.u32 %rd52, %r3;
+ mov.u64 %rd55, image_HDR;
+ cvta.global.u64 %rd50, %rd55;
+ mov.u32 %r58, 16;
+ // inline asm
+ call (%rd49), _rt_buffer_get_64, (%rd50, %r4, %r58, %rd51, %rd52, %rd7, %rd7);
+ // inline asm
+ mov.f32 %f142, 0f00000000;
+ st.v4.f32 [%rd49], {%f142, %f142, %f142, %f142};
+ bra.uni BB0_10;
+
+BB0_3:
+ ld.global.v2.u32 {%r30, %r31}, [pixelID];
+ cvt.u64.u32 %rd11, %r30;
+ cvt.u64.u32 %rd12, %r31;
+ mov.u64 %rd34, uvpos;
+ cvta.global.u64 %rd10, %rd34;
+ mov.u32 %r26, 16;
+ // inline asm
+ call (%rd9), _rt_buffer_get_64, (%rd10, %r4, %r26, %rd11, %rd12, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f150, [%rd9];
+ ld.global.v2.u32 {%r34, %r35}, [pixelID];
+ cvt.u64.u32 %rd17, %r34;
+ cvt.u64.u32 %rd18, %r35;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd10, %r4, %r26, %rd17, %rd18, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f151, [%rd15+4];
+ ld.global.v2.u32 {%r38, %r39}, [pixelID];
+ cvt.u64.u32 %rd23, %r38;
+ cvt.u64.u32 %rd24, %r39;
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd10, %r4, %r26, %rd23, %rd24, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f152, [%rd21+8];
+ ld.global.v2.u32 {%r42, %r43}, [pixelID];
+ cvt.u64.u32 %rd29, %r42;
+ cvt.u64.u32 %rd30, %r43;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd10, %r4, %r26, %rd29, %rd30, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f83, [%rd27+12];
+ add.f32 %f82, %f83, 0f38D1B717;
+ fma.rn.f32 %f11, %f143, 0f38D1B717, %f150;
+ fma.rn.f32 %f12, %f144, 0f38D1B717, %f151;
+ fma.rn.f32 %f13, %f145, 0f38D1B717, %f152;
+ abs.f32 %f84, %f145;
+ abs.f32 %f85, %f143;
+ setp.gt.f32 %p7, %f85, %f84;
+ neg.f32 %f86, %f144;
+ selp.f32 %f87, %f86, 0f00000000, %p7;
+ neg.f32 %f88, %f145;
+ selp.f32 %f89, %f143, %f88, %p7;
+ selp.f32 %f90, 0f00000000, %f144, %p7;
+ mul.f32 %f91, %f89, %f89;
+ fma.rn.f32 %f92, %f87, %f87, %f91;
+ fma.rn.f32 %f93, %f90, %f90, %f92;
+ sqrt.rn.f32 %f94, %f93;
+ rcp.rn.f32 %f95, %f94;
+ mul.f32 %f14, %f87, %f95;
+ mul.f32 %f15, %f89, %f95;
+ mul.f32 %f16, %f90, %f95;
+ mul.f32 %f96, %f145, %f15;
+ mul.f32 %f97, %f144, %f16;
+ sub.f32 %f17, %f96, %f97;
+ mul.f32 %f98, %f143, %f16;
+ mul.f32 %f99, %f145, %f14;
+ sub.f32 %f18, %f98, %f99;
+ mul.f32 %f100, %f144, %f14;
+ mul.f32 %f101, %f143, %f15;
+ sub.f32 %f19, %f100, %f101;
+ mov.f32 %f102, 0f3F8147AE;
+ sqrt.rn.f32 %f103, %f102;
+ rcp.rn.f32 %f20, %f103;
+ neg.f32 %f21, %f20;
+ mul.f32 %f22, %f20, 0f00000000;
+ mul.f32 %f104, %f20, 0f3DCCCCCD;
+ mul.f32 %f23, %f14, %f22;
+ mul.f32 %f24, %f15, %f22;
+ mul.f32 %f25, %f16, %f22;
+ fma.rn.f32 %f105, %f17, %f21, %f23;
+ fma.rn.f32 %f106, %f18, %f21, %f24;
+ fma.rn.f32 %f107, %f19, %f21, %f25;
+ mul.f32 %f26, %f143, %f104;
+ mul.f32 %f27, %f144, %f104;
+ mul.f32 %f28, %f145, %f104;
+ add.f32 %f149, %f105, %f26;
+ add.f32 %f148, %f106, %f27;
+ add.f32 %f147, %f107, %f28;
+ add.u64 %rd33, %SP, 0;
+ cvta.to.local.u64 %rd35, %rd33;
+ mov.u32 %r28, 0;
+ st.local.u32 [%rd35], %r28;
+ ld.global.u32 %r27, [root];
+ mov.f32 %f81, 0f38D1B717;
+ // inline asm
+ call _rt_trace_64, (%r27, %f11, %f12, %f13, %f149, %f148, %f147, %r28, %f81, %f82, %rd33, %r5);
+ // inline asm
+ ld.local.f32 %f146, [%rd35];
+ setp.gt.f32 %p8, %f146, 0f00000000;
+ @%p8 bra BB0_7;
+
+ fma.rn.f32 %f116, %f17, %f20, %f23;
+ fma.rn.f32 %f117, %f18, %f20, %f24;
+ fma.rn.f32 %f118, %f19, %f20, %f25;
+ add.f32 %f149, %f116, %f26;
+ add.f32 %f148, %f117, %f27;
+ add.f32 %f147, %f118, %f28;
+ st.local.u32 [%rd35], %r28;
+ ld.global.u32 %r46, [root];
+ // inline asm
+ call _rt_trace_64, (%r46, %f11, %f12, %f13, %f149, %f148, %f147, %r28, %f81, %f82, %rd33, %r5);
+ // inline asm
+ ld.local.f32 %f146, [%rd35];
+ setp.gt.f32 %p9, %f146, 0f00000000;
+ @%p9 bra BB0_7;
+
+ mul.f32 %f37, %f17, %f22;
+ fma.rn.f32 %f127, %f14, %f21, %f37;
+ mul.f32 %f38, %f18, %f22;
+ fma.rn.f32 %f128, %f15, %f21, %f38;
+ mul.f32 %f39, %f19, %f22;
+ fma.rn.f32 %f129, %f16, %f21, %f39;
+ add.f32 %f149, %f127, %f26;
+ add.f32 %f148, %f128, %f27;
+ add.f32 %f147, %f129, %f28;
+ st.local.u32 [%rd35], %r28;
+ ld.global.u32 %r49, [root];
+ // inline asm
+ call _rt_trace_64, (%r49, %f11, %f12, %f13, %f149, %f148, %f147, %r28, %f81, %f82, %rd33, %r5);
+ // inline asm
+ ld.local.f32 %f146, [%rd35];
+ setp.gt.f32 %p10, %f146, 0f00000000;
+ @%p10 bra BB0_7;
+
+ fma.rn.f32 %f138, %f14, %f20, %f37;
+ fma.rn.f32 %f139, %f15, %f20, %f38;
+ fma.rn.f32 %f140, %f16, %f20, %f39;
+ add.f32 %f149, %f138, %f26;
+ add.f32 %f148, %f139, %f27;
+ add.f32 %f147, %f140, %f28;
+ st.local.u32 [%rd35], %r28;
+ ld.global.u32 %r52, [root];
+ // inline asm
+ call _rt_trace_64, (%r52, %f11, %f12, %f13, %f149, %f148, %f147, %r28, %f81, %f82, %rd33, %r5);
+ // inline asm
+ ld.local.f32 %f146, [%rd35];
+ setp.leu.f32 %p11, %f146, 0f00000000;
+ @%p11 bra BB0_8;
+
+BB0_7:
+ fma.rn.f32 %f150, %f146, %f149, %f11;
+ fma.rn.f32 %f151, %f146, %f148, %f12;
+ fma.rn.f32 %f152, %f146, %f147, %f13;
+
+BB0_8:
+ cvt.u64.u32 %rd45, %r3;
+ cvt.u64.u32 %rd44, %r2;
+ mov.u64 %rd48, image_HDR;
+ cvta.global.u64 %rd43, %rd48;
+ // inline asm
+ call (%rd42), _rt_buffer_get_64, (%rd43, %r4, %r26, %rd44, %rd45, %rd7, %rd7);
+ // inline asm
+ mov.f32 %f141, 0f3F800000;
+ st.v4.f32 [%rd42], {%f150, %f151, %f152, %f141};
+
+BB0_10:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos.ptx.meta
new file mode 100644
index 00000000..016afcce
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 04bc0e20327a72741902db186ca7e332
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos1.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos1.ptx
new file mode 100644
index 00000000..f91be368
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos1.ptx
@@ -0,0 +1,245 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 uvfacenormal[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvsmoothpos[1];
+.global .align 1 .b8 triangleMarks[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<8>;
+ .reg .b16 %rs<10>;
+ .reg .f32 %f<50>;
+ .reg .b32 %r<46>;
+ .reg .b64 %rd<51>;
+
+
+ mov.u64 %rd50, __local_depot0;
+ cvta.local.u64 %SP, %rd50;
+ ld.global.v2.u32 {%r4, %r5}, [pixelID];
+ cvt.u64.u32 %rd4, %r4;
+ cvt.u64.u32 %rd5, %r5;
+ mov.u64 %rd8, uvfacenormal;
+ cvta.global.u64 %rd3, %rd8;
+ mov.u32 %r2, 2;
+ mov.u32 %r3, 4;
+ mov.u64 %rd7, 0;
+ // inline asm
+ call (%rd2), _rt_buffer_get_64, (%rd3, %r2, %r3, %rd4, %rd5, %rd7, %rd7);
+ // inline asm
+ ld.u32 %r1, [%rd2];
+ shr.u32 %r8, %r1, 16;
+ cvt.u16.u32 %rs1, %r8;
+ and.b16 %rs2, %rs1, 255;
+ cvt.u16.u32 %rs3, %r1;
+ or.b16 %rs4, %rs3, %rs2;
+ setp.eq.s16 %p1, %rs4, 0;
+ mov.f32 %f47, 0f00000000;
+ mov.f32 %f48, %f47;
+ mov.f32 %f49, %f47;
+ @%p1 bra BB0_2;
+
+ ld.u8 %rs5, [%rd2+1];
+ and.b16 %rs7, %rs3, 255;
+ cvt.rn.f32.u16 %f11, %rs7;
+ div.rn.f32 %f12, %f11, 0f437F0000;
+ fma.rn.f32 %f13, %f12, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f14, %rs5;
+ div.rn.f32 %f15, %f14, 0f437F0000;
+ fma.rn.f32 %f16, %f15, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f17, %rs2;
+ div.rn.f32 %f18, %f17, 0f437F0000;
+ fma.rn.f32 %f19, %f18, 0f40000000, 0fBF800000;
+ mul.f32 %f20, %f16, %f16;
+ fma.rn.f32 %f21, %f13, %f13, %f20;
+ fma.rn.f32 %f22, %f19, %f19, %f21;
+ sqrt.rn.f32 %f23, %f22;
+ rcp.rn.f32 %f24, %f23;
+ mul.f32 %f47, %f13, %f24;
+ mul.f32 %f48, %f16, %f24;
+ mul.f32 %f49, %f19, %f24;
+
+BB0_2:
+ setp.eq.f32 %p2, %f48, 0f00000000;
+ setp.eq.f32 %p3, %f47, 0f00000000;
+ and.pred %p4, %p3, %p2;
+ setp.eq.f32 %p5, %f49, 0f00000000;
+ and.pred %p6, %p4, %p5;
+ @%p6 bra BB0_5;
+
+ ld.global.v2.u32 {%r22, %r23}, [pixelID];
+ cvt.u64.u32 %rd11, %r22;
+ cvt.u64.u32 %rd12, %r23;
+ mov.u64 %rd40, uvpos;
+ cvta.global.u64 %rd10, %rd40;
+ mov.u32 %r10, 12;
+ // inline asm
+ call (%rd9), _rt_buffer_get_64, (%rd10, %r2, %r10, %rd11, %rd12, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f33, [%rd9+8];
+ ld.f32 %f34, [%rd9+4];
+ ld.f32 %f35, [%rd9];
+ fma.rn.f32 %f25, %f47, 0f38D1B717, %f35;
+ fma.rn.f32 %f26, %f48, 0f38D1B717, %f34;
+ fma.rn.f32 %f27, %f49, 0f38D1B717, %f33;
+ ld.global.v2.u32 {%r26, %r27}, [pixelID];
+ cvt.u64.u32 %rd17, %r26;
+ cvt.u64.u32 %rd18, %r27;
+ mov.u64 %rd41, uvsmoothpos;
+ cvta.global.u64 %rd16, %rd41;
+ mov.u32 %r18, 16;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd16, %r2, %r18, %rd17, %rd18, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f36, [%rd15];
+ ld.global.v2.u32 {%r30, %r31}, [pixelID];
+ cvt.u64.u32 %rd23, %r30;
+ cvt.u64.u32 %rd24, %r31;
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd16, %r2, %r18, %rd23, %rd24, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f37, [%rd21+4];
+ ld.global.v2.u32 {%r34, %r35}, [pixelID];
+ cvt.u64.u32 %rd29, %r34;
+ cvt.u64.u32 %rd30, %r35;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd16, %r2, %r18, %rd29, %rd30, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f38, [%rd27+8];
+ ld.global.v2.u32 {%r38, %r39}, [pixelID];
+ cvt.u64.u32 %rd35, %r38;
+ cvt.u64.u32 %rd36, %r39;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd16, %r2, %r18, %rd35, %rd36, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f7, [%rd33+12];
+ sub.f32 %f39, %f36, %f35;
+ sub.f32 %f40, %f37, %f34;
+ sub.f32 %f41, %f38, %f33;
+ mul.f32 %f42, %f40, %f40;
+ fma.rn.f32 %f43, %f39, %f39, %f42;
+ fma.rn.f32 %f44, %f41, %f41, %f43;
+ sqrt.rn.f32 %f32, %f44;
+ rcp.rn.f32 %f45, %f32;
+ mul.f32 %f28, %f39, %f45;
+ mul.f32 %f29, %f40, %f45;
+ mul.f32 %f30, %f41, %f45;
+ add.u64 %rd39, %SP, 0;
+ cvta.to.local.u64 %rd42, %rd39;
+ mov.u32 %r42, -1082130432;
+ st.local.u32 [%rd42], %r42;
+ ld.global.u32 %r19, [root];
+ mov.u32 %r20, 0;
+ mov.f32 %f31, 0f38D1B717;
+ // inline asm
+ call _rt_trace_64, (%r19, %f25, %f26, %f27, %f28, %f29, %f30, %r20, %f31, %f32, %rd39, %r3);
+ // inline asm
+ ld.local.f32 %f46, [%rd42];
+ setp.ltu.f32 %p7, %f46, 0f00000000;
+ @%p7 bra BB0_5;
+
+ cvt.rzi.u32.f32 %r45, %f7;
+ cvt.u64.u32 %rd45, %r45;
+ mov.u64 %rd49, triangleMarks;
+ cvta.global.u64 %rd44, %rd49;
+ mov.u32 %r44, 1;
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd44, %r44, %r44, %rd45, %rd7, %rd7, %rd7);
+ // inline asm
+ mov.u16 %rs9, 255;
+ st.u8 [%rd43], %rs9;
+
+BB0_5:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos1.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos1.ptx.meta
new file mode 100644
index 00000000..6f7a5150
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos1.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fdf30ebf12520be429e3ad31eb009930
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos12.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos12.ptx
new file mode 100644
index 00000000..607de26f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos12.ptx
@@ -0,0 +1,702 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 uvfacenormal[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvsmoothpos[1];
+.global .align 1 .b8 triangleMarks[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 4 .f32 fakeBias;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8fakeBiasE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8fakeBiasE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8fakeBiasE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8fakeBiasE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8fakeBiasE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[28];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<33>;
+ .reg .b16 %rs<12>;
+ .reg .f32 %f<382>;
+ .reg .b32 %r<129>;
+ .reg .b64 %rd<124>;
+
+
+ mov.u64 %rd123, __local_depot0;
+ cvta.local.u64 %SP, %rd123;
+ ld.global.v2.u32 {%r8, %r9}, [pixelID];
+ cvt.u64.u32 %rd8, %r8;
+ cvt.u64.u32 %rd9, %r9;
+ mov.u64 %rd12, uvfacenormal;
+ cvta.global.u64 %rd7, %rd12;
+ mov.u32 %r6, 2;
+ mov.u32 %r7, 4;
+ mov.u64 %rd11, 0;
+ // inline asm
+ call (%rd6), _rt_buffer_get_64, (%rd7, %r6, %r7, %rd8, %rd9, %rd11, %rd11);
+ // inline asm
+ ld.u32 %r1, [%rd6];
+ shr.u32 %r12, %r1, 16;
+ cvt.u16.u32 %rs1, %r12;
+ and.b16 %rs2, %rs1, 255;
+ cvt.u16.u32 %rs3, %r1;
+ or.b16 %rs4, %rs3, %rs2;
+ setp.eq.s16 %p1, %rs4, 0;
+ mov.f32 %f360, 0f00000000;
+ mov.f32 %f361, %f360;
+ mov.f32 %f362, %f360;
+ @%p1 bra BB0_2;
+
+ ld.u8 %rs5, [%rd6+1];
+ and.b16 %rs7, %rs3, 255;
+ cvt.rn.f32.u16 %f115, %rs7;
+ div.rn.f32 %f116, %f115, 0f437F0000;
+ fma.rn.f32 %f117, %f116, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f118, %rs5;
+ div.rn.f32 %f119, %f118, 0f437F0000;
+ fma.rn.f32 %f120, %f119, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f121, %rs2;
+ div.rn.f32 %f122, %f121, 0f437F0000;
+ fma.rn.f32 %f123, %f122, 0f40000000, 0fBF800000;
+ mul.f32 %f124, %f120, %f120;
+ fma.rn.f32 %f125, %f117, %f117, %f124;
+ fma.rn.f32 %f126, %f123, %f123, %f125;
+ sqrt.rn.f32 %f127, %f126;
+ rcp.rn.f32 %f128, %f127;
+ mul.f32 %f360, %f117, %f128;
+ mul.f32 %f361, %f120, %f128;
+ mul.f32 %f362, %f123, %f128;
+
+BB0_2:
+ ld.global.v2.u32 {%r13, %r14}, [pixelID];
+ ld.global.v2.u32 {%r16, %r17}, [tileInfo];
+ add.s32 %r2, %r13, %r16;
+ add.s32 %r3, %r14, %r17;
+ setp.eq.f32 %p2, %f361, 0f00000000;
+ setp.eq.f32 %p3, %f360, 0f00000000;
+ and.pred %p4, %p3, %p2;
+ setp.eq.f32 %p5, %f362, 0f00000000;
+ and.pred %p6, %p4, %p5;
+ @%p6 bra BB0_27;
+ bra.uni BB0_3;
+
+BB0_27:
+ cvt.u64.u32 %rd107, %r2;
+ cvt.u64.u32 %rd108, %r3;
+ mov.u64 %rd111, image_HDR;
+ cvta.global.u64 %rd106, %rd111;
+ mov.u32 %r109, 16;
+ // inline asm
+ call (%rd105), _rt_buffer_get_64, (%rd106, %r6, %r109, %rd107, %rd108, %rd11, %rd11);
+ // inline asm
+ mov.f32 %f348, 0f00000000;
+ st.v4.f32 [%rd105], {%f348, %f348, %f348, %f348};
+ bra.uni BB0_28;
+
+BB0_3:
+ ld.global.v2.u32 {%r39, %r40}, [pixelID];
+ cvt.u64.u32 %rd15, %r39;
+ cvt.u64.u32 %rd16, %r40;
+ mov.u64 %rd67, uvpos;
+ cvta.global.u64 %rd14, %rd67;
+ mov.u32 %r36, 16;
+ // inline asm
+ call (%rd13), _rt_buffer_get_64, (%rd14, %r6, %r36, %rd15, %rd16, %rd11, %rd11);
+ // inline asm
+ ld.f32 %f129, [%rd13];
+ ld.global.v2.u32 {%r43, %r44}, [pixelID];
+ cvt.u64.u32 %rd21, %r43;
+ cvt.u64.u32 %rd22, %r44;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd14, %r6, %r36, %rd21, %rd22, %rd11, %rd11);
+ // inline asm
+ ld.f32 %f130, [%rd19+4];
+ ld.global.v2.u32 {%r47, %r48}, [pixelID];
+ cvt.u64.u32 %rd27, %r47;
+ cvt.u64.u32 %rd28, %r48;
+ // inline asm
+ call (%rd25), _rt_buffer_get_64, (%rd14, %r6, %r36, %rd27, %rd28, %rd11, %rd11);
+ // inline asm
+ abs.f32 %f131, %f129;
+ setp.gtu.f32 %p7, %f131, 0f7F800000;
+ selp.f32 %f7, 0f00000000, %f129, %p7;
+ abs.f32 %f132, %f130;
+ setp.gtu.f32 %p8, %f132, 0f7F800000;
+ selp.f32 %f8, 0f00000000, %f130, %p8;
+ ld.f32 %f133, [%rd25+8];
+ abs.f32 %f134, %f133;
+ setp.gtu.f32 %p9, %f134, 0f7F800000;
+ selp.f32 %f9, 0f00000000, %f133, %p9;
+ ld.global.v2.u32 {%r51, %r52}, [pixelID];
+ cvt.u64.u32 %rd33, %r51;
+ cvt.u64.u32 %rd34, %r52;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd14, %r6, %r36, %rd33, %rd34, %rd11, %rd11);
+ // inline asm
+ ld.f32 %f135, [%rd31+12];
+ add.f32 %f10, %f135, 0f38D1B717;
+ mul.f32 %f136, %f7, 0f3456BF95;
+ mul.f32 %f137, %f8, 0f3456BF95;
+ mul.f32 %f138, %f9, 0f3456BF95;
+ abs.f32 %f11, %f360;
+ div.rn.f32 %f139, %f136, %f11;
+ abs.f32 %f140, %f361;
+ div.rn.f32 %f141, %f137, %f140;
+ abs.f32 %f12, %f362;
+ div.rn.f32 %f142, %f138, %f12;
+ abs.f32 %f143, %f139;
+ abs.f32 %f144, %f141;
+ abs.f32 %f145, %f142;
+ mov.f32 %f146, 0f38D1B717;
+ max.f32 %f147, %f143, %f146;
+ max.f32 %f148, %f144, %f146;
+ max.f32 %f149, %f145, %f146;
+ fma.rn.f32 %f13, %f360, %f147, %f7;
+ fma.rn.f32 %f14, %f361, %f148, %f8;
+ fma.rn.f32 %f15, %f362, %f149, %f9;
+ ld.global.v2.u32 {%r55, %r56}, [pixelID];
+ cvt.u64.u32 %rd39, %r55;
+ cvt.u64.u32 %rd40, %r56;
+ mov.u64 %rd68, uvsmoothpos;
+ cvta.global.u64 %rd38, %rd68;
+ // inline asm
+ call (%rd37), _rt_buffer_get_64, (%rd38, %r6, %r36, %rd39, %rd40, %rd11, %rd11);
+ // inline asm
+ ld.f32 %f16, [%rd37];
+ ld.global.v2.u32 {%r59, %r60}, [pixelID];
+ cvt.u64.u32 %rd45, %r59;
+ cvt.u64.u32 %rd46, %r60;
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd38, %r6, %r36, %rd45, %rd46, %rd11, %rd11);
+ // inline asm
+ ld.f32 %f17, [%rd43+4];
+ ld.global.v2.u32 {%r63, %r64}, [pixelID];
+ cvt.u64.u32 %rd51, %r63;
+ cvt.u64.u32 %rd52, %r64;
+ // inline asm
+ call (%rd49), _rt_buffer_get_64, (%rd38, %r6, %r36, %rd51, %rd52, %rd11, %rd11);
+ // inline asm
+ ld.f32 %f18, [%rd49+8];
+ ld.global.v2.u32 {%r67, %r68}, [pixelID];
+ cvt.u64.u32 %rd57, %r67;
+ cvt.u64.u32 %rd58, %r68;
+ // inline asm
+ call (%rd55), _rt_buffer_get_64, (%rd38, %r6, %r36, %rd57, %rd58, %rd11, %rd11);
+ // inline asm
+ ld.f32 %f150, [%rd55+12];
+ cvt.rzi.u32.f32 %r71, %f150;
+ cvt.u64.u32 %rd63, %r71;
+ mov.u64 %rd69, triangleMarks;
+ cvta.global.u64 %rd62, %rd69;
+ mov.u32 %r38, 1;
+ // inline asm
+ call (%rd61), _rt_buffer_get_64, (%rd62, %r38, %r38, %rd63, %rd11, %rd11, %rd11);
+ // inline asm
+ ld.u8 %r128, [%rd61];
+ sub.f32 %f19, %f16, %f7;
+ sub.f32 %f20, %f17, %f8;
+ sub.f32 %f21, %f18, %f9;
+ mul.f32 %f151, %f20, %f20;
+ fma.rn.f32 %f152, %f19, %f19, %f151;
+ fma.rn.f32 %f153, %f21, %f21, %f152;
+ sqrt.rn.f32 %f22, %f153;
+ setp.leu.f32 %p10, %f22, 0f3727C5AC;
+ setp.eq.s32 %p11, %r128, 255;
+ or.pred %p12, %p11, %p10;
+ @%p12 bra BB0_6;
+
+ rcp.rn.f32 %f162, %f22;
+ mul.f32 %f157, %f19, %f162;
+ mul.f32 %f158, %f20, %f162;
+ mul.f32 %f159, %f21, %f162;
+ add.u64 %rd70, %SP, 12;
+ cvta.to.local.u64 %rd71, %rd70;
+ mov.u32 %r75, 1065353216;
+ st.local.u32 [%rd71], %r75;
+ ld.global.u32 %r72, [root];
+ // inline asm
+ call _rt_trace_64, (%r72, %f13, %f14, %f15, %f157, %f158, %f159, %r38, %f146, %f22, %rd70, %r7);
+ // inline asm
+ ld.local.f32 %f163, [%rd71];
+ setp.neu.f32 %p13, %f163, 0f00000000;
+ @%p13 bra BB0_6;
+
+ // inline asm
+ call (%rd72), _rt_buffer_get_64, (%rd62, %r38, %r38, %rd63, %rd11, %rd11, %rd11);
+ // inline asm
+ mov.u16 %rs9, 255;
+ st.u8 [%rd72], %rs9;
+ mov.u32 %r128, 255;
+
+BB0_6:
+ setp.eq.s32 %p14, %r128, 0;
+ selp.f32 %f367, %f16, %f7, %p14;
+ selp.f32 %f368, %f17, %f8, %p14;
+ selp.f32 %f369, %f18, %f9, %p14;
+ neg.f32 %f173, %f361;
+ setp.gt.f32 %p15, %f11, %f12;
+ selp.f32 %f174, %f173, 0f00000000, %p15;
+ neg.f32 %f175, %f362;
+ selp.f32 %f176, %f360, %f175, %p15;
+ selp.f32 %f177, 0f00000000, %f361, %p15;
+ mul.f32 %f178, %f176, %f176;
+ fma.rn.f32 %f179, %f174, %f174, %f178;
+ fma.rn.f32 %f180, %f177, %f177, %f179;
+ sqrt.rn.f32 %f181, %f180;
+ rcp.rn.f32 %f182, %f181;
+ mul.f32 %f26, %f174, %f182;
+ mul.f32 %f27, %f176, %f182;
+ mul.f32 %f28, %f177, %f182;
+ mul.f32 %f183, %f362, %f27;
+ mul.f32 %f184, %f361, %f28;
+ sub.f32 %f29, %f183, %f184;
+ mul.f32 %f185, %f360, %f28;
+ mul.f32 %f186, %f362, %f26;
+ sub.f32 %f30, %f185, %f186;
+ mul.f32 %f187, %f361, %f26;
+ mul.f32 %f188, %f360, %f27;
+ sub.f32 %f31, %f187, %f188;
+ mov.f32 %f189, 0f3F8147AE;
+ sqrt.rn.f32 %f190, %f189;
+ rcp.rn.f32 %f32, %f190;
+ neg.f32 %f33, %f32;
+ mul.f32 %f34, %f32, 0f00000000;
+ mul.f32 %f191, %f32, 0f3DCCCCCD;
+ mul.f32 %f192, %f13, 0f3456BF95;
+ abs.f32 %f193, %f192;
+ mul.f32 %f194, %f14, 0f3456BF95;
+ abs.f32 %f195, %f194;
+ mul.f32 %f196, %f15, 0f3456BF95;
+ abs.f32 %f197, %f196;
+ max.f32 %f198, %f193, %f195;
+ max.f32 %f199, %f198, %f197;
+ max.f32 %f35, %f199, %f146;
+ mul.f32 %f36, %f26, %f34;
+ mul.f32 %f37, %f27, %f34;
+ mul.f32 %f38, %f28, %f34;
+ fma.rn.f32 %f201, %f29, %f33, %f36;
+ fma.rn.f32 %f202, %f30, %f33, %f37;
+ fma.rn.f32 %f203, %f31, %f33, %f38;
+ mul.f32 %f39, %f360, %f191;
+ mul.f32 %f40, %f361, %f191;
+ mul.f32 %f41, %f362, %f191;
+ add.f32 %f167, %f201, %f39;
+ add.f32 %f168, %f202, %f40;
+ add.f32 %f169, %f203, %f41;
+ add.u64 %rd79, %SP, 16;
+ cvta.to.local.u64 %rd80, %rd79;
+ mov.u32 %r80, 0;
+ st.local.u32 [%rd80+8], %r80;
+ st.local.u32 [%rd80+4], %r80;
+ st.local.u32 [%rd80], %r80;
+ ld.global.u32 %r79, [root];
+ mul.f32 %f171, %f10, 0f3FB504F3;
+ mov.f32 %f170, 0f00000000;
+ mov.u32 %r81, 12;
+ // inline asm
+ call _rt_trace_64, (%r79, %f13, %f14, %f15, %f167, %f168, %f169, %r80, %f170, %f171, %rd79, %r81);
+ // inline asm
+ ld.local.f32 %f46, [%rd80+4];
+ ld.local.f32 %f47, [%rd80];
+ add.f32 %f204, %f47, %f46;
+ ld.local.f32 %f48, [%rd80+8];
+ add.f32 %f205, %f204, %f48;
+ mov.f32 %f370, 0f47C34F80;
+ setp.eq.f32 %p16, %f205, 0f00000000;
+ @%p16 bra BB0_9;
+
+ mul.f32 %f207, %f46, %f46;
+ fma.rn.f32 %f208, %f47, %f47, %f207;
+ fma.rn.f32 %f209, %f48, %f48, %f208;
+ sqrt.rn.f32 %f49, %f209;
+ rcp.rn.f32 %f210, %f49;
+ mul.f32 %f211, %f210, %f47;
+ mul.f32 %f212, %f210, %f46;
+ mul.f32 %f213, %f210, %f48;
+ fma.rn.f32 %f214, %f35, %f211, %f13;
+ fma.rn.f32 %f215, %f35, %f212, %f14;
+ fma.rn.f32 %f216, %f35, %f213, %f15;
+ fma.rn.f32 %f50, %f49, %f167, %f214;
+ fma.rn.f32 %f51, %f49, %f168, %f215;
+ fma.rn.f32 %f52, %f49, %f169, %f216;
+ setp.geu.f32 %p17, %f49, 0f47C34F80;
+ @%p17 bra BB0_9;
+
+ mov.f32 %f367, %f50;
+ mov.f32 %f368, %f51;
+ mov.f32 %f369, %f52;
+ mov.f32 %f370, %f49;
+
+BB0_9:
+ mov.u32 %r111, 12;
+ mov.f32 %f349, 0f00000000;
+ add.u64 %rd113, %SP, 16;
+ cvta.to.local.u64 %rd112, %rd113;
+ mov.u32 %r110, 0;
+ fma.rn.f32 %f225, %f29, %f32, %f36;
+ fma.rn.f32 %f226, %f30, %f32, %f37;
+ fma.rn.f32 %f227, %f31, %f32, %f38;
+ add.f32 %f220, %f225, %f39;
+ add.f32 %f221, %f226, %f40;
+ add.f32 %f222, %f227, %f41;
+ st.local.u32 [%rd112+8], %r110;
+ st.local.u32 [%rd112+4], %r110;
+ st.local.u32 [%rd112], %r110;
+ ld.global.u32 %r82, [root];
+ // inline asm
+ call _rt_trace_64, (%r82, %f13, %f14, %f15, %f220, %f221, %f222, %r110, %f349, %f171, %rd113, %r111);
+ // inline asm
+ ld.local.f32 %f60, [%rd112+4];
+ ld.local.f32 %f61, [%rd112];
+ add.f32 %f228, %f61, %f60;
+ ld.local.f32 %f62, [%rd112+8];
+ add.f32 %f229, %f228, %f62;
+ setp.eq.f32 %p18, %f229, 0f00000000;
+ @%p18 bra BB0_12;
+
+ mul.f32 %f230, %f60, %f60;
+ fma.rn.f32 %f231, %f61, %f61, %f230;
+ fma.rn.f32 %f232, %f62, %f62, %f231;
+ sqrt.rn.f32 %f63, %f232;
+ rcp.rn.f32 %f233, %f63;
+ mul.f32 %f234, %f233, %f61;
+ mul.f32 %f235, %f233, %f60;
+ mul.f32 %f236, %f233, %f62;
+ fma.rn.f32 %f237, %f35, %f234, %f13;
+ fma.rn.f32 %f238, %f35, %f235, %f14;
+ fma.rn.f32 %f239, %f35, %f236, %f15;
+ fma.rn.f32 %f64, %f63, %f220, %f237;
+ fma.rn.f32 %f65, %f63, %f221, %f238;
+ fma.rn.f32 %f66, %f63, %f222, %f239;
+ setp.geu.f32 %p19, %f63, %f370;
+ @%p19 bra BB0_12;
+
+ mov.f32 %f367, %f64;
+ mov.f32 %f368, %f65;
+ mov.f32 %f369, %f66;
+ mov.f32 %f370, %f63;
+
+BB0_12:
+ neg.f32 %f352, %f32;
+ mul.f32 %f351, %f32, 0f00000000;
+ mov.u32 %r113, 12;
+ mov.f32 %f350, 0f00000000;
+ add.u64 %rd116, %SP, 16;
+ cvta.to.local.u64 %rd115, %rd116;
+ mov.u32 %r112, 0;
+ mul.f32 %f71, %f29, %f351;
+ fma.rn.f32 %f248, %f26, %f352, %f71;
+ mul.f32 %f72, %f30, %f351;
+ fma.rn.f32 %f249, %f27, %f352, %f72;
+ mul.f32 %f73, %f31, %f351;
+ fma.rn.f32 %f250, %f28, %f352, %f73;
+ add.f32 %f243, %f248, %f39;
+ add.f32 %f244, %f249, %f40;
+ add.f32 %f245, %f250, %f41;
+ st.local.u32 [%rd115+8], %r112;
+ st.local.u32 [%rd115+4], %r112;
+ st.local.u32 [%rd115], %r112;
+ ld.global.u32 %r85, [root];
+ // inline asm
+ call _rt_trace_64, (%r85, %f13, %f14, %f15, %f243, %f244, %f245, %r112, %f350, %f171, %rd116, %r113);
+ // inline asm
+ ld.local.f32 %f77, [%rd115+4];
+ ld.local.f32 %f78, [%rd115];
+ add.f32 %f251, %f78, %f77;
+ ld.local.f32 %f79, [%rd115+8];
+ add.f32 %f252, %f251, %f79;
+ setp.eq.f32 %p20, %f252, 0f00000000;
+ @%p20 bra BB0_15;
+
+ mul.f32 %f253, %f77, %f77;
+ fma.rn.f32 %f254, %f78, %f78, %f253;
+ fma.rn.f32 %f255, %f79, %f79, %f254;
+ sqrt.rn.f32 %f80, %f255;
+ rcp.rn.f32 %f256, %f80;
+ mul.f32 %f257, %f256, %f78;
+ mul.f32 %f258, %f256, %f77;
+ mul.f32 %f259, %f256, %f79;
+ fma.rn.f32 %f260, %f35, %f257, %f13;
+ fma.rn.f32 %f261, %f35, %f258, %f14;
+ fma.rn.f32 %f262, %f35, %f259, %f15;
+ fma.rn.f32 %f81, %f80, %f243, %f260;
+ fma.rn.f32 %f82, %f80, %f244, %f261;
+ fma.rn.f32 %f83, %f80, %f245, %f262;
+ setp.geu.f32 %p21, %f80, %f370;
+ @%p21 bra BB0_15;
+
+ mov.f32 %f367, %f81;
+ mov.f32 %f368, %f82;
+ mov.f32 %f369, %f83;
+ mov.f32 %f370, %f80;
+
+BB0_15:
+ mov.u32 %r115, 12;
+ mov.f32 %f353, 0f00000000;
+ add.u64 %rd119, %SP, 16;
+ cvta.to.local.u64 %rd118, %rd119;
+ mov.u32 %r114, 0;
+ fma.rn.f32 %f271, %f26, %f32, %f71;
+ fma.rn.f32 %f272, %f27, %f32, %f72;
+ fma.rn.f32 %f273, %f28, %f32, %f73;
+ add.f32 %f266, %f271, %f39;
+ add.f32 %f267, %f272, %f40;
+ add.f32 %f268, %f273, %f41;
+ st.local.u32 [%rd118+8], %r114;
+ st.local.u32 [%rd118+4], %r114;
+ st.local.u32 [%rd118], %r114;
+ ld.global.u32 %r88, [root];
+ // inline asm
+ call _rt_trace_64, (%r88, %f13, %f14, %f15, %f266, %f267, %f268, %r114, %f353, %f171, %rd119, %r115);
+ // inline asm
+ ld.local.f32 %f91, [%rd118+4];
+ ld.local.f32 %f92, [%rd118];
+ add.f32 %f274, %f92, %f91;
+ ld.local.f32 %f93, [%rd118+8];
+ add.f32 %f275, %f274, %f93;
+ setp.eq.f32 %p22, %f275, 0f00000000;
+ @%p22 bra BB0_18;
+
+ mul.f32 %f276, %f91, %f91;
+ fma.rn.f32 %f277, %f92, %f92, %f276;
+ fma.rn.f32 %f278, %f93, %f93, %f277;
+ sqrt.rn.f32 %f279, %f278;
+ rcp.rn.f32 %f280, %f279;
+ mul.f32 %f281, %f280, %f92;
+ mul.f32 %f282, %f280, %f91;
+ mul.f32 %f283, %f280, %f93;
+ fma.rn.f32 %f284, %f35, %f281, %f13;
+ fma.rn.f32 %f285, %f35, %f282, %f14;
+ fma.rn.f32 %f286, %f35, %f283, %f15;
+ fma.rn.f32 %f94, %f279, %f266, %f284;
+ fma.rn.f32 %f95, %f279, %f267, %f285;
+ fma.rn.f32 %f96, %f279, %f268, %f286;
+ setp.geu.f32 %p23, %f279, %f370;
+ @%p23 bra BB0_18;
+
+ mov.f32 %f367, %f94;
+ mov.f32 %f368, %f95;
+ mov.f32 %f369, %f96;
+
+BB0_18:
+ abs.f32 %f287, %f367;
+ setp.gtu.f32 %p24, %f287, 0f7F800000;
+ selp.f32 %f378, 0f00000000, %f367, %p24;
+ abs.f32 %f288, %f368;
+ setp.gtu.f32 %p25, %f288, 0f7F800000;
+ selp.f32 %f379, 0f00000000, %f368, %p25;
+ abs.f32 %f289, %f369;
+ setp.gtu.f32 %p26, %f289, 0f7F800000;
+ selp.f32 %f380, 0f00000000, %f369, %p26;
+ ld.global.f32 %f103, [fakeBias];
+ setp.eq.f32 %p27, %f103, 0f00000000;
+ @%p27 bra BB0_20;
+
+ fma.rn.f32 %f378, %f360, %f103, %f378;
+ fma.rn.f32 %f379, %f361, %f103, %f379;
+ fma.rn.f32 %f380, %f362, %f103, %f380;
+
+BB0_20:
+ mov.u32 %r117, 16;
+ mov.u64 %rd121, 0;
+ mov.u32 %r116, 2;
+ cvt.u64.u32 %rd90, %r3;
+ cvt.u64.u32 %rd89, %r2;
+ mov.u64 %rd93, image_HDR;
+ cvta.global.u64 %rd88, %rd93;
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd88, %r116, %r117, %rd89, %rd90, %rd121, %rd121);
+ // inline asm
+ mov.f32 %f290, 0f3F800000;
+ st.v4.f32 [%rd87], {%f378, %f379, %f380, %f290};
+ ld.global.u8 %rs10, [imageEnabled];
+ and.b16 %rs11, %rs10, 32;
+ setp.eq.s16 %p28, %rs11, 0;
+ @%p28 bra BB0_28;
+
+ add.f32 %f355, %f135, 0f38D1B717;
+ mov.u32 %r119, 12;
+ mov.u32 %r118, 0;
+ mov.f32 %f354, 0f38D1B717;
+ mul.f32 %f298, %f355, 0f41000000;
+ add.u64 %rd94, %SP, 0;
+ cvta.to.local.u64 %rd5, %rd94;
+ st.local.u32 [%rd5+8], %r118;
+ st.local.u32 [%rd5+4], %r118;
+ st.local.u32 [%rd5], %r118;
+ ld.global.u32 %r93, [root];
+ // inline asm
+ call _rt_trace_64, (%r93, %f13, %f14, %f15, %f167, %f168, %f169, %r118, %f354, %f298, %rd94, %r119);
+ // inline asm
+ ld.local.f32 %f300, [%rd5+4];
+ ld.local.f32 %f301, [%rd5];
+ add.f32 %f302, %f301, %f300;
+ ld.local.f32 %f303, [%rd5+8];
+ add.f32 %f304, %f302, %f303;
+ setp.neu.f32 %p29, %f304, 0f00000000;
+ mov.f32 %f381, 0f437F0000;
+ @%p29 bra BB0_26;
+
+ mov.u32 %r121, 12;
+ mov.u32 %r120, 0;
+ mov.f32 %f356, 0f38D1B717;
+ st.local.u32 [%rd5+8], %r120;
+ st.local.u32 [%rd5+4], %r120;
+ st.local.u32 [%rd5], %r120;
+ ld.global.u32 %r96, [root];
+ // inline asm
+ call _rt_trace_64, (%r96, %f13, %f14, %f15, %f220, %f221, %f222, %r120, %f356, %f298, %rd94, %r121);
+ // inline asm
+ ld.local.f32 %f314, [%rd5+4];
+ ld.local.f32 %f315, [%rd5];
+ add.f32 %f316, %f315, %f314;
+ ld.local.f32 %f317, [%rd5+8];
+ add.f32 %f318, %f316, %f317;
+ setp.neu.f32 %p30, %f318, 0f00000000;
+ @%p30 bra BB0_26;
+
+ mov.u32 %r123, 12;
+ mov.u32 %r122, 0;
+ mov.f32 %f357, 0f38D1B717;
+ st.local.u32 [%rd5+8], %r122;
+ st.local.u32 [%rd5+4], %r122;
+ st.local.u32 [%rd5], %r122;
+ ld.global.u32 %r99, [root];
+ // inline asm
+ call _rt_trace_64, (%r99, %f13, %f14, %f15, %f243, %f244, %f245, %r122, %f357, %f298, %rd94, %r123);
+ // inline asm
+ ld.local.f32 %f328, [%rd5+4];
+ ld.local.f32 %f329, [%rd5];
+ add.f32 %f330, %f329, %f328;
+ ld.local.f32 %f331, [%rd5+8];
+ add.f32 %f332, %f330, %f331;
+ setp.neu.f32 %p31, %f332, 0f00000000;
+ @%p31 bra BB0_26;
+
+ mov.u32 %r125, 12;
+ mov.u32 %r124, 0;
+ mov.f32 %f358, 0f38D1B717;
+ st.local.u32 [%rd5+8], %r124;
+ st.local.u32 [%rd5+4], %r124;
+ st.local.u32 [%rd5], %r124;
+ ld.global.u32 %r102, [root];
+ // inline asm
+ call _rt_trace_64, (%r102, %f13, %f14, %f15, %f266, %f267, %f268, %r124, %f358, %f298, %rd94, %r125);
+ // inline asm
+ ld.local.f32 %f342, [%rd5+4];
+ ld.local.f32 %f343, [%rd5];
+ add.f32 %f344, %f343, %f342;
+ ld.local.f32 %f345, [%rd5+8];
+ add.f32 %f346, %f344, %f345;
+ setp.neu.f32 %p32, %f346, 0f00000000;
+ @%p32 bra BB0_26;
+
+ mov.f32 %f381, 0f00000000;
+
+BB0_26:
+ mov.u32 %r127, 1;
+ mov.u64 %rd122, 0;
+ mov.u32 %r126, 2;
+ mov.u64 %rd104, image_Mask;
+ cvta.global.u64 %rd99, %rd104;
+ // inline asm
+ call (%rd98), _rt_buffer_get_64, (%rd99, %r126, %r127, %rd89, %rd90, %rd122, %rd122);
+ // inline asm
+ cvt.rzi.u32.f32 %r107, %f381;
+ st.u8 [%rd98], %r107;
+
+BB0_28:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos12.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos12.ptx.meta
new file mode 100644
index 00000000..946bf086
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos12.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8ac7ed1b9a8960c4980b929d79748557
+timeCreated: 1526320804
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos2.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos2.ptx
new file mode 100644
index 00000000..f9e6b4b8
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos2.ptx
@@ -0,0 +1,382 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 uvfacenormal[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvsmoothpos[1];
+.global .align 1 .b8 triangleMarks[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<14>;
+ .reg .b16 %rs<10>;
+ .reg .f32 %f<160>;
+ .reg .b32 %r<86>;
+ .reg .b64 %rd<89>;
+
+
+ mov.u64 %rd88, __local_depot0;
+ cvta.local.u64 %SP, %rd88;
+ ld.global.v2.u32 {%r6, %r7}, [pixelID];
+ cvt.u64.u32 %rd4, %r6;
+ cvt.u64.u32 %rd5, %r7;
+ mov.u64 %rd8, uvfacenormal;
+ cvta.global.u64 %rd3, %rd8;
+ mov.u32 %r4, 2;
+ mov.u32 %r5, 4;
+ mov.u64 %rd7, 0;
+ // inline asm
+ call (%rd2), _rt_buffer_get_64, (%rd3, %r4, %r5, %rd4, %rd5, %rd7, %rd7);
+ // inline asm
+ ld.u32 %r1, [%rd2];
+ shr.u32 %r10, %r1, 16;
+ cvt.u16.u32 %rs1, %r10;
+ and.b16 %rs3, %rs1, 255;
+ cvt.u16.u32 %rs4, %r1;
+ or.b16 %rs5, %rs4, %rs3;
+ setp.eq.s16 %p1, %rs5, 0;
+ mov.f32 %f150, 0f00000000;
+ mov.f32 %f151, %f150;
+ mov.f32 %f152, %f150;
+ @%p1 bra BB0_2;
+
+ ld.u8 %rs6, [%rd2+1];
+ and.b16 %rs8, %rs4, 255;
+ cvt.rn.f32.u16 %f61, %rs8;
+ div.rn.f32 %f62, %f61, 0f437F0000;
+ fma.rn.f32 %f63, %f62, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f64, %rs6;
+ div.rn.f32 %f65, %f64, 0f437F0000;
+ fma.rn.f32 %f66, %f65, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f67, %rs3;
+ div.rn.f32 %f68, %f67, 0f437F0000;
+ fma.rn.f32 %f69, %f68, 0f40000000, 0fBF800000;
+ mul.f32 %f70, %f66, %f66;
+ fma.rn.f32 %f71, %f63, %f63, %f70;
+ fma.rn.f32 %f72, %f69, %f69, %f71;
+ sqrt.rn.f32 %f73, %f72;
+ rcp.rn.f32 %f74, %f73;
+ mul.f32 %f150, %f63, %f74;
+ mul.f32 %f151, %f66, %f74;
+ mul.f32 %f152, %f69, %f74;
+
+BB0_2:
+ ld.global.v2.u32 {%r11, %r12}, [pixelID];
+ ld.global.v2.u32 {%r14, %r15}, [tileInfo];
+ add.s32 %r2, %r11, %r14;
+ add.s32 %r3, %r12, %r15;
+ setp.eq.f32 %p2, %f151, 0f00000000;
+ setp.eq.f32 %p3, %f150, 0f00000000;
+ and.pred %p4, %p3, %p2;
+ setp.eq.f32 %p5, %f152, 0f00000000;
+ and.pred %p6, %p4, %p5;
+ @%p6 bra BB0_9;
+ bra.uni BB0_3;
+
+BB0_9:
+ cvt.u64.u32 %rd83, %r2;
+ cvt.u64.u32 %rd84, %r3;
+ mov.u64 %rd87, image_HDR;
+ cvta.global.u64 %rd82, %rd87;
+ mov.u32 %r85, 16;
+ // inline asm
+ call (%rd81), _rt_buffer_get_64, (%rd82, %r4, %r85, %rd83, %rd84, %rd7, %rd7);
+ // inline asm
+ mov.f32 %f149, 0f00000000;
+ st.v4.f32 [%rd81], {%f149, %f149, %f149, %f149};
+ bra.uni BB0_10;
+
+BB0_3:
+ ld.global.v2.u32 {%r40, %r41}, [pixelID];
+ cvt.u64.u32 %rd11, %r40;
+ cvt.u64.u32 %rd12, %r41;
+ mov.u64 %rd64, uvpos;
+ cvta.global.u64 %rd10, %rd64;
+ mov.u32 %r34, 16;
+ // inline asm
+ call (%rd9), _rt_buffer_get_64, (%rd10, %r4, %r34, %rd11, %rd12, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f83, [%rd9];
+ ld.global.v2.u32 {%r44, %r45}, [pixelID];
+ cvt.u64.u32 %rd17, %r44;
+ cvt.u64.u32 %rd18, %r45;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd10, %r4, %r34, %rd17, %rd18, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f84, [%rd15+4];
+ ld.global.v2.u32 {%r48, %r49}, [pixelID];
+ cvt.u64.u32 %rd23, %r48;
+ cvt.u64.u32 %rd24, %r49;
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd10, %r4, %r34, %rd23, %rd24, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f85, [%rd21+8];
+ ld.global.v2.u32 {%r52, %r53}, [pixelID];
+ cvt.u64.u32 %rd29, %r52;
+ cvt.u64.u32 %rd30, %r53;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd10, %r4, %r34, %rd29, %rd30, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f86, [%rd27+12];
+ add.f32 %f82, %f86, 0f38D1B717;
+ ld.global.v2.u32 {%r56, %r57}, [pixelID];
+ cvt.u64.u32 %rd35, %r56;
+ cvt.u64.u32 %rd36, %r57;
+ mov.u64 %rd65, uvsmoothpos;
+ cvta.global.u64 %rd34, %rd65;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r4, %r34, %rd35, %rd36, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f87, [%rd33];
+ ld.global.v2.u32 {%r60, %r61}, [pixelID];
+ cvt.u64.u32 %rd41, %r60;
+ cvt.u64.u32 %rd42, %r61;
+ // inline asm
+ call (%rd39), _rt_buffer_get_64, (%rd34, %r4, %r34, %rd41, %rd42, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f88, [%rd39+4];
+ ld.global.v2.u32 {%r64, %r65}, [pixelID];
+ cvt.u64.u32 %rd47, %r64;
+ cvt.u64.u32 %rd48, %r65;
+ // inline asm
+ call (%rd45), _rt_buffer_get_64, (%rd34, %r4, %r34, %rd47, %rd48, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f89, [%rd45+8];
+ ld.global.v2.u32 {%r68, %r69}, [pixelID];
+ cvt.u64.u32 %rd53, %r68;
+ cvt.u64.u32 %rd54, %r69;
+ // inline asm
+ call (%rd51), _rt_buffer_get_64, (%rd34, %r4, %r34, %rd53, %rd54, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f90, [%rd51+12];
+ cvt.rzi.u32.f32 %r72, %f90;
+ cvt.u64.u32 %rd59, %r72;
+ mov.u64 %rd66, triangleMarks;
+ cvta.global.u64 %rd58, %rd66;
+ mov.u32 %r36, 1;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd58, %r36, %r36, %rd59, %rd7, %rd7, %rd7);
+ // inline asm
+ ld.u8 %rs2, [%rd57];
+ setp.eq.s16 %p7, %rs2, 0;
+ selp.f32 %f157, %f87, %f83, %p7;
+ selp.f32 %f158, %f88, %f84, %p7;
+ selp.f32 %f159, %f89, %f85, %p7;
+ fma.rn.f32 %f11, %f150, 0f38D1B717, %f157;
+ fma.rn.f32 %f12, %f151, 0f38D1B717, %f158;
+ fma.rn.f32 %f13, %f152, 0f38D1B717, %f159;
+ abs.f32 %f91, %f152;
+ abs.f32 %f92, %f150;
+ setp.gt.f32 %p8, %f92, %f91;
+ neg.f32 %f93, %f151;
+ selp.f32 %f94, %f93, 0f00000000, %p8;
+ neg.f32 %f95, %f152;
+ selp.f32 %f96, %f150, %f95, %p8;
+ selp.f32 %f97, 0f00000000, %f151, %p8;
+ mul.f32 %f98, %f96, %f96;
+ fma.rn.f32 %f99, %f94, %f94, %f98;
+ fma.rn.f32 %f100, %f97, %f97, %f99;
+ sqrt.rn.f32 %f101, %f100;
+ rcp.rn.f32 %f102, %f101;
+ mul.f32 %f14, %f94, %f102;
+ mul.f32 %f15, %f96, %f102;
+ mul.f32 %f16, %f97, %f102;
+ mul.f32 %f103, %f152, %f15;
+ mul.f32 %f104, %f151, %f16;
+ sub.f32 %f17, %f103, %f104;
+ mul.f32 %f105, %f150, %f16;
+ mul.f32 %f106, %f152, %f14;
+ sub.f32 %f18, %f105, %f106;
+ mul.f32 %f107, %f151, %f14;
+ mul.f32 %f108, %f150, %f15;
+ sub.f32 %f19, %f107, %f108;
+ mov.f32 %f109, 0f3F8147AE;
+ sqrt.rn.f32 %f110, %f109;
+ rcp.rn.f32 %f20, %f110;
+ neg.f32 %f21, %f20;
+ mul.f32 %f22, %f20, 0f00000000;
+ mul.f32 %f111, %f20, 0f3DCCCCCD;
+ mul.f32 %f23, %f14, %f22;
+ mul.f32 %f24, %f15, %f22;
+ mul.f32 %f25, %f16, %f22;
+ fma.rn.f32 %f112, %f17, %f21, %f23;
+ fma.rn.f32 %f113, %f18, %f21, %f24;
+ fma.rn.f32 %f114, %f19, %f21, %f25;
+ mul.f32 %f26, %f150, %f111;
+ mul.f32 %f27, %f151, %f111;
+ mul.f32 %f28, %f152, %f111;
+ add.f32 %f156, %f112, %f26;
+ add.f32 %f155, %f113, %f27;
+ add.f32 %f154, %f114, %f28;
+ add.u64 %rd63, %SP, 0;
+ cvta.to.local.u64 %rd67, %rd63;
+ mov.u32 %r38, 0;
+ st.local.u32 [%rd67], %r38;
+ ld.global.u32 %r37, [root];
+ mov.f32 %f81, 0f38D1B717;
+ // inline asm
+ call _rt_trace_64, (%r37, %f11, %f12, %f13, %f156, %f155, %f154, %r38, %f81, %f82, %rd63, %r5);
+ // inline asm
+ ld.local.f32 %f153, [%rd67];
+ setp.gt.f32 %p9, %f153, 0f00000000;
+ @%p9 bra BB0_7;
+
+ fma.rn.f32 %f123, %f17, %f20, %f23;
+ fma.rn.f32 %f124, %f18, %f20, %f24;
+ fma.rn.f32 %f125, %f19, %f20, %f25;
+ add.f32 %f156, %f123, %f26;
+ add.f32 %f155, %f124, %f27;
+ add.f32 %f154, %f125, %f28;
+ st.local.u32 [%rd67], %r38;
+ ld.global.u32 %r73, [root];
+ // inline asm
+ call _rt_trace_64, (%r73, %f11, %f12, %f13, %f156, %f155, %f154, %r38, %f81, %f82, %rd63, %r5);
+ // inline asm
+ ld.local.f32 %f153, [%rd67];
+ setp.gt.f32 %p10, %f153, 0f00000000;
+ @%p10 bra BB0_7;
+
+ mul.f32 %f37, %f17, %f22;
+ fma.rn.f32 %f134, %f14, %f21, %f37;
+ mul.f32 %f38, %f18, %f22;
+ fma.rn.f32 %f135, %f15, %f21, %f38;
+ mul.f32 %f39, %f19, %f22;
+ fma.rn.f32 %f136, %f16, %f21, %f39;
+ add.f32 %f156, %f134, %f26;
+ add.f32 %f155, %f135, %f27;
+ add.f32 %f154, %f136, %f28;
+ st.local.u32 [%rd67], %r38;
+ ld.global.u32 %r76, [root];
+ // inline asm
+ call _rt_trace_64, (%r76, %f11, %f12, %f13, %f156, %f155, %f154, %r38, %f81, %f82, %rd63, %r5);
+ // inline asm
+ ld.local.f32 %f153, [%rd67];
+ setp.gt.f32 %p11, %f153, 0f00000000;
+ @%p11 bra BB0_7;
+
+ fma.rn.f32 %f145, %f14, %f20, %f37;
+ fma.rn.f32 %f146, %f15, %f20, %f38;
+ fma.rn.f32 %f147, %f16, %f20, %f39;
+ add.f32 %f156, %f145, %f26;
+ add.f32 %f155, %f146, %f27;
+ add.f32 %f154, %f147, %f28;
+ st.local.u32 [%rd67], %r38;
+ ld.global.u32 %r79, [root];
+ // inline asm
+ call _rt_trace_64, (%r79, %f11, %f12, %f13, %f156, %f155, %f154, %r38, %f81, %f82, %rd63, %r5);
+ // inline asm
+ ld.local.f32 %f153, [%rd67];
+ setp.leu.f32 %p12, %f153, 0f00000000;
+ @%p12 bra BB0_8;
+
+BB0_7:
+ fma.rn.f32 %f157, %f153, %f156, %f11;
+ fma.rn.f32 %f158, %f153, %f155, %f12;
+ fma.rn.f32 %f159, %f153, %f154, %f13;
+
+BB0_8:
+ cvt.u64.u32 %rd77, %r3;
+ cvt.u64.u32 %rd76, %r2;
+ mov.u64 %rd80, image_HDR;
+ cvta.global.u64 %rd75, %rd80;
+ // inline asm
+ call (%rd74), _rt_buffer_get_64, (%rd75, %r4, %r34, %rd76, %rd77, %rd7, %rd7);
+ // inline asm
+ selp.f32 %f148, 0f3F000000, 0f3F800000, %p7;
+ st.v4.f32 [%rd74], {%f157, %f158, %f159, %f148};
+
+BB0_10:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos2.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos2.ptx.meta
new file mode 100644
index 00000000..77ded8b3
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos2.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 81c36c1f006bd8848b64a84a623af92d
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos3D.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos3D.ptx
new file mode 100644
index 00000000..b4ec12de
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos3D.ptx
@@ -0,0 +1,513 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 4 .b8 voxelSize[12];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9voxelSizeE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9voxelSizeE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9voxelSizeE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9voxelSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9voxelSizeE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[12];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<28>;
+ .reg .b16 %rs<9>;
+ .reg .f32 %f<277>;
+ .reg .b32 %r<59>;
+ .reg .b64 %rd<55>;
+
+
+ mov.u64 %rd54, __local_depot0;
+ cvta.local.u64 %SP, %rd54;
+ ld.global.v2.u32 {%r6, %r7}, [pixelID];
+ cvt.u64.u32 %rd4, %r6;
+ cvt.u64.u32 %rd5, %r7;
+ mov.u64 %rd8, uvnormal;
+ cvta.global.u64 %rd3, %rd8;
+ mov.u32 %r4, 2;
+ mov.u32 %r5, 4;
+ mov.u64 %rd7, 0;
+ // inline asm
+ call (%rd2), _rt_buffer_get_64, (%rd3, %r4, %r5, %rd4, %rd5, %rd7, %rd7);
+ // inline asm
+ ld.u32 %r1, [%rd2];
+ shr.u32 %r10, %r1, 16;
+ cvt.u16.u32 %rs1, %r10;
+ and.b16 %rs2, %rs1, 255;
+ cvt.u16.u32 %rs3, %r1;
+ or.b16 %rs4, %rs3, %rs2;
+ setp.eq.s16 %p10, %rs4, 0;
+ mov.pred %p25, -1;
+ mov.pred %p26, %p25;
+ mov.pred %p27, %p25;
+ @%p10 bra BB0_2;
+
+ ld.u8 %rs5, [%rd2+1];
+ and.b16 %rs7, %rs3, 255;
+ cvt.rn.f32.u16 %f71, %rs7;
+ div.rn.f32 %f72, %f71, 0f437F0000;
+ fma.rn.f32 %f73, %f72, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f74, %rs5;
+ div.rn.f32 %f75, %f74, 0f437F0000;
+ fma.rn.f32 %f76, %f75, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f77, %rs2;
+ div.rn.f32 %f78, %f77, 0f437F0000;
+ fma.rn.f32 %f79, %f78, 0f40000000, 0fBF800000;
+ mul.f32 %f80, %f76, %f76;
+ fma.rn.f32 %f81, %f73, %f73, %f80;
+ fma.rn.f32 %f82, %f79, %f79, %f81;
+ sqrt.rn.f32 %f83, %f82;
+ rcp.rn.f32 %f84, %f83;
+ mul.f32 %f85, %f73, %f84;
+ mul.f32 %f86, %f76, %f84;
+ mul.f32 %f87, %f79, %f84;
+ setp.eq.f32 %p25, %f85, 0f00000000;
+ setp.eq.f32 %p26, %f86, 0f00000000;
+ setp.eq.f32 %p27, %f87, 0f00000000;
+
+BB0_2:
+ ld.global.v2.u32 {%r11, %r12}, [pixelID];
+ ld.global.v2.u32 {%r14, %r15}, [tileInfo];
+ add.s32 %r2, %r11, %r14;
+ add.s32 %r3, %r12, %r15;
+ and.pred %p11, %p25, %p26;
+ and.pred %p12, %p11, %p27;
+ @%p12 bra BB0_23;
+ bra.uni BB0_3;
+
+BB0_23:
+ cvt.u64.u32 %rd49, %r2;
+ cvt.u64.u32 %rd50, %r3;
+ mov.u64 %rd53, image_HDR;
+ cvta.global.u64 %rd48, %rd53;
+ mov.u32 %r58, 16;
+ // inline asm
+ call (%rd47), _rt_buffer_get_64, (%rd48, %r4, %r58, %rd49, %rd50, %rd7, %rd7);
+ // inline asm
+ mov.f32 %f253, 0f00000000;
+ st.v4.f32 [%rd47], {%f253, %f253, %f253, %f253};
+ bra.uni BB0_24;
+
+BB0_3:
+ ld.global.v2.u32 {%r28, %r29}, [pixelID];
+ cvt.u64.u32 %rd11, %r28;
+ cvt.u64.u32 %rd12, %r29;
+ mov.u64 %rd28, uvpos;
+ cvta.global.u64 %rd10, %rd28;
+ mov.u32 %r27, 12;
+ // inline asm
+ call (%rd9), _rt_buffer_get_64, (%rd10, %r4, %r27, %rd11, %rd12, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f1, [%rd9];
+ ld.global.v2.u32 {%r32, %r33}, [pixelID];
+ cvt.u64.u32 %rd17, %r32;
+ cvt.u64.u32 %rd18, %r33;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd10, %r4, %r27, %rd17, %rd18, %rd7, %rd7);
+ // inline asm
+ ld.f32 %f2, [%rd15+4];
+ ld.global.v2.u32 {%r36, %r37}, [pixelID];
+ cvt.u64.u32 %rd23, %r36;
+ cvt.u64.u32 %rd24, %r37;
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd10, %r4, %r27, %rd23, %rd24, %rd7, %rd7);
+ // inline asm
+ mul.f32 %f97, %f1, 0f3456BF95;
+ mul.f32 %f98, %f2, 0f3456BF95;
+ ld.f32 %f3, [%rd21+8];
+ mul.f32 %f99, %f3, 0f3456BF95;
+ abs.f32 %f100, %f97;
+ abs.f32 %f101, %f98;
+ abs.f32 %f102, %f99;
+ max.f32 %f103, %f100, %f101;
+ max.f32 %f104, %f103, %f102;
+ mov.f32 %f105, 0f38D1B717;
+ max.f32 %f4, %f104, %f105;
+ ld.global.f32 %f106, [voxelSize];
+ ld.global.f32 %f107, [voxelSize+4];
+ mul.f32 %f108, %f107, 0f00000000;
+ sub.f32 %f109, %f108, %f106;
+ ld.global.f32 %f110, [voxelSize+8];
+ fma.rn.f32 %f111, %f110, 0f00000000, %f109;
+ abs.f32 %f95, %f111;
+ add.u64 %rd27, %SP, 0;
+ cvta.to.local.u64 %rd29, %rd27;
+ mov.u32 %r26, 0;
+ st.local.u32 [%rd29+8], %r26;
+ st.local.u32 [%rd29+4], %r26;
+ st.local.u32 [%rd29], %r26;
+ ld.global.u32 %r25, [root];
+ mov.f32 %f91, 0fBF800000;
+ mov.f32 %f94, 0f00000000;
+ // inline asm
+ call _rt_trace_64, (%r25, %f1, %f2, %f3, %f91, %f94, %f94, %r26, %f94, %f95, %rd27, %r27);
+ // inline asm
+ ld.local.f32 %f5, [%rd29+4];
+ ld.local.f32 %f6, [%rd29];
+ add.f32 %f112, %f6, %f5;
+ ld.local.f32 %f7, [%rd29+8];
+ add.f32 %f113, %f112, %f7;
+ mov.f32 %f261, 0f47C34F80;
+ setp.eq.f32 %p13, %f113, 0f00000000;
+ @%p13 bra BB0_4;
+
+ mul.f32 %f115, %f5, %f5;
+ fma.rn.f32 %f116, %f6, %f6, %f115;
+ fma.rn.f32 %f117, %f7, %f7, %f116;
+ sqrt.rn.f32 %f8, %f117;
+ rcp.rn.f32 %f118, %f8;
+ mul.f32 %f119, %f118, %f6;
+ mul.f32 %f120, %f118, %f5;
+ mul.f32 %f121, %f118, %f7;
+ fma.rn.f32 %f122, %f4, %f119, %f1;
+ fma.rn.f32 %f123, %f4, %f120, %f2;
+ fma.rn.f32 %f124, %f4, %f121, %f3;
+ sub.f32 %f9, %f122, %f8;
+ fma.rn.f32 %f10, %f8, 0f00000000, %f123;
+ fma.rn.f32 %f11, %f8, 0f00000000, %f124;
+ setp.geu.f32 %p14, %f8, 0f47C34F80;
+ mov.f32 %f258, %f1;
+ mov.f32 %f259, %f2;
+ mov.f32 %f260, %f3;
+ @%p14 bra BB0_7;
+
+ mov.f32 %f258, %f9;
+ mov.f32 %f259, %f10;
+ mov.f32 %f260, %f11;
+ mov.f32 %f261, %f8;
+ bra.uni BB0_7;
+
+BB0_4:
+ mov.f32 %f258, %f1;
+ mov.f32 %f259, %f2;
+ mov.f32 %f260, %f3;
+
+BB0_7:
+ ld.global.f32 %f133, [voxelSize+4];
+ ld.global.f32 %f134, [voxelSize];
+ fma.rn.f32 %f135, %f133, 0f00000000, %f134;
+ ld.global.f32 %f136, [voxelSize+8];
+ fma.rn.f32 %f137, %f136, 0f00000000, %f135;
+ abs.f32 %f132, %f137;
+ st.local.u32 [%rd29+8], %r26;
+ st.local.u32 [%rd29+4], %r26;
+ st.local.u32 [%rd29], %r26;
+ ld.global.u32 %r40, [root];
+ mov.f32 %f128, 0f3F800000;
+ // inline asm
+ call _rt_trace_64, (%r40, %f1, %f2, %f3, %f128, %f94, %f94, %r26, %f94, %f132, %rd27, %r27);
+ // inline asm
+ ld.local.f32 %f16, [%rd29+4];
+ ld.local.f32 %f17, [%rd29];
+ add.f32 %f138, %f17, %f16;
+ ld.local.f32 %f18, [%rd29+8];
+ add.f32 %f139, %f138, %f18;
+ setp.eq.f32 %p15, %f139, 0f00000000;
+ @%p15 bra BB0_10;
+
+ mul.f32 %f140, %f16, %f16;
+ fma.rn.f32 %f141, %f17, %f17, %f140;
+ fma.rn.f32 %f142, %f18, %f18, %f141;
+ sqrt.rn.f32 %f19, %f142;
+ rcp.rn.f32 %f143, %f19;
+ mul.f32 %f144, %f143, %f17;
+ mul.f32 %f145, %f143, %f16;
+ mul.f32 %f146, %f143, %f18;
+ fma.rn.f32 %f20, %f4, %f144, %f1;
+ fma.rn.f32 %f147, %f4, %f145, %f2;
+ fma.rn.f32 %f148, %f4, %f146, %f3;
+ fma.rn.f32 %f21, %f19, 0f00000000, %f147;
+ fma.rn.f32 %f22, %f19, 0f00000000, %f148;
+ setp.geu.f32 %p16, %f19, %f261;
+ @%p16 bra BB0_10;
+
+ add.f32 %f258, %f20, %f19;
+ mov.f32 %f259, %f21;
+ mov.f32 %f260, %f22;
+ mov.f32 %f261, %f19;
+
+BB0_10:
+ ld.global.f32 %f157, [voxelSize];
+ ld.global.f32 %f158, [voxelSize+4];
+ neg.f32 %f159, %f158;
+ fma.rn.f32 %f160, %f157, 0f00000000, %f159;
+ ld.global.f32 %f161, [voxelSize+8];
+ fma.rn.f32 %f162, %f161, 0f00000000, %f160;
+ abs.f32 %f156, %f162;
+ st.local.u32 [%rd29+8], %r26;
+ st.local.u32 [%rd29+4], %r26;
+ st.local.u32 [%rd29], %r26;
+ ld.global.u32 %r43, [root];
+ // inline asm
+ call _rt_trace_64, (%r43, %f1, %f2, %f3, %f94, %f91, %f94, %r26, %f94, %f156, %rd27, %r27);
+ // inline asm
+ ld.local.f32 %f28, [%rd29+4];
+ ld.local.f32 %f29, [%rd29];
+ add.f32 %f163, %f29, %f28;
+ ld.local.f32 %f30, [%rd29+8];
+ add.f32 %f164, %f163, %f30;
+ setp.eq.f32 %p17, %f164, 0f00000000;
+ @%p17 bra BB0_13;
+
+ mul.f32 %f165, %f28, %f28;
+ fma.rn.f32 %f166, %f29, %f29, %f165;
+ fma.rn.f32 %f167, %f30, %f30, %f166;
+ sqrt.rn.f32 %f31, %f167;
+ rcp.rn.f32 %f168, %f31;
+ mul.f32 %f169, %f168, %f29;
+ mul.f32 %f170, %f168, %f28;
+ mul.f32 %f171, %f168, %f30;
+ fma.rn.f32 %f172, %f4, %f169, %f1;
+ fma.rn.f32 %f173, %f4, %f170, %f2;
+ fma.rn.f32 %f174, %f4, %f171, %f3;
+ fma.rn.f32 %f32, %f31, 0f00000000, %f172;
+ sub.f32 %f33, %f173, %f31;
+ fma.rn.f32 %f34, %f31, 0f00000000, %f174;
+ setp.geu.f32 %p18, %f31, %f261;
+ @%p18 bra BB0_13;
+
+ mov.f32 %f258, %f32;
+ mov.f32 %f259, %f33;
+ mov.f32 %f260, %f34;
+ mov.f32 %f261, %f31;
+
+BB0_13:
+ ld.global.f32 %f183, [voxelSize];
+ ld.global.f32 %f184, [voxelSize+4];
+ fma.rn.f32 %f185, %f183, 0f00000000, %f184;
+ ld.global.f32 %f186, [voxelSize+8];
+ fma.rn.f32 %f187, %f186, 0f00000000, %f185;
+ abs.f32 %f182, %f187;
+ st.local.u32 [%rd29+8], %r26;
+ st.local.u32 [%rd29+4], %r26;
+ st.local.u32 [%rd29], %r26;
+ ld.global.u32 %r46, [root];
+ // inline asm
+ call _rt_trace_64, (%r46, %f1, %f2, %f3, %f94, %f128, %f94, %r26, %f94, %f182, %rd27, %r27);
+ // inline asm
+ ld.local.f32 %f39, [%rd29+4];
+ ld.local.f32 %f40, [%rd29];
+ add.f32 %f188, %f40, %f39;
+ ld.local.f32 %f41, [%rd29+8];
+ add.f32 %f189, %f188, %f41;
+ setp.eq.f32 %p19, %f189, 0f00000000;
+ @%p19 bra BB0_16;
+
+ mul.f32 %f190, %f39, %f39;
+ fma.rn.f32 %f191, %f40, %f40, %f190;
+ fma.rn.f32 %f192, %f41, %f41, %f191;
+ sqrt.rn.f32 %f42, %f192;
+ rcp.rn.f32 %f193, %f42;
+ mul.f32 %f194, %f193, %f40;
+ mul.f32 %f195, %f193, %f39;
+ mul.f32 %f196, %f193, %f41;
+ fma.rn.f32 %f197, %f4, %f194, %f1;
+ fma.rn.f32 %f43, %f4, %f195, %f2;
+ fma.rn.f32 %f198, %f4, %f196, %f3;
+ fma.rn.f32 %f44, %f42, 0f00000000, %f197;
+ fma.rn.f32 %f45, %f42, 0f00000000, %f198;
+ setp.geu.f32 %p20, %f42, %f261;
+ @%p20 bra BB0_16;
+
+ add.f32 %f259, %f43, %f42;
+ mov.f32 %f258, %f44;
+ mov.f32 %f260, %f45;
+ mov.f32 %f261, %f42;
+
+BB0_16:
+ ld.global.f32 %f207, [voxelSize];
+ ld.global.f32 %f208, [voxelSize+4];
+ mul.f32 %f209, %f208, 0f00000000;
+ fma.rn.f32 %f210, %f207, 0f00000000, %f209;
+ ld.global.f32 %f211, [voxelSize+8];
+ sub.f32 %f212, %f210, %f211;
+ abs.f32 %f206, %f212;
+ st.local.u32 [%rd29+8], %r26;
+ st.local.u32 [%rd29+4], %r26;
+ st.local.u32 [%rd29], %r26;
+ ld.global.u32 %r49, [root];
+ // inline asm
+ call _rt_trace_64, (%r49, %f1, %f2, %f3, %f94, %f94, %f91, %r26, %f94, %f206, %rd27, %r27);
+ // inline asm
+ ld.local.f32 %f51, [%rd29+4];
+ ld.local.f32 %f52, [%rd29];
+ add.f32 %f213, %f52, %f51;
+ ld.local.f32 %f53, [%rd29+8];
+ add.f32 %f214, %f213, %f53;
+ setp.eq.f32 %p21, %f214, 0f00000000;
+ @%p21 bra BB0_19;
+
+ mul.f32 %f215, %f51, %f51;
+ fma.rn.f32 %f216, %f52, %f52, %f215;
+ fma.rn.f32 %f217, %f53, %f53, %f216;
+ sqrt.rn.f32 %f54, %f217;
+ rcp.rn.f32 %f218, %f54;
+ mul.f32 %f219, %f218, %f52;
+ mul.f32 %f220, %f218, %f51;
+ mul.f32 %f221, %f218, %f53;
+ fma.rn.f32 %f222, %f4, %f219, %f1;
+ fma.rn.f32 %f223, %f4, %f220, %f2;
+ fma.rn.f32 %f224, %f4, %f221, %f3;
+ fma.rn.f32 %f55, %f54, 0f00000000, %f222;
+ fma.rn.f32 %f56, %f54, 0f00000000, %f223;
+ sub.f32 %f57, %f224, %f54;
+ setp.geu.f32 %p22, %f54, %f261;
+ @%p22 bra BB0_19;
+
+ mov.f32 %f258, %f55;
+ mov.f32 %f259, %f56;
+ mov.f32 %f260, %f57;
+ mov.f32 %f261, %f54;
+
+BB0_19:
+ ld.global.f32 %f233, [voxelSize];
+ ld.global.f32 %f234, [voxelSize+4];
+ mul.f32 %f235, %f234, 0f00000000;
+ fma.rn.f32 %f236, %f233, 0f00000000, %f235;
+ ld.global.f32 %f237, [voxelSize+8];
+ add.f32 %f238, %f236, %f237;
+ abs.f32 %f232, %f238;
+ st.local.u32 [%rd29+8], %r26;
+ st.local.u32 [%rd29+4], %r26;
+ st.local.u32 [%rd29], %r26;
+ ld.global.u32 %r52, [root];
+ // inline asm
+ call _rt_trace_64, (%r52, %f1, %f2, %f3, %f94, %f94, %f128, %r26, %f94, %f232, %rd27, %r27);
+ // inline asm
+ ld.local.f32 %f62, [%rd29+4];
+ ld.local.f32 %f63, [%rd29];
+ add.f32 %f239, %f63, %f62;
+ ld.local.f32 %f64, [%rd29+8];
+ add.f32 %f240, %f239, %f64;
+ setp.eq.f32 %p23, %f240, 0f00000000;
+ @%p23 bra BB0_22;
+
+ mul.f32 %f241, %f62, %f62;
+ fma.rn.f32 %f242, %f63, %f63, %f241;
+ fma.rn.f32 %f243, %f64, %f64, %f242;
+ sqrt.rn.f32 %f244, %f243;
+ rcp.rn.f32 %f245, %f244;
+ mul.f32 %f246, %f245, %f63;
+ mul.f32 %f247, %f245, %f62;
+ mul.f32 %f248, %f245, %f64;
+ fma.rn.f32 %f249, %f4, %f246, %f1;
+ fma.rn.f32 %f250, %f4, %f247, %f2;
+ fma.rn.f32 %f251, %f4, %f248, %f3;
+ fma.rn.f32 %f65, %f244, 0f00000000, %f249;
+ fma.rn.f32 %f66, %f244, 0f00000000, %f250;
+ add.f32 %f67, %f251, %f244;
+ setp.geu.f32 %p24, %f244, %f261;
+ @%p24 bra BB0_22;
+
+ mov.f32 %f258, %f65;
+ mov.f32 %f259, %f66;
+ mov.f32 %f260, %f67;
+
+BB0_22:
+ cvt.u64.u32 %rd43, %r3;
+ cvt.u64.u32 %rd42, %r2;
+ mov.u64 %rd46, image_HDR;
+ cvta.global.u64 %rd41, %rd46;
+ mov.u32 %r56, 16;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r4, %r56, %rd42, %rd43, %rd7, %rd7);
+ // inline asm
+ st.v4.f32 [%rd40], {%f258, %f259, %f260, %f128};
+
+BB0_24:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos3D.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos3D.ptx.meta
new file mode 100644
index 00000000..865cd30d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/fixPos3D.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6d3c23da2dc42294fa8ca290df4f84c2
+timeCreated: 1589639893
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/frender.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/frender.dll
new file mode 100644
index 00000000..db46162f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/frender.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/frender.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/frender.dll.meta
new file mode 100644
index 00000000..1e5a9833
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/frender.dll.meta
@@ -0,0 +1,138 @@
+fileFormatVersion: 2
+guid: a071375b62913014282acc67a8c276c2
+timeCreated: 1526150503
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ '': Any
+ second:
+ enabled: 0
+ settings:
+ Exclude Android: 1
+ Exclude Editor: 0
+ Exclude Linux: 1
+ Exclude Linux64: 1
+ Exclude LinuxUniversal: 1
+ Exclude OSXIntel: 1
+ Exclude OSXIntel64: 1
+ Exclude OSXUniversal: 1
+ Exclude WebGL: 1
+ Exclude Win: 1
+ Exclude Win64: 1
+ Exclude iOS: 1
+ data:
+ first:
+ '': Editor
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ OS: Windows
+ data:
+ first:
+ Android: Android
+ second:
+ enabled: 0
+ settings:
+ CPU: ARMv7
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ DefaultValueInitialized: true
+ data:
+ first:
+ Facebook: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Facebook: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: Linux
+ second:
+ enabled: 0
+ settings:
+ CPU: x86
+ data:
+ first:
+ Standalone: Linux64
+ second:
+ enabled: 0
+ settings:
+ CPU: x86_64
+ data:
+ first:
+ Standalone: LinuxUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: OSXIntel
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: OSXIntel64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ Standalone: OSXUniversal
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Win
+ second:
+ enabled: 0
+ settings:
+ CPU: None
+ data:
+ first:
+ Standalone: Win64
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ data:
+ first:
+ iPhone: iOS
+ second:
+ enabled: 0
+ settings:
+ CompileFlags:
+ FrameworkDependencies:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftChecker.shader b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftChecker.shader
new file mode 100644
index 00000000..4a819296
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftChecker.shader
@@ -0,0 +1,87 @@
+Shader "Hidden/ftChecker"
+{
+ Properties
+ {
+ _MainTex ("Texture", 2D) = "white" {}
+ }
+
+ SubShader {
+
+ Tags { "RenderType"="Opaque" }
+ LOD 200
+
+ CGPROGRAM
+ // Physically based Standard lighting model, and enable shadows on all light types
+ #pragma surface surf Standard vertex:vert noinstancing
+
+ // Use shader model 3.0 target, to get nicer looking lighting
+ #pragma target 3.0
+
+ sampler2D _MainTex;
+ float bakeryLightmapSize;
+ float3 bakeryLightmapID;
+
+ struct Input {
+ float2 texcoord1;
+ float3 worldPos;
+ };
+
+ half _Glossiness;
+ half _Metallic;
+ fixed4 _Color;
+
+ float2 pri( in float2 x )
+ {
+ // see https://www.shadertoy.com/view/MtffWs
+ float2 h = frac(x/2.0)-0.5;
+ return x*0.5 + h*(1.0-2.0*abs(h));
+ }
+
+ float2 tri( in float2 x )
+ {
+ float2 h = frac(x/2.0)-0.5;
+ return 1.0-2.0*abs(h);
+ }
+
+ struct vinput
+ {
+ float4 vertex : POSITION;
+ float2 texcoord1 : TEXCOORD1;
+ float2 texcoord2 : TEXCOORD2;
+ float3 normal : NORMAL0;
+ float2 texcoord : TEXCOORD0;
+ float4 tangent : TANGENT;
+ };
+
+ void vert (inout vinput v, out Input o)
+ {
+ UNITY_INITIALIZE_OUTPUT(Input,o);
+ o.texcoord1 = v.texcoord1 * unity_LightmapST.xy + unity_LightmapST.zw;
+ }
+
+ void surf (Input IN, inout SurfaceOutputStandard o) {
+ o.Albedo = 0;
+ o.Smoothness = 0;
+
+ //float width, height;
+ //unity_Lightmap.GetDimensions(width, height);
+ //float2 resolution = float2(width, height);
+
+ // Filtered checker from https://www.shadertoy.com/view/llffWs
+ float2 uv = IN.texcoord1 * bakeryLightmapSize * 0.5f;
+ float2 uvDx = ddx(uv);
+ float2 uvDy = ddy(uv);
+
+ float2 w = max(abs(uvDx), abs(uvDy)) + 0.01; // filter kernel
+ float2 i = (tri(uv+0.5*w)-tri(uv-0.5*w))/w; // analytical integral (box filter)
+ float checker = 0.5 - 0.5*i.x*i.y; // xor pattern
+
+ float3 color = DecodeLightmap(UNITY_SAMPLE_TEX2D(unity_Lightmap, IN.texcoord1));
+ color = lerp(saturate(color), checker * bakeryLightmapID, 0.5f);
+
+ o.Emission = color;
+ }
+ ENDCG
+ }
+ FallBack "Diffuse"
+}
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftChecker.shader.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftChecker.shader.meta
new file mode 100644
index 00000000..6c162f41
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftChecker.shader.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 4bcd2e3bee7aa694db5e644c90dbe178
+timeCreated: 1540224024
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftServer.exe b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftServer.exe
new file mode 100644
index 00000000..f5279141
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftServer.exe
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftServer.exe.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftServer.exe.meta
new file mode 100644
index 00000000..c8c7f63b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftServer.exe.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ee2998595053cdd4a9b503902cabd498
+timeCreated: 1552145710
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftrace.exe b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftrace.exe
new file mode 100644
index 00000000..235ca6b0
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftrace.exe
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftrace.exe.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftrace.exe.meta
new file mode 100644
index 00000000..f8303948
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftrace.exe.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 16127b989b7276947ac47f77f5f641c8
+timeCreated: 1526150503
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftraceRTX.exe b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftraceRTX.exe
new file mode 100644
index 00000000..80b653c4
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftraceRTX.exe
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftraceRTX.exe.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftraceRTX.exe.meta
new file mode 100644
index 00000000..4e2cca5f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ftraceRTX.exe.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 31723c36feaba3a43a6a56c27e94b3bf
+timeCreated: 1551528778
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2hdr.exe b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2hdr.exe
new file mode 100644
index 00000000..83b0597e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2hdr.exe
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2hdr.exe.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2hdr.exe.meta
new file mode 100644
index 00000000..5f6f0da7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2hdr.exe.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e15a4474deea07545a6e1b58d36c4d71
+timeCreated: 1526331764
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2vb.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2vb.dll
new file mode 100644
index 00000000..93410cea
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2vb.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2vb.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2vb.dll.meta
new file mode 100644
index 00000000..d16fc3ae
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/halffloat2vb.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: 77e9329d2b603b046bbb020a6b7bed62
+timeCreated: 1532196753
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfield.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfield.ptx
new file mode 100644
index 00000000..3bec1882
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfield.ptx
@@ -0,0 +1,648 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z9intersecti
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 4 .b8 ray[36];
+.global .align 4 .u32 heightmap;
+.global .align 4 .f32 heightmapMaxMip;
+.global .align 4 .b8 heightmapMin[12];
+.global .align 4 .b8 heightmapMax[12];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9heightmapE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo15heightmapMaxMipE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12heightmapMinE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12heightmapMaxE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename9heightmapE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename15heightmapMaxMipE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12heightmapMinE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12heightmapMaxE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9heightmapE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum15heightmapMaxMipE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12heightmapMinE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12heightmapMaxE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic9heightmapE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic15heightmapMaxMipE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12heightmapMinE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12heightmapMaxE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9heightmapE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation15heightmapMaxMipE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12heightmapMinE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12heightmapMaxE[1];
+
+.visible .entry _Z9intersecti(
+ .param .u32 _Z9intersecti_param_0
+)
+{
+ .reg .pred %p<57>;
+ .reg .b16 %rs<9>;
+ .reg .f32 %f<439>;
+ .reg .b32 %r<36>;
+
+
+ ld.global.f32 %f3, [heightmapMin+8];
+ ld.global.f32 %f2, [heightmapMin+4];
+ ld.global.f32 %f1, [heightmapMin];
+ ld.global.f32 %f139, [heightmapMax+8];
+ ld.global.f32 %f140, [heightmapMax+4];
+ ld.global.f32 %f141, [heightmapMax];
+ add.f32 %f142, %f1, %f141;
+ add.f32 %f143, %f2, %f140;
+ add.f32 %f144, %f3, %f139;
+ mul.f32 %f145, %f142, 0f3F000000;
+ mul.f32 %f146, %f143, 0f3F000000;
+ mul.f32 %f147, %f144, 0f3F000000;
+ sub.f32 %f4, %f141, %f1;
+ sub.f32 %f5, %f140, %f2;
+ sub.f32 %f6, %f139, %f3;
+ mul.f32 %f148, %f4, 0f3F000000;
+ mul.f32 %f149, %f5, 0f3F000000;
+ mul.f32 %f150, %f6, 0f3F000000;
+ ld.global.f32 %f7, [ray+12];
+ rcp.rn.f32 %f151, %f7;
+ ld.global.f32 %f8, [ray+16];
+ rcp.rn.f32 %f152, %f8;
+ ld.global.f32 %f9, [ray+20];
+ rcp.rn.f32 %f153, %f9;
+ ld.global.f32 %f10, [ray];
+ sub.f32 %f154, %f10, %f145;
+ ld.global.f32 %f11, [ray+4];
+ sub.f32 %f155, %f11, %f146;
+ ld.global.f32 %f12, [ray+8];
+ sub.f32 %f156, %f12, %f147;
+ mul.f32 %f157, %f151, %f154;
+ mul.f32 %f158, %f152, %f155;
+ mul.f32 %f159, %f153, %f156;
+ abs.f32 %f160, %f151;
+ abs.f32 %f161, %f152;
+ abs.f32 %f162, %f153;
+ mul.f32 %f163, %f148, %f160;
+ mul.f32 %f164, %f149, %f161;
+ mul.f32 %f165, %f150, %f162;
+ neg.f32 %f166, %f157;
+ neg.f32 %f167, %f158;
+ neg.f32 %f168, %f159;
+ sub.f32 %f169, %f166, %f163;
+ sub.f32 %f170, %f167, %f164;
+ sub.f32 %f171, %f168, %f165;
+ sub.f32 %f172, %f163, %f157;
+ sub.f32 %f173, %f164, %f158;
+ sub.f32 %f174, %f165, %f159;
+ max.f32 %f175, %f169, %f170;
+ max.f32 %f13, %f175, %f171;
+ min.f32 %f176, %f172, %f173;
+ min.f32 %f177, %f176, %f174;
+ setp.gt.f32 %p4, %f13, %f177;
+ setp.lt.f32 %p5, %f177, 0f00000000;
+ or.pred %p6, %p4, %p5;
+ @%p6 bra BB0_32;
+
+ add.f32 %f178, %f13, 0f3C23D70A;
+ setp.lt.f32 %p7, %f178, 0f00000000;
+ selp.f32 %f14, 0f00000000, %f178, %p7;
+ fma.rn.f32 %f179, %f14, %f7, %f10;
+ fma.rn.f32 %f180, %f14, %f8, %f11;
+ fma.rn.f32 %f181, %f14, %f9, %f12;
+ sub.f32 %f182, %f179, %f1;
+ sub.f32 %f15, %f180, %f2;
+ sub.f32 %f183, %f181, %f3;
+ div.rn.f32 %f419, %f182, %f4;
+ div.rn.f32 %f421, %f183, %f6;
+ abs.f32 %f184, %f15;
+ sub.f32 %f18, %f11, %f2;
+ setp.geu.f32 %p8, %f184, 0f38D1B717;
+ @%p8 bra BB0_3;
+
+ abs.f32 %f185, %f18;
+ setp.gt.f32 %p9, %f185, 0f38D1B717;
+ @%p9 bra BB0_30;
+ bra.uni BB0_3;
+
+BB0_30:
+ // inline asm
+ call (%r29), _rt_potential_intersection, (%f14);
+ // inline asm
+ setp.eq.s32 %p55, %r29, 0;
+ @%p55 bra BB0_32;
+
+ mov.u32 %r31, 0;
+ st.global.u32 [normal+8], %r31;
+ mov.u32 %r32, 1065353216;
+ st.global.u32 [normal+4], %r32;
+ st.global.u32 [normal], %r31;
+ // inline asm
+ call (%r30), _rt_report_intersection, (%r31);
+ // inline asm
+ bra.uni BB0_32;
+
+BB0_3:
+ sub.f32 %f187, %f10, %f1;
+ div.rn.f32 %f19, %f187, %f4;
+ div.rn.f32 %f20, %f18, %f5;
+ sub.f32 %f188, %f12, %f3;
+ div.rn.f32 %f21, %f188, %f6;
+ add.f32 %f189, %f419, %f419;
+ cvt.rmi.f32.f32 %f190, %f189;
+ mul.f32 %f422, %f190, 0f3F000000;
+ add.f32 %f191, %f421, %f421;
+ cvt.rmi.f32.f32 %f192, %f191;
+ mul.f32 %f423, %f192, 0f3F000000;
+ div.rn.f32 %f193, %f7, %f4;
+ div.rn.f32 %f194, %f8, %f5;
+ mul.f32 %f195, %f194, %f194;
+ fma.rn.f32 %f196, %f193, %f193, %f195;
+ div.rn.f32 %f197, %f9, %f6;
+ fma.rn.f32 %f198, %f197, %f197, %f196;
+ sqrt.rn.f32 %f199, %f198;
+ rcp.rn.f32 %f200, %f199;
+ mul.f32 %f24, %f193, %f200;
+ mul.f32 %f25, %f194, %f200;
+ mul.f32 %f26, %f197, %f200;
+ setp.gt.f32 %p10, %f24, 0f00000000;
+ mov.f32 %f437, 0f3F800000;
+ mov.f32 %f392, %f437;
+ @%p10 bra BB0_5;
+
+ setp.eq.f32 %p11, %f24, 0f00000000;
+ selp.f32 %f392, 0f00000000, 0fBF800000, %p11;
+
+BB0_5:
+ setp.gt.f32 %p12, %f26, 0f00000000;
+ mov.f32 %f393, %f437;
+ @%p12 bra BB0_7;
+
+ setp.eq.f32 %p13, %f26, 0f00000000;
+ selp.f32 %f393, 0f00000000, 0fBF800000, %p13;
+
+BB0_7:
+ ld.global.f32 %f425, [heightmapMaxMip];
+ abs.f32 %f207, %f26;
+ mov.f32 %f208, 0f38D1B717;
+ max.f32 %f32, %f207, %f208;
+ add.f32 %f209, %f422, 0f3F000000;
+ setp.lt.f32 %p14, %f392, 0f00000000;
+ selp.f32 %f210, %f422, %f209, %p14;
+ sub.f32 %f211, %f210, %f419;
+ abs.f32 %f212, %f211;
+ abs.f32 %f213, %f24;
+ max.f32 %f33, %f213, %f208;
+ div.rn.f32 %f427, %f212, %f33;
+ add.f32 %f214, %f423, 0f3F000000;
+ setp.lt.f32 %p15, %f393, 0f00000000;
+ selp.f32 %f215, %f423, %f214, %p15;
+ sub.f32 %f216, %f215, %f421;
+ abs.f32 %f217, %f216;
+ div.rn.f32 %f428, %f217, %f32;
+ rcp.rn.f32 %f218, %f24;
+ abs.f32 %f219, %f218;
+ mul.f32 %f429, %f219, 0f3F000000;
+ rcp.rn.f32 %f220, %f26;
+ abs.f32 %f221, %f220;
+ mul.f32 %f430, %f221, 0f3F000000;
+ mul.f32 %f431, %f392, 0f3F000000;
+ mul.f32 %f432, %f393, 0f3F000000;
+ rcp.rn.f32 %f40, %f25;
+ div.rn.f32 %f420, %f15, %f5;
+ mov.f32 %f438, 0f00000000;
+ mov.f32 %f424, 0f3F000000;
+ mov.f32 %f426, 0f40000000;
+ mov.u32 %r33, 0;
+ mov.u32 %r35, %r33;
+ mov.f32 %f436, %f438;
+
+BB0_8:
+ ld.global.u32 %r3, [heightmap];
+ setp.eq.f32 %p16, %f425, 0f00000000;
+ @%p16 bra BB0_12;
+ bra.uni BB0_9;
+
+BB0_12:
+ mov.u32 %r22, 2;
+ mov.u32 %r23, 0;
+ mov.f32 %f264, 0f00000000;
+ // inline asm
+ call (%f233, %f234, %f235, %f236), _rt_texture_get_level_id, (%r3, %r22, %f422, %f423, %f264, %r23, %f264);
+ // inline asm
+ ld.global.u32 %r15, [heightmap];
+ add.f32 %f253, %f422, %f424;
+ // inline asm
+ call (%f241, %f242, %f243, %f244), _rt_texture_get_level_id, (%r15, %r22, %f253, %f423, %f264, %r23, %f264);
+ // inline asm
+ ld.global.u32 %r18, [heightmap];
+ add.f32 %f262, %f423, %f424;
+ // inline asm
+ call (%f249, %f250, %f251, %f252), _rt_texture_get_level_id, (%r18, %r22, %f253, %f262, %f264, %r23, %f264);
+ // inline asm
+ ld.global.u32 %r21, [heightmap];
+ // inline asm
+ call (%f257, %f258, %f259, %f260), _rt_texture_get_level_id, (%r21, %r22, %f422, %f262, %f264, %r23, %f264);
+ // inline asm
+ sub.f32 %f265, %f253, %f422;
+ sub.f32 %f266, %f249, %f233;
+ sub.f32 %f267, %f262, %f423;
+ sub.f32 %f268, %f233, %f257;
+ sub.f32 %f269, %f423, %f262;
+ mul.f32 %f270, %f267, %f268;
+ mul.f32 %f271, %f269, %f266;
+ sub.f32 %f436, %f270, %f271;
+ mul.f32 %f67, %f269, %f265;
+ sub.f32 %f272, %f422, %f422;
+ mul.f32 %f273, %f272, %f267;
+ sub.f32 %f437, %f67, %f273;
+ mul.f32 %f274, %f272, %f266;
+ mul.f32 %f275, %f265, %f268;
+ sub.f32 %f438, %f274, %f275;
+ mul.f32 %f276, %f24, %f436;
+ fma.rn.f32 %f277, %f25, %f437, %f276;
+ fma.rn.f32 %f278, %f26, %f438, %f277;
+ rcp.rn.f32 %f279, %f278;
+ sub.f32 %f70, %f233, %f20;
+ sub.f32 %f280, %f422, %f19;
+ mul.f32 %f281, %f280, %f279;
+ mul.f32 %f282, %f70, %f279;
+ sub.f32 %f283, %f423, %f21;
+ mul.f32 %f284, %f283, %f279;
+ mul.f32 %f285, %f25, %f284;
+ mul.f32 %f286, %f26, %f282;
+ sub.f32 %f287, %f285, %f286;
+ mul.f32 %f288, %f26, %f281;
+ mul.f32 %f289, %f24, %f284;
+ sub.f32 %f290, %f288, %f289;
+ mul.f32 %f291, %f24, %f282;
+ mul.f32 %f292, %f25, %f281;
+ sub.f32 %f293, %f291, %f292;
+ mul.f32 %f294, %f268, %f290;
+ fma.rn.f32 %f295, %f272, %f287, %f294;
+ fma.rn.f32 %f296, %f269, %f293, %f295;
+ mul.f32 %f297, %f266, %f290;
+ fma.rn.f32 %f298, %f265, %f287, %f297;
+ fma.rn.f32 %f299, %f267, %f293, %f298;
+ mul.f32 %f300, %f281, %f436;
+ fma.rn.f32 %f301, %f437, %f282, %f300;
+ fma.rn.f32 %f71, %f284, %f438, %f301;
+ setp.gt.f32 %p22, %f71, 0f3456BF95;
+ setp.ge.f32 %p23, %f296, 0f00000000;
+ and.pred %p24, %p22, %p23;
+ setp.ge.f32 %p25, %f299, 0f00000000;
+ and.pred %p26, %p24, %p25;
+ add.f32 %f302, %f296, %f299;
+ setp.le.f32 %p27, %f302, 0f3F800000;
+ and.pred %p28, %p26, %p27;
+ @%p28 bra BB0_26;
+
+ sub.f32 %f303, %f241, %f233;
+ sub.f32 %f305, %f422, %f253;
+ sub.f32 %f306, %f233, %f249;
+ sub.f32 %f307, %f423, %f423;
+ mul.f32 %f308, %f307, %f306;
+ mul.f32 %f311, %f269, %f303;
+ sub.f32 %f436, %f308, %f311;
+ mul.f32 %f312, %f307, %f305;
+ sub.f32 %f437, %f67, %f312;
+ mul.f32 %f313, %f305, %f303;
+ mul.f32 %f315, %f265, %f306;
+ sub.f32 %f438, %f313, %f315;
+ mul.f32 %f316, %f24, %f436;
+ fma.rn.f32 %f317, %f25, %f437, %f316;
+ fma.rn.f32 %f318, %f26, %f438, %f317;
+ rcp.rn.f32 %f319, %f318;
+ mul.f32 %f321, %f280, %f319;
+ mul.f32 %f322, %f70, %f319;
+ mul.f32 %f324, %f283, %f319;
+ mul.f32 %f325, %f25, %f324;
+ mul.f32 %f326, %f26, %f322;
+ sub.f32 %f327, %f325, %f326;
+ mul.f32 %f328, %f26, %f321;
+ mul.f32 %f329, %f24, %f324;
+ sub.f32 %f330, %f328, %f329;
+ mul.f32 %f331, %f24, %f322;
+ mul.f32 %f332, %f25, %f321;
+ sub.f32 %f333, %f331, %f332;
+ mul.f32 %f334, %f306, %f330;
+ fma.rn.f32 %f335, %f305, %f327, %f334;
+ fma.rn.f32 %f336, %f269, %f333, %f335;
+ mul.f32 %f337, %f303, %f330;
+ fma.rn.f32 %f338, %f265, %f327, %f337;
+ fma.rn.f32 %f339, %f307, %f333, %f338;
+ mul.f32 %f340, %f437, %f322;
+ fma.rn.f32 %f341, %f436, %f321, %f340;
+ fma.rn.f32 %f75, %f438, %f324, %f341;
+ setp.gt.f32 %p29, %f75, 0f3456BF95;
+ setp.ge.f32 %p30, %f336, 0f00000000;
+ and.pred %p31, %p29, %p30;
+ setp.ge.f32 %p32, %f339, 0f00000000;
+ and.pred %p33, %p31, %p32;
+ add.f32 %f342, %f336, %f339;
+ setp.le.f32 %p34, %f342, 0f3F800000;
+ and.pred %p35, %p33, %p34;
+ selp.u16 %rs7, 1, 0, %p35;
+ @%p35 bra BB0_25;
+ bra.uni BB0_14;
+
+BB0_9:
+ setp.lt.f32 %p17, %f25, 0f00000000;
+ mov.u32 %r10, 2;
+ mov.f32 %f228, 0f00000000;
+ mov.u32 %r11, 0;
+ // inline asm
+ call (%f222, %f223, %f224, %f225), _rt_texture_get_level_id, (%r3, %r10, %f422, %f423, %f228, %r11, %f425);
+ // inline asm
+ setp.gt.f32 %p56, %f222, %f420;
+ setp.leu.f32 %p18, %f222, %f420;
+ and.pred %p19, %p17, %p18;
+ @!%p19 bra BB0_11;
+ bra.uni BB0_10;
+
+BB0_10:
+ sub.f32 %f230, %f420, %f222;
+ mul.f32 %f231, %f40, %f230;
+ neg.f32 %f232, %f231;
+ setp.gt.f32 %p20, %f427, %f232;
+ setp.gt.f32 %p21, %f428, %f232;
+ and.pred %p56, %p20, %p21;
+
+BB0_11:
+ selp.u16 %rs7, 1, 0, %p56;
+
+BB0_14:
+ setp.eq.s16 %p36, %rs7, 0;
+ @%p36 bra BB0_16;
+ bra.uni BB0_15;
+
+BB0_16:
+ setp.eq.s32 %p39, %r35, 4;
+ @%p39 bra BB0_22;
+ bra.uni BB0_17;
+
+BB0_22:
+ add.f32 %f425, %f425, 0f3F800000;
+ mul.f32 %f426, %f426, 0f3F000000;
+ mul.f32 %f355, %f419, %f426;
+ cvt.rmi.f32.f32 %f356, %f355;
+ div.rn.f32 %f422, %f356, %f426;
+ mul.f32 %f357, %f421, %f426;
+ cvt.rmi.f32.f32 %f358, %f357;
+ div.rn.f32 %f423, %f358, %f426;
+ add.f32 %f424, %f424, %f424;
+ add.f32 %f359, %f424, %f422;
+ selp.f32 %f360, %f422, %f359, %p14;
+ sub.f32 %f361, %f360, %f419;
+ abs.f32 %f362, %f361;
+ div.rn.f32 %f427, %f362, %f33;
+ add.f32 %f363, %f424, %f423;
+ selp.f32 %f364, %f423, %f363, %p15;
+ sub.f32 %f365, %f364, %f421;
+ abs.f32 %f366, %f365;
+ div.rn.f32 %f428, %f366, %f32;
+ add.f32 %f429, %f429, %f429;
+ add.f32 %f430, %f430, %f430;
+ add.f32 %f431, %f431, %f431;
+ add.f32 %f432, %f432, %f432;
+ bra.uni BB0_23;
+
+BB0_15:
+ add.f32 %f425, %f425, 0fBF800000;
+ add.f32 %f426, %f426, %f426;
+ mul.f32 %f343, %f419, %f426;
+ cvt.rmi.f32.f32 %f344, %f343;
+ div.rn.f32 %f422, %f344, %f426;
+ mul.f32 %f345, %f421, %f426;
+ cvt.rmi.f32.f32 %f346, %f345;
+ div.rn.f32 %f423, %f346, %f426;
+ mul.f32 %f424, %f424, 0f3F000000;
+ add.f32 %f347, %f424, %f422;
+ selp.f32 %f348, %f422, %f347, %p14;
+ sub.f32 %f349, %f348, %f419;
+ abs.f32 %f350, %f349;
+ div.rn.f32 %f427, %f350, %f33;
+ add.f32 %f351, %f424, %f423;
+ selp.f32 %f352, %f423, %f351, %p15;
+ sub.f32 %f353, %f352, %f421;
+ abs.f32 %f354, %f353;
+ div.rn.f32 %f428, %f354, %f32;
+ mul.f32 %f429, %f429, 0f3F000000;
+ mul.f32 %f430, %f430, 0f3F000000;
+ mul.f32 %f431, %f431, 0f3F000000;
+ mul.f32 %f432, %f432, 0f3F000000;
+
+BB0_23:
+ mov.u32 %r35, 0;
+ bra.uni BB0_24;
+
+BB0_17:
+ setp.lt.f32 %p40, %f427, %f428;
+ @%p40 bra BB0_19;
+ bra.uni BB0_18;
+
+BB0_19:
+ sub.f32 %f418, %f428, %f427;
+ add.f32 %f422, %f422, %f431;
+ mov.f32 %f428, %f427;
+ mov.f32 %f427, %f429;
+ bra.uni BB0_20;
+
+BB0_18:
+ sub.f32 %f427, %f427, %f428;
+ add.f32 %f423, %f423, %f432;
+ mov.f32 %f418, %f430;
+
+BB0_20:
+ fma.rn.f32 %f421, %f26, %f428, %f421;
+ fma.rn.f32 %f420, %f25, %f428, %f420;
+ fma.rn.f32 %f419, %f24, %f428, %f419;
+ setp.ge.f32 %p41, %f419, 0f00000000;
+ setp.ge.f32 %p42, %f421, 0f00000000;
+ and.pred %p43, %p41, %p42;
+ setp.lt.f32 %p44, %f419, 0f3F800000;
+ and.pred %p45, %p43, %p44;
+ setp.lt.f32 %p46, %f421, 0f3F800000;
+ and.pred %p47, %p45, %p46;
+ setp.lt.f32 %p48, %f420, 0f3F800000;
+ and.pred %p49, %p47, %p48;
+ mov.u16 %rs8, 0;
+ @!%p49 bra BB0_27;
+ bra.uni BB0_21;
+
+BB0_21:
+ add.s32 %r35, %r35, 1;
+ mov.f32 %f428, %f418;
+
+BB0_24:
+ add.s32 %r33, %r33, 1;
+ setp.lt.s32 %p52, %r33, 512;
+ mov.u16 %rs8, %rs7;
+ @%p52 bra BB0_8;
+ bra.uni BB0_27;
+
+BB0_26:
+ fma.rn.f32 %f419, %f24, %f71, %f19;
+ fma.rn.f32 %f420, %f25, %f71, %f20;
+ fma.rn.f32 %f421, %f26, %f71, %f21;
+ mov.u16 %rs8, 1;
+ bra.uni BB0_27;
+
+BB0_25:
+ fma.rn.f32 %f419, %f24, %f75, %f19;
+ fma.rn.f32 %f420, %f25, %f75, %f20;
+ fma.rn.f32 %f421, %f26, %f75, %f21;
+ mov.u16 %rs8, %rs7;
+
+BB0_27:
+ setp.eq.s16 %p53, %rs8, 0;
+ @%p53 bra BB0_32;
+
+ fma.rn.f32 %f368, %f4, %f419, %f1;
+ fma.rn.f32 %f369, %f5, %f420, %f2;
+ fma.rn.f32 %f370, %f6, %f421, %f3;
+ ld.global.f32 %f371, [ray];
+ sub.f32 %f372, %f368, %f371;
+ ld.global.f32 %f373, [ray+4];
+ sub.f32 %f374, %f369, %f373;
+ ld.global.f32 %f375, [ray+8];
+ sub.f32 %f376, %f370, %f375;
+ mul.f32 %f377, %f374, %f374;
+ fma.rn.f32 %f378, %f372, %f372, %f377;
+ fma.rn.f32 %f379, %f376, %f376, %f378;
+ sqrt.rn.f32 %f367, %f379;
+ // inline asm
+ call (%r26), _rt_potential_intersection, (%f367);
+ // inline asm
+ setp.eq.s32 %p54, %r26, 0;
+ @%p54 bra BB0_32;
+
+ mul.f32 %f380, %f437, %f437;
+ fma.rn.f32 %f381, %f436, %f436, %f380;
+ fma.rn.f32 %f382, %f438, %f438, %f381;
+ sqrt.rn.f32 %f383, %f382;
+ rcp.rn.f32 %f384, %f383;
+ mul.f32 %f385, %f436, %f384;
+ neg.f32 %f386, %f385;
+ mul.f32 %f387, %f437, %f384;
+ neg.f32 %f388, %f387;
+ mul.f32 %f389, %f438, %f384;
+ neg.f32 %f390, %f389;
+ st.global.f32 [normal], %f386;
+ st.global.f32 [normal+4], %f388;
+ st.global.f32 [normal+8], %f390;
+ mov.u32 %r28, 0;
+ // inline asm
+ call (%r27), _rt_report_intersection, (%r28);
+ // inline asm
+
+BB0_32:
+ ret;
+}
+
+ // .globl _Z4bboxiPN5optix4AabbE
+.visible .entry _Z4bboxiPN5optix4AabbE(
+ .param .u32 _Z4bboxiPN5optix4AabbE_param_0,
+ .param .u64 _Z4bboxiPN5optix4AabbE_param_1
+)
+{
+ .reg .f32 %f<7>;
+ .reg .b64 %rd<3>;
+
+
+ ld.param.u64 %rd1, [_Z4bboxiPN5optix4AabbE_param_1];
+ cvta.to.global.u64 %rd2, %rd1;
+ ld.global.f32 %f1, [heightmapMin];
+ ld.global.f32 %f2, [heightmapMin+4];
+ ld.global.f32 %f3, [heightmapMin+8];
+ st.global.f32 [%rd2+8], %f3;
+ st.global.f32 [%rd2+4], %f2;
+ st.global.f32 [%rd2], %f1;
+ ld.global.f32 %f4, [heightmapMax];
+ ld.global.f32 %f5, [heightmapMax+4];
+ ld.global.f32 %f6, [heightmapMax+8];
+ st.global.f32 [%rd2+20], %f6;
+ st.global.f32 [%rd2+16], %f5;
+ st.global.f32 [%rd2+12], %f4;
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfield.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfield.ptx.meta
new file mode 100644
index 00000000..519f24db
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfield.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6d59872cbc2f1b94e9cbd52dbed696b0
+timeCreated: 1544952179
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTex.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTex.ptx
new file mode 100644
index 00000000..12da642f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTex.ptx
@@ -0,0 +1,676 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z9intersecti
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 4 .b8 ray[36];
+.global .align 4 .u32 heightmap;
+.global .align 4 .f32 heightmapMaxMip;
+.global .align 4 .b8 heightmapMin[12];
+.global .align 4 .b8 heightmapMax[12];
+.global .align 4 .f32 heightmapLMID;
+.global .align 16 .b8 heightmapOffsetScaleUV[16];
+.global .align 8 .b8 texCoords[8];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9heightmapE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo15heightmapMaxMipE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12heightmapMinE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12heightmapMaxE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13heightmapLMIDE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo22heightmapOffsetScaleUVE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename9heightmapE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename15heightmapMaxMipE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12heightmapMinE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12heightmapMaxE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename13heightmapLMIDE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename22heightmapOffsetScaleUVE[7] = {102, 108, 111, 97, 116, 52, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9heightmapE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum15heightmapMaxMipE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12heightmapMinE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12heightmapMaxE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13heightmapLMIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum22heightmapOffsetScaleUVE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic9heightmapE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic15heightmapMaxMipE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12heightmapMinE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12heightmapMaxE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13heightmapLMIDE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic22heightmapOffsetScaleUVE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9heightmapE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation15heightmapMaxMipE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12heightmapMinE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12heightmapMaxE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13heightmapLMIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation22heightmapOffsetScaleUVE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+
+.visible .entry _Z9intersecti(
+ .param .u32 _Z9intersecti_param_0
+)
+{
+ .reg .pred %p<57>;
+ .reg .b16 %rs<9>;
+ .reg .f32 %f<454>;
+ .reg .b32 %r<36>;
+
+
+ ld.global.f32 %f4, [heightmapMin+8];
+ ld.global.f32 %f3, [heightmapMin+4];
+ ld.global.f32 %f2, [heightmapMin];
+ ld.global.f32 %f1, [heightmapLMID];
+ ld.global.f32 %f144, [heightmapMax+8];
+ ld.global.f32 %f145, [heightmapMax+4];
+ ld.global.f32 %f146, [heightmapMax];
+ add.f32 %f147, %f2, %f146;
+ add.f32 %f148, %f3, %f145;
+ add.f32 %f149, %f4, %f144;
+ mul.f32 %f150, %f147, 0f3F000000;
+ mul.f32 %f151, %f148, 0f3F000000;
+ mul.f32 %f152, %f149, 0f3F000000;
+ sub.f32 %f5, %f146, %f2;
+ sub.f32 %f6, %f145, %f3;
+ sub.f32 %f7, %f144, %f4;
+ mul.f32 %f153, %f5, 0f3F000000;
+ mul.f32 %f154, %f6, 0f3F000000;
+ mul.f32 %f155, %f7, 0f3F000000;
+ ld.global.f32 %f8, [ray+12];
+ rcp.rn.f32 %f156, %f8;
+ ld.global.f32 %f9, [ray+16];
+ rcp.rn.f32 %f157, %f9;
+ ld.global.f32 %f10, [ray+20];
+ rcp.rn.f32 %f158, %f10;
+ ld.global.f32 %f11, [ray];
+ sub.f32 %f159, %f11, %f150;
+ ld.global.f32 %f12, [ray+4];
+ sub.f32 %f160, %f12, %f151;
+ ld.global.f32 %f13, [ray+8];
+ sub.f32 %f161, %f13, %f152;
+ mul.f32 %f162, %f156, %f159;
+ mul.f32 %f163, %f157, %f160;
+ mul.f32 %f164, %f158, %f161;
+ abs.f32 %f165, %f156;
+ abs.f32 %f166, %f157;
+ abs.f32 %f167, %f158;
+ mul.f32 %f168, %f153, %f165;
+ mul.f32 %f169, %f154, %f166;
+ mul.f32 %f170, %f155, %f167;
+ neg.f32 %f171, %f162;
+ neg.f32 %f172, %f163;
+ neg.f32 %f173, %f164;
+ sub.f32 %f174, %f171, %f168;
+ sub.f32 %f175, %f172, %f169;
+ sub.f32 %f176, %f173, %f170;
+ sub.f32 %f177, %f168, %f162;
+ sub.f32 %f178, %f169, %f163;
+ sub.f32 %f179, %f170, %f164;
+ max.f32 %f180, %f174, %f175;
+ max.f32 %f14, %f180, %f176;
+ min.f32 %f181, %f177, %f178;
+ min.f32 %f182, %f181, %f179;
+ setp.gt.f32 %p4, %f14, %f182;
+ setp.lt.f32 %p5, %f182, 0f00000000;
+ or.pred %p6, %p4, %p5;
+ @%p6 bra BB0_32;
+
+ ld.global.v4.f32 {%f183, %f184, %f185, %f186}, [heightmapOffsetScaleUV];
+ add.f32 %f187, %f14, 0f3C23D70A;
+ setp.lt.f32 %p7, %f187, 0f00000000;
+ selp.f32 %f19, 0f00000000, %f187, %p7;
+ fma.rn.f32 %f188, %f19, %f8, %f11;
+ fma.rn.f32 %f189, %f19, %f9, %f12;
+ fma.rn.f32 %f190, %f19, %f10, %f13;
+ sub.f32 %f191, %f188, %f2;
+ sub.f32 %f20, %f189, %f3;
+ sub.f32 %f192, %f190, %f4;
+ div.rn.f32 %f434, %f191, %f5;
+ div.rn.f32 %f436, %f192, %f7;
+ abs.f32 %f193, %f20;
+ sub.f32 %f23, %f12, %f3;
+ setp.geu.f32 %p8, %f193, 0f38D1B717;
+ @%p8 bra BB0_3;
+
+ abs.f32 %f194, %f23;
+ setp.gt.f32 %p9, %f194, 0f38D1B717;
+ @%p9 bra BB0_30;
+ bra.uni BB0_3;
+
+BB0_30:
+ // inline asm
+ call (%r29), _rt_potential_intersection, (%f19);
+ // inline asm
+ setp.eq.s32 %p55, %r29, 0;
+ @%p55 bra BB0_32;
+
+ mov.u32 %r31, 0;
+ st.global.u32 [normal+8], %r31;
+ mov.u32 %r32, 1065353216;
+ st.global.u32 [normal+4], %r32;
+ st.global.u32 [normal], %r31;
+ fma.rn.f32 %f404, %f185, %f434, %f183;
+ fma.rn.f32 %f405, %f186, %f436, %f184;
+ fma.rn.f32 %f406, %f1, 0f41200000, %f404;
+ st.global.v2.f32 [texCoords], {%f406, %f405};
+ // inline asm
+ call (%r30), _rt_report_intersection, (%r31);
+ // inline asm
+ bra.uni BB0_32;
+
+BB0_3:
+ sub.f32 %f196, %f11, %f2;
+ div.rn.f32 %f24, %f196, %f5;
+ div.rn.f32 %f25, %f23, %f6;
+ sub.f32 %f197, %f13, %f4;
+ div.rn.f32 %f26, %f197, %f7;
+ add.f32 %f198, %f434, %f434;
+ cvt.rmi.f32.f32 %f199, %f198;
+ mul.f32 %f437, %f199, 0f3F000000;
+ add.f32 %f200, %f436, %f436;
+ cvt.rmi.f32.f32 %f201, %f200;
+ mul.f32 %f438, %f201, 0f3F000000;
+ div.rn.f32 %f202, %f8, %f5;
+ div.rn.f32 %f203, %f9, %f6;
+ mul.f32 %f204, %f203, %f203;
+ fma.rn.f32 %f205, %f202, %f202, %f204;
+ div.rn.f32 %f206, %f10, %f7;
+ fma.rn.f32 %f207, %f206, %f206, %f205;
+ sqrt.rn.f32 %f208, %f207;
+ rcp.rn.f32 %f209, %f208;
+ mul.f32 %f29, %f202, %f209;
+ mul.f32 %f30, %f203, %f209;
+ mul.f32 %f31, %f206, %f209;
+ setp.gt.f32 %p10, %f29, 0f00000000;
+ mov.f32 %f452, 0f3F800000;
+ mov.f32 %f407, %f452;
+ @%p10 bra BB0_5;
+
+ setp.eq.f32 %p11, %f29, 0f00000000;
+ selp.f32 %f407, 0f00000000, 0fBF800000, %p11;
+
+BB0_5:
+ setp.gt.f32 %p12, %f31, 0f00000000;
+ mov.f32 %f408, %f452;
+ @%p12 bra BB0_7;
+
+ setp.eq.f32 %p13, %f31, 0f00000000;
+ selp.f32 %f408, 0f00000000, 0fBF800000, %p13;
+
+BB0_7:
+ ld.global.f32 %f440, [heightmapMaxMip];
+ abs.f32 %f216, %f31;
+ mov.f32 %f217, 0f38D1B717;
+ max.f32 %f37, %f216, %f217;
+ add.f32 %f218, %f437, 0f3F000000;
+ setp.lt.f32 %p14, %f407, 0f00000000;
+ selp.f32 %f219, %f437, %f218, %p14;
+ sub.f32 %f220, %f219, %f434;
+ abs.f32 %f221, %f220;
+ abs.f32 %f222, %f29;
+ max.f32 %f38, %f222, %f217;
+ div.rn.f32 %f442, %f221, %f38;
+ add.f32 %f223, %f438, 0f3F000000;
+ setp.lt.f32 %p15, %f408, 0f00000000;
+ selp.f32 %f224, %f438, %f223, %p15;
+ sub.f32 %f225, %f224, %f436;
+ abs.f32 %f226, %f225;
+ div.rn.f32 %f443, %f226, %f37;
+ rcp.rn.f32 %f227, %f29;
+ abs.f32 %f228, %f227;
+ mul.f32 %f444, %f228, 0f3F000000;
+ rcp.rn.f32 %f229, %f31;
+ abs.f32 %f230, %f229;
+ mul.f32 %f445, %f230, 0f3F000000;
+ mul.f32 %f446, %f407, 0f3F000000;
+ mul.f32 %f447, %f408, 0f3F000000;
+ rcp.rn.f32 %f45, %f30;
+ div.rn.f32 %f435, %f20, %f6;
+ mov.f32 %f453, 0f00000000;
+ mov.f32 %f439, 0f3F000000;
+ mov.f32 %f441, 0f40000000;
+ mov.u32 %r33, 0;
+ mov.u32 %r35, %r33;
+ mov.f32 %f451, %f453;
+
+BB0_8:
+ ld.global.u32 %r3, [heightmap];
+ setp.eq.f32 %p16, %f440, 0f00000000;
+ @%p16 bra BB0_12;
+ bra.uni BB0_9;
+
+BB0_12:
+ mov.u32 %r22, 2;
+ mov.u32 %r23, 0;
+ mov.f32 %f273, 0f00000000;
+ // inline asm
+ call (%f242, %f243, %f244, %f245), _rt_texture_get_level_id, (%r3, %r22, %f437, %f438, %f273, %r23, %f273);
+ // inline asm
+ ld.global.u32 %r15, [heightmap];
+ add.f32 %f262, %f437, %f439;
+ // inline asm
+ call (%f250, %f251, %f252, %f253), _rt_texture_get_level_id, (%r15, %r22, %f262, %f438, %f273, %r23, %f273);
+ // inline asm
+ ld.global.u32 %r18, [heightmap];
+ add.f32 %f271, %f438, %f439;
+ // inline asm
+ call (%f258, %f259, %f260, %f261), _rt_texture_get_level_id, (%r18, %r22, %f262, %f271, %f273, %r23, %f273);
+ // inline asm
+ ld.global.u32 %r21, [heightmap];
+ // inline asm
+ call (%f266, %f267, %f268, %f269), _rt_texture_get_level_id, (%r21, %r22, %f437, %f271, %f273, %r23, %f273);
+ // inline asm
+ sub.f32 %f274, %f262, %f437;
+ sub.f32 %f275, %f258, %f242;
+ sub.f32 %f276, %f271, %f438;
+ sub.f32 %f277, %f242, %f266;
+ sub.f32 %f278, %f438, %f271;
+ mul.f32 %f279, %f276, %f277;
+ mul.f32 %f280, %f278, %f275;
+ sub.f32 %f451, %f279, %f280;
+ mul.f32 %f72, %f278, %f274;
+ sub.f32 %f281, %f437, %f437;
+ mul.f32 %f282, %f281, %f276;
+ sub.f32 %f452, %f72, %f282;
+ mul.f32 %f283, %f281, %f275;
+ mul.f32 %f284, %f274, %f277;
+ sub.f32 %f453, %f283, %f284;
+ mul.f32 %f285, %f29, %f451;
+ fma.rn.f32 %f286, %f30, %f452, %f285;
+ fma.rn.f32 %f287, %f31, %f453, %f286;
+ rcp.rn.f32 %f288, %f287;
+ sub.f32 %f75, %f242, %f25;
+ sub.f32 %f289, %f437, %f24;
+ mul.f32 %f290, %f289, %f288;
+ mul.f32 %f291, %f75, %f288;
+ sub.f32 %f292, %f438, %f26;
+ mul.f32 %f293, %f292, %f288;
+ mul.f32 %f294, %f30, %f293;
+ mul.f32 %f295, %f31, %f291;
+ sub.f32 %f296, %f294, %f295;
+ mul.f32 %f297, %f31, %f290;
+ mul.f32 %f298, %f29, %f293;
+ sub.f32 %f299, %f297, %f298;
+ mul.f32 %f300, %f29, %f291;
+ mul.f32 %f301, %f30, %f290;
+ sub.f32 %f302, %f300, %f301;
+ mul.f32 %f303, %f277, %f299;
+ fma.rn.f32 %f304, %f281, %f296, %f303;
+ fma.rn.f32 %f305, %f278, %f302, %f304;
+ mul.f32 %f306, %f275, %f299;
+ fma.rn.f32 %f307, %f274, %f296, %f306;
+ fma.rn.f32 %f308, %f276, %f302, %f307;
+ mul.f32 %f309, %f290, %f451;
+ fma.rn.f32 %f310, %f452, %f291, %f309;
+ fma.rn.f32 %f76, %f293, %f453, %f310;
+ setp.gt.f32 %p22, %f76, 0f3456BF95;
+ setp.ge.f32 %p23, %f305, 0f00000000;
+ and.pred %p24, %p22, %p23;
+ setp.ge.f32 %p25, %f308, 0f00000000;
+ and.pred %p26, %p24, %p25;
+ add.f32 %f311, %f305, %f308;
+ setp.le.f32 %p27, %f311, 0f3F800000;
+ and.pred %p28, %p26, %p27;
+ @%p28 bra BB0_26;
+
+ sub.f32 %f312, %f250, %f242;
+ sub.f32 %f314, %f437, %f262;
+ sub.f32 %f315, %f242, %f258;
+ sub.f32 %f316, %f438, %f438;
+ mul.f32 %f317, %f316, %f315;
+ mul.f32 %f320, %f278, %f312;
+ sub.f32 %f451, %f317, %f320;
+ mul.f32 %f321, %f316, %f314;
+ sub.f32 %f452, %f72, %f321;
+ mul.f32 %f322, %f314, %f312;
+ mul.f32 %f324, %f274, %f315;
+ sub.f32 %f453, %f322, %f324;
+ mul.f32 %f325, %f29, %f451;
+ fma.rn.f32 %f326, %f30, %f452, %f325;
+ fma.rn.f32 %f327, %f31, %f453, %f326;
+ rcp.rn.f32 %f328, %f327;
+ mul.f32 %f330, %f289, %f328;
+ mul.f32 %f331, %f75, %f328;
+ mul.f32 %f333, %f292, %f328;
+ mul.f32 %f334, %f30, %f333;
+ mul.f32 %f335, %f31, %f331;
+ sub.f32 %f336, %f334, %f335;
+ mul.f32 %f337, %f31, %f330;
+ mul.f32 %f338, %f29, %f333;
+ sub.f32 %f339, %f337, %f338;
+ mul.f32 %f340, %f29, %f331;
+ mul.f32 %f341, %f30, %f330;
+ sub.f32 %f342, %f340, %f341;
+ mul.f32 %f343, %f315, %f339;
+ fma.rn.f32 %f344, %f314, %f336, %f343;
+ fma.rn.f32 %f345, %f278, %f342, %f344;
+ mul.f32 %f346, %f312, %f339;
+ fma.rn.f32 %f347, %f274, %f336, %f346;
+ fma.rn.f32 %f348, %f316, %f342, %f347;
+ mul.f32 %f349, %f452, %f331;
+ fma.rn.f32 %f350, %f451, %f330, %f349;
+ fma.rn.f32 %f80, %f453, %f333, %f350;
+ setp.gt.f32 %p29, %f80, 0f3456BF95;
+ setp.ge.f32 %p30, %f345, 0f00000000;
+ and.pred %p31, %p29, %p30;
+ setp.ge.f32 %p32, %f348, 0f00000000;
+ and.pred %p33, %p31, %p32;
+ add.f32 %f351, %f345, %f348;
+ setp.le.f32 %p34, %f351, 0f3F800000;
+ and.pred %p35, %p33, %p34;
+ selp.u16 %rs7, 1, 0, %p35;
+ @%p35 bra BB0_25;
+ bra.uni BB0_14;
+
+BB0_9:
+ setp.lt.f32 %p17, %f30, 0f00000000;
+ mov.u32 %r10, 2;
+ mov.f32 %f237, 0f00000000;
+ mov.u32 %r11, 0;
+ // inline asm
+ call (%f231, %f232, %f233, %f234), _rt_texture_get_level_id, (%r3, %r10, %f437, %f438, %f237, %r11, %f440);
+ // inline asm
+ setp.gt.f32 %p56, %f231, %f435;
+ setp.leu.f32 %p18, %f231, %f435;
+ and.pred %p19, %p17, %p18;
+ @!%p19 bra BB0_11;
+ bra.uni BB0_10;
+
+BB0_10:
+ sub.f32 %f239, %f435, %f231;
+ mul.f32 %f240, %f45, %f239;
+ neg.f32 %f241, %f240;
+ setp.gt.f32 %p20, %f442, %f241;
+ setp.gt.f32 %p21, %f443, %f241;
+ and.pred %p56, %p20, %p21;
+
+BB0_11:
+ selp.u16 %rs7, 1, 0, %p56;
+
+BB0_14:
+ setp.eq.s16 %p36, %rs7, 0;
+ @%p36 bra BB0_16;
+ bra.uni BB0_15;
+
+BB0_16:
+ setp.eq.s32 %p39, %r35, 4;
+ @%p39 bra BB0_22;
+ bra.uni BB0_17;
+
+BB0_22:
+ add.f32 %f440, %f440, 0f3F800000;
+ mul.f32 %f441, %f441, 0f3F000000;
+ mul.f32 %f364, %f434, %f441;
+ cvt.rmi.f32.f32 %f365, %f364;
+ div.rn.f32 %f437, %f365, %f441;
+ mul.f32 %f366, %f436, %f441;
+ cvt.rmi.f32.f32 %f367, %f366;
+ div.rn.f32 %f438, %f367, %f441;
+ add.f32 %f439, %f439, %f439;
+ add.f32 %f368, %f439, %f437;
+ selp.f32 %f369, %f437, %f368, %p14;
+ sub.f32 %f370, %f369, %f434;
+ abs.f32 %f371, %f370;
+ div.rn.f32 %f442, %f371, %f38;
+ add.f32 %f372, %f439, %f438;
+ selp.f32 %f373, %f438, %f372, %p15;
+ sub.f32 %f374, %f373, %f436;
+ abs.f32 %f375, %f374;
+ div.rn.f32 %f443, %f375, %f37;
+ add.f32 %f444, %f444, %f444;
+ add.f32 %f445, %f445, %f445;
+ add.f32 %f446, %f446, %f446;
+ add.f32 %f447, %f447, %f447;
+ bra.uni BB0_23;
+
+BB0_15:
+ add.f32 %f440, %f440, 0fBF800000;
+ add.f32 %f441, %f441, %f441;
+ mul.f32 %f352, %f434, %f441;
+ cvt.rmi.f32.f32 %f353, %f352;
+ div.rn.f32 %f437, %f353, %f441;
+ mul.f32 %f354, %f436, %f441;
+ cvt.rmi.f32.f32 %f355, %f354;
+ div.rn.f32 %f438, %f355, %f441;
+ mul.f32 %f439, %f439, 0f3F000000;
+ add.f32 %f356, %f439, %f437;
+ selp.f32 %f357, %f437, %f356, %p14;
+ sub.f32 %f358, %f357, %f434;
+ abs.f32 %f359, %f358;
+ div.rn.f32 %f442, %f359, %f38;
+ add.f32 %f360, %f439, %f438;
+ selp.f32 %f361, %f438, %f360, %p15;
+ sub.f32 %f362, %f361, %f436;
+ abs.f32 %f363, %f362;
+ div.rn.f32 %f443, %f363, %f37;
+ mul.f32 %f444, %f444, 0f3F000000;
+ mul.f32 %f445, %f445, 0f3F000000;
+ mul.f32 %f446, %f446, 0f3F000000;
+ mul.f32 %f447, %f447, 0f3F000000;
+
+BB0_23:
+ mov.u32 %r35, 0;
+ bra.uni BB0_24;
+
+BB0_17:
+ setp.lt.f32 %p40, %f442, %f443;
+ @%p40 bra BB0_19;
+ bra.uni BB0_18;
+
+BB0_19:
+ sub.f32 %f433, %f443, %f442;
+ add.f32 %f437, %f437, %f446;
+ mov.f32 %f443, %f442;
+ mov.f32 %f442, %f444;
+ bra.uni BB0_20;
+
+BB0_18:
+ sub.f32 %f442, %f442, %f443;
+ add.f32 %f438, %f438, %f447;
+ mov.f32 %f433, %f445;
+
+BB0_20:
+ fma.rn.f32 %f436, %f31, %f443, %f436;
+ fma.rn.f32 %f435, %f30, %f443, %f435;
+ fma.rn.f32 %f434, %f29, %f443, %f434;
+ setp.ge.f32 %p41, %f434, 0f00000000;
+ setp.ge.f32 %p42, %f436, 0f00000000;
+ and.pred %p43, %p41, %p42;
+ setp.lt.f32 %p44, %f434, 0f3F800000;
+ and.pred %p45, %p43, %p44;
+ setp.lt.f32 %p46, %f436, 0f3F800000;
+ and.pred %p47, %p45, %p46;
+ setp.lt.f32 %p48, %f435, 0f3F800000;
+ and.pred %p49, %p47, %p48;
+ mov.u16 %rs8, 0;
+ @!%p49 bra BB0_27;
+ bra.uni BB0_21;
+
+BB0_21:
+ add.s32 %r35, %r35, 1;
+ mov.f32 %f443, %f433;
+
+BB0_24:
+ add.s32 %r33, %r33, 1;
+ setp.lt.s32 %p52, %r33, 512;
+ mov.u16 %rs8, %rs7;
+ @%p52 bra BB0_8;
+ bra.uni BB0_27;
+
+BB0_26:
+ fma.rn.f32 %f434, %f29, %f76, %f24;
+ fma.rn.f32 %f435, %f30, %f76, %f25;
+ fma.rn.f32 %f436, %f31, %f76, %f26;
+ mov.u16 %rs8, 1;
+ bra.uni BB0_27;
+
+BB0_25:
+ fma.rn.f32 %f434, %f29, %f80, %f24;
+ fma.rn.f32 %f435, %f30, %f80, %f25;
+ fma.rn.f32 %f436, %f31, %f80, %f26;
+ mov.u16 %rs8, %rs7;
+
+BB0_27:
+ setp.eq.s16 %p53, %rs8, 0;
+ @%p53 bra BB0_32;
+
+ fma.rn.f32 %f377, %f5, %f434, %f2;
+ fma.rn.f32 %f378, %f6, %f435, %f3;
+ fma.rn.f32 %f379, %f7, %f436, %f4;
+ ld.global.f32 %f380, [ray];
+ sub.f32 %f381, %f377, %f380;
+ ld.global.f32 %f382, [ray+4];
+ sub.f32 %f383, %f378, %f382;
+ ld.global.f32 %f384, [ray+8];
+ sub.f32 %f385, %f379, %f384;
+ mul.f32 %f386, %f383, %f383;
+ fma.rn.f32 %f387, %f381, %f381, %f386;
+ fma.rn.f32 %f388, %f385, %f385, %f387;
+ sqrt.rn.f32 %f376, %f388;
+ // inline asm
+ call (%r26), _rt_potential_intersection, (%f376);
+ // inline asm
+ setp.eq.s32 %p54, %r26, 0;
+ @%p54 bra BB0_32;
+
+ mul.f32 %f389, %f452, %f452;
+ fma.rn.f32 %f390, %f451, %f451, %f389;
+ fma.rn.f32 %f391, %f453, %f453, %f390;
+ sqrt.rn.f32 %f392, %f391;
+ rcp.rn.f32 %f393, %f392;
+ mul.f32 %f394, %f451, %f393;
+ neg.f32 %f395, %f394;
+ mul.f32 %f396, %f452, %f393;
+ neg.f32 %f397, %f396;
+ mul.f32 %f398, %f453, %f393;
+ neg.f32 %f399, %f398;
+ st.global.f32 [normal], %f395;
+ st.global.f32 [normal+4], %f397;
+ st.global.f32 [normal+8], %f399;
+ fma.rn.f32 %f400, %f185, %f434, %f183;
+ fma.rn.f32 %f401, %f186, %f436, %f184;
+ fma.rn.f32 %f402, %f1, 0f41200000, %f400;
+ st.global.v2.f32 [texCoords], {%f402, %f401};
+ mov.u32 %r28, 0;
+ // inline asm
+ call (%r27), _rt_report_intersection, (%r28);
+ // inline asm
+
+BB0_32:
+ ret;
+}
+
+ // .globl _Z4bboxiPN5optix4AabbE
+.visible .entry _Z4bboxiPN5optix4AabbE(
+ .param .u32 _Z4bboxiPN5optix4AabbE_param_0,
+ .param .u64 _Z4bboxiPN5optix4AabbE_param_1
+)
+{
+ .reg .f32 %f<7>;
+ .reg .b64 %rd<3>;
+
+
+ ld.param.u64 %rd1, [_Z4bboxiPN5optix4AabbE_param_1];
+ cvta.to.global.u64 %rd2, %rd1;
+ ld.global.f32 %f1, [heightmapMin];
+ ld.global.f32 %f2, [heightmapMin+4];
+ ld.global.f32 %f3, [heightmapMin+8];
+ st.global.f32 [%rd2+8], %f3;
+ st.global.f32 [%rd2+4], %f2;
+ st.global.f32 [%rd2], %f1;
+ ld.global.f32 %f4, [heightmapMax];
+ ld.global.f32 %f5, [heightmapMax+4];
+ ld.global.f32 %f6, [heightmapMax+8];
+ st.global.f32 [%rd2+20], %f6;
+ st.global.f32 [%rd2+16], %f5;
+ st.global.f32 [%rd2+12], %f4;
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTex.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTex.ptx.meta
new file mode 100644
index 00000000..5d623f45
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTex.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2024b1f0802e2384caf3d3dcaffe1e9e
+timeCreated: 1547673362
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTexLODSelect.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTexLODSelect.ptx
new file mode 100644
index 00000000..5f161955
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTexLODSelect.ptx
@@ -0,0 +1,680 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z9intersecti
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 4 .b8 ray[36];
+.global .align 4 .u32 heightmap;
+.global .align 4 .f32 heightmapMaxMip;
+.global .align 4 .b8 heightmapMin[12];
+.global .align 4 .b8 heightmapMax[12];
+.global .align 4 .f32 heightmapLMID;
+.global .align 16 .b8 heightmapOffsetScaleUV[16];
+.global .align 8 .b8 texCoords[8];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9heightmapE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo15heightmapMaxMipE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12heightmapMinE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12heightmapMaxE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13heightmapLMIDE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo22heightmapOffsetScaleUVE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename9heightmapE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename15heightmapMaxMipE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12heightmapMinE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12heightmapMaxE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename13heightmapLMIDE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename22heightmapOffsetScaleUVE[7] = {102, 108, 111, 97, 116, 52, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9heightmapE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum15heightmapMaxMipE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12heightmapMinE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12heightmapMaxE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13heightmapLMIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum22heightmapOffsetScaleUVE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic9heightmapE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic15heightmapMaxMipE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12heightmapMinE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12heightmapMaxE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13heightmapLMIDE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic22heightmapOffsetScaleUVE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9heightmapE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation15heightmapMaxMipE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12heightmapMinE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12heightmapMaxE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13heightmapLMIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation22heightmapOffsetScaleUVE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+
+.visible .entry _Z9intersecti(
+ .param .u32 _Z9intersecti_param_0
+)
+{
+ .reg .pred %p<57>;
+ .reg .b16 %rs<9>;
+ .reg .f32 %f<457>;
+ .reg .b32 %r<36>;
+
+
+ ld.global.f32 %f4, [heightmapMin+8];
+ ld.global.f32 %f3, [heightmapMin+4];
+ ld.global.f32 %f2, [heightmapMin];
+ ld.global.f32 %f1, [heightmapLMID];
+ ld.global.f32 %f143, [heightmapMax+8];
+ ld.global.f32 %f144, [heightmapMax+4];
+ ld.global.f32 %f145, [heightmapMax];
+ add.f32 %f146, %f2, %f145;
+ add.f32 %f147, %f3, %f144;
+ add.f32 %f148, %f4, %f143;
+ mul.f32 %f149, %f146, 0f3F000000;
+ mul.f32 %f150, %f147, 0f3F000000;
+ mul.f32 %f151, %f148, 0f3F000000;
+ sub.f32 %f5, %f145, %f2;
+ sub.f32 %f6, %f144, %f3;
+ sub.f32 %f7, %f143, %f4;
+ mul.f32 %f152, %f5, 0f3F000000;
+ mul.f32 %f153, %f6, 0f3F000000;
+ mul.f32 %f154, %f7, 0f3F000000;
+ ld.global.f32 %f8, [ray+12];
+ rcp.rn.f32 %f155, %f8;
+ ld.global.f32 %f9, [ray+16];
+ rcp.rn.f32 %f156, %f9;
+ ld.global.f32 %f10, [ray+20];
+ rcp.rn.f32 %f157, %f10;
+ ld.global.f32 %f11, [ray];
+ sub.f32 %f158, %f11, %f149;
+ ld.global.f32 %f12, [ray+4];
+ sub.f32 %f159, %f12, %f150;
+ ld.global.f32 %f13, [ray+8];
+ sub.f32 %f160, %f13, %f151;
+ mul.f32 %f161, %f155, %f158;
+ mul.f32 %f162, %f156, %f159;
+ mul.f32 %f163, %f157, %f160;
+ abs.f32 %f164, %f155;
+ abs.f32 %f165, %f156;
+ abs.f32 %f166, %f157;
+ mul.f32 %f167, %f152, %f164;
+ mul.f32 %f168, %f153, %f165;
+ mul.f32 %f169, %f154, %f166;
+ neg.f32 %f170, %f161;
+ neg.f32 %f171, %f162;
+ neg.f32 %f172, %f163;
+ sub.f32 %f173, %f170, %f167;
+ sub.f32 %f174, %f171, %f168;
+ sub.f32 %f175, %f172, %f169;
+ sub.f32 %f176, %f167, %f161;
+ sub.f32 %f177, %f168, %f162;
+ sub.f32 %f178, %f169, %f163;
+ max.f32 %f179, %f173, %f174;
+ max.f32 %f14, %f179, %f175;
+ min.f32 %f180, %f176, %f177;
+ min.f32 %f181, %f180, %f178;
+ setp.gt.f32 %p4, %f14, %f181;
+ setp.lt.f32 %p5, %f181, 0f00000000;
+ or.pred %p6, %p4, %p5;
+ @%p6 bra BB0_32;
+
+ ld.global.v4.f32 {%f182, %f183, %f184, %f185}, [heightmapOffsetScaleUV];
+ add.f32 %f186, %f14, 0f3C23D70A;
+ setp.lt.f32 %p7, %f186, 0f00000000;
+ selp.f32 %f18, 0f00000000, %f186, %p7;
+ fma.rn.f32 %f187, %f18, %f8, %f11;
+ fma.rn.f32 %f188, %f18, %f9, %f12;
+ fma.rn.f32 %f189, %f18, %f10, %f13;
+ sub.f32 %f190, %f187, %f2;
+ sub.f32 %f19, %f188, %f3;
+ sub.f32 %f191, %f189, %f4;
+ div.rn.f32 %f437, %f190, %f5;
+ div.rn.f32 %f439, %f191, %f7;
+ abs.f32 %f192, %f19;
+ sub.f32 %f22, %f12, %f3;
+ setp.geu.f32 %p8, %f192, 0f38D1B717;
+ @%p8 bra BB0_3;
+
+ abs.f32 %f193, %f22;
+ setp.gt.f32 %p9, %f193, 0f38D1B717;
+ @%p9 bra BB0_30;
+ bra.uni BB0_3;
+
+BB0_30:
+ // inline asm
+ call (%r29), _rt_potential_intersection, (%f18);
+ // inline asm
+ setp.eq.s32 %p55, %r29, 0;
+ @%p55 bra BB0_32;
+
+ mov.u32 %r31, 0;
+ st.global.u32 [normal+8], %r31;
+ mov.u32 %r32, 1065353216;
+ st.global.u32 [normal+4], %r32;
+ st.global.u32 [normal], %r31;
+ fma.rn.f32 %f405, %f184, %f437, %f182;
+ mul.f32 %f406, %f184, %f185;
+ mul.f32 %f407, %f5, %f7;
+ div.rn.f32 %f408, %f407, %f406;
+ fma.rn.f32 %f409, %f1, 0f41200000, %f405;
+ st.global.v2.f32 [texCoords], {%f409, %f408};
+ // inline asm
+ call (%r30), _rt_report_intersection, (%r31);
+ // inline asm
+ bra.uni BB0_32;
+
+BB0_3:
+ sub.f32 %f195, %f11, %f2;
+ div.rn.f32 %f23, %f195, %f5;
+ div.rn.f32 %f24, %f22, %f6;
+ sub.f32 %f196, %f13, %f4;
+ div.rn.f32 %f25, %f196, %f7;
+ add.f32 %f197, %f437, %f437;
+ cvt.rmi.f32.f32 %f198, %f197;
+ mul.f32 %f440, %f198, 0f3F000000;
+ add.f32 %f199, %f439, %f439;
+ cvt.rmi.f32.f32 %f200, %f199;
+ mul.f32 %f441, %f200, 0f3F000000;
+ div.rn.f32 %f201, %f8, %f5;
+ div.rn.f32 %f202, %f9, %f6;
+ mul.f32 %f203, %f202, %f202;
+ fma.rn.f32 %f204, %f201, %f201, %f203;
+ div.rn.f32 %f205, %f10, %f7;
+ fma.rn.f32 %f206, %f205, %f205, %f204;
+ sqrt.rn.f32 %f207, %f206;
+ rcp.rn.f32 %f208, %f207;
+ mul.f32 %f28, %f201, %f208;
+ mul.f32 %f29, %f202, %f208;
+ mul.f32 %f30, %f205, %f208;
+ setp.gt.f32 %p10, %f28, 0f00000000;
+ mov.f32 %f455, 0f3F800000;
+ mov.f32 %f410, %f455;
+ @%p10 bra BB0_5;
+
+ setp.eq.f32 %p11, %f28, 0f00000000;
+ selp.f32 %f410, 0f00000000, 0fBF800000, %p11;
+
+BB0_5:
+ setp.gt.f32 %p12, %f30, 0f00000000;
+ mov.f32 %f411, %f455;
+ @%p12 bra BB0_7;
+
+ setp.eq.f32 %p13, %f30, 0f00000000;
+ selp.f32 %f411, 0f00000000, 0fBF800000, %p13;
+
+BB0_7:
+ ld.global.f32 %f443, [heightmapMaxMip];
+ abs.f32 %f215, %f30;
+ mov.f32 %f216, 0f38D1B717;
+ max.f32 %f36, %f215, %f216;
+ add.f32 %f217, %f440, 0f3F000000;
+ setp.lt.f32 %p14, %f410, 0f00000000;
+ selp.f32 %f218, %f440, %f217, %p14;
+ sub.f32 %f219, %f218, %f437;
+ abs.f32 %f220, %f219;
+ abs.f32 %f221, %f28;
+ max.f32 %f37, %f221, %f216;
+ div.rn.f32 %f445, %f220, %f37;
+ add.f32 %f222, %f441, 0f3F000000;
+ setp.lt.f32 %p15, %f411, 0f00000000;
+ selp.f32 %f223, %f441, %f222, %p15;
+ sub.f32 %f224, %f223, %f439;
+ abs.f32 %f225, %f224;
+ div.rn.f32 %f446, %f225, %f36;
+ rcp.rn.f32 %f226, %f28;
+ abs.f32 %f227, %f226;
+ mul.f32 %f447, %f227, 0f3F000000;
+ rcp.rn.f32 %f228, %f30;
+ abs.f32 %f229, %f228;
+ mul.f32 %f448, %f229, 0f3F000000;
+ mul.f32 %f449, %f410, 0f3F000000;
+ mul.f32 %f450, %f411, 0f3F000000;
+ rcp.rn.f32 %f44, %f29;
+ div.rn.f32 %f438, %f19, %f6;
+ mov.f32 %f456, 0f00000000;
+ mov.f32 %f442, 0f3F000000;
+ mov.f32 %f444, 0f40000000;
+ mov.u32 %r33, 0;
+ mov.u32 %r35, %r33;
+ mov.f32 %f454, %f456;
+
+BB0_8:
+ ld.global.u32 %r3, [heightmap];
+ setp.eq.f32 %p16, %f443, 0f00000000;
+ @%p16 bra BB0_12;
+ bra.uni BB0_9;
+
+BB0_12:
+ mov.u32 %r22, 2;
+ mov.u32 %r23, 0;
+ mov.f32 %f272, 0f00000000;
+ // inline asm
+ call (%f241, %f242, %f243, %f244), _rt_texture_get_level_id, (%r3, %r22, %f440, %f441, %f272, %r23, %f272);
+ // inline asm
+ ld.global.u32 %r15, [heightmap];
+ add.f32 %f261, %f440, %f442;
+ // inline asm
+ call (%f249, %f250, %f251, %f252), _rt_texture_get_level_id, (%r15, %r22, %f261, %f441, %f272, %r23, %f272);
+ // inline asm
+ ld.global.u32 %r18, [heightmap];
+ add.f32 %f270, %f441, %f442;
+ // inline asm
+ call (%f257, %f258, %f259, %f260), _rt_texture_get_level_id, (%r18, %r22, %f261, %f270, %f272, %r23, %f272);
+ // inline asm
+ ld.global.u32 %r21, [heightmap];
+ // inline asm
+ call (%f265, %f266, %f267, %f268), _rt_texture_get_level_id, (%r21, %r22, %f440, %f270, %f272, %r23, %f272);
+ // inline asm
+ sub.f32 %f273, %f261, %f440;
+ sub.f32 %f274, %f257, %f241;
+ sub.f32 %f275, %f270, %f441;
+ sub.f32 %f276, %f241, %f265;
+ sub.f32 %f277, %f441, %f270;
+ mul.f32 %f278, %f275, %f276;
+ mul.f32 %f279, %f277, %f274;
+ sub.f32 %f454, %f278, %f279;
+ mul.f32 %f71, %f277, %f273;
+ sub.f32 %f280, %f440, %f440;
+ mul.f32 %f281, %f280, %f275;
+ sub.f32 %f455, %f71, %f281;
+ mul.f32 %f282, %f280, %f274;
+ mul.f32 %f283, %f273, %f276;
+ sub.f32 %f456, %f282, %f283;
+ mul.f32 %f284, %f28, %f454;
+ fma.rn.f32 %f285, %f29, %f455, %f284;
+ fma.rn.f32 %f286, %f30, %f456, %f285;
+ rcp.rn.f32 %f287, %f286;
+ sub.f32 %f74, %f241, %f24;
+ sub.f32 %f288, %f440, %f23;
+ mul.f32 %f289, %f288, %f287;
+ mul.f32 %f290, %f74, %f287;
+ sub.f32 %f291, %f441, %f25;
+ mul.f32 %f292, %f291, %f287;
+ mul.f32 %f293, %f29, %f292;
+ mul.f32 %f294, %f30, %f290;
+ sub.f32 %f295, %f293, %f294;
+ mul.f32 %f296, %f30, %f289;
+ mul.f32 %f297, %f28, %f292;
+ sub.f32 %f298, %f296, %f297;
+ mul.f32 %f299, %f28, %f290;
+ mul.f32 %f300, %f29, %f289;
+ sub.f32 %f301, %f299, %f300;
+ mul.f32 %f302, %f276, %f298;
+ fma.rn.f32 %f303, %f280, %f295, %f302;
+ fma.rn.f32 %f304, %f277, %f301, %f303;
+ mul.f32 %f305, %f274, %f298;
+ fma.rn.f32 %f306, %f273, %f295, %f305;
+ fma.rn.f32 %f307, %f275, %f301, %f306;
+ mul.f32 %f308, %f289, %f454;
+ fma.rn.f32 %f309, %f455, %f290, %f308;
+ fma.rn.f32 %f75, %f292, %f456, %f309;
+ setp.gt.f32 %p22, %f75, 0f3456BF95;
+ setp.ge.f32 %p23, %f304, 0f00000000;
+ and.pred %p24, %p22, %p23;
+ setp.ge.f32 %p25, %f307, 0f00000000;
+ and.pred %p26, %p24, %p25;
+ add.f32 %f310, %f304, %f307;
+ setp.le.f32 %p27, %f310, 0f3F800000;
+ and.pred %p28, %p26, %p27;
+ @%p28 bra BB0_26;
+
+ sub.f32 %f311, %f249, %f241;
+ sub.f32 %f313, %f440, %f261;
+ sub.f32 %f314, %f241, %f257;
+ sub.f32 %f315, %f441, %f441;
+ mul.f32 %f316, %f315, %f314;
+ mul.f32 %f319, %f277, %f311;
+ sub.f32 %f454, %f316, %f319;
+ mul.f32 %f320, %f315, %f313;
+ sub.f32 %f455, %f71, %f320;
+ mul.f32 %f321, %f313, %f311;
+ mul.f32 %f323, %f273, %f314;
+ sub.f32 %f456, %f321, %f323;
+ mul.f32 %f324, %f28, %f454;
+ fma.rn.f32 %f325, %f29, %f455, %f324;
+ fma.rn.f32 %f326, %f30, %f456, %f325;
+ rcp.rn.f32 %f327, %f326;
+ mul.f32 %f329, %f288, %f327;
+ mul.f32 %f330, %f74, %f327;
+ mul.f32 %f332, %f291, %f327;
+ mul.f32 %f333, %f29, %f332;
+ mul.f32 %f334, %f30, %f330;
+ sub.f32 %f335, %f333, %f334;
+ mul.f32 %f336, %f30, %f329;
+ mul.f32 %f337, %f28, %f332;
+ sub.f32 %f338, %f336, %f337;
+ mul.f32 %f339, %f28, %f330;
+ mul.f32 %f340, %f29, %f329;
+ sub.f32 %f341, %f339, %f340;
+ mul.f32 %f342, %f314, %f338;
+ fma.rn.f32 %f343, %f313, %f335, %f342;
+ fma.rn.f32 %f344, %f277, %f341, %f343;
+ mul.f32 %f345, %f311, %f338;
+ fma.rn.f32 %f346, %f273, %f335, %f345;
+ fma.rn.f32 %f347, %f315, %f341, %f346;
+ mul.f32 %f348, %f455, %f330;
+ fma.rn.f32 %f349, %f454, %f329, %f348;
+ fma.rn.f32 %f79, %f456, %f332, %f349;
+ setp.gt.f32 %p29, %f79, 0f3456BF95;
+ setp.ge.f32 %p30, %f344, 0f00000000;
+ and.pred %p31, %p29, %p30;
+ setp.ge.f32 %p32, %f347, 0f00000000;
+ and.pred %p33, %p31, %p32;
+ add.f32 %f350, %f344, %f347;
+ setp.le.f32 %p34, %f350, 0f3F800000;
+ and.pred %p35, %p33, %p34;
+ selp.u16 %rs7, 1, 0, %p35;
+ @%p35 bra BB0_25;
+ bra.uni BB0_14;
+
+BB0_9:
+ setp.lt.f32 %p17, %f29, 0f00000000;
+ mov.u32 %r10, 2;
+ mov.f32 %f236, 0f00000000;
+ mov.u32 %r11, 0;
+ // inline asm
+ call (%f230, %f231, %f232, %f233), _rt_texture_get_level_id, (%r3, %r10, %f440, %f441, %f236, %r11, %f443);
+ // inline asm
+ setp.gt.f32 %p56, %f230, %f438;
+ setp.leu.f32 %p18, %f230, %f438;
+ and.pred %p19, %p17, %p18;
+ @!%p19 bra BB0_11;
+ bra.uni BB0_10;
+
+BB0_10:
+ sub.f32 %f238, %f438, %f230;
+ mul.f32 %f239, %f44, %f238;
+ neg.f32 %f240, %f239;
+ setp.gt.f32 %p20, %f445, %f240;
+ setp.gt.f32 %p21, %f446, %f240;
+ and.pred %p56, %p20, %p21;
+
+BB0_11:
+ selp.u16 %rs7, 1, 0, %p56;
+
+BB0_14:
+ setp.eq.s16 %p36, %rs7, 0;
+ @%p36 bra BB0_16;
+ bra.uni BB0_15;
+
+BB0_16:
+ setp.eq.s32 %p39, %r35, 4;
+ @%p39 bra BB0_22;
+ bra.uni BB0_17;
+
+BB0_22:
+ add.f32 %f443, %f443, 0f3F800000;
+ mul.f32 %f444, %f444, 0f3F000000;
+ mul.f32 %f363, %f437, %f444;
+ cvt.rmi.f32.f32 %f364, %f363;
+ div.rn.f32 %f440, %f364, %f444;
+ mul.f32 %f365, %f439, %f444;
+ cvt.rmi.f32.f32 %f366, %f365;
+ div.rn.f32 %f441, %f366, %f444;
+ add.f32 %f442, %f442, %f442;
+ add.f32 %f367, %f442, %f440;
+ selp.f32 %f368, %f440, %f367, %p14;
+ sub.f32 %f369, %f368, %f437;
+ abs.f32 %f370, %f369;
+ div.rn.f32 %f445, %f370, %f37;
+ add.f32 %f371, %f442, %f441;
+ selp.f32 %f372, %f441, %f371, %p15;
+ sub.f32 %f373, %f372, %f439;
+ abs.f32 %f374, %f373;
+ div.rn.f32 %f446, %f374, %f36;
+ add.f32 %f447, %f447, %f447;
+ add.f32 %f448, %f448, %f448;
+ add.f32 %f449, %f449, %f449;
+ add.f32 %f450, %f450, %f450;
+ bra.uni BB0_23;
+
+BB0_15:
+ add.f32 %f443, %f443, 0fBF800000;
+ add.f32 %f444, %f444, %f444;
+ mul.f32 %f351, %f437, %f444;
+ cvt.rmi.f32.f32 %f352, %f351;
+ div.rn.f32 %f440, %f352, %f444;
+ mul.f32 %f353, %f439, %f444;
+ cvt.rmi.f32.f32 %f354, %f353;
+ div.rn.f32 %f441, %f354, %f444;
+ mul.f32 %f442, %f442, 0f3F000000;
+ add.f32 %f355, %f442, %f440;
+ selp.f32 %f356, %f440, %f355, %p14;
+ sub.f32 %f357, %f356, %f437;
+ abs.f32 %f358, %f357;
+ div.rn.f32 %f445, %f358, %f37;
+ add.f32 %f359, %f442, %f441;
+ selp.f32 %f360, %f441, %f359, %p15;
+ sub.f32 %f361, %f360, %f439;
+ abs.f32 %f362, %f361;
+ div.rn.f32 %f446, %f362, %f36;
+ mul.f32 %f447, %f447, 0f3F000000;
+ mul.f32 %f448, %f448, 0f3F000000;
+ mul.f32 %f449, %f449, 0f3F000000;
+ mul.f32 %f450, %f450, 0f3F000000;
+
+BB0_23:
+ mov.u32 %r35, 0;
+ bra.uni BB0_24;
+
+BB0_17:
+ setp.lt.f32 %p40, %f445, %f446;
+ @%p40 bra BB0_19;
+ bra.uni BB0_18;
+
+BB0_19:
+ sub.f32 %f436, %f446, %f445;
+ add.f32 %f440, %f440, %f449;
+ mov.f32 %f446, %f445;
+ mov.f32 %f445, %f447;
+ bra.uni BB0_20;
+
+BB0_18:
+ sub.f32 %f445, %f445, %f446;
+ add.f32 %f441, %f441, %f450;
+ mov.f32 %f436, %f448;
+
+BB0_20:
+ fma.rn.f32 %f439, %f30, %f446, %f439;
+ fma.rn.f32 %f438, %f29, %f446, %f438;
+ fma.rn.f32 %f437, %f28, %f446, %f437;
+ setp.ge.f32 %p41, %f437, 0f00000000;
+ setp.ge.f32 %p42, %f439, 0f00000000;
+ and.pred %p43, %p41, %p42;
+ setp.lt.f32 %p44, %f437, 0f3F800000;
+ and.pred %p45, %p43, %p44;
+ setp.lt.f32 %p46, %f439, 0f3F800000;
+ and.pred %p47, %p45, %p46;
+ setp.lt.f32 %p48, %f438, 0f3F800000;
+ and.pred %p49, %p47, %p48;
+ mov.u16 %rs8, 0;
+ @!%p49 bra BB0_27;
+ bra.uni BB0_21;
+
+BB0_21:
+ add.s32 %r35, %r35, 1;
+ mov.f32 %f446, %f436;
+
+BB0_24:
+ add.s32 %r33, %r33, 1;
+ setp.lt.s32 %p52, %r33, 512;
+ mov.u16 %rs8, %rs7;
+ @%p52 bra BB0_8;
+ bra.uni BB0_27;
+
+BB0_26:
+ fma.rn.f32 %f437, %f28, %f75, %f23;
+ fma.rn.f32 %f438, %f29, %f75, %f24;
+ fma.rn.f32 %f439, %f30, %f75, %f25;
+ mov.u16 %rs8, 1;
+ bra.uni BB0_27;
+
+BB0_25:
+ fma.rn.f32 %f437, %f28, %f79, %f23;
+ fma.rn.f32 %f438, %f29, %f79, %f24;
+ fma.rn.f32 %f439, %f30, %f79, %f25;
+ mov.u16 %rs8, %rs7;
+
+BB0_27:
+ setp.eq.s16 %p53, %rs8, 0;
+ @%p53 bra BB0_32;
+
+ fma.rn.f32 %f376, %f5, %f437, %f2;
+ fma.rn.f32 %f377, %f6, %f438, %f3;
+ fma.rn.f32 %f378, %f7, %f439, %f4;
+ ld.global.f32 %f379, [ray];
+ sub.f32 %f380, %f376, %f379;
+ ld.global.f32 %f381, [ray+4];
+ sub.f32 %f382, %f377, %f381;
+ ld.global.f32 %f383, [ray+8];
+ sub.f32 %f384, %f378, %f383;
+ mul.f32 %f385, %f382, %f382;
+ fma.rn.f32 %f386, %f380, %f380, %f385;
+ fma.rn.f32 %f387, %f384, %f384, %f386;
+ sqrt.rn.f32 %f375, %f387;
+ // inline asm
+ call (%r26), _rt_potential_intersection, (%f375);
+ // inline asm
+ setp.eq.s32 %p54, %r26, 0;
+ @%p54 bra BB0_32;
+
+ mul.f32 %f388, %f455, %f455;
+ fma.rn.f32 %f389, %f454, %f454, %f388;
+ fma.rn.f32 %f390, %f456, %f456, %f389;
+ sqrt.rn.f32 %f391, %f390;
+ rcp.rn.f32 %f392, %f391;
+ mul.f32 %f393, %f454, %f392;
+ neg.f32 %f394, %f393;
+ mul.f32 %f395, %f455, %f392;
+ neg.f32 %f396, %f395;
+ mul.f32 %f397, %f456, %f392;
+ neg.f32 %f398, %f397;
+ st.global.f32 [normal], %f394;
+ st.global.f32 [normal+4], %f396;
+ st.global.f32 [normal+8], %f398;
+ fma.rn.f32 %f399, %f184, %f437, %f182;
+ mul.f32 %f400, %f184, %f185;
+ mul.f32 %f401, %f5, %f7;
+ div.rn.f32 %f402, %f401, %f400;
+ fma.rn.f32 %f403, %f1, 0f41200000, %f399;
+ st.global.v2.f32 [texCoords], {%f403, %f402};
+ mov.u32 %r28, 0;
+ // inline asm
+ call (%r27), _rt_report_intersection, (%r28);
+ // inline asm
+
+BB0_32:
+ ret;
+}
+
+ // .globl _Z4bboxiPN5optix4AabbE
+.visible .entry _Z4bboxiPN5optix4AabbE(
+ .param .u32 _Z4bboxiPN5optix4AabbE_param_0,
+ .param .u64 _Z4bboxiPN5optix4AabbE_param_1
+)
+{
+ .reg .f32 %f<7>;
+ .reg .b64 %rd<3>;
+
+
+ ld.param.u64 %rd1, [_Z4bboxiPN5optix4AabbE_param_1];
+ cvta.to.global.u64 %rd2, %rd1;
+ ld.global.f32 %f1, [heightmapMin];
+ ld.global.f32 %f2, [heightmapMin+4];
+ ld.global.f32 %f3, [heightmapMin+8];
+ st.global.f32 [%rd2+8], %f3;
+ st.global.f32 [%rd2+4], %f2;
+ st.global.f32 [%rd2], %f1;
+ ld.global.f32 %f4, [heightmapMax];
+ ld.global.f32 %f5, [heightmapMax+4];
+ ld.global.f32 %f6, [heightmapMax+8];
+ st.global.f32 [%rd2+20], %f6;
+ st.global.f32 [%rd2+16], %f5;
+ st.global.f32 [%rd2+12], %f4;
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTexLODSelect.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTexLODSelect.ptx.meta
new file mode 100644
index 00000000..1b771b02
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/heightfieldTexLODSelect.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 02597b306d2cfe245a15db3be39db306
+timeCreated: 1547895167
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata.meta
new file mode 100644
index 00000000..fe37e35f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: cb1eddb1404d3b742b181ab3e8376411
+folderAsset: yes
+timeCreated: 1622807248
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphabuffer.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphabuffer.bin
new file mode 100644
index 00000000..09f370e3
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphabuffer.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphabuffer.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphabuffer.bin.meta
new file mode 100644
index 00000000..09d929ac
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphabuffer.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 22487ee623b389d4f85e3e004ac2fe36
+timeCreated: 1605466142
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphaid2.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphaid2.bin
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphaid2.bin
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphaid2.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphaid2.bin.meta
new file mode 100644
index 00000000..6b4217d1
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/alphaid2.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3a962ff54f74d3e45b79d78f28b109a5
+timeCreated: 1605466142
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/direct0.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/direct0.bin
new file mode 100644
index 00000000..b58065fa
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/direct0.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/direct0.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/direct0.bin.meta
new file mode 100644
index 00000000..a0d044d3
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/direct0.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 21dabbc47964a9b4bae253f3874e74e6
+timeCreated: 1605466788
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/heightmaps.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/heightmaps.bin
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/heightmaps.bin
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/heightmaps.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/heightmaps.bin.meta
new file mode 100644
index 00000000..757f0cf2
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/heightmaps.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9f260cd8a9ee8d34a9234bee3aa4447b
+timeCreated: 1605466142
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/ib32.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/ib32.bin
new file mode 100644
index 00000000..10ba4af4
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/ib32.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/ib32.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/ib32.bin.meta
new file mode 100644
index 00000000..e72741ce
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/ib32.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5065c0b262788774ea10c5b5d2904cec
+timeCreated: 1605466142
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/image.lz4 b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/image.lz4
new file mode 100644
index 00000000..01a975d9
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/image.lz4
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/image.lz4.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/image.lz4.meta
new file mode 100644
index 00000000..238b3304
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/image.lz4.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 26a3ce6370d056a43b72a3f344be3740
+timeCreated: 1605467957
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/light_HDR.lz4 b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/light_HDR.lz4
new file mode 100644
index 00000000..e4ccf34c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/light_HDR.lz4
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/light_HDR.lz4.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/light_HDR.lz4.meta
new file mode 100644
index 00000000..34561a4e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/light_HDR.lz4.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 2f71d4dc456c9df40ba738e0cdcda938
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmid.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmid.bin
new file mode 100644
index 00000000..593f4708
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmid.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmid.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmid.bin.meta
new file mode 100644
index 00000000..9868a073
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmid.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9152f295c04090a438f0a966d51aaa60
+timeCreated: 1605466142
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmlod.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmlod.bin
new file mode 100644
index 00000000..7bde8641
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmlod.bin
@@ -0,0 +1 @@
+ÿÿÿÿ \ No newline at end of file
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmlod.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmlod.bin.meta
new file mode 100644
index 00000000..5463cc13
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lmlod.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b22bdfb52a9712f4fb8e5df1fd4a944d
+timeCreated: 1605466142
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lms.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lms.bin
new file mode 100644
index 00000000..257dc521
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lms.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lms.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lms.bin.meta
new file mode 100644
index 00000000..894d229b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/lms.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f76c542b04c1e02449397dfc33039315
+timeCreated: 1605466142
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/settings.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/settings.bin
new file mode 100644
index 00000000..ac710e10
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/settings.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/settings.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/settings.bin.meta
new file mode 100644
index 00000000..75db4e41
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/settings.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: eefc1a7b7e7e4554fb7f94e7c2518e81
+timeCreated: 1605466142
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvnormal_tinyscene_LM0.lz4 b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvnormal_tinyscene_LM0.lz4
new file mode 100644
index 00000000..0cb19d39
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvnormal_tinyscene_LM0.lz4
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvnormal_tinyscene_LM0.lz4.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvnormal_tinyscene_LM0.lz4.meta
new file mode 100644
index 00000000..e6e1bc62
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvnormal_tinyscene_LM0.lz4.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 94b7eefd3a67057419a4fcda14c6c725
+timeCreated: 1605466142
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvpos_tinyscene_LM0.lz4 b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvpos_tinyscene_LM0.lz4
new file mode 100644
index 00000000..bcf7da77
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvpos_tinyscene_LM0.lz4
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvpos_tinyscene_LM0.lz4.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvpos_tinyscene_LM0.lz4.meta
new file mode 100644
index 00000000..9a29eef6
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/uvpos_tinyscene_LM0.lz4.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b16a7caeaf3f06547a1bff9a9c998b48
+timeCreated: 1605466142
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtrace.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtrace.bin
new file mode 100644
index 00000000..b91df98c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtrace.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtrace.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtrace.bin.meta
new file mode 100644
index 00000000..2df81871
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtrace.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a9525b3a943077849bfc50b4f26b887a
+timeCreated: 1605466142
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtraceUV0.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtraceUV0.bin
new file mode 100644
index 00000000..2d529b8c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtraceUV0.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtraceUV0.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtraceUV0.bin.meta
new file mode 100644
index 00000000..413d026f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/hwtestdata/vbtraceUV0.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9bf1a6130f5bd7d4d8323100b5bf88f6
+timeCreated: 1605466171
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/icon.png b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/icon.png
new file mode 100644
index 00000000..8ff72da9
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/icon.png
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/icon.png.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/icon.png.meta
new file mode 100644
index 00000000..1813dee5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/icon.png.meta
@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: 9f3214aa72e84444bafd15f7a4c74fd5
+timeCreated: 1548277603
+licenseType: Store
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 4
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ platformSettings:
+ - buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ies2tex.exe b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ies2tex.exe
new file mode 100644
index 00000000..4f77c51b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ies2tex.exe
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ies2tex.exe.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ies2tex.exe.meta
new file mode 100644
index 00000000..c1108ed7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/ies2tex.exe.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6621917730988734a8310aa09d12c50b
+timeCreated: 1526330848
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_arealight.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_arealight.ptx
new file mode 100644
index 00000000..22684e7a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_arealight.ptx
@@ -0,0 +1,329 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 8 .b8 texCoords[8];
+.global .align 4 .b8 payload[4];
+.global .align 4 .b8 ray[36];
+.global .align 4 .f32 t;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .u32 lightLMID;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7payloadE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo1tE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9lightLMIDE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename7payloadE[8] = {82, 97, 121, 68, 97, 116, 97, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename1tE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename9lightLMIDE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7payloadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum1tE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9lightLMIDE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic7payloadE[10] = {114, 116, 80, 97, 121, 108, 111, 97, 100, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic1tE[23] = {114, 116, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 68, 105, 115, 116, 97, 110, 99, 101, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9lightLMIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7payloadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation1tE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9lightLMIDE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<23>;
+ .reg .f32 %f<125>;
+ .reg .b32 %r<16>;
+
+
+ ld.global.f32 %f19, [texCoords];
+ div.rn.f32 %f1, %f19, 0f41200000;
+ abs.f32 %f20, %f1;
+ mov.b32 %r1, %f1;
+ and.b32 %r2, %r1, -2147483648;
+ or.b32 %r3, %r2, 1056964608;
+ mov.b32 %f21, %r3;
+ add.f32 %f22, %f1, %f21;
+ cvt.rzi.f32.f32 %f23, %f22;
+ setp.gt.f32 %p2, %f20, 0f4B000000;
+ selp.f32 %f121, %f1, %f23, %p2;
+ setp.geu.f32 %p3, %f20, 0f3F000000;
+ @%p3 bra BB0_2;
+
+ cvt.rzi.f32.f32 %f121, %f1;
+
+BB0_2:
+ ld.global.f32 %f24, [ray+12];
+ ld.global.f32 %f25, [normal];
+ ld.global.f32 %f26, [ray+16];
+ ld.global.f32 %f27, [normal+4];
+ mul.f32 %f28, %f27, %f26;
+ fma.rn.f32 %f29, %f25, %f24, %f28;
+ ld.global.f32 %f30, [ray+20];
+ ld.global.f32 %f31, [normal+8];
+ fma.rn.f32 %f32, %f31, %f30, %f29;
+ mov.u32 %r4, -1082130432;
+ st.global.u32 [payload], %r4;
+ setp.leu.f32 %p4, %f32, 0f00000000;
+ ld.global.u32 %r5, [lightLMID];
+ cvt.rzi.s32.f32 %r6, %f121;
+ setp.eq.s32 %p5, %r6, %r5;
+ and.pred %p6, %p4, %p5;
+ @!%p6 bra BB0_15;
+ bra.uni BB0_3;
+
+BB0_3:
+ ld.global.f32 %f35, [t];
+ ld.global.f32 %f36, [lightInvCutoff];
+ mul.f32 %f5, %f35, %f36;
+ mov.f32 %f37, 0f40000000;
+ cvt.rzi.f32.f32 %f38, %f37;
+ add.f32 %f39, %f38, %f38;
+ mov.f32 %f40, 0f40800000;
+ sub.f32 %f41, %f40, %f39;
+ abs.f32 %f6, %f41;
+ abs.f32 %f7, %f5;
+ setp.lt.f32 %p7, %f7, 0f00800000;
+ mul.f32 %f42, %f7, 0f4B800000;
+ selp.f32 %f43, 0fC3170000, 0fC2FE0000, %p7;
+ selp.f32 %f44, %f42, %f7, %p7;
+ mov.b32 %r7, %f44;
+ and.b32 %r8, %r7, 8388607;
+ or.b32 %r9, %r8, 1065353216;
+ mov.b32 %f45, %r9;
+ shr.u32 %r10, %r7, 23;
+ cvt.rn.f32.u32 %f46, %r10;
+ add.f32 %f47, %f43, %f46;
+ setp.gt.f32 %p8, %f45, 0f3FB504F3;
+ mul.f32 %f48, %f45, 0f3F000000;
+ add.f32 %f49, %f47, 0f3F800000;
+ selp.f32 %f50, %f48, %f45, %p8;
+ selp.f32 %f51, %f49, %f47, %p8;
+ add.f32 %f52, %f50, 0fBF800000;
+ add.f32 %f34, %f50, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f33,%f34;
+ // inline asm
+ add.f32 %f53, %f52, %f52;
+ mul.f32 %f54, %f33, %f53;
+ mul.f32 %f55, %f54, %f54;
+ mov.f32 %f56, 0f3C4CAF63;
+ mov.f32 %f57, 0f3B18F0FE;
+ fma.rn.f32 %f58, %f57, %f55, %f56;
+ mov.f32 %f59, 0f3DAAAABD;
+ fma.rn.f32 %f60, %f58, %f55, %f59;
+ mul.rn.f32 %f61, %f60, %f55;
+ mul.rn.f32 %f62, %f61, %f54;
+ sub.f32 %f63, %f52, %f54;
+ neg.f32 %f64, %f54;
+ add.f32 %f65, %f63, %f63;
+ fma.rn.f32 %f66, %f64, %f52, %f65;
+ mul.rn.f32 %f67, %f33, %f66;
+ add.f32 %f68, %f62, %f54;
+ sub.f32 %f69, %f54, %f68;
+ add.f32 %f70, %f62, %f69;
+ add.f32 %f71, %f67, %f70;
+ add.f32 %f72, %f68, %f71;
+ sub.f32 %f73, %f68, %f72;
+ add.f32 %f74, %f71, %f73;
+ mov.f32 %f75, 0f3F317200;
+ mul.rn.f32 %f76, %f51, %f75;
+ mov.f32 %f77, 0f35BFBE8E;
+ mul.rn.f32 %f78, %f51, %f77;
+ add.f32 %f79, %f76, %f72;
+ sub.f32 %f80, %f76, %f79;
+ add.f32 %f81, %f72, %f80;
+ add.f32 %f82, %f74, %f81;
+ add.f32 %f83, %f78, %f82;
+ add.f32 %f84, %f79, %f83;
+ sub.f32 %f85, %f79, %f84;
+ add.f32 %f86, %f83, %f85;
+ mul.rn.f32 %f87, %f40, %f84;
+ neg.f32 %f88, %f87;
+ fma.rn.f32 %f89, %f40, %f84, %f88;
+ fma.rn.f32 %f90, %f40, %f86, %f89;
+ mov.f32 %f91, 0f00000000;
+ fma.rn.f32 %f92, %f91, %f84, %f90;
+ add.rn.f32 %f93, %f87, %f92;
+ neg.f32 %f94, %f93;
+ add.rn.f32 %f95, %f87, %f94;
+ add.rn.f32 %f96, %f95, %f92;
+ mov.b32 %r11, %f93;
+ setp.eq.s32 %p9, %r11, 1118925336;
+ add.s32 %r12, %r11, -1;
+ mov.b32 %f97, %r12;
+ add.f32 %f98, %f96, 0f37000000;
+ selp.f32 %f99, %f97, %f93, %p9;
+ selp.f32 %f8, %f98, %f96, %p9;
+ mul.f32 %f100, %f99, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f101, %f100;
+ mov.f32 %f102, 0fBF317200;
+ fma.rn.f32 %f103, %f101, %f102, %f99;
+ mov.f32 %f104, 0fB5BFBE8E;
+ fma.rn.f32 %f105, %f101, %f104, %f103;
+ mul.f32 %f106, %f105, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f107, %f106;
+ add.f32 %f108, %f101, 0f00000000;
+ ex2.approx.f32 %f109, %f108;
+ mul.f32 %f110, %f107, %f109;
+ setp.lt.f32 %p10, %f99, 0fC2D20000;
+ selp.f32 %f111, 0f00000000, %f110, %p10;
+ setp.gt.f32 %p11, %f99, 0f42D20000;
+ selp.f32 %f122, 0f7F800000, %f111, %p11;
+ setp.eq.f32 %p12, %f122, 0f7F800000;
+ @%p12 bra BB0_5;
+
+ fma.rn.f32 %f122, %f122, %f8, %f122;
+
+BB0_5:
+ setp.lt.f32 %p13, %f5, 0f00000000;
+ setp.eq.f32 %p14, %f6, 0f3F800000;
+ and.pred %p1, %p13, %p14;
+ mov.b32 %r13, %f122;
+ xor.b32 %r14, %r13, -2147483648;
+ mov.b32 %f112, %r14;
+ selp.f32 %f124, %f112, %f122, %p1;
+ setp.eq.f32 %p15, %f5, 0f00000000;
+ @%p15 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f115, %f5, %f5;
+ selp.f32 %f124, %f115, 0f00000000, %p14;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p16, %f5, 0f00000000;
+ @%p16 bra BB0_9;
+
+ cvt.rzi.f32.f32 %f114, %f40;
+ setp.neu.f32 %p17, %f114, 0f40800000;
+ selp.f32 %f124, 0f7FFFFFFF, %f124, %p17;
+
+BB0_9:
+ add.f32 %f116, %f7, 0f40800000;
+ mov.b32 %r15, %f116;
+ setp.lt.s32 %p19, %r15, 2139095040;
+ @%p19 bra BB0_14;
+
+ setp.gtu.f32 %p20, %f7, 0f7F800000;
+ @%p20 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f124, %f5, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ setp.neu.f32 %p21, %f7, 0f7F800000;
+ @%p21 bra BB0_14;
+
+ selp.f32 %f124, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ mov.f32 %f117, 0f3F800000;
+ sub.f32 %f118, %f117, %f124;
+ setp.eq.f32 %p22, %f5, 0f3F800000;
+ selp.f32 %f119, 0f00000000, %f118, %p22;
+ cvt.sat.f32.f32 %f120, %f119;
+ st.global.f32 [payload], %f120;
+
+BB0_15:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_arealight.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_arealight.ptx.meta
new file mode 100644
index 00000000..bbc9507e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_arealight.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e172d523e539132488e0cd7a91342957
+timeCreated: 1527161172
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_backface_check.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_backface_check.ptx
new file mode 100644
index 00000000..b5ea360e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_backface_check.ptx
@@ -0,0 +1,149 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 4 .b8 payload[12];
+.global .align 4 .b8 ray[36];
+.global .align 4 .f32 t;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7payloadE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo1tE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename7payloadE[9] = {82, 97, 121, 68, 97, 116, 97, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename1tE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7payloadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum1tE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic7payloadE[10] = {114, 116, 80, 97, 121, 108, 111, 97, 100, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic1tE[23] = {114, 116, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 68, 105, 115, 116, 97, 110, 99, 101, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7payloadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation1tE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<2>;
+ .reg .f32 %f<15>;
+ .reg .b32 %r<2>;
+
+
+ ld.global.f32 %f1, [normal];
+ ld.global.f32 %f4, [ray+12];
+ ld.global.f32 %f5, [ray+16];
+ ld.global.f32 %f2, [normal+4];
+ mul.f32 %f6, %f2, %f5;
+ fma.rn.f32 %f7, %f1, %f4, %f6;
+ ld.global.f32 %f8, [ray+20];
+ ld.global.f32 %f3, [normal+8];
+ fma.rn.f32 %f9, %f3, %f8, %f7;
+ setp.gt.f32 %p1, %f9, 0f00000000;
+ @%p1 bra BB0_2;
+ bra.uni BB0_1;
+
+BB0_2:
+ ld.global.f32 %f10, [t];
+ add.f32 %f11, %f10, 0f38D1B717;
+ mul.f32 %f12, %f1, %f11;
+ mul.f32 %f13, %f11, %f2;
+ mul.f32 %f14, %f11, %f3;
+ st.global.f32 [payload], %f12;
+ st.global.f32 [payload+4], %f13;
+ st.global.f32 [payload+8], %f14;
+ bra.uni BB0_3;
+
+BB0_1:
+ mov.u32 %r1, 0;
+ st.global.u32 [payload+8], %r1;
+ st.global.u32 [payload+4], %r1;
+ st.global.u32 [payload], %r1;
+
+BB0_3:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_backface_check.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_backface_check.ptx.meta
new file mode 100644
index 00000000..683927b0
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_backface_check.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e65f981759769984da75f419f9ec11ad
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_lodselect.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_lodselect.ptx
new file mode 100644
index 00000000..42742461
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_lodselect.ptx
@@ -0,0 +1,156 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 8 .b8 texCoords[8];
+.global .align 4 .b8 payload[12];
+.global .align 4 .b8 ray[36];
+.global .align 4 .f32 t;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7payloadE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo1tE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename7payloadE[9] = {82, 97, 121, 68, 97, 116, 97, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename1tE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7payloadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum1tE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic7payloadE[10] = {114, 116, 80, 97, 121, 108, 111, 97, 100, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic1tE[23] = {114, 116, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 68, 105, 115, 116, 97, 110, 99, 101, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7payloadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation1tE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<2>;
+ .reg .f32 %f<18>;
+ .reg .b32 %r<3>;
+
+
+ ld.global.f32 %f1, [normal];
+ ld.global.f32 %f2, [ray+12];
+ ld.global.f32 %f3, [ray+16];
+ ld.global.f32 %f4, [normal+4];
+ mul.f32 %f5, %f4, %f3;
+ fma.rn.f32 %f6, %f1, %f2, %f5;
+ ld.global.f32 %f7, [ray+20];
+ ld.global.f32 %f8, [normal+8];
+ fma.rn.f32 %f9, %f8, %f7, %f6;
+ setp.ltu.f32 %p1, %f9, 0f00000000;
+ @%p1 bra BB0_2;
+ bra.uni BB0_1;
+
+BB0_2:
+ ld.global.v2.f32 {%f10, %f11}, [texCoords];
+ ld.global.f32 %f14, [t];
+ mul.f32 %f15, %f14, %f14;
+ mul.f32 %f16, %f15, 0f40C90FDB;
+ div.rn.f32 %f17, %f11, %f16;
+ st.global.f32 [payload], %f10;
+ st.global.f32 [payload+4], %f17;
+ mov.u32 %r2, 0;
+ st.global.u32 [payload+8], %r2;
+ bra.uni BB0_3;
+
+BB0_1:
+ mov.u32 %r1, 0;
+ st.global.u32 [payload+8], %r1;
+ st.global.u32 [payload+4], %r1;
+ st.global.u32 [payload], %r1;
+
+BB0_3:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_lodselect.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_lodselect.ptx.meta
new file mode 100644
index 00000000..ae218301
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_lodselect.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 27401003d6559f147baae0443847c44c
+timeCreated: 1530260521
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sky.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sky.ptx
new file mode 100644
index 00000000..528932c4
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sky.ptx
@@ -0,0 +1,629 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 4 .b8 payload[4];
+.global .align 4 .b8 ray[36];
+.global .align 4 .f32 t;
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7payloadE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo1tE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename7payloadE[8] = {82, 97, 121, 68, 97, 116, 97, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename1tE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7payloadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum1tE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic7payloadE[10] = {114, 116, 80, 97, 121, 108, 111, 97, 100, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic1tE[23] = {114, 116, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 68, 105, 115, 116, 97, 110, 99, 101, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7payloadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation1tE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<31>;
+ .reg .f32 %f<192>;
+ .reg .b32 %r<212>;
+ .reg .b64 %rd<37>;
+
+
+ mov.u64 %rd36, __local_depot0;
+ cvta.local.u64 %SP, %rd36;
+ ld.global.f32 %f62, [normal];
+ ld.global.f32 %f63, [normal+4];
+ ld.global.f32 %f64, [normal+8];
+ mov.u32 %r80, 7937;
+ mov.f32 %f191, 0f00000000;
+ // inline asm
+ call (%f58, %f59, %f60, %f61), _rt_transform_tuple, (%r80, %f62, %f63, %f64, %f191);
+ // inline asm
+ mul.f32 %f67, %f59, %f59;
+ fma.rn.f32 %f68, %f58, %f58, %f67;
+ fma.rn.f32 %f69, %f60, %f60, %f68;
+ sqrt.rn.f32 %f70, %f69;
+ rcp.rn.f32 %f71, %f70;
+ mul.f32 %f1, %f58, %f71;
+ mul.f32 %f2, %f59, %f71;
+ mul.f32 %f3, %f60, %f71;
+ ld.global.f32 %f72, [ray+12];
+ ld.global.f32 %f73, [t];
+ ld.global.f32 %f74, [ray+16];
+ ld.global.f32 %f75, [ray+20];
+ ld.global.f32 %f76, [ray];
+ fma.rn.f32 %f4, %f73, %f72, %f76;
+ ld.global.f32 %f77, [ray+4];
+ fma.rn.f32 %f5, %f73, %f74, %f77;
+ ld.global.f32 %f78, [ray+8];
+ fma.rn.f32 %f6, %f73, %f75, %f78;
+ abs.f32 %f79, %f1;
+ abs.f32 %f80, %f3;
+ setp.gt.f32 %p1, %f79, %f80;
+ neg.f32 %f81, %f2;
+ neg.f32 %f82, %f3;
+ selp.f32 %f83, %f81, 0f00000000, %p1;
+ selp.f32 %f84, %f1, %f82, %p1;
+ selp.f32 %f85, 0f00000000, %f2, %p1;
+ mul.f32 %f86, %f84, %f84;
+ fma.rn.f32 %f87, %f83, %f83, %f86;
+ fma.rn.f32 %f88, %f85, %f85, %f87;
+ sqrt.rn.f32 %f89, %f88;
+ rcp.rn.f32 %f90, %f89;
+ mul.f32 %f7, %f83, %f90;
+ mul.f32 %f8, %f84, %f90;
+ mul.f32 %f9, %f85, %f90;
+ mul.f32 %f91, %f3, %f8;
+ mul.f32 %f92, %f2, %f9;
+ sub.f32 %f10, %f91, %f92;
+ mul.f32 %f93, %f1, %f9;
+ mul.f32 %f94, %f3, %f7;
+ sub.f32 %f11, %f93, %f94;
+ mul.f32 %f95, %f2, %f7;
+ mul.f32 %f96, %f1, %f8;
+ sub.f32 %f12, %f95, %f96;
+ ld.global.v2.u32 {%r84, %r85}, [pixelID];
+ cvt.u64.u32 %rd15, %r84;
+ cvt.u64.u32 %rd16, %r85;
+ mov.u64 %rd19, rnd_seeds;
+ cvta.global.u64 %rd14, %rd19;
+ mov.u32 %r81, 2;
+ mov.u32 %r82, 4;
+ mov.u64 %rd18, 0;
+ // inline asm
+ call (%rd13), _rt_buffer_get_64, (%rd14, %r81, %r82, %rd15, %rd16, %rd18, %rd18);
+ // inline asm
+ ld.u32 %r191, [%rd13];
+ mov.u32 %r83, 0;
+ st.global.u32 [payload], %r83;
+ mov.u32 %r188, %r83;
+
+BB0_1:
+ cvt.rn.f32.s32 %f14, %r188;
+ mov.u32 %r190, %r83;
+
+BB0_2:
+ mad.lo.s32 %r89, %r191, 1664525, 1013904223;
+ and.b32 %r90, %r89, 16777215;
+ cvt.rn.f32.u32 %f97, %r90;
+ fma.rn.f32 %f98, %f97, 0f33800000, %f14;
+ mul.f32 %f99, %f98, 0f3DCCCCCD;
+ mad.lo.s32 %r191, %r89, 1664525, 1013904223;
+ and.b32 %r91, %r191, 16777215;
+ cvt.rn.f32.u32 %f100, %r91;
+ cvt.rn.f32.s32 %f101, %r190;
+ fma.rn.f32 %f102, %f100, 0f33800000, %f101;
+ mul.f32 %f103, %f102, 0f3DCCCCCD;
+ sqrt.rn.f32 %f16, %f99;
+ mul.f32 %f185, %f103, 0f40C90FDB;
+ abs.f32 %f18, %f185;
+ setp.neu.f32 %p2, %f18, 0f7F800000;
+ mov.f32 %f179, %f185;
+ @%p2 bra BB0_4;
+
+ mov.f32 %f104, 0f00000000;
+ mul.rn.f32 %f179, %f185, %f104;
+
+BB0_4:
+ mul.f32 %f105, %f179, 0f3F22F983;
+ cvt.rni.s32.f32 %r201, %f105;
+ cvt.rn.f32.s32 %f106, %r201;
+ neg.f32 %f107, %f106;
+ mov.f32 %f108, 0f3FC90FDA;
+ fma.rn.f32 %f109, %f107, %f108, %f179;
+ mov.f32 %f110, 0f33A22168;
+ fma.rn.f32 %f111, %f107, %f110, %f109;
+ mov.f32 %f112, 0f27C234C5;
+ fma.rn.f32 %f180, %f107, %f112, %f111;
+ abs.f32 %f113, %f179;
+ setp.leu.f32 %p3, %f113, 0f47CE4780;
+ @%p3 bra BB0_15;
+
+ mov.b32 %r8, %f179;
+ shr.u32 %r9, %r8, 23;
+ shl.b32 %r94, %r8, 8;
+ or.b32 %r10, %r94, -2147483648;
+ add.u64 %rd21, %SP, 4;
+ cvta.to.local.u64 %rd33, %rd21;
+ mov.u32 %r193, 0;
+ mov.u64 %rd32, __cudart_i2opi_f;
+ mov.u32 %r192, -6;
+
+BB0_6:
+ .pragma "nounroll";
+ ld.const.u32 %r97, [%rd32];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r95, %r97, %r10, %r193;
+ madc.hi.u32 %r193, %r97, %r10, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd33], %r95;
+ add.s64 %rd33, %rd33, 4;
+ add.s64 %rd32, %rd32, 4;
+ add.s32 %r192, %r192, 1;
+ setp.ne.s32 %p4, %r192, 0;
+ @%p4 bra BB0_6;
+
+ and.b32 %r100, %r9, 255;
+ add.s32 %r101, %r100, -128;
+ shr.u32 %r102, %r101, 5;
+ and.b32 %r15, %r8, -2147483648;
+ cvta.to.local.u64 %rd23, %rd21;
+ st.local.u32 [%rd23+24], %r193;
+ mov.u32 %r103, 6;
+ sub.s32 %r104, %r103, %r102;
+ mul.wide.s32 %rd24, %r104, 4;
+ add.s64 %rd6, %rd23, %rd24;
+ ld.local.u32 %r194, [%rd6];
+ ld.local.u32 %r195, [%rd6+-4];
+ and.b32 %r18, %r9, 31;
+ setp.eq.s32 %p5, %r18, 0;
+ @%p5 bra BB0_9;
+
+ mov.u32 %r105, 32;
+ sub.s32 %r106, %r105, %r18;
+ shr.u32 %r107, %r195, %r106;
+ shl.b32 %r108, %r194, %r18;
+ add.s32 %r194, %r107, %r108;
+ ld.local.u32 %r109, [%rd6+-8];
+ shr.u32 %r110, %r109, %r106;
+ shl.b32 %r111, %r195, %r18;
+ add.s32 %r195, %r110, %r111;
+
+BB0_9:
+ shr.u32 %r112, %r195, 30;
+ shl.b32 %r113, %r194, 2;
+ add.s32 %r196, %r112, %r113;
+ shl.b32 %r24, %r195, 2;
+ shr.u32 %r114, %r196, 31;
+ shr.u32 %r115, %r194, 30;
+ add.s32 %r25, %r114, %r115;
+ setp.eq.s32 %p6, %r114, 0;
+ @%p6 bra BB0_10;
+ bra.uni BB0_11;
+
+BB0_10:
+ mov.u32 %r197, %r15;
+ mov.u32 %r198, %r24;
+ bra.uni BB0_12;
+
+BB0_11:
+ not.b32 %r116, %r196;
+ neg.s32 %r198, %r24;
+ setp.eq.s32 %p7, %r24, 0;
+ selp.u32 %r117, 1, 0, %p7;
+ add.s32 %r196, %r117, %r116;
+ xor.b32 %r197, %r15, -2147483648;
+
+BB0_12:
+ clz.b32 %r200, %r196;
+ setp.eq.s32 %p8, %r200, 0;
+ shl.b32 %r118, %r196, %r200;
+ mov.u32 %r119, 32;
+ sub.s32 %r120, %r119, %r200;
+ shr.u32 %r121, %r198, %r120;
+ add.s32 %r122, %r121, %r118;
+ selp.b32 %r33, %r196, %r122, %p8;
+ mov.u32 %r123, -921707870;
+ mul.hi.u32 %r199, %r33, %r123;
+ setp.eq.s32 %p9, %r15, 0;
+ neg.s32 %r124, %r25;
+ selp.b32 %r201, %r25, %r124, %p9;
+ setp.lt.s32 %p10, %r199, 1;
+ @%p10 bra BB0_14;
+
+ mul.lo.s32 %r125, %r33, -921707870;
+ shr.u32 %r126, %r125, 31;
+ shl.b32 %r127, %r199, 1;
+ add.s32 %r199, %r126, %r127;
+ add.s32 %r200, %r200, 1;
+
+BB0_14:
+ mov.u32 %r128, 126;
+ sub.s32 %r129, %r128, %r200;
+ shl.b32 %r130, %r129, 23;
+ add.s32 %r131, %r199, 1;
+ shr.u32 %r132, %r131, 7;
+ add.s32 %r133, %r132, 1;
+ shr.u32 %r134, %r133, 1;
+ add.s32 %r135, %r134, %r130;
+ or.b32 %r136, %r135, %r197;
+ mov.b32 %f180, %r136;
+
+BB0_15:
+ mul.rn.f32 %f24, %f180, %f180;
+ add.s32 %r41, %r201, 1;
+ and.b32 %r42, %r41, 1;
+ setp.eq.s32 %p11, %r42, 0;
+ @%p11 bra BB0_17;
+ bra.uni BB0_16;
+
+BB0_17:
+ mov.f32 %f116, 0f3C08839E;
+ mov.f32 %f117, 0fB94CA1F9;
+ fma.rn.f32 %f181, %f117, %f24, %f116;
+ bra.uni BB0_18;
+
+BB0_16:
+ mov.f32 %f114, 0fBAB6061A;
+ mov.f32 %f115, 0f37CCF5CE;
+ fma.rn.f32 %f181, %f115, %f24, %f114;
+
+BB0_18:
+ @%p11 bra BB0_20;
+ bra.uni BB0_19;
+
+BB0_20:
+ mov.f32 %f121, 0fBE2AAAA3;
+ fma.rn.f32 %f122, %f181, %f24, %f121;
+ mov.f32 %f123, 0f00000000;
+ fma.rn.f32 %f182, %f122, %f24, %f123;
+ bra.uni BB0_21;
+
+BB0_19:
+ mov.f32 %f118, 0f3D2AAAA5;
+ fma.rn.f32 %f119, %f181, %f24, %f118;
+ mov.f32 %f120, 0fBF000000;
+ fma.rn.f32 %f182, %f119, %f24, %f120;
+
+BB0_21:
+ fma.rn.f32 %f183, %f182, %f180, %f180;
+ @%p11 bra BB0_23;
+
+ mov.f32 %f124, 0f3F800000;
+ fma.rn.f32 %f183, %f182, %f24, %f124;
+
+BB0_23:
+ and.b32 %r137, %r41, 2;
+ setp.eq.s32 %p14, %r137, 0;
+ @%p14 bra BB0_25;
+
+ mov.f32 %f125, 0f00000000;
+ mov.f32 %f126, 0fBF800000;
+ fma.rn.f32 %f183, %f183, %f126, %f125;
+
+BB0_25:
+ @%p2 bra BB0_27;
+
+ mov.f32 %f127, 0f00000000;
+ mul.rn.f32 %f185, %f185, %f127;
+
+BB0_27:
+ mul.f32 %f128, %f185, 0f3F22F983;
+ cvt.rni.s32.f32 %r211, %f128;
+ cvt.rn.f32.s32 %f129, %r211;
+ neg.f32 %f130, %f129;
+ fma.rn.f32 %f132, %f130, %f108, %f185;
+ fma.rn.f32 %f134, %f130, %f110, %f132;
+ fma.rn.f32 %f186, %f130, %f112, %f134;
+ abs.f32 %f136, %f185;
+ setp.leu.f32 %p16, %f136, 0f47CE4780;
+ @%p16 bra BB0_38;
+
+ mov.b32 %r44, %f185;
+ shr.u32 %r45, %r44, 23;
+ shl.b32 %r140, %r44, 8;
+ or.b32 %r46, %r140, -2147483648;
+ add.u64 %rd26, %SP, 4;
+ cvta.to.local.u64 %rd35, %rd26;
+ mov.u32 %r203, 0;
+ mov.u64 %rd34, __cudart_i2opi_f;
+ mov.u32 %r202, -6;
+
+BB0_29:
+ .pragma "nounroll";
+ ld.const.u32 %r143, [%rd34];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r141, %r143, %r46, %r203;
+ madc.hi.u32 %r203, %r143, %r46, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd35], %r141;
+ add.s64 %rd35, %rd35, 4;
+ add.s64 %rd34, %rd34, 4;
+ add.s32 %r202, %r202, 1;
+ setp.ne.s32 %p17, %r202, 0;
+ @%p17 bra BB0_29;
+
+ and.b32 %r146, %r45, 255;
+ add.s32 %r147, %r146, -128;
+ shr.u32 %r148, %r147, 5;
+ and.b32 %r51, %r44, -2147483648;
+ cvta.to.local.u64 %rd28, %rd26;
+ st.local.u32 [%rd28+24], %r203;
+ mov.u32 %r149, 6;
+ sub.s32 %r150, %r149, %r148;
+ mul.wide.s32 %rd29, %r150, 4;
+ add.s64 %rd12, %rd28, %rd29;
+ ld.local.u32 %r204, [%rd12];
+ ld.local.u32 %r205, [%rd12+-4];
+ and.b32 %r54, %r45, 31;
+ setp.eq.s32 %p18, %r54, 0;
+ @%p18 bra BB0_32;
+
+ mov.u32 %r151, 32;
+ sub.s32 %r152, %r151, %r54;
+ shr.u32 %r153, %r205, %r152;
+ shl.b32 %r154, %r204, %r54;
+ add.s32 %r204, %r153, %r154;
+ ld.local.u32 %r155, [%rd12+-8];
+ shr.u32 %r156, %r155, %r152;
+ shl.b32 %r157, %r205, %r54;
+ add.s32 %r205, %r156, %r157;
+
+BB0_32:
+ shr.u32 %r158, %r205, 30;
+ shl.b32 %r159, %r204, 2;
+ add.s32 %r206, %r158, %r159;
+ shl.b32 %r60, %r205, 2;
+ shr.u32 %r160, %r206, 31;
+ shr.u32 %r161, %r204, 30;
+ add.s32 %r61, %r160, %r161;
+ setp.eq.s32 %p19, %r160, 0;
+ @%p19 bra BB0_33;
+ bra.uni BB0_34;
+
+BB0_33:
+ mov.u32 %r207, %r51;
+ mov.u32 %r208, %r60;
+ bra.uni BB0_35;
+
+BB0_34:
+ not.b32 %r162, %r206;
+ neg.s32 %r208, %r60;
+ setp.eq.s32 %p20, %r60, 0;
+ selp.u32 %r163, 1, 0, %p20;
+ add.s32 %r206, %r163, %r162;
+ xor.b32 %r207, %r51, -2147483648;
+
+BB0_35:
+ clz.b32 %r210, %r206;
+ setp.eq.s32 %p21, %r210, 0;
+ shl.b32 %r164, %r206, %r210;
+ mov.u32 %r165, 32;
+ sub.s32 %r166, %r165, %r210;
+ shr.u32 %r167, %r208, %r166;
+ add.s32 %r168, %r167, %r164;
+ selp.b32 %r69, %r206, %r168, %p21;
+ mov.u32 %r169, -921707870;
+ mul.hi.u32 %r209, %r69, %r169;
+ setp.eq.s32 %p22, %r51, 0;
+ neg.s32 %r170, %r61;
+ selp.b32 %r211, %r61, %r170, %p22;
+ setp.lt.s32 %p23, %r209, 1;
+ @%p23 bra BB0_37;
+
+ mul.lo.s32 %r171, %r69, -921707870;
+ shr.u32 %r172, %r171, 31;
+ shl.b32 %r173, %r209, 1;
+ add.s32 %r209, %r172, %r173;
+ add.s32 %r210, %r210, 1;
+
+BB0_37:
+ mov.u32 %r174, 126;
+ sub.s32 %r175, %r174, %r210;
+ shl.b32 %r176, %r175, 23;
+ add.s32 %r177, %r209, 1;
+ shr.u32 %r178, %r177, 7;
+ add.s32 %r179, %r178, 1;
+ shr.u32 %r180, %r179, 1;
+ add.s32 %r181, %r180, %r176;
+ or.b32 %r182, %r181, %r207;
+ mov.b32 %f186, %r182;
+
+BB0_38:
+ mul.rn.f32 %f41, %f186, %f186;
+ and.b32 %r77, %r211, 1;
+ setp.eq.s32 %p24, %r77, 0;
+ @%p24 bra BB0_40;
+ bra.uni BB0_39;
+
+BB0_40:
+ mov.f32 %f139, 0f3C08839E;
+ mov.f32 %f140, 0fB94CA1F9;
+ fma.rn.f32 %f187, %f140, %f41, %f139;
+ bra.uni BB0_41;
+
+BB0_39:
+ mov.f32 %f137, 0fBAB6061A;
+ mov.f32 %f138, 0f37CCF5CE;
+ fma.rn.f32 %f187, %f138, %f41, %f137;
+
+BB0_41:
+ @%p24 bra BB0_43;
+ bra.uni BB0_42;
+
+BB0_43:
+ mov.f32 %f144, 0fBE2AAAA3;
+ fma.rn.f32 %f145, %f187, %f41, %f144;
+ mov.f32 %f146, 0f00000000;
+ fma.rn.f32 %f188, %f145, %f41, %f146;
+ bra.uni BB0_44;
+
+BB0_42:
+ mov.f32 %f141, 0f3D2AAAA5;
+ fma.rn.f32 %f142, %f187, %f41, %f141;
+ mov.f32 %f143, 0fBF000000;
+ fma.rn.f32 %f188, %f142, %f41, %f143;
+
+BB0_44:
+ fma.rn.f32 %f189, %f188, %f186, %f186;
+ @%p24 bra BB0_46;
+
+ mov.f32 %f147, 0f3F800000;
+ fma.rn.f32 %f189, %f188, %f41, %f147;
+
+BB0_46:
+ and.b32 %r183, %r211, 2;
+ setp.eq.s32 %p27, %r183, 0;
+ @%p27 bra BB0_48;
+
+ mov.f32 %f148, 0f00000000;
+ mov.f32 %f149, 0fBF800000;
+ fma.rn.f32 %f189, %f189, %f149, %f148;
+
+BB0_48:
+ mul.f32 %f150, %f16, %f183;
+ mul.f32 %f151, %f150, %f150;
+ mov.f32 %f152, 0f3F800000;
+ sub.f32 %f153, %f152, %f151;
+ mul.f32 %f154, %f16, %f189;
+ mul.f32 %f155, %f154, %f154;
+ sub.f32 %f156, %f153, %f155;
+ mov.f32 %f157, 0f00000000;
+ max.f32 %f158, %f157, %f156;
+ sqrt.rn.f32 %f159, %f158;
+ mul.f32 %f160, %f7, %f154;
+ mul.f32 %f161, %f8, %f154;
+ mul.f32 %f162, %f9, %f154;
+ fma.rn.f32 %f163, %f10, %f150, %f160;
+ fma.rn.f32 %f164, %f11, %f150, %f161;
+ fma.rn.f32 %f165, %f12, %f150, %f162;
+ fma.rn.f32 %f53, %f1, %f159, %f163;
+ fma.rn.f32 %f54, %f2, %f159, %f164;
+ fma.rn.f32 %f55, %f3, %f159, %f165;
+ setp.leu.f32 %p28, %f54, 0f00000000;
+ @%p28 bra BB0_50;
+
+ add.u64 %rd30, %SP, 0;
+ cvta.to.local.u64 %rd31, %rd30;
+ mov.u32 %r187, 1065353216;
+ st.local.u32 [%rd31], %r187;
+ ld.global.u32 %r184, [root];
+ mov.u32 %r185, 1;
+ mov.f32 %f172, 0f3A83126F;
+ mov.f32 %f173, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r184, %f4, %f5, %f6, %f53, %f54, %f55, %r185, %f172, %f173, %rd30, %r82);
+ // inline asm
+ ld.global.f32 %f174, [payload];
+ ld.local.f32 %f175, [%rd31];
+ add.f32 %f191, %f175, %f174;
+ st.global.f32 [payload], %f191;
+
+BB0_50:
+ add.s32 %r190, %r190, 1;
+ setp.lt.s32 %p29, %r190, 10;
+ @%p29 bra BB0_2;
+
+ add.s32 %r188, %r188, 1;
+ setp.lt.s32 %p30, %r188, 10;
+ @%p30 bra BB0_1;
+
+ div.rn.f32 %f176, %f191, 0f42C80000;
+ st.global.f32 [payload], %f176;
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sky.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sky.ptx.meta
new file mode 100644
index 00000000..66f42be7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sky.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 25613c7320d9d2e4389ebad7e23aba11
+timeCreated: 1527528502
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sss.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sss.ptx
new file mode 100644
index 00000000..6b7bbabe
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sss.ptx
@@ -0,0 +1,241 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 8 .b8 texCoords[8];
+.global .align 4 .b8 payload[12];
+.global .align 4 .b8 ray[36];
+.global .align 4 .f32 t;
+.global .align 1 .b8 lightmapDirect[1];
+.global .align 4 .u32 LMID;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7payloadE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo1tE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4LMIDE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename7payloadE[9] = {82, 97, 121, 68, 97, 116, 97, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename1tE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename4LMIDE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7payloadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum1tE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4LMIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic7payloadE[10] = {114, 116, 80, 97, 121, 108, 111, 97, 100, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic1tE[23] = {114, 116, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 68, 105, 115, 116, 97, 110, 99, 101, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic4LMIDE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7payloadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation1tE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4LMIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<5>;
+ .reg .b16 %rs<8>;
+ .reg .f32 %f<50>;
+ .reg .b32 %r<12>;
+ .reg .b64 %rd<8>;
+
+
+ ld.global.f32 %f2, [normal];
+ ld.global.f32 %f3, [ray+12];
+ ld.global.f32 %f4, [ray+16];
+ ld.global.f32 %f5, [normal+4];
+ mul.f32 %f6, %f5, %f4;
+ fma.rn.f32 %f7, %f2, %f3, %f6;
+ ld.global.f32 %f8, [ray+20];
+ ld.global.f32 %f9, [normal+8];
+ fma.rn.f32 %f10, %f9, %f8, %f7;
+ setp.ltu.f32 %p1, %f10, 0f00000000;
+ @%p1 bra BB0_3;
+ bra.uni BB0_1;
+
+BB0_3:
+ ld.global.f32 %f48, [t];
+ neg.f32 %f49, %f48;
+ st.global.f32 [payload], %f49;
+ st.global.f32 [payload+4], %f49;
+ st.global.f32 [payload+8], %f49;
+ bra.uni BB0_4;
+
+BB0_1:
+ ld.global.f32 %f1, [texCoords];
+ div.rn.f32 %f11, %f1, 0f41200000;
+ cvt.rzi.s32.f32 %r1, %f11;
+ ld.global.u32 %r2, [LMID];
+ setp.ne.s32 %p2, %r1, %r2;
+ @%p2 bra BB0_4;
+
+ cvt.rzi.s32.f32 %r5, %f1;
+ cvt.rn.f32.s32 %f15, %r5;
+ sub.f32 %f16, %f1, %f15;
+ ld.global.v2.u32 {%r6, %r7}, [resolution];
+ cvt.rn.f32.u32 %f17, %r6;
+ mul.f32 %f18, %f16, %f17;
+ cvt.rzi.u32.f32 %r10, %f18;
+ cvt.rn.f32.u32 %f19, %r7;
+ ld.global.f32 %f20, [texCoords+4];
+ mul.f32 %f21, %f20, %f19;
+ cvt.rzi.u32.f32 %r11, %f21;
+ cvt.u64.u32 %rd3, %r10;
+ cvt.u64.u32 %rd4, %r11;
+ mov.u64 %rd7, lightmapDirect;
+ cvta.global.u64 %rd2, %rd7;
+ mov.u32 %r3, 2;
+ mov.u32 %r4, 8;
+ mov.u64 %rd6, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r3, %r4, %rd3, %rd4, %rd6, %rd6);
+ // inline asm
+ ld.v4.u16 {%rs4, %rs5, %rs6, %rs7}, [%rd1];
+ // inline asm
+ { cvt.f32.f16 %f12, %rs4;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f13, %rs5;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f14, %rs6;}
+
+ // inline asm
+ ld.global.f32 %f22, [t];
+ ld.global.f32 %f23, [lightRadius];
+ mul.f32 %f24, %f23, %f22;
+ neg.f32 %f25, %f24;
+ mul.f32 %f26, %f24, 0fBFB8AA3B;
+ cvt.rzi.f32.f32 %f27, %f26;
+ mov.f32 %f28, 0fBF317200;
+ fma.rn.f32 %f29, %f27, %f28, %f25;
+ mov.f32 %f30, 0fB5BFBE8E;
+ fma.rn.f32 %f31, %f27, %f30, %f29;
+ mul.f32 %f32, %f31, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f33, %f32;
+ add.f32 %f34, %f27, 0f00000000;
+ ex2.approx.f32 %f35, %f34;
+ mul.f32 %f36, %f33, %f35;
+ setp.gt.f32 %p3, %f24, 0f42D20000;
+ selp.f32 %f37, 0f00000000, %f36, %p3;
+ setp.lt.f32 %p4, %f24, 0fC2D20000;
+ selp.f32 %f38, 0f7F800000, %f37, %p4;
+ mul.f32 %f39, %f12, %f38;
+ mul.f32 %f40, %f13, %f38;
+ mul.f32 %f41, %f14, %f38;
+ ld.global.f32 %f42, [lightColor];
+ mul.f32 %f43, %f42, %f39;
+ ld.global.f32 %f44, [lightColor+4];
+ mul.f32 %f45, %f44, %f40;
+ ld.global.f32 %f46, [lightColor+8];
+ mul.f32 %f47, %f46, %f41;
+ st.global.f32 [payload], %f43;
+ st.global.f32 [payload+4], %f45;
+ st.global.f32 [payload+8], %f47;
+
+BB0_4:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sss.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sss.ptx.meta
new file mode 100644
index 00000000..5c9fda80
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_sss.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 049a1401f47deb448b7543c6d4ed31d0
+timeCreated: 1540291414
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_tex_gi2.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_tex_gi2.ptx
new file mode 100644
index 00000000..e55cef90
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_tex_gi2.ptx
@@ -0,0 +1,200 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 8 .b8 texCoords[8];
+.global .align 4 .b8 payload[12];
+.global .align 4 .b8 ray[36];
+.global .align 4 .f32 t;
+.global .align 1 .b8 textureIDs[1];
+.global .align 4 .f32 backFaceWeight;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7payloadE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo1tE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14backFaceWeightE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename7payloadE[9] = {82, 97, 121, 68, 97, 116, 97, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename1tE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14backFaceWeightE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7payloadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum1tE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14backFaceWeightE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic7payloadE[10] = {114, 116, 80, 97, 121, 108, 111, 97, 100, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic1tE[23] = {114, 116, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 68, 105, 115, 116, 97, 110, 99, 101, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic14backFaceWeightE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7payloadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation1tE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14backFaceWeightE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<3>;
+ .reg .b16 %rs<4>;
+ .reg .f32 %f<25>;
+ .reg .b32 %r<12>;
+ .reg .b64 %rd<8>;
+
+
+ ld.global.f32 %f3, [normal];
+ ld.global.f32 %f4, [ray+12];
+ ld.global.f32 %f5, [ray+16];
+ ld.global.f32 %f6, [normal+4];
+ mul.f32 %f7, %f6, %f5;
+ fma.rn.f32 %f8, %f3, %f4, %f7;
+ ld.global.f32 %f9, [ray+20];
+ ld.global.f32 %f10, [normal+8];
+ fma.rn.f32 %f1, %f10, %f9, %f8;
+ ld.global.f32 %f2, [texCoords];
+ div.rn.f32 %f11, %f2, 0f41200000;
+ cvt.rzi.s32.f32 %r1, %f11;
+ setp.lt.s32 %p1, %r1, 0;
+ @%p1 bra BB0_2;
+
+ setp.ltu.f32 %p2, %f1, 0f00000000;
+ cvt.rzi.s32.f32 %r10, %f2;
+ cvt.rn.f32.s32 %f19, %r10;
+ sub.f32 %f12, %f2, %f19;
+ ld.global.f32 %f13, [texCoords+4];
+ cvt.s64.s32 %rd3, %r1;
+ mov.u64 %rd7, textureIDs;
+ cvta.global.u64 %rd2, %rd7;
+ mov.u32 %r2, 1;
+ mov.u32 %r3, 4;
+ mov.u64 %rd6, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r2, %r3, %rd3, %rd6, %rd6, %rd6);
+ // inline asm
+ ld.u32 %r8, [%rd1];
+ mov.u32 %r9, 2;
+ mov.f32 %f15, 0f00000000;
+ // inline asm
+ call (%r4, %r5, %r6, %r7), _rt_texture_get_u_id, (%r8, %r9, %f12, %f13, %f15, %f15);
+ // inline asm
+ cvt.u16.u32 %rs1, %r4;
+ cvt.u16.u32 %rs2, %r5;
+ cvt.u16.u32 %rs3, %r6;
+ // inline asm
+ { cvt.f32.f16 %f16, %rs1;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f17, %rs2;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f18, %rs3;}
+
+ // inline asm
+ ld.global.f32 %f20, [backFaceWeight];
+ selp.f32 %f21, 0f3F800000, %f20, %p2;
+ mul.f32 %f22, %f16, %f21;
+ mul.f32 %f23, %f17, %f21;
+ mul.f32 %f24, %f18, %f21;
+ st.global.f32 [payload], %f22;
+ st.global.f32 [payload+4], %f23;
+ st.global.f32 [payload+8], %f24;
+ bra.uni BB0_3;
+
+BB0_2:
+ mov.u32 %r11, 0;
+ st.global.u32 [payload+8], %r11;
+ st.global.u32 [payload+4], %r11;
+ st.global.u32 [payload], %r11;
+
+BB0_3:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_tex_gi2.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_tex_gi2.ptx.meta
new file mode 100644
index 00000000..f342137a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_tex_gi2.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 634a49dd93a6c1e46946efb6157c8559
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_texarealight.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_texarealight.ptx
new file mode 100644
index 00000000..eae840b0
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_texarealight.ptx
@@ -0,0 +1,351 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 8 .b8 texCoords[8];
+.global .align 4 .b8 payload[12];
+.global .align 4 .u32 lightCookie;
+.global .align 4 .b8 ray[36];
+.global .align 4 .f32 t;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .u32 lightLMID;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7payloadE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightCookieE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo1tE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9lightLMIDE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename7payloadE[9] = {82, 97, 121, 68, 97, 116, 97, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename11lightCookieE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename1tE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename9lightLMIDE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7payloadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightCookieE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum1tE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9lightLMIDE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic7payloadE[10] = {114, 116, 80, 97, 121, 108, 111, 97, 100, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightCookieE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic1tE[23] = {114, 116, 73, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 68, 105, 115, 116, 97, 110, 99, 101, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9lightLMIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7payloadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightCookieE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation1tE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9lightLMIDE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<23>;
+ .reg .f32 %f<137>;
+ .reg .b32 %r<19>;
+
+
+ ld.global.f32 %f1, [texCoords];
+ div.rn.f32 %f2, %f1, 0f41200000;
+ abs.f32 %f20, %f2;
+ mov.b32 %r2, %f2;
+ and.b32 %r3, %r2, -2147483648;
+ or.b32 %r4, %r3, 1056964608;
+ mov.b32 %f21, %r4;
+ add.f32 %f22, %f2, %f21;
+ cvt.rzi.f32.f32 %f23, %f22;
+ setp.gt.f32 %p2, %f20, 0f4B000000;
+ selp.f32 %f133, %f2, %f23, %p2;
+ setp.geu.f32 %p3, %f20, 0f3F000000;
+ @%p3 bra BB0_2;
+
+ cvt.rzi.f32.f32 %f133, %f2;
+
+BB0_2:
+ ld.global.f32 %f24, [ray+12];
+ ld.global.f32 %f25, [normal];
+ ld.global.f32 %f26, [ray+16];
+ ld.global.f32 %f27, [normal+4];
+ mul.f32 %f28, %f27, %f26;
+ fma.rn.f32 %f29, %f25, %f24, %f28;
+ ld.global.f32 %f30, [ray+20];
+ ld.global.f32 %f31, [normal+8];
+ fma.rn.f32 %f32, %f31, %f30, %f29;
+ mov.u32 %r5, -1082130432;
+ st.global.u32 [payload+8], %r5;
+ st.global.u32 [payload+4], %r5;
+ st.global.u32 [payload], %r5;
+ setp.leu.f32 %p4, %f32, 0f00000000;
+ ld.global.u32 %r6, [lightLMID];
+ cvt.rzi.s32.f32 %r1, %f133;
+ setp.eq.s32 %p5, %r1, %r6;
+ and.pred %p6, %p4, %p5;
+ @!%p6 bra BB0_15;
+ bra.uni BB0_3;
+
+BB0_3:
+ ld.global.f32 %f35, [t];
+ ld.global.f32 %f36, [lightInvCutoff];
+ mul.f32 %f6, %f35, %f36;
+ mov.f32 %f37, 0f40000000;
+ cvt.rzi.f32.f32 %f38, %f37;
+ add.f32 %f39, %f38, %f38;
+ mov.f32 %f40, 0f40800000;
+ sub.f32 %f41, %f40, %f39;
+ abs.f32 %f7, %f41;
+ abs.f32 %f8, %f6;
+ setp.lt.f32 %p7, %f8, 0f00800000;
+ mul.f32 %f42, %f8, 0f4B800000;
+ selp.f32 %f43, 0fC3170000, 0fC2FE0000, %p7;
+ selp.f32 %f44, %f42, %f8, %p7;
+ mov.b32 %r7, %f44;
+ and.b32 %r8, %r7, 8388607;
+ or.b32 %r9, %r8, 1065353216;
+ mov.b32 %f45, %r9;
+ shr.u32 %r10, %r7, 23;
+ cvt.rn.f32.u32 %f46, %r10;
+ add.f32 %f47, %f43, %f46;
+ setp.gt.f32 %p8, %f45, 0f3FB504F3;
+ mul.f32 %f48, %f45, 0f3F000000;
+ add.f32 %f49, %f47, 0f3F800000;
+ selp.f32 %f50, %f48, %f45, %p8;
+ selp.f32 %f51, %f49, %f47, %p8;
+ add.f32 %f52, %f50, 0fBF800000;
+ add.f32 %f34, %f50, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f33,%f34;
+ // inline asm
+ add.f32 %f53, %f52, %f52;
+ mul.f32 %f54, %f33, %f53;
+ mul.f32 %f55, %f54, %f54;
+ mov.f32 %f56, 0f3C4CAF63;
+ mov.f32 %f57, 0f3B18F0FE;
+ fma.rn.f32 %f58, %f57, %f55, %f56;
+ mov.f32 %f59, 0f3DAAAABD;
+ fma.rn.f32 %f60, %f58, %f55, %f59;
+ mul.rn.f32 %f61, %f60, %f55;
+ mul.rn.f32 %f62, %f61, %f54;
+ sub.f32 %f63, %f52, %f54;
+ neg.f32 %f64, %f54;
+ add.f32 %f65, %f63, %f63;
+ fma.rn.f32 %f66, %f64, %f52, %f65;
+ mul.rn.f32 %f67, %f33, %f66;
+ add.f32 %f68, %f62, %f54;
+ sub.f32 %f69, %f54, %f68;
+ add.f32 %f70, %f62, %f69;
+ add.f32 %f71, %f67, %f70;
+ add.f32 %f72, %f68, %f71;
+ sub.f32 %f73, %f68, %f72;
+ add.f32 %f74, %f71, %f73;
+ mov.f32 %f75, 0f3F317200;
+ mul.rn.f32 %f76, %f51, %f75;
+ mov.f32 %f77, 0f35BFBE8E;
+ mul.rn.f32 %f78, %f51, %f77;
+ add.f32 %f79, %f76, %f72;
+ sub.f32 %f80, %f76, %f79;
+ add.f32 %f81, %f72, %f80;
+ add.f32 %f82, %f74, %f81;
+ add.f32 %f83, %f78, %f82;
+ add.f32 %f84, %f79, %f83;
+ sub.f32 %f85, %f79, %f84;
+ add.f32 %f86, %f83, %f85;
+ mul.rn.f32 %f87, %f40, %f84;
+ neg.f32 %f88, %f87;
+ fma.rn.f32 %f89, %f40, %f84, %f88;
+ fma.rn.f32 %f90, %f40, %f86, %f89;
+ mov.f32 %f91, 0f00000000;
+ fma.rn.f32 %f92, %f91, %f84, %f90;
+ add.rn.f32 %f93, %f87, %f92;
+ neg.f32 %f94, %f93;
+ add.rn.f32 %f95, %f87, %f94;
+ add.rn.f32 %f96, %f95, %f92;
+ mov.b32 %r11, %f93;
+ setp.eq.s32 %p9, %r11, 1118925336;
+ add.s32 %r12, %r11, -1;
+ mov.b32 %f97, %r12;
+ add.f32 %f98, %f96, 0f37000000;
+ selp.f32 %f99, %f97, %f93, %p9;
+ selp.f32 %f9, %f98, %f96, %p9;
+ mul.f32 %f100, %f99, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f101, %f100;
+ mov.f32 %f102, 0fBF317200;
+ fma.rn.f32 %f103, %f101, %f102, %f99;
+ mov.f32 %f104, 0fB5BFBE8E;
+ fma.rn.f32 %f105, %f101, %f104, %f103;
+ mul.f32 %f106, %f105, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f107, %f106;
+ add.f32 %f108, %f101, 0f00000000;
+ ex2.approx.f32 %f109, %f108;
+ mul.f32 %f110, %f107, %f109;
+ setp.lt.f32 %p10, %f99, 0fC2D20000;
+ selp.f32 %f111, 0f00000000, %f110, %p10;
+ setp.gt.f32 %p11, %f99, 0f42D20000;
+ selp.f32 %f134, 0f7F800000, %f111, %p11;
+ setp.eq.f32 %p12, %f134, 0f7F800000;
+ @%p12 bra BB0_5;
+
+ fma.rn.f32 %f134, %f134, %f9, %f134;
+
+BB0_5:
+ setp.lt.f32 %p13, %f6, 0f00000000;
+ setp.eq.f32 %p14, %f7, 0f3F800000;
+ and.pred %p1, %p13, %p14;
+ mov.b32 %r13, %f134;
+ xor.b32 %r14, %r13, -2147483648;
+ mov.b32 %f112, %r14;
+ selp.f32 %f136, %f112, %f134, %p1;
+ setp.eq.f32 %p15, %f6, 0f00000000;
+ @%p15 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f115, %f6, %f6;
+ selp.f32 %f136, %f115, 0f00000000, %p14;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p16, %f6, 0f00000000;
+ @%p16 bra BB0_9;
+
+ cvt.rzi.f32.f32 %f114, %f40;
+ setp.neu.f32 %p17, %f114, 0f40800000;
+ selp.f32 %f136, 0f7FFFFFFF, %f136, %p17;
+
+BB0_9:
+ add.f32 %f116, %f8, 0f40800000;
+ mov.b32 %r15, %f116;
+ setp.lt.s32 %p19, %r15, 2139095040;
+ @%p19 bra BB0_14;
+
+ setp.gtu.f32 %p20, %f8, 0f7F800000;
+ @%p20 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f136, %f6, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ setp.neu.f32 %p21, %f8, 0f7F800000;
+ @%p21 bra BB0_14;
+
+ selp.f32 %f136, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ mov.f32 %f125, 0f3F800000;
+ sub.f32 %f126, %f125, %f136;
+ setp.eq.f32 %p22, %f6, 0f3F800000;
+ selp.f32 %f127, 0f00000000, %f126, %p22;
+ cvt.sat.f32.f32 %f128, %f127;
+ ld.global.u32 %r16, [lightCookie];
+ mul.lo.s32 %r18, %r1, 10;
+ cvt.rn.f32.s32 %f129, %r18;
+ sub.f32 %f121, %f1, %f129;
+ ld.global.f32 %f122, [texCoords+4];
+ mov.u32 %r17, 2;
+ // inline asm
+ call (%f117, %f118, %f119, %f120), _rt_texture_get_f_id, (%r16, %r17, %f121, %f122, %f91, %f91);
+ // inline asm
+ mul.f32 %f130, %f128, %f117;
+ mul.f32 %f131, %f128, %f118;
+ mul.f32 %f132, %f128, %f119;
+ st.global.f32 [payload], %f130;
+ st.global.f32 [payload+4], %f131;
+ st.global.f32 [payload+8], %f132;
+
+BB0_15:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_texarealight.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_texarealight.ptx.meta
new file mode 100644
index 00000000..68374ff2
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lambert_texarealight.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e8146e515ac999548978f331c254bda6
+timeCreated: 1528384204
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks.meta
new file mode 100644
index 00000000..5774acb2
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 6d93dd912cd02f54981f5917cbe9a812
+folderAsset: yes
+timeCreated: 1622807248
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part0.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part0.bin
new file mode 100644
index 00000000..0a3ae167
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part0.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part0.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part0.bin.meta
new file mode 100644
index 00000000..84e46138
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part0.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 44251655c8922d140a7e9ab5676e5263
+timeCreated: 1535061060
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part1.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part1.bin
new file mode 100644
index 00000000..dfb54913
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part1.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part1.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part1.bin.meta
new file mode 100644
index 00000000..12661c70
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part1.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4623dd8c1da3c724eb8226045500a441
+timeCreated: 1535061060
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part2.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part2.bin
new file mode 100644
index 00000000..aedaf39d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part2.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part2.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part2.bin.meta
new file mode 100644
index 00000000..835efb99
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part2.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a9ac3c82f948c81429859d2792c35bec
+timeCreated: 1535061060
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part3.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part3.bin
new file mode 100644
index 00000000..5faa31a2
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part3.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part3.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part3.bin.meta
new file mode 100644
index 00000000..0b5c50d7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_2017_1_part3.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ba7816ea05d4610418371036ad7841ab
+timeCreated: 1535061060
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part0.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part0.bin
new file mode 100644
index 00000000..fc58f8e7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part0.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part0.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part0.bin.meta
new file mode 100644
index 00000000..acc3d2c7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part0.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4178a0f28734a014e9275b7c6d2d15c5
+timeCreated: 1535030935
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part1.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part1.bin
new file mode 100644
index 00000000..2dfa4a57
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part1.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part1.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part1.bin.meta
new file mode 100644
index 00000000..1560054f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part1.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a3ff5a3eecc04904bb8e1c862145ec8c
+timeCreated: 1535030935
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part2.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part2.bin
new file mode 100644
index 00000000..314bde0d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part2.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part2.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part2.bin.meta
new file mode 100644
index 00000000..e25bf834
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part2.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ea2dfecbce91acc4e877262c7731b9d6
+timeCreated: 1535030935
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part3.bin b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part3.bin
new file mode 100644
index 00000000..4ab9d87d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part3.bin
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part3.bin.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part3.bin.meta
new file mode 100644
index 00000000..02efa7c7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lightingDataChunks/LightingData_5_6_part3.bin.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e47578a0834797d469b941948ea50f17
+timeCreated: 1535030935
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAO.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAO.ptx
new file mode 100644
index 00000000..e5626799
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAO.ptx
@@ -0,0 +1,1033 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .f32 intensity;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9intensityE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9intensityE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9intensityE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9intensityE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9intensityE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<61>;
+ .reg .b16 %rs<47>;
+ .reg .f32 %f<345>;
+ .reg .b32 %r<275>;
+ .reg .b64 %rd<112>;
+
+
+ mov.u64 %rd111, __local_depot0;
+ cvta.local.u64 %SP, %rd111;
+ ld.global.v2.u32 {%r91, %r92}, [pixelID];
+ cvt.u64.u32 %rd22, %r91;
+ cvt.u64.u32 %rd23, %r92;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r89, 2;
+ mov.u32 %r90, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r89, %r90, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r1, [%rd20];
+ shr.u32 %r95, %r1, 16;
+ cvt.u16.u32 %rs1, %r95;
+ and.b16 %rs3, %rs1, 255;
+ cvt.u16.u32 %rs4, %r1;
+ or.b16 %rs5, %rs4, %rs3;
+ setp.eq.s16 %p2, %rs5, 0;
+ mov.f32 %f323, 0f00000000;
+ mov.f32 %f324, %f323;
+ mov.f32 %f325, %f323;
+ @%p2 bra BB0_2;
+
+ ld.u8 %rs6, [%rd20+1];
+ and.b16 %rs8, %rs4, 255;
+ cvt.rn.f32.u16 %f81, %rs8;
+ div.rn.f32 %f82, %f81, 0f437F0000;
+ fma.rn.f32 %f83, %f82, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f84, %rs6;
+ div.rn.f32 %f85, %f84, 0f437F0000;
+ fma.rn.f32 %f86, %f85, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f87, %rs3;
+ div.rn.f32 %f88, %f87, 0f437F0000;
+ fma.rn.f32 %f89, %f88, 0f40000000, 0fBF800000;
+ mul.f32 %f90, %f86, %f86;
+ fma.rn.f32 %f91, %f83, %f83, %f90;
+ fma.rn.f32 %f92, %f89, %f89, %f91;
+ sqrt.rn.f32 %f93, %f92;
+ rcp.rn.f32 %f94, %f93;
+ mul.f32 %f323, %f83, %f94;
+ mul.f32 %f324, %f86, %f94;
+ mul.f32 %f325, %f89, %f94;
+
+BB0_2:
+ ld.global.v2.u32 {%r96, %r97}, [pixelID];
+ ld.global.v2.u32 {%r99, %r100}, [tileInfo];
+ add.s32 %r2, %r96, %r99;
+ add.s32 %r3, %r97, %r100;
+ setp.eq.f32 %p3, %f324, 0f00000000;
+ setp.eq.f32 %p4, %f323, 0f00000000;
+ and.pred %p5, %p4, %p3;
+ setp.eq.f32 %p6, %f325, 0f00000000;
+ and.pred %p7, %p5, %p6;
+ @%p7 bra BB0_72;
+ bra.uni BB0_3;
+
+BB0_72:
+ ld.global.u8 %rs28, [imageEnabled];
+ and.b16 %rs29, %rs28, 4;
+ setp.eq.s16 %p58, %rs29, 0;
+ @%p58 bra BB0_76;
+
+ ld.global.u32 %r237, [additive];
+ setp.eq.s32 %p59, %r237, 0;
+ cvt.u64.u32 %rd18, %r2;
+ cvt.u64.u32 %rd19, %r3;
+ @%p59 bra BB0_75;
+
+ mov.u64 %rd92, image_HDR;
+ cvta.global.u64 %rd81, %rd92;
+ mov.u32 %r241, 8;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r89, %r241, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs36, %rs37, %rs38, %rs39}, [%rd80];
+ // inline asm
+ { cvt.f32.f16 %f313, %rs36;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f314, %rs37;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f315, %rs38;}
+
+ // inline asm
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd81, %r89, %r241, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f316, %f313, 0f00000000;
+ add.f32 %f317, %f314, 0f00000000;
+ add.f32 %f318, %f315, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs35, %f318;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f317;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f316;}
+
+ // inline asm
+ mov.u16 %rs40, 0;
+ st.v4.u16 [%rd86], {%rs33, %rs34, %rs35, %rs40};
+ bra.uni BB0_76;
+
+BB0_3:
+ ld.global.v2.u32 {%r108, %r109}, [pixelID];
+ cvt.u64.u32 %rd29, %r108;
+ cvt.u64.u32 %rd30, %r109;
+ mov.u64 %rd39, uvpos;
+ cvta.global.u64 %rd28, %rd39;
+ mov.u32 %r105, 12;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r89, %r105, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f96, [%rd27+8];
+ ld.f32 %f97, [%rd27+4];
+ ld.f32 %f98, [%rd27];
+ mul.f32 %f99, %f98, 0f3456BF95;
+ mul.f32 %f100, %f97, 0f3456BF95;
+ mul.f32 %f101, %f96, 0f3456BF95;
+ abs.f32 %f102, %f323;
+ div.rn.f32 %f103, %f99, %f102;
+ abs.f32 %f104, %f324;
+ div.rn.f32 %f105, %f100, %f104;
+ abs.f32 %f106, %f325;
+ div.rn.f32 %f107, %f101, %f106;
+ abs.f32 %f108, %f103;
+ abs.f32 %f109, %f105;
+ abs.f32 %f110, %f107;
+ mov.f32 %f111, 0f38D1B717;
+ max.f32 %f112, %f108, %f111;
+ max.f32 %f113, %f109, %f111;
+ max.f32 %f114, %f110, %f111;
+ fma.rn.f32 %f7, %f323, %f112, %f98;
+ fma.rn.f32 %f8, %f324, %f113, %f97;
+ fma.rn.f32 %f9, %f325, %f114, %f96;
+ setp.gt.f32 %p8, %f102, %f106;
+ neg.f32 %f115, %f324;
+ selp.f32 %f116, %f115, 0f00000000, %p8;
+ neg.f32 %f117, %f325;
+ selp.f32 %f118, %f323, %f117, %p8;
+ selp.f32 %f119, 0f00000000, %f324, %p8;
+ mul.f32 %f120, %f118, %f118;
+ fma.rn.f32 %f121, %f116, %f116, %f120;
+ fma.rn.f32 %f122, %f119, %f119, %f121;
+ sqrt.rn.f32 %f123, %f122;
+ rcp.rn.f32 %f124, %f123;
+ mul.f32 %f10, %f116, %f124;
+ mul.f32 %f11, %f118, %f124;
+ mul.f32 %f12, %f119, %f124;
+ ld.global.v2.u32 {%r112, %r113}, [pixelID];
+ cvt.u64.u32 %rd35, %r112;
+ cvt.u64.u32 %rd36, %r113;
+ mov.u64 %rd40, rnd_seeds;
+ cvta.global.u64 %rd34, %rd40;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r89, %r90, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ ld.global.u32 %r247, [samples];
+ mov.f32 %f340, 0f00000000;
+ setp.lt.s32 %p9, %r247, 1;
+ @%p9 bra BB0_55;
+
+ cvt.rn.f32.s32 %f126, %r247;
+ rcp.rn.f32 %f13, %f126;
+ ld.u32 %r273, [%rd33];
+ mul.f32 %f14, %f7, 0f3456BF95;
+ mul.f32 %f15, %f8, 0f3456BF95;
+ mul.f32 %f16, %f9, 0f3456BF95;
+ mul.f32 %f127, %f323, %f11;
+ mul.f32 %f128, %f324, %f10;
+ sub.f32 %f17, %f128, %f127;
+ mul.f32 %f129, %f325, %f10;
+ mul.f32 %f130, %f323, %f12;
+ sub.f32 %f18, %f130, %f129;
+ mul.f32 %f131, %f324, %f12;
+ mul.f32 %f132, %f325, %f11;
+ sub.f32 %f19, %f132, %f131;
+ mov.f32 %f340, 0f00000000;
+ mov.u32 %r248, 0;
+ abs.f32 %f133, %f15;
+ abs.f32 %f134, %f14;
+ max.f32 %f135, %f134, %f133;
+ abs.f32 %f136, %f16;
+ max.f32 %f137, %f135, %f136;
+
+BB0_5:
+ setp.lt.s32 %p10, %r247, 1;
+ @%p10 bra BB0_54;
+
+ cvt.rn.f32.s32 %f21, %r248;
+ max.f32 %f22, %f137, %f111;
+ mov.u32 %r250, 0;
+
+BB0_7:
+ mad.lo.s32 %r118, %r273, 1664525, 1013904223;
+ and.b32 %r119, %r118, 16777215;
+ cvt.rn.f32.u32 %f139, %r119;
+ fma.rn.f32 %f140, %f139, 0f33800000, %f21;
+ mul.f32 %f141, %f13, %f140;
+ mad.lo.s32 %r273, %r118, 1664525, 1013904223;
+ and.b32 %r120, %r273, 16777215;
+ cvt.rn.f32.u32 %f142, %r120;
+ cvt.rn.f32.s32 %f143, %r250;
+ fma.rn.f32 %f144, %f142, 0f33800000, %f143;
+ mul.f32 %f145, %f13, %f144;
+ sqrt.rn.f32 %f24, %f141;
+ mul.f32 %f334, %f145, 0f40C90FDB;
+ abs.f32 %f26, %f334;
+ setp.neu.f32 %p11, %f26, 0f7F800000;
+ mov.f32 %f328, %f334;
+ @%p11 bra BB0_9;
+
+ mov.f32 %f146, 0f00000000;
+ mul.rn.f32 %f328, %f334, %f146;
+
+BB0_9:
+ mul.f32 %f147, %f328, 0f3F22F983;
+ cvt.rni.s32.f32 %r261, %f147;
+ cvt.rn.f32.s32 %f148, %r261;
+ neg.f32 %f149, %f148;
+ mov.f32 %f150, 0f3FC90FDA;
+ fma.rn.f32 %f151, %f149, %f150, %f328;
+ mov.f32 %f152, 0f33A22168;
+ fma.rn.f32 %f153, %f149, %f152, %f151;
+ mov.f32 %f154, 0f27C234C5;
+ fma.rn.f32 %f329, %f149, %f154, %f153;
+ abs.f32 %f155, %f328;
+ setp.leu.f32 %p12, %f155, 0f47CE4780;
+ @%p12 bra BB0_20;
+
+ mov.b32 %r13, %f328;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r123, %r13, 8;
+ or.b32 %r15, %r123, -2147483648;
+ add.u64 %rd42, %SP, 4;
+ cvta.to.local.u64 %rd108, %rd42;
+ mov.u32 %r253, 0;
+ mov.u64 %rd107, __cudart_i2opi_f;
+ mov.u32 %r252, -6;
+
+BB0_11:
+ .pragma "nounroll";
+ ld.const.u32 %r126, [%rd107];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r124, %r126, %r15, %r253;
+ madc.hi.u32 %r253, %r126, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd108], %r124;
+ add.s64 %rd108, %rd108, 4;
+ add.s64 %rd107, %rd107, 4;
+ add.s32 %r252, %r252, 1;
+ setp.ne.s32 %p13, %r252, 0;
+ @%p13 bra BB0_11;
+
+ and.b32 %r129, %r14, 255;
+ add.s32 %r130, %r129, -128;
+ shr.u32 %r131, %r130, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd44, %rd42;
+ st.local.u32 [%rd44+24], %r253;
+ mov.u32 %r132, 6;
+ sub.s32 %r133, %r132, %r131;
+ mul.wide.s32 %rd45, %r133, 4;
+ add.s64 %rd8, %rd44, %rd45;
+ ld.local.u32 %r254, [%rd8];
+ ld.local.u32 %r255, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p14, %r23, 0;
+ @%p14 bra BB0_14;
+
+ mov.u32 %r134, 32;
+ sub.s32 %r135, %r134, %r23;
+ shr.u32 %r136, %r255, %r135;
+ shl.b32 %r137, %r254, %r23;
+ add.s32 %r254, %r136, %r137;
+ ld.local.u32 %r138, [%rd8+-8];
+ shr.u32 %r139, %r138, %r135;
+ shl.b32 %r140, %r255, %r23;
+ add.s32 %r255, %r139, %r140;
+
+BB0_14:
+ shr.u32 %r141, %r255, 30;
+ shl.b32 %r142, %r254, 2;
+ add.s32 %r256, %r141, %r142;
+ shl.b32 %r29, %r255, 2;
+ shr.u32 %r143, %r256, 31;
+ shr.u32 %r144, %r254, 30;
+ add.s32 %r30, %r143, %r144;
+ setp.eq.s32 %p15, %r143, 0;
+ @%p15 bra BB0_15;
+ bra.uni BB0_16;
+
+BB0_15:
+ mov.u32 %r257, %r20;
+ mov.u32 %r258, %r29;
+ bra.uni BB0_17;
+
+BB0_16:
+ not.b32 %r145, %r256;
+ neg.s32 %r258, %r29;
+ setp.eq.s32 %p16, %r29, 0;
+ selp.u32 %r146, 1, 0, %p16;
+ add.s32 %r256, %r146, %r145;
+ xor.b32 %r257, %r20, -2147483648;
+
+BB0_17:
+ clz.b32 %r260, %r256;
+ setp.eq.s32 %p17, %r260, 0;
+ shl.b32 %r147, %r256, %r260;
+ mov.u32 %r148, 32;
+ sub.s32 %r149, %r148, %r260;
+ shr.u32 %r150, %r258, %r149;
+ add.s32 %r151, %r150, %r147;
+ selp.b32 %r38, %r256, %r151, %p17;
+ mov.u32 %r152, -921707870;
+ mul.hi.u32 %r259, %r38, %r152;
+ setp.eq.s32 %p18, %r20, 0;
+ neg.s32 %r153, %r30;
+ selp.b32 %r261, %r30, %r153, %p18;
+ setp.lt.s32 %p19, %r259, 1;
+ @%p19 bra BB0_19;
+
+ mul.lo.s32 %r154, %r38, -921707870;
+ shr.u32 %r155, %r154, 31;
+ shl.b32 %r156, %r259, 1;
+ add.s32 %r259, %r155, %r156;
+ add.s32 %r260, %r260, 1;
+
+BB0_19:
+ mov.u32 %r157, 126;
+ sub.s32 %r158, %r157, %r260;
+ shl.b32 %r159, %r158, 23;
+ add.s32 %r160, %r259, 1;
+ shr.u32 %r161, %r160, 7;
+ add.s32 %r162, %r161, 1;
+ shr.u32 %r163, %r162, 1;
+ add.s32 %r164, %r163, %r159;
+ or.b32 %r165, %r164, %r257;
+ mov.b32 %f329, %r165;
+
+BB0_20:
+ mul.rn.f32 %f32, %f329, %f329;
+ add.s32 %r46, %r261, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p20, %r47, 0;
+ @%p20 bra BB0_22;
+ bra.uni BB0_21;
+
+BB0_22:
+ mov.f32 %f158, 0f3C08839E;
+ mov.f32 %f159, 0fB94CA1F9;
+ fma.rn.f32 %f330, %f159, %f32, %f158;
+ bra.uni BB0_23;
+
+BB0_21:
+ mov.f32 %f156, 0fBAB6061A;
+ mov.f32 %f157, 0f37CCF5CE;
+ fma.rn.f32 %f330, %f157, %f32, %f156;
+
+BB0_23:
+ @%p20 bra BB0_25;
+ bra.uni BB0_24;
+
+BB0_25:
+ mov.f32 %f163, 0fBE2AAAA3;
+ fma.rn.f32 %f164, %f330, %f32, %f163;
+ mov.f32 %f165, 0f00000000;
+ fma.rn.f32 %f331, %f164, %f32, %f165;
+ bra.uni BB0_26;
+
+BB0_24:
+ mov.f32 %f160, 0f3D2AAAA5;
+ fma.rn.f32 %f161, %f330, %f32, %f160;
+ mov.f32 %f162, 0fBF000000;
+ fma.rn.f32 %f331, %f161, %f32, %f162;
+
+BB0_26:
+ fma.rn.f32 %f332, %f331, %f329, %f329;
+ @%p20 bra BB0_28;
+
+ mov.f32 %f166, 0f3F800000;
+ fma.rn.f32 %f332, %f331, %f32, %f166;
+
+BB0_28:
+ and.b32 %r166, %r46, 2;
+ setp.eq.s32 %p23, %r166, 0;
+ @%p23 bra BB0_30;
+
+ mov.f32 %f167, 0f00000000;
+ mov.f32 %f168, 0fBF800000;
+ fma.rn.f32 %f332, %f332, %f168, %f167;
+
+BB0_30:
+ @%p11 bra BB0_32;
+
+ mov.f32 %f169, 0f00000000;
+ mul.rn.f32 %f334, %f334, %f169;
+
+BB0_32:
+ mul.f32 %f170, %f334, 0f3F22F983;
+ cvt.rni.s32.f32 %r271, %f170;
+ cvt.rn.f32.s32 %f171, %r271;
+ neg.f32 %f172, %f171;
+ fma.rn.f32 %f174, %f172, %f150, %f334;
+ fma.rn.f32 %f176, %f172, %f152, %f174;
+ fma.rn.f32 %f335, %f172, %f154, %f176;
+ abs.f32 %f178, %f334;
+ setp.leu.f32 %p25, %f178, 0f47CE4780;
+ @%p25 bra BB0_43;
+
+ mov.b32 %r49, %f334;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r169, %r49, 8;
+ or.b32 %r51, %r169, -2147483648;
+ add.u64 %rd47, %SP, 4;
+ cvta.to.local.u64 %rd110, %rd47;
+ mov.u32 %r263, 0;
+ mov.u64 %rd109, __cudart_i2opi_f;
+ mov.u32 %r262, -6;
+
+BB0_34:
+ .pragma "nounroll";
+ ld.const.u32 %r172, [%rd109];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r170, %r172, %r51, %r263;
+ madc.hi.u32 %r263, %r172, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd110], %r170;
+ add.s64 %rd110, %rd110, 4;
+ add.s64 %rd109, %rd109, 4;
+ add.s32 %r262, %r262, 1;
+ setp.ne.s32 %p26, %r262, 0;
+ @%p26 bra BB0_34;
+
+ and.b32 %r175, %r50, 255;
+ add.s32 %r176, %r175, -128;
+ shr.u32 %r177, %r176, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd49, %rd47;
+ st.local.u32 [%rd49+24], %r263;
+ mov.u32 %r178, 6;
+ sub.s32 %r179, %r178, %r177;
+ mul.wide.s32 %rd50, %r179, 4;
+ add.s64 %rd14, %rd49, %rd50;
+ ld.local.u32 %r264, [%rd14];
+ ld.local.u32 %r265, [%rd14+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p27, %r59, 0;
+ @%p27 bra BB0_37;
+
+ mov.u32 %r180, 32;
+ sub.s32 %r181, %r180, %r59;
+ shr.u32 %r182, %r265, %r181;
+ shl.b32 %r183, %r264, %r59;
+ add.s32 %r264, %r182, %r183;
+ ld.local.u32 %r184, [%rd14+-8];
+ shr.u32 %r185, %r184, %r181;
+ shl.b32 %r186, %r265, %r59;
+ add.s32 %r265, %r185, %r186;
+
+BB0_37:
+ shr.u32 %r187, %r265, 30;
+ shl.b32 %r188, %r264, 2;
+ add.s32 %r266, %r187, %r188;
+ shl.b32 %r65, %r265, 2;
+ shr.u32 %r189, %r266, 31;
+ shr.u32 %r190, %r264, 30;
+ add.s32 %r66, %r189, %r190;
+ setp.eq.s32 %p28, %r189, 0;
+ @%p28 bra BB0_38;
+ bra.uni BB0_39;
+
+BB0_38:
+ mov.u32 %r267, %r56;
+ mov.u32 %r268, %r65;
+ bra.uni BB0_40;
+
+BB0_39:
+ not.b32 %r191, %r266;
+ neg.s32 %r268, %r65;
+ setp.eq.s32 %p29, %r65, 0;
+ selp.u32 %r192, 1, 0, %p29;
+ add.s32 %r266, %r192, %r191;
+ xor.b32 %r267, %r56, -2147483648;
+
+BB0_40:
+ clz.b32 %r270, %r266;
+ setp.eq.s32 %p30, %r270, 0;
+ shl.b32 %r193, %r266, %r270;
+ mov.u32 %r194, 32;
+ sub.s32 %r195, %r194, %r270;
+ shr.u32 %r196, %r268, %r195;
+ add.s32 %r197, %r196, %r193;
+ selp.b32 %r74, %r266, %r197, %p30;
+ mov.u32 %r198, -921707870;
+ mul.hi.u32 %r269, %r74, %r198;
+ setp.eq.s32 %p31, %r56, 0;
+ neg.s32 %r199, %r66;
+ selp.b32 %r271, %r66, %r199, %p31;
+ setp.lt.s32 %p32, %r269, 1;
+ @%p32 bra BB0_42;
+
+ mul.lo.s32 %r200, %r74, -921707870;
+ shr.u32 %r201, %r200, 31;
+ shl.b32 %r202, %r269, 1;
+ add.s32 %r269, %r201, %r202;
+ add.s32 %r270, %r270, 1;
+
+BB0_42:
+ mov.u32 %r203, 126;
+ sub.s32 %r204, %r203, %r270;
+ shl.b32 %r205, %r204, 23;
+ add.s32 %r206, %r269, 1;
+ shr.u32 %r207, %r206, 7;
+ add.s32 %r208, %r207, 1;
+ shr.u32 %r209, %r208, 1;
+ add.s32 %r210, %r209, %r205;
+ or.b32 %r211, %r210, %r267;
+ mov.b32 %f335, %r211;
+
+BB0_43:
+ mul.rn.f32 %f49, %f335, %f335;
+ and.b32 %r82, %r271, 1;
+ setp.eq.s32 %p33, %r82, 0;
+ @%p33 bra BB0_45;
+ bra.uni BB0_44;
+
+BB0_45:
+ mov.f32 %f181, 0f3C08839E;
+ mov.f32 %f182, 0fB94CA1F9;
+ fma.rn.f32 %f336, %f182, %f49, %f181;
+ bra.uni BB0_46;
+
+BB0_44:
+ mov.f32 %f179, 0fBAB6061A;
+ mov.f32 %f180, 0f37CCF5CE;
+ fma.rn.f32 %f336, %f180, %f49, %f179;
+
+BB0_46:
+ @%p33 bra BB0_48;
+ bra.uni BB0_47;
+
+BB0_48:
+ mov.f32 %f186, 0fBE2AAAA3;
+ fma.rn.f32 %f187, %f336, %f49, %f186;
+ mov.f32 %f188, 0f00000000;
+ fma.rn.f32 %f337, %f187, %f49, %f188;
+ bra.uni BB0_49;
+
+BB0_47:
+ mov.f32 %f183, 0f3D2AAAA5;
+ fma.rn.f32 %f184, %f336, %f49, %f183;
+ mov.f32 %f185, 0fBF000000;
+ fma.rn.f32 %f337, %f184, %f49, %f185;
+
+BB0_49:
+ fma.rn.f32 %f338, %f337, %f335, %f335;
+ @%p33 bra BB0_51;
+
+ mov.f32 %f189, 0f3F800000;
+ fma.rn.f32 %f338, %f337, %f49, %f189;
+
+BB0_51:
+ and.b32 %r212, %r271, 2;
+ setp.eq.s32 %p36, %r212, 0;
+ @%p36 bra BB0_53;
+
+ mov.f32 %f190, 0f00000000;
+ mov.f32 %f191, 0fBF800000;
+ fma.rn.f32 %f338, %f338, %f191, %f190;
+
+BB0_53:
+ mul.f32 %f200, %f24, %f332;
+ add.u64 %rd51, %SP, 0;
+ cvta.to.local.u64 %rd52, %rd51;
+ mul.f32 %f201, %f200, %f200;
+ mov.f32 %f202, 0f3F800000;
+ sub.f32 %f203, %f202, %f201;
+ mul.f32 %f204, %f24, %f338;
+ mul.f32 %f205, %f204, %f204;
+ sub.f32 %f206, %f203, %f205;
+ mov.f32 %f207, 0f00000000;
+ max.f32 %f208, %f207, %f206;
+ sqrt.rn.f32 %f209, %f208;
+ mul.f32 %f210, %f10, %f204;
+ mul.f32 %f211, %f11, %f204;
+ mul.f32 %f212, %f12, %f204;
+ fma.rn.f32 %f213, %f19, %f200, %f210;
+ fma.rn.f32 %f214, %f18, %f200, %f211;
+ fma.rn.f32 %f215, %f17, %f200, %f212;
+ fma.rn.f32 %f195, %f323, %f209, %f213;
+ fma.rn.f32 %f196, %f324, %f209, %f214;
+ fma.rn.f32 %f197, %f325, %f209, %f215;
+ ld.global.f32 %f199, [lightRadius];
+ mov.u32 %r216, 1065353216;
+ st.local.u32 [%rd52], %r216;
+ ld.global.u32 %r213, [root];
+ mov.u32 %r214, 1;
+ // inline asm
+ call _rt_trace_64, (%r213, %f7, %f8, %f9, %f195, %f196, %f197, %r214, %f22, %f199, %rd51, %r90);
+ // inline asm
+ ld.local.f32 %f216, [%rd52];
+ add.f32 %f340, %f340, %f216;
+ ld.global.u32 %r247, [samples];
+ add.s32 %r250, %r250, 1;
+ setp.lt.s32 %p37, %r250, %r247;
+ @%p37 bra BB0_7;
+
+BB0_54:
+ add.s32 %r248, %r248, 1;
+ setp.lt.s32 %p38, %r248, %r247;
+ @%p38 bra BB0_5;
+
+BB0_55:
+ mul.lo.s32 %r217, %r247, %r247;
+ cvt.rn.f32.s32 %f217, %r217;
+ div.rn.f32 %f218, %f340, %f217;
+ add.f32 %f219, %f218, 0fBF800000;
+ ld.global.f32 %f220, [intensity];
+ fma.rn.f32 %f221, %f220, %f219, 0f3F800000;
+ cvt.sat.f32.f32 %f64, %f221;
+ ld.global.u8 %rs10, [imageEnabled];
+ and.b16 %rs11, %rs10, 4;
+ setp.eq.s16 %p39, %rs11, 0;
+ @%p39 bra BB0_59;
+
+ ld.global.u32 %r218, [additive];
+ setp.eq.s32 %p40, %r218, 0;
+ cvt.u64.u32 %rd15, %r2;
+ cvt.u64.u32 %rd16, %r3;
+ mov.f32 %f222, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs12, %f222;}
+
+ // inline asm
+ @%p40 bra BB0_58;
+
+ mov.u64 %rd65, image_HDR;
+ cvta.global.u64 %rd54, %rd65;
+ mov.u32 %r222, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r89, %r222, %rd15, %rd16, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs19, %rs20, %rs21, %rs22}, [%rd53];
+ // inline asm
+ { cvt.f32.f16 %f223, %rs19;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f224, %rs20;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f225, %rs21;}
+
+ // inline asm
+ // inline asm
+ call (%rd59), _rt_buffer_get_64, (%rd54, %r89, %r222, %rd15, %rd16, %rd25, %rd25);
+ // inline asm
+ add.f32 %f226, %f64, %f223;
+ add.f32 %f227, %f64, %f224;
+ add.f32 %f228, %f64, %f225;
+ // inline asm
+ { cvt.rn.f16.f32 %rs18, %f228;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs17, %f227;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs16, %f226;}
+
+ // inline asm
+ st.v4.u16 [%rd59], {%rs16, %rs17, %rs18, %rs12};
+ bra.uni BB0_59;
+
+BB0_75:
+ mov.u64 %rd99, image_HDR;
+ cvta.global.u64 %rd94, %rd99;
+ mov.u32 %r243, 8;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd94, %r89, %r243, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f319, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs41, %f319;}
+
+ // inline asm
+ mov.u16 %rs42, 0;
+ st.v4.u16 [%rd93], {%rs41, %rs41, %rs41, %rs42};
+
+BB0_76:
+ ld.global.u8 %rs43, [imageEnabled];
+ and.b16 %rs44, %rs43, 8;
+ setp.eq.s16 %p60, %rs44, 0;
+ @%p60 bra BB0_78;
+
+ cvt.u64.u32 %rd102, %r2;
+ cvt.u64.u32 %rd103, %r3;
+ mov.u64 %rd106, image_Mask;
+ cvta.global.u64 %rd101, %rd106;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r89, %r89, %rd102, %rd103, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f322, 0f00000000;
+ cvt.rzi.u32.f32 %r246, %f322;
+ cvt.u16.u32 %rs45, %r246;
+ mov.u16 %rs46, 0;
+ st.v2.u8 [%rd100], {%rs45, %rs46};
+ bra.uni BB0_78;
+
+BB0_58:
+ mov.u64 %rd72, image_HDR;
+ cvta.global.u64 %rd67, %rd72;
+ mov.u32 %r224, 8;
+ // inline asm
+ call (%rd66), _rt_buffer_get_64, (%rd67, %r89, %r224, %rd15, %rd16, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f64;}
+
+ // inline asm
+ st.v4.u16 [%rd66], {%rs23, %rs23, %rs23, %rs12};
+
+BB0_59:
+ ld.global.u8 %rs24, [imageEnabled];
+ and.b16 %rs25, %rs24, 8;
+ setp.eq.s16 %p41, %rs25, 0;
+ @%p41 bra BB0_78;
+
+ cvt.u64.u32 %rd75, %r2;
+ cvt.u64.u32 %rd76, %r3;
+ mov.u64 %rd79, image_Mask;
+ cvta.global.u64 %rd74, %rd79;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r89, %r89, %rd75, %rd76, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f232, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f233, %f232;
+ fma.rn.f32 %f234, %f233, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f65, %f234;
+ abs.f32 %f66, %f64;
+ setp.lt.f32 %p42, %f66, 0f00800000;
+ mul.f32 %f235, %f66, 0f4B800000;
+ selp.f32 %f236, 0fC3170000, 0fC2FE0000, %p42;
+ selp.f32 %f237, %f235, %f66, %p42;
+ mov.b32 %r227, %f237;
+ and.b32 %r228, %r227, 8388607;
+ or.b32 %r229, %r228, 1065353216;
+ mov.b32 %f238, %r229;
+ shr.u32 %r230, %r227, 23;
+ cvt.rn.f32.u32 %f239, %r230;
+ add.f32 %f240, %f236, %f239;
+ setp.gt.f32 %p43, %f238, 0f3FB504F3;
+ mul.f32 %f241, %f238, 0f3F000000;
+ add.f32 %f242, %f240, 0f3F800000;
+ selp.f32 %f243, %f241, %f238, %p43;
+ selp.f32 %f244, %f242, %f240, %p43;
+ add.f32 %f245, %f243, 0fBF800000;
+ add.f32 %f231, %f243, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f230,%f231;
+ // inline asm
+ add.f32 %f246, %f245, %f245;
+ mul.f32 %f247, %f230, %f246;
+ mul.f32 %f248, %f247, %f247;
+ mov.f32 %f249, 0f3C4CAF63;
+ mov.f32 %f250, 0f3B18F0FE;
+ fma.rn.f32 %f251, %f250, %f248, %f249;
+ mov.f32 %f252, 0f3DAAAABD;
+ fma.rn.f32 %f253, %f251, %f248, %f252;
+ mul.rn.f32 %f254, %f253, %f248;
+ mul.rn.f32 %f255, %f254, %f247;
+ sub.f32 %f256, %f245, %f247;
+ neg.f32 %f257, %f247;
+ add.f32 %f258, %f256, %f256;
+ fma.rn.f32 %f259, %f257, %f245, %f258;
+ mul.rn.f32 %f260, %f230, %f259;
+ add.f32 %f261, %f255, %f247;
+ sub.f32 %f262, %f247, %f261;
+ add.f32 %f263, %f255, %f262;
+ add.f32 %f264, %f260, %f263;
+ add.f32 %f265, %f261, %f264;
+ sub.f32 %f266, %f261, %f265;
+ add.f32 %f267, %f264, %f266;
+ mov.f32 %f268, 0f3F317200;
+ mul.rn.f32 %f269, %f244, %f268;
+ mov.f32 %f270, 0f35BFBE8E;
+ mul.rn.f32 %f271, %f244, %f270;
+ add.f32 %f272, %f269, %f265;
+ sub.f32 %f273, %f269, %f272;
+ add.f32 %f274, %f265, %f273;
+ add.f32 %f275, %f267, %f274;
+ add.f32 %f276, %f271, %f275;
+ add.f32 %f277, %f272, %f276;
+ sub.f32 %f278, %f272, %f277;
+ add.f32 %f279, %f276, %f278;
+ mov.f32 %f280, 0f3EE8BA2E;
+ mul.rn.f32 %f281, %f280, %f277;
+ neg.f32 %f282, %f281;
+ fma.rn.f32 %f283, %f280, %f277, %f282;
+ fma.rn.f32 %f284, %f280, %f279, %f283;
+ mov.f32 %f285, 0f00000000;
+ fma.rn.f32 %f286, %f285, %f277, %f284;
+ add.rn.f32 %f287, %f281, %f286;
+ neg.f32 %f288, %f287;
+ add.rn.f32 %f289, %f281, %f288;
+ add.rn.f32 %f290, %f289, %f286;
+ mov.b32 %r231, %f287;
+ setp.eq.s32 %p44, %r231, 1118925336;
+ add.s32 %r232, %r231, -1;
+ mov.b32 %f291, %r232;
+ add.f32 %f292, %f290, 0f37000000;
+ selp.f32 %f293, %f291, %f287, %p44;
+ selp.f32 %f67, %f292, %f290, %p44;
+ mul.f32 %f294, %f293, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f295, %f294;
+ mov.f32 %f296, 0fBF317200;
+ fma.rn.f32 %f297, %f295, %f296, %f293;
+ mov.f32 %f298, 0fB5BFBE8E;
+ fma.rn.f32 %f299, %f295, %f298, %f297;
+ mul.f32 %f300, %f299, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f301, %f300;
+ add.f32 %f302, %f295, 0f00000000;
+ ex2.approx.f32 %f303, %f302;
+ mul.f32 %f304, %f301, %f303;
+ setp.lt.f32 %p45, %f293, 0fC2D20000;
+ selp.f32 %f305, 0f00000000, %f304, %p45;
+ setp.gt.f32 %p46, %f293, 0f42D20000;
+ selp.f32 %f342, 0f7F800000, %f305, %p46;
+ setp.eq.f32 %p47, %f342, 0f7F800000;
+ @%p47 bra BB0_62;
+
+ fma.rn.f32 %f342, %f342, %f67, %f342;
+
+BB0_62:
+ setp.lt.f32 %p48, %f64, 0f00000000;
+ setp.eq.f32 %p49, %f65, 0f3F800000;
+ and.pred %p1, %p48, %p49;
+ mov.b32 %r233, %f342;
+ xor.b32 %r234, %r233, -2147483648;
+ mov.b32 %f306, %r234;
+ selp.f32 %f344, %f306, %f342, %p1;
+ setp.eq.f32 %p50, %f64, 0f00000000;
+ @%p50 bra BB0_65;
+ bra.uni BB0_63;
+
+BB0_65:
+ add.f32 %f309, %f64, %f64;
+ selp.f32 %f344, %f309, 0f00000000, %p49;
+ bra.uni BB0_66;
+
+BB0_63:
+ setp.geu.f32 %p51, %f64, 0f00000000;
+ @%p51 bra BB0_66;
+
+ cvt.rzi.f32.f32 %f308, %f280;
+ setp.neu.f32 %p52, %f308, 0f3EE8BA2E;
+ selp.f32 %f344, 0f7FFFFFFF, %f344, %p52;
+
+BB0_66:
+ add.f32 %f310, %f66, 0f3EE8BA2E;
+ mov.b32 %r235, %f310;
+ setp.lt.s32 %p54, %r235, 2139095040;
+ @%p54 bra BB0_71;
+
+ setp.gtu.f32 %p55, %f66, 0f7F800000;
+ @%p55 bra BB0_70;
+ bra.uni BB0_68;
+
+BB0_70:
+ add.f32 %f344, %f64, 0f3EE8BA2E;
+ bra.uni BB0_71;
+
+BB0_68:
+ setp.neu.f32 %p56, %f66, 0f7F800000;
+ @%p56 bra BB0_71;
+
+ selp.f32 %f344, 0fFF800000, 0f7F800000, %p1;
+
+BB0_71:
+ mul.f32 %f311, %f344, 0f437F0000;
+ setp.eq.f32 %p57, %f64, 0f3F800000;
+ selp.f32 %f312, 0f437F0000, %f311, %p57;
+ cvt.rzi.u32.f32 %r236, %f312;
+ cvt.u16.u32 %rs26, %r236;
+ mov.u16 %rs27, 255;
+ st.v2.u8 [%rd73], {%rs26, %rs27};
+
+BB0_78:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAO.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAO.ptx.meta
new file mode 100644
index 00000000..d33679ad
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAO.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 63fee9abd3eaf564b81dc332e5b5955d
+timeCreated: 1534419389
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAOdir.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAOdir.ptx
new file mode 100644
index 00000000..edb76b28
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAOdir.ptx
@@ -0,0 +1,1098 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Dir[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .f32 intensity;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9intensityE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9intensityE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9intensityE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9intensityE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9intensityE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<63>;
+ .reg .b16 %rs<48>;
+ .reg .f32 %f<392>;
+ .reg .b32 %r<294>;
+ .reg .b64 %rd<126>;
+
+
+ mov.u64 %rd125, __local_depot0;
+ cvta.local.u64 %SP, %rd125;
+ ld.global.v2.u32 {%r97, %r98}, [pixelID];
+ cvt.u64.u32 %rd22, %r97;
+ cvt.u64.u32 %rd23, %r98;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r95, 2;
+ mov.u32 %r96, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r95, %r96, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r1, [%rd20];
+ shr.u32 %r101, %r1, 16;
+ cvt.u16.u32 %rs1, %r101;
+ and.b16 %rs3, %rs1, 255;
+ cvt.u16.u32 %rs4, %r1;
+ or.b16 %rs5, %rs4, %rs3;
+ setp.eq.s16 %p2, %rs5, 0;
+ mov.f32 %f358, 0f00000000;
+ mov.f32 %f359, %f358;
+ mov.f32 %f360, %f358;
+ @%p2 bra BB0_2;
+
+ ld.u8 %rs6, [%rd20+1];
+ and.b16 %rs8, %rs4, 255;
+ cvt.rn.f32.u16 %f96, %rs8;
+ div.rn.f32 %f97, %f96, 0f437F0000;
+ fma.rn.f32 %f98, %f97, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f99, %rs6;
+ div.rn.f32 %f100, %f99, 0f437F0000;
+ fma.rn.f32 %f101, %f100, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f102, %rs3;
+ div.rn.f32 %f103, %f102, 0f437F0000;
+ fma.rn.f32 %f104, %f103, 0f40000000, 0fBF800000;
+ mul.f32 %f105, %f101, %f101;
+ fma.rn.f32 %f106, %f98, %f98, %f105;
+ fma.rn.f32 %f107, %f104, %f104, %f106;
+ sqrt.rn.f32 %f108, %f107;
+ rcp.rn.f32 %f109, %f108;
+ mul.f32 %f358, %f98, %f109;
+ mul.f32 %f359, %f101, %f109;
+ mul.f32 %f360, %f104, %f109;
+
+BB0_2:
+ ld.global.v2.u32 {%r102, %r103}, [pixelID];
+ ld.global.v2.u32 {%r105, %r106}, [tileInfo];
+ add.s32 %r2, %r102, %r105;
+ add.s32 %r3, %r103, %r106;
+ setp.eq.f32 %p3, %f359, 0f00000000;
+ setp.eq.f32 %p4, %f358, 0f00000000;
+ and.pred %p5, %p4, %p3;
+ setp.eq.f32 %p6, %f360, 0f00000000;
+ and.pred %p7, %p5, %p6;
+ @%p7 bra BB0_75;
+ bra.uni BB0_3;
+
+BB0_75:
+ ld.global.u8 %rs30, [imageEnabled];
+ and.b16 %rs31, %rs30, 4;
+ setp.eq.s16 %p59, %rs31, 0;
+ @%p59 bra BB0_79;
+
+ ld.global.u32 %r250, [additive];
+ setp.eq.s32 %p60, %r250, 0;
+ cvt.u64.u32 %rd18, %r2;
+ cvt.u64.u32 %rd19, %r3;
+ @%p60 bra BB0_78;
+
+ mov.u64 %rd99, image_HDR;
+ cvta.global.u64 %rd88, %rd99;
+ mov.u32 %r254, 8;
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd88, %r95, %r254, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs38, %rs39, %rs40, %rs41}, [%rd87];
+ // inline asm
+ { cvt.f32.f16 %f348, %rs38;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f349, %rs39;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f350, %rs40;}
+
+ // inline asm
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd88, %r95, %r254, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f351, %f348, 0f00000000;
+ add.f32 %f352, %f349, 0f00000000;
+ add.f32 %f353, %f350, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f353;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f352;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs35, %f351;}
+
+ // inline asm
+ mov.u16 %rs42, 0;
+ st.v4.u16 [%rd93], {%rs35, %rs36, %rs37, %rs42};
+ bra.uni BB0_79;
+
+BB0_3:
+ ld.global.v2.u32 {%r114, %r115}, [pixelID];
+ cvt.u64.u32 %rd29, %r114;
+ cvt.u64.u32 %rd30, %r115;
+ mov.u64 %rd39, uvpos;
+ cvta.global.u64 %rd28, %rd39;
+ mov.u32 %r111, 12;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r95, %r111, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f114, [%rd27+8];
+ ld.f32 %f115, [%rd27+4];
+ ld.f32 %f116, [%rd27];
+ mul.f32 %f117, %f116, 0f3456BF95;
+ mul.f32 %f118, %f115, 0f3456BF95;
+ mul.f32 %f119, %f114, 0f3456BF95;
+ abs.f32 %f120, %f358;
+ div.rn.f32 %f121, %f117, %f120;
+ abs.f32 %f122, %f359;
+ div.rn.f32 %f123, %f118, %f122;
+ abs.f32 %f124, %f360;
+ div.rn.f32 %f125, %f119, %f124;
+ abs.f32 %f126, %f121;
+ abs.f32 %f127, %f123;
+ abs.f32 %f128, %f125;
+ mov.f32 %f129, 0f38D1B717;
+ max.f32 %f130, %f126, %f129;
+ max.f32 %f131, %f127, %f129;
+ max.f32 %f132, %f128, %f129;
+ fma.rn.f32 %f7, %f358, %f130, %f116;
+ fma.rn.f32 %f8, %f359, %f131, %f115;
+ fma.rn.f32 %f9, %f360, %f132, %f114;
+ setp.gt.f32 %p8, %f120, %f124;
+ neg.f32 %f133, %f359;
+ selp.f32 %f134, %f133, 0f00000000, %p8;
+ neg.f32 %f135, %f360;
+ selp.f32 %f136, %f358, %f135, %p8;
+ selp.f32 %f137, 0f00000000, %f359, %p8;
+ mul.f32 %f138, %f136, %f136;
+ fma.rn.f32 %f139, %f134, %f134, %f138;
+ fma.rn.f32 %f140, %f137, %f137, %f139;
+ sqrt.rn.f32 %f141, %f140;
+ rcp.rn.f32 %f142, %f141;
+ mul.f32 %f10, %f134, %f142;
+ mul.f32 %f11, %f136, %f142;
+ mul.f32 %f12, %f137, %f142;
+ ld.global.v2.u32 {%r118, %r119}, [pixelID];
+ cvt.u64.u32 %rd35, %r118;
+ cvt.u64.u32 %rd36, %r119;
+ mov.u64 %rd40, rnd_seeds;
+ cvta.global.u64 %rd34, %rd40;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r95, %r96, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ ld.global.u32 %r264, [samples];
+ mov.f32 %f381, 0f00000000;
+ setp.lt.s32 %p9, %r264, 1;
+ @%p9 bra BB0_4;
+
+ cvt.rn.f32.s32 %f147, %r264;
+ rcp.rn.f32 %f13, %f147;
+ ld.u32 %r290, [%rd33];
+ mul.f32 %f14, %f7, 0f3456BF95;
+ mul.f32 %f15, %f8, 0f3456BF95;
+ mul.f32 %f16, %f9, 0f3456BF95;
+ mul.f32 %f148, %f358, %f11;
+ mul.f32 %f149, %f359, %f10;
+ sub.f32 %f17, %f149, %f148;
+ mul.f32 %f150, %f360, %f10;
+ mul.f32 %f151, %f358, %f12;
+ sub.f32 %f18, %f151, %f150;
+ mul.f32 %f152, %f359, %f12;
+ mul.f32 %f153, %f360, %f11;
+ sub.f32 %f19, %f153, %f152;
+ mov.f32 %f381, 0f00000000;
+ mov.u32 %r265, 0;
+ abs.f32 %f154, %f15;
+ abs.f32 %f155, %f14;
+ max.f32 %f156, %f155, %f154;
+ abs.f32 %f157, %f16;
+ max.f32 %f158, %f156, %f157;
+ mov.f32 %f382, %f381;
+ mov.f32 %f383, %f381;
+ mov.f32 %f384, %f381;
+
+BB0_6:
+ setp.lt.s32 %p10, %r264, 1;
+ @%p10 bra BB0_55;
+
+ cvt.rn.f32.s32 %f24, %r265;
+ max.f32 %f25, %f158, %f129;
+ mov.u32 %r267, 0;
+
+BB0_8:
+ mad.lo.s32 %r124, %r290, 1664525, 1013904223;
+ and.b32 %r125, %r124, 16777215;
+ cvt.rn.f32.u32 %f160, %r125;
+ fma.rn.f32 %f161, %f160, 0f33800000, %f24;
+ mul.f32 %f162, %f13, %f161;
+ mad.lo.s32 %r290, %r124, 1664525, 1013904223;
+ and.b32 %r126, %r290, 16777215;
+ cvt.rn.f32.u32 %f163, %r126;
+ cvt.rn.f32.s32 %f164, %r267;
+ fma.rn.f32 %f165, %f163, 0f33800000, %f164;
+ mul.f32 %f166, %f13, %f165;
+ sqrt.rn.f32 %f30, %f162;
+ mul.f32 %f375, %f166, 0f40C90FDB;
+ abs.f32 %f32, %f375;
+ setp.neu.f32 %p11, %f32, 0f7F800000;
+ mov.f32 %f369, %f375;
+ @%p11 bra BB0_10;
+
+ mov.f32 %f167, 0f00000000;
+ mul.rn.f32 %f369, %f375, %f167;
+
+BB0_10:
+ mul.f32 %f168, %f369, 0f3F22F983;
+ cvt.rni.s32.f32 %r278, %f168;
+ cvt.rn.f32.s32 %f169, %r278;
+ neg.f32 %f170, %f169;
+ mov.f32 %f171, 0f3FC90FDA;
+ fma.rn.f32 %f172, %f170, %f171, %f369;
+ mov.f32 %f173, 0f33A22168;
+ fma.rn.f32 %f174, %f170, %f173, %f172;
+ mov.f32 %f175, 0f27C234C5;
+ fma.rn.f32 %f370, %f170, %f175, %f174;
+ abs.f32 %f176, %f369;
+ setp.leu.f32 %p12, %f176, 0f47CE4780;
+ @%p12 bra BB0_21;
+
+ mov.b32 %r13, %f369;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r129, %r13, 8;
+ or.b32 %r15, %r129, -2147483648;
+ add.u64 %rd42, %SP, 4;
+ cvta.to.local.u64 %rd122, %rd42;
+ mov.u32 %r270, 0;
+ mov.u64 %rd121, __cudart_i2opi_f;
+ mov.u32 %r269, -6;
+
+BB0_12:
+ .pragma "nounroll";
+ ld.const.u32 %r132, [%rd121];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r130, %r132, %r15, %r270;
+ madc.hi.u32 %r270, %r132, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd122], %r130;
+ add.s64 %rd122, %rd122, 4;
+ add.s64 %rd121, %rd121, 4;
+ add.s32 %r269, %r269, 1;
+ setp.ne.s32 %p13, %r269, 0;
+ @%p13 bra BB0_12;
+
+ and.b32 %r135, %r14, 255;
+ add.s32 %r136, %r135, -128;
+ shr.u32 %r137, %r136, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd44, %rd42;
+ st.local.u32 [%rd44+24], %r270;
+ mov.u32 %r138, 6;
+ sub.s32 %r139, %r138, %r137;
+ mul.wide.s32 %rd45, %r139, 4;
+ add.s64 %rd8, %rd44, %rd45;
+ ld.local.u32 %r271, [%rd8];
+ ld.local.u32 %r272, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p14, %r23, 0;
+ @%p14 bra BB0_15;
+
+ mov.u32 %r140, 32;
+ sub.s32 %r141, %r140, %r23;
+ shr.u32 %r142, %r272, %r141;
+ shl.b32 %r143, %r271, %r23;
+ add.s32 %r271, %r142, %r143;
+ ld.local.u32 %r144, [%rd8+-8];
+ shr.u32 %r145, %r144, %r141;
+ shl.b32 %r146, %r272, %r23;
+ add.s32 %r272, %r145, %r146;
+
+BB0_15:
+ shr.u32 %r147, %r272, 30;
+ shl.b32 %r148, %r271, 2;
+ add.s32 %r273, %r147, %r148;
+ shl.b32 %r29, %r272, 2;
+ shr.u32 %r149, %r273, 31;
+ shr.u32 %r150, %r271, 30;
+ add.s32 %r30, %r149, %r150;
+ setp.eq.s32 %p15, %r149, 0;
+ @%p15 bra BB0_16;
+ bra.uni BB0_17;
+
+BB0_16:
+ mov.u32 %r274, %r20;
+ mov.u32 %r275, %r29;
+ bra.uni BB0_18;
+
+BB0_17:
+ not.b32 %r151, %r273;
+ neg.s32 %r275, %r29;
+ setp.eq.s32 %p16, %r29, 0;
+ selp.u32 %r152, 1, 0, %p16;
+ add.s32 %r273, %r152, %r151;
+ xor.b32 %r274, %r20, -2147483648;
+
+BB0_18:
+ clz.b32 %r277, %r273;
+ setp.eq.s32 %p17, %r277, 0;
+ shl.b32 %r153, %r273, %r277;
+ mov.u32 %r154, 32;
+ sub.s32 %r155, %r154, %r277;
+ shr.u32 %r156, %r275, %r155;
+ add.s32 %r157, %r156, %r153;
+ selp.b32 %r38, %r273, %r157, %p17;
+ mov.u32 %r158, -921707870;
+ mul.hi.u32 %r276, %r38, %r158;
+ setp.eq.s32 %p18, %r20, 0;
+ neg.s32 %r159, %r30;
+ selp.b32 %r278, %r30, %r159, %p18;
+ setp.lt.s32 %p19, %r276, 1;
+ @%p19 bra BB0_20;
+
+ mul.lo.s32 %r160, %r38, -921707870;
+ shr.u32 %r161, %r160, 31;
+ shl.b32 %r162, %r276, 1;
+ add.s32 %r276, %r161, %r162;
+ add.s32 %r277, %r277, 1;
+
+BB0_20:
+ mov.u32 %r163, 126;
+ sub.s32 %r164, %r163, %r277;
+ shl.b32 %r165, %r164, 23;
+ add.s32 %r166, %r276, 1;
+ shr.u32 %r167, %r166, 7;
+ add.s32 %r168, %r167, 1;
+ shr.u32 %r169, %r168, 1;
+ add.s32 %r170, %r169, %r165;
+ or.b32 %r171, %r170, %r274;
+ mov.b32 %f370, %r171;
+
+BB0_21:
+ mul.rn.f32 %f38, %f370, %f370;
+ add.s32 %r46, %r278, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p20, %r47, 0;
+ @%p20 bra BB0_23;
+ bra.uni BB0_22;
+
+BB0_23:
+ mov.f32 %f179, 0f3C08839E;
+ mov.f32 %f180, 0fB94CA1F9;
+ fma.rn.f32 %f371, %f180, %f38, %f179;
+ bra.uni BB0_24;
+
+BB0_22:
+ mov.f32 %f177, 0fBAB6061A;
+ mov.f32 %f178, 0f37CCF5CE;
+ fma.rn.f32 %f371, %f178, %f38, %f177;
+
+BB0_24:
+ @%p20 bra BB0_26;
+ bra.uni BB0_25;
+
+BB0_26:
+ mov.f32 %f184, 0fBE2AAAA3;
+ fma.rn.f32 %f185, %f371, %f38, %f184;
+ mov.f32 %f186, 0f00000000;
+ fma.rn.f32 %f372, %f185, %f38, %f186;
+ bra.uni BB0_27;
+
+BB0_25:
+ mov.f32 %f181, 0f3D2AAAA5;
+ fma.rn.f32 %f182, %f371, %f38, %f181;
+ mov.f32 %f183, 0fBF000000;
+ fma.rn.f32 %f372, %f182, %f38, %f183;
+
+BB0_27:
+ fma.rn.f32 %f373, %f372, %f370, %f370;
+ @%p20 bra BB0_29;
+
+ mov.f32 %f187, 0f3F800000;
+ fma.rn.f32 %f373, %f372, %f38, %f187;
+
+BB0_29:
+ and.b32 %r172, %r46, 2;
+ setp.eq.s32 %p23, %r172, 0;
+ @%p23 bra BB0_31;
+
+ mov.f32 %f188, 0f00000000;
+ mov.f32 %f189, 0fBF800000;
+ fma.rn.f32 %f373, %f373, %f189, %f188;
+
+BB0_31:
+ @%p11 bra BB0_33;
+
+ mov.f32 %f190, 0f00000000;
+ mul.rn.f32 %f375, %f375, %f190;
+
+BB0_33:
+ mul.f32 %f191, %f375, 0f3F22F983;
+ cvt.rni.s32.f32 %r288, %f191;
+ cvt.rn.f32.s32 %f192, %r288;
+ neg.f32 %f193, %f192;
+ fma.rn.f32 %f195, %f193, %f171, %f375;
+ fma.rn.f32 %f197, %f193, %f173, %f195;
+ fma.rn.f32 %f376, %f193, %f175, %f197;
+ abs.f32 %f199, %f375;
+ setp.leu.f32 %p25, %f199, 0f47CE4780;
+ @%p25 bra BB0_44;
+
+ mov.b32 %r49, %f375;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r175, %r49, 8;
+ or.b32 %r51, %r175, -2147483648;
+ add.u64 %rd47, %SP, 4;
+ cvta.to.local.u64 %rd124, %rd47;
+ mov.u32 %r280, 0;
+ mov.u64 %rd123, __cudart_i2opi_f;
+ mov.u32 %r279, -6;
+
+BB0_35:
+ .pragma "nounroll";
+ ld.const.u32 %r178, [%rd123];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r176, %r178, %r51, %r280;
+ madc.hi.u32 %r280, %r178, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd124], %r176;
+ add.s64 %rd124, %rd124, 4;
+ add.s64 %rd123, %rd123, 4;
+ add.s32 %r279, %r279, 1;
+ setp.ne.s32 %p26, %r279, 0;
+ @%p26 bra BB0_35;
+
+ and.b32 %r181, %r50, 255;
+ add.s32 %r182, %r181, -128;
+ shr.u32 %r183, %r182, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd49, %rd47;
+ st.local.u32 [%rd49+24], %r280;
+ mov.u32 %r184, 6;
+ sub.s32 %r185, %r184, %r183;
+ mul.wide.s32 %rd50, %r185, 4;
+ add.s64 %rd14, %rd49, %rd50;
+ ld.local.u32 %r281, [%rd14];
+ ld.local.u32 %r282, [%rd14+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p27, %r59, 0;
+ @%p27 bra BB0_38;
+
+ mov.u32 %r186, 32;
+ sub.s32 %r187, %r186, %r59;
+ shr.u32 %r188, %r282, %r187;
+ shl.b32 %r189, %r281, %r59;
+ add.s32 %r281, %r188, %r189;
+ ld.local.u32 %r190, [%rd14+-8];
+ shr.u32 %r191, %r190, %r187;
+ shl.b32 %r192, %r282, %r59;
+ add.s32 %r282, %r191, %r192;
+
+BB0_38:
+ shr.u32 %r193, %r282, 30;
+ shl.b32 %r194, %r281, 2;
+ add.s32 %r283, %r193, %r194;
+ shl.b32 %r65, %r282, 2;
+ shr.u32 %r195, %r283, 31;
+ shr.u32 %r196, %r281, 30;
+ add.s32 %r66, %r195, %r196;
+ setp.eq.s32 %p28, %r195, 0;
+ @%p28 bra BB0_39;
+ bra.uni BB0_40;
+
+BB0_39:
+ mov.u32 %r284, %r56;
+ mov.u32 %r285, %r65;
+ bra.uni BB0_41;
+
+BB0_40:
+ not.b32 %r197, %r283;
+ neg.s32 %r285, %r65;
+ setp.eq.s32 %p29, %r65, 0;
+ selp.u32 %r198, 1, 0, %p29;
+ add.s32 %r283, %r198, %r197;
+ xor.b32 %r284, %r56, -2147483648;
+
+BB0_41:
+ clz.b32 %r287, %r283;
+ setp.eq.s32 %p30, %r287, 0;
+ shl.b32 %r199, %r283, %r287;
+ mov.u32 %r200, 32;
+ sub.s32 %r201, %r200, %r287;
+ shr.u32 %r202, %r285, %r201;
+ add.s32 %r203, %r202, %r199;
+ selp.b32 %r74, %r283, %r203, %p30;
+ mov.u32 %r204, -921707870;
+ mul.hi.u32 %r286, %r74, %r204;
+ setp.eq.s32 %p31, %r56, 0;
+ neg.s32 %r205, %r66;
+ selp.b32 %r288, %r66, %r205, %p31;
+ setp.lt.s32 %p32, %r286, 1;
+ @%p32 bra BB0_43;
+
+ mul.lo.s32 %r206, %r74, -921707870;
+ shr.u32 %r207, %r206, 31;
+ shl.b32 %r208, %r286, 1;
+ add.s32 %r286, %r207, %r208;
+ add.s32 %r287, %r287, 1;
+
+BB0_43:
+ mov.u32 %r209, 126;
+ sub.s32 %r210, %r209, %r287;
+ shl.b32 %r211, %r210, 23;
+ add.s32 %r212, %r286, 1;
+ shr.u32 %r213, %r212, 7;
+ add.s32 %r214, %r213, 1;
+ shr.u32 %r215, %r214, 1;
+ add.s32 %r216, %r215, %r211;
+ or.b32 %r217, %r216, %r284;
+ mov.b32 %f376, %r217;
+
+BB0_44:
+ mul.rn.f32 %f55, %f376, %f376;
+ and.b32 %r82, %r288, 1;
+ setp.eq.s32 %p33, %r82, 0;
+ @%p33 bra BB0_46;
+ bra.uni BB0_45;
+
+BB0_46:
+ mov.f32 %f202, 0f3C08839E;
+ mov.f32 %f203, 0fB94CA1F9;
+ fma.rn.f32 %f377, %f203, %f55, %f202;
+ bra.uni BB0_47;
+
+BB0_45:
+ mov.f32 %f200, 0fBAB6061A;
+ mov.f32 %f201, 0f37CCF5CE;
+ fma.rn.f32 %f377, %f201, %f55, %f200;
+
+BB0_47:
+ @%p33 bra BB0_49;
+ bra.uni BB0_48;
+
+BB0_49:
+ mov.f32 %f207, 0fBE2AAAA3;
+ fma.rn.f32 %f208, %f377, %f55, %f207;
+ mov.f32 %f209, 0f00000000;
+ fma.rn.f32 %f378, %f208, %f55, %f209;
+ bra.uni BB0_50;
+
+BB0_48:
+ mov.f32 %f204, 0f3D2AAAA5;
+ fma.rn.f32 %f205, %f377, %f55, %f204;
+ mov.f32 %f206, 0fBF000000;
+ fma.rn.f32 %f378, %f205, %f55, %f206;
+
+BB0_50:
+ fma.rn.f32 %f379, %f378, %f376, %f376;
+ @%p33 bra BB0_52;
+
+ mov.f32 %f210, 0f3F800000;
+ fma.rn.f32 %f379, %f378, %f55, %f210;
+
+BB0_52:
+ and.b32 %r218, %r288, 2;
+ setp.eq.s32 %p36, %r218, 0;
+ @%p36 bra BB0_54;
+
+ mov.f32 %f211, 0f00000000;
+ mov.f32 %f212, 0fBF800000;
+ fma.rn.f32 %f379, %f379, %f212, %f211;
+
+BB0_54:
+ mul.f32 %f221, %f30, %f373;
+ add.u64 %rd51, %SP, 0;
+ cvta.to.local.u64 %rd52, %rd51;
+ mul.f32 %f222, %f221, %f221;
+ mov.f32 %f223, 0f3F800000;
+ sub.f32 %f224, %f223, %f222;
+ mul.f32 %f225, %f30, %f379;
+ mul.f32 %f226, %f225, %f225;
+ sub.f32 %f227, %f224, %f226;
+ mov.f32 %f228, 0f00000000;
+ max.f32 %f229, %f228, %f227;
+ sqrt.rn.f32 %f230, %f229;
+ mul.f32 %f231, %f10, %f225;
+ mul.f32 %f232, %f11, %f225;
+ mul.f32 %f233, %f12, %f225;
+ fma.rn.f32 %f234, %f19, %f221, %f231;
+ fma.rn.f32 %f235, %f18, %f221, %f232;
+ fma.rn.f32 %f236, %f17, %f221, %f233;
+ fma.rn.f32 %f216, %f358, %f230, %f234;
+ fma.rn.f32 %f217, %f359, %f230, %f235;
+ fma.rn.f32 %f218, %f360, %f230, %f236;
+ ld.global.f32 %f220, [lightRadius];
+ mov.u32 %r222, 1065353216;
+ st.local.u32 [%rd52], %r222;
+ ld.global.u32 %r219, [root];
+ mov.u32 %r220, 1;
+ // inline asm
+ call _rt_trace_64, (%r219, %f7, %f8, %f9, %f216, %f217, %f218, %r220, %f25, %f220, %rd51, %r96);
+ // inline asm
+ ld.local.f32 %f237, [%rd52];
+ add.f32 %f381, %f381, %f237;
+ fma.rn.f32 %f384, %f216, %f237, %f384;
+ fma.rn.f32 %f383, %f217, %f237, %f383;
+ fma.rn.f32 %f382, %f218, %f237, %f382;
+ ld.global.u32 %r264, [samples];
+ add.s32 %r267, %r267, 1;
+ setp.lt.s32 %p37, %r267, %r264;
+ @%p37 bra BB0_8;
+
+BB0_55:
+ add.s32 %r265, %r265, 1;
+ setp.lt.s32 %p38, %r265, %r264;
+ @%p38 bra BB0_6;
+ bra.uni BB0_56;
+
+BB0_4:
+ mov.f32 %f382, %f381;
+ mov.f32 %f383, %f381;
+ mov.f32 %f384, %f381;
+
+BB0_56:
+ mul.lo.s32 %r223, %r264, %r264;
+ cvt.rn.f32.s32 %f238, %r223;
+ div.rn.f32 %f239, %f381, %f238;
+ add.f32 %f240, %f239, 0fBF800000;
+ ld.global.f32 %f241, [intensity];
+ fma.rn.f32 %f242, %f241, %f240, 0f3F800000;
+ cvt.sat.f32.f32 %f79, %f242;
+ ld.global.u8 %rs10, [imageEnabled];
+ and.b16 %rs11, %rs10, 4;
+ setp.eq.s16 %p39, %rs11, 0;
+ @%p39 bra BB0_60;
+
+ ld.global.u32 %r224, [additive];
+ setp.eq.s32 %p40, %r224, 0;
+ cvt.u64.u32 %rd15, %r2;
+ cvt.u64.u32 %rd16, %r3;
+ mov.f32 %f243, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs12, %f243;}
+
+ // inline asm
+ @%p40 bra BB0_59;
+
+ mov.u64 %rd65, image_HDR;
+ cvta.global.u64 %rd54, %rd65;
+ mov.u32 %r228, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r95, %r228, %rd15, %rd16, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs19, %rs20, %rs21, %rs22}, [%rd53];
+ // inline asm
+ { cvt.f32.f16 %f244, %rs19;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f245, %rs20;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f246, %rs21;}
+
+ // inline asm
+ // inline asm
+ call (%rd59), _rt_buffer_get_64, (%rd54, %r95, %r228, %rd15, %rd16, %rd25, %rd25);
+ // inline asm
+ add.f32 %f247, %f79, %f244;
+ add.f32 %f248, %f79, %f245;
+ add.f32 %f249, %f79, %f246;
+ // inline asm
+ { cvt.rn.f16.f32 %rs18, %f249;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs17, %f248;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs16, %f247;}
+
+ // inline asm
+ st.v4.u16 [%rd59], {%rs16, %rs17, %rs18, %rs12};
+ bra.uni BB0_60;
+
+BB0_78:
+ mov.u64 %rd106, image_HDR;
+ cvta.global.u64 %rd101, %rd106;
+ mov.u32 %r256, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r95, %r256, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f354, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f354;}
+
+ // inline asm
+ mov.u16 %rs44, 0;
+ st.v4.u16 [%rd100], {%rs43, %rs43, %rs43, %rs44};
+
+BB0_79:
+ ld.global.u32 %r293, [imageEnabled];
+ and.b32 %r257, %r293, 8;
+ setp.eq.s32 %p61, %r257, 0;
+ @%p61 bra BB0_81;
+
+ cvt.u64.u32 %rd109, %r2;
+ cvt.u64.u32 %rd110, %r3;
+ mov.u64 %rd113, image_Mask;
+ cvta.global.u64 %rd108, %rd113;
+ // inline asm
+ call (%rd107), _rt_buffer_get_64, (%rd108, %r95, %r95, %rd109, %rd110, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f357, 0f00000000;
+ cvt.rzi.u32.f32 %r260, %f357;
+ cvt.u16.u32 %rs45, %r260;
+ mov.u16 %rs46, 0;
+ st.v2.u8 [%rd107], {%rs45, %rs46};
+ ld.global.u32 %r293, [imageEnabled];
+
+BB0_81:
+ and.b32 %r261, %r293, 64;
+ setp.eq.s32 %p62, %r261, 0;
+ @%p62 bra BB0_83;
+
+ cvt.u64.u32 %rd116, %r2;
+ cvt.u64.u32 %rd117, %r3;
+ mov.u64 %rd120, image_Dir;
+ cvta.global.u64 %rd115, %rd120;
+ // inline asm
+ call (%rd114), _rt_buffer_get_64, (%rd115, %r95, %r96, %rd116, %rd117, %rd25, %rd25);
+ // inline asm
+ mov.u16 %rs47, 0;
+ st.v4.u8 [%rd114], {%rs47, %rs47, %rs47, %rs47};
+ bra.uni BB0_83;
+
+BB0_59:
+ mov.u64 %rd72, image_HDR;
+ cvta.global.u64 %rd67, %rd72;
+ mov.u32 %r230, 8;
+ // inline asm
+ call (%rd66), _rt_buffer_get_64, (%rd67, %r95, %r230, %rd15, %rd16, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f79;}
+
+ // inline asm
+ st.v4.u16 [%rd66], {%rs23, %rs23, %rs23, %rs12};
+
+BB0_60:
+ ld.global.u32 %r292, [imageEnabled];
+ and.b32 %r231, %r292, 8;
+ setp.eq.s32 %p41, %r231, 0;
+ @%p41 bra BB0_73;
+
+ cvt.u64.u32 %rd75, %r2;
+ cvt.u64.u32 %rd76, %r3;
+ mov.u64 %rd79, image_Mask;
+ cvta.global.u64 %rd74, %rd79;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r95, %r95, %rd75, %rd76, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f253, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f254, %f253;
+ fma.rn.f32 %f255, %f254, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f80, %f255;
+ abs.f32 %f81, %f79;
+ setp.lt.f32 %p42, %f81, 0f00800000;
+ mul.f32 %f256, %f81, 0f4B800000;
+ selp.f32 %f257, 0fC3170000, 0fC2FE0000, %p42;
+ selp.f32 %f258, %f256, %f81, %p42;
+ mov.b32 %r234, %f258;
+ and.b32 %r235, %r234, 8388607;
+ or.b32 %r236, %r235, 1065353216;
+ mov.b32 %f259, %r236;
+ shr.u32 %r237, %r234, 23;
+ cvt.rn.f32.u32 %f260, %r237;
+ add.f32 %f261, %f257, %f260;
+ setp.gt.f32 %p43, %f259, 0f3FB504F3;
+ mul.f32 %f262, %f259, 0f3F000000;
+ add.f32 %f263, %f261, 0f3F800000;
+ selp.f32 %f264, %f262, %f259, %p43;
+ selp.f32 %f265, %f263, %f261, %p43;
+ add.f32 %f266, %f264, 0fBF800000;
+ add.f32 %f252, %f264, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f251,%f252;
+ // inline asm
+ add.f32 %f267, %f266, %f266;
+ mul.f32 %f268, %f251, %f267;
+ mul.f32 %f269, %f268, %f268;
+ mov.f32 %f270, 0f3C4CAF63;
+ mov.f32 %f271, 0f3B18F0FE;
+ fma.rn.f32 %f272, %f271, %f269, %f270;
+ mov.f32 %f273, 0f3DAAAABD;
+ fma.rn.f32 %f274, %f272, %f269, %f273;
+ mul.rn.f32 %f275, %f274, %f269;
+ mul.rn.f32 %f276, %f275, %f268;
+ sub.f32 %f277, %f266, %f268;
+ neg.f32 %f278, %f268;
+ add.f32 %f279, %f277, %f277;
+ fma.rn.f32 %f280, %f278, %f266, %f279;
+ mul.rn.f32 %f281, %f251, %f280;
+ add.f32 %f282, %f276, %f268;
+ sub.f32 %f283, %f268, %f282;
+ add.f32 %f284, %f276, %f283;
+ add.f32 %f285, %f281, %f284;
+ add.f32 %f286, %f282, %f285;
+ sub.f32 %f287, %f282, %f286;
+ add.f32 %f288, %f285, %f287;
+ mov.f32 %f289, 0f3F317200;
+ mul.rn.f32 %f290, %f265, %f289;
+ mov.f32 %f291, 0f35BFBE8E;
+ mul.rn.f32 %f292, %f265, %f291;
+ add.f32 %f293, %f290, %f286;
+ sub.f32 %f294, %f290, %f293;
+ add.f32 %f295, %f286, %f294;
+ add.f32 %f296, %f288, %f295;
+ add.f32 %f297, %f292, %f296;
+ add.f32 %f298, %f293, %f297;
+ sub.f32 %f299, %f293, %f298;
+ add.f32 %f300, %f297, %f299;
+ mov.f32 %f301, 0f3EE8BA2E;
+ mul.rn.f32 %f302, %f301, %f298;
+ neg.f32 %f303, %f302;
+ fma.rn.f32 %f304, %f301, %f298, %f303;
+ fma.rn.f32 %f305, %f301, %f300, %f304;
+ mov.f32 %f306, 0f00000000;
+ fma.rn.f32 %f307, %f306, %f298, %f305;
+ add.rn.f32 %f308, %f302, %f307;
+ neg.f32 %f309, %f308;
+ add.rn.f32 %f310, %f302, %f309;
+ add.rn.f32 %f311, %f310, %f307;
+ mov.b32 %r238, %f308;
+ setp.eq.s32 %p44, %r238, 1118925336;
+ add.s32 %r239, %r238, -1;
+ mov.b32 %f312, %r239;
+ add.f32 %f313, %f311, 0f37000000;
+ selp.f32 %f314, %f312, %f308, %p44;
+ selp.f32 %f82, %f313, %f311, %p44;
+ mul.f32 %f315, %f314, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f316, %f315;
+ mov.f32 %f317, 0fBF317200;
+ fma.rn.f32 %f318, %f316, %f317, %f314;
+ mov.f32 %f319, 0fB5BFBE8E;
+ fma.rn.f32 %f320, %f316, %f319, %f318;
+ mul.f32 %f321, %f320, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f322, %f321;
+ add.f32 %f323, %f316, 0f00000000;
+ ex2.approx.f32 %f324, %f323;
+ mul.f32 %f325, %f322, %f324;
+ setp.lt.f32 %p45, %f314, 0fC2D20000;
+ selp.f32 %f326, 0f00000000, %f325, %p45;
+ setp.gt.f32 %p46, %f314, 0f42D20000;
+ selp.f32 %f389, 0f7F800000, %f326, %p46;
+ setp.eq.f32 %p47, %f389, 0f7F800000;
+ @%p47 bra BB0_63;
+
+ fma.rn.f32 %f389, %f389, %f82, %f389;
+
+BB0_63:
+ setp.lt.f32 %p48, %f79, 0f00000000;
+ setp.eq.f32 %p49, %f80, 0f3F800000;
+ and.pred %p1, %p48, %p49;
+ mov.b32 %r240, %f389;
+ xor.b32 %r241, %r240, -2147483648;
+ mov.b32 %f327, %r241;
+ selp.f32 %f391, %f327, %f389, %p1;
+ setp.eq.f32 %p50, %f79, 0f00000000;
+ @%p50 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f330, %f79, %f79;
+ selp.f32 %f391, %f330, 0f00000000, %p49;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.geu.f32 %p51, %f79, 0f00000000;
+ @%p51 bra BB0_67;
+
+ cvt.rzi.f32.f32 %f329, %f301;
+ setp.neu.f32 %p52, %f329, 0f3EE8BA2E;
+ selp.f32 %f391, 0f7FFFFFFF, %f391, %p52;
+
+BB0_67:
+ add.f32 %f331, %f81, 0f3EE8BA2E;
+ mov.b32 %r242, %f331;
+ setp.lt.s32 %p54, %r242, 2139095040;
+ @%p54 bra BB0_72;
+
+ setp.gtu.f32 %p55, %f81, 0f7F800000;
+ @%p55 bra BB0_71;
+ bra.uni BB0_69;
+
+BB0_71:
+ add.f32 %f391, %f79, 0f3EE8BA2E;
+ bra.uni BB0_72;
+
+BB0_69:
+ setp.neu.f32 %p56, %f81, 0f7F800000;
+ @%p56 bra BB0_72;
+
+ selp.f32 %f391, 0fFF800000, 0f7F800000, %p1;
+
+BB0_72:
+ mul.f32 %f332, %f391, 0f437F0000;
+ setp.eq.f32 %p57, %f79, 0f3F800000;
+ selp.f32 %f333, 0f437F0000, %f332, %p57;
+ cvt.rzi.u32.f32 %r243, %f333;
+ cvt.u16.u32 %rs24, %r243;
+ mov.u16 %rs25, 255;
+ st.v2.u8 [%rd73], {%rs24, %rs25};
+ ld.global.u32 %r292, [imageEnabled];
+
+BB0_73:
+ and.b32 %r244, %r292, 64;
+ setp.eq.s32 %p58, %r244, 0;
+ @%p58 bra BB0_83;
+
+ mul.f32 %f334, %f383, %f383;
+ fma.rn.f32 %f335, %f384, %f384, %f334;
+ fma.rn.f32 %f336, %f382, %f382, %f335;
+ sqrt.rn.f32 %f337, %f336;
+ rcp.rn.f32 %f338, %f337;
+ mul.f32 %f339, %f384, %f338;
+ mul.f32 %f340, %f383, %f338;
+ mul.f32 %f341, %f382, %f338;
+ cvt.u64.u32 %rd83, %r3;
+ cvt.u64.u32 %rd82, %r2;
+ mov.u64 %rd86, image_Dir;
+ cvta.global.u64 %rd81, %rd86;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r95, %r96, %rd82, %rd83, %rd25, %rd25);
+ // inline asm
+ fma.rn.f32 %f342, %f339, 0f3F000000, 0f3F000000;
+ mul.f32 %f343, %f342, 0f437F0000;
+ cvt.rzi.u32.f32 %r247, %f343;
+ fma.rn.f32 %f344, %f340, 0f3F000000, 0f3F000000;
+ mul.f32 %f345, %f344, 0f437F0000;
+ cvt.rzi.u32.f32 %r248, %f345;
+ fma.rn.f32 %f346, %f341, 0f3F000000, 0f3F000000;
+ mul.f32 %f347, %f346, 0f437F0000;
+ cvt.rzi.u32.f32 %r249, %f347;
+ cvt.u16.u32 %rs26, %r249;
+ cvt.u16.u32 %rs27, %r248;
+ cvt.u16.u32 %rs28, %r247;
+ mov.u16 %rs29, 255;
+ st.v4.u8 [%rd80], {%rs28, %rs27, %rs26, %rs29};
+
+BB0_83:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAOdir.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAOdir.ptx.meta
new file mode 100644
index 00000000..99cd8bb7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAOdir.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d371a404195306f48911ef466bec4f05
+timeCreated: 1538858291
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLight.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLight.ptx
new file mode 100644
index 00000000..465c62a5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLight.ptx
@@ -0,0 +1,1807 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 lightMeshBuffer[1];
+.global .align 4 .u32 lightMeshBufferSize;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightPointSize;
+.global .align 4 .b8 lightColor[12];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo19lightMeshBufferSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightPointSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename19lightMeshBufferSizeE[13] = {117, 110, 115, 105, 103, 110, 101, 100, 32, 105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightPointSizeE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum19lightMeshBufferSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightPointSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightPointSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightPointSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[36];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<143>;
+ .reg .b16 %rs<46>;
+ .reg .f32 %f<853>;
+ .reg .b32 %r<363>;
+ .reg .b64 %rd<138>;
+
+
+ mov.u64 %rd137, __local_depot0;
+ cvta.local.u64 %SP, %rd137;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r103, %r104}, [pixelID];
+ cvt.u64.u32 %rd21, %r103;
+ cvt.u64.u32 %rd22, %r104;
+ mov.u64 %rd25, uvnormal;
+ cvta.global.u64 %rd20, %rd25;
+ mov.u32 %r101, 2;
+ mov.u32 %r102, 4;
+ mov.u64 %rd24, 0;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd20, %r101, %r102, %rd21, %rd22, %rd24, %rd24);
+ // inline asm
+ ld.u32 %r2, [%rd19];
+ shr.u32 %r107, %r2, 16;
+ cvt.u16.u32 %rs1, %r107;
+ and.b16 %rs3, %rs1, 255;
+ cvt.u16.u32 %rs4, %r2;
+ or.b16 %rs5, %rs4, %rs3;
+ setp.eq.s16 %p7, %rs5, 0;
+ mov.f32 %f807, 0f00000000;
+ mov.f32 %f808, %f807;
+ mov.f32 %f809, %f807;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs6, [%rd19+1];
+ and.b16 %rs8, %rs4, 255;
+ cvt.rn.f32.u16 %f173, %rs8;
+ div.rn.f32 %f174, %f173, 0f437F0000;
+ fma.rn.f32 %f175, %f174, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f176, %rs6;
+ div.rn.f32 %f177, %f176, 0f437F0000;
+ fma.rn.f32 %f178, %f177, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f179, %rs3;
+ div.rn.f32 %f180, %f179, 0f437F0000;
+ fma.rn.f32 %f181, %f180, 0f40000000, 0fBF800000;
+ mul.f32 %f182, %f178, %f178;
+ fma.rn.f32 %f183, %f175, %f175, %f182;
+ fma.rn.f32 %f184, %f181, %f181, %f183;
+ sqrt.rn.f32 %f185, %f184;
+ rcp.rn.f32 %f186, %f185;
+ mul.f32 %f807, %f175, %f186;
+ mul.f32 %f808, %f178, %f186;
+ mul.f32 %f809, %f181, %f186;
+
+BB0_2:
+ ld.global.v2.u32 {%r108, %r109}, [pixelID];
+ ld.global.v2.u32 {%r111, %r112}, [tileInfo];
+ add.s32 %r3, %r108, %r111;
+ add.s32 %r4, %r109, %r112;
+ setp.eq.f32 %p8, %f808, 0f00000000;
+ setp.eq.f32 %p9, %f807, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f809, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_129;
+ bra.uni BB0_3;
+
+BB0_129:
+ ld.global.u32 %r362, [imageEnabled];
+ and.b32 %r308, %r362, 1;
+ setp.eq.b32 %p138, %r308, 1;
+ @!%p138 bra BB0_131;
+ bra.uni BB0_130;
+
+BB0_130:
+ cvt.u64.u32 %rd99, %r3;
+ cvt.u64.u32 %rd100, %r4;
+ mov.u64 %rd103, image;
+ cvta.global.u64 %rd98, %rd103;
+ // inline asm
+ call (%rd97), _rt_buffer_get_64, (%rd98, %r101, %r102, %rd99, %rd100, %rd24, %rd24);
+ // inline asm
+ mov.u16 %rs30, 0;
+ st.v4.u8 [%rd97], {%rs30, %rs30, %rs30, %rs30};
+ ld.global.u32 %r362, [imageEnabled];
+
+BB0_131:
+ and.b32 %r311, %r362, 8;
+ setp.eq.s32 %p139, %r311, 0;
+ @%p139 bra BB0_133;
+
+ cvt.u64.u32 %rd106, %r3;
+ cvt.u64.u32 %rd107, %r4;
+ mov.u64 %rd110, image_Mask;
+ cvta.global.u64 %rd105, %rd110;
+ // inline asm
+ call (%rd104), _rt_buffer_get_64, (%rd105, %r101, %r101, %rd106, %rd107, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f790, 0f00000000;
+ cvt.rzi.u32.f32 %r314, %f790;
+ cvt.u16.u32 %rs31, %r314;
+ mov.u16 %rs32, 0;
+ st.v2.u8 [%rd104], {%rs31, %rs32};
+ ld.global.u32 %r362, [imageEnabled];
+
+BB0_133:
+ and.b32 %r315, %r362, 4;
+ setp.eq.s32 %p140, %r315, 0;
+ @%p140 bra BB0_137;
+
+ ld.global.u32 %r316, [additive];
+ setp.eq.s32 %p141, %r316, 0;
+ cvt.u64.u32 %rd17, %r3;
+ cvt.u64.u32 %rd18, %r4;
+ @%p141 bra BB0_136;
+
+ mov.u64 %rd123, image_HDR;
+ cvta.global.u64 %rd112, %rd123;
+ mov.u32 %r320, 8;
+ // inline asm
+ call (%rd111), _rt_buffer_get_64, (%rd112, %r101, %r320, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs39, %rs40, %rs41, %rs42}, [%rd111];
+ // inline asm
+ { cvt.f32.f16 %f791, %rs39;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f792, %rs40;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f793, %rs41;}
+
+ // inline asm
+ // inline asm
+ call (%rd117), _rt_buffer_get_64, (%rd112, %r101, %r320, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ add.f32 %f794, %f791, 0f00000000;
+ add.f32 %f795, %f792, 0f00000000;
+ add.f32 %f796, %f793, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f796;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f795;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f794;}
+
+ // inline asm
+ mov.u16 %rs43, 0;
+ st.v4.u16 [%rd117], {%rs36, %rs37, %rs38, %rs43};
+ bra.uni BB0_137;
+
+BB0_3:
+ ld.global.v2.u32 {%r121, %r122}, [pixelID];
+ cvt.u64.u32 %rd28, %r121;
+ cvt.u64.u32 %rd29, %r122;
+ mov.u64 %rd38, uvpos;
+ cvta.global.u64 %rd27, %rd38;
+ mov.u32 %r117, 12;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r101, %r117, %rd28, %rd29, %rd24, %rd24);
+ // inline asm
+ ld.f32 %f9, [%rd26+8];
+ ld.f32 %f8, [%rd26+4];
+ ld.f32 %f7, [%rd26];
+ mul.f32 %f189, %f7, 0f3456BF95;
+ mul.f32 %f190, %f8, 0f3456BF95;
+ mul.f32 %f191, %f9, 0f3456BF95;
+ abs.f32 %f10, %f807;
+ div.rn.f32 %f192, %f189, %f10;
+ abs.f32 %f193, %f808;
+ div.rn.f32 %f194, %f190, %f193;
+ abs.f32 %f11, %f809;
+ div.rn.f32 %f195, %f191, %f11;
+ abs.f32 %f196, %f192;
+ abs.f32 %f197, %f194;
+ abs.f32 %f198, %f195;
+ mov.f32 %f199, 0f38D1B717;
+ max.f32 %f200, %f196, %f199;
+ max.f32 %f201, %f197, %f199;
+ max.f32 %f202, %f198, %f199;
+ fma.rn.f32 %f12, %f807, %f200, %f7;
+ fma.rn.f32 %f13, %f808, %f201, %f8;
+ fma.rn.f32 %f14, %f809, %f202, %f9;
+ ld.global.v2.u32 {%r125, %r126}, [pixelID];
+ cvt.u64.u32 %rd34, %r125;
+ cvt.u64.u32 %rd35, %r126;
+ mov.u64 %rd39, rnd_seeds;
+ cvta.global.u64 %rd33, %rd39;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd33, %r101, %r102, %rd34, %rd35, %rd24, %rd24);
+ // inline asm
+ ld.u32 %r129, [%rd32];
+ mad.lo.s32 %r5, %r129, 1664525, 1013904223;
+ ld.global.u32 %r130, [lightMeshBufferSize];
+ setp.eq.s32 %p14, %r130, 0;
+ mov.pred %p13, 0;
+ mov.f32 %f20, 0f00000000;
+ mov.u32 %r7, 0;
+ @%p14 bra BB0_4;
+
+ ld.global.f32 %f15, [lightPointSize];
+ mul.f32 %f16, %f12, 0f3456BF95;
+ mul.f32 %f17, %f13, 0f3456BF95;
+ mul.f32 %f18, %f14, 0f3456BF95;
+ and.b32 %r133, %r5, 16777215;
+ cvt.rn.f32.u32 %f205, %r133;
+ mul.f32 %f206, %f205, 0fB3800000;
+ fma.rn.f32 %f19, %f206, 0f3F333333, 0f3F800000;
+ mov.f32 %f20, 0f00000000;
+ mov.u32 %r331, 0;
+ abs.f32 %f329, %f17;
+ abs.f32 %f330, %f16;
+ max.f32 %f331, %f330, %f329;
+ abs.f32 %f332, %f18;
+ max.f32 %f333, %f331, %f332;
+ mov.u32 %r7, %r331;
+ mov.f32 %f21, %f20;
+
+BB0_6:
+ shl.b32 %r8, %r331, 1;
+ cvt.s64.s32 %rd42, %r8;
+ mov.u64 %rd46, lightMeshBuffer;
+ cvta.global.u64 %rd41, %rd46;
+ mov.u32 %r134, 1;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r134, %r117, %rd42, %rd24, %rd24, %rd24);
+ // inline asm
+ ld.f32 %f207, [%rd40];
+ sub.f32 %f208, %f207, %f7;
+ ld.f32 %f209, [%rd40+4];
+ sub.f32 %f210, %f209, %f8;
+ ld.f32 %f211, [%rd40+8];
+ sub.f32 %f212, %f211, %f9;
+ mul.f32 %f213, %f210, %f210;
+ fma.rn.f32 %f214, %f208, %f208, %f213;
+ fma.rn.f32 %f215, %f212, %f212, %f214;
+ sqrt.rn.f32 %f22, %f215;
+ rcp.rn.f32 %f216, %f22;
+ mul.f32 %f23, %f208, %f216;
+ mul.f32 %f24, %f210, %f216;
+ mul.f32 %f25, %f212, %f216;
+ mul.f32 %f217, %f808, %f24;
+ fma.rn.f32 %f218, %f807, %f23, %f217;
+ fma.rn.f32 %f26, %f809, %f25, %f218;
+ setp.leu.f32 %p15, %f26, 0f00000000;
+ @%p15 bra BB0_22;
+
+ setp.ne.s32 %p17, %r1, 0;
+ mul.f32 %f219, %f22, %f22;
+ mul.f32 %f220, %f219, 0f40C90FDB;
+ div.rn.f32 %f221, %f15, %f220;
+ add.f32 %f27, %f221, %f221;
+ setp.gt.f32 %p18, %f27, %f19;
+ and.pred %p19, %p17, %p18;
+ mov.pred %p142, -1;
+ @%p19 bra BB0_24;
+
+ ld.global.f32 %f224, [lightInvCutoff];
+ mul.f32 %f28, %f22, %f224;
+ mov.f32 %f228, 0f40800000;
+ abs.f32 %f30, %f28;
+ setp.lt.f32 %p20, %f30, 0f00800000;
+ mul.f32 %f230, %f30, 0f4B800000;
+ selp.f32 %f231, 0fC3170000, 0fC2FE0000, %p20;
+ selp.f32 %f232, %f230, %f30, %p20;
+ mov.b32 %r136, %f232;
+ and.b32 %r137, %r136, 8388607;
+ or.b32 %r138, %r137, 1065353216;
+ mov.b32 %f233, %r138;
+ shr.u32 %r139, %r136, 23;
+ cvt.rn.f32.u32 %f234, %r139;
+ add.f32 %f235, %f231, %f234;
+ setp.gt.f32 %p21, %f233, 0f3FB504F3;
+ mul.f32 %f236, %f233, 0f3F000000;
+ add.f32 %f237, %f235, 0f3F800000;
+ selp.f32 %f238, %f236, %f233, %p21;
+ selp.f32 %f239, %f237, %f235, %p21;
+ add.f32 %f240, %f238, 0fBF800000;
+ add.f32 %f223, %f238, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f222,%f223;
+ // inline asm
+ add.f32 %f241, %f240, %f240;
+ mul.f32 %f242, %f222, %f241;
+ mul.f32 %f243, %f242, %f242;
+ mov.f32 %f244, 0f3C4CAF63;
+ mov.f32 %f245, 0f3B18F0FE;
+ fma.rn.f32 %f246, %f245, %f243, %f244;
+ mov.f32 %f247, 0f3DAAAABD;
+ fma.rn.f32 %f248, %f246, %f243, %f247;
+ mul.rn.f32 %f249, %f248, %f243;
+ mul.rn.f32 %f250, %f249, %f242;
+ sub.f32 %f251, %f240, %f242;
+ neg.f32 %f252, %f242;
+ add.f32 %f253, %f251, %f251;
+ fma.rn.f32 %f254, %f252, %f240, %f253;
+ mul.rn.f32 %f255, %f222, %f254;
+ add.f32 %f256, %f250, %f242;
+ sub.f32 %f257, %f242, %f256;
+ add.f32 %f258, %f250, %f257;
+ add.f32 %f259, %f255, %f258;
+ add.f32 %f260, %f256, %f259;
+ sub.f32 %f261, %f256, %f260;
+ add.f32 %f262, %f259, %f261;
+ mov.f32 %f263, 0f3F317200;
+ mul.rn.f32 %f264, %f239, %f263;
+ mov.f32 %f265, 0f35BFBE8E;
+ mul.rn.f32 %f266, %f239, %f265;
+ add.f32 %f267, %f264, %f260;
+ sub.f32 %f268, %f264, %f267;
+ add.f32 %f269, %f260, %f268;
+ add.f32 %f270, %f262, %f269;
+ add.f32 %f271, %f266, %f270;
+ add.f32 %f272, %f267, %f271;
+ sub.f32 %f273, %f267, %f272;
+ add.f32 %f274, %f271, %f273;
+ mul.rn.f32 %f275, %f228, %f272;
+ neg.f32 %f276, %f275;
+ fma.rn.f32 %f277, %f228, %f272, %f276;
+ fma.rn.f32 %f278, %f228, %f274, %f277;
+ mov.f32 %f279, 0f00000000;
+ fma.rn.f32 %f280, %f279, %f272, %f278;
+ add.rn.f32 %f281, %f275, %f280;
+ neg.f32 %f282, %f281;
+ add.rn.f32 %f283, %f275, %f282;
+ add.rn.f32 %f284, %f283, %f280;
+ mov.b32 %r140, %f281;
+ setp.eq.s32 %p22, %r140, 1118925336;
+ add.s32 %r141, %r140, -1;
+ mov.b32 %f285, %r141;
+ add.f32 %f286, %f284, 0f37000000;
+ selp.f32 %f287, %f285, %f281, %p22;
+ selp.f32 %f31, %f286, %f284, %p22;
+ mul.f32 %f288, %f287, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f289, %f288;
+ mov.f32 %f290, 0fBF317200;
+ fma.rn.f32 %f291, %f289, %f290, %f287;
+ mov.f32 %f292, 0fB5BFBE8E;
+ fma.rn.f32 %f293, %f289, %f292, %f291;
+ mul.f32 %f294, %f293, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f295, %f294;
+ add.f32 %f296, %f289, 0f00000000;
+ ex2.approx.f32 %f297, %f296;
+ mul.f32 %f298, %f295, %f297;
+ setp.lt.f32 %p23, %f287, 0fC2D20000;
+ selp.f32 %f299, 0f00000000, %f298, %p23;
+ setp.gt.f32 %p24, %f287, 0f42D20000;
+ selp.f32 %f812, 0f7F800000, %f299, %p24;
+ setp.eq.f32 %p25, %f812, 0f7F800000;
+ @%p25 bra BB0_10;
+
+ fma.rn.f32 %f812, %f812, %f31, %f812;
+
+BB0_10:
+ mov.f32 %f803, 0f40000000;
+ cvt.rzi.f32.f32 %f802, %f803;
+ add.f32 %f801, %f802, %f802;
+ mov.f32 %f800, 0f40800000;
+ sub.f32 %f799, %f800, %f801;
+ abs.f32 %f798, %f799;
+ setp.lt.f32 %p26, %f28, 0f00000000;
+ setp.eq.f32 %p27, %f798, 0f3F800000;
+ and.pred %p1, %p26, %p27;
+ mov.b32 %r142, %f812;
+ xor.b32 %r143, %r142, -2147483648;
+ mov.b32 %f300, %r143;
+ selp.f32 %f814, %f300, %f812, %p1;
+ setp.eq.f32 %p28, %f28, 0f00000000;
+ @%p28 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f303, %f28, %f28;
+ selp.f32 %f814, %f303, 0f00000000, %p27;
+ bra.uni BB0_14;
+
+BB0_11:
+ setp.geu.f32 %p29, %f28, 0f00000000;
+ @%p29 bra BB0_14;
+
+ mov.f32 %f806, 0f40800000;
+ cvt.rzi.f32.f32 %f302, %f806;
+ setp.neu.f32 %p30, %f302, 0f40800000;
+ selp.f32 %f814, 0f7FFFFFFF, %f814, %p30;
+
+BB0_14:
+ add.f32 %f304, %f30, 0f40800000;
+ mov.b32 %r144, %f304;
+ setp.lt.s32 %p32, %r144, 2139095040;
+ @%p32 bra BB0_19;
+
+ setp.gtu.f32 %p33, %f30, 0f7F800000;
+ @%p33 bra BB0_18;
+ bra.uni BB0_16;
+
+BB0_18:
+ add.f32 %f814, %f28, 0f40800000;
+ bra.uni BB0_19;
+
+BB0_16:
+ setp.neu.f32 %p34, %f30, 0f7F800000;
+ @%p34 bra BB0_19;
+
+ selp.f32 %f814, 0fFF800000, 0f7F800000, %p1;
+
+BB0_19:
+ mov.u32 %r324, 1;
+ mov.u64 %rd132, lightMeshBuffer;
+ cvta.global.u64 %rd131, %rd132;
+ shl.b32 %r323, %r331, 1;
+ mov.f32 %f305, 0f3F800000;
+ sub.f32 %f306, %f305, %f814;
+ setp.eq.f32 %p35, %f28, 0f3F800000;
+ selp.f32 %f307, 0f00000000, %f306, %p35;
+ cvt.sat.f32.f32 %f308, %f307;
+ mul.f32 %f309, %f27, %f308;
+ add.s32 %r147, %r323, 1;
+ cvt.s64.s32 %rd49, %r147;
+ // inline asm
+ call (%rd47), _rt_buffer_get_64, (%rd131, %r324, %r117, %rd49, %rd24, %rd24, %rd24);
+ // inline asm
+ ld.f32 %f310, [%rd47];
+ mul.f32 %f311, %f23, %f310;
+ ld.f32 %f312, [%rd47+4];
+ mul.f32 %f313, %f24, %f312;
+ neg.f32 %f314, %f313;
+ sub.f32 %f315, %f314, %f311;
+ ld.f32 %f316, [%rd47+8];
+ mul.f32 %f317, %f25, %f316;
+ sub.f32 %f318, %f315, %f317;
+ cvt.sat.f32.f32 %f319, %f318;
+ mul.f32 %f42, %f309, %f319;
+ cvt.sat.f32.f32 %f43, %f26;
+ mul.f32 %f320, %f42, %f43;
+ setp.leu.f32 %p36, %f320, 0f3727C5AC;
+ @%p36 bra BB0_21;
+
+ mov.u32 %r330, 1;
+ add.u64 %rd54, %SP, 28;
+ cvta.to.local.u64 %rd55, %rd54;
+ max.f32 %f327, %f333, %f199;
+ sub.f32 %f328, %f22, %f327;
+ mov.u32 %r151, 1065353216;
+ st.local.u32 [%rd55], %r151;
+ ld.global.u32 %r148, [root];
+ // inline asm
+ call _rt_trace_64, (%r148, %f12, %f13, %f14, %f23, %f24, %f25, %r330, %f327, %f328, %rd54, %r102);
+ // inline asm
+ ld.local.f32 %f335, [%rd55];
+ mul.f32 %f336, %f42, %f335;
+ fma.rn.f32 %f21, %f43, %f336, %f21;
+ add.f32 %f20, %f20, %f335;
+
+BB0_21:
+ add.s32 %r7, %r7, 1;
+
+BB0_22:
+ ld.global.u32 %r152, [lightMeshBufferSize];
+ add.s32 %r331, %r331, 1;
+ setp.lt.u32 %p38, %r331, %r152;
+ @%p38 bra BB0_6;
+ bra.uni BB0_23;
+
+BB0_4:
+ mov.f32 %f21, %f20;
+
+BB0_23:
+ mov.pred %p142, %p13;
+
+BB0_24:
+ cvt.rn.f32.s32 %f337, %r7;
+ mov.f32 %f338, 0f3F800000;
+ max.f32 %f339, %f337, %f338;
+ div.rn.f32 %f839, %f21, %f339;
+ div.rn.f32 %f840, %f20, %f339;
+ @!%p142 bra BB0_77;
+ bra.uni BB0_25;
+
+BB0_25:
+ abs.f32 %f805, %f809;
+ abs.f32 %f804, %f807;
+ setp.gt.f32 %p39, %f804, %f805;
+ neg.f32 %f342, %f808;
+ selp.f32 %f343, %f342, 0f00000000, %p39;
+ neg.f32 %f344, %f809;
+ selp.f32 %f345, %f807, %f344, %p39;
+ selp.f32 %f346, 0f00000000, %f808, %p39;
+ mul.f32 %f347, %f345, %f345;
+ fma.rn.f32 %f348, %f343, %f343, %f347;
+ fma.rn.f32 %f349, %f346, %f346, %f348;
+ sqrt.rn.f32 %f350, %f349;
+ rcp.rn.f32 %f351, %f350;
+ mul.f32 %f54, %f343, %f351;
+ mul.f32 %f55, %f345, %f351;
+ mul.f32 %f56, %f346, %f351;
+ mov.f32 %f823, 0f00000000;
+ setp.lt.s32 %p40, %r1, 1;
+ mov.f32 %f824, %f823;
+ @%p40 bra BB0_76;
+
+ mad.lo.s32 %r338, %r129, 1664525, 1013904223;
+ cvt.rn.f32.s32 %f354, %r1;
+ rcp.rn.f32 %f57, %f354;
+ add.u64 %rd56, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd56;
+ mul.f32 %f58, %f12, 0f3456BF95;
+ mul.f32 %f59, %f13, 0f3456BF95;
+ mul.f32 %f60, %f14, 0f3456BF95;
+ add.u64 %rd57, %SP, 32;
+ cvta.to.local.u64 %rd3, %rd57;
+ mul.f32 %f355, %f807, %f55;
+ mul.f32 %f356, %f808, %f54;
+ sub.f32 %f61, %f356, %f355;
+ mul.f32 %f357, %f809, %f54;
+ mul.f32 %f358, %f807, %f56;
+ sub.f32 %f62, %f358, %f357;
+ mul.f32 %f359, %f808, %f56;
+ mul.f32 %f360, %f809, %f55;
+ sub.f32 %f63, %f360, %f359;
+ mov.f32 %f823, 0f00000000;
+ mov.u32 %r153, 0;
+ abs.f32 %f361, %f59;
+ abs.f32 %f362, %f58;
+ max.f32 %f363, %f362, %f361;
+ abs.f32 %f364, %f60;
+ max.f32 %f365, %f363, %f364;
+ mov.u32 %r335, %r153;
+ mov.f32 %f824, %f823;
+
+BB0_27:
+ cvt.rn.f32.s32 %f66, %r335;
+ max.f32 %f67, %f365, %f199;
+ mov.u32 %r337, %r153;
+
+BB0_28:
+ mad.lo.s32 %r155, %r338, 1664525, 1013904223;
+ and.b32 %r156, %r155, 16777215;
+ cvt.rn.f32.u32 %f367, %r156;
+ fma.rn.f32 %f368, %f367, 0f33800000, %f66;
+ mul.f32 %f369, %f57, %f368;
+ mad.lo.s32 %r338, %r155, 1664525, 1013904223;
+ and.b32 %r157, %r338, 16777215;
+ cvt.rn.f32.u32 %f370, %r157;
+ cvt.rn.f32.s32 %f371, %r337;
+ fma.rn.f32 %f372, %f370, 0f33800000, %f371;
+ mul.f32 %f373, %f57, %f372;
+ sqrt.rn.f32 %f70, %f369;
+ mul.f32 %f831, %f373, 0f40C90FDB;
+ abs.f32 %f72, %f831;
+ setp.neu.f32 %p41, %f72, 0f7F800000;
+ mov.f32 %f825, %f831;
+ @%p41 bra BB0_30;
+
+ mov.f32 %f374, 0f00000000;
+ mul.rn.f32 %f825, %f831, %f374;
+
+BB0_30:
+ mul.f32 %f375, %f825, 0f3F22F983;
+ cvt.rni.s32.f32 %r348, %f375;
+ cvt.rn.f32.s32 %f376, %r348;
+ neg.f32 %f377, %f376;
+ mov.f32 %f378, 0f3FC90FDA;
+ fma.rn.f32 %f379, %f377, %f378, %f825;
+ mov.f32 %f380, 0f33A22168;
+ fma.rn.f32 %f381, %f377, %f380, %f379;
+ mov.f32 %f382, 0f27C234C5;
+ fma.rn.f32 %f826, %f377, %f382, %f381;
+ abs.f32 %f383, %f825;
+ setp.leu.f32 %p42, %f383, 0f47CE4780;
+ @%p42 bra BB0_41;
+
+ mov.b32 %r19, %f825;
+ shr.u32 %r20, %r19, 23;
+ shl.b32 %r160, %r19, 8;
+ or.b32 %r21, %r160, -2147483648;
+ mov.u32 %r340, 0;
+ mov.u64 %rd133, __cudart_i2opi_f;
+ mov.u32 %r339, -6;
+ mov.u64 %rd134, %rd2;
+
+BB0_32:
+ .pragma "nounroll";
+ ld.const.u32 %r163, [%rd133];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r161, %r163, %r21, %r340;
+ madc.hi.u32 %r340, %r163, %r21, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd134], %r161;
+ add.s64 %rd134, %rd134, 4;
+ add.s64 %rd133, %rd133, 4;
+ add.s32 %r339, %r339, 1;
+ setp.ne.s32 %p43, %r339, 0;
+ @%p43 bra BB0_32;
+
+ and.b32 %r166, %r20, 255;
+ add.s32 %r167, %r166, -128;
+ shr.u32 %r168, %r167, 5;
+ and.b32 %r26, %r19, -2147483648;
+ st.local.u32 [%rd2+24], %r340;
+ mov.u32 %r169, 6;
+ sub.s32 %r170, %r169, %r168;
+ mul.wide.s32 %rd59, %r170, 4;
+ add.s64 %rd8, %rd2, %rd59;
+ ld.local.u32 %r341, [%rd8];
+ ld.local.u32 %r342, [%rd8+-4];
+ and.b32 %r29, %r20, 31;
+ setp.eq.s32 %p44, %r29, 0;
+ @%p44 bra BB0_35;
+
+ mov.u32 %r171, 32;
+ sub.s32 %r172, %r171, %r29;
+ shr.u32 %r173, %r342, %r172;
+ shl.b32 %r174, %r341, %r29;
+ add.s32 %r341, %r173, %r174;
+ ld.local.u32 %r175, [%rd8+-8];
+ shr.u32 %r176, %r175, %r172;
+ shl.b32 %r177, %r342, %r29;
+ add.s32 %r342, %r176, %r177;
+
+BB0_35:
+ shr.u32 %r178, %r342, 30;
+ shl.b32 %r179, %r341, 2;
+ add.s32 %r343, %r178, %r179;
+ shl.b32 %r35, %r342, 2;
+ shr.u32 %r180, %r343, 31;
+ shr.u32 %r181, %r341, 30;
+ add.s32 %r36, %r180, %r181;
+ setp.eq.s32 %p45, %r180, 0;
+ @%p45 bra BB0_36;
+ bra.uni BB0_37;
+
+BB0_36:
+ mov.u32 %r344, %r26;
+ mov.u32 %r345, %r35;
+ bra.uni BB0_38;
+
+BB0_37:
+ not.b32 %r182, %r343;
+ neg.s32 %r345, %r35;
+ setp.eq.s32 %p46, %r35, 0;
+ selp.u32 %r183, 1, 0, %p46;
+ add.s32 %r343, %r183, %r182;
+ xor.b32 %r344, %r26, -2147483648;
+
+BB0_38:
+ clz.b32 %r347, %r343;
+ setp.eq.s32 %p47, %r347, 0;
+ shl.b32 %r184, %r343, %r347;
+ mov.u32 %r185, 32;
+ sub.s32 %r186, %r185, %r347;
+ shr.u32 %r187, %r345, %r186;
+ add.s32 %r188, %r187, %r184;
+ selp.b32 %r44, %r343, %r188, %p47;
+ mov.u32 %r189, -921707870;
+ mul.hi.u32 %r346, %r44, %r189;
+ setp.eq.s32 %p48, %r26, 0;
+ neg.s32 %r190, %r36;
+ selp.b32 %r348, %r36, %r190, %p48;
+ setp.lt.s32 %p49, %r346, 1;
+ @%p49 bra BB0_40;
+
+ mul.lo.s32 %r191, %r44, -921707870;
+ shr.u32 %r192, %r191, 31;
+ shl.b32 %r193, %r346, 1;
+ add.s32 %r346, %r192, %r193;
+ add.s32 %r347, %r347, 1;
+
+BB0_40:
+ mov.u32 %r194, 126;
+ sub.s32 %r195, %r194, %r347;
+ shl.b32 %r196, %r195, 23;
+ add.s32 %r197, %r346, 1;
+ shr.u32 %r198, %r197, 7;
+ add.s32 %r199, %r198, 1;
+ shr.u32 %r200, %r199, 1;
+ add.s32 %r201, %r200, %r196;
+ or.b32 %r202, %r201, %r344;
+ mov.b32 %f826, %r202;
+
+BB0_41:
+ mul.rn.f32 %f78, %f826, %f826;
+ add.s32 %r52, %r348, 1;
+ and.b32 %r53, %r52, 1;
+ setp.eq.s32 %p50, %r53, 0;
+ @%p50 bra BB0_43;
+ bra.uni BB0_42;
+
+BB0_43:
+ mov.f32 %f386, 0f3C08839E;
+ mov.f32 %f387, 0fB94CA1F9;
+ fma.rn.f32 %f827, %f387, %f78, %f386;
+ bra.uni BB0_44;
+
+BB0_42:
+ mov.f32 %f384, 0fBAB6061A;
+ mov.f32 %f385, 0f37CCF5CE;
+ fma.rn.f32 %f827, %f385, %f78, %f384;
+
+BB0_44:
+ @%p50 bra BB0_46;
+ bra.uni BB0_45;
+
+BB0_46:
+ mov.f32 %f391, 0fBE2AAAA3;
+ fma.rn.f32 %f392, %f827, %f78, %f391;
+ mov.f32 %f393, 0f00000000;
+ fma.rn.f32 %f828, %f392, %f78, %f393;
+ bra.uni BB0_47;
+
+BB0_45:
+ mov.f32 %f388, 0f3D2AAAA5;
+ fma.rn.f32 %f389, %f827, %f78, %f388;
+ mov.f32 %f390, 0fBF000000;
+ fma.rn.f32 %f828, %f389, %f78, %f390;
+
+BB0_47:
+ fma.rn.f32 %f829, %f828, %f826, %f826;
+ @%p50 bra BB0_49;
+
+ fma.rn.f32 %f829, %f828, %f78, %f338;
+
+BB0_49:
+ and.b32 %r203, %r52, 2;
+ setp.eq.s32 %p53, %r203, 0;
+ @%p53 bra BB0_51;
+
+ mov.f32 %f395, 0f00000000;
+ mov.f32 %f396, 0fBF800000;
+ fma.rn.f32 %f829, %f829, %f396, %f395;
+
+BB0_51:
+ @%p41 bra BB0_53;
+
+ mov.f32 %f397, 0f00000000;
+ mul.rn.f32 %f831, %f831, %f397;
+
+BB0_53:
+ mul.f32 %f398, %f831, 0f3F22F983;
+ cvt.rni.s32.f32 %r358, %f398;
+ cvt.rn.f32.s32 %f399, %r358;
+ neg.f32 %f400, %f399;
+ fma.rn.f32 %f402, %f400, %f378, %f831;
+ fma.rn.f32 %f404, %f400, %f380, %f402;
+ fma.rn.f32 %f832, %f400, %f382, %f404;
+ abs.f32 %f406, %f831;
+ setp.leu.f32 %p55, %f406, 0f47CE4780;
+ @%p55 bra BB0_64;
+
+ mov.b32 %r55, %f831;
+ shr.u32 %r56, %r55, 23;
+ shl.b32 %r206, %r55, 8;
+ or.b32 %r57, %r206, -2147483648;
+ mov.u32 %r350, 0;
+ mov.u64 %rd135, __cudart_i2opi_f;
+ mov.u32 %r349, -6;
+ mov.u64 %rd136, %rd2;
+
+BB0_55:
+ .pragma "nounroll";
+ ld.const.u32 %r209, [%rd135];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r207, %r209, %r57, %r350;
+ madc.hi.u32 %r350, %r209, %r57, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd136], %r207;
+ add.s64 %rd136, %rd136, 4;
+ add.s64 %rd135, %rd135, 4;
+ add.s32 %r349, %r349, 1;
+ setp.ne.s32 %p56, %r349, 0;
+ @%p56 bra BB0_55;
+
+ and.b32 %r212, %r56, 255;
+ add.s32 %r213, %r212, -128;
+ shr.u32 %r214, %r213, 5;
+ and.b32 %r62, %r55, -2147483648;
+ st.local.u32 [%rd2+24], %r350;
+ mov.u32 %r215, 6;
+ sub.s32 %r216, %r215, %r214;
+ mul.wide.s32 %rd61, %r216, 4;
+ add.s64 %rd13, %rd2, %rd61;
+ ld.local.u32 %r351, [%rd13];
+ ld.local.u32 %r352, [%rd13+-4];
+ and.b32 %r65, %r56, 31;
+ setp.eq.s32 %p57, %r65, 0;
+ @%p57 bra BB0_58;
+
+ mov.u32 %r217, 32;
+ sub.s32 %r218, %r217, %r65;
+ shr.u32 %r219, %r352, %r218;
+ shl.b32 %r220, %r351, %r65;
+ add.s32 %r351, %r219, %r220;
+ ld.local.u32 %r221, [%rd13+-8];
+ shr.u32 %r222, %r221, %r218;
+ shl.b32 %r223, %r352, %r65;
+ add.s32 %r352, %r222, %r223;
+
+BB0_58:
+ shr.u32 %r224, %r352, 30;
+ shl.b32 %r225, %r351, 2;
+ add.s32 %r353, %r224, %r225;
+ shl.b32 %r71, %r352, 2;
+ shr.u32 %r226, %r353, 31;
+ shr.u32 %r227, %r351, 30;
+ add.s32 %r72, %r226, %r227;
+ setp.eq.s32 %p58, %r226, 0;
+ @%p58 bra BB0_59;
+ bra.uni BB0_60;
+
+BB0_59:
+ mov.u32 %r354, %r62;
+ mov.u32 %r355, %r71;
+ bra.uni BB0_61;
+
+BB0_60:
+ not.b32 %r228, %r353;
+ neg.s32 %r355, %r71;
+ setp.eq.s32 %p59, %r71, 0;
+ selp.u32 %r229, 1, 0, %p59;
+ add.s32 %r353, %r229, %r228;
+ xor.b32 %r354, %r62, -2147483648;
+
+BB0_61:
+ clz.b32 %r357, %r353;
+ setp.eq.s32 %p60, %r357, 0;
+ shl.b32 %r230, %r353, %r357;
+ mov.u32 %r231, 32;
+ sub.s32 %r232, %r231, %r357;
+ shr.u32 %r233, %r355, %r232;
+ add.s32 %r234, %r233, %r230;
+ selp.b32 %r80, %r353, %r234, %p60;
+ mov.u32 %r235, -921707870;
+ mul.hi.u32 %r356, %r80, %r235;
+ setp.eq.s32 %p61, %r62, 0;
+ neg.s32 %r236, %r72;
+ selp.b32 %r358, %r72, %r236, %p61;
+ setp.lt.s32 %p62, %r356, 1;
+ @%p62 bra BB0_63;
+
+ mul.lo.s32 %r237, %r80, -921707870;
+ shr.u32 %r238, %r237, 31;
+ shl.b32 %r239, %r356, 1;
+ add.s32 %r356, %r238, %r239;
+ add.s32 %r357, %r357, 1;
+
+BB0_63:
+ mov.u32 %r240, 126;
+ sub.s32 %r241, %r240, %r357;
+ shl.b32 %r242, %r241, 23;
+ add.s32 %r243, %r356, 1;
+ shr.u32 %r244, %r243, 7;
+ add.s32 %r245, %r244, 1;
+ shr.u32 %r246, %r245, 1;
+ add.s32 %r247, %r246, %r242;
+ or.b32 %r248, %r247, %r354;
+ mov.b32 %f832, %r248;
+
+BB0_64:
+ mul.rn.f32 %f95, %f832, %f832;
+ and.b32 %r88, %r358, 1;
+ setp.eq.s32 %p63, %r88, 0;
+ @%p63 bra BB0_66;
+ bra.uni BB0_65;
+
+BB0_66:
+ mov.f32 %f409, 0f3C08839E;
+ mov.f32 %f410, 0fB94CA1F9;
+ fma.rn.f32 %f833, %f410, %f95, %f409;
+ bra.uni BB0_67;
+
+BB0_65:
+ mov.f32 %f407, 0fBAB6061A;
+ mov.f32 %f408, 0f37CCF5CE;
+ fma.rn.f32 %f833, %f408, %f95, %f407;
+
+BB0_67:
+ @%p63 bra BB0_69;
+ bra.uni BB0_68;
+
+BB0_69:
+ mov.f32 %f414, 0fBE2AAAA3;
+ fma.rn.f32 %f415, %f833, %f95, %f414;
+ mov.f32 %f416, 0f00000000;
+ fma.rn.f32 %f834, %f415, %f95, %f416;
+ bra.uni BB0_70;
+
+BB0_68:
+ mov.f32 %f411, 0f3D2AAAA5;
+ fma.rn.f32 %f412, %f833, %f95, %f411;
+ mov.f32 %f413, 0fBF000000;
+ fma.rn.f32 %f834, %f412, %f95, %f413;
+
+BB0_70:
+ fma.rn.f32 %f835, %f834, %f832, %f832;
+ @%p63 bra BB0_72;
+
+ fma.rn.f32 %f835, %f834, %f95, %f338;
+
+BB0_72:
+ and.b32 %r249, %r358, 2;
+ setp.eq.s32 %p66, %r249, 0;
+ @%p66 bra BB0_74;
+
+ mov.f32 %f418, 0f00000000;
+ mov.f32 %f419, 0fBF800000;
+ fma.rn.f32 %f835, %f835, %f419, %f418;
+
+BB0_74:
+ mul.f32 %f428, %f70, %f829;
+ mul.f32 %f429, %f428, %f428;
+ sub.f32 %f431, %f338, %f429;
+ mul.f32 %f432, %f70, %f835;
+ mul.f32 %f433, %f432, %f432;
+ sub.f32 %f434, %f431, %f433;
+ mov.f32 %f435, 0f00000000;
+ max.f32 %f436, %f435, %f434;
+ sqrt.rn.f32 %f437, %f436;
+ mul.f32 %f438, %f54, %f432;
+ mul.f32 %f439, %f55, %f432;
+ mul.f32 %f440, %f56, %f432;
+ fma.rn.f32 %f441, %f63, %f428, %f438;
+ fma.rn.f32 %f442, %f62, %f428, %f439;
+ fma.rn.f32 %f443, %f61, %f428, %f440;
+ fma.rn.f32 %f423, %f807, %f437, %f441;
+ fma.rn.f32 %f424, %f808, %f437, %f442;
+ fma.rn.f32 %f425, %f809, %f437, %f443;
+ mov.u32 %r251, 0;
+ st.local.u32 [%rd3], %r251;
+ ld.global.u32 %r250, [root];
+ mov.f32 %f427, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r250, %f12, %f13, %f14, %f423, %f424, %f425, %r251, %f67, %f427, %rd57, %r102);
+ // inline asm
+ ld.local.f32 %f444, [%rd3];
+ setp.lt.f32 %p67, %f444, 0f00000000;
+ selp.f32 %f445, 0f00000000, %f444, %p67;
+ selp.f32 %f446, 0f00000000, 0f3F800000, %p67;
+ add.f32 %f823, %f823, %f446;
+ add.f32 %f824, %f824, %f445;
+ add.s32 %r337, %r337, 1;
+ setp.lt.s32 %p68, %r337, %r1;
+ @%p68 bra BB0_28;
+
+ add.s32 %r335, %r335, 1;
+ setp.lt.s32 %p69, %r335, %r1;
+ @%p69 bra BB0_27;
+
+BB0_76:
+ mul.lo.s32 %r253, %r1, %r1;
+ cvt.rn.f32.s32 %f447, %r253;
+ div.rn.f32 %f839, %f824, %f447;
+ div.rn.f32 %f840, %f823, %f447;
+
+BB0_77:
+ ld.global.u32 %r360, [imageEnabled];
+ and.b32 %r254, %r360, 8;
+ setp.eq.s32 %p70, %r254, 0;
+ @%p70 bra BB0_90;
+
+ mov.u32 %r325, 2;
+ cvt.u64.u32 %rd65, %r3;
+ cvt.u64.u32 %rd66, %r4;
+ mov.u64 %rd69, image_Mask;
+ cvta.global.u64 %rd64, %rd69;
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd64, %r325, %r325, %rd65, %rd66, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f450, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f451, %f450;
+ fma.rn.f32 %f452, %f451, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f115, %f452;
+ abs.f32 %f116, %f840;
+ setp.lt.f32 %p71, %f116, 0f00800000;
+ mul.f32 %f453, %f116, 0f4B800000;
+ selp.f32 %f454, 0fC3170000, 0fC2FE0000, %p71;
+ selp.f32 %f455, %f453, %f116, %p71;
+ mov.b32 %r257, %f455;
+ and.b32 %r258, %r257, 8388607;
+ or.b32 %r259, %r258, 1065353216;
+ mov.b32 %f456, %r259;
+ shr.u32 %r260, %r257, 23;
+ cvt.rn.f32.u32 %f457, %r260;
+ add.f32 %f458, %f454, %f457;
+ setp.gt.f32 %p72, %f456, 0f3FB504F3;
+ mul.f32 %f459, %f456, 0f3F000000;
+ add.f32 %f460, %f458, 0f3F800000;
+ selp.f32 %f461, %f459, %f456, %p72;
+ selp.f32 %f462, %f460, %f458, %p72;
+ add.f32 %f463, %f461, 0fBF800000;
+ add.f32 %f449, %f461, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f448,%f449;
+ // inline asm
+ add.f32 %f464, %f463, %f463;
+ mul.f32 %f465, %f448, %f464;
+ mul.f32 %f466, %f465, %f465;
+ mov.f32 %f467, 0f3C4CAF63;
+ mov.f32 %f468, 0f3B18F0FE;
+ fma.rn.f32 %f469, %f468, %f466, %f467;
+ mov.f32 %f470, 0f3DAAAABD;
+ fma.rn.f32 %f471, %f469, %f466, %f470;
+ mul.rn.f32 %f472, %f471, %f466;
+ mul.rn.f32 %f473, %f472, %f465;
+ sub.f32 %f474, %f463, %f465;
+ neg.f32 %f475, %f465;
+ add.f32 %f476, %f474, %f474;
+ fma.rn.f32 %f477, %f475, %f463, %f476;
+ mul.rn.f32 %f478, %f448, %f477;
+ add.f32 %f479, %f473, %f465;
+ sub.f32 %f480, %f465, %f479;
+ add.f32 %f481, %f473, %f480;
+ add.f32 %f482, %f478, %f481;
+ add.f32 %f483, %f479, %f482;
+ sub.f32 %f484, %f479, %f483;
+ add.f32 %f485, %f482, %f484;
+ mov.f32 %f486, 0f3F317200;
+ mul.rn.f32 %f487, %f462, %f486;
+ mov.f32 %f488, 0f35BFBE8E;
+ mul.rn.f32 %f489, %f462, %f488;
+ add.f32 %f490, %f487, %f483;
+ sub.f32 %f491, %f487, %f490;
+ add.f32 %f492, %f483, %f491;
+ add.f32 %f493, %f485, %f492;
+ add.f32 %f494, %f489, %f493;
+ add.f32 %f495, %f490, %f494;
+ sub.f32 %f496, %f490, %f495;
+ add.f32 %f497, %f494, %f496;
+ mov.f32 %f498, 0f3EE8BA2E;
+ mul.rn.f32 %f499, %f498, %f495;
+ neg.f32 %f500, %f499;
+ fma.rn.f32 %f501, %f498, %f495, %f500;
+ fma.rn.f32 %f502, %f498, %f497, %f501;
+ mov.f32 %f503, 0f00000000;
+ fma.rn.f32 %f504, %f503, %f495, %f502;
+ add.rn.f32 %f505, %f499, %f504;
+ neg.f32 %f506, %f505;
+ add.rn.f32 %f507, %f499, %f506;
+ add.rn.f32 %f508, %f507, %f504;
+ mov.b32 %r261, %f505;
+ setp.eq.s32 %p73, %r261, 1118925336;
+ add.s32 %r262, %r261, -1;
+ mov.b32 %f509, %r262;
+ add.f32 %f510, %f508, 0f37000000;
+ selp.f32 %f511, %f509, %f505, %p73;
+ selp.f32 %f117, %f510, %f508, %p73;
+ mul.f32 %f512, %f511, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f513, %f512;
+ mov.f32 %f514, 0fBF317200;
+ fma.rn.f32 %f515, %f513, %f514, %f511;
+ mov.f32 %f516, 0fB5BFBE8E;
+ fma.rn.f32 %f517, %f513, %f516, %f515;
+ mul.f32 %f518, %f517, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f519, %f518;
+ add.f32 %f520, %f513, 0f00000000;
+ ex2.approx.f32 %f521, %f520;
+ mul.f32 %f522, %f519, %f521;
+ setp.lt.f32 %p74, %f511, 0fC2D20000;
+ selp.f32 %f523, 0f00000000, %f522, %p74;
+ setp.gt.f32 %p75, %f511, 0f42D20000;
+ selp.f32 %f841, 0f7F800000, %f523, %p75;
+ setp.eq.f32 %p76, %f841, 0f7F800000;
+ @%p76 bra BB0_80;
+
+ fma.rn.f32 %f841, %f841, %f117, %f841;
+
+BB0_80:
+ setp.lt.f32 %p77, %f840, 0f00000000;
+ setp.eq.f32 %p78, %f115, 0f3F800000;
+ and.pred %p3, %p77, %p78;
+ mov.b32 %r263, %f841;
+ xor.b32 %r264, %r263, -2147483648;
+ mov.b32 %f524, %r264;
+ selp.f32 %f843, %f524, %f841, %p3;
+ setp.eq.f32 %p79, %f840, 0f00000000;
+ @%p79 bra BB0_83;
+ bra.uni BB0_81;
+
+BB0_83:
+ add.f32 %f527, %f840, %f840;
+ selp.f32 %f843, %f527, 0f00000000, %p78;
+ bra.uni BB0_84;
+
+BB0_136:
+ mov.u64 %rd130, image_HDR;
+ cvta.global.u64 %rd125, %rd130;
+ mov.u32 %r322, 8;
+ // inline asm
+ call (%rd124), _rt_buffer_get_64, (%rd125, %r101, %r322, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f797, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f797;}
+
+ // inline asm
+ mov.u16 %rs45, 0;
+ st.v4.u16 [%rd124], {%rs44, %rs44, %rs44, %rs45};
+ bra.uni BB0_137;
+
+BB0_81:
+ setp.geu.f32 %p80, %f840, 0f00000000;
+ @%p80 bra BB0_84;
+
+ cvt.rzi.f32.f32 %f526, %f498;
+ setp.neu.f32 %p81, %f526, 0f3EE8BA2E;
+ selp.f32 %f843, 0f7FFFFFFF, %f843, %p81;
+
+BB0_84:
+ add.f32 %f528, %f116, 0f3EE8BA2E;
+ mov.b32 %r265, %f528;
+ setp.lt.s32 %p83, %r265, 2139095040;
+ @%p83 bra BB0_89;
+
+ setp.gtu.f32 %p84, %f116, 0f7F800000;
+ @%p84 bra BB0_88;
+ bra.uni BB0_86;
+
+BB0_88:
+ add.f32 %f843, %f840, 0f3EE8BA2E;
+ bra.uni BB0_89;
+
+BB0_86:
+ setp.neu.f32 %p85, %f116, 0f7F800000;
+ @%p85 bra BB0_89;
+
+ selp.f32 %f843, 0fFF800000, 0f7F800000, %p3;
+
+BB0_89:
+ mul.f32 %f529, %f843, 0f437F0000;
+ setp.eq.f32 %p86, %f840, 0f3F800000;
+ selp.f32 %f530, 0f437F0000, %f529, %p86;
+ cvt.rzi.u32.f32 %r266, %f530;
+ cvt.u16.u32 %rs10, %r266;
+ mov.u16 %rs11, 255;
+ st.v2.u8 [%rd63], {%rs10, %rs11};
+ ld.global.u32 %r360, [imageEnabled];
+
+BB0_90:
+ ld.global.f32 %f531, [lightColor];
+ mul.f32 %f128, %f839, %f531;
+ ld.global.f32 %f532, [lightColor+4];
+ mul.f32 %f129, %f839, %f532;
+ ld.global.f32 %f533, [lightColor+8];
+ mul.f32 %f130, %f839, %f533;
+ and.b32 %r267, %r360, 1;
+ setp.eq.b32 %p87, %r267, 1;
+ @!%p87 bra BB0_125;
+ bra.uni BB0_91;
+
+BB0_91:
+ mov.f32 %f536, 0f3E666666;
+ cvt.rzi.f32.f32 %f537, %f536;
+ fma.rn.f32 %f538, %f537, 0fC0000000, 0f3EE66666;
+ abs.f32 %f131, %f538;
+ abs.f32 %f132, %f128;
+ setp.lt.f32 %p88, %f132, 0f00800000;
+ mul.f32 %f539, %f132, 0f4B800000;
+ selp.f32 %f540, 0fC3170000, 0fC2FE0000, %p88;
+ selp.f32 %f541, %f539, %f132, %p88;
+ mov.b32 %r268, %f541;
+ and.b32 %r269, %r268, 8388607;
+ or.b32 %r270, %r269, 1065353216;
+ mov.b32 %f542, %r270;
+ shr.u32 %r271, %r268, 23;
+ cvt.rn.f32.u32 %f543, %r271;
+ add.f32 %f544, %f540, %f543;
+ setp.gt.f32 %p89, %f542, 0f3FB504F3;
+ mul.f32 %f545, %f542, 0f3F000000;
+ add.f32 %f546, %f544, 0f3F800000;
+ selp.f32 %f547, %f545, %f542, %p89;
+ selp.f32 %f548, %f546, %f544, %p89;
+ add.f32 %f549, %f547, 0fBF800000;
+ add.f32 %f535, %f547, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f534,%f535;
+ // inline asm
+ add.f32 %f550, %f549, %f549;
+ mul.f32 %f551, %f534, %f550;
+ mul.f32 %f552, %f551, %f551;
+ mov.f32 %f553, 0f3C4CAF63;
+ mov.f32 %f554, 0f3B18F0FE;
+ fma.rn.f32 %f555, %f554, %f552, %f553;
+ mov.f32 %f556, 0f3DAAAABD;
+ fma.rn.f32 %f557, %f555, %f552, %f556;
+ mul.rn.f32 %f558, %f557, %f552;
+ mul.rn.f32 %f559, %f558, %f551;
+ sub.f32 %f560, %f549, %f551;
+ neg.f32 %f561, %f551;
+ add.f32 %f562, %f560, %f560;
+ fma.rn.f32 %f563, %f561, %f549, %f562;
+ mul.rn.f32 %f564, %f534, %f563;
+ add.f32 %f565, %f559, %f551;
+ sub.f32 %f566, %f551, %f565;
+ add.f32 %f567, %f559, %f566;
+ add.f32 %f568, %f564, %f567;
+ add.f32 %f569, %f565, %f568;
+ sub.f32 %f570, %f565, %f569;
+ add.f32 %f571, %f568, %f570;
+ mov.f32 %f572, 0f3F317200;
+ mul.rn.f32 %f573, %f548, %f572;
+ mov.f32 %f574, 0f35BFBE8E;
+ mul.rn.f32 %f575, %f548, %f574;
+ add.f32 %f576, %f573, %f569;
+ sub.f32 %f577, %f573, %f576;
+ add.f32 %f578, %f569, %f577;
+ add.f32 %f579, %f571, %f578;
+ add.f32 %f580, %f575, %f579;
+ add.f32 %f581, %f576, %f580;
+ sub.f32 %f582, %f576, %f581;
+ add.f32 %f583, %f580, %f582;
+ mov.f32 %f584, 0f3EE66666;
+ mul.rn.f32 %f585, %f584, %f581;
+ neg.f32 %f586, %f585;
+ fma.rn.f32 %f587, %f584, %f581, %f586;
+ fma.rn.f32 %f588, %f584, %f583, %f587;
+ mov.f32 %f589, 0f00000000;
+ fma.rn.f32 %f590, %f589, %f581, %f588;
+ add.rn.f32 %f591, %f585, %f590;
+ neg.f32 %f592, %f591;
+ add.rn.f32 %f593, %f585, %f592;
+ add.rn.f32 %f594, %f593, %f590;
+ mov.b32 %r272, %f591;
+ setp.eq.s32 %p90, %r272, 1118925336;
+ add.s32 %r273, %r272, -1;
+ mov.b32 %f595, %r273;
+ add.f32 %f596, %f594, 0f37000000;
+ selp.f32 %f597, %f595, %f591, %p90;
+ selp.f32 %f133, %f596, %f594, %p90;
+ mul.f32 %f598, %f597, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f599, %f598;
+ mov.f32 %f600, 0fBF317200;
+ fma.rn.f32 %f601, %f599, %f600, %f597;
+ mov.f32 %f602, 0fB5BFBE8E;
+ fma.rn.f32 %f603, %f599, %f602, %f601;
+ mul.f32 %f604, %f603, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f605, %f604;
+ add.f32 %f606, %f599, 0f00000000;
+ ex2.approx.f32 %f607, %f606;
+ mul.f32 %f608, %f605, %f607;
+ setp.lt.f32 %p91, %f597, 0fC2D20000;
+ selp.f32 %f609, 0f00000000, %f608, %p91;
+ setp.gt.f32 %p92, %f597, 0f42D20000;
+ selp.f32 %f844, 0f7F800000, %f609, %p92;
+ setp.eq.f32 %p93, %f844, 0f7F800000;
+ @%p93 bra BB0_93;
+
+ fma.rn.f32 %f844, %f844, %f133, %f844;
+
+BB0_93:
+ setp.lt.f32 %p94, %f128, 0f00000000;
+ setp.eq.f32 %p95, %f131, 0f3F800000;
+ and.pred %p4, %p94, %p95;
+ mov.b32 %r274, %f844;
+ xor.b32 %r275, %r274, -2147483648;
+ mov.b32 %f610, %r275;
+ selp.f32 %f846, %f610, %f844, %p4;
+ setp.eq.f32 %p96, %f128, 0f00000000;
+ @%p96 bra BB0_96;
+ bra.uni BB0_94;
+
+BB0_96:
+ add.f32 %f613, %f128, %f128;
+ selp.f32 %f846, %f613, 0f00000000, %p95;
+ bra.uni BB0_97;
+
+BB0_94:
+ setp.geu.f32 %p97, %f128, 0f00000000;
+ @%p97 bra BB0_97;
+
+ cvt.rzi.f32.f32 %f612, %f584;
+ setp.neu.f32 %p98, %f612, 0f3EE66666;
+ selp.f32 %f846, 0f7FFFFFFF, %f846, %p98;
+
+BB0_97:
+ add.f32 %f614, %f132, 0f3EE66666;
+ mov.b32 %r276, %f614;
+ setp.lt.s32 %p100, %r276, 2139095040;
+ @%p100 bra BB0_102;
+
+ setp.gtu.f32 %p101, %f132, 0f7F800000;
+ @%p101 bra BB0_101;
+ bra.uni BB0_99;
+
+BB0_101:
+ add.f32 %f846, %f128, 0f3EE66666;
+ bra.uni BB0_102;
+
+BB0_99:
+ setp.neu.f32 %p102, %f132, 0f7F800000;
+ @%p102 bra BB0_102;
+
+ selp.f32 %f846, 0fFF800000, 0f7F800000, %p4;
+
+BB0_102:
+ setp.eq.f32 %p103, %f128, 0f3F800000;
+ selp.f32 %f144, 0f3F800000, %f846, %p103;
+ abs.f32 %f145, %f129;
+ setp.lt.f32 %p104, %f145, 0f00800000;
+ mul.f32 %f617, %f145, 0f4B800000;
+ selp.f32 %f618, 0fC3170000, 0fC2FE0000, %p104;
+ selp.f32 %f619, %f617, %f145, %p104;
+ mov.b32 %r277, %f619;
+ and.b32 %r278, %r277, 8388607;
+ or.b32 %r279, %r278, 1065353216;
+ mov.b32 %f620, %r279;
+ shr.u32 %r280, %r277, 23;
+ cvt.rn.f32.u32 %f621, %r280;
+ add.f32 %f622, %f618, %f621;
+ setp.gt.f32 %p105, %f620, 0f3FB504F3;
+ mul.f32 %f623, %f620, 0f3F000000;
+ add.f32 %f624, %f622, 0f3F800000;
+ selp.f32 %f625, %f623, %f620, %p105;
+ selp.f32 %f626, %f624, %f622, %p105;
+ add.f32 %f627, %f625, 0fBF800000;
+ add.f32 %f616, %f625, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f615,%f616;
+ // inline asm
+ add.f32 %f628, %f627, %f627;
+ mul.f32 %f629, %f615, %f628;
+ mul.f32 %f630, %f629, %f629;
+ fma.rn.f32 %f633, %f554, %f630, %f553;
+ fma.rn.f32 %f635, %f633, %f630, %f556;
+ mul.rn.f32 %f636, %f635, %f630;
+ mul.rn.f32 %f637, %f636, %f629;
+ sub.f32 %f638, %f627, %f629;
+ neg.f32 %f639, %f629;
+ add.f32 %f640, %f638, %f638;
+ fma.rn.f32 %f641, %f639, %f627, %f640;
+ mul.rn.f32 %f642, %f615, %f641;
+ add.f32 %f643, %f637, %f629;
+ sub.f32 %f644, %f629, %f643;
+ add.f32 %f645, %f637, %f644;
+ add.f32 %f646, %f642, %f645;
+ add.f32 %f647, %f643, %f646;
+ sub.f32 %f648, %f643, %f647;
+ add.f32 %f649, %f646, %f648;
+ mul.rn.f32 %f651, %f626, %f572;
+ mul.rn.f32 %f653, %f626, %f574;
+ add.f32 %f654, %f651, %f647;
+ sub.f32 %f655, %f651, %f654;
+ add.f32 %f656, %f647, %f655;
+ add.f32 %f657, %f649, %f656;
+ add.f32 %f658, %f653, %f657;
+ add.f32 %f659, %f654, %f658;
+ sub.f32 %f660, %f654, %f659;
+ add.f32 %f661, %f658, %f660;
+ mul.rn.f32 %f663, %f584, %f659;
+ neg.f32 %f664, %f663;
+ fma.rn.f32 %f665, %f584, %f659, %f664;
+ fma.rn.f32 %f666, %f584, %f661, %f665;
+ fma.rn.f32 %f668, %f589, %f659, %f666;
+ add.rn.f32 %f669, %f663, %f668;
+ neg.f32 %f670, %f669;
+ add.rn.f32 %f671, %f663, %f670;
+ add.rn.f32 %f672, %f671, %f668;
+ mov.b32 %r281, %f669;
+ setp.eq.s32 %p106, %r281, 1118925336;
+ add.s32 %r282, %r281, -1;
+ mov.b32 %f673, %r282;
+ add.f32 %f674, %f672, 0f37000000;
+ selp.f32 %f675, %f673, %f669, %p106;
+ selp.f32 %f146, %f674, %f672, %p106;
+ mul.f32 %f676, %f675, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f677, %f676;
+ fma.rn.f32 %f679, %f677, %f600, %f675;
+ fma.rn.f32 %f681, %f677, %f602, %f679;
+ mul.f32 %f682, %f681, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f683, %f682;
+ add.f32 %f684, %f677, 0f00000000;
+ ex2.approx.f32 %f685, %f684;
+ mul.f32 %f686, %f683, %f685;
+ setp.lt.f32 %p107, %f675, 0fC2D20000;
+ selp.f32 %f687, 0f00000000, %f686, %p107;
+ setp.gt.f32 %p108, %f675, 0f42D20000;
+ selp.f32 %f847, 0f7F800000, %f687, %p108;
+ setp.eq.f32 %p109, %f847, 0f7F800000;
+ @%p109 bra BB0_104;
+
+ fma.rn.f32 %f847, %f847, %f146, %f847;
+
+BB0_104:
+ setp.lt.f32 %p110, %f129, 0f00000000;
+ and.pred %p5, %p110, %p95;
+ mov.b32 %r283, %f847;
+ xor.b32 %r284, %r283, -2147483648;
+ mov.b32 %f688, %r284;
+ selp.f32 %f849, %f688, %f847, %p5;
+ setp.eq.f32 %p112, %f129, 0f00000000;
+ @%p112 bra BB0_107;
+ bra.uni BB0_105;
+
+BB0_107:
+ add.f32 %f691, %f129, %f129;
+ selp.f32 %f849, %f691, 0f00000000, %p95;
+ bra.uni BB0_108;
+
+BB0_105:
+ setp.geu.f32 %p113, %f129, 0f00000000;
+ @%p113 bra BB0_108;
+
+ cvt.rzi.f32.f32 %f690, %f584;
+ setp.neu.f32 %p114, %f690, 0f3EE66666;
+ selp.f32 %f849, 0f7FFFFFFF, %f849, %p114;
+
+BB0_108:
+ add.f32 %f692, %f145, 0f3EE66666;
+ mov.b32 %r285, %f692;
+ setp.lt.s32 %p116, %r285, 2139095040;
+ @%p116 bra BB0_113;
+
+ setp.gtu.f32 %p117, %f145, 0f7F800000;
+ @%p117 bra BB0_112;
+ bra.uni BB0_110;
+
+BB0_112:
+ add.f32 %f849, %f129, 0f3EE66666;
+ bra.uni BB0_113;
+
+BB0_110:
+ setp.neu.f32 %p118, %f145, 0f7F800000;
+ @%p118 bra BB0_113;
+
+ selp.f32 %f849, 0fFF800000, 0f7F800000, %p5;
+
+BB0_113:
+ setp.eq.f32 %p119, %f129, 0f3F800000;
+ selp.f32 %f157, 0f3F800000, %f849, %p119;
+ abs.f32 %f158, %f130;
+ setp.lt.f32 %p120, %f158, 0f00800000;
+ mul.f32 %f695, %f158, 0f4B800000;
+ selp.f32 %f696, 0fC3170000, 0fC2FE0000, %p120;
+ selp.f32 %f697, %f695, %f158, %p120;
+ mov.b32 %r286, %f697;
+ and.b32 %r287, %r286, 8388607;
+ or.b32 %r288, %r287, 1065353216;
+ mov.b32 %f698, %r288;
+ shr.u32 %r289, %r286, 23;
+ cvt.rn.f32.u32 %f699, %r289;
+ add.f32 %f700, %f696, %f699;
+ setp.gt.f32 %p121, %f698, 0f3FB504F3;
+ mul.f32 %f701, %f698, 0f3F000000;
+ add.f32 %f702, %f700, 0f3F800000;
+ selp.f32 %f703, %f701, %f698, %p121;
+ selp.f32 %f704, %f702, %f700, %p121;
+ add.f32 %f705, %f703, 0fBF800000;
+ add.f32 %f694, %f703, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f693,%f694;
+ // inline asm
+ add.f32 %f706, %f705, %f705;
+ mul.f32 %f707, %f693, %f706;
+ mul.f32 %f708, %f707, %f707;
+ fma.rn.f32 %f711, %f554, %f708, %f553;
+ fma.rn.f32 %f713, %f711, %f708, %f556;
+ mul.rn.f32 %f714, %f713, %f708;
+ mul.rn.f32 %f715, %f714, %f707;
+ sub.f32 %f716, %f705, %f707;
+ neg.f32 %f717, %f707;
+ add.f32 %f718, %f716, %f716;
+ fma.rn.f32 %f719, %f717, %f705, %f718;
+ mul.rn.f32 %f720, %f693, %f719;
+ add.f32 %f721, %f715, %f707;
+ sub.f32 %f722, %f707, %f721;
+ add.f32 %f723, %f715, %f722;
+ add.f32 %f724, %f720, %f723;
+ add.f32 %f725, %f721, %f724;
+ sub.f32 %f726, %f721, %f725;
+ add.f32 %f727, %f724, %f726;
+ mul.rn.f32 %f729, %f704, %f572;
+ mul.rn.f32 %f731, %f704, %f574;
+ add.f32 %f732, %f729, %f725;
+ sub.f32 %f733, %f729, %f732;
+ add.f32 %f734, %f725, %f733;
+ add.f32 %f735, %f727, %f734;
+ add.f32 %f736, %f731, %f735;
+ add.f32 %f737, %f732, %f736;
+ sub.f32 %f738, %f732, %f737;
+ add.f32 %f739, %f736, %f738;
+ mul.rn.f32 %f741, %f584, %f737;
+ neg.f32 %f742, %f741;
+ fma.rn.f32 %f743, %f584, %f737, %f742;
+ fma.rn.f32 %f744, %f584, %f739, %f743;
+ fma.rn.f32 %f746, %f589, %f737, %f744;
+ add.rn.f32 %f747, %f741, %f746;
+ neg.f32 %f748, %f747;
+ add.rn.f32 %f749, %f741, %f748;
+ add.rn.f32 %f750, %f749, %f746;
+ mov.b32 %r290, %f747;
+ setp.eq.s32 %p122, %r290, 1118925336;
+ add.s32 %r291, %r290, -1;
+ mov.b32 %f751, %r291;
+ add.f32 %f752, %f750, 0f37000000;
+ selp.f32 %f753, %f751, %f747, %p122;
+ selp.f32 %f159, %f752, %f750, %p122;
+ mul.f32 %f754, %f753, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f755, %f754;
+ fma.rn.f32 %f757, %f755, %f600, %f753;
+ fma.rn.f32 %f759, %f755, %f602, %f757;
+ mul.f32 %f760, %f759, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f761, %f760;
+ add.f32 %f762, %f755, 0f00000000;
+ ex2.approx.f32 %f763, %f762;
+ mul.f32 %f764, %f761, %f763;
+ setp.lt.f32 %p123, %f753, 0fC2D20000;
+ selp.f32 %f765, 0f00000000, %f764, %p123;
+ setp.gt.f32 %p124, %f753, 0f42D20000;
+ selp.f32 %f850, 0f7F800000, %f765, %p124;
+ setp.eq.f32 %p125, %f850, 0f7F800000;
+ @%p125 bra BB0_115;
+
+ fma.rn.f32 %f850, %f850, %f159, %f850;
+
+BB0_115:
+ setp.lt.f32 %p126, %f130, 0f00000000;
+ and.pred %p6, %p126, %p95;
+ mov.b32 %r292, %f850;
+ xor.b32 %r293, %r292, -2147483648;
+ mov.b32 %f766, %r293;
+ selp.f32 %f852, %f766, %f850, %p6;
+ setp.eq.f32 %p128, %f130, 0f00000000;
+ @%p128 bra BB0_118;
+ bra.uni BB0_116;
+
+BB0_118:
+ add.f32 %f769, %f130, %f130;
+ selp.f32 %f852, %f769, 0f00000000, %p95;
+ bra.uni BB0_119;
+
+BB0_116:
+ setp.geu.f32 %p129, %f130, 0f00000000;
+ @%p129 bra BB0_119;
+
+ cvt.rzi.f32.f32 %f768, %f584;
+ setp.neu.f32 %p130, %f768, 0f3EE66666;
+ selp.f32 %f852, 0f7FFFFFFF, %f852, %p130;
+
+BB0_119:
+ add.f32 %f770, %f158, 0f3EE66666;
+ mov.b32 %r294, %f770;
+ setp.lt.s32 %p132, %r294, 2139095040;
+ @%p132 bra BB0_124;
+
+ setp.gtu.f32 %p133, %f158, 0f7F800000;
+ @%p133 bra BB0_123;
+ bra.uni BB0_121;
+
+BB0_123:
+ add.f32 %f852, %f130, 0f3EE66666;
+ bra.uni BB0_124;
+
+BB0_121:
+ setp.neu.f32 %p134, %f158, 0f7F800000;
+ @%p134 bra BB0_124;
+
+ selp.f32 %f852, 0fFF800000, 0f7F800000, %p6;
+
+BB0_124:
+ mov.u32 %r326, 2;
+ setp.eq.f32 %p135, %f130, 0f3F800000;
+ selp.f32 %f771, 0f3F800000, %f852, %p135;
+ cvt.u64.u32 %rd73, %r4;
+ cvt.u64.u32 %rd72, %r3;
+ mov.u64 %rd76, image;
+ cvta.global.u64 %rd71, %rd76;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd71, %r326, %r102, %rd72, %rd73, %rd24, %rd24);
+ // inline asm
+ cvt.sat.f32.f32 %f772, %f771;
+ mul.f32 %f773, %f772, 0f437FFD71;
+ cvt.rzi.u32.f32 %r297, %f773;
+ cvt.sat.f32.f32 %f774, %f157;
+ mul.f32 %f775, %f774, 0f437FFD71;
+ cvt.rzi.u32.f32 %r298, %f775;
+ cvt.sat.f32.f32 %f776, %f144;
+ mul.f32 %f777, %f776, 0f437FFD71;
+ cvt.rzi.u32.f32 %r299, %f777;
+ cvt.u16.u32 %rs12, %r297;
+ cvt.u16.u32 %rs13, %r299;
+ cvt.u16.u32 %rs14, %r298;
+ mov.u16 %rs15, 255;
+ st.v4.u8 [%rd70], {%rs12, %rs14, %rs13, %rs15};
+ ld.global.u32 %r360, [imageEnabled];
+
+BB0_125:
+ and.b32 %r300, %r360, 4;
+ setp.eq.s32 %p136, %r300, 0;
+ @%p136 bra BB0_137;
+
+ ld.global.u32 %r301, [additive];
+ setp.eq.s32 %p137, %r301, 0;
+ cvt.u64.u32 %rd15, %r3;
+ cvt.u64.u32 %rd16, %r4;
+ // inline asm
+ { cvt.rn.f16.f32 %rs16, %f338;}
+
+ // inline asm
+ @%p137 bra BB0_128;
+
+ mov.u32 %r327, 2;
+ mov.u64 %rd89, image_HDR;
+ cvta.global.u64 %rd78, %rd89;
+ mov.u32 %r305, 8;
+ // inline asm
+ call (%rd77), _rt_buffer_get_64, (%rd78, %r327, %r305, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs23, %rs24, %rs25, %rs26}, [%rd77];
+ // inline asm
+ { cvt.f32.f16 %f779, %rs23;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f780, %rs24;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f781, %rs25;}
+
+ // inline asm
+ // inline asm
+ call (%rd83), _rt_buffer_get_64, (%rd78, %r327, %r305, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ add.f32 %f782, %f128, %f779;
+ add.f32 %f783, %f129, %f780;
+ add.f32 %f784, %f130, %f781;
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f784;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs21, %f783;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f782;}
+
+ // inline asm
+ st.v4.u16 [%rd83], {%rs20, %rs21, %rs22, %rs16};
+ bra.uni BB0_137;
+
+BB0_128:
+ mov.u32 %r328, 2;
+ mov.u64 %rd96, image_HDR;
+ cvta.global.u64 %rd91, %rd96;
+ mov.u32 %r307, 8;
+ // inline asm
+ call (%rd90), _rt_buffer_get_64, (%rd91, %r328, %r307, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f130;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f129;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f128;}
+
+ // inline asm
+ st.v4.u16 [%rd90], {%rs27, %rs28, %rs29, %rs16};
+
+BB0_137:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLight.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLight.ptx.meta
new file mode 100644
index 00000000..9f356d92
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLight.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 68f3872877b46914aaf236ed2053c1b0
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightDir.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightDir.ptx
new file mode 100644
index 00000000..1d739a9a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightDir.ptx
@@ -0,0 +1,1888 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_Dir[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 lightMeshBuffer[1];
+.global .align 4 .u32 lightMeshBufferSize;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightPointSize;
+.global .align 4 .b8 lightColor[12];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo19lightMeshBufferSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightPointSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename19lightMeshBufferSizeE[13] = {117, 110, 115, 105, 103, 110, 101, 100, 32, 105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightPointSizeE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum19lightMeshBufferSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightPointSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightPointSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightPointSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[36];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<145>;
+ .reg .b16 %rs<55>;
+ .reg .f32 %f<935>;
+ .reg .b32 %r<371>;
+ .reg .b64 %rd<162>;
+
+
+ mov.u64 %rd161, __local_depot0;
+ cvta.local.u64 %SP, %rd161;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r103, %r104}, [pixelID];
+ cvt.u64.u32 %rd23, %r103;
+ cvt.u64.u32 %rd24, %r104;
+ mov.u64 %rd27, uvnormal;
+ cvta.global.u64 %rd22, %rd27;
+ mov.u32 %r101, 2;
+ mov.u32 %r102, 4;
+ mov.u64 %rd26, 0;
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd22, %r101, %r102, %rd23, %rd24, %rd26, %rd26);
+ // inline asm
+ ld.u32 %r2, [%rd21];
+ shr.u32 %r107, %r2, 16;
+ cvt.u16.u32 %rs1, %r107;
+ and.b16 %rs3, %rs1, 255;
+ cvt.u16.u32 %rs4, %r2;
+ or.b16 %rs5, %rs4, %rs3;
+ setp.eq.s16 %p7, %rs5, 0;
+ mov.f32 %f865, 0f00000000;
+ mov.f32 %f866, %f865;
+ mov.f32 %f867, %f865;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs6, [%rd21+1];
+ and.b16 %rs8, %rs4, 255;
+ cvt.rn.f32.u16 %f204, %rs8;
+ div.rn.f32 %f205, %f204, 0f437F0000;
+ fma.rn.f32 %f206, %f205, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f207, %rs6;
+ div.rn.f32 %f208, %f207, 0f437F0000;
+ fma.rn.f32 %f209, %f208, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f210, %rs3;
+ div.rn.f32 %f211, %f210, 0f437F0000;
+ fma.rn.f32 %f212, %f211, 0f40000000, 0fBF800000;
+ mul.f32 %f213, %f209, %f209;
+ fma.rn.f32 %f214, %f206, %f206, %f213;
+ fma.rn.f32 %f215, %f212, %f212, %f214;
+ sqrt.rn.f32 %f216, %f215;
+ rcp.rn.f32 %f217, %f216;
+ mul.f32 %f865, %f206, %f217;
+ mul.f32 %f866, %f209, %f217;
+ mul.f32 %f867, %f212, %f217;
+
+BB0_2:
+ ld.global.v2.u32 {%r108, %r109}, [pixelID];
+ ld.global.v2.u32 {%r111, %r112}, [tileInfo];
+ add.s32 %r3, %r108, %r111;
+ add.s32 %r4, %r109, %r112;
+ setp.eq.f32 %p8, %f866, 0f00000000;
+ setp.eq.f32 %p9, %f865, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f867, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_131;
+ bra.uni BB0_3;
+
+BB0_131:
+ ld.global.u32 %r370, [imageEnabled];
+ and.b32 %r313, %r370, 1;
+ setp.eq.b32 %p139, %r313, 1;
+ @!%p139 bra BB0_133;
+ bra.uni BB0_132;
+
+BB0_132:
+ cvt.u64.u32 %rd116, %r3;
+ cvt.u64.u32 %rd117, %r4;
+ mov.u64 %rd120, image;
+ cvta.global.u64 %rd115, %rd120;
+ mov.u64 %rd119, 0;
+ // inline asm
+ call (%rd114), _rt_buffer_get_64, (%rd115, %r101, %r102, %rd116, %rd117, %rd119, %rd119);
+ // inline asm
+ mov.u16 %rs36, 0;
+ st.v4.u8 [%rd114], {%rs36, %rs36, %rs36, %rs36};
+ ld.global.u32 %r370, [imageEnabled];
+
+BB0_133:
+ and.b32 %r316, %r370, 8;
+ setp.eq.s32 %p140, %r316, 0;
+ @%p140 bra BB0_135;
+
+ cvt.u64.u32 %rd123, %r3;
+ cvt.u64.u32 %rd124, %r4;
+ mov.u64 %rd127, image_Mask;
+ cvta.global.u64 %rd122, %rd127;
+ mov.u64 %rd126, 0;
+ // inline asm
+ call (%rd121), _rt_buffer_get_64, (%rd122, %r101, %r101, %rd123, %rd124, %rd126, %rd126);
+ // inline asm
+ mov.f32 %f848, 0f00000000;
+ cvt.rzi.u32.f32 %r319, %f848;
+ cvt.u16.u32 %rs37, %r319;
+ mov.u16 %rs38, 0;
+ st.v2.u8 [%rd121], {%rs37, %rs38};
+ ld.global.u32 %r370, [imageEnabled];
+
+BB0_135:
+ and.b32 %r320, %r370, 4;
+ setp.eq.s32 %p141, %r320, 0;
+ @%p141 bra BB0_139;
+
+ ld.global.u32 %r321, [additive];
+ setp.eq.s32 %p142, %r321, 0;
+ cvt.u64.u32 %rd19, %r3;
+ cvt.u64.u32 %rd20, %r4;
+ @%p142 bra BB0_138;
+
+ mov.u64 %rd140, image_HDR;
+ cvta.global.u64 %rd129, %rd140;
+ mov.u32 %r325, 8;
+ mov.u64 %rd139, 0;
+ // inline asm
+ call (%rd128), _rt_buffer_get_64, (%rd129, %r101, %r325, %rd19, %rd20, %rd139, %rd139);
+ // inline asm
+ ld.v4.u16 {%rs45, %rs46, %rs47, %rs48}, [%rd128];
+ // inline asm
+ { cvt.f32.f16 %f849, %rs45;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f850, %rs46;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f851, %rs47;}
+
+ // inline asm
+ // inline asm
+ call (%rd134), _rt_buffer_get_64, (%rd129, %r101, %r325, %rd19, %rd20, %rd139, %rd139);
+ // inline asm
+ add.f32 %f852, %f849, 0f00000000;
+ add.f32 %f853, %f850, 0f00000000;
+ add.f32 %f854, %f851, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f854;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f853;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs42, %f852;}
+
+ // inline asm
+ mov.u16 %rs49, 0;
+ st.v4.u16 [%rd134], {%rs42, %rs43, %rs44, %rs49};
+ bra.uni BB0_139;
+
+BB0_3:
+ ld.global.v2.u32 {%r121, %r122}, [pixelID];
+ cvt.u64.u32 %rd30, %r121;
+ cvt.u64.u32 %rd31, %r122;
+ mov.u64 %rd40, uvpos;
+ cvta.global.u64 %rd29, %rd40;
+ mov.u32 %r117, 12;
+ // inline asm
+ call (%rd28), _rt_buffer_get_64, (%rd29, %r101, %r117, %rd30, %rd31, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f9, [%rd28+8];
+ ld.f32 %f8, [%rd28+4];
+ ld.f32 %f7, [%rd28];
+ mul.f32 %f223, %f7, 0f3456BF95;
+ mul.f32 %f224, %f8, 0f3456BF95;
+ mul.f32 %f225, %f9, 0f3456BF95;
+ abs.f32 %f10, %f865;
+ div.rn.f32 %f226, %f223, %f10;
+ abs.f32 %f227, %f866;
+ div.rn.f32 %f228, %f224, %f227;
+ abs.f32 %f11, %f867;
+ div.rn.f32 %f229, %f225, %f11;
+ abs.f32 %f230, %f226;
+ abs.f32 %f231, %f228;
+ abs.f32 %f232, %f229;
+ mov.f32 %f233, 0f38D1B717;
+ max.f32 %f234, %f230, %f233;
+ max.f32 %f235, %f231, %f233;
+ max.f32 %f236, %f232, %f233;
+ fma.rn.f32 %f12, %f865, %f234, %f7;
+ fma.rn.f32 %f13, %f866, %f235, %f8;
+ fma.rn.f32 %f14, %f867, %f236, %f9;
+ ld.global.v2.u32 {%r125, %r126}, [pixelID];
+ cvt.u64.u32 %rd36, %r125;
+ cvt.u64.u32 %rd37, %r126;
+ mov.u64 %rd41, rnd_seeds;
+ cvta.global.u64 %rd35, %rd41;
+ // inline asm
+ call (%rd34), _rt_buffer_get_64, (%rd35, %r101, %r102, %rd36, %rd37, %rd26, %rd26);
+ // inline asm
+ ld.u32 %r129, [%rd34];
+ mad.lo.s32 %r5, %r129, 1664525, 1013904223;
+ ld.global.u32 %r130, [lightMeshBufferSize];
+ setp.eq.s32 %p14, %r130, 0;
+ mov.pred %p13, 0;
+ mov.f32 %f20, 0f00000000;
+ mov.u32 %r7, 0;
+ @%p14 bra BB0_4;
+
+ ld.global.f32 %f15, [lightPointSize];
+ mul.f32 %f16, %f12, 0f3456BF95;
+ mul.f32 %f17, %f13, 0f3456BF95;
+ mul.f32 %f18, %f14, 0f3456BF95;
+ and.b32 %r133, %r5, 16777215;
+ cvt.rn.f32.u32 %f242, %r133;
+ mul.f32 %f243, %f242, 0fB3800000;
+ fma.rn.f32 %f19, %f243, 0f3F333333, 0f3F800000;
+ mov.f32 %f20, 0f00000000;
+ mov.u32 %r339, 0;
+ abs.f32 %f366, %f17;
+ abs.f32 %f367, %f16;
+ max.f32 %f368, %f367, %f366;
+ abs.f32 %f369, %f18;
+ max.f32 %f370, %f368, %f369;
+ mov.u32 %r7, %r339;
+ mov.f32 %f21, %f20;
+ mov.f32 %f888, %f20;
+ mov.f32 %f889, %f20;
+ mov.f32 %f890, %f20;
+
+BB0_6:
+ shl.b32 %r8, %r339, 1;
+ cvt.s64.s32 %rd44, %r8;
+ mov.u64 %rd48, lightMeshBuffer;
+ cvta.global.u64 %rd43, %rd48;
+ mov.u32 %r134, 1;
+ // inline asm
+ call (%rd42), _rt_buffer_get_64, (%rd43, %r134, %r117, %rd44, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f244, [%rd42];
+ sub.f32 %f245, %f244, %f7;
+ ld.f32 %f246, [%rd42+4];
+ sub.f32 %f247, %f246, %f8;
+ ld.f32 %f248, [%rd42+8];
+ sub.f32 %f249, %f248, %f9;
+ mul.f32 %f250, %f247, %f247;
+ fma.rn.f32 %f251, %f245, %f245, %f250;
+ fma.rn.f32 %f252, %f249, %f249, %f251;
+ sqrt.rn.f32 %f25, %f252;
+ rcp.rn.f32 %f253, %f25;
+ mul.f32 %f26, %f245, %f253;
+ mul.f32 %f27, %f247, %f253;
+ mul.f32 %f28, %f249, %f253;
+ mul.f32 %f254, %f866, %f27;
+ fma.rn.f32 %f255, %f865, %f26, %f254;
+ fma.rn.f32 %f29, %f867, %f28, %f255;
+ setp.leu.f32 %p15, %f29, 0f00000000;
+ @%p15 bra BB0_22;
+
+ setp.ne.s32 %p17, %r1, 0;
+ mul.f32 %f256, %f25, %f25;
+ mul.f32 %f257, %f256, 0f40C90FDB;
+ div.rn.f32 %f258, %f15, %f257;
+ add.f32 %f30, %f258, %f258;
+ setp.gt.f32 %p18, %f30, %f19;
+ and.pred %p19, %p17, %p18;
+ mov.pred %p144, -1;
+ @%p19 bra BB0_24;
+
+ ld.global.f32 %f261, [lightInvCutoff];
+ mul.f32 %f31, %f25, %f261;
+ mov.f32 %f265, 0f40800000;
+ abs.f32 %f33, %f31;
+ setp.lt.f32 %p20, %f33, 0f00800000;
+ mul.f32 %f267, %f33, 0f4B800000;
+ selp.f32 %f268, 0fC3170000, 0fC2FE0000, %p20;
+ selp.f32 %f269, %f267, %f33, %p20;
+ mov.b32 %r136, %f269;
+ and.b32 %r137, %r136, 8388607;
+ or.b32 %r138, %r137, 1065353216;
+ mov.b32 %f270, %r138;
+ shr.u32 %r139, %r136, 23;
+ cvt.rn.f32.u32 %f271, %r139;
+ add.f32 %f272, %f268, %f271;
+ setp.gt.f32 %p21, %f270, 0f3FB504F3;
+ mul.f32 %f273, %f270, 0f3F000000;
+ add.f32 %f274, %f272, 0f3F800000;
+ selp.f32 %f275, %f273, %f270, %p21;
+ selp.f32 %f276, %f274, %f272, %p21;
+ add.f32 %f277, %f275, 0fBF800000;
+ add.f32 %f260, %f275, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f259,%f260;
+ // inline asm
+ add.f32 %f278, %f277, %f277;
+ mul.f32 %f279, %f259, %f278;
+ mul.f32 %f280, %f279, %f279;
+ mov.f32 %f281, 0f3C4CAF63;
+ mov.f32 %f282, 0f3B18F0FE;
+ fma.rn.f32 %f283, %f282, %f280, %f281;
+ mov.f32 %f284, 0f3DAAAABD;
+ fma.rn.f32 %f285, %f283, %f280, %f284;
+ mul.rn.f32 %f286, %f285, %f280;
+ mul.rn.f32 %f287, %f286, %f279;
+ sub.f32 %f288, %f277, %f279;
+ neg.f32 %f289, %f279;
+ add.f32 %f290, %f288, %f288;
+ fma.rn.f32 %f291, %f289, %f277, %f290;
+ mul.rn.f32 %f292, %f259, %f291;
+ add.f32 %f293, %f287, %f279;
+ sub.f32 %f294, %f279, %f293;
+ add.f32 %f295, %f287, %f294;
+ add.f32 %f296, %f292, %f295;
+ add.f32 %f297, %f293, %f296;
+ sub.f32 %f298, %f293, %f297;
+ add.f32 %f299, %f296, %f298;
+ mov.f32 %f300, 0f3F317200;
+ mul.rn.f32 %f301, %f276, %f300;
+ mov.f32 %f302, 0f35BFBE8E;
+ mul.rn.f32 %f303, %f276, %f302;
+ add.f32 %f304, %f301, %f297;
+ sub.f32 %f305, %f301, %f304;
+ add.f32 %f306, %f297, %f305;
+ add.f32 %f307, %f299, %f306;
+ add.f32 %f308, %f303, %f307;
+ add.f32 %f309, %f304, %f308;
+ sub.f32 %f310, %f304, %f309;
+ add.f32 %f311, %f308, %f310;
+ mul.rn.f32 %f312, %f265, %f309;
+ neg.f32 %f313, %f312;
+ fma.rn.f32 %f314, %f265, %f309, %f313;
+ fma.rn.f32 %f315, %f265, %f311, %f314;
+ mov.f32 %f316, 0f00000000;
+ fma.rn.f32 %f317, %f316, %f309, %f315;
+ add.rn.f32 %f318, %f312, %f317;
+ neg.f32 %f319, %f318;
+ add.rn.f32 %f320, %f312, %f319;
+ add.rn.f32 %f321, %f320, %f317;
+ mov.b32 %r140, %f318;
+ setp.eq.s32 %p22, %r140, 1118925336;
+ add.s32 %r141, %r140, -1;
+ mov.b32 %f322, %r141;
+ add.f32 %f323, %f321, 0f37000000;
+ selp.f32 %f324, %f322, %f318, %p22;
+ selp.f32 %f34, %f323, %f321, %p22;
+ mul.f32 %f325, %f324, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f326, %f325;
+ mov.f32 %f327, 0fBF317200;
+ fma.rn.f32 %f328, %f326, %f327, %f324;
+ mov.f32 %f329, 0fB5BFBE8E;
+ fma.rn.f32 %f330, %f326, %f329, %f328;
+ mul.f32 %f331, %f330, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f332, %f331;
+ add.f32 %f333, %f326, 0f00000000;
+ ex2.approx.f32 %f334, %f333;
+ mul.f32 %f335, %f332, %f334;
+ setp.lt.f32 %p23, %f324, 0fC2D20000;
+ selp.f32 %f336, 0f00000000, %f335, %p23;
+ setp.gt.f32 %p24, %f324, 0f42D20000;
+ selp.f32 %f873, 0f7F800000, %f336, %p24;
+ setp.eq.f32 %p25, %f873, 0f7F800000;
+ @%p25 bra BB0_10;
+
+ fma.rn.f32 %f873, %f873, %f34, %f873;
+
+BB0_10:
+ mov.f32 %f861, 0f40000000;
+ cvt.rzi.f32.f32 %f860, %f861;
+ add.f32 %f859, %f860, %f860;
+ mov.f32 %f858, 0f40800000;
+ sub.f32 %f857, %f858, %f859;
+ abs.f32 %f856, %f857;
+ setp.lt.f32 %p26, %f31, 0f00000000;
+ setp.eq.f32 %p27, %f856, 0f3F800000;
+ and.pred %p1, %p26, %p27;
+ mov.b32 %r142, %f873;
+ xor.b32 %r143, %r142, -2147483648;
+ mov.b32 %f337, %r143;
+ selp.f32 %f875, %f337, %f873, %p1;
+ setp.eq.f32 %p28, %f31, 0f00000000;
+ @%p28 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f340, %f31, %f31;
+ selp.f32 %f875, %f340, 0f00000000, %p27;
+ bra.uni BB0_14;
+
+BB0_11:
+ setp.geu.f32 %p29, %f31, 0f00000000;
+ @%p29 bra BB0_14;
+
+ mov.f32 %f864, 0f40800000;
+ cvt.rzi.f32.f32 %f339, %f864;
+ setp.neu.f32 %p30, %f339, 0f40800000;
+ selp.f32 %f875, 0f7FFFFFFF, %f875, %p30;
+
+BB0_14:
+ add.f32 %f341, %f33, 0f40800000;
+ mov.b32 %r144, %f341;
+ setp.lt.s32 %p32, %r144, 2139095040;
+ @%p32 bra BB0_19;
+
+ setp.gtu.f32 %p33, %f33, 0f7F800000;
+ @%p33 bra BB0_18;
+ bra.uni BB0_16;
+
+BB0_18:
+ add.f32 %f875, %f31, 0f40800000;
+ bra.uni BB0_19;
+
+BB0_16:
+ setp.neu.f32 %p34, %f33, 0f7F800000;
+ @%p34 bra BB0_19;
+
+ selp.f32 %f875, 0fFF800000, 0f7F800000, %p1;
+
+BB0_19:
+ mov.u32 %r331, 1;
+ mov.u64 %rd156, lightMeshBuffer;
+ cvta.global.u64 %rd155, %rd156;
+ shl.b32 %r330, %r339, 1;
+ mov.f32 %f342, 0f3F800000;
+ sub.f32 %f343, %f342, %f875;
+ setp.eq.f32 %p35, %f31, 0f3F800000;
+ selp.f32 %f344, 0f00000000, %f343, %p35;
+ cvt.sat.f32.f32 %f345, %f344;
+ mul.f32 %f346, %f30, %f345;
+ add.s32 %r147, %r330, 1;
+ cvt.s64.s32 %rd51, %r147;
+ // inline asm
+ call (%rd49), _rt_buffer_get_64, (%rd155, %r331, %r117, %rd51, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f347, [%rd49];
+ mul.f32 %f348, %f26, %f347;
+ ld.f32 %f349, [%rd49+4];
+ mul.f32 %f350, %f27, %f349;
+ neg.f32 %f351, %f350;
+ sub.f32 %f352, %f351, %f348;
+ ld.f32 %f353, [%rd49+8];
+ mul.f32 %f354, %f28, %f353;
+ sub.f32 %f355, %f352, %f354;
+ cvt.sat.f32.f32 %f356, %f355;
+ mul.f32 %f45, %f346, %f356;
+ cvt.sat.f32.f32 %f46, %f29;
+ mul.f32 %f357, %f45, %f46;
+ setp.leu.f32 %p36, %f357, 0f3727C5AC;
+ @%p36 bra BB0_21;
+
+ mov.u32 %r338, 1;
+ add.u64 %rd56, %SP, 28;
+ cvta.to.local.u64 %rd57, %rd56;
+ max.f32 %f364, %f370, %f233;
+ sub.f32 %f365, %f25, %f364;
+ mov.u32 %r151, 1065353216;
+ st.local.u32 [%rd57], %r151;
+ ld.global.u32 %r148, [root];
+ // inline asm
+ call _rt_trace_64, (%r148, %f12, %f13, %f14, %f26, %f27, %f28, %r338, %f364, %f365, %rd56, %r102);
+ // inline asm
+ ld.local.f32 %f372, [%rd57];
+ mul.f32 %f373, %f45, %f372;
+ fma.rn.f32 %f21, %f46, %f373, %f21;
+ add.f32 %f20, %f20, %f372;
+ fma.rn.f32 %f890, %f26, %f372, %f890;
+ fma.rn.f32 %f889, %f27, %f372, %f889;
+ fma.rn.f32 %f888, %f28, %f372, %f888;
+
+BB0_21:
+ add.s32 %r7, %r7, 1;
+
+BB0_22:
+ ld.global.u32 %r152, [lightMeshBufferSize];
+ add.s32 %r339, %r339, 1;
+ setp.lt.u32 %p38, %r339, %r152;
+ @%p38 bra BB0_6;
+ bra.uni BB0_23;
+
+BB0_4:
+ mov.f32 %f21, %f20;
+ mov.f32 %f888, %f20;
+ mov.f32 %f889, %f20;
+ mov.f32 %f890, %f20;
+
+BB0_23:
+ mov.pred %p144, %p13;
+
+BB0_24:
+ cvt.rn.f32.s32 %f374, %r7;
+ mov.f32 %f375, 0f3F800000;
+ max.f32 %f376, %f374, %f375;
+ div.rn.f32 %f921, %f21, %f376;
+ div.rn.f32 %f922, %f20, %f376;
+ @!%p144 bra BB0_77;
+ bra.uni BB0_25;
+
+BB0_25:
+ abs.f32 %f863, %f867;
+ abs.f32 %f862, %f865;
+ setp.gt.f32 %p39, %f862, %f863;
+ neg.f32 %f382, %f866;
+ selp.f32 %f383, %f382, 0f00000000, %p39;
+ neg.f32 %f384, %f867;
+ selp.f32 %f385, %f865, %f384, %p39;
+ selp.f32 %f386, 0f00000000, %f866, %p39;
+ mul.f32 %f387, %f385, %f385;
+ fma.rn.f32 %f388, %f383, %f383, %f387;
+ fma.rn.f32 %f389, %f386, %f386, %f388;
+ sqrt.rn.f32 %f390, %f389;
+ rcp.rn.f32 %f391, %f390;
+ mul.f32 %f69, %f383, %f391;
+ mul.f32 %f70, %f385, %f391;
+ mul.f32 %f71, %f386, %f391;
+ mov.f32 %f896, 0f00000000;
+ setp.lt.s32 %p40, %r1, 1;
+ mov.f32 %f897, %f896;
+ mov.f32 %f888, %f896;
+ mov.f32 %f889, %f896;
+ mov.f32 %f890, %f896;
+ @%p40 bra BB0_76;
+
+ mad.lo.s32 %r346, %r129, 1664525, 1013904223;
+ cvt.rn.f32.s32 %f397, %r1;
+ rcp.rn.f32 %f72, %f397;
+ add.u64 %rd58, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd58;
+ mul.f32 %f73, %f12, 0f3456BF95;
+ mul.f32 %f74, %f13, 0f3456BF95;
+ mul.f32 %f75, %f14, 0f3456BF95;
+ add.u64 %rd59, %SP, 32;
+ cvta.to.local.u64 %rd3, %rd59;
+ mul.f32 %f398, %f865, %f70;
+ mul.f32 %f399, %f866, %f69;
+ sub.f32 %f76, %f399, %f398;
+ mul.f32 %f400, %f867, %f69;
+ mul.f32 %f401, %f865, %f71;
+ sub.f32 %f77, %f401, %f400;
+ mul.f32 %f402, %f866, %f71;
+ mul.f32 %f403, %f867, %f70;
+ sub.f32 %f78, %f403, %f402;
+ mov.f32 %f896, 0f00000000;
+ mov.u32 %r153, 0;
+ abs.f32 %f404, %f74;
+ abs.f32 %f405, %f73;
+ max.f32 %f406, %f405, %f404;
+ abs.f32 %f407, %f75;
+ max.f32 %f408, %f406, %f407;
+ mov.u32 %r343, %r153;
+ mov.f32 %f897, %f896;
+ mov.f32 %f888, %f896;
+ mov.f32 %f889, %f896;
+ mov.f32 %f890, %f896;
+
+BB0_27:
+ cvt.rn.f32.s32 %f84, %r343;
+ max.f32 %f85, %f408, %f233;
+ mov.u32 %r345, %r153;
+
+BB0_28:
+ mad.lo.s32 %r155, %r346, 1664525, 1013904223;
+ and.b32 %r156, %r155, 16777215;
+ cvt.rn.f32.u32 %f410, %r156;
+ fma.rn.f32 %f411, %f410, 0f33800000, %f84;
+ mul.f32 %f91, %f72, %f411;
+ mad.lo.s32 %r346, %r155, 1664525, 1013904223;
+ and.b32 %r157, %r346, 16777215;
+ cvt.rn.f32.u32 %f412, %r157;
+ cvt.rn.f32.s32 %f413, %r345;
+ fma.rn.f32 %f414, %f412, 0f33800000, %f413;
+ mul.f32 %f415, %f72, %f414;
+ mul.f32 %f416, %f91, %f91;
+ sub.f32 %f418, %f375, %f416;
+ mov.f32 %f419, 0f00000000;
+ max.f32 %f420, %f419, %f418;
+ sqrt.rn.f32 %f92, %f420;
+ mul.f32 %f907, %f415, 0f40C90FDB;
+ abs.f32 %f94, %f907;
+ setp.neu.f32 %p41, %f94, 0f7F800000;
+ mov.f32 %f901, %f907;
+ @%p41 bra BB0_30;
+
+ mul.rn.f32 %f901, %f907, %f419;
+
+BB0_30:
+ mul.f32 %f422, %f901, 0f3F22F983;
+ cvt.rni.s32.f32 %r356, %f422;
+ cvt.rn.f32.s32 %f423, %r356;
+ neg.f32 %f424, %f423;
+ mov.f32 %f425, 0f3FC90FDA;
+ fma.rn.f32 %f426, %f424, %f425, %f901;
+ mov.f32 %f427, 0f33A22168;
+ fma.rn.f32 %f428, %f424, %f427, %f426;
+ mov.f32 %f429, 0f27C234C5;
+ fma.rn.f32 %f902, %f424, %f429, %f428;
+ abs.f32 %f430, %f901;
+ setp.leu.f32 %p42, %f430, 0f47CE4780;
+ @%p42 bra BB0_41;
+
+ mov.b32 %r19, %f901;
+ shr.u32 %r20, %r19, 23;
+ shl.b32 %r160, %r19, 8;
+ or.b32 %r21, %r160, -2147483648;
+ mov.u32 %r347, 0;
+ mov.u64 %rd158, 0;
+ mov.u64 %rd157, %rd2;
+ mov.u32 %r348, %r347;
+
+BB0_32:
+ .pragma "nounroll";
+ shl.b64 %rd61, %rd158, 2;
+ mov.u64 %rd62, __cudart_i2opi_f;
+ add.s64 %rd63, %rd62, %rd61;
+ ld.const.u32 %r163, [%rd63];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r161, %r163, %r21, %r348;
+ madc.hi.u32 %r348, %r163, %r21, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd157], %r161;
+ add.s32 %r347, %r347, 1;
+ cvt.s64.s32 %rd158, %r347;
+ mul.wide.s32 %rd64, %r347, 4;
+ add.s64 %rd157, %rd2, %rd64;
+ setp.ne.s32 %p43, %r347, 6;
+ @%p43 bra BB0_32;
+
+ and.b32 %r166, %r20, 255;
+ add.s32 %r167, %r166, -128;
+ shr.u32 %r168, %r167, 5;
+ and.b32 %r26, %r19, -2147483648;
+ st.local.u32 [%rd2+24], %r348;
+ mov.u32 %r169, 6;
+ sub.s32 %r170, %r169, %r168;
+ mul.wide.s32 %rd65, %r170, 4;
+ add.s64 %rd9, %rd2, %rd65;
+ ld.local.u32 %r349, [%rd9];
+ ld.local.u32 %r350, [%rd9+-4];
+ and.b32 %r29, %r20, 31;
+ setp.eq.s32 %p44, %r29, 0;
+ @%p44 bra BB0_35;
+
+ mov.u32 %r171, 32;
+ sub.s32 %r172, %r171, %r29;
+ shr.u32 %r173, %r350, %r172;
+ shl.b32 %r174, %r349, %r29;
+ add.s32 %r349, %r173, %r174;
+ ld.local.u32 %r175, [%rd9+-8];
+ shr.u32 %r176, %r175, %r172;
+ shl.b32 %r177, %r350, %r29;
+ add.s32 %r350, %r176, %r177;
+
+BB0_35:
+ shr.u32 %r178, %r350, 30;
+ shl.b32 %r179, %r349, 2;
+ add.s32 %r351, %r178, %r179;
+ shl.b32 %r35, %r350, 2;
+ shr.u32 %r180, %r351, 31;
+ shr.u32 %r181, %r349, 30;
+ add.s32 %r36, %r180, %r181;
+ setp.eq.s32 %p45, %r180, 0;
+ @%p45 bra BB0_36;
+ bra.uni BB0_37;
+
+BB0_36:
+ mov.u32 %r352, %r26;
+ mov.u32 %r353, %r35;
+ bra.uni BB0_38;
+
+BB0_37:
+ not.b32 %r182, %r351;
+ neg.s32 %r353, %r35;
+ setp.eq.s32 %p46, %r35, 0;
+ selp.u32 %r183, 1, 0, %p46;
+ add.s32 %r351, %r183, %r182;
+ xor.b32 %r352, %r26, -2147483648;
+
+BB0_38:
+ clz.b32 %r355, %r351;
+ setp.eq.s32 %p47, %r355, 0;
+ shl.b32 %r184, %r351, %r355;
+ mov.u32 %r185, 32;
+ sub.s32 %r186, %r185, %r355;
+ shr.u32 %r187, %r353, %r186;
+ add.s32 %r188, %r187, %r184;
+ selp.b32 %r44, %r351, %r188, %p47;
+ mov.u32 %r189, -921707870;
+ mul.hi.u32 %r354, %r44, %r189;
+ setp.eq.s32 %p48, %r26, 0;
+ neg.s32 %r190, %r36;
+ selp.b32 %r356, %r36, %r190, %p48;
+ setp.lt.s32 %p49, %r354, 1;
+ @%p49 bra BB0_40;
+
+ mul.lo.s32 %r191, %r44, -921707870;
+ shr.u32 %r192, %r191, 31;
+ shl.b32 %r193, %r354, 1;
+ add.s32 %r354, %r192, %r193;
+ add.s32 %r355, %r355, 1;
+
+BB0_40:
+ mov.u32 %r194, 126;
+ sub.s32 %r195, %r194, %r355;
+ shl.b32 %r196, %r195, 23;
+ add.s32 %r197, %r354, 1;
+ shr.u32 %r198, %r197, 7;
+ add.s32 %r199, %r198, 1;
+ shr.u32 %r200, %r199, 1;
+ add.s32 %r201, %r200, %r196;
+ or.b32 %r202, %r201, %r352;
+ mov.b32 %f902, %r202;
+
+BB0_41:
+ mul.rn.f32 %f100, %f902, %f902;
+ add.s32 %r52, %r356, 1;
+ and.b32 %r53, %r52, 1;
+ setp.eq.s32 %p50, %r53, 0;
+ @%p50 bra BB0_43;
+ bra.uni BB0_42;
+
+BB0_43:
+ mov.f32 %f433, 0f3C08839E;
+ mov.f32 %f434, 0fB94CA1F9;
+ fma.rn.f32 %f903, %f434, %f100, %f433;
+ bra.uni BB0_44;
+
+BB0_42:
+ mov.f32 %f431, 0fBAB6061A;
+ mov.f32 %f432, 0f37CCF5CE;
+ fma.rn.f32 %f903, %f432, %f100, %f431;
+
+BB0_44:
+ @%p50 bra BB0_46;
+ bra.uni BB0_45;
+
+BB0_46:
+ mov.f32 %f438, 0fBE2AAAA3;
+ fma.rn.f32 %f439, %f903, %f100, %f438;
+ fma.rn.f32 %f904, %f439, %f100, %f419;
+ bra.uni BB0_47;
+
+BB0_45:
+ mov.f32 %f435, 0f3D2AAAA5;
+ fma.rn.f32 %f436, %f903, %f100, %f435;
+ mov.f32 %f437, 0fBF000000;
+ fma.rn.f32 %f904, %f436, %f100, %f437;
+
+BB0_47:
+ fma.rn.f32 %f905, %f904, %f902, %f902;
+ @%p50 bra BB0_49;
+
+ fma.rn.f32 %f905, %f904, %f100, %f375;
+
+BB0_49:
+ and.b32 %r203, %r52, 2;
+ setp.eq.s32 %p53, %r203, 0;
+ @%p53 bra BB0_51;
+
+ mov.f32 %f443, 0fBF800000;
+ fma.rn.f32 %f905, %f905, %f443, %f419;
+
+BB0_51:
+ @%p41 bra BB0_53;
+
+ mul.rn.f32 %f907, %f907, %f419;
+
+BB0_53:
+ mul.f32 %f445, %f907, 0f3F22F983;
+ cvt.rni.s32.f32 %r366, %f445;
+ cvt.rn.f32.s32 %f446, %r366;
+ neg.f32 %f447, %f446;
+ fma.rn.f32 %f449, %f447, %f425, %f907;
+ fma.rn.f32 %f451, %f447, %f427, %f449;
+ fma.rn.f32 %f908, %f447, %f429, %f451;
+ abs.f32 %f453, %f907;
+ setp.leu.f32 %p55, %f453, 0f47CE4780;
+ @%p55 bra BB0_64;
+
+ mov.b32 %r55, %f907;
+ shr.u32 %r56, %r55, 23;
+ shl.b32 %r206, %r55, 8;
+ or.b32 %r57, %r206, -2147483648;
+ mov.u32 %r357, 0;
+ mov.u64 %rd159, %rd2;
+ mov.u64 %rd160, %rd26;
+ mov.u32 %r358, %r357;
+
+BB0_55:
+ .pragma "nounroll";
+ shl.b64 %rd67, %rd160, 2;
+ mov.u64 %rd68, __cudart_i2opi_f;
+ add.s64 %rd69, %rd68, %rd67;
+ ld.const.u32 %r209, [%rd69];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r207, %r209, %r57, %r358;
+ madc.hi.u32 %r358, %r209, %r57, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd159], %r207;
+ add.s32 %r357, %r357, 1;
+ cvt.s64.s32 %rd160, %r357;
+ mul.wide.s32 %rd70, %r357, 4;
+ add.s64 %rd159, %rd2, %rd70;
+ setp.ne.s32 %p56, %r357, 6;
+ @%p56 bra BB0_55;
+
+ and.b32 %r212, %r56, 255;
+ add.s32 %r213, %r212, -128;
+ shr.u32 %r214, %r213, 5;
+ and.b32 %r62, %r55, -2147483648;
+ st.local.u32 [%rd2+24], %r358;
+ mov.u32 %r215, 6;
+ sub.s32 %r216, %r215, %r214;
+ mul.wide.s32 %rd71, %r216, 4;
+ add.s64 %rd15, %rd2, %rd71;
+ ld.local.u32 %r359, [%rd15];
+ ld.local.u32 %r360, [%rd15+-4];
+ and.b32 %r65, %r56, 31;
+ setp.eq.s32 %p57, %r65, 0;
+ @%p57 bra BB0_58;
+
+ mov.u32 %r217, 32;
+ sub.s32 %r218, %r217, %r65;
+ shr.u32 %r219, %r360, %r218;
+ shl.b32 %r220, %r359, %r65;
+ add.s32 %r359, %r219, %r220;
+ ld.local.u32 %r221, [%rd15+-8];
+ shr.u32 %r222, %r221, %r218;
+ shl.b32 %r223, %r360, %r65;
+ add.s32 %r360, %r222, %r223;
+
+BB0_58:
+ shr.u32 %r224, %r360, 30;
+ shl.b32 %r225, %r359, 2;
+ add.s32 %r361, %r224, %r225;
+ shl.b32 %r71, %r360, 2;
+ shr.u32 %r226, %r361, 31;
+ shr.u32 %r227, %r359, 30;
+ add.s32 %r72, %r226, %r227;
+ setp.eq.s32 %p58, %r226, 0;
+ @%p58 bra BB0_59;
+ bra.uni BB0_60;
+
+BB0_59:
+ mov.u32 %r362, %r62;
+ mov.u32 %r363, %r71;
+ bra.uni BB0_61;
+
+BB0_60:
+ not.b32 %r228, %r361;
+ neg.s32 %r363, %r71;
+ setp.eq.s32 %p59, %r71, 0;
+ selp.u32 %r229, 1, 0, %p59;
+ add.s32 %r361, %r229, %r228;
+ xor.b32 %r362, %r62, -2147483648;
+
+BB0_61:
+ clz.b32 %r365, %r361;
+ setp.eq.s32 %p60, %r365, 0;
+ shl.b32 %r230, %r361, %r365;
+ mov.u32 %r231, 32;
+ sub.s32 %r232, %r231, %r365;
+ shr.u32 %r233, %r363, %r232;
+ add.s32 %r234, %r233, %r230;
+ selp.b32 %r80, %r361, %r234, %p60;
+ mov.u32 %r235, -921707870;
+ mul.hi.u32 %r364, %r80, %r235;
+ setp.eq.s32 %p61, %r62, 0;
+ neg.s32 %r236, %r72;
+ selp.b32 %r366, %r72, %r236, %p61;
+ setp.lt.s32 %p62, %r364, 1;
+ @%p62 bra BB0_63;
+
+ mul.lo.s32 %r237, %r80, -921707870;
+ shr.u32 %r238, %r237, 31;
+ shl.b32 %r239, %r364, 1;
+ add.s32 %r364, %r238, %r239;
+ add.s32 %r365, %r365, 1;
+
+BB0_63:
+ mov.u32 %r240, 126;
+ sub.s32 %r241, %r240, %r365;
+ shl.b32 %r242, %r241, 23;
+ add.s32 %r243, %r364, 1;
+ shr.u32 %r244, %r243, 7;
+ add.s32 %r245, %r244, 1;
+ shr.u32 %r246, %r245, 1;
+ add.s32 %r247, %r246, %r242;
+ or.b32 %r248, %r247, %r362;
+ mov.b32 %f908, %r248;
+
+BB0_64:
+ mul.rn.f32 %f117, %f908, %f908;
+ and.b32 %r88, %r366, 1;
+ setp.eq.s32 %p63, %r88, 0;
+ @%p63 bra BB0_66;
+ bra.uni BB0_65;
+
+BB0_66:
+ mov.f32 %f456, 0f3C08839E;
+ mov.f32 %f457, 0fB94CA1F9;
+ fma.rn.f32 %f909, %f457, %f117, %f456;
+ bra.uni BB0_67;
+
+BB0_65:
+ mov.f32 %f454, 0fBAB6061A;
+ mov.f32 %f455, 0f37CCF5CE;
+ fma.rn.f32 %f909, %f455, %f117, %f454;
+
+BB0_67:
+ @%p63 bra BB0_69;
+ bra.uni BB0_68;
+
+BB0_69:
+ mov.f32 %f461, 0fBE2AAAA3;
+ fma.rn.f32 %f462, %f909, %f117, %f461;
+ fma.rn.f32 %f910, %f462, %f117, %f419;
+ bra.uni BB0_70;
+
+BB0_68:
+ mov.f32 %f458, 0f3D2AAAA5;
+ fma.rn.f32 %f459, %f909, %f117, %f458;
+ mov.f32 %f460, 0fBF000000;
+ fma.rn.f32 %f910, %f459, %f117, %f460;
+
+BB0_70:
+ fma.rn.f32 %f911, %f910, %f908, %f908;
+ @%p63 bra BB0_72;
+
+ fma.rn.f32 %f911, %f910, %f117, %f375;
+
+BB0_72:
+ and.b32 %r249, %r366, 2;
+ setp.eq.s32 %p66, %r249, 0;
+ @%p66 bra BB0_74;
+
+ mov.f32 %f466, 0fBF800000;
+ fma.rn.f32 %f911, %f911, %f466, %f419;
+
+BB0_74:
+ mul.f32 %f475, %f92, %f905;
+ mul.f32 %f476, %f92, %f911;
+ mul.f32 %f477, %f69, %f476;
+ mul.f32 %f478, %f70, %f476;
+ mul.f32 %f479, %f71, %f476;
+ fma.rn.f32 %f480, %f78, %f475, %f477;
+ fma.rn.f32 %f481, %f77, %f475, %f478;
+ fma.rn.f32 %f482, %f76, %f475, %f479;
+ fma.rn.f32 %f470, %f865, %f91, %f480;
+ fma.rn.f32 %f471, %f866, %f91, %f481;
+ fma.rn.f32 %f472, %f867, %f91, %f482;
+ mov.u32 %r251, 0;
+ st.local.u32 [%rd3], %r251;
+ ld.global.u32 %r250, [root];
+ mov.f32 %f474, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r250, %f12, %f13, %f14, %f470, %f471, %f472, %r251, %f85, %f474, %rd59, %r102);
+ // inline asm
+ ld.local.f32 %f483, [%rd3];
+ setp.lt.f32 %p67, %f483, 0f00000000;
+ selp.f32 %f484, 0f00000000, %f483, %p67;
+ selp.f32 %f485, 0f00000000, 0f3F800000, %p67;
+ fma.rn.f32 %f890, %f470, %f485, %f890;
+ fma.rn.f32 %f889, %f471, %f485, %f889;
+ fma.rn.f32 %f888, %f472, %f485, %f888;
+ add.f32 %f896, %f896, %f485;
+ mul.f32 %f486, %f866, %f471;
+ fma.rn.f32 %f487, %f865, %f470, %f486;
+ fma.rn.f32 %f488, %f867, %f472, %f487;
+ cvt.sat.f32.f32 %f489, %f488;
+ fma.rn.f32 %f897, %f484, %f489, %f897;
+ add.s32 %r345, %r345, 1;
+ setp.lt.s32 %p68, %r345, %r1;
+ @%p68 bra BB0_28;
+
+ add.s32 %r343, %r343, 1;
+ setp.lt.s32 %p69, %r343, %r1;
+ @%p69 bra BB0_27;
+
+BB0_76:
+ mul.lo.s32 %r253, %r1, %r1;
+ cvt.rn.f32.s32 %f490, %r253;
+ div.rn.f32 %f491, %f897, %f490;
+ div.rn.f32 %f922, %f896, %f490;
+ add.f32 %f921, %f491, %f491;
+
+BB0_77:
+ ld.global.u32 %r368, [imageEnabled];
+ and.b32 %r254, %r368, 8;
+ setp.eq.s32 %p70, %r254, 0;
+ @%p70 bra BB0_90;
+
+ mov.u32 %r332, 2;
+ cvt.u64.u32 %rd75, %r3;
+ cvt.u64.u32 %rd76, %r4;
+ mov.u64 %rd79, image_Mask;
+ cvta.global.u64 %rd74, %rd79;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r332, %r332, %rd75, %rd76, %rd26, %rd26);
+ // inline asm
+ mov.f32 %f494, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f495, %f494;
+ fma.rn.f32 %f496, %f495, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f146, %f496;
+ abs.f32 %f147, %f922;
+ setp.lt.f32 %p71, %f147, 0f00800000;
+ mul.f32 %f497, %f147, 0f4B800000;
+ selp.f32 %f498, 0fC3170000, 0fC2FE0000, %p71;
+ selp.f32 %f499, %f497, %f147, %p71;
+ mov.b32 %r257, %f499;
+ and.b32 %r258, %r257, 8388607;
+ or.b32 %r259, %r258, 1065353216;
+ mov.b32 %f500, %r259;
+ shr.u32 %r260, %r257, 23;
+ cvt.rn.f32.u32 %f501, %r260;
+ add.f32 %f502, %f498, %f501;
+ setp.gt.f32 %p72, %f500, 0f3FB504F3;
+ mul.f32 %f503, %f500, 0f3F000000;
+ add.f32 %f504, %f502, 0f3F800000;
+ selp.f32 %f505, %f503, %f500, %p72;
+ selp.f32 %f506, %f504, %f502, %p72;
+ add.f32 %f507, %f505, 0fBF800000;
+ add.f32 %f493, %f505, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f492,%f493;
+ // inline asm
+ add.f32 %f508, %f507, %f507;
+ mul.f32 %f509, %f492, %f508;
+ mul.f32 %f510, %f509, %f509;
+ mov.f32 %f511, 0f3C4CAF63;
+ mov.f32 %f512, 0f3B18F0FE;
+ fma.rn.f32 %f513, %f512, %f510, %f511;
+ mov.f32 %f514, 0f3DAAAABD;
+ fma.rn.f32 %f515, %f513, %f510, %f514;
+ mul.rn.f32 %f516, %f515, %f510;
+ mul.rn.f32 %f517, %f516, %f509;
+ sub.f32 %f518, %f507, %f509;
+ neg.f32 %f519, %f509;
+ add.f32 %f520, %f518, %f518;
+ fma.rn.f32 %f521, %f519, %f507, %f520;
+ mul.rn.f32 %f522, %f492, %f521;
+ add.f32 %f523, %f517, %f509;
+ sub.f32 %f524, %f509, %f523;
+ add.f32 %f525, %f517, %f524;
+ add.f32 %f526, %f522, %f525;
+ add.f32 %f527, %f523, %f526;
+ sub.f32 %f528, %f523, %f527;
+ add.f32 %f529, %f526, %f528;
+ mov.f32 %f530, 0f3F317200;
+ mul.rn.f32 %f531, %f506, %f530;
+ mov.f32 %f532, 0f35BFBE8E;
+ mul.rn.f32 %f533, %f506, %f532;
+ add.f32 %f534, %f531, %f527;
+ sub.f32 %f535, %f531, %f534;
+ add.f32 %f536, %f527, %f535;
+ add.f32 %f537, %f529, %f536;
+ add.f32 %f538, %f533, %f537;
+ add.f32 %f539, %f534, %f538;
+ sub.f32 %f540, %f534, %f539;
+ add.f32 %f541, %f538, %f540;
+ mov.f32 %f542, 0f3EE8BA2E;
+ mul.rn.f32 %f543, %f542, %f539;
+ neg.f32 %f544, %f543;
+ fma.rn.f32 %f545, %f542, %f539, %f544;
+ fma.rn.f32 %f546, %f542, %f541, %f545;
+ mov.f32 %f547, 0f00000000;
+ fma.rn.f32 %f548, %f547, %f539, %f546;
+ add.rn.f32 %f549, %f543, %f548;
+ neg.f32 %f550, %f549;
+ add.rn.f32 %f551, %f543, %f550;
+ add.rn.f32 %f552, %f551, %f548;
+ mov.b32 %r261, %f549;
+ setp.eq.s32 %p73, %r261, 1118925336;
+ add.s32 %r262, %r261, -1;
+ mov.b32 %f553, %r262;
+ add.f32 %f554, %f552, 0f37000000;
+ selp.f32 %f555, %f553, %f549, %p73;
+ selp.f32 %f148, %f554, %f552, %p73;
+ mul.f32 %f556, %f555, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f557, %f556;
+ mov.f32 %f558, 0fBF317200;
+ fma.rn.f32 %f559, %f557, %f558, %f555;
+ mov.f32 %f560, 0fB5BFBE8E;
+ fma.rn.f32 %f561, %f557, %f560, %f559;
+ mul.f32 %f562, %f561, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f563, %f562;
+ add.f32 %f564, %f557, 0f00000000;
+ ex2.approx.f32 %f565, %f564;
+ mul.f32 %f566, %f563, %f565;
+ setp.lt.f32 %p74, %f555, 0fC2D20000;
+ selp.f32 %f567, 0f00000000, %f566, %p74;
+ setp.gt.f32 %p75, %f555, 0f42D20000;
+ selp.f32 %f923, 0f7F800000, %f567, %p75;
+ setp.eq.f32 %p76, %f923, 0f7F800000;
+ @%p76 bra BB0_80;
+
+ fma.rn.f32 %f923, %f923, %f148, %f923;
+
+BB0_80:
+ setp.lt.f32 %p77, %f922, 0f00000000;
+ setp.eq.f32 %p78, %f146, 0f3F800000;
+ and.pred %p3, %p77, %p78;
+ mov.b32 %r263, %f923;
+ xor.b32 %r264, %r263, -2147483648;
+ mov.b32 %f568, %r264;
+ selp.f32 %f925, %f568, %f923, %p3;
+ setp.eq.f32 %p79, %f922, 0f00000000;
+ @%p79 bra BB0_83;
+ bra.uni BB0_81;
+
+BB0_83:
+ add.f32 %f571, %f922, %f922;
+ selp.f32 %f925, %f571, 0f00000000, %p78;
+ bra.uni BB0_84;
+
+BB0_138:
+ mov.u64 %rd147, image_HDR;
+ cvta.global.u64 %rd142, %rd147;
+ mov.u32 %r327, 8;
+ mov.u64 %rd146, 0;
+ // inline asm
+ call (%rd141), _rt_buffer_get_64, (%rd142, %r101, %r327, %rd19, %rd20, %rd146, %rd146);
+ // inline asm
+ mov.f32 %f855, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f855;}
+
+ // inline asm
+ mov.u16 %rs51, 0;
+ st.v4.u16 [%rd141], {%rs50, %rs50, %rs50, %rs51};
+
+BB0_139:
+ ld.global.u8 %rs52, [imageEnabled];
+ and.b16 %rs53, %rs52, 64;
+ setp.eq.s16 %p143, %rs53, 0;
+ @%p143 bra BB0_141;
+
+ cvt.u64.u32 %rd150, %r3;
+ cvt.u64.u32 %rd151, %r4;
+ mov.u64 %rd154, image_Dir;
+ cvta.global.u64 %rd149, %rd154;
+ mov.u64 %rd153, 0;
+ // inline asm
+ call (%rd148), _rt_buffer_get_64, (%rd149, %r101, %r102, %rd150, %rd151, %rd153, %rd153);
+ // inline asm
+ mov.u16 %rs54, 0;
+ st.v4.u8 [%rd148], {%rs54, %rs54, %rs54, %rs54};
+ bra.uni BB0_141;
+
+BB0_81:
+ setp.geu.f32 %p80, %f922, 0f00000000;
+ @%p80 bra BB0_84;
+
+ cvt.rzi.f32.f32 %f570, %f542;
+ setp.neu.f32 %p81, %f570, 0f3EE8BA2E;
+ selp.f32 %f925, 0f7FFFFFFF, %f925, %p81;
+
+BB0_84:
+ add.f32 %f572, %f147, 0f3EE8BA2E;
+ mov.b32 %r265, %f572;
+ setp.lt.s32 %p83, %r265, 2139095040;
+ @%p83 bra BB0_89;
+
+ setp.gtu.f32 %p84, %f147, 0f7F800000;
+ @%p84 bra BB0_88;
+ bra.uni BB0_86;
+
+BB0_88:
+ add.f32 %f925, %f922, 0f3EE8BA2E;
+ bra.uni BB0_89;
+
+BB0_86:
+ setp.neu.f32 %p85, %f147, 0f7F800000;
+ @%p85 bra BB0_89;
+
+ selp.f32 %f925, 0fFF800000, 0f7F800000, %p3;
+
+BB0_89:
+ mul.f32 %f573, %f925, 0f437F0000;
+ setp.eq.f32 %p86, %f922, 0f3F800000;
+ selp.f32 %f574, 0f437F0000, %f573, %p86;
+ cvt.rzi.u32.f32 %r266, %f574;
+ cvt.u16.u32 %rs10, %r266;
+ mov.u16 %rs11, 255;
+ st.v2.u8 [%rd73], {%rs10, %rs11};
+ ld.global.u32 %r368, [imageEnabled];
+
+BB0_90:
+ ld.global.f32 %f575, [lightColor];
+ mul.f32 %f159, %f921, %f575;
+ ld.global.f32 %f576, [lightColor+4];
+ mul.f32 %f160, %f921, %f576;
+ ld.global.f32 %f577, [lightColor+8];
+ mul.f32 %f161, %f921, %f577;
+ and.b32 %r267, %r368, 1;
+ setp.eq.b32 %p87, %r267, 1;
+ @!%p87 bra BB0_125;
+ bra.uni BB0_91;
+
+BB0_91:
+ mov.f32 %f580, 0f3E666666;
+ cvt.rzi.f32.f32 %f581, %f580;
+ fma.rn.f32 %f582, %f581, 0fC0000000, 0f3EE66666;
+ abs.f32 %f162, %f582;
+ abs.f32 %f163, %f159;
+ setp.lt.f32 %p88, %f163, 0f00800000;
+ mul.f32 %f583, %f163, 0f4B800000;
+ selp.f32 %f584, 0fC3170000, 0fC2FE0000, %p88;
+ selp.f32 %f585, %f583, %f163, %p88;
+ mov.b32 %r268, %f585;
+ and.b32 %r269, %r268, 8388607;
+ or.b32 %r270, %r269, 1065353216;
+ mov.b32 %f586, %r270;
+ shr.u32 %r271, %r268, 23;
+ cvt.rn.f32.u32 %f587, %r271;
+ add.f32 %f588, %f584, %f587;
+ setp.gt.f32 %p89, %f586, 0f3FB504F3;
+ mul.f32 %f589, %f586, 0f3F000000;
+ add.f32 %f590, %f588, 0f3F800000;
+ selp.f32 %f591, %f589, %f586, %p89;
+ selp.f32 %f592, %f590, %f588, %p89;
+ add.f32 %f593, %f591, 0fBF800000;
+ add.f32 %f579, %f591, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f578,%f579;
+ // inline asm
+ add.f32 %f594, %f593, %f593;
+ mul.f32 %f595, %f578, %f594;
+ mul.f32 %f596, %f595, %f595;
+ mov.f32 %f597, 0f3C4CAF63;
+ mov.f32 %f598, 0f3B18F0FE;
+ fma.rn.f32 %f599, %f598, %f596, %f597;
+ mov.f32 %f600, 0f3DAAAABD;
+ fma.rn.f32 %f601, %f599, %f596, %f600;
+ mul.rn.f32 %f602, %f601, %f596;
+ mul.rn.f32 %f603, %f602, %f595;
+ sub.f32 %f604, %f593, %f595;
+ neg.f32 %f605, %f595;
+ add.f32 %f606, %f604, %f604;
+ fma.rn.f32 %f607, %f605, %f593, %f606;
+ mul.rn.f32 %f608, %f578, %f607;
+ add.f32 %f609, %f603, %f595;
+ sub.f32 %f610, %f595, %f609;
+ add.f32 %f611, %f603, %f610;
+ add.f32 %f612, %f608, %f611;
+ add.f32 %f613, %f609, %f612;
+ sub.f32 %f614, %f609, %f613;
+ add.f32 %f615, %f612, %f614;
+ mov.f32 %f616, 0f3F317200;
+ mul.rn.f32 %f617, %f592, %f616;
+ mov.f32 %f618, 0f35BFBE8E;
+ mul.rn.f32 %f619, %f592, %f618;
+ add.f32 %f620, %f617, %f613;
+ sub.f32 %f621, %f617, %f620;
+ add.f32 %f622, %f613, %f621;
+ add.f32 %f623, %f615, %f622;
+ add.f32 %f624, %f619, %f623;
+ add.f32 %f625, %f620, %f624;
+ sub.f32 %f626, %f620, %f625;
+ add.f32 %f627, %f624, %f626;
+ mov.f32 %f628, 0f3EE66666;
+ mul.rn.f32 %f629, %f628, %f625;
+ neg.f32 %f630, %f629;
+ fma.rn.f32 %f631, %f628, %f625, %f630;
+ fma.rn.f32 %f632, %f628, %f627, %f631;
+ mov.f32 %f633, 0f00000000;
+ fma.rn.f32 %f634, %f633, %f625, %f632;
+ add.rn.f32 %f635, %f629, %f634;
+ neg.f32 %f636, %f635;
+ add.rn.f32 %f637, %f629, %f636;
+ add.rn.f32 %f638, %f637, %f634;
+ mov.b32 %r272, %f635;
+ setp.eq.s32 %p90, %r272, 1118925336;
+ add.s32 %r273, %r272, -1;
+ mov.b32 %f639, %r273;
+ add.f32 %f640, %f638, 0f37000000;
+ selp.f32 %f641, %f639, %f635, %p90;
+ selp.f32 %f164, %f640, %f638, %p90;
+ mul.f32 %f642, %f641, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f643, %f642;
+ mov.f32 %f644, 0fBF317200;
+ fma.rn.f32 %f645, %f643, %f644, %f641;
+ mov.f32 %f646, 0fB5BFBE8E;
+ fma.rn.f32 %f647, %f643, %f646, %f645;
+ mul.f32 %f648, %f647, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f649, %f648;
+ add.f32 %f650, %f643, 0f00000000;
+ ex2.approx.f32 %f651, %f650;
+ mul.f32 %f652, %f649, %f651;
+ setp.lt.f32 %p91, %f641, 0fC2D20000;
+ selp.f32 %f653, 0f00000000, %f652, %p91;
+ setp.gt.f32 %p92, %f641, 0f42D20000;
+ selp.f32 %f926, 0f7F800000, %f653, %p92;
+ setp.eq.f32 %p93, %f926, 0f7F800000;
+ @%p93 bra BB0_93;
+
+ fma.rn.f32 %f926, %f926, %f164, %f926;
+
+BB0_93:
+ setp.lt.f32 %p94, %f159, 0f00000000;
+ setp.eq.f32 %p95, %f162, 0f3F800000;
+ and.pred %p4, %p94, %p95;
+ mov.b32 %r274, %f926;
+ xor.b32 %r275, %r274, -2147483648;
+ mov.b32 %f654, %r275;
+ selp.f32 %f928, %f654, %f926, %p4;
+ setp.eq.f32 %p96, %f159, 0f00000000;
+ @%p96 bra BB0_96;
+ bra.uni BB0_94;
+
+BB0_96:
+ add.f32 %f657, %f159, %f159;
+ selp.f32 %f928, %f657, 0f00000000, %p95;
+ bra.uni BB0_97;
+
+BB0_94:
+ setp.geu.f32 %p97, %f159, 0f00000000;
+ @%p97 bra BB0_97;
+
+ cvt.rzi.f32.f32 %f656, %f628;
+ setp.neu.f32 %p98, %f656, 0f3EE66666;
+ selp.f32 %f928, 0f7FFFFFFF, %f928, %p98;
+
+BB0_97:
+ add.f32 %f658, %f163, 0f3EE66666;
+ mov.b32 %r276, %f658;
+ setp.lt.s32 %p100, %r276, 2139095040;
+ @%p100 bra BB0_102;
+
+ setp.gtu.f32 %p101, %f163, 0f7F800000;
+ @%p101 bra BB0_101;
+ bra.uni BB0_99;
+
+BB0_101:
+ add.f32 %f928, %f159, 0f3EE66666;
+ bra.uni BB0_102;
+
+BB0_99:
+ setp.neu.f32 %p102, %f163, 0f7F800000;
+ @%p102 bra BB0_102;
+
+ selp.f32 %f928, 0fFF800000, 0f7F800000, %p4;
+
+BB0_102:
+ setp.eq.f32 %p103, %f159, 0f3F800000;
+ selp.f32 %f175, 0f3F800000, %f928, %p103;
+ abs.f32 %f176, %f160;
+ setp.lt.f32 %p104, %f176, 0f00800000;
+ mul.f32 %f661, %f176, 0f4B800000;
+ selp.f32 %f662, 0fC3170000, 0fC2FE0000, %p104;
+ selp.f32 %f663, %f661, %f176, %p104;
+ mov.b32 %r277, %f663;
+ and.b32 %r278, %r277, 8388607;
+ or.b32 %r279, %r278, 1065353216;
+ mov.b32 %f664, %r279;
+ shr.u32 %r280, %r277, 23;
+ cvt.rn.f32.u32 %f665, %r280;
+ add.f32 %f666, %f662, %f665;
+ setp.gt.f32 %p105, %f664, 0f3FB504F3;
+ mul.f32 %f667, %f664, 0f3F000000;
+ add.f32 %f668, %f666, 0f3F800000;
+ selp.f32 %f669, %f667, %f664, %p105;
+ selp.f32 %f670, %f668, %f666, %p105;
+ add.f32 %f671, %f669, 0fBF800000;
+ add.f32 %f660, %f669, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f659,%f660;
+ // inline asm
+ add.f32 %f672, %f671, %f671;
+ mul.f32 %f673, %f659, %f672;
+ mul.f32 %f674, %f673, %f673;
+ fma.rn.f32 %f677, %f598, %f674, %f597;
+ fma.rn.f32 %f679, %f677, %f674, %f600;
+ mul.rn.f32 %f680, %f679, %f674;
+ mul.rn.f32 %f681, %f680, %f673;
+ sub.f32 %f682, %f671, %f673;
+ neg.f32 %f683, %f673;
+ add.f32 %f684, %f682, %f682;
+ fma.rn.f32 %f685, %f683, %f671, %f684;
+ mul.rn.f32 %f686, %f659, %f685;
+ add.f32 %f687, %f681, %f673;
+ sub.f32 %f688, %f673, %f687;
+ add.f32 %f689, %f681, %f688;
+ add.f32 %f690, %f686, %f689;
+ add.f32 %f691, %f687, %f690;
+ sub.f32 %f692, %f687, %f691;
+ add.f32 %f693, %f690, %f692;
+ mul.rn.f32 %f695, %f670, %f616;
+ mul.rn.f32 %f697, %f670, %f618;
+ add.f32 %f698, %f695, %f691;
+ sub.f32 %f699, %f695, %f698;
+ add.f32 %f700, %f691, %f699;
+ add.f32 %f701, %f693, %f700;
+ add.f32 %f702, %f697, %f701;
+ add.f32 %f703, %f698, %f702;
+ sub.f32 %f704, %f698, %f703;
+ add.f32 %f705, %f702, %f704;
+ mul.rn.f32 %f707, %f628, %f703;
+ neg.f32 %f708, %f707;
+ fma.rn.f32 %f709, %f628, %f703, %f708;
+ fma.rn.f32 %f710, %f628, %f705, %f709;
+ fma.rn.f32 %f712, %f633, %f703, %f710;
+ add.rn.f32 %f713, %f707, %f712;
+ neg.f32 %f714, %f713;
+ add.rn.f32 %f715, %f707, %f714;
+ add.rn.f32 %f716, %f715, %f712;
+ mov.b32 %r281, %f713;
+ setp.eq.s32 %p106, %r281, 1118925336;
+ add.s32 %r282, %r281, -1;
+ mov.b32 %f717, %r282;
+ add.f32 %f718, %f716, 0f37000000;
+ selp.f32 %f719, %f717, %f713, %p106;
+ selp.f32 %f177, %f718, %f716, %p106;
+ mul.f32 %f720, %f719, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f721, %f720;
+ fma.rn.f32 %f723, %f721, %f644, %f719;
+ fma.rn.f32 %f725, %f721, %f646, %f723;
+ mul.f32 %f726, %f725, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f727, %f726;
+ add.f32 %f728, %f721, 0f00000000;
+ ex2.approx.f32 %f729, %f728;
+ mul.f32 %f730, %f727, %f729;
+ setp.lt.f32 %p107, %f719, 0fC2D20000;
+ selp.f32 %f731, 0f00000000, %f730, %p107;
+ setp.gt.f32 %p108, %f719, 0f42D20000;
+ selp.f32 %f929, 0f7F800000, %f731, %p108;
+ setp.eq.f32 %p109, %f929, 0f7F800000;
+ @%p109 bra BB0_104;
+
+ fma.rn.f32 %f929, %f929, %f177, %f929;
+
+BB0_104:
+ setp.lt.f32 %p110, %f160, 0f00000000;
+ and.pred %p5, %p110, %p95;
+ mov.b32 %r283, %f929;
+ xor.b32 %r284, %r283, -2147483648;
+ mov.b32 %f732, %r284;
+ selp.f32 %f931, %f732, %f929, %p5;
+ setp.eq.f32 %p112, %f160, 0f00000000;
+ @%p112 bra BB0_107;
+ bra.uni BB0_105;
+
+BB0_107:
+ add.f32 %f735, %f160, %f160;
+ selp.f32 %f931, %f735, 0f00000000, %p95;
+ bra.uni BB0_108;
+
+BB0_105:
+ setp.geu.f32 %p113, %f160, 0f00000000;
+ @%p113 bra BB0_108;
+
+ cvt.rzi.f32.f32 %f734, %f628;
+ setp.neu.f32 %p114, %f734, 0f3EE66666;
+ selp.f32 %f931, 0f7FFFFFFF, %f931, %p114;
+
+BB0_108:
+ add.f32 %f736, %f176, 0f3EE66666;
+ mov.b32 %r285, %f736;
+ setp.lt.s32 %p116, %r285, 2139095040;
+ @%p116 bra BB0_113;
+
+ setp.gtu.f32 %p117, %f176, 0f7F800000;
+ @%p117 bra BB0_112;
+ bra.uni BB0_110;
+
+BB0_112:
+ add.f32 %f931, %f160, 0f3EE66666;
+ bra.uni BB0_113;
+
+BB0_110:
+ setp.neu.f32 %p118, %f176, 0f7F800000;
+ @%p118 bra BB0_113;
+
+ selp.f32 %f931, 0fFF800000, 0f7F800000, %p5;
+
+BB0_113:
+ setp.eq.f32 %p119, %f160, 0f3F800000;
+ selp.f32 %f188, 0f3F800000, %f931, %p119;
+ abs.f32 %f189, %f161;
+ setp.lt.f32 %p120, %f189, 0f00800000;
+ mul.f32 %f739, %f189, 0f4B800000;
+ selp.f32 %f740, 0fC3170000, 0fC2FE0000, %p120;
+ selp.f32 %f741, %f739, %f189, %p120;
+ mov.b32 %r286, %f741;
+ and.b32 %r287, %r286, 8388607;
+ or.b32 %r288, %r287, 1065353216;
+ mov.b32 %f742, %r288;
+ shr.u32 %r289, %r286, 23;
+ cvt.rn.f32.u32 %f743, %r289;
+ add.f32 %f744, %f740, %f743;
+ setp.gt.f32 %p121, %f742, 0f3FB504F3;
+ mul.f32 %f745, %f742, 0f3F000000;
+ add.f32 %f746, %f744, 0f3F800000;
+ selp.f32 %f747, %f745, %f742, %p121;
+ selp.f32 %f748, %f746, %f744, %p121;
+ add.f32 %f749, %f747, 0fBF800000;
+ add.f32 %f738, %f747, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f737,%f738;
+ // inline asm
+ add.f32 %f750, %f749, %f749;
+ mul.f32 %f751, %f737, %f750;
+ mul.f32 %f752, %f751, %f751;
+ fma.rn.f32 %f755, %f598, %f752, %f597;
+ fma.rn.f32 %f757, %f755, %f752, %f600;
+ mul.rn.f32 %f758, %f757, %f752;
+ mul.rn.f32 %f759, %f758, %f751;
+ sub.f32 %f760, %f749, %f751;
+ neg.f32 %f761, %f751;
+ add.f32 %f762, %f760, %f760;
+ fma.rn.f32 %f763, %f761, %f749, %f762;
+ mul.rn.f32 %f764, %f737, %f763;
+ add.f32 %f765, %f759, %f751;
+ sub.f32 %f766, %f751, %f765;
+ add.f32 %f767, %f759, %f766;
+ add.f32 %f768, %f764, %f767;
+ add.f32 %f769, %f765, %f768;
+ sub.f32 %f770, %f765, %f769;
+ add.f32 %f771, %f768, %f770;
+ mul.rn.f32 %f773, %f748, %f616;
+ mul.rn.f32 %f775, %f748, %f618;
+ add.f32 %f776, %f773, %f769;
+ sub.f32 %f777, %f773, %f776;
+ add.f32 %f778, %f769, %f777;
+ add.f32 %f779, %f771, %f778;
+ add.f32 %f780, %f775, %f779;
+ add.f32 %f781, %f776, %f780;
+ sub.f32 %f782, %f776, %f781;
+ add.f32 %f783, %f780, %f782;
+ mul.rn.f32 %f785, %f628, %f781;
+ neg.f32 %f786, %f785;
+ fma.rn.f32 %f787, %f628, %f781, %f786;
+ fma.rn.f32 %f788, %f628, %f783, %f787;
+ fma.rn.f32 %f790, %f633, %f781, %f788;
+ add.rn.f32 %f791, %f785, %f790;
+ neg.f32 %f792, %f791;
+ add.rn.f32 %f793, %f785, %f792;
+ add.rn.f32 %f794, %f793, %f790;
+ mov.b32 %r290, %f791;
+ setp.eq.s32 %p122, %r290, 1118925336;
+ add.s32 %r291, %r290, -1;
+ mov.b32 %f795, %r291;
+ add.f32 %f796, %f794, 0f37000000;
+ selp.f32 %f797, %f795, %f791, %p122;
+ selp.f32 %f190, %f796, %f794, %p122;
+ mul.f32 %f798, %f797, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f799, %f798;
+ fma.rn.f32 %f801, %f799, %f644, %f797;
+ fma.rn.f32 %f803, %f799, %f646, %f801;
+ mul.f32 %f804, %f803, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f805, %f804;
+ add.f32 %f806, %f799, 0f00000000;
+ ex2.approx.f32 %f807, %f806;
+ mul.f32 %f808, %f805, %f807;
+ setp.lt.f32 %p123, %f797, 0fC2D20000;
+ selp.f32 %f809, 0f00000000, %f808, %p123;
+ setp.gt.f32 %p124, %f797, 0f42D20000;
+ selp.f32 %f932, 0f7F800000, %f809, %p124;
+ setp.eq.f32 %p125, %f932, 0f7F800000;
+ @%p125 bra BB0_115;
+
+ fma.rn.f32 %f932, %f932, %f190, %f932;
+
+BB0_115:
+ setp.lt.f32 %p126, %f161, 0f00000000;
+ and.pred %p6, %p126, %p95;
+ mov.b32 %r292, %f932;
+ xor.b32 %r293, %r292, -2147483648;
+ mov.b32 %f810, %r293;
+ selp.f32 %f934, %f810, %f932, %p6;
+ setp.eq.f32 %p128, %f161, 0f00000000;
+ @%p128 bra BB0_118;
+ bra.uni BB0_116;
+
+BB0_118:
+ add.f32 %f813, %f161, %f161;
+ selp.f32 %f934, %f813, 0f00000000, %p95;
+ bra.uni BB0_119;
+
+BB0_116:
+ setp.geu.f32 %p129, %f161, 0f00000000;
+ @%p129 bra BB0_119;
+
+ cvt.rzi.f32.f32 %f812, %f628;
+ setp.neu.f32 %p130, %f812, 0f3EE66666;
+ selp.f32 %f934, 0f7FFFFFFF, %f934, %p130;
+
+BB0_119:
+ add.f32 %f814, %f189, 0f3EE66666;
+ mov.b32 %r294, %f814;
+ setp.lt.s32 %p132, %r294, 2139095040;
+ @%p132 bra BB0_124;
+
+ setp.gtu.f32 %p133, %f189, 0f7F800000;
+ @%p133 bra BB0_123;
+ bra.uni BB0_121;
+
+BB0_123:
+ add.f32 %f934, %f161, 0f3EE66666;
+ bra.uni BB0_124;
+
+BB0_121:
+ setp.neu.f32 %p134, %f189, 0f7F800000;
+ @%p134 bra BB0_124;
+
+ selp.f32 %f934, 0fFF800000, 0f7F800000, %p6;
+
+BB0_124:
+ mov.u32 %r333, 2;
+ setp.eq.f32 %p135, %f161, 0f3F800000;
+ selp.f32 %f815, 0f3F800000, %f934, %p135;
+ cvt.u64.u32 %rd83, %r4;
+ cvt.u64.u32 %rd82, %r3;
+ mov.u64 %rd86, image;
+ cvta.global.u64 %rd81, %rd86;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r333, %r102, %rd82, %rd83, %rd26, %rd26);
+ // inline asm
+ cvt.sat.f32.f32 %f816, %f815;
+ mul.f32 %f817, %f816, 0f437FFD71;
+ cvt.rzi.u32.f32 %r297, %f817;
+ cvt.sat.f32.f32 %f818, %f188;
+ mul.f32 %f819, %f818, 0f437FFD71;
+ cvt.rzi.u32.f32 %r298, %f819;
+ cvt.sat.f32.f32 %f820, %f175;
+ mul.f32 %f821, %f820, 0f437FFD71;
+ cvt.rzi.u32.f32 %r299, %f821;
+ cvt.u16.u32 %rs12, %r297;
+ cvt.u16.u32 %rs13, %r299;
+ cvt.u16.u32 %rs14, %r298;
+ mov.u16 %rs15, 255;
+ st.v4.u8 [%rd80], {%rs12, %rs14, %rs13, %rs15};
+ ld.global.u32 %r368, [imageEnabled];
+
+BB0_125:
+ and.b32 %r300, %r368, 4;
+ setp.eq.s32 %p136, %r300, 0;
+ @%p136 bra BB0_129;
+
+ ld.global.u32 %r301, [additive];
+ setp.eq.s32 %p137, %r301, 0;
+ cvt.u64.u32 %rd17, %r3;
+ cvt.u64.u32 %rd18, %r4;
+ // inline asm
+ { cvt.rn.f16.f32 %rs16, %f375;}
+
+ // inline asm
+ @%p137 bra BB0_128;
+
+ mov.u32 %r334, 2;
+ mov.u64 %rd99, image_HDR;
+ cvta.global.u64 %rd88, %rd99;
+ mov.u32 %r305, 8;
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd88, %r334, %r305, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs23, %rs24, %rs25, %rs26}, [%rd87];
+ // inline asm
+ { cvt.f32.f16 %f823, %rs23;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f824, %rs24;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f825, %rs25;}
+
+ // inline asm
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd88, %r334, %r305, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f826, %f159, %f823;
+ add.f32 %f827, %f160, %f824;
+ add.f32 %f828, %f161, %f825;
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f828;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs21, %f827;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f826;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs20, %rs21, %rs22, %rs16};
+ bra.uni BB0_129;
+
+BB0_128:
+ mov.u32 %r335, 2;
+ mov.u64 %rd106, image_HDR;
+ cvta.global.u64 %rd101, %rd106;
+ mov.u32 %r307, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r335, %r307, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f161;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f160;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f159;}
+
+ // inline asm
+ st.v4.u16 [%rd100], {%rs27, %rs28, %rs29, %rs16};
+
+BB0_129:
+ ld.global.u8 %rs30, [imageEnabled];
+ and.b16 %rs31, %rs30, 64;
+ setp.eq.s16 %p138, %rs31, 0;
+ @%p138 bra BB0_141;
+
+ mov.u32 %r336, 2;
+ mul.f32 %f832, %f889, %f889;
+ fma.rn.f32 %f833, %f890, %f890, %f832;
+ fma.rn.f32 %f834, %f888, %f888, %f833;
+ sqrt.rn.f32 %f835, %f834;
+ rcp.rn.f32 %f836, %f835;
+ mul.f32 %f837, %f890, %f836;
+ mul.f32 %f838, %f889, %f836;
+ mul.f32 %f839, %f888, %f836;
+ cvt.u64.u32 %rd110, %r4;
+ cvt.u64.u32 %rd109, %r3;
+ mov.u64 %rd113, image_Dir;
+ cvta.global.u64 %rd108, %rd113;
+ // inline asm
+ call (%rd107), _rt_buffer_get_64, (%rd108, %r336, %r102, %rd109, %rd110, %rd26, %rd26);
+ // inline asm
+ fma.rn.f32 %f840, %f837, 0f3F000000, 0f3F000000;
+ mul.f32 %f841, %f840, 0f437F0000;
+ cvt.rzi.u32.f32 %r310, %f841;
+ fma.rn.f32 %f842, %f838, 0f3F000000, 0f3F000000;
+ mul.f32 %f843, %f842, 0f437F0000;
+ cvt.rzi.u32.f32 %r311, %f843;
+ fma.rn.f32 %f844, %f839, 0f3F000000, 0f3F000000;
+ mul.f32 %f845, %f844, 0f437F0000;
+ cvt.rzi.u32.f32 %r312, %f845;
+ cvt.u16.u32 %rs32, %r312;
+ cvt.u16.u32 %rs33, %r311;
+ cvt.u16.u32 %rs34, %r310;
+ mov.u16 %rs35, 255;
+ st.v4.u8 [%rd107], {%rs34, %rs33, %rs32, %rs35};
+
+BB0_141:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightDir.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightDir.ptx.meta
new file mode 100644
index 00000000..4d6b39ea
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightDir.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4b13fcee54e0c624e8958ca4c74dd10c
+timeCreated: 1537467071
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightProbeSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightProbeSH.ptx
new file mode 100644
index 00000000..f21b633e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightProbeSH.ptx
@@ -0,0 +1,2314 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 lightMeshBuffer[1];
+.global .align 4 .u32 lightMeshBufferSize;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightPointSize;
+.global .align 4 .b8 lightColor[12];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo19lightMeshBufferSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightPointSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename19lightMeshBufferSizeE[13] = {117, 110, 115, 105, 103, 110, 101, 100, 32, 105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightPointSizeE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum19lightMeshBufferSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightPointSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightPointSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightPointSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[36];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<149>;
+ .reg .b16 %rs<152>;
+ .reg .f32 %f<988>;
+ .reg .b32 %r<411>;
+ .reg .b64 %rd<298>;
+
+
+ mov.u64 %rd297, __local_depot0;
+ cvta.local.u64 %SP, %rd297;
+ ld.global.u32 %r1, [samples];
+ shl.b32 %r2, %r1, 1;
+ ld.global.v2.u32 {%r100, %r101}, [pixelID];
+ cvt.u64.u32 %rd21, %r100;
+ cvt.u64.u32 %rd22, %r101;
+ mov.u64 %rd25, uvnormal;
+ cvta.global.u64 %rd20, %rd25;
+ mov.u32 %r98, 2;
+ mov.u32 %r99, 4;
+ mov.u64 %rd24, 0;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd20, %r98, %r99, %rd21, %rd22, %rd24, %rd24);
+ // inline asm
+ ld.u32 %r3, [%rd19];
+ shr.u32 %r104, %r3, 16;
+ cvt.u16.u32 %rs1, %r104;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r3;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p7, %rs9, 0;
+ mov.f32 %f916, 0f00000000;
+ mov.f32 %f917, %f916;
+ mov.f32 %f918, %f916;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs10, [%rd19+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f217, %rs12;
+ div.rn.f32 %f218, %f217, 0f437F0000;
+ fma.rn.f32 %f219, %f218, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f220, %rs10;
+ div.rn.f32 %f221, %f220, 0f437F0000;
+ fma.rn.f32 %f222, %f221, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f223, %rs7;
+ div.rn.f32 %f224, %f223, 0f437F0000;
+ fma.rn.f32 %f225, %f224, 0f40000000, 0fBF800000;
+ mul.f32 %f226, %f222, %f222;
+ fma.rn.f32 %f227, %f219, %f219, %f226;
+ fma.rn.f32 %f228, %f225, %f225, %f227;
+ sqrt.rn.f32 %f229, %f228;
+ rcp.rn.f32 %f230, %f229;
+ mul.f32 %f916, %f219, %f230;
+ mul.f32 %f917, %f222, %f230;
+ mul.f32 %f918, %f225, %f230;
+
+BB0_2:
+ ld.global.v2.u32 {%r105, %r106}, [pixelID];
+ ld.global.v2.u32 {%r108, %r109}, [tileInfo];
+ add.s32 %r4, %r105, %r108;
+ add.s32 %r5, %r106, %r109;
+ setp.eq.f32 %p8, %f917, 0f00000000;
+ setp.eq.f32 %p9, %f916, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f918, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_139;
+ bra.uni BB0_3;
+
+BB0_139:
+ ld.global.u32 %r410, [imageEnabled];
+ and.b32 %r334, %r410, 1;
+ setp.eq.b32 %p140, %r334, 1;
+ @!%p140 bra BB0_141;
+ bra.uni BB0_140;
+
+BB0_140:
+ cvt.u64.u32 %rd179, %r4;
+ cvt.u64.u32 %rd180, %r5;
+ mov.u64 %rd183, image;
+ cvta.global.u64 %rd178, %rd183;
+ // inline asm
+ call (%rd177), _rt_buffer_get_64, (%rd178, %r98, %r99, %rd179, %rd180, %rd24, %rd24);
+ // inline asm
+ mov.u16 %rs84, 0;
+ st.v4.u8 [%rd177], {%rs84, %rs84, %rs84, %rs84};
+ ld.global.u32 %r410, [imageEnabled];
+
+BB0_141:
+ and.b32 %r337, %r410, 8;
+ setp.eq.s32 %p141, %r337, 0;
+ @%p141 bra BB0_143;
+
+ cvt.u64.u32 %rd187, %r5;
+ cvt.u64.u32 %rd186, %r4;
+ mov.u64 %rd190, image_Mask;
+ cvta.global.u64 %rd185, %rd190;
+ // inline asm
+ call (%rd184), _rt_buffer_get_64, (%rd185, %r98, %r98, %rd186, %rd187, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f873, 0f00000000;
+ cvt.rzi.u32.f32 %r340, %f873;
+ cvt.u16.u32 %rs85, %r340;
+ mov.u16 %rs86, 0;
+ st.v2.u8 [%rd184], {%rs85, %rs86};
+ ld.global.u32 %r410, [imageEnabled];
+
+BB0_143:
+ cvt.u64.u32 %rd17, %r4;
+ cvt.u64.u32 %rd18, %r5;
+ and.b32 %r341, %r410, 4;
+ setp.eq.s32 %p142, %r341, 0;
+ @%p142 bra BB0_147;
+
+ ld.global.u32 %r342, [additive];
+ setp.eq.s32 %p143, %r342, 0;
+ @%p143 bra BB0_146;
+
+ mov.u64 %rd203, image_HDR;
+ cvta.global.u64 %rd192, %rd203;
+ mov.u32 %r346, 8;
+ // inline asm
+ call (%rd191), _rt_buffer_get_64, (%rd192, %r98, %r346, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs93, %rs94, %rs95, %rs96}, [%rd191];
+ // inline asm
+ { cvt.f32.f16 %f874, %rs93;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f875, %rs94;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f876, %rs95;}
+
+ // inline asm
+ // inline asm
+ call (%rd197), _rt_buffer_get_64, (%rd192, %r98, %r346, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ add.f32 %f877, %f874, 0f00000000;
+ add.f32 %f878, %f875, 0f00000000;
+ add.f32 %f879, %f876, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f879;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f878;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f877;}
+
+ // inline asm
+ mov.u16 %rs97, 0;
+ st.v4.u16 [%rd197], {%rs90, %rs91, %rs92, %rs97};
+ bra.uni BB0_147;
+
+BB0_3:
+ ld.global.v2.u32 {%r118, %r119}, [pixelID];
+ cvt.u64.u32 %rd28, %r118;
+ cvt.u64.u32 %rd29, %r119;
+ mov.u64 %rd38, uvpos;
+ cvta.global.u64 %rd27, %rd38;
+ mov.u32 %r114, 12;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r98, %r114, %rd28, %rd29, %rd24, %rd24);
+ // inline asm
+ ld.f32 %f9, [%rd26+8];
+ ld.f32 %f8, [%rd26+4];
+ ld.f32 %f7, [%rd26];
+ mul.f32 %f237, %f7, 0f3456BF95;
+ mul.f32 %f238, %f8, 0f3456BF95;
+ mul.f32 %f239, %f9, 0f3456BF95;
+ abs.f32 %f240, %f916;
+ div.rn.f32 %f241, %f237, %f240;
+ abs.f32 %f242, %f917;
+ div.rn.f32 %f243, %f238, %f242;
+ abs.f32 %f244, %f918;
+ div.rn.f32 %f245, %f239, %f244;
+ abs.f32 %f246, %f241;
+ abs.f32 %f247, %f243;
+ abs.f32 %f248, %f245;
+ mov.f32 %f249, 0f38D1B717;
+ max.f32 %f250, %f246, %f249;
+ max.f32 %f251, %f247, %f249;
+ max.f32 %f252, %f248, %f249;
+ fma.rn.f32 %f10, %f916, %f250, %f7;
+ fma.rn.f32 %f11, %f917, %f251, %f8;
+ fma.rn.f32 %f12, %f918, %f252, %f9;
+ ld.global.v2.u32 {%r122, %r123}, [pixelID];
+ cvt.u64.u32 %rd34, %r122;
+ cvt.u64.u32 %rd35, %r123;
+ mov.u64 %rd39, rnd_seeds;
+ cvta.global.u64 %rd33, %rd39;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd33, %r98, %r99, %rd34, %rd35, %rd24, %rd24);
+ // inline asm
+ ld.u32 %r126, [%rd32];
+ mad.lo.s32 %r6, %r126, 1664525, 1013904223;
+ ld.global.u32 %r127, [lightMeshBufferSize];
+ setp.eq.s32 %p14, %r127, 0;
+ mov.pred %p13, 0;
+ mov.f32 %f18, 0f00000000;
+ mov.u32 %r382, 0;
+ @%p14 bra BB0_4;
+
+ ld.global.f32 %f13, [lightPointSize];
+ mul.f32 %f14, %f10, 0f3456BF95;
+ mul.f32 %f15, %f11, 0f3456BF95;
+ mul.f32 %f16, %f12, 0f3456BF95;
+ and.b32 %r129, %r6, 16777215;
+ cvt.rn.f32.u32 %f259, %r129;
+ mul.f32 %f260, %f259, 0fB3800000;
+ fma.rn.f32 %f17, %f260, 0f3F333333, 0f3F800000;
+ mov.f32 %f18, 0f00000000;
+ mov.u32 %r382, 0;
+ abs.f32 %f382, %f15;
+ abs.f32 %f383, %f14;
+ max.f32 %f384, %f383, %f382;
+ abs.f32 %f385, %f16;
+ max.f32 %f386, %f384, %f385;
+ mov.f32 %f19, %f18;
+ mov.f32 %f20, %f18;
+ mov.f32 %f21, %f18;
+ mov.f32 %f22, %f18;
+ mov.f32 %f23, %f18;
+
+BB0_6:
+ shl.b32 %r132, %r382, 1;
+ cvt.s64.s32 %rd42, %r132;
+ mov.u64 %rd46, lightMeshBuffer;
+ cvta.global.u64 %rd41, %rd46;
+ mov.u32 %r130, 1;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r130, %r114, %rd42, %rd24, %rd24, %rd24);
+ // inline asm
+ ld.f32 %f261, [%rd40];
+ sub.f32 %f262, %f261, %f7;
+ ld.f32 %f263, [%rd40+4];
+ sub.f32 %f264, %f263, %f8;
+ ld.f32 %f265, [%rd40+8];
+ sub.f32 %f266, %f265, %f9;
+ mul.f32 %f267, %f264, %f264;
+ fma.rn.f32 %f268, %f262, %f262, %f267;
+ fma.rn.f32 %f269, %f266, %f266, %f268;
+ sqrt.rn.f32 %f24, %f269;
+ rcp.rn.f32 %f270, %f24;
+ mul.f32 %f25, %f262, %f270;
+ mul.f32 %f26, %f264, %f270;
+ mul.f32 %f27, %f266, %f270;
+ mul.f32 %f271, %f24, %f24;
+ mul.f32 %f272, %f271, 0f40C90FDB;
+ div.rn.f32 %f273, %f13, %f272;
+ add.f32 %f28, %f273, %f273;
+ setp.gt.f32 %p16, %f28, %f17;
+ setp.ne.s32 %p17, %r1, 0;
+ and.pred %p18, %p17, %p16;
+ mov.pred %p148, -1;
+ @%p18 bra BB0_22;
+
+ ld.global.f32 %f276, [lightInvCutoff];
+ mul.f32 %f29, %f24, %f276;
+ mov.f32 %f280, 0f40800000;
+ abs.f32 %f31, %f29;
+ setp.lt.f32 %p19, %f31, 0f00800000;
+ mul.f32 %f282, %f31, 0f4B800000;
+ selp.f32 %f283, 0fC3170000, 0fC2FE0000, %p19;
+ selp.f32 %f284, %f282, %f31, %p19;
+ mov.b32 %r133, %f284;
+ and.b32 %r134, %r133, 8388607;
+ or.b32 %r135, %r134, 1065353216;
+ mov.b32 %f285, %r135;
+ shr.u32 %r136, %r133, 23;
+ cvt.rn.f32.u32 %f286, %r136;
+ add.f32 %f287, %f283, %f286;
+ setp.gt.f32 %p20, %f285, 0f3FB504F3;
+ mul.f32 %f288, %f285, 0f3F000000;
+ add.f32 %f289, %f287, 0f3F800000;
+ selp.f32 %f290, %f288, %f285, %p20;
+ selp.f32 %f291, %f289, %f287, %p20;
+ add.f32 %f292, %f290, 0fBF800000;
+ add.f32 %f275, %f290, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f274,%f275;
+ // inline asm
+ add.f32 %f293, %f292, %f292;
+ mul.f32 %f294, %f274, %f293;
+ mul.f32 %f295, %f294, %f294;
+ mov.f32 %f296, 0f3C4CAF63;
+ mov.f32 %f297, 0f3B18F0FE;
+ fma.rn.f32 %f298, %f297, %f295, %f296;
+ mov.f32 %f299, 0f3DAAAABD;
+ fma.rn.f32 %f300, %f298, %f295, %f299;
+ mul.rn.f32 %f301, %f300, %f295;
+ mul.rn.f32 %f302, %f301, %f294;
+ sub.f32 %f303, %f292, %f294;
+ neg.f32 %f304, %f294;
+ add.f32 %f305, %f303, %f303;
+ fma.rn.f32 %f306, %f304, %f292, %f305;
+ mul.rn.f32 %f307, %f274, %f306;
+ add.f32 %f308, %f302, %f294;
+ sub.f32 %f309, %f294, %f308;
+ add.f32 %f310, %f302, %f309;
+ add.f32 %f311, %f307, %f310;
+ add.f32 %f312, %f308, %f311;
+ sub.f32 %f313, %f308, %f312;
+ add.f32 %f314, %f311, %f313;
+ mov.f32 %f315, 0f3F317200;
+ mul.rn.f32 %f316, %f291, %f315;
+ mov.f32 %f317, 0f35BFBE8E;
+ mul.rn.f32 %f318, %f291, %f317;
+ add.f32 %f319, %f316, %f312;
+ sub.f32 %f320, %f316, %f319;
+ add.f32 %f321, %f312, %f320;
+ add.f32 %f322, %f314, %f321;
+ add.f32 %f323, %f318, %f322;
+ add.f32 %f324, %f319, %f323;
+ sub.f32 %f325, %f319, %f324;
+ add.f32 %f326, %f323, %f325;
+ mul.rn.f32 %f327, %f280, %f324;
+ neg.f32 %f328, %f327;
+ fma.rn.f32 %f329, %f280, %f324, %f328;
+ fma.rn.f32 %f330, %f280, %f326, %f329;
+ mov.f32 %f331, 0f00000000;
+ fma.rn.f32 %f332, %f331, %f324, %f330;
+ add.rn.f32 %f333, %f327, %f332;
+ neg.f32 %f334, %f333;
+ add.rn.f32 %f335, %f327, %f334;
+ add.rn.f32 %f336, %f335, %f332;
+ mov.b32 %r137, %f333;
+ setp.eq.s32 %p21, %r137, 1118925336;
+ add.s32 %r138, %r137, -1;
+ mov.b32 %f337, %r138;
+ add.f32 %f338, %f336, 0f37000000;
+ selp.f32 %f339, %f337, %f333, %p21;
+ selp.f32 %f32, %f338, %f336, %p21;
+ mul.f32 %f340, %f339, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f341, %f340;
+ mov.f32 %f342, 0fBF317200;
+ fma.rn.f32 %f343, %f341, %f342, %f339;
+ mov.f32 %f344, 0fB5BFBE8E;
+ fma.rn.f32 %f345, %f341, %f344, %f343;
+ mul.f32 %f346, %f345, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f347, %f346;
+ add.f32 %f348, %f341, 0f00000000;
+ ex2.approx.f32 %f349, %f348;
+ mul.f32 %f350, %f347, %f349;
+ setp.lt.f32 %p22, %f339, 0fC2D20000;
+ selp.f32 %f351, 0f00000000, %f350, %p22;
+ setp.gt.f32 %p23, %f339, 0f42D20000;
+ selp.f32 %f925, 0f7F800000, %f351, %p23;
+ setp.eq.f32 %p24, %f925, 0f7F800000;
+ @%p24 bra BB0_9;
+
+ fma.rn.f32 %f925, %f925, %f32, %f925;
+
+BB0_9:
+ mov.f32 %f914, 0f40000000;
+ cvt.rzi.f32.f32 %f913, %f914;
+ add.f32 %f912, %f913, %f913;
+ mov.f32 %f911, 0f40800000;
+ sub.f32 %f910, %f911, %f912;
+ abs.f32 %f909, %f910;
+ setp.lt.f32 %p25, %f29, 0f00000000;
+ setp.eq.f32 %p26, %f909, 0f3F800000;
+ and.pred %p1, %p25, %p26;
+ mov.b32 %r139, %f925;
+ xor.b32 %r140, %r139, -2147483648;
+ mov.b32 %f352, %r140;
+ selp.f32 %f927, %f352, %f925, %p1;
+ setp.eq.f32 %p27, %f29, 0f00000000;
+ @%p27 bra BB0_12;
+ bra.uni BB0_10;
+
+BB0_12:
+ add.f32 %f355, %f29, %f29;
+ selp.f32 %f927, %f355, 0f00000000, %p26;
+ bra.uni BB0_13;
+
+BB0_10:
+ setp.geu.f32 %p28, %f29, 0f00000000;
+ @%p28 bra BB0_13;
+
+ mov.f32 %f915, 0f40800000;
+ cvt.rzi.f32.f32 %f354, %f915;
+ setp.neu.f32 %p29, %f354, 0f40800000;
+ selp.f32 %f927, 0f7FFFFFFF, %f927, %p29;
+
+BB0_13:
+ add.f32 %f356, %f31, 0f40800000;
+ mov.b32 %r141, %f356;
+ setp.lt.s32 %p31, %r141, 2139095040;
+ @%p31 bra BB0_18;
+
+ setp.gtu.f32 %p32, %f31, 0f7F800000;
+ @%p32 bra BB0_17;
+ bra.uni BB0_15;
+
+BB0_17:
+ add.f32 %f927, %f29, 0f40800000;
+ bra.uni BB0_18;
+
+BB0_15:
+ setp.neu.f32 %p33, %f31, 0f7F800000;
+ @%p33 bra BB0_18;
+
+ selp.f32 %f927, 0fFF800000, 0f7F800000, %p1;
+
+BB0_18:
+ mov.u32 %r378, 1;
+ mov.u64 %rd292, lightMeshBuffer;
+ cvta.global.u64 %rd291, %rd292;
+ shl.b32 %r377, %r382, 1;
+ mov.f32 %f357, 0f3F800000;
+ sub.f32 %f358, %f357, %f927;
+ setp.eq.f32 %p34, %f29, 0f3F800000;
+ selp.f32 %f359, 0f00000000, %f358, %p34;
+ cvt.sat.f32.f32 %f360, %f359;
+ mul.f32 %f361, %f28, %f360;
+ add.s32 %r145, %r377, 1;
+ cvt.s64.s32 %rd49, %r145;
+ // inline asm
+ call (%rd47), _rt_buffer_get_64, (%rd291, %r378, %r114, %rd49, %rd24, %rd24, %rd24);
+ // inline asm
+ ld.f32 %f362, [%rd47];
+ mul.f32 %f363, %f25, %f362;
+ ld.f32 %f364, [%rd47+4];
+ mul.f32 %f365, %f26, %f364;
+ neg.f32 %f366, %f365;
+ sub.f32 %f367, %f366, %f363;
+ ld.f32 %f368, [%rd47+8];
+ mul.f32 %f369, %f27, %f368;
+ sub.f32 %f370, %f367, %f369;
+ cvt.sat.f32.f32 %f371, %f370;
+ mul.f32 %f43, %f361, %f371;
+ mul.f32 %f372, %f917, %f26;
+ fma.rn.f32 %f373, %f916, %f25, %f372;
+ fma.rn.f32 %f44, %f918, %f27, %f373;
+ setp.leu.f32 %p35, %f43, 0f3727C5AC;
+ @%p35 bra BB0_20;
+
+ mov.u32 %r380, 1;
+ add.u64 %rd54, %SP, 4;
+ cvta.to.local.u64 %rd55, %rd54;
+ max.f32 %f380, %f386, %f249;
+ sub.f32 %f381, %f24, %f380;
+ mov.u32 %r149, 1065353216;
+ st.local.u32 [%rd55], %r149;
+ ld.global.u32 %r146, [root];
+ // inline asm
+ call _rt_trace_64, (%r146, %f10, %f11, %f12, %f25, %f26, %f27, %r380, %f380, %f381, %rd54, %r99);
+ // inline asm
+ ld.local.f32 %f388, [%rd55];
+ mul.f32 %f389, %f43, %f388;
+ cvt.sat.f32.f32 %f390, %f44;
+ fma.rn.f32 %f23, %f390, %f389, %f23;
+ fma.rn.f32 %f21, %f25, %f389, %f21;
+ fma.rn.f32 %f20, %f26, %f389, %f20;
+ fma.rn.f32 %f19, %f27, %f389, %f19;
+ add.f32 %f22, %f22, %f389;
+ add.f32 %f18, %f18, %f388;
+
+BB0_20:
+ ld.global.u32 %r150, [lightMeshBufferSize];
+ add.s32 %r382, %r382, 1;
+ setp.lt.u32 %p37, %r382, %r150;
+ @%p37 bra BB0_6;
+ bra.uni BB0_21;
+
+BB0_4:
+ mov.f32 %f19, %f18;
+ mov.f32 %f20, %f18;
+ mov.f32 %f21, %f18;
+ mov.f32 %f22, %f18;
+ mov.f32 %f23, %f18;
+
+BB0_21:
+ mov.pred %p148, %p13;
+
+BB0_22:
+ cvt.rn.f32.s32 %f391, %r382;
+ mov.f32 %f392, 0f3F800000;
+ max.f32 %f393, %f391, %f392;
+ div.rn.f32 %f970, %f23, %f393;
+ div.rn.f32 %f975, %f18, %f393;
+ div.rn.f32 %f971, %f22, %f393;
+ div.rn.f32 %f972, %f21, %f393;
+ div.rn.f32 %f973, %f20, %f393;
+ div.rn.f32 %f974, %f19, %f393;
+ @!%p148 bra BB0_75;
+ bra.uni BB0_23;
+
+BB0_23:
+ mov.f32 %f946, 0f00000000;
+ setp.lt.s32 %p38, %r1, 1;
+ mov.f32 %f947, %f946;
+ mov.f32 %f948, %f946;
+ mov.f32 %f949, %f946;
+ mov.f32 %f950, %f946;
+ mov.f32 %f951, %f946;
+ @%p38 bra BB0_74;
+
+ mad.lo.s32 %r386, %r126, 1664525, 1013904223;
+ cvt.rn.f32.s32 %f406, %r2;
+ rcp.rn.f32 %f69, %f406;
+ add.u64 %rd56, %SP, 8;
+ cvta.to.local.u64 %rd2, %rd56;
+ mul.f32 %f70, %f10, 0f3456BF95;
+ mul.f32 %f71, %f11, 0f3456BF95;
+ mul.f32 %f72, %f12, 0f3456BF95;
+ add.u64 %rd57, %SP, 0;
+ cvta.to.local.u64 %rd3, %rd57;
+ mov.f32 %f946, 0f00000000;
+ mov.u32 %r151, 0;
+ abs.f32 %f407, %f71;
+ abs.f32 %f408, %f70;
+ max.f32 %f409, %f408, %f407;
+ abs.f32 %f410, %f72;
+ max.f32 %f411, %f409, %f410;
+ mov.u32 %r383, %r151;
+ mov.f32 %f947, %f946;
+ mov.f32 %f948, %f946;
+ mov.f32 %f949, %f946;
+ mov.f32 %f950, %f946;
+ mov.f32 %f951, %f946;
+
+BB0_25:
+ cvt.rn.f32.s32 %f79, %r383;
+ max.f32 %f80, %f411, %f249;
+ mov.u32 %r385, %r151;
+
+BB0_26:
+ mad.lo.s32 %r153, %r386, 1664525, 1013904223;
+ and.b32 %r154, %r153, 16777215;
+ cvt.rn.f32.u32 %f413, %r154;
+ fma.rn.f32 %f414, %f413, 0f33800000, %f79;
+ mul.f32 %f415, %f69, %f414;
+ mad.lo.s32 %r386, %r153, 1664525, 1013904223;
+ and.b32 %r155, %r386, 16777215;
+ cvt.rn.f32.u32 %f416, %r155;
+ cvt.rn.f32.s32 %f417, %r385;
+ fma.rn.f32 %f418, %f416, 0f33800000, %f417;
+ mul.f32 %f419, %f69, %f418;
+ fma.rn.f32 %f87, %f415, 0fC0000000, 0f3F800000;
+ mul.f32 %f420, %f87, %f87;
+ sub.f32 %f422, %f392, %f420;
+ mov.f32 %f423, 0f00000000;
+ max.f32 %f424, %f423, %f422;
+ sqrt.rn.f32 %f88, %f424;
+ mul.f32 %f958, %f419, 0f40C90FDB;
+ abs.f32 %f90, %f958;
+ setp.neu.f32 %p39, %f90, 0f7F800000;
+ mov.f32 %f952, %f958;
+ @%p39 bra BB0_28;
+
+ mul.rn.f32 %f952, %f958, %f423;
+
+BB0_28:
+ mul.f32 %f426, %f952, 0f3F22F983;
+ cvt.rni.s32.f32 %r396, %f426;
+ cvt.rn.f32.s32 %f427, %r396;
+ neg.f32 %f428, %f427;
+ mov.f32 %f429, 0f3FC90FDA;
+ fma.rn.f32 %f430, %f428, %f429, %f952;
+ mov.f32 %f431, 0f33A22168;
+ fma.rn.f32 %f432, %f428, %f431, %f430;
+ mov.f32 %f433, 0f27C234C5;
+ fma.rn.f32 %f953, %f428, %f433, %f432;
+ abs.f32 %f434, %f952;
+ setp.leu.f32 %p40, %f434, 0f47CE4780;
+ @%p40 bra BB0_39;
+
+ mov.b32 %r16, %f952;
+ shr.u32 %r17, %r16, 23;
+ shl.b32 %r158, %r16, 8;
+ or.b32 %r18, %r158, -2147483648;
+ mov.u32 %r388, 0;
+ mov.u64 %rd293, __cudart_i2opi_f;
+ mov.u32 %r387, -6;
+ mov.u64 %rd294, %rd2;
+
+BB0_30:
+ .pragma "nounroll";
+ ld.const.u32 %r161, [%rd293];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r159, %r161, %r18, %r388;
+ madc.hi.u32 %r388, %r161, %r18, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd294], %r159;
+ add.s64 %rd294, %rd294, 4;
+ add.s64 %rd293, %rd293, 4;
+ add.s32 %r387, %r387, 1;
+ setp.ne.s32 %p41, %r387, 0;
+ @%p41 bra BB0_30;
+
+ and.b32 %r164, %r17, 255;
+ add.s32 %r165, %r164, -128;
+ shr.u32 %r166, %r165, 5;
+ and.b32 %r23, %r16, -2147483648;
+ st.local.u32 [%rd2+24], %r388;
+ mov.u32 %r167, 6;
+ sub.s32 %r168, %r167, %r166;
+ mul.wide.s32 %rd59, %r168, 4;
+ add.s64 %rd8, %rd2, %rd59;
+ ld.local.u32 %r389, [%rd8];
+ ld.local.u32 %r390, [%rd8+-4];
+ and.b32 %r26, %r17, 31;
+ setp.eq.s32 %p42, %r26, 0;
+ @%p42 bra BB0_33;
+
+ mov.u32 %r169, 32;
+ sub.s32 %r170, %r169, %r26;
+ shr.u32 %r171, %r390, %r170;
+ shl.b32 %r172, %r389, %r26;
+ add.s32 %r389, %r171, %r172;
+ ld.local.u32 %r173, [%rd8+-8];
+ shr.u32 %r174, %r173, %r170;
+ shl.b32 %r175, %r390, %r26;
+ add.s32 %r390, %r174, %r175;
+
+BB0_33:
+ shr.u32 %r176, %r390, 30;
+ shl.b32 %r177, %r389, 2;
+ add.s32 %r391, %r176, %r177;
+ shl.b32 %r32, %r390, 2;
+ shr.u32 %r178, %r391, 31;
+ shr.u32 %r179, %r389, 30;
+ add.s32 %r33, %r178, %r179;
+ setp.eq.s32 %p43, %r178, 0;
+ @%p43 bra BB0_34;
+ bra.uni BB0_35;
+
+BB0_34:
+ mov.u32 %r392, %r23;
+ mov.u32 %r393, %r32;
+ bra.uni BB0_36;
+
+BB0_35:
+ not.b32 %r180, %r391;
+ neg.s32 %r393, %r32;
+ setp.eq.s32 %p44, %r32, 0;
+ selp.u32 %r181, 1, 0, %p44;
+ add.s32 %r391, %r181, %r180;
+ xor.b32 %r392, %r23, -2147483648;
+
+BB0_36:
+ clz.b32 %r395, %r391;
+ setp.eq.s32 %p45, %r395, 0;
+ shl.b32 %r182, %r391, %r395;
+ mov.u32 %r183, 32;
+ sub.s32 %r184, %r183, %r395;
+ shr.u32 %r185, %r393, %r184;
+ add.s32 %r186, %r185, %r182;
+ selp.b32 %r41, %r391, %r186, %p45;
+ mov.u32 %r187, -921707870;
+ mul.hi.u32 %r394, %r41, %r187;
+ setp.eq.s32 %p46, %r23, 0;
+ neg.s32 %r188, %r33;
+ selp.b32 %r396, %r33, %r188, %p46;
+ setp.lt.s32 %p47, %r394, 1;
+ @%p47 bra BB0_38;
+
+ mul.lo.s32 %r189, %r41, -921707870;
+ shr.u32 %r190, %r189, 31;
+ shl.b32 %r191, %r394, 1;
+ add.s32 %r394, %r190, %r191;
+ add.s32 %r395, %r395, 1;
+
+BB0_38:
+ mov.u32 %r192, 126;
+ sub.s32 %r193, %r192, %r395;
+ shl.b32 %r194, %r193, 23;
+ add.s32 %r195, %r394, 1;
+ shr.u32 %r196, %r195, 7;
+ add.s32 %r197, %r196, 1;
+ shr.u32 %r198, %r197, 1;
+ add.s32 %r199, %r198, %r194;
+ or.b32 %r200, %r199, %r392;
+ mov.b32 %f953, %r200;
+
+BB0_39:
+ mul.rn.f32 %f96, %f953, %f953;
+ add.s32 %r49, %r396, 1;
+ and.b32 %r50, %r49, 1;
+ setp.eq.s32 %p48, %r50, 0;
+ @%p48 bra BB0_41;
+ bra.uni BB0_40;
+
+BB0_41:
+ mov.f32 %f437, 0f3C08839E;
+ mov.f32 %f438, 0fB94CA1F9;
+ fma.rn.f32 %f954, %f438, %f96, %f437;
+ bra.uni BB0_42;
+
+BB0_40:
+ mov.f32 %f435, 0fBAB6061A;
+ mov.f32 %f436, 0f37CCF5CE;
+ fma.rn.f32 %f954, %f436, %f96, %f435;
+
+BB0_42:
+ @%p48 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mov.f32 %f442, 0fBE2AAAA3;
+ fma.rn.f32 %f443, %f954, %f96, %f442;
+ fma.rn.f32 %f955, %f443, %f96, %f423;
+ bra.uni BB0_45;
+
+BB0_43:
+ mov.f32 %f439, 0f3D2AAAA5;
+ fma.rn.f32 %f440, %f954, %f96, %f439;
+ mov.f32 %f441, 0fBF000000;
+ fma.rn.f32 %f955, %f440, %f96, %f441;
+
+BB0_45:
+ fma.rn.f32 %f956, %f955, %f953, %f953;
+ @%p48 bra BB0_47;
+
+ fma.rn.f32 %f956, %f955, %f96, %f392;
+
+BB0_47:
+ and.b32 %r201, %r49, 2;
+ setp.eq.s32 %p51, %r201, 0;
+ @%p51 bra BB0_49;
+
+ mov.f32 %f447, 0fBF800000;
+ fma.rn.f32 %f956, %f956, %f447, %f423;
+
+BB0_49:
+ @%p39 bra BB0_51;
+
+ mul.rn.f32 %f958, %f958, %f423;
+
+BB0_51:
+ mul.f32 %f449, %f958, 0f3F22F983;
+ cvt.rni.s32.f32 %r406, %f449;
+ cvt.rn.f32.s32 %f450, %r406;
+ neg.f32 %f451, %f450;
+ fma.rn.f32 %f453, %f451, %f429, %f958;
+ fma.rn.f32 %f455, %f451, %f431, %f453;
+ fma.rn.f32 %f959, %f451, %f433, %f455;
+ abs.f32 %f457, %f958;
+ setp.leu.f32 %p53, %f457, 0f47CE4780;
+ @%p53 bra BB0_62;
+
+ mov.b32 %r52, %f958;
+ shr.u32 %r53, %r52, 23;
+ shl.b32 %r204, %r52, 8;
+ or.b32 %r54, %r204, -2147483648;
+ mov.u32 %r398, 0;
+ mov.u64 %rd295, __cudart_i2opi_f;
+ mov.u32 %r397, -6;
+ mov.u64 %rd296, %rd2;
+
+BB0_53:
+ .pragma "nounroll";
+ ld.const.u32 %r207, [%rd295];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r205, %r207, %r54, %r398;
+ madc.hi.u32 %r398, %r207, %r54, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd296], %r205;
+ add.s64 %rd296, %rd296, 4;
+ add.s64 %rd295, %rd295, 4;
+ add.s32 %r397, %r397, 1;
+ setp.ne.s32 %p54, %r397, 0;
+ @%p54 bra BB0_53;
+
+ and.b32 %r210, %r53, 255;
+ add.s32 %r211, %r210, -128;
+ shr.u32 %r212, %r211, 5;
+ and.b32 %r59, %r52, -2147483648;
+ st.local.u32 [%rd2+24], %r398;
+ mov.u32 %r213, 6;
+ sub.s32 %r214, %r213, %r212;
+ mul.wide.s32 %rd61, %r214, 4;
+ add.s64 %rd13, %rd2, %rd61;
+ ld.local.u32 %r399, [%rd13];
+ ld.local.u32 %r400, [%rd13+-4];
+ and.b32 %r62, %r53, 31;
+ setp.eq.s32 %p55, %r62, 0;
+ @%p55 bra BB0_56;
+
+ mov.u32 %r215, 32;
+ sub.s32 %r216, %r215, %r62;
+ shr.u32 %r217, %r400, %r216;
+ shl.b32 %r218, %r399, %r62;
+ add.s32 %r399, %r217, %r218;
+ ld.local.u32 %r219, [%rd13+-8];
+ shr.u32 %r220, %r219, %r216;
+ shl.b32 %r221, %r400, %r62;
+ add.s32 %r400, %r220, %r221;
+
+BB0_56:
+ shr.u32 %r222, %r400, 30;
+ shl.b32 %r223, %r399, 2;
+ add.s32 %r401, %r222, %r223;
+ shl.b32 %r68, %r400, 2;
+ shr.u32 %r224, %r401, 31;
+ shr.u32 %r225, %r399, 30;
+ add.s32 %r69, %r224, %r225;
+ setp.eq.s32 %p56, %r224, 0;
+ @%p56 bra BB0_57;
+ bra.uni BB0_58;
+
+BB0_57:
+ mov.u32 %r402, %r59;
+ mov.u32 %r403, %r68;
+ bra.uni BB0_59;
+
+BB0_58:
+ not.b32 %r226, %r401;
+ neg.s32 %r403, %r68;
+ setp.eq.s32 %p57, %r68, 0;
+ selp.u32 %r227, 1, 0, %p57;
+ add.s32 %r401, %r227, %r226;
+ xor.b32 %r402, %r59, -2147483648;
+
+BB0_59:
+ clz.b32 %r405, %r401;
+ setp.eq.s32 %p58, %r405, 0;
+ shl.b32 %r228, %r401, %r405;
+ mov.u32 %r229, 32;
+ sub.s32 %r230, %r229, %r405;
+ shr.u32 %r231, %r403, %r230;
+ add.s32 %r232, %r231, %r228;
+ selp.b32 %r77, %r401, %r232, %p58;
+ mov.u32 %r233, -921707870;
+ mul.hi.u32 %r404, %r77, %r233;
+ setp.eq.s32 %p59, %r59, 0;
+ neg.s32 %r234, %r69;
+ selp.b32 %r406, %r69, %r234, %p59;
+ setp.lt.s32 %p60, %r404, 1;
+ @%p60 bra BB0_61;
+
+ mul.lo.s32 %r235, %r77, -921707870;
+ shr.u32 %r236, %r235, 31;
+ shl.b32 %r237, %r404, 1;
+ add.s32 %r404, %r236, %r237;
+ add.s32 %r405, %r405, 1;
+
+BB0_61:
+ mov.u32 %r238, 126;
+ sub.s32 %r239, %r238, %r405;
+ shl.b32 %r240, %r239, 23;
+ add.s32 %r241, %r404, 1;
+ shr.u32 %r242, %r241, 7;
+ add.s32 %r243, %r242, 1;
+ shr.u32 %r244, %r243, 1;
+ add.s32 %r245, %r244, %r240;
+ or.b32 %r246, %r245, %r402;
+ mov.b32 %f959, %r246;
+
+BB0_62:
+ mul.rn.f32 %f113, %f959, %f959;
+ and.b32 %r85, %r406, 1;
+ setp.eq.s32 %p61, %r85, 0;
+ @%p61 bra BB0_64;
+ bra.uni BB0_63;
+
+BB0_64:
+ mov.f32 %f460, 0f3C08839E;
+ mov.f32 %f461, 0fB94CA1F9;
+ fma.rn.f32 %f960, %f461, %f113, %f460;
+ bra.uni BB0_65;
+
+BB0_63:
+ mov.f32 %f458, 0fBAB6061A;
+ mov.f32 %f459, 0f37CCF5CE;
+ fma.rn.f32 %f960, %f459, %f113, %f458;
+
+BB0_65:
+ @%p61 bra BB0_67;
+ bra.uni BB0_66;
+
+BB0_67:
+ mov.f32 %f465, 0fBE2AAAA3;
+ fma.rn.f32 %f466, %f960, %f113, %f465;
+ fma.rn.f32 %f961, %f466, %f113, %f423;
+ bra.uni BB0_68;
+
+BB0_66:
+ mov.f32 %f462, 0f3D2AAAA5;
+ fma.rn.f32 %f463, %f960, %f113, %f462;
+ mov.f32 %f464, 0fBF000000;
+ fma.rn.f32 %f961, %f463, %f113, %f464;
+
+BB0_68:
+ fma.rn.f32 %f962, %f961, %f959, %f959;
+ @%p61 bra BB0_70;
+
+ fma.rn.f32 %f962, %f961, %f113, %f392;
+
+BB0_70:
+ and.b32 %r247, %r406, 2;
+ setp.eq.s32 %p64, %r247, 0;
+ @%p64 bra BB0_72;
+
+ mov.f32 %f470, 0fBF800000;
+ fma.rn.f32 %f962, %f962, %f470, %f423;
+
+BB0_72:
+ mul.f32 %f474, %f88, %f956;
+ mov.u32 %r249, 0;
+ st.local.u32 [%rd3], %r249;
+ ld.global.u32 %r248, [root];
+ mul.f32 %f475, %f88, %f962;
+ mov.f32 %f478, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r248, %f10, %f11, %f12, %f474, %f475, %f87, %r249, %f80, %f478, %rd57, %r99);
+ // inline asm
+ ld.local.f32 %f479, [%rd3];
+ setp.lt.f32 %p65, %f479, 0f00000000;
+ selp.f32 %f480, 0f00000000, %f479, %p65;
+ selp.f32 %f481, 0f00000000, 0f3F800000, %p65;
+ add.f32 %f946, %f946, %f481;
+ fma.rn.f32 %f949, %f474, %f480, %f949;
+ fma.rn.f32 %f948, %f475, %f480, %f948;
+ fma.rn.f32 %f947, %f87, %f480, %f947;
+ add.f32 %f950, %f950, %f480;
+ mul.f32 %f482, %f917, %f475;
+ fma.rn.f32 %f483, %f916, %f474, %f482;
+ fma.rn.f32 %f484, %f918, %f87, %f483;
+ cvt.sat.f32.f32 %f485, %f484;
+ fma.rn.f32 %f951, %f480, %f485, %f951;
+ add.s32 %r385, %r385, 1;
+ setp.lt.s32 %p66, %r385, %r2;
+ @%p66 bra BB0_26;
+
+ add.s32 %r383, %r383, 1;
+ setp.lt.s32 %p67, %r383, %r2;
+ @%p67 bra BB0_25;
+
+BB0_74:
+ mul.lo.s32 %r251, %r2, %r2;
+ cvt.rn.f32.s32 %f486, %r251;
+ div.rn.f32 %f487, %f951, %f486;
+ div.rn.f32 %f975, %f946, %f486;
+ div.rn.f32 %f971, %f950, %f486;
+ div.rn.f32 %f972, %f949, %f486;
+ div.rn.f32 %f973, %f948, %f486;
+ div.rn.f32 %f974, %f947, %f486;
+ add.f32 %f970, %f487, %f487;
+
+BB0_75:
+ ld.global.u32 %r408, [imageEnabled];
+ and.b32 %r252, %r408, 8;
+ setp.eq.s32 %p68, %r252, 0;
+ @%p68 bra BB0_88;
+
+ cvt.u64.u32 %rd65, %r4;
+ cvt.u64.u32 %rd66, %r5;
+ mov.u64 %rd69, image_Mask;
+ cvta.global.u64 %rd64, %rd69;
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd64, %r98, %r98, %rd65, %rd66, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f490, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f491, %f490;
+ fma.rn.f32 %f492, %f491, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f149, %f492;
+ abs.f32 %f150, %f975;
+ setp.lt.f32 %p69, %f150, 0f00800000;
+ mul.f32 %f493, %f150, 0f4B800000;
+ selp.f32 %f494, 0fC3170000, 0fC2FE0000, %p69;
+ selp.f32 %f495, %f493, %f150, %p69;
+ mov.b32 %r255, %f495;
+ and.b32 %r256, %r255, 8388607;
+ or.b32 %r257, %r256, 1065353216;
+ mov.b32 %f496, %r257;
+ shr.u32 %r258, %r255, 23;
+ cvt.rn.f32.u32 %f497, %r258;
+ add.f32 %f498, %f494, %f497;
+ setp.gt.f32 %p70, %f496, 0f3FB504F3;
+ mul.f32 %f499, %f496, 0f3F000000;
+ add.f32 %f500, %f498, 0f3F800000;
+ selp.f32 %f501, %f499, %f496, %p70;
+ selp.f32 %f502, %f500, %f498, %p70;
+ add.f32 %f503, %f501, 0fBF800000;
+ add.f32 %f489, %f501, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f488,%f489;
+ // inline asm
+ add.f32 %f504, %f503, %f503;
+ mul.f32 %f505, %f488, %f504;
+ mul.f32 %f506, %f505, %f505;
+ mov.f32 %f507, 0f3C4CAF63;
+ mov.f32 %f508, 0f3B18F0FE;
+ fma.rn.f32 %f509, %f508, %f506, %f507;
+ mov.f32 %f510, 0f3DAAAABD;
+ fma.rn.f32 %f511, %f509, %f506, %f510;
+ mul.rn.f32 %f512, %f511, %f506;
+ mul.rn.f32 %f513, %f512, %f505;
+ sub.f32 %f514, %f503, %f505;
+ neg.f32 %f515, %f505;
+ add.f32 %f516, %f514, %f514;
+ fma.rn.f32 %f517, %f515, %f503, %f516;
+ mul.rn.f32 %f518, %f488, %f517;
+ add.f32 %f519, %f513, %f505;
+ sub.f32 %f520, %f505, %f519;
+ add.f32 %f521, %f513, %f520;
+ add.f32 %f522, %f518, %f521;
+ add.f32 %f523, %f519, %f522;
+ sub.f32 %f524, %f519, %f523;
+ add.f32 %f525, %f522, %f524;
+ mov.f32 %f526, 0f3F317200;
+ mul.rn.f32 %f527, %f502, %f526;
+ mov.f32 %f528, 0f35BFBE8E;
+ mul.rn.f32 %f529, %f502, %f528;
+ add.f32 %f530, %f527, %f523;
+ sub.f32 %f531, %f527, %f530;
+ add.f32 %f532, %f523, %f531;
+ add.f32 %f533, %f525, %f532;
+ add.f32 %f534, %f529, %f533;
+ add.f32 %f535, %f530, %f534;
+ sub.f32 %f536, %f530, %f535;
+ add.f32 %f537, %f534, %f536;
+ mov.f32 %f538, 0f3EE8BA2E;
+ mul.rn.f32 %f539, %f538, %f535;
+ neg.f32 %f540, %f539;
+ fma.rn.f32 %f541, %f538, %f535, %f540;
+ fma.rn.f32 %f542, %f538, %f537, %f541;
+ mov.f32 %f543, 0f00000000;
+ fma.rn.f32 %f544, %f543, %f535, %f542;
+ add.rn.f32 %f545, %f539, %f544;
+ neg.f32 %f546, %f545;
+ add.rn.f32 %f547, %f539, %f546;
+ add.rn.f32 %f548, %f547, %f544;
+ mov.b32 %r259, %f545;
+ setp.eq.s32 %p71, %r259, 1118925336;
+ add.s32 %r260, %r259, -1;
+ mov.b32 %f549, %r260;
+ add.f32 %f550, %f548, 0f37000000;
+ selp.f32 %f551, %f549, %f545, %p71;
+ selp.f32 %f151, %f550, %f548, %p71;
+ mul.f32 %f552, %f551, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f553, %f552;
+ mov.f32 %f554, 0fBF317200;
+ fma.rn.f32 %f555, %f553, %f554, %f551;
+ mov.f32 %f556, 0fB5BFBE8E;
+ fma.rn.f32 %f557, %f553, %f556, %f555;
+ mul.f32 %f558, %f557, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f559, %f558;
+ add.f32 %f560, %f553, 0f00000000;
+ ex2.approx.f32 %f561, %f560;
+ mul.f32 %f562, %f559, %f561;
+ setp.lt.f32 %p72, %f551, 0fC2D20000;
+ selp.f32 %f563, 0f00000000, %f562, %p72;
+ setp.gt.f32 %p73, %f551, 0f42D20000;
+ selp.f32 %f976, 0f7F800000, %f563, %p73;
+ setp.eq.f32 %p74, %f976, 0f7F800000;
+ @%p74 bra BB0_78;
+
+ fma.rn.f32 %f976, %f976, %f151, %f976;
+
+BB0_78:
+ setp.lt.f32 %p75, %f975, 0f00000000;
+ setp.eq.f32 %p76, %f149, 0f3F800000;
+ and.pred %p3, %p75, %p76;
+ mov.b32 %r261, %f976;
+ xor.b32 %r262, %r261, -2147483648;
+ mov.b32 %f564, %r262;
+ selp.f32 %f978, %f564, %f976, %p3;
+ setp.eq.f32 %p77, %f975, 0f00000000;
+ @%p77 bra BB0_81;
+ bra.uni BB0_79;
+
+BB0_81:
+ add.f32 %f567, %f975, %f975;
+ selp.f32 %f978, %f567, 0f00000000, %p76;
+ bra.uni BB0_82;
+
+BB0_146:
+ mov.u64 %rd210, image_HDR;
+ cvta.global.u64 %rd205, %rd210;
+ mov.u32 %r348, 8;
+ // inline asm
+ call (%rd204), _rt_buffer_get_64, (%rd205, %r98, %r348, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f880, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f880;}
+
+ // inline asm
+ mov.u16 %rs99, 0;
+ st.v4.u16 [%rd204], {%rs98, %rs98, %rs98, %rs99};
+
+BB0_147:
+ ld.global.u32 %r349, [additive];
+ setp.eq.s32 %p144, %r349, 0;
+ @%p144 bra BB0_149;
+
+ mov.u64 %rd223, image_RNM0;
+ cvta.global.u64 %rd212, %rd223;
+ mov.u32 %r353, 8;
+ // inline asm
+ call (%rd211), _rt_buffer_get_64, (%rd212, %r98, %r353, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs106, %rs107, %rs108, %rs109}, [%rd211];
+ // inline asm
+ { cvt.f32.f16 %f881, %rs106;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f882, %rs107;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f883, %rs108;}
+
+ // inline asm
+ // inline asm
+ call (%rd217), _rt_buffer_get_64, (%rd212, %r98, %r353, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ add.f32 %f884, %f881, 0f00000000;
+ add.f32 %f885, %f882, 0f00000000;
+ add.f32 %f886, %f883, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f886;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f885;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs103, %f884;}
+
+ // inline asm
+ mov.u16 %rs110, 0;
+ st.v4.u16 [%rd217], {%rs103, %rs104, %rs105, %rs110};
+ bra.uni BB0_150;
+
+BB0_149:
+ mov.u64 %rd230, image_RNM0;
+ cvta.global.u64 %rd225, %rd230;
+ mov.u32 %r355, 8;
+ // inline asm
+ call (%rd224), _rt_buffer_get_64, (%rd225, %r98, %r355, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f887, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f887;}
+
+ // inline asm
+ mov.u16 %rs112, 0;
+ st.v4.u16 [%rd224], {%rs111, %rs111, %rs111, %rs112};
+
+BB0_150:
+ ld.global.u32 %r356, [additive];
+ setp.eq.s32 %p145, %r356, 0;
+ @%p145 bra BB0_152;
+
+ mov.u64 %rd243, image_RNM1;
+ cvta.global.u64 %rd232, %rd243;
+ mov.u32 %r360, 8;
+ // inline asm
+ call (%rd231), _rt_buffer_get_64, (%rd232, %r98, %r360, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs119, %rs120, %rs121, %rs122}, [%rd231];
+ // inline asm
+ { cvt.f32.f16 %f888, %rs119;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f889, %rs120;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f890, %rs121;}
+
+ // inline asm
+ // inline asm
+ call (%rd237), _rt_buffer_get_64, (%rd232, %r98, %r360, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ add.f32 %f891, %f888, 0f00000000;
+ add.f32 %f892, %f889, 0f00000000;
+ add.f32 %f893, %f890, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs118, %f893;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f892;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f891;}
+
+ // inline asm
+ mov.u16 %rs123, 0;
+ st.v4.u16 [%rd237], {%rs116, %rs117, %rs118, %rs123};
+ bra.uni BB0_153;
+
+BB0_152:
+ mov.u64 %rd250, image_RNM1;
+ cvta.global.u64 %rd245, %rd250;
+ mov.u32 %r362, 8;
+ // inline asm
+ call (%rd244), _rt_buffer_get_64, (%rd245, %r98, %r362, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f894, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs124, %f894;}
+
+ // inline asm
+ mov.u16 %rs125, 0;
+ st.v4.u16 [%rd244], {%rs124, %rs124, %rs124, %rs125};
+
+BB0_153:
+ ld.global.u32 %r363, [additive];
+ setp.eq.s32 %p146, %r363, 0;
+ @%p146 bra BB0_155;
+
+ mov.u64 %rd263, image_RNM2;
+ cvta.global.u64 %rd252, %rd263;
+ mov.u32 %r367, 8;
+ // inline asm
+ call (%rd251), _rt_buffer_get_64, (%rd252, %r98, %r367, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs132, %rs133, %rs134, %rs135}, [%rd251];
+ // inline asm
+ { cvt.f32.f16 %f895, %rs132;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f896, %rs133;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f897, %rs134;}
+
+ // inline asm
+ // inline asm
+ call (%rd257), _rt_buffer_get_64, (%rd252, %r98, %r367, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ add.f32 %f898, %f895, 0f00000000;
+ add.f32 %f899, %f896, 0f00000000;
+ add.f32 %f900, %f897, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs131, %f900;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f899;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f898;}
+
+ // inline asm
+ mov.u16 %rs136, 0;
+ st.v4.u16 [%rd257], {%rs129, %rs130, %rs131, %rs136};
+ bra.uni BB0_156;
+
+BB0_155:
+ mov.u64 %rd270, image_RNM2;
+ cvta.global.u64 %rd265, %rd270;
+ mov.u32 %r369, 8;
+ // inline asm
+ call (%rd264), _rt_buffer_get_64, (%rd265, %r98, %r369, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f901, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs137, %f901;}
+
+ // inline asm
+ mov.u16 %rs138, 0;
+ st.v4.u16 [%rd264], {%rs137, %rs137, %rs137, %rs138};
+
+BB0_156:
+ ld.global.u32 %r370, [additive];
+ setp.eq.s32 %p147, %r370, 0;
+ @%p147 bra BB0_158;
+
+ mov.u64 %rd283, image_RNM3;
+ cvta.global.u64 %rd272, %rd283;
+ mov.u32 %r374, 8;
+ // inline asm
+ call (%rd271), _rt_buffer_get_64, (%rd272, %r98, %r374, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs145, %rs146, %rs147, %rs148}, [%rd271];
+ // inline asm
+ { cvt.f32.f16 %f902, %rs145;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f903, %rs146;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f904, %rs147;}
+
+ // inline asm
+ // inline asm
+ call (%rd277), _rt_buffer_get_64, (%rd272, %r98, %r374, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ add.f32 %f905, %f902, 0f00000000;
+ add.f32 %f906, %f903, 0f00000000;
+ add.f32 %f907, %f904, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs144, %f907;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f906;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs142, %f905;}
+
+ // inline asm
+ mov.u16 %rs149, 0;
+ st.v4.u16 [%rd277], {%rs142, %rs143, %rs144, %rs149};
+ bra.uni BB0_159;
+
+BB0_158:
+ mov.u64 %rd290, image_RNM3;
+ cvta.global.u64 %rd285, %rd290;
+ mov.u32 %r376, 8;
+ // inline asm
+ call (%rd284), _rt_buffer_get_64, (%rd285, %r98, %r376, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f908, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f908;}
+
+ // inline asm
+ mov.u16 %rs151, 0;
+ st.v4.u16 [%rd284], {%rs150, %rs150, %rs150, %rs151};
+ bra.uni BB0_159;
+
+BB0_79:
+ setp.geu.f32 %p78, %f975, 0f00000000;
+ @%p78 bra BB0_82;
+
+ cvt.rzi.f32.f32 %f566, %f538;
+ setp.neu.f32 %p79, %f566, 0f3EE8BA2E;
+ selp.f32 %f978, 0f7FFFFFFF, %f978, %p79;
+
+BB0_82:
+ add.f32 %f568, %f150, 0f3EE8BA2E;
+ mov.b32 %r263, %f568;
+ setp.lt.s32 %p81, %r263, 2139095040;
+ @%p81 bra BB0_87;
+
+ setp.gtu.f32 %p82, %f150, 0f7F800000;
+ @%p82 bra BB0_86;
+ bra.uni BB0_84;
+
+BB0_86:
+ add.f32 %f978, %f975, 0f3EE8BA2E;
+ bra.uni BB0_87;
+
+BB0_84:
+ setp.neu.f32 %p83, %f150, 0f7F800000;
+ @%p83 bra BB0_87;
+
+ selp.f32 %f978, 0fFF800000, 0f7F800000, %p3;
+
+BB0_87:
+ mul.f32 %f569, %f978, 0f437F0000;
+ setp.eq.f32 %p84, %f975, 0f3F800000;
+ selp.f32 %f570, 0f437F0000, %f569, %p84;
+ cvt.rzi.u32.f32 %r264, %f570;
+ cvt.u16.u32 %rs14, %r264;
+ mov.u16 %rs15, 255;
+ st.v2.u8 [%rd63], {%rs14, %rs15};
+ ld.global.u32 %r408, [imageEnabled];
+
+BB0_88:
+ ld.global.f32 %f571, [lightColor];
+ mul.f32 %f162, %f970, %f571;
+ ld.global.f32 %f572, [lightColor+4];
+ mul.f32 %f163, %f970, %f572;
+ ld.global.f32 %f573, [lightColor+8];
+ mul.f32 %f164, %f970, %f573;
+ and.b32 %r265, %r408, 1;
+ setp.eq.b32 %p85, %r265, 1;
+ @!%p85 bra BB0_123;
+ bra.uni BB0_89;
+
+BB0_89:
+ mov.f32 %f576, 0f3E666666;
+ cvt.rzi.f32.f32 %f577, %f576;
+ fma.rn.f32 %f578, %f577, 0fC0000000, 0f3EE66666;
+ abs.f32 %f165, %f578;
+ abs.f32 %f166, %f162;
+ setp.lt.f32 %p86, %f166, 0f00800000;
+ mul.f32 %f579, %f166, 0f4B800000;
+ selp.f32 %f580, 0fC3170000, 0fC2FE0000, %p86;
+ selp.f32 %f581, %f579, %f166, %p86;
+ mov.b32 %r266, %f581;
+ and.b32 %r267, %r266, 8388607;
+ or.b32 %r268, %r267, 1065353216;
+ mov.b32 %f582, %r268;
+ shr.u32 %r269, %r266, 23;
+ cvt.rn.f32.u32 %f583, %r269;
+ add.f32 %f584, %f580, %f583;
+ setp.gt.f32 %p87, %f582, 0f3FB504F3;
+ mul.f32 %f585, %f582, 0f3F000000;
+ add.f32 %f586, %f584, 0f3F800000;
+ selp.f32 %f587, %f585, %f582, %p87;
+ selp.f32 %f588, %f586, %f584, %p87;
+ add.f32 %f589, %f587, 0fBF800000;
+ add.f32 %f575, %f587, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f574,%f575;
+ // inline asm
+ add.f32 %f590, %f589, %f589;
+ mul.f32 %f591, %f574, %f590;
+ mul.f32 %f592, %f591, %f591;
+ mov.f32 %f593, 0f3C4CAF63;
+ mov.f32 %f594, 0f3B18F0FE;
+ fma.rn.f32 %f595, %f594, %f592, %f593;
+ mov.f32 %f596, 0f3DAAAABD;
+ fma.rn.f32 %f597, %f595, %f592, %f596;
+ mul.rn.f32 %f598, %f597, %f592;
+ mul.rn.f32 %f599, %f598, %f591;
+ sub.f32 %f600, %f589, %f591;
+ neg.f32 %f601, %f591;
+ add.f32 %f602, %f600, %f600;
+ fma.rn.f32 %f603, %f601, %f589, %f602;
+ mul.rn.f32 %f604, %f574, %f603;
+ add.f32 %f605, %f599, %f591;
+ sub.f32 %f606, %f591, %f605;
+ add.f32 %f607, %f599, %f606;
+ add.f32 %f608, %f604, %f607;
+ add.f32 %f609, %f605, %f608;
+ sub.f32 %f610, %f605, %f609;
+ add.f32 %f611, %f608, %f610;
+ mov.f32 %f612, 0f3F317200;
+ mul.rn.f32 %f613, %f588, %f612;
+ mov.f32 %f614, 0f35BFBE8E;
+ mul.rn.f32 %f615, %f588, %f614;
+ add.f32 %f616, %f613, %f609;
+ sub.f32 %f617, %f613, %f616;
+ add.f32 %f618, %f609, %f617;
+ add.f32 %f619, %f611, %f618;
+ add.f32 %f620, %f615, %f619;
+ add.f32 %f621, %f616, %f620;
+ sub.f32 %f622, %f616, %f621;
+ add.f32 %f623, %f620, %f622;
+ mov.f32 %f624, 0f3EE66666;
+ mul.rn.f32 %f625, %f624, %f621;
+ neg.f32 %f626, %f625;
+ fma.rn.f32 %f627, %f624, %f621, %f626;
+ fma.rn.f32 %f628, %f624, %f623, %f627;
+ mov.f32 %f629, 0f00000000;
+ fma.rn.f32 %f630, %f629, %f621, %f628;
+ add.rn.f32 %f631, %f625, %f630;
+ neg.f32 %f632, %f631;
+ add.rn.f32 %f633, %f625, %f632;
+ add.rn.f32 %f634, %f633, %f630;
+ mov.b32 %r270, %f631;
+ setp.eq.s32 %p88, %r270, 1118925336;
+ add.s32 %r271, %r270, -1;
+ mov.b32 %f635, %r271;
+ add.f32 %f636, %f634, 0f37000000;
+ selp.f32 %f637, %f635, %f631, %p88;
+ selp.f32 %f167, %f636, %f634, %p88;
+ mul.f32 %f638, %f637, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f639, %f638;
+ mov.f32 %f640, 0fBF317200;
+ fma.rn.f32 %f641, %f639, %f640, %f637;
+ mov.f32 %f642, 0fB5BFBE8E;
+ fma.rn.f32 %f643, %f639, %f642, %f641;
+ mul.f32 %f644, %f643, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f645, %f644;
+ add.f32 %f646, %f639, 0f00000000;
+ ex2.approx.f32 %f647, %f646;
+ mul.f32 %f648, %f645, %f647;
+ setp.lt.f32 %p89, %f637, 0fC2D20000;
+ selp.f32 %f649, 0f00000000, %f648, %p89;
+ setp.gt.f32 %p90, %f637, 0f42D20000;
+ selp.f32 %f979, 0f7F800000, %f649, %p90;
+ setp.eq.f32 %p91, %f979, 0f7F800000;
+ @%p91 bra BB0_91;
+
+ fma.rn.f32 %f979, %f979, %f167, %f979;
+
+BB0_91:
+ setp.lt.f32 %p92, %f162, 0f00000000;
+ setp.eq.f32 %p93, %f165, 0f3F800000;
+ and.pred %p4, %p92, %p93;
+ mov.b32 %r272, %f979;
+ xor.b32 %r273, %r272, -2147483648;
+ mov.b32 %f650, %r273;
+ selp.f32 %f981, %f650, %f979, %p4;
+ setp.eq.f32 %p94, %f162, 0f00000000;
+ @%p94 bra BB0_94;
+ bra.uni BB0_92;
+
+BB0_94:
+ add.f32 %f653, %f162, %f162;
+ selp.f32 %f981, %f653, 0f00000000, %p93;
+ bra.uni BB0_95;
+
+BB0_92:
+ setp.geu.f32 %p95, %f162, 0f00000000;
+ @%p95 bra BB0_95;
+
+ cvt.rzi.f32.f32 %f652, %f624;
+ setp.neu.f32 %p96, %f652, 0f3EE66666;
+ selp.f32 %f981, 0f7FFFFFFF, %f981, %p96;
+
+BB0_95:
+ add.f32 %f654, %f166, 0f3EE66666;
+ mov.b32 %r274, %f654;
+ setp.lt.s32 %p98, %r274, 2139095040;
+ @%p98 bra BB0_100;
+
+ setp.gtu.f32 %p99, %f166, 0f7F800000;
+ @%p99 bra BB0_99;
+ bra.uni BB0_97;
+
+BB0_99:
+ add.f32 %f981, %f162, 0f3EE66666;
+ bra.uni BB0_100;
+
+BB0_97:
+ setp.neu.f32 %p100, %f166, 0f7F800000;
+ @%p100 bra BB0_100;
+
+ selp.f32 %f981, 0fFF800000, 0f7F800000, %p4;
+
+BB0_100:
+ setp.eq.f32 %p101, %f162, 0f3F800000;
+ selp.f32 %f178, 0f3F800000, %f981, %p101;
+ abs.f32 %f179, %f163;
+ setp.lt.f32 %p102, %f179, 0f00800000;
+ mul.f32 %f657, %f179, 0f4B800000;
+ selp.f32 %f658, 0fC3170000, 0fC2FE0000, %p102;
+ selp.f32 %f659, %f657, %f179, %p102;
+ mov.b32 %r275, %f659;
+ and.b32 %r276, %r275, 8388607;
+ or.b32 %r277, %r276, 1065353216;
+ mov.b32 %f660, %r277;
+ shr.u32 %r278, %r275, 23;
+ cvt.rn.f32.u32 %f661, %r278;
+ add.f32 %f662, %f658, %f661;
+ setp.gt.f32 %p103, %f660, 0f3FB504F3;
+ mul.f32 %f663, %f660, 0f3F000000;
+ add.f32 %f664, %f662, 0f3F800000;
+ selp.f32 %f665, %f663, %f660, %p103;
+ selp.f32 %f666, %f664, %f662, %p103;
+ add.f32 %f667, %f665, 0fBF800000;
+ add.f32 %f656, %f665, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f655,%f656;
+ // inline asm
+ add.f32 %f668, %f667, %f667;
+ mul.f32 %f669, %f655, %f668;
+ mul.f32 %f670, %f669, %f669;
+ fma.rn.f32 %f673, %f594, %f670, %f593;
+ fma.rn.f32 %f675, %f673, %f670, %f596;
+ mul.rn.f32 %f676, %f675, %f670;
+ mul.rn.f32 %f677, %f676, %f669;
+ sub.f32 %f678, %f667, %f669;
+ neg.f32 %f679, %f669;
+ add.f32 %f680, %f678, %f678;
+ fma.rn.f32 %f681, %f679, %f667, %f680;
+ mul.rn.f32 %f682, %f655, %f681;
+ add.f32 %f683, %f677, %f669;
+ sub.f32 %f684, %f669, %f683;
+ add.f32 %f685, %f677, %f684;
+ add.f32 %f686, %f682, %f685;
+ add.f32 %f687, %f683, %f686;
+ sub.f32 %f688, %f683, %f687;
+ add.f32 %f689, %f686, %f688;
+ mul.rn.f32 %f691, %f666, %f612;
+ mul.rn.f32 %f693, %f666, %f614;
+ add.f32 %f694, %f691, %f687;
+ sub.f32 %f695, %f691, %f694;
+ add.f32 %f696, %f687, %f695;
+ add.f32 %f697, %f689, %f696;
+ add.f32 %f698, %f693, %f697;
+ add.f32 %f699, %f694, %f698;
+ sub.f32 %f700, %f694, %f699;
+ add.f32 %f701, %f698, %f700;
+ mul.rn.f32 %f703, %f624, %f699;
+ neg.f32 %f704, %f703;
+ fma.rn.f32 %f705, %f624, %f699, %f704;
+ fma.rn.f32 %f706, %f624, %f701, %f705;
+ fma.rn.f32 %f708, %f629, %f699, %f706;
+ add.rn.f32 %f709, %f703, %f708;
+ neg.f32 %f710, %f709;
+ add.rn.f32 %f711, %f703, %f710;
+ add.rn.f32 %f712, %f711, %f708;
+ mov.b32 %r279, %f709;
+ setp.eq.s32 %p104, %r279, 1118925336;
+ add.s32 %r280, %r279, -1;
+ mov.b32 %f713, %r280;
+ add.f32 %f714, %f712, 0f37000000;
+ selp.f32 %f715, %f713, %f709, %p104;
+ selp.f32 %f180, %f714, %f712, %p104;
+ mul.f32 %f716, %f715, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f717, %f716;
+ fma.rn.f32 %f719, %f717, %f640, %f715;
+ fma.rn.f32 %f721, %f717, %f642, %f719;
+ mul.f32 %f722, %f721, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f723, %f722;
+ add.f32 %f724, %f717, 0f00000000;
+ ex2.approx.f32 %f725, %f724;
+ mul.f32 %f726, %f723, %f725;
+ setp.lt.f32 %p105, %f715, 0fC2D20000;
+ selp.f32 %f727, 0f00000000, %f726, %p105;
+ setp.gt.f32 %p106, %f715, 0f42D20000;
+ selp.f32 %f982, 0f7F800000, %f727, %p106;
+ setp.eq.f32 %p107, %f982, 0f7F800000;
+ @%p107 bra BB0_102;
+
+ fma.rn.f32 %f982, %f982, %f180, %f982;
+
+BB0_102:
+ setp.lt.f32 %p108, %f163, 0f00000000;
+ and.pred %p5, %p108, %p93;
+ mov.b32 %r281, %f982;
+ xor.b32 %r282, %r281, -2147483648;
+ mov.b32 %f728, %r282;
+ selp.f32 %f984, %f728, %f982, %p5;
+ setp.eq.f32 %p110, %f163, 0f00000000;
+ @%p110 bra BB0_105;
+ bra.uni BB0_103;
+
+BB0_105:
+ add.f32 %f731, %f163, %f163;
+ selp.f32 %f984, %f731, 0f00000000, %p93;
+ bra.uni BB0_106;
+
+BB0_103:
+ setp.geu.f32 %p111, %f163, 0f00000000;
+ @%p111 bra BB0_106;
+
+ cvt.rzi.f32.f32 %f730, %f624;
+ setp.neu.f32 %p112, %f730, 0f3EE66666;
+ selp.f32 %f984, 0f7FFFFFFF, %f984, %p112;
+
+BB0_106:
+ add.f32 %f732, %f179, 0f3EE66666;
+ mov.b32 %r283, %f732;
+ setp.lt.s32 %p114, %r283, 2139095040;
+ @%p114 bra BB0_111;
+
+ setp.gtu.f32 %p115, %f179, 0f7F800000;
+ @%p115 bra BB0_110;
+ bra.uni BB0_108;
+
+BB0_110:
+ add.f32 %f984, %f163, 0f3EE66666;
+ bra.uni BB0_111;
+
+BB0_108:
+ setp.neu.f32 %p116, %f179, 0f7F800000;
+ @%p116 bra BB0_111;
+
+ selp.f32 %f984, 0fFF800000, 0f7F800000, %p5;
+
+BB0_111:
+ setp.eq.f32 %p117, %f163, 0f3F800000;
+ selp.f32 %f191, 0f3F800000, %f984, %p117;
+ abs.f32 %f192, %f164;
+ setp.lt.f32 %p118, %f192, 0f00800000;
+ mul.f32 %f735, %f192, 0f4B800000;
+ selp.f32 %f736, 0fC3170000, 0fC2FE0000, %p118;
+ selp.f32 %f737, %f735, %f192, %p118;
+ mov.b32 %r284, %f737;
+ and.b32 %r285, %r284, 8388607;
+ or.b32 %r286, %r285, 1065353216;
+ mov.b32 %f738, %r286;
+ shr.u32 %r287, %r284, 23;
+ cvt.rn.f32.u32 %f739, %r287;
+ add.f32 %f740, %f736, %f739;
+ setp.gt.f32 %p119, %f738, 0f3FB504F3;
+ mul.f32 %f741, %f738, 0f3F000000;
+ add.f32 %f742, %f740, 0f3F800000;
+ selp.f32 %f743, %f741, %f738, %p119;
+ selp.f32 %f744, %f742, %f740, %p119;
+ add.f32 %f745, %f743, 0fBF800000;
+ add.f32 %f734, %f743, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f733,%f734;
+ // inline asm
+ add.f32 %f746, %f745, %f745;
+ mul.f32 %f747, %f733, %f746;
+ mul.f32 %f748, %f747, %f747;
+ fma.rn.f32 %f751, %f594, %f748, %f593;
+ fma.rn.f32 %f753, %f751, %f748, %f596;
+ mul.rn.f32 %f754, %f753, %f748;
+ mul.rn.f32 %f755, %f754, %f747;
+ sub.f32 %f756, %f745, %f747;
+ neg.f32 %f757, %f747;
+ add.f32 %f758, %f756, %f756;
+ fma.rn.f32 %f759, %f757, %f745, %f758;
+ mul.rn.f32 %f760, %f733, %f759;
+ add.f32 %f761, %f755, %f747;
+ sub.f32 %f762, %f747, %f761;
+ add.f32 %f763, %f755, %f762;
+ add.f32 %f764, %f760, %f763;
+ add.f32 %f765, %f761, %f764;
+ sub.f32 %f766, %f761, %f765;
+ add.f32 %f767, %f764, %f766;
+ mul.rn.f32 %f769, %f744, %f612;
+ mul.rn.f32 %f771, %f744, %f614;
+ add.f32 %f772, %f769, %f765;
+ sub.f32 %f773, %f769, %f772;
+ add.f32 %f774, %f765, %f773;
+ add.f32 %f775, %f767, %f774;
+ add.f32 %f776, %f771, %f775;
+ add.f32 %f777, %f772, %f776;
+ sub.f32 %f778, %f772, %f777;
+ add.f32 %f779, %f776, %f778;
+ mul.rn.f32 %f781, %f624, %f777;
+ neg.f32 %f782, %f781;
+ fma.rn.f32 %f783, %f624, %f777, %f782;
+ fma.rn.f32 %f784, %f624, %f779, %f783;
+ fma.rn.f32 %f786, %f629, %f777, %f784;
+ add.rn.f32 %f787, %f781, %f786;
+ neg.f32 %f788, %f787;
+ add.rn.f32 %f789, %f781, %f788;
+ add.rn.f32 %f790, %f789, %f786;
+ mov.b32 %r288, %f787;
+ setp.eq.s32 %p120, %r288, 1118925336;
+ add.s32 %r289, %r288, -1;
+ mov.b32 %f791, %r289;
+ add.f32 %f792, %f790, 0f37000000;
+ selp.f32 %f793, %f791, %f787, %p120;
+ selp.f32 %f193, %f792, %f790, %p120;
+ mul.f32 %f794, %f793, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f795, %f794;
+ fma.rn.f32 %f797, %f795, %f640, %f793;
+ fma.rn.f32 %f799, %f795, %f642, %f797;
+ mul.f32 %f800, %f799, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f801, %f800;
+ add.f32 %f802, %f795, 0f00000000;
+ ex2.approx.f32 %f803, %f802;
+ mul.f32 %f804, %f801, %f803;
+ setp.lt.f32 %p121, %f793, 0fC2D20000;
+ selp.f32 %f805, 0f00000000, %f804, %p121;
+ setp.gt.f32 %p122, %f793, 0f42D20000;
+ selp.f32 %f985, 0f7F800000, %f805, %p122;
+ setp.eq.f32 %p123, %f985, 0f7F800000;
+ @%p123 bra BB0_113;
+
+ fma.rn.f32 %f985, %f985, %f193, %f985;
+
+BB0_113:
+ setp.lt.f32 %p124, %f164, 0f00000000;
+ and.pred %p6, %p124, %p93;
+ mov.b32 %r290, %f985;
+ xor.b32 %r291, %r290, -2147483648;
+ mov.b32 %f806, %r291;
+ selp.f32 %f987, %f806, %f985, %p6;
+ setp.eq.f32 %p126, %f164, 0f00000000;
+ @%p126 bra BB0_116;
+ bra.uni BB0_114;
+
+BB0_116:
+ add.f32 %f809, %f164, %f164;
+ selp.f32 %f987, %f809, 0f00000000, %p93;
+ bra.uni BB0_117;
+
+BB0_114:
+ setp.geu.f32 %p127, %f164, 0f00000000;
+ @%p127 bra BB0_117;
+
+ cvt.rzi.f32.f32 %f808, %f624;
+ setp.neu.f32 %p128, %f808, 0f3EE66666;
+ selp.f32 %f987, 0f7FFFFFFF, %f987, %p128;
+
+BB0_117:
+ add.f32 %f810, %f192, 0f3EE66666;
+ mov.b32 %r292, %f810;
+ setp.lt.s32 %p130, %r292, 2139095040;
+ @%p130 bra BB0_122;
+
+ setp.gtu.f32 %p131, %f192, 0f7F800000;
+ @%p131 bra BB0_121;
+ bra.uni BB0_119;
+
+BB0_121:
+ add.f32 %f987, %f164, 0f3EE66666;
+ bra.uni BB0_122;
+
+BB0_119:
+ setp.neu.f32 %p132, %f192, 0f7F800000;
+ @%p132 bra BB0_122;
+
+ selp.f32 %f987, 0fFF800000, 0f7F800000, %p6;
+
+BB0_122:
+ setp.eq.f32 %p133, %f164, 0f3F800000;
+ selp.f32 %f811, 0f3F800000, %f987, %p133;
+ cvt.u64.u32 %rd73, %r5;
+ cvt.u64.u32 %rd72, %r4;
+ mov.u64 %rd76, image;
+ cvta.global.u64 %rd71, %rd76;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd71, %r98, %r99, %rd72, %rd73, %rd24, %rd24);
+ // inline asm
+ cvt.sat.f32.f32 %f812, %f811;
+ mul.f32 %f813, %f812, 0f437FFD71;
+ cvt.rzi.u32.f32 %r295, %f813;
+ cvt.sat.f32.f32 %f814, %f191;
+ mul.f32 %f815, %f814, 0f437FFD71;
+ cvt.rzi.u32.f32 %r296, %f815;
+ cvt.sat.f32.f32 %f816, %f178;
+ mul.f32 %f817, %f816, 0f437FFD71;
+ cvt.rzi.u32.f32 %r297, %f817;
+ cvt.u16.u32 %rs16, %r295;
+ cvt.u16.u32 %rs17, %r297;
+ cvt.u16.u32 %rs18, %r296;
+ mov.u16 %rs19, 255;
+ st.v4.u8 [%rd70], {%rs16, %rs18, %rs17, %rs19};
+ ld.global.u32 %r408, [imageEnabled];
+
+BB0_123:
+ cvt.u64.u32 %rd15, %r4;
+ cvt.u64.u32 %rd16, %r5;
+ and.b32 %r298, %r408, 4;
+ setp.eq.s32 %p134, %r298, 0;
+ @%p134 bra BB0_127;
+
+ ld.global.u32 %r299, [additive];
+ setp.eq.s32 %p135, %r299, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f392;}
+
+ // inline asm
+ @%p135 bra BB0_126;
+
+ mov.u64 %rd89, image_HDR;
+ cvta.global.u64 %rd78, %rd89;
+ mov.u32 %r303, 8;
+ // inline asm
+ call (%rd77), _rt_buffer_get_64, (%rd78, %r98, %r303, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs27, %rs28, %rs29, %rs30}, [%rd77];
+ // inline asm
+ { cvt.f32.f16 %f819, %rs27;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f820, %rs28;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f821, %rs29;}
+
+ // inline asm
+ // inline asm
+ call (%rd83), _rt_buffer_get_64, (%rd78, %r98, %r303, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ add.f32 %f822, %f162, %f819;
+ add.f32 %f823, %f163, %f820;
+ add.f32 %f824, %f164, %f821;
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f824;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f823;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f822;}
+
+ // inline asm
+ st.v4.u16 [%rd83], {%rs24, %rs25, %rs26, %rs20};
+ bra.uni BB0_127;
+
+BB0_126:
+ mov.u64 %rd96, image_HDR;
+ cvta.global.u64 %rd91, %rd96;
+ mov.u32 %r305, 8;
+ // inline asm
+ call (%rd90), _rt_buffer_get_64, (%rd91, %r98, %r305, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f164;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f163;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f162;}
+
+ // inline asm
+ st.v4.u16 [%rd90], {%rs31, %rs32, %rs33, %rs20};
+
+BB0_127:
+ selp.f32 %f829, 0f3F800000, 0f3E800000, %p148;
+ mul.f32 %f204, %f829, %f971;
+ mul.f32 %f205, %f829, %f972;
+ mul.f32 %f206, %f829, %f973;
+ mul.f32 %f207, %f829, %f974;
+ ld.global.f32 %f830, [lightColor];
+ mul.f32 %f208, %f204, %f830;
+ ld.global.f32 %f831, [lightColor+4];
+ mul.f32 %f209, %f204, %f831;
+ ld.global.f32 %f832, [lightColor+8];
+ mul.f32 %f210, %f204, %f832;
+ ld.global.u32 %r306, [additive];
+ setp.eq.s32 %p136, %r306, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f392;}
+
+ // inline asm
+ @%p136 bra BB0_129;
+
+ mov.u64 %rd109, image_RNM0;
+ cvta.global.u64 %rd98, %rd109;
+ mov.u32 %r310, 8;
+ // inline asm
+ call (%rd97), _rt_buffer_get_64, (%rd98, %r98, %r310, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs41, %rs42, %rs43, %rs44}, [%rd97];
+ // inline asm
+ { cvt.f32.f16 %f833, %rs41;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f834, %rs42;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f835, %rs43;}
+
+ // inline asm
+ // inline asm
+ call (%rd103), _rt_buffer_get_64, (%rd98, %r98, %r310, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ add.f32 %f836, %f208, %f833;
+ add.f32 %f837, %f209, %f834;
+ add.f32 %f838, %f210, %f835;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f838;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f837;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f836;}
+
+ // inline asm
+ st.v4.u16 [%rd103], {%rs38, %rs39, %rs40, %rs34};
+ bra.uni BB0_130;
+
+BB0_129:
+ mov.u64 %rd116, image_RNM0;
+ cvta.global.u64 %rd111, %rd116;
+ mov.u32 %r312, 8;
+ // inline asm
+ call (%rd110), _rt_buffer_get_64, (%rd111, %r98, %r312, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f210;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f209;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f208;}
+
+ // inline asm
+ st.v4.u16 [%rd110], {%rs45, %rs46, %rs47, %rs34};
+
+BB0_130:
+ mov.f32 %f843, 0f34000000;
+ max.f32 %f844, %f204, %f843;
+ div.rn.f32 %f845, %f205, %f844;
+ fma.rn.f32 %f211, %f845, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f846, %f206, %f844;
+ fma.rn.f32 %f212, %f846, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f847, %f207, %f844;
+ fma.rn.f32 %f213, %f847, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r313, [additive];
+ setp.eq.s32 %p137, %r313, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f392;}
+
+ // inline asm
+ @%p137 bra BB0_132;
+
+ mov.u64 %rd129, image_RNM1;
+ cvta.global.u64 %rd118, %rd129;
+ mov.u32 %r317, 8;
+ // inline asm
+ call (%rd117), _rt_buffer_get_64, (%rd118, %r98, %r317, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs55, %rs56, %rs57, %rs58}, [%rd117];
+ // inline asm
+ { cvt.f32.f16 %f848, %rs55;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f849, %rs56;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f850, %rs57;}
+
+ // inline asm
+ // inline asm
+ call (%rd123), _rt_buffer_get_64, (%rd118, %r98, %r317, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ add.f32 %f851, %f211, %f848;
+ add.f32 %f852, %f211, %f849;
+ add.f32 %f853, %f211, %f850;
+ // inline asm
+ { cvt.rn.f16.f32 %rs54, %f853;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f852;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f851;}
+
+ // inline asm
+ st.v4.u16 [%rd123], {%rs52, %rs53, %rs54, %rs48};
+ bra.uni BB0_133;
+
+BB0_132:
+ mov.u64 %rd136, image_RNM1;
+ cvta.global.u64 %rd131, %rd136;
+ mov.u32 %r319, 8;
+ // inline asm
+ call (%rd130), _rt_buffer_get_64, (%rd131, %r98, %r319, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f211;}
+
+ // inline asm
+ st.v4.u16 [%rd130], {%rs59, %rs59, %rs59, %rs48};
+
+BB0_133:
+ ld.global.u32 %r320, [additive];
+ setp.eq.s32 %p138, %r320, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f392;}
+
+ // inline asm
+ @%p138 bra BB0_135;
+
+ mov.u64 %rd149, image_RNM2;
+ cvta.global.u64 %rd138, %rd149;
+ mov.u32 %r324, 8;
+ // inline asm
+ call (%rd137), _rt_buffer_get_64, (%rd138, %r98, %r324, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd137];
+ // inline asm
+ { cvt.f32.f16 %f856, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f857, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f858, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd143), _rt_buffer_get_64, (%rd138, %r98, %r324, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ add.f32 %f859, %f212, %f856;
+ add.f32 %f860, %f212, %f857;
+ add.f32 %f861, %f212, %f858;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f861;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f860;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f859;}
+
+ // inline asm
+ st.v4.u16 [%rd143], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_136;
+
+BB0_135:
+ mov.u64 %rd156, image_RNM2;
+ cvta.global.u64 %rd151, %rd156;
+ mov.u32 %r326, 8;
+ // inline asm
+ call (%rd150), _rt_buffer_get_64, (%rd151, %r98, %r326, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f212;}
+
+ // inline asm
+ st.v4.u16 [%rd150], {%rs71, %rs71, %rs71, %rs60};
+
+BB0_136:
+ ld.global.u32 %r327, [additive];
+ setp.eq.s32 %p139, %r327, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f392;}
+
+ // inline asm
+ @%p139 bra BB0_138;
+
+ mov.u64 %rd169, image_RNM3;
+ cvta.global.u64 %rd158, %rd169;
+ mov.u32 %r331, 8;
+ // inline asm
+ call (%rd157), _rt_buffer_get_64, (%rd158, %r98, %r331, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs79, %rs80, %rs81, %rs82}, [%rd157];
+ // inline asm
+ { cvt.f32.f16 %f864, %rs79;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f865, %rs80;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f866, %rs81;}
+
+ // inline asm
+ // inline asm
+ call (%rd163), _rt_buffer_get_64, (%rd158, %r98, %r331, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ add.f32 %f867, %f213, %f864;
+ add.f32 %f868, %f213, %f865;
+ add.f32 %f869, %f213, %f866;
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f869;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f868;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f867;}
+
+ // inline asm
+ st.v4.u16 [%rd163], {%rs76, %rs77, %rs78, %rs72};
+ bra.uni BB0_159;
+
+BB0_138:
+ mov.u64 %rd176, image_RNM3;
+ cvta.global.u64 %rd171, %rd176;
+ mov.u32 %r333, 8;
+ // inline asm
+ call (%rd170), _rt_buffer_get_64, (%rd171, %r98, %r333, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f213;}
+
+ // inline asm
+ st.v4.u16 [%rd170], {%rs83, %rs83, %rs83, %rs72};
+
+BB0_159:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightProbeSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightProbeSH.ptx.meta
new file mode 100644
index 00000000..cc0a8e28
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightProbeSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2e7e633188b9ad54b9aa8574f0516dbf
+timeCreated: 1551460554
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightRNM.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightRNM.ptx
new file mode 100644
index 00000000..02c78f1f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightRNM.ptx
@@ -0,0 +1,2483 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 uvtangent[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 lightMeshBuffer[1];
+.global .align 4 .u32 lightMeshBufferSize;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightPointSize;
+.global .align 4 .b8 lightColor[12];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo19lightMeshBufferSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightPointSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename19lightMeshBufferSizeE[13] = {117, 110, 115, 105, 103, 110, 101, 100, 32, 105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightPointSizeE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum19lightMeshBufferSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightPointSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightPointSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightPointSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[36];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<156>;
+ .reg .b16 %rs<157>;
+ .reg .f32 %f<1168>;
+ .reg .b32 %r<435>;
+ .reg .b64 %rd<292>;
+
+
+ mov.u64 %rd291, __local_depot0;
+ cvta.local.u64 %SP, %rd291;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r109, %r110}, [pixelID];
+ cvt.u64.u32 %rd26, %r109;
+ cvt.u64.u32 %rd27, %r110;
+ mov.u64 %rd30, uvnormal;
+ cvta.global.u64 %rd25, %rd30;
+ mov.u32 %r107, 2;
+ mov.u32 %r108, 4;
+ mov.u64 %rd29, 0;
+ // inline asm
+ call (%rd24), _rt_buffer_get_64, (%rd25, %r107, %r108, %rd26, %rd27, %rd29, %rd29);
+ // inline asm
+ ld.u32 %r2, [%rd24];
+ shr.u32 %r113, %r2, 16;
+ cvt.u16.u32 %rs1, %r113;
+ and.b16 %rs6, %rs1, 255;
+ cvt.u16.u32 %rs7, %r2;
+ or.b16 %rs8, %rs7, %rs6;
+ setp.eq.s16 %p7, %rs8, 0;
+ mov.f32 %f1089, 0f00000000;
+ mov.f32 %f1090, %f1089;
+ mov.f32 %f1091, %f1089;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs9, [%rd24+1];
+ and.b16 %rs11, %rs7, 255;
+ cvt.rn.f32.u16 %f248, %rs11;
+ div.rn.f32 %f249, %f248, 0f437F0000;
+ fma.rn.f32 %f250, %f249, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f251, %rs9;
+ div.rn.f32 %f252, %f251, 0f437F0000;
+ fma.rn.f32 %f253, %f252, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f254, %rs6;
+ div.rn.f32 %f255, %f254, 0f437F0000;
+ fma.rn.f32 %f256, %f255, 0f40000000, 0fBF800000;
+ mul.f32 %f257, %f253, %f253;
+ fma.rn.f32 %f258, %f250, %f250, %f257;
+ fma.rn.f32 %f259, %f256, %f256, %f258;
+ sqrt.rn.f32 %f260, %f259;
+ rcp.rn.f32 %f261, %f260;
+ mul.f32 %f1089, %f250, %f261;
+ mul.f32 %f1090, %f253, %f261;
+ mul.f32 %f1091, %f256, %f261;
+
+BB0_2:
+ ld.global.v2.u32 {%r114, %r115}, [pixelID];
+ ld.global.v2.u32 {%r117, %r118}, [tileInfo];
+ add.s32 %r3, %r114, %r117;
+ add.s32 %r4, %r115, %r118;
+ setp.eq.f32 %p8, %f1090, 0f00000000;
+ setp.eq.f32 %p9, %f1089, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f1091, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_144;
+ bra.uni BB0_3;
+
+BB0_144:
+ ld.global.u32 %r434, [imageEnabled];
+ and.b32 %r353, %r434, 1;
+ setp.eq.b32 %p148, %r353, 1;
+ @!%p148 bra BB0_146;
+ bra.uni BB0_145;
+
+BB0_145:
+ cvt.u64.u32 %rd193, %r3;
+ cvt.u64.u32 %rd194, %r4;
+ mov.u64 %rd197, image;
+ cvta.global.u64 %rd192, %rd197;
+ mov.u64 %rd196, 0;
+ // inline asm
+ call (%rd191), _rt_buffer_get_64, (%rd192, %r107, %r108, %rd193, %rd194, %rd196, %rd196);
+ // inline asm
+ mov.u16 %rs102, 0;
+ st.v4.u8 [%rd191], {%rs102, %rs102, %rs102, %rs102};
+ ld.global.u32 %r434, [imageEnabled];
+
+BB0_146:
+ and.b32 %r356, %r434, 8;
+ setp.eq.s32 %p149, %r356, 0;
+ @%p149 bra BB0_148;
+
+ cvt.u64.u32 %rd201, %r4;
+ cvt.u64.u32 %rd200, %r3;
+ mov.u64 %rd204, image_Mask;
+ cvta.global.u64 %rd199, %rd204;
+ mov.u64 %rd203, 0;
+ // inline asm
+ call (%rd198), _rt_buffer_get_64, (%rd199, %r107, %r107, %rd200, %rd201, %rd203, %rd203);
+ // inline asm
+ mov.f32 %f1051, 0f00000000;
+ cvt.rzi.u32.f32 %r359, %f1051;
+ cvt.u16.u32 %rs103, %r359;
+ mov.u16 %rs104, 0;
+ st.v2.u8 [%rd198], {%rs103, %rs104};
+ ld.global.u32 %r434, [imageEnabled];
+
+BB0_148:
+ cvt.u64.u32 %rd22, %r3;
+ cvt.u64.u32 %rd23, %r4;
+ and.b32 %r360, %r434, 4;
+ setp.eq.s32 %p150, %r360, 0;
+ @%p150 bra BB0_152;
+
+ ld.global.u32 %r361, [additive];
+ setp.eq.s32 %p151, %r361, 0;
+ @%p151 bra BB0_151;
+
+ mov.u64 %rd217, image_HDR;
+ cvta.global.u64 %rd206, %rd217;
+ mov.u32 %r365, 8;
+ mov.u64 %rd216, 0;
+ // inline asm
+ call (%rd205), _rt_buffer_get_64, (%rd206, %r107, %r365, %rd22, %rd23, %rd216, %rd216);
+ // inline asm
+ ld.v4.u16 {%rs111, %rs112, %rs113, %rs114}, [%rd205];
+ // inline asm
+ { cvt.f32.f16 %f1052, %rs111;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1053, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1054, %rs113;}
+
+ // inline asm
+ // inline asm
+ call (%rd211), _rt_buffer_get_64, (%rd206, %r107, %r365, %rd22, %rd23, %rd216, %rd216);
+ // inline asm
+ add.f32 %f1055, %f1052, 0f00000000;
+ add.f32 %f1056, %f1053, 0f00000000;
+ add.f32 %f1057, %f1054, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f1057;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f1056;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs108, %f1055;}
+
+ // inline asm
+ mov.u16 %rs115, 0;
+ st.v4.u16 [%rd211], {%rs108, %rs109, %rs110, %rs115};
+ bra.uni BB0_152;
+
+BB0_3:
+ ld.global.v2.u32 {%r126, %r127}, [pixelID];
+ cvt.u64.u32 %rd33, %r126;
+ cvt.u64.u32 %rd34, %r127;
+ mov.u64 %rd43, uvpos;
+ cvta.global.u64 %rd32, %rd43;
+ mov.u32 %r123, 12;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd32, %r107, %r123, %rd33, %rd34, %rd29, %rd29);
+ // inline asm
+ ld.f32 %f9, [%rd31+8];
+ ld.f32 %f8, [%rd31+4];
+ ld.f32 %f7, [%rd31];
+ mul.f32 %f265, %f7, 0f3456BF95;
+ mul.f32 %f266, %f8, 0f3456BF95;
+ mul.f32 %f267, %f9, 0f3456BF95;
+ abs.f32 %f10, %f1089;
+ div.rn.f32 %f268, %f265, %f10;
+ abs.f32 %f269, %f1090;
+ div.rn.f32 %f270, %f266, %f269;
+ abs.f32 %f11, %f1091;
+ div.rn.f32 %f271, %f267, %f11;
+ abs.f32 %f272, %f268;
+ abs.f32 %f273, %f270;
+ abs.f32 %f274, %f271;
+ mov.f32 %f275, 0f38D1B717;
+ max.f32 %f276, %f272, %f275;
+ max.f32 %f277, %f273, %f275;
+ max.f32 %f278, %f274, %f275;
+ fma.rn.f32 %f12, %f1089, %f276, %f7;
+ fma.rn.f32 %f13, %f1090, %f277, %f8;
+ fma.rn.f32 %f14, %f1091, %f278, %f9;
+ ld.global.v2.u32 {%r130, %r131}, [pixelID];
+ cvt.u64.u32 %rd39, %r130;
+ cvt.u64.u32 %rd40, %r131;
+ mov.u64 %rd44, uvtangent;
+ cvta.global.u64 %rd38, %rd44;
+ // inline asm
+ call (%rd37), _rt_buffer_get_64, (%rd38, %r107, %r108, %rd39, %rd40, %rd29, %rd29);
+ // inline asm
+ ld.u32 %r5, [%rd37];
+ shr.u32 %r6, %r5, 16;
+ cvt.u16.u32 %rs13, %r6;
+ and.b16 %rs14, %rs13, 255;
+ cvt.u16.u32 %rs15, %r5;
+ or.b16 %rs16, %rs15, %rs14;
+ setp.eq.s16 %p13, %rs16, 0;
+ mov.f32 %f50, 0f00000000;
+ mov.f32 %f1092, %f50;
+ mov.f32 %f1093, %f50;
+ mov.f32 %f1094, %f50;
+ @%p13 bra BB0_5;
+
+ ld.u8 %rs17, [%rd37+1];
+ and.b16 %rs19, %rs15, 255;
+ cvt.rn.f32.u16 %f279, %rs19;
+ div.rn.f32 %f280, %f279, 0f437F0000;
+ fma.rn.f32 %f281, %f280, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f282, %rs17;
+ div.rn.f32 %f283, %f282, 0f437F0000;
+ fma.rn.f32 %f284, %f283, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f285, %rs14;
+ div.rn.f32 %f286, %f285, 0f437F0000;
+ fma.rn.f32 %f287, %f286, 0f40000000, 0fBF800000;
+ mul.f32 %f288, %f284, %f284;
+ fma.rn.f32 %f289, %f281, %f281, %f288;
+ fma.rn.f32 %f290, %f287, %f287, %f289;
+ sqrt.rn.f32 %f291, %f290;
+ rcp.rn.f32 %f292, %f291;
+ mul.f32 %f1092, %f281, %f292;
+ mul.f32 %f1093, %f284, %f292;
+ mul.f32 %f1094, %f287, %f292;
+
+BB0_5:
+ mul.f32 %f296, %f1091, %f1093;
+ mul.f32 %f297, %f1090, %f1094;
+ sub.f32 %f298, %f297, %f296;
+ mul.f32 %f299, %f1089, %f1094;
+ mul.f32 %f300, %f1091, %f1092;
+ sub.f32 %f301, %f300, %f299;
+ mul.f32 %f302, %f1090, %f1092;
+ mul.f32 %f303, %f1089, %f1093;
+ sub.f32 %f304, %f303, %f302;
+ setp.lt.u32 %p14, %r5, 16777216;
+ selp.f32 %f305, 0fBF800000, 0f3F800000, %p14;
+ mul.f32 %f306, %f298, %f305;
+ mul.f32 %f307, %f301, %f305;
+ mul.f32 %f308, %f304, %f305;
+ mul.f32 %f309, %f306, 0f00000000;
+ mul.f32 %f310, %f307, 0f00000000;
+ mul.f32 %f311, %f308, 0f00000000;
+ fma.rn.f32 %f312, %f1092, 0f3F5105EC, %f309;
+ fma.rn.f32 %f313, %f1093, 0f3F5105EC, %f310;
+ fma.rn.f32 %f314, %f1094, 0f3F5105EC, %f311;
+ mul.f32 %f21, %f1089, 0f3F13CD3A;
+ add.f32 %f22, %f21, %f312;
+ mul.f32 %f23, %f1090, 0f3F13CD3A;
+ add.f32 %f24, %f23, %f313;
+ mul.f32 %f25, %f1091, 0f3F13CD3A;
+ add.f32 %f26, %f25, %f314;
+ ld.global.v2.u32 {%r136, %r137}, [pixelID];
+ cvt.u64.u32 %rd47, %r136;
+ cvt.u64.u32 %rd48, %r137;
+ // inline asm
+ call (%rd45), _rt_buffer_get_64, (%rd38, %r107, %r108, %rd47, %rd48, %rd29, %rd29);
+ // inline asm
+ ld.u32 %r7, [%rd45];
+ shr.u32 %r8, %r7, 16;
+ cvt.u16.u32 %rs22, %r8;
+ and.b16 %rs23, %rs22, 255;
+ cvt.u16.u32 %rs24, %r7;
+ or.b16 %rs25, %rs24, %rs23;
+ setp.eq.s16 %p15, %rs25, 0;
+ mov.f32 %f1095, %f50;
+ mov.f32 %f1096, %f50;
+ mov.f32 %f1097, %f50;
+ @%p15 bra BB0_7;
+
+ ld.u8 %rs26, [%rd45+1];
+ and.b16 %rs28, %rs24, 255;
+ cvt.rn.f32.u16 %f315, %rs28;
+ div.rn.f32 %f316, %f315, 0f437F0000;
+ fma.rn.f32 %f317, %f316, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f318, %rs26;
+ div.rn.f32 %f319, %f318, 0f437F0000;
+ fma.rn.f32 %f320, %f319, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f321, %rs23;
+ div.rn.f32 %f322, %f321, 0f437F0000;
+ fma.rn.f32 %f323, %f322, 0f40000000, 0fBF800000;
+ mul.f32 %f324, %f320, %f320;
+ fma.rn.f32 %f325, %f317, %f317, %f324;
+ fma.rn.f32 %f326, %f323, %f323, %f325;
+ sqrt.rn.f32 %f327, %f326;
+ rcp.rn.f32 %f328, %f327;
+ mul.f32 %f1095, %f317, %f328;
+ mul.f32 %f1096, %f320, %f328;
+ mul.f32 %f1097, %f323, %f328;
+
+BB0_7:
+ mul.f32 %f332, %f1091, %f1096;
+ mul.f32 %f333, %f1090, %f1097;
+ sub.f32 %f334, %f333, %f332;
+ mul.f32 %f335, %f1089, %f1097;
+ mul.f32 %f336, %f1091, %f1095;
+ sub.f32 %f337, %f336, %f335;
+ mul.f32 %f338, %f1090, %f1095;
+ mul.f32 %f339, %f1089, %f1096;
+ sub.f32 %f340, %f339, %f338;
+ setp.lt.u32 %p16, %r7, 16777216;
+ selp.f32 %f341, 0fBF800000, 0f3F800000, %p16;
+ mul.f32 %f342, %f334, %f341;
+ mul.f32 %f343, %f337, %f341;
+ mul.f32 %f344, %f340, %f341;
+ mul.f32 %f345, %f342, 0f3F3504F3;
+ mul.f32 %f346, %f343, 0f3F3504F3;
+ mul.f32 %f347, %f344, 0f3F3504F3;
+ fma.rn.f32 %f348, %f1095, 0fBED105EC, %f345;
+ fma.rn.f32 %f349, %f1096, 0fBED105EC, %f346;
+ fma.rn.f32 %f350, %f1097, 0fBED105EC, %f347;
+ add.f32 %f33, %f21, %f348;
+ add.f32 %f34, %f23, %f349;
+ add.f32 %f35, %f25, %f350;
+ ld.global.v2.u32 {%r142, %r143}, [pixelID];
+ cvt.u64.u32 %rd54, %r142;
+ cvt.u64.u32 %rd55, %r143;
+ // inline asm
+ call (%rd52), _rt_buffer_get_64, (%rd38, %r107, %r108, %rd54, %rd55, %rd29, %rd29);
+ // inline asm
+ ld.u32 %r9, [%rd52];
+ shr.u32 %r10, %r9, 16;
+ cvt.u16.u32 %rs31, %r10;
+ and.b16 %rs32, %rs31, 255;
+ cvt.u16.u32 %rs33, %r9;
+ or.b16 %rs34, %rs33, %rs32;
+ setp.eq.s16 %p17, %rs34, 0;
+ mov.f32 %f1098, %f50;
+ mov.f32 %f1099, %f50;
+ mov.f32 %f1100, %f50;
+ @%p17 bra BB0_9;
+
+ ld.u8 %rs35, [%rd52+1];
+ and.b16 %rs37, %rs33, 255;
+ cvt.rn.f32.u16 %f351, %rs37;
+ div.rn.f32 %f352, %f351, 0f437F0000;
+ fma.rn.f32 %f353, %f352, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f354, %rs35;
+ div.rn.f32 %f355, %f354, 0f437F0000;
+ fma.rn.f32 %f356, %f355, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f357, %rs32;
+ div.rn.f32 %f358, %f357, 0f437F0000;
+ fma.rn.f32 %f359, %f358, 0f40000000, 0fBF800000;
+ mul.f32 %f360, %f356, %f356;
+ fma.rn.f32 %f361, %f353, %f353, %f360;
+ fma.rn.f32 %f362, %f359, %f359, %f361;
+ sqrt.rn.f32 %f363, %f362;
+ rcp.rn.f32 %f364, %f363;
+ mul.f32 %f1098, %f353, %f364;
+ mul.f32 %f1099, %f356, %f364;
+ mul.f32 %f1100, %f359, %f364;
+
+BB0_9:
+ mul.f32 %f370, %f1091, %f1099;
+ mul.f32 %f371, %f1090, %f1100;
+ sub.f32 %f372, %f371, %f370;
+ mul.f32 %f373, %f1089, %f1100;
+ mul.f32 %f374, %f1091, %f1098;
+ sub.f32 %f375, %f374, %f373;
+ mul.f32 %f376, %f1090, %f1098;
+ mul.f32 %f377, %f1089, %f1099;
+ sub.f32 %f378, %f377, %f376;
+ setp.lt.u32 %p19, %r9, 16777216;
+ selp.f32 %f379, 0fBF800000, 0f3F800000, %p19;
+ mul.f32 %f380, %f372, %f379;
+ mul.f32 %f381, %f375, %f379;
+ mul.f32 %f382, %f378, %f379;
+ mul.f32 %f383, %f380, 0fBF3504F3;
+ mul.f32 %f384, %f381, 0fBF3504F3;
+ mul.f32 %f385, %f382, 0fBF3504F3;
+ fma.rn.f32 %f386, %f1098, 0fBED105EC, %f383;
+ fma.rn.f32 %f387, %f1099, 0fBED105EC, %f384;
+ fma.rn.f32 %f388, %f1100, 0fBED105EC, %f385;
+ add.f32 %f42, %f21, %f386;
+ add.f32 %f43, %f23, %f387;
+ add.f32 %f44, %f25, %f388;
+ ld.global.v2.u32 {%r149, %r150}, [pixelID];
+ cvt.u64.u32 %rd61, %r149;
+ cvt.u64.u32 %rd62, %r150;
+ mov.u64 %rd65, rnd_seeds;
+ cvta.global.u64 %rd60, %rd65;
+ // inline asm
+ call (%rd59), _rt_buffer_get_64, (%rd60, %r107, %r108, %rd61, %rd62, %rd29, %rd29);
+ // inline asm
+ ld.u32 %r153, [%rd59];
+ mad.lo.s32 %r11, %r153, 1664525, 1013904223;
+ ld.global.u32 %r154, [lightMeshBufferSize];
+ setp.eq.s32 %p20, %r154, 0;
+ mov.pred %p18, 0;
+ mov.u32 %r13, 0;
+ @%p20 bra BB0_10;
+
+ ld.global.f32 %f45, [lightPointSize];
+ mul.f32 %f46, %f12, 0f3456BF95;
+ mul.f32 %f47, %f13, 0f3456BF95;
+ mul.f32 %f48, %f14, 0f3456BF95;
+ and.b32 %r157, %r11, 16777215;
+ cvt.rn.f32.u32 %f394, %r157;
+ mul.f32 %f395, %f394, 0fB3800000;
+ fma.rn.f32 %f49, %f395, 0f3F333333, 0f3F800000;
+ mov.f32 %f50, 0f00000000;
+ mov.u32 %r403, 0;
+ abs.f32 %f517, %f47;
+ abs.f32 %f518, %f46;
+ max.f32 %f519, %f518, %f517;
+ abs.f32 %f520, %f48;
+ max.f32 %f521, %f519, %f520;
+ mov.u32 %r13, %r403;
+ mov.f32 %f51, %f50;
+ mov.f32 %f52, %f50;
+ mov.f32 %f53, %f50;
+ mov.f32 %f54, %f50;
+
+BB0_12:
+ shl.b32 %r14, %r403, 1;
+ cvt.s64.s32 %rd68, %r14;
+ mov.u64 %rd72, lightMeshBuffer;
+ cvta.global.u64 %rd67, %rd72;
+ mov.u32 %r158, 1;
+ // inline asm
+ call (%rd66), _rt_buffer_get_64, (%rd67, %r158, %r123, %rd68, %rd29, %rd29, %rd29);
+ // inline asm
+ ld.f32 %f396, [%rd66];
+ sub.f32 %f397, %f396, %f7;
+ ld.f32 %f398, [%rd66+4];
+ sub.f32 %f399, %f398, %f8;
+ ld.f32 %f400, [%rd66+8];
+ sub.f32 %f401, %f400, %f9;
+ mul.f32 %f402, %f399, %f399;
+ fma.rn.f32 %f403, %f397, %f397, %f402;
+ fma.rn.f32 %f404, %f401, %f401, %f403;
+ sqrt.rn.f32 %f55, %f404;
+ rcp.rn.f32 %f405, %f55;
+ mul.f32 %f56, %f397, %f405;
+ mul.f32 %f57, %f399, %f405;
+ mul.f32 %f58, %f401, %f405;
+ mul.f32 %f406, %f1090, %f57;
+ fma.rn.f32 %f407, %f1089, %f56, %f406;
+ fma.rn.f32 %f59, %f1091, %f58, %f407;
+ setp.leu.f32 %p21, %f59, 0f00000000;
+ @%p21 bra BB0_28;
+
+ setp.ne.s32 %p23, %r1, 0;
+ mul.f32 %f408, %f55, %f55;
+ mul.f32 %f409, %f408, 0f40C90FDB;
+ div.rn.f32 %f410, %f45, %f409;
+ add.f32 %f60, %f410, %f410;
+ setp.gt.f32 %p24, %f60, %f49;
+ and.pred %p25, %p23, %p24;
+ mov.pred %p155, -1;
+ @%p25 bra BB0_30;
+
+ ld.global.f32 %f413, [lightInvCutoff];
+ mul.f32 %f61, %f55, %f413;
+ mov.f32 %f417, 0f40800000;
+ abs.f32 %f63, %f61;
+ setp.lt.f32 %p26, %f63, 0f00800000;
+ mul.f32 %f419, %f63, 0f4B800000;
+ selp.f32 %f420, 0fC3170000, 0fC2FE0000, %p26;
+ selp.f32 %f421, %f419, %f63, %p26;
+ mov.b32 %r160, %f421;
+ and.b32 %r161, %r160, 8388607;
+ or.b32 %r162, %r161, 1065353216;
+ mov.b32 %f422, %r162;
+ shr.u32 %r163, %r160, 23;
+ cvt.rn.f32.u32 %f423, %r163;
+ add.f32 %f424, %f420, %f423;
+ setp.gt.f32 %p27, %f422, 0f3FB504F3;
+ mul.f32 %f425, %f422, 0f3F000000;
+ add.f32 %f426, %f424, 0f3F800000;
+ selp.f32 %f427, %f425, %f422, %p27;
+ selp.f32 %f428, %f426, %f424, %p27;
+ add.f32 %f429, %f427, 0fBF800000;
+ add.f32 %f412, %f427, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f411,%f412;
+ // inline asm
+ add.f32 %f430, %f429, %f429;
+ mul.f32 %f431, %f411, %f430;
+ mul.f32 %f432, %f431, %f431;
+ mov.f32 %f433, 0f3C4CAF63;
+ mov.f32 %f434, 0f3B18F0FE;
+ fma.rn.f32 %f435, %f434, %f432, %f433;
+ mov.f32 %f436, 0f3DAAAABD;
+ fma.rn.f32 %f437, %f435, %f432, %f436;
+ mul.rn.f32 %f438, %f437, %f432;
+ mul.rn.f32 %f439, %f438, %f431;
+ sub.f32 %f440, %f429, %f431;
+ neg.f32 %f441, %f431;
+ add.f32 %f442, %f440, %f440;
+ fma.rn.f32 %f443, %f441, %f429, %f442;
+ mul.rn.f32 %f444, %f411, %f443;
+ add.f32 %f445, %f439, %f431;
+ sub.f32 %f446, %f431, %f445;
+ add.f32 %f447, %f439, %f446;
+ add.f32 %f448, %f444, %f447;
+ add.f32 %f449, %f445, %f448;
+ sub.f32 %f450, %f445, %f449;
+ add.f32 %f451, %f448, %f450;
+ mov.f32 %f452, 0f3F317200;
+ mul.rn.f32 %f453, %f428, %f452;
+ mov.f32 %f454, 0f35BFBE8E;
+ mul.rn.f32 %f455, %f428, %f454;
+ add.f32 %f456, %f453, %f449;
+ sub.f32 %f457, %f453, %f456;
+ add.f32 %f458, %f449, %f457;
+ add.f32 %f459, %f451, %f458;
+ add.f32 %f460, %f455, %f459;
+ add.f32 %f461, %f456, %f460;
+ sub.f32 %f462, %f456, %f461;
+ add.f32 %f463, %f460, %f462;
+ mul.rn.f32 %f464, %f417, %f461;
+ neg.f32 %f465, %f464;
+ fma.rn.f32 %f466, %f417, %f461, %f465;
+ fma.rn.f32 %f467, %f417, %f463, %f466;
+ mov.f32 %f468, 0f00000000;
+ fma.rn.f32 %f469, %f468, %f461, %f467;
+ add.rn.f32 %f470, %f464, %f469;
+ neg.f32 %f471, %f470;
+ add.rn.f32 %f472, %f464, %f471;
+ add.rn.f32 %f473, %f472, %f469;
+ mov.b32 %r164, %f470;
+ setp.eq.s32 %p28, %r164, 1118925336;
+ add.s32 %r165, %r164, -1;
+ mov.b32 %f474, %r165;
+ add.f32 %f475, %f473, 0f37000000;
+ selp.f32 %f476, %f474, %f470, %p28;
+ selp.f32 %f64, %f475, %f473, %p28;
+ mul.f32 %f477, %f476, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f478, %f477;
+ mov.f32 %f479, 0fBF317200;
+ fma.rn.f32 %f480, %f478, %f479, %f476;
+ mov.f32 %f481, 0fB5BFBE8E;
+ fma.rn.f32 %f482, %f478, %f481, %f480;
+ mul.f32 %f483, %f482, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f484, %f483;
+ add.f32 %f485, %f478, 0f00000000;
+ ex2.approx.f32 %f486, %f485;
+ mul.f32 %f487, %f484, %f486;
+ setp.lt.f32 %p29, %f476, 0fC2D20000;
+ selp.f32 %f488, 0f00000000, %f487, %p29;
+ setp.gt.f32 %p30, %f476, 0f42D20000;
+ selp.f32 %f1106, 0f7F800000, %f488, %p30;
+ setp.eq.f32 %p31, %f1106, 0f7F800000;
+ @%p31 bra BB0_16;
+
+ fma.rn.f32 %f1106, %f1106, %f64, %f1106;
+
+BB0_16:
+ mov.f32 %f1085, 0f40000000;
+ cvt.rzi.f32.f32 %f1084, %f1085;
+ add.f32 %f1083, %f1084, %f1084;
+ mov.f32 %f1082, 0f40800000;
+ sub.f32 %f1081, %f1082, %f1083;
+ abs.f32 %f1080, %f1081;
+ setp.lt.f32 %p32, %f61, 0f00000000;
+ setp.eq.f32 %p33, %f1080, 0f3F800000;
+ and.pred %p1, %p32, %p33;
+ mov.b32 %r166, %f1106;
+ xor.b32 %r167, %r166, -2147483648;
+ mov.b32 %f489, %r167;
+ selp.f32 %f1108, %f489, %f1106, %p1;
+ setp.eq.f32 %p34, %f61, 0f00000000;
+ @%p34 bra BB0_19;
+ bra.uni BB0_17;
+
+BB0_19:
+ add.f32 %f492, %f61, %f61;
+ selp.f32 %f1108, %f492, 0f00000000, %p33;
+ bra.uni BB0_20;
+
+BB0_17:
+ setp.geu.f32 %p35, %f61, 0f00000000;
+ @%p35 bra BB0_20;
+
+ mov.f32 %f1088, 0f40800000;
+ cvt.rzi.f32.f32 %f491, %f1088;
+ setp.neu.f32 %p36, %f491, 0f40800000;
+ selp.f32 %f1108, 0f7FFFFFFF, %f1108, %p36;
+
+BB0_20:
+ add.f32 %f493, %f63, 0f40800000;
+ mov.b32 %r168, %f493;
+ setp.lt.s32 %p38, %r168, 2139095040;
+ @%p38 bra BB0_25;
+
+ setp.gtu.f32 %p39, %f63, 0f7F800000;
+ @%p39 bra BB0_24;
+ bra.uni BB0_22;
+
+BB0_24:
+ add.f32 %f1108, %f61, 0f40800000;
+ bra.uni BB0_25;
+
+BB0_22:
+ setp.neu.f32 %p40, %f63, 0f7F800000;
+ @%p40 bra BB0_25;
+
+ selp.f32 %f1108, 0fFF800000, 0f7F800000, %p1;
+
+BB0_25:
+ mov.u32 %r390, 1;
+ mov.u64 %rd286, lightMeshBuffer;
+ cvta.global.u64 %rd285, %rd286;
+ shl.b32 %r389, %r403, 1;
+ mov.f32 %f494, 0f3F800000;
+ sub.f32 %f495, %f494, %f1108;
+ setp.eq.f32 %p41, %f61, 0f3F800000;
+ selp.f32 %f496, 0f00000000, %f495, %p41;
+ cvt.sat.f32.f32 %f497, %f496;
+ mul.f32 %f498, %f60, %f497;
+ add.s32 %r171, %r389, 1;
+ cvt.s64.s32 %rd75, %r171;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd285, %r390, %r123, %rd75, %rd29, %rd29, %rd29);
+ // inline asm
+ ld.f32 %f499, [%rd73];
+ mul.f32 %f500, %f56, %f499;
+ ld.f32 %f501, [%rd73+4];
+ mul.f32 %f502, %f57, %f501;
+ neg.f32 %f503, %f502;
+ sub.f32 %f504, %f503, %f500;
+ ld.f32 %f505, [%rd73+8];
+ mul.f32 %f506, %f58, %f505;
+ sub.f32 %f507, %f504, %f506;
+ cvt.sat.f32.f32 %f508, %f507;
+ mul.f32 %f75, %f498, %f508;
+ setp.leu.f32 %p42, %f75, 0f3727C5AC;
+ @%p42 bra BB0_27;
+
+ mov.u32 %r402, 1;
+ add.u64 %rd80, %SP, 4;
+ cvta.to.local.u64 %rd81, %rd80;
+ max.f32 %f515, %f521, %f275;
+ sub.f32 %f516, %f55, %f515;
+ mov.u32 %r175, 1065353216;
+ st.local.u32 [%rd81], %r175;
+ ld.global.u32 %r172, [root];
+ // inline asm
+ call _rt_trace_64, (%r172, %f12, %f13, %f14, %f56, %f57, %f58, %r402, %f515, %f516, %rd80, %r108);
+ // inline asm
+ ld.local.f32 %f523, [%rd81];
+ mul.f32 %f524, %f75, %f523;
+ cvt.sat.f32.f32 %f525, %f59;
+ fma.rn.f32 %f54, %f525, %f524, %f54;
+ mul.f32 %f526, %f24, %f57;
+ fma.rn.f32 %f527, %f22, %f56, %f526;
+ fma.rn.f32 %f528, %f26, %f58, %f527;
+ cvt.sat.f32.f32 %f529, %f528;
+ fma.rn.f32 %f53, %f529, %f524, %f53;
+ mul.f32 %f530, %f34, %f57;
+ fma.rn.f32 %f531, %f33, %f56, %f530;
+ fma.rn.f32 %f532, %f35, %f58, %f531;
+ cvt.sat.f32.f32 %f533, %f532;
+ fma.rn.f32 %f52, %f524, %f533, %f52;
+ mul.f32 %f534, %f43, %f57;
+ fma.rn.f32 %f535, %f42, %f56, %f534;
+ fma.rn.f32 %f536, %f44, %f58, %f535;
+ cvt.sat.f32.f32 %f537, %f536;
+ fma.rn.f32 %f51, %f524, %f537, %f51;
+ add.f32 %f50, %f50, %f523;
+
+BB0_27:
+ add.s32 %r13, %r13, 1;
+
+BB0_28:
+ ld.global.u32 %r176, [lightMeshBufferSize];
+ add.s32 %r403, %r403, 1;
+ setp.lt.u32 %p44, %r403, %r176;
+ @%p44 bra BB0_12;
+ bra.uni BB0_29;
+
+BB0_10:
+ mov.f32 %f51, %f50;
+ mov.f32 %f52, %f50;
+ mov.f32 %f53, %f50;
+ mov.f32 %f54, %f50;
+
+BB0_29:
+ mov.pred %p155, %p18;
+
+BB0_30:
+ cvt.rn.f32.s32 %f538, %r13;
+ mov.f32 %f539, 0f3F800000;
+ max.f32 %f540, %f538, %f539;
+ div.rn.f32 %f1151, %f54, %f540;
+ div.rn.f32 %f1155, %f50, %f540;
+ div.rn.f32 %f1152, %f53, %f540;
+ div.rn.f32 %f1153, %f52, %f540;
+ div.rn.f32 %f1154, %f51, %f540;
+ @!%p155 bra BB0_83;
+ bra.uni BB0_31;
+
+BB0_31:
+ abs.f32 %f1087, %f1091;
+ abs.f32 %f1086, %f1089;
+ setp.gt.f32 %p45, %f1086, %f1087;
+ neg.f32 %f546, %f1090;
+ selp.f32 %f547, %f546, 0f00000000, %p45;
+ neg.f32 %f548, %f1091;
+ selp.f32 %f549, %f1089, %f548, %p45;
+ selp.f32 %f550, 0f00000000, %f1090, %p45;
+ mul.f32 %f551, %f549, %f549;
+ fma.rn.f32 %f552, %f547, %f547, %f551;
+ fma.rn.f32 %f553, %f550, %f550, %f552;
+ sqrt.rn.f32 %f554, %f553;
+ rcp.rn.f32 %f555, %f554;
+ mul.f32 %f101, %f547, %f555;
+ mul.f32 %f102, %f549, %f555;
+ mul.f32 %f103, %f550, %f555;
+ mov.f32 %f1129, 0f00000000;
+ setp.lt.s32 %p46, %r1, 1;
+ mov.f32 %f1130, %f1129;
+ mov.f32 %f1131, %f1129;
+ mov.f32 %f1132, %f1129;
+ mov.f32 %f1133, %f1129;
+ @%p46 bra BB0_82;
+
+ mad.lo.s32 %r410, %r153, 1664525, 1013904223;
+ cvt.rn.f32.s32 %f561, %r1;
+ rcp.rn.f32 %f104, %f561;
+ add.u64 %rd82, %SP, 8;
+ cvta.to.local.u64 %rd5, %rd82;
+ mul.f32 %f105, %f12, 0f3456BF95;
+ mul.f32 %f106, %f13, 0f3456BF95;
+ mul.f32 %f107, %f14, 0f3456BF95;
+ add.u64 %rd83, %SP, 0;
+ cvta.to.local.u64 %rd6, %rd83;
+ mul.f32 %f562, %f1089, %f102;
+ mul.f32 %f563, %f1090, %f101;
+ sub.f32 %f108, %f563, %f562;
+ mul.f32 %f564, %f1091, %f101;
+ mul.f32 %f565, %f1089, %f103;
+ sub.f32 %f109, %f565, %f564;
+ mul.f32 %f566, %f1090, %f103;
+ mul.f32 %f567, %f1091, %f102;
+ sub.f32 %f110, %f567, %f566;
+ mov.f32 %f1129, 0f00000000;
+ mov.u32 %r177, 0;
+ abs.f32 %f568, %f106;
+ abs.f32 %f569, %f105;
+ max.f32 %f570, %f569, %f568;
+ abs.f32 %f571, %f107;
+ max.f32 %f572, %f570, %f571;
+ mov.u32 %r407, %r177;
+ mov.f32 %f1130, %f1129;
+ mov.f32 %f1131, %f1129;
+ mov.f32 %f1132, %f1129;
+ mov.f32 %f1133, %f1129;
+
+BB0_33:
+ cvt.rn.f32.s32 %f116, %r407;
+ max.f32 %f117, %f572, %f275;
+ mov.u32 %r409, %r177;
+
+BB0_34:
+ mad.lo.s32 %r179, %r410, 1664525, 1013904223;
+ and.b32 %r180, %r179, 16777215;
+ cvt.rn.f32.u32 %f574, %r180;
+ fma.rn.f32 %f575, %f574, 0f33800000, %f116;
+ mul.f32 %f123, %f104, %f575;
+ mad.lo.s32 %r410, %r179, 1664525, 1013904223;
+ and.b32 %r181, %r410, 16777215;
+ cvt.rn.f32.u32 %f576, %r181;
+ cvt.rn.f32.s32 %f577, %r409;
+ fma.rn.f32 %f578, %f576, 0f33800000, %f577;
+ mul.f32 %f579, %f104, %f578;
+ mul.f32 %f580, %f123, %f123;
+ sub.f32 %f582, %f539, %f580;
+ mov.f32 %f583, 0f00000000;
+ max.f32 %f584, %f583, %f582;
+ sqrt.rn.f32 %f124, %f584;
+ mul.f32 %f1140, %f579, 0f40C90FDB;
+ abs.f32 %f126, %f1140;
+ setp.neu.f32 %p47, %f126, 0f7F800000;
+ mov.f32 %f1134, %f1140;
+ @%p47 bra BB0_36;
+
+ mul.rn.f32 %f1134, %f1140, %f583;
+
+BB0_36:
+ mul.f32 %f586, %f1134, 0f3F22F983;
+ cvt.rni.s32.f32 %r420, %f586;
+ cvt.rn.f32.s32 %f587, %r420;
+ neg.f32 %f588, %f587;
+ mov.f32 %f589, 0f3FC90FDA;
+ fma.rn.f32 %f590, %f588, %f589, %f1134;
+ mov.f32 %f591, 0f33A22168;
+ fma.rn.f32 %f592, %f588, %f591, %f590;
+ mov.f32 %f593, 0f27C234C5;
+ fma.rn.f32 %f1135, %f588, %f593, %f592;
+ abs.f32 %f594, %f1134;
+ setp.leu.f32 %p48, %f594, 0f47CE4780;
+ @%p48 bra BB0_47;
+
+ mov.b32 %r25, %f1134;
+ shr.u32 %r26, %r25, 23;
+ shl.b32 %r184, %r25, 8;
+ or.b32 %r27, %r184, -2147483648;
+ mov.u32 %r411, 0;
+ mov.u64 %rd288, 0;
+ mov.u64 %rd287, %rd5;
+ mov.u32 %r412, %r411;
+
+BB0_38:
+ .pragma "nounroll";
+ shl.b64 %rd85, %rd288, 2;
+ mov.u64 %rd86, __cudart_i2opi_f;
+ add.s64 %rd87, %rd86, %rd85;
+ ld.const.u32 %r187, [%rd87];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r185, %r187, %r27, %r412;
+ madc.hi.u32 %r412, %r187, %r27, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd287], %r185;
+ add.s32 %r411, %r411, 1;
+ cvt.s64.s32 %rd288, %r411;
+ mul.wide.s32 %rd88, %r411, 4;
+ add.s64 %rd287, %rd5, %rd88;
+ setp.ne.s32 %p49, %r411, 6;
+ @%p49 bra BB0_38;
+
+ and.b32 %r190, %r26, 255;
+ add.s32 %r191, %r190, -128;
+ shr.u32 %r192, %r191, 5;
+ and.b32 %r32, %r25, -2147483648;
+ st.local.u32 [%rd5+24], %r412;
+ mov.u32 %r193, 6;
+ sub.s32 %r194, %r193, %r192;
+ mul.wide.s32 %rd89, %r194, 4;
+ add.s64 %rd12, %rd5, %rd89;
+ ld.local.u32 %r413, [%rd12];
+ ld.local.u32 %r414, [%rd12+-4];
+ and.b32 %r35, %r26, 31;
+ setp.eq.s32 %p50, %r35, 0;
+ @%p50 bra BB0_41;
+
+ mov.u32 %r195, 32;
+ sub.s32 %r196, %r195, %r35;
+ shr.u32 %r197, %r414, %r196;
+ shl.b32 %r198, %r413, %r35;
+ add.s32 %r413, %r197, %r198;
+ ld.local.u32 %r199, [%rd12+-8];
+ shr.u32 %r200, %r199, %r196;
+ shl.b32 %r201, %r414, %r35;
+ add.s32 %r414, %r200, %r201;
+
+BB0_41:
+ shr.u32 %r202, %r414, 30;
+ shl.b32 %r203, %r413, 2;
+ add.s32 %r415, %r202, %r203;
+ shl.b32 %r41, %r414, 2;
+ shr.u32 %r204, %r415, 31;
+ shr.u32 %r205, %r413, 30;
+ add.s32 %r42, %r204, %r205;
+ setp.eq.s32 %p51, %r204, 0;
+ @%p51 bra BB0_42;
+ bra.uni BB0_43;
+
+BB0_42:
+ mov.u32 %r416, %r32;
+ mov.u32 %r417, %r41;
+ bra.uni BB0_44;
+
+BB0_43:
+ not.b32 %r206, %r415;
+ neg.s32 %r417, %r41;
+ setp.eq.s32 %p52, %r41, 0;
+ selp.u32 %r207, 1, 0, %p52;
+ add.s32 %r415, %r207, %r206;
+ xor.b32 %r416, %r32, -2147483648;
+
+BB0_44:
+ clz.b32 %r419, %r415;
+ setp.eq.s32 %p53, %r419, 0;
+ shl.b32 %r208, %r415, %r419;
+ mov.u32 %r209, 32;
+ sub.s32 %r210, %r209, %r419;
+ shr.u32 %r211, %r417, %r210;
+ add.s32 %r212, %r211, %r208;
+ selp.b32 %r50, %r415, %r212, %p53;
+ mov.u32 %r213, -921707870;
+ mul.hi.u32 %r418, %r50, %r213;
+ setp.eq.s32 %p54, %r32, 0;
+ neg.s32 %r214, %r42;
+ selp.b32 %r420, %r42, %r214, %p54;
+ setp.lt.s32 %p55, %r418, 1;
+ @%p55 bra BB0_46;
+
+ mul.lo.s32 %r215, %r50, -921707870;
+ shr.u32 %r216, %r215, 31;
+ shl.b32 %r217, %r418, 1;
+ add.s32 %r418, %r216, %r217;
+ add.s32 %r419, %r419, 1;
+
+BB0_46:
+ mov.u32 %r218, 126;
+ sub.s32 %r219, %r218, %r419;
+ shl.b32 %r220, %r219, 23;
+ add.s32 %r221, %r418, 1;
+ shr.u32 %r222, %r221, 7;
+ add.s32 %r223, %r222, 1;
+ shr.u32 %r224, %r223, 1;
+ add.s32 %r225, %r224, %r220;
+ or.b32 %r226, %r225, %r416;
+ mov.b32 %f1135, %r226;
+
+BB0_47:
+ mul.rn.f32 %f132, %f1135, %f1135;
+ add.s32 %r58, %r420, 1;
+ and.b32 %r59, %r58, 1;
+ setp.eq.s32 %p56, %r59, 0;
+ @%p56 bra BB0_49;
+ bra.uni BB0_48;
+
+BB0_49:
+ mov.f32 %f597, 0f3C08839E;
+ mov.f32 %f598, 0fB94CA1F9;
+ fma.rn.f32 %f1136, %f598, %f132, %f597;
+ bra.uni BB0_50;
+
+BB0_48:
+ mov.f32 %f595, 0fBAB6061A;
+ mov.f32 %f596, 0f37CCF5CE;
+ fma.rn.f32 %f1136, %f596, %f132, %f595;
+
+BB0_50:
+ @%p56 bra BB0_52;
+ bra.uni BB0_51;
+
+BB0_52:
+ mov.f32 %f602, 0fBE2AAAA3;
+ fma.rn.f32 %f603, %f1136, %f132, %f602;
+ fma.rn.f32 %f1137, %f603, %f132, %f583;
+ bra.uni BB0_53;
+
+BB0_51:
+ mov.f32 %f599, 0f3D2AAAA5;
+ fma.rn.f32 %f600, %f1136, %f132, %f599;
+ mov.f32 %f601, 0fBF000000;
+ fma.rn.f32 %f1137, %f600, %f132, %f601;
+
+BB0_53:
+ fma.rn.f32 %f1138, %f1137, %f1135, %f1135;
+ @%p56 bra BB0_55;
+
+ fma.rn.f32 %f1138, %f1137, %f132, %f539;
+
+BB0_55:
+ and.b32 %r227, %r58, 2;
+ setp.eq.s32 %p59, %r227, 0;
+ @%p59 bra BB0_57;
+
+ mov.f32 %f607, 0fBF800000;
+ fma.rn.f32 %f1138, %f1138, %f607, %f583;
+
+BB0_57:
+ @%p47 bra BB0_59;
+
+ mul.rn.f32 %f1140, %f1140, %f583;
+
+BB0_59:
+ mul.f32 %f609, %f1140, 0f3F22F983;
+ cvt.rni.s32.f32 %r430, %f609;
+ cvt.rn.f32.s32 %f610, %r430;
+ neg.f32 %f611, %f610;
+ fma.rn.f32 %f613, %f611, %f589, %f1140;
+ fma.rn.f32 %f615, %f611, %f591, %f613;
+ fma.rn.f32 %f1141, %f611, %f593, %f615;
+ abs.f32 %f617, %f1140;
+ setp.leu.f32 %p61, %f617, 0f47CE4780;
+ @%p61 bra BB0_70;
+
+ mov.b32 %r61, %f1140;
+ shr.u32 %r62, %r61, 23;
+ shl.b32 %r230, %r61, 8;
+ or.b32 %r63, %r230, -2147483648;
+ mov.u32 %r421, 0;
+ mov.u64 %rd289, %rd5;
+ mov.u64 %rd290, %rd29;
+ mov.u32 %r422, %r421;
+
+BB0_61:
+ .pragma "nounroll";
+ shl.b64 %rd91, %rd290, 2;
+ mov.u64 %rd92, __cudart_i2opi_f;
+ add.s64 %rd93, %rd92, %rd91;
+ ld.const.u32 %r233, [%rd93];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r231, %r233, %r63, %r422;
+ madc.hi.u32 %r422, %r233, %r63, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd289], %r231;
+ add.s32 %r421, %r421, 1;
+ cvt.s64.s32 %rd290, %r421;
+ mul.wide.s32 %rd94, %r421, 4;
+ add.s64 %rd289, %rd5, %rd94;
+ setp.ne.s32 %p62, %r421, 6;
+ @%p62 bra BB0_61;
+
+ and.b32 %r236, %r62, 255;
+ add.s32 %r237, %r236, -128;
+ shr.u32 %r238, %r237, 5;
+ and.b32 %r68, %r61, -2147483648;
+ st.local.u32 [%rd5+24], %r422;
+ mov.u32 %r239, 6;
+ sub.s32 %r240, %r239, %r238;
+ mul.wide.s32 %rd95, %r240, 4;
+ add.s64 %rd18, %rd5, %rd95;
+ ld.local.u32 %r423, [%rd18];
+ ld.local.u32 %r424, [%rd18+-4];
+ and.b32 %r71, %r62, 31;
+ setp.eq.s32 %p63, %r71, 0;
+ @%p63 bra BB0_64;
+
+ mov.u32 %r241, 32;
+ sub.s32 %r242, %r241, %r71;
+ shr.u32 %r243, %r424, %r242;
+ shl.b32 %r244, %r423, %r71;
+ add.s32 %r423, %r243, %r244;
+ ld.local.u32 %r245, [%rd18+-8];
+ shr.u32 %r246, %r245, %r242;
+ shl.b32 %r247, %r424, %r71;
+ add.s32 %r424, %r246, %r247;
+
+BB0_64:
+ shr.u32 %r248, %r424, 30;
+ shl.b32 %r249, %r423, 2;
+ add.s32 %r425, %r248, %r249;
+ shl.b32 %r77, %r424, 2;
+ shr.u32 %r250, %r425, 31;
+ shr.u32 %r251, %r423, 30;
+ add.s32 %r78, %r250, %r251;
+ setp.eq.s32 %p64, %r250, 0;
+ @%p64 bra BB0_65;
+ bra.uni BB0_66;
+
+BB0_65:
+ mov.u32 %r426, %r68;
+ mov.u32 %r427, %r77;
+ bra.uni BB0_67;
+
+BB0_66:
+ not.b32 %r252, %r425;
+ neg.s32 %r427, %r77;
+ setp.eq.s32 %p65, %r77, 0;
+ selp.u32 %r253, 1, 0, %p65;
+ add.s32 %r425, %r253, %r252;
+ xor.b32 %r426, %r68, -2147483648;
+
+BB0_67:
+ clz.b32 %r429, %r425;
+ setp.eq.s32 %p66, %r429, 0;
+ shl.b32 %r254, %r425, %r429;
+ mov.u32 %r255, 32;
+ sub.s32 %r256, %r255, %r429;
+ shr.u32 %r257, %r427, %r256;
+ add.s32 %r258, %r257, %r254;
+ selp.b32 %r86, %r425, %r258, %p66;
+ mov.u32 %r259, -921707870;
+ mul.hi.u32 %r428, %r86, %r259;
+ setp.eq.s32 %p67, %r68, 0;
+ neg.s32 %r260, %r78;
+ selp.b32 %r430, %r78, %r260, %p67;
+ setp.lt.s32 %p68, %r428, 1;
+ @%p68 bra BB0_69;
+
+ mul.lo.s32 %r261, %r86, -921707870;
+ shr.u32 %r262, %r261, 31;
+ shl.b32 %r263, %r428, 1;
+ add.s32 %r428, %r262, %r263;
+ add.s32 %r429, %r429, 1;
+
+BB0_69:
+ mov.u32 %r264, 126;
+ sub.s32 %r265, %r264, %r429;
+ shl.b32 %r266, %r265, 23;
+ add.s32 %r267, %r428, 1;
+ shr.u32 %r268, %r267, 7;
+ add.s32 %r269, %r268, 1;
+ shr.u32 %r270, %r269, 1;
+ add.s32 %r271, %r270, %r266;
+ or.b32 %r272, %r271, %r426;
+ mov.b32 %f1141, %r272;
+
+BB0_70:
+ mul.rn.f32 %f149, %f1141, %f1141;
+ and.b32 %r94, %r430, 1;
+ setp.eq.s32 %p69, %r94, 0;
+ @%p69 bra BB0_72;
+ bra.uni BB0_71;
+
+BB0_72:
+ mov.f32 %f620, 0f3C08839E;
+ mov.f32 %f621, 0fB94CA1F9;
+ fma.rn.f32 %f1142, %f621, %f149, %f620;
+ bra.uni BB0_73;
+
+BB0_71:
+ mov.f32 %f618, 0fBAB6061A;
+ mov.f32 %f619, 0f37CCF5CE;
+ fma.rn.f32 %f1142, %f619, %f149, %f618;
+
+BB0_73:
+ @%p69 bra BB0_75;
+ bra.uni BB0_74;
+
+BB0_75:
+ mov.f32 %f625, 0fBE2AAAA3;
+ fma.rn.f32 %f626, %f1142, %f149, %f625;
+ fma.rn.f32 %f1143, %f626, %f149, %f583;
+ bra.uni BB0_76;
+
+BB0_74:
+ mov.f32 %f622, 0f3D2AAAA5;
+ fma.rn.f32 %f623, %f1142, %f149, %f622;
+ mov.f32 %f624, 0fBF000000;
+ fma.rn.f32 %f1143, %f623, %f149, %f624;
+
+BB0_76:
+ fma.rn.f32 %f1144, %f1143, %f1141, %f1141;
+ @%p69 bra BB0_78;
+
+ fma.rn.f32 %f1144, %f1143, %f149, %f539;
+
+BB0_78:
+ and.b32 %r273, %r430, 2;
+ setp.eq.s32 %p72, %r273, 0;
+ @%p72 bra BB0_80;
+
+ mov.f32 %f630, 0fBF800000;
+ fma.rn.f32 %f1144, %f1144, %f630, %f583;
+
+BB0_80:
+ mul.f32 %f639, %f124, %f1138;
+ mul.f32 %f640, %f124, %f1144;
+ mul.f32 %f641, %f101, %f640;
+ mul.f32 %f642, %f102, %f640;
+ mul.f32 %f643, %f103, %f640;
+ fma.rn.f32 %f644, %f110, %f639, %f641;
+ fma.rn.f32 %f645, %f109, %f639, %f642;
+ fma.rn.f32 %f646, %f108, %f639, %f643;
+ fma.rn.f32 %f634, %f1089, %f123, %f644;
+ fma.rn.f32 %f635, %f1090, %f123, %f645;
+ fma.rn.f32 %f636, %f1091, %f123, %f646;
+ mov.u32 %r275, 0;
+ st.local.u32 [%rd6], %r275;
+ ld.global.u32 %r274, [root];
+ mov.f32 %f638, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r274, %f12, %f13, %f14, %f634, %f635, %f636, %r275, %f117, %f638, %rd83, %r108);
+ // inline asm
+ ld.local.f32 %f647, [%rd6];
+ setp.lt.f32 %p73, %f647, 0f00000000;
+ selp.f32 %f648, 0f00000000, %f647, %p73;
+ selp.f32 %f649, 0f00000000, 0f3F800000, %p73;
+ add.f32 %f1129, %f1129, %f649;
+ mul.f32 %f650, %f24, %f635;
+ fma.rn.f32 %f651, %f22, %f634, %f650;
+ fma.rn.f32 %f652, %f26, %f636, %f651;
+ cvt.sat.f32.f32 %f653, %f652;
+ fma.rn.f32 %f1132, %f648, %f653, %f1132;
+ mul.f32 %f654, %f34, %f635;
+ fma.rn.f32 %f655, %f33, %f634, %f654;
+ fma.rn.f32 %f656, %f35, %f636, %f655;
+ cvt.sat.f32.f32 %f657, %f656;
+ fma.rn.f32 %f1131, %f648, %f657, %f1131;
+ mul.f32 %f658, %f43, %f635;
+ fma.rn.f32 %f659, %f42, %f634, %f658;
+ fma.rn.f32 %f660, %f44, %f636, %f659;
+ cvt.sat.f32.f32 %f661, %f660;
+ fma.rn.f32 %f1130, %f648, %f661, %f1130;
+ mul.f32 %f662, %f1090, %f635;
+ fma.rn.f32 %f663, %f1089, %f634, %f662;
+ fma.rn.f32 %f664, %f1091, %f636, %f663;
+ cvt.sat.f32.f32 %f665, %f664;
+ fma.rn.f32 %f1133, %f648, %f665, %f1133;
+ add.s32 %r409, %r409, 1;
+ setp.lt.s32 %p74, %r409, %r1;
+ @%p74 bra BB0_34;
+
+ add.s32 %r407, %r407, 1;
+ setp.lt.s32 %p75, %r407, %r1;
+ @%p75 bra BB0_33;
+
+BB0_82:
+ mul.lo.s32 %r277, %r1, %r1;
+ cvt.rn.f32.s32 %f666, %r277;
+ div.rn.f32 %f667, %f1133, %f666;
+ div.rn.f32 %f1155, %f1129, %f666;
+ div.rn.f32 %f1152, %f1132, %f666;
+ div.rn.f32 %f1153, %f1131, %f666;
+ div.rn.f32 %f1154, %f1130, %f666;
+ add.f32 %f1151, %f667, %f667;
+
+BB0_83:
+ ld.global.u32 %r432, [imageEnabled];
+ and.b32 %r278, %r432, 8;
+ setp.eq.s32 %p76, %r278, 0;
+ @%p76 bra BB0_96;
+
+ mov.u32 %r391, 2;
+ cvt.u64.u32 %rd99, %r3;
+ cvt.u64.u32 %rd100, %r4;
+ mov.u64 %rd103, image_Mask;
+ cvta.global.u64 %rd98, %rd103;
+ // inline asm
+ call (%rd97), _rt_buffer_get_64, (%rd98, %r391, %r391, %rd99, %rd100, %rd29, %rd29);
+ // inline asm
+ mov.f32 %f670, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f671, %f670;
+ fma.rn.f32 %f672, %f671, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f181, %f672;
+ abs.f32 %f182, %f1155;
+ setp.lt.f32 %p77, %f182, 0f00800000;
+ mul.f32 %f673, %f182, 0f4B800000;
+ selp.f32 %f674, 0fC3170000, 0fC2FE0000, %p77;
+ selp.f32 %f675, %f673, %f182, %p77;
+ mov.b32 %r281, %f675;
+ and.b32 %r282, %r281, 8388607;
+ or.b32 %r283, %r282, 1065353216;
+ mov.b32 %f676, %r283;
+ shr.u32 %r284, %r281, 23;
+ cvt.rn.f32.u32 %f677, %r284;
+ add.f32 %f678, %f674, %f677;
+ setp.gt.f32 %p78, %f676, 0f3FB504F3;
+ mul.f32 %f679, %f676, 0f3F000000;
+ add.f32 %f680, %f678, 0f3F800000;
+ selp.f32 %f681, %f679, %f676, %p78;
+ selp.f32 %f682, %f680, %f678, %p78;
+ add.f32 %f683, %f681, 0fBF800000;
+ add.f32 %f669, %f681, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f668,%f669;
+ // inline asm
+ add.f32 %f684, %f683, %f683;
+ mul.f32 %f685, %f668, %f684;
+ mul.f32 %f686, %f685, %f685;
+ mov.f32 %f687, 0f3C4CAF63;
+ mov.f32 %f688, 0f3B18F0FE;
+ fma.rn.f32 %f689, %f688, %f686, %f687;
+ mov.f32 %f690, 0f3DAAAABD;
+ fma.rn.f32 %f691, %f689, %f686, %f690;
+ mul.rn.f32 %f692, %f691, %f686;
+ mul.rn.f32 %f693, %f692, %f685;
+ sub.f32 %f694, %f683, %f685;
+ neg.f32 %f695, %f685;
+ add.f32 %f696, %f694, %f694;
+ fma.rn.f32 %f697, %f695, %f683, %f696;
+ mul.rn.f32 %f698, %f668, %f697;
+ add.f32 %f699, %f693, %f685;
+ sub.f32 %f700, %f685, %f699;
+ add.f32 %f701, %f693, %f700;
+ add.f32 %f702, %f698, %f701;
+ add.f32 %f703, %f699, %f702;
+ sub.f32 %f704, %f699, %f703;
+ add.f32 %f705, %f702, %f704;
+ mov.f32 %f706, 0f3F317200;
+ mul.rn.f32 %f707, %f682, %f706;
+ mov.f32 %f708, 0f35BFBE8E;
+ mul.rn.f32 %f709, %f682, %f708;
+ add.f32 %f710, %f707, %f703;
+ sub.f32 %f711, %f707, %f710;
+ add.f32 %f712, %f703, %f711;
+ add.f32 %f713, %f705, %f712;
+ add.f32 %f714, %f709, %f713;
+ add.f32 %f715, %f710, %f714;
+ sub.f32 %f716, %f710, %f715;
+ add.f32 %f717, %f714, %f716;
+ mov.f32 %f718, 0f3EE8BA2E;
+ mul.rn.f32 %f719, %f718, %f715;
+ neg.f32 %f720, %f719;
+ fma.rn.f32 %f721, %f718, %f715, %f720;
+ fma.rn.f32 %f722, %f718, %f717, %f721;
+ mov.f32 %f723, 0f00000000;
+ fma.rn.f32 %f724, %f723, %f715, %f722;
+ add.rn.f32 %f725, %f719, %f724;
+ neg.f32 %f726, %f725;
+ add.rn.f32 %f727, %f719, %f726;
+ add.rn.f32 %f728, %f727, %f724;
+ mov.b32 %r285, %f725;
+ setp.eq.s32 %p79, %r285, 1118925336;
+ add.s32 %r286, %r285, -1;
+ mov.b32 %f729, %r286;
+ add.f32 %f730, %f728, 0f37000000;
+ selp.f32 %f731, %f729, %f725, %p79;
+ selp.f32 %f183, %f730, %f728, %p79;
+ mul.f32 %f732, %f731, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f733, %f732;
+ mov.f32 %f734, 0fBF317200;
+ fma.rn.f32 %f735, %f733, %f734, %f731;
+ mov.f32 %f736, 0fB5BFBE8E;
+ fma.rn.f32 %f737, %f733, %f736, %f735;
+ mul.f32 %f738, %f737, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f739, %f738;
+ add.f32 %f740, %f733, 0f00000000;
+ ex2.approx.f32 %f741, %f740;
+ mul.f32 %f742, %f739, %f741;
+ setp.lt.f32 %p80, %f731, 0fC2D20000;
+ selp.f32 %f743, 0f00000000, %f742, %p80;
+ setp.gt.f32 %p81, %f731, 0f42D20000;
+ selp.f32 %f1156, 0f7F800000, %f743, %p81;
+ setp.eq.f32 %p82, %f1156, 0f7F800000;
+ @%p82 bra BB0_86;
+
+ fma.rn.f32 %f1156, %f1156, %f183, %f1156;
+
+BB0_86:
+ setp.lt.f32 %p83, %f1155, 0f00000000;
+ setp.eq.f32 %p84, %f181, 0f3F800000;
+ and.pred %p3, %p83, %p84;
+ mov.b32 %r287, %f1156;
+ xor.b32 %r288, %r287, -2147483648;
+ mov.b32 %f744, %r288;
+ selp.f32 %f1158, %f744, %f1156, %p3;
+ setp.eq.f32 %p85, %f1155, 0f00000000;
+ @%p85 bra BB0_89;
+ bra.uni BB0_87;
+
+BB0_89:
+ add.f32 %f747, %f1155, %f1155;
+ selp.f32 %f1158, %f747, 0f00000000, %p84;
+ bra.uni BB0_90;
+
+BB0_151:
+ mov.u64 %rd224, image_HDR;
+ cvta.global.u64 %rd219, %rd224;
+ mov.u32 %r367, 8;
+ mov.u64 %rd223, 0;
+ // inline asm
+ call (%rd218), _rt_buffer_get_64, (%rd219, %r107, %r367, %rd22, %rd23, %rd223, %rd223);
+ // inline asm
+ mov.f32 %f1058, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f1058;}
+
+ // inline asm
+ mov.u16 %rs117, 0;
+ st.v4.u16 [%rd218], {%rs116, %rs116, %rs116, %rs117};
+
+BB0_152:
+ ld.global.u32 %r368, [additive];
+ setp.eq.s32 %p152, %r368, 0;
+ @%p152 bra BB0_154;
+
+ mov.u64 %rd237, image_RNM0;
+ cvta.global.u64 %rd226, %rd237;
+ mov.u32 %r372, 8;
+ mov.u64 %rd236, 0;
+ // inline asm
+ call (%rd225), _rt_buffer_get_64, (%rd226, %r107, %r372, %rd22, %rd23, %rd236, %rd236);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd225];
+ // inline asm
+ { cvt.f32.f16 %f1059, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1060, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1061, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd231), _rt_buffer_get_64, (%rd226, %r107, %r372, %rd22, %rd23, %rd236, %rd236);
+ // inline asm
+ add.f32 %f1062, %f1059, 0f00000000;
+ add.f32 %f1063, %f1060, 0f00000000;
+ add.f32 %f1064, %f1061, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f1064;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f1063;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f1062;}
+
+ // inline asm
+ mov.u16 %rs128, 0;
+ st.v4.u16 [%rd231], {%rs121, %rs122, %rs123, %rs128};
+ bra.uni BB0_155;
+
+BB0_154:
+ mov.u64 %rd244, image_RNM0;
+ cvta.global.u64 %rd239, %rd244;
+ mov.u32 %r374, 8;
+ mov.u64 %rd243, 0;
+ // inline asm
+ call (%rd238), _rt_buffer_get_64, (%rd239, %r107, %r374, %rd22, %rd23, %rd243, %rd243);
+ // inline asm
+ mov.f32 %f1065, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f1065;}
+
+ // inline asm
+ mov.u16 %rs130, 0;
+ st.v4.u16 [%rd238], {%rs129, %rs129, %rs129, %rs130};
+
+BB0_155:
+ ld.global.u32 %r375, [additive];
+ setp.eq.s32 %p153, %r375, 0;
+ @%p153 bra BB0_157;
+
+ mov.u64 %rd257, image_RNM1;
+ cvta.global.u64 %rd246, %rd257;
+ mov.u32 %r379, 8;
+ mov.u64 %rd256, 0;
+ // inline asm
+ call (%rd245), _rt_buffer_get_64, (%rd246, %r107, %r379, %rd22, %rd23, %rd256, %rd256);
+ // inline asm
+ ld.v4.u16 {%rs137, %rs138, %rs139, %rs140}, [%rd245];
+ // inline asm
+ { cvt.f32.f16 %f1066, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1067, %rs138;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1068, %rs139;}
+
+ // inline asm
+ // inline asm
+ call (%rd251), _rt_buffer_get_64, (%rd246, %r107, %r379, %rd22, %rd23, %rd256, %rd256);
+ // inline asm
+ add.f32 %f1069, %f1066, 0f00000000;
+ add.f32 %f1070, %f1067, 0f00000000;
+ add.f32 %f1071, %f1068, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs136, %f1071;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f1070;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f1069;}
+
+ // inline asm
+ mov.u16 %rs141, 0;
+ st.v4.u16 [%rd251], {%rs134, %rs135, %rs136, %rs141};
+ bra.uni BB0_158;
+
+BB0_157:
+ mov.u64 %rd264, image_RNM1;
+ cvta.global.u64 %rd259, %rd264;
+ mov.u32 %r381, 8;
+ mov.u64 %rd263, 0;
+ // inline asm
+ call (%rd258), _rt_buffer_get_64, (%rd259, %r107, %r381, %rd22, %rd23, %rd263, %rd263);
+ // inline asm
+ mov.f32 %f1072, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs142, %f1072;}
+
+ // inline asm
+ mov.u16 %rs143, 0;
+ st.v4.u16 [%rd258], {%rs142, %rs142, %rs142, %rs143};
+
+BB0_158:
+ ld.global.u32 %r382, [additive];
+ setp.eq.s32 %p154, %r382, 0;
+ @%p154 bra BB0_160;
+
+ mov.u64 %rd277, image_RNM2;
+ cvta.global.u64 %rd266, %rd277;
+ mov.u32 %r386, 8;
+ mov.u64 %rd276, 0;
+ // inline asm
+ call (%rd265), _rt_buffer_get_64, (%rd266, %r107, %r386, %rd22, %rd23, %rd276, %rd276);
+ // inline asm
+ ld.v4.u16 {%rs150, %rs151, %rs152, %rs153}, [%rd265];
+ // inline asm
+ { cvt.f32.f16 %f1073, %rs150;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1074, %rs151;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1075, %rs152;}
+
+ // inline asm
+ // inline asm
+ call (%rd271), _rt_buffer_get_64, (%rd266, %r107, %r386, %rd22, %rd23, %rd276, %rd276);
+ // inline asm
+ add.f32 %f1076, %f1073, 0f00000000;
+ add.f32 %f1077, %f1074, 0f00000000;
+ add.f32 %f1078, %f1075, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs149, %f1078;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs148, %f1077;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f1076;}
+
+ // inline asm
+ mov.u16 %rs154, 0;
+ st.v4.u16 [%rd271], {%rs147, %rs148, %rs149, %rs154};
+ bra.uni BB0_161;
+
+BB0_160:
+ mov.u64 %rd284, image_RNM2;
+ cvta.global.u64 %rd279, %rd284;
+ mov.u32 %r388, 8;
+ mov.u64 %rd283, 0;
+ // inline asm
+ call (%rd278), _rt_buffer_get_64, (%rd279, %r107, %r388, %rd22, %rd23, %rd283, %rd283);
+ // inline asm
+ mov.f32 %f1079, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs155, %f1079;}
+
+ // inline asm
+ mov.u16 %rs156, 0;
+ st.v4.u16 [%rd278], {%rs155, %rs155, %rs155, %rs156};
+ bra.uni BB0_161;
+
+BB0_87:
+ setp.geu.f32 %p86, %f1155, 0f00000000;
+ @%p86 bra BB0_90;
+
+ cvt.rzi.f32.f32 %f746, %f718;
+ setp.neu.f32 %p87, %f746, 0f3EE8BA2E;
+ selp.f32 %f1158, 0f7FFFFFFF, %f1158, %p87;
+
+BB0_90:
+ add.f32 %f748, %f182, 0f3EE8BA2E;
+ mov.b32 %r289, %f748;
+ setp.lt.s32 %p89, %r289, 2139095040;
+ @%p89 bra BB0_95;
+
+ setp.gtu.f32 %p90, %f182, 0f7F800000;
+ @%p90 bra BB0_94;
+ bra.uni BB0_92;
+
+BB0_94:
+ add.f32 %f1158, %f1155, 0f3EE8BA2E;
+ bra.uni BB0_95;
+
+BB0_92:
+ setp.neu.f32 %p91, %f182, 0f7F800000;
+ @%p91 bra BB0_95;
+
+ selp.f32 %f1158, 0fFF800000, 0f7F800000, %p3;
+
+BB0_95:
+ mul.f32 %f749, %f1158, 0f437F0000;
+ setp.eq.f32 %p92, %f1155, 0f3F800000;
+ selp.f32 %f750, 0f437F0000, %f749, %p92;
+ cvt.rzi.u32.f32 %r290, %f750;
+ cvt.u16.u32 %rs40, %r290;
+ mov.u16 %rs41, 255;
+ st.v2.u8 [%rd97], {%rs40, %rs41};
+ ld.global.u32 %r432, [imageEnabled];
+
+BB0_96:
+ ld.global.f32 %f751, [lightColor];
+ mul.f32 %f194, %f1151, %f751;
+ ld.global.f32 %f752, [lightColor+4];
+ mul.f32 %f195, %f1151, %f752;
+ ld.global.f32 %f753, [lightColor+8];
+ mul.f32 %f196, %f1151, %f753;
+ and.b32 %r291, %r432, 1;
+ setp.eq.b32 %p93, %r291, 1;
+ @!%p93 bra BB0_131;
+ bra.uni BB0_97;
+
+BB0_97:
+ mov.f32 %f756, 0f3E666666;
+ cvt.rzi.f32.f32 %f757, %f756;
+ fma.rn.f32 %f758, %f757, 0fC0000000, 0f3EE66666;
+ abs.f32 %f197, %f758;
+ abs.f32 %f198, %f194;
+ setp.lt.f32 %p94, %f198, 0f00800000;
+ mul.f32 %f759, %f198, 0f4B800000;
+ selp.f32 %f760, 0fC3170000, 0fC2FE0000, %p94;
+ selp.f32 %f761, %f759, %f198, %p94;
+ mov.b32 %r292, %f761;
+ and.b32 %r293, %r292, 8388607;
+ or.b32 %r294, %r293, 1065353216;
+ mov.b32 %f762, %r294;
+ shr.u32 %r295, %r292, 23;
+ cvt.rn.f32.u32 %f763, %r295;
+ add.f32 %f764, %f760, %f763;
+ setp.gt.f32 %p95, %f762, 0f3FB504F3;
+ mul.f32 %f765, %f762, 0f3F000000;
+ add.f32 %f766, %f764, 0f3F800000;
+ selp.f32 %f767, %f765, %f762, %p95;
+ selp.f32 %f768, %f766, %f764, %p95;
+ add.f32 %f769, %f767, 0fBF800000;
+ add.f32 %f755, %f767, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f754,%f755;
+ // inline asm
+ add.f32 %f770, %f769, %f769;
+ mul.f32 %f771, %f754, %f770;
+ mul.f32 %f772, %f771, %f771;
+ mov.f32 %f773, 0f3C4CAF63;
+ mov.f32 %f774, 0f3B18F0FE;
+ fma.rn.f32 %f775, %f774, %f772, %f773;
+ mov.f32 %f776, 0f3DAAAABD;
+ fma.rn.f32 %f777, %f775, %f772, %f776;
+ mul.rn.f32 %f778, %f777, %f772;
+ mul.rn.f32 %f779, %f778, %f771;
+ sub.f32 %f780, %f769, %f771;
+ neg.f32 %f781, %f771;
+ add.f32 %f782, %f780, %f780;
+ fma.rn.f32 %f783, %f781, %f769, %f782;
+ mul.rn.f32 %f784, %f754, %f783;
+ add.f32 %f785, %f779, %f771;
+ sub.f32 %f786, %f771, %f785;
+ add.f32 %f787, %f779, %f786;
+ add.f32 %f788, %f784, %f787;
+ add.f32 %f789, %f785, %f788;
+ sub.f32 %f790, %f785, %f789;
+ add.f32 %f791, %f788, %f790;
+ mov.f32 %f792, 0f3F317200;
+ mul.rn.f32 %f793, %f768, %f792;
+ mov.f32 %f794, 0f35BFBE8E;
+ mul.rn.f32 %f795, %f768, %f794;
+ add.f32 %f796, %f793, %f789;
+ sub.f32 %f797, %f793, %f796;
+ add.f32 %f798, %f789, %f797;
+ add.f32 %f799, %f791, %f798;
+ add.f32 %f800, %f795, %f799;
+ add.f32 %f801, %f796, %f800;
+ sub.f32 %f802, %f796, %f801;
+ add.f32 %f803, %f800, %f802;
+ mov.f32 %f804, 0f3EE66666;
+ mul.rn.f32 %f805, %f804, %f801;
+ neg.f32 %f806, %f805;
+ fma.rn.f32 %f807, %f804, %f801, %f806;
+ fma.rn.f32 %f808, %f804, %f803, %f807;
+ mov.f32 %f809, 0f00000000;
+ fma.rn.f32 %f810, %f809, %f801, %f808;
+ add.rn.f32 %f811, %f805, %f810;
+ neg.f32 %f812, %f811;
+ add.rn.f32 %f813, %f805, %f812;
+ add.rn.f32 %f814, %f813, %f810;
+ mov.b32 %r296, %f811;
+ setp.eq.s32 %p96, %r296, 1118925336;
+ add.s32 %r297, %r296, -1;
+ mov.b32 %f815, %r297;
+ add.f32 %f816, %f814, 0f37000000;
+ selp.f32 %f817, %f815, %f811, %p96;
+ selp.f32 %f199, %f816, %f814, %p96;
+ mul.f32 %f818, %f817, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f819, %f818;
+ mov.f32 %f820, 0fBF317200;
+ fma.rn.f32 %f821, %f819, %f820, %f817;
+ mov.f32 %f822, 0fB5BFBE8E;
+ fma.rn.f32 %f823, %f819, %f822, %f821;
+ mul.f32 %f824, %f823, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f825, %f824;
+ add.f32 %f826, %f819, 0f00000000;
+ ex2.approx.f32 %f827, %f826;
+ mul.f32 %f828, %f825, %f827;
+ setp.lt.f32 %p97, %f817, 0fC2D20000;
+ selp.f32 %f829, 0f00000000, %f828, %p97;
+ setp.gt.f32 %p98, %f817, 0f42D20000;
+ selp.f32 %f1159, 0f7F800000, %f829, %p98;
+ setp.eq.f32 %p99, %f1159, 0f7F800000;
+ @%p99 bra BB0_99;
+
+ fma.rn.f32 %f1159, %f1159, %f199, %f1159;
+
+BB0_99:
+ setp.lt.f32 %p100, %f194, 0f00000000;
+ setp.eq.f32 %p101, %f197, 0f3F800000;
+ and.pred %p4, %p100, %p101;
+ mov.b32 %r298, %f1159;
+ xor.b32 %r299, %r298, -2147483648;
+ mov.b32 %f830, %r299;
+ selp.f32 %f1161, %f830, %f1159, %p4;
+ setp.eq.f32 %p102, %f194, 0f00000000;
+ @%p102 bra BB0_102;
+ bra.uni BB0_100;
+
+BB0_102:
+ add.f32 %f833, %f194, %f194;
+ selp.f32 %f1161, %f833, 0f00000000, %p101;
+ bra.uni BB0_103;
+
+BB0_100:
+ setp.geu.f32 %p103, %f194, 0f00000000;
+ @%p103 bra BB0_103;
+
+ cvt.rzi.f32.f32 %f832, %f804;
+ setp.neu.f32 %p104, %f832, 0f3EE66666;
+ selp.f32 %f1161, 0f7FFFFFFF, %f1161, %p104;
+
+BB0_103:
+ add.f32 %f834, %f198, 0f3EE66666;
+ mov.b32 %r300, %f834;
+ setp.lt.s32 %p106, %r300, 2139095040;
+ @%p106 bra BB0_108;
+
+ setp.gtu.f32 %p107, %f198, 0f7F800000;
+ @%p107 bra BB0_107;
+ bra.uni BB0_105;
+
+BB0_107:
+ add.f32 %f1161, %f194, 0f3EE66666;
+ bra.uni BB0_108;
+
+BB0_105:
+ setp.neu.f32 %p108, %f198, 0f7F800000;
+ @%p108 bra BB0_108;
+
+ selp.f32 %f1161, 0fFF800000, 0f7F800000, %p4;
+
+BB0_108:
+ setp.eq.f32 %p109, %f194, 0f3F800000;
+ selp.f32 %f210, 0f3F800000, %f1161, %p109;
+ abs.f32 %f211, %f195;
+ setp.lt.f32 %p110, %f211, 0f00800000;
+ mul.f32 %f837, %f211, 0f4B800000;
+ selp.f32 %f838, 0fC3170000, 0fC2FE0000, %p110;
+ selp.f32 %f839, %f837, %f211, %p110;
+ mov.b32 %r301, %f839;
+ and.b32 %r302, %r301, 8388607;
+ or.b32 %r303, %r302, 1065353216;
+ mov.b32 %f840, %r303;
+ shr.u32 %r304, %r301, 23;
+ cvt.rn.f32.u32 %f841, %r304;
+ add.f32 %f842, %f838, %f841;
+ setp.gt.f32 %p111, %f840, 0f3FB504F3;
+ mul.f32 %f843, %f840, 0f3F000000;
+ add.f32 %f844, %f842, 0f3F800000;
+ selp.f32 %f845, %f843, %f840, %p111;
+ selp.f32 %f846, %f844, %f842, %p111;
+ add.f32 %f847, %f845, 0fBF800000;
+ add.f32 %f836, %f845, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f835,%f836;
+ // inline asm
+ add.f32 %f848, %f847, %f847;
+ mul.f32 %f849, %f835, %f848;
+ mul.f32 %f850, %f849, %f849;
+ fma.rn.f32 %f853, %f774, %f850, %f773;
+ fma.rn.f32 %f855, %f853, %f850, %f776;
+ mul.rn.f32 %f856, %f855, %f850;
+ mul.rn.f32 %f857, %f856, %f849;
+ sub.f32 %f858, %f847, %f849;
+ neg.f32 %f859, %f849;
+ add.f32 %f860, %f858, %f858;
+ fma.rn.f32 %f861, %f859, %f847, %f860;
+ mul.rn.f32 %f862, %f835, %f861;
+ add.f32 %f863, %f857, %f849;
+ sub.f32 %f864, %f849, %f863;
+ add.f32 %f865, %f857, %f864;
+ add.f32 %f866, %f862, %f865;
+ add.f32 %f867, %f863, %f866;
+ sub.f32 %f868, %f863, %f867;
+ add.f32 %f869, %f866, %f868;
+ mul.rn.f32 %f871, %f846, %f792;
+ mul.rn.f32 %f873, %f846, %f794;
+ add.f32 %f874, %f871, %f867;
+ sub.f32 %f875, %f871, %f874;
+ add.f32 %f876, %f867, %f875;
+ add.f32 %f877, %f869, %f876;
+ add.f32 %f878, %f873, %f877;
+ add.f32 %f879, %f874, %f878;
+ sub.f32 %f880, %f874, %f879;
+ add.f32 %f881, %f878, %f880;
+ mul.rn.f32 %f883, %f804, %f879;
+ neg.f32 %f884, %f883;
+ fma.rn.f32 %f885, %f804, %f879, %f884;
+ fma.rn.f32 %f886, %f804, %f881, %f885;
+ fma.rn.f32 %f888, %f809, %f879, %f886;
+ add.rn.f32 %f889, %f883, %f888;
+ neg.f32 %f890, %f889;
+ add.rn.f32 %f891, %f883, %f890;
+ add.rn.f32 %f892, %f891, %f888;
+ mov.b32 %r305, %f889;
+ setp.eq.s32 %p112, %r305, 1118925336;
+ add.s32 %r306, %r305, -1;
+ mov.b32 %f893, %r306;
+ add.f32 %f894, %f892, 0f37000000;
+ selp.f32 %f895, %f893, %f889, %p112;
+ selp.f32 %f212, %f894, %f892, %p112;
+ mul.f32 %f896, %f895, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f897, %f896;
+ fma.rn.f32 %f899, %f897, %f820, %f895;
+ fma.rn.f32 %f901, %f897, %f822, %f899;
+ mul.f32 %f902, %f901, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f903, %f902;
+ add.f32 %f904, %f897, 0f00000000;
+ ex2.approx.f32 %f905, %f904;
+ mul.f32 %f906, %f903, %f905;
+ setp.lt.f32 %p113, %f895, 0fC2D20000;
+ selp.f32 %f907, 0f00000000, %f906, %p113;
+ setp.gt.f32 %p114, %f895, 0f42D20000;
+ selp.f32 %f1162, 0f7F800000, %f907, %p114;
+ setp.eq.f32 %p115, %f1162, 0f7F800000;
+ @%p115 bra BB0_110;
+
+ fma.rn.f32 %f1162, %f1162, %f212, %f1162;
+
+BB0_110:
+ setp.lt.f32 %p116, %f195, 0f00000000;
+ and.pred %p5, %p116, %p101;
+ mov.b32 %r307, %f1162;
+ xor.b32 %r308, %r307, -2147483648;
+ mov.b32 %f908, %r308;
+ selp.f32 %f1164, %f908, %f1162, %p5;
+ setp.eq.f32 %p118, %f195, 0f00000000;
+ @%p118 bra BB0_113;
+ bra.uni BB0_111;
+
+BB0_113:
+ add.f32 %f911, %f195, %f195;
+ selp.f32 %f1164, %f911, 0f00000000, %p101;
+ bra.uni BB0_114;
+
+BB0_111:
+ setp.geu.f32 %p119, %f195, 0f00000000;
+ @%p119 bra BB0_114;
+
+ cvt.rzi.f32.f32 %f910, %f804;
+ setp.neu.f32 %p120, %f910, 0f3EE66666;
+ selp.f32 %f1164, 0f7FFFFFFF, %f1164, %p120;
+
+BB0_114:
+ add.f32 %f912, %f211, 0f3EE66666;
+ mov.b32 %r309, %f912;
+ setp.lt.s32 %p122, %r309, 2139095040;
+ @%p122 bra BB0_119;
+
+ setp.gtu.f32 %p123, %f211, 0f7F800000;
+ @%p123 bra BB0_118;
+ bra.uni BB0_116;
+
+BB0_118:
+ add.f32 %f1164, %f195, 0f3EE66666;
+ bra.uni BB0_119;
+
+BB0_116:
+ setp.neu.f32 %p124, %f211, 0f7F800000;
+ @%p124 bra BB0_119;
+
+ selp.f32 %f1164, 0fFF800000, 0f7F800000, %p5;
+
+BB0_119:
+ setp.eq.f32 %p125, %f195, 0f3F800000;
+ selp.f32 %f223, 0f3F800000, %f1164, %p125;
+ abs.f32 %f224, %f196;
+ setp.lt.f32 %p126, %f224, 0f00800000;
+ mul.f32 %f915, %f224, 0f4B800000;
+ selp.f32 %f916, 0fC3170000, 0fC2FE0000, %p126;
+ selp.f32 %f917, %f915, %f224, %p126;
+ mov.b32 %r310, %f917;
+ and.b32 %r311, %r310, 8388607;
+ or.b32 %r312, %r311, 1065353216;
+ mov.b32 %f918, %r312;
+ shr.u32 %r313, %r310, 23;
+ cvt.rn.f32.u32 %f919, %r313;
+ add.f32 %f920, %f916, %f919;
+ setp.gt.f32 %p127, %f918, 0f3FB504F3;
+ mul.f32 %f921, %f918, 0f3F000000;
+ add.f32 %f922, %f920, 0f3F800000;
+ selp.f32 %f923, %f921, %f918, %p127;
+ selp.f32 %f924, %f922, %f920, %p127;
+ add.f32 %f925, %f923, 0fBF800000;
+ add.f32 %f914, %f923, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f913,%f914;
+ // inline asm
+ add.f32 %f926, %f925, %f925;
+ mul.f32 %f927, %f913, %f926;
+ mul.f32 %f928, %f927, %f927;
+ fma.rn.f32 %f931, %f774, %f928, %f773;
+ fma.rn.f32 %f933, %f931, %f928, %f776;
+ mul.rn.f32 %f934, %f933, %f928;
+ mul.rn.f32 %f935, %f934, %f927;
+ sub.f32 %f936, %f925, %f927;
+ neg.f32 %f937, %f927;
+ add.f32 %f938, %f936, %f936;
+ fma.rn.f32 %f939, %f937, %f925, %f938;
+ mul.rn.f32 %f940, %f913, %f939;
+ add.f32 %f941, %f935, %f927;
+ sub.f32 %f942, %f927, %f941;
+ add.f32 %f943, %f935, %f942;
+ add.f32 %f944, %f940, %f943;
+ add.f32 %f945, %f941, %f944;
+ sub.f32 %f946, %f941, %f945;
+ add.f32 %f947, %f944, %f946;
+ mul.rn.f32 %f949, %f924, %f792;
+ mul.rn.f32 %f951, %f924, %f794;
+ add.f32 %f952, %f949, %f945;
+ sub.f32 %f953, %f949, %f952;
+ add.f32 %f954, %f945, %f953;
+ add.f32 %f955, %f947, %f954;
+ add.f32 %f956, %f951, %f955;
+ add.f32 %f957, %f952, %f956;
+ sub.f32 %f958, %f952, %f957;
+ add.f32 %f959, %f956, %f958;
+ mul.rn.f32 %f961, %f804, %f957;
+ neg.f32 %f962, %f961;
+ fma.rn.f32 %f963, %f804, %f957, %f962;
+ fma.rn.f32 %f964, %f804, %f959, %f963;
+ fma.rn.f32 %f966, %f809, %f957, %f964;
+ add.rn.f32 %f967, %f961, %f966;
+ neg.f32 %f968, %f967;
+ add.rn.f32 %f969, %f961, %f968;
+ add.rn.f32 %f970, %f969, %f966;
+ mov.b32 %r314, %f967;
+ setp.eq.s32 %p128, %r314, 1118925336;
+ add.s32 %r315, %r314, -1;
+ mov.b32 %f971, %r315;
+ add.f32 %f972, %f970, 0f37000000;
+ selp.f32 %f973, %f971, %f967, %p128;
+ selp.f32 %f225, %f972, %f970, %p128;
+ mul.f32 %f974, %f973, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f975, %f974;
+ fma.rn.f32 %f977, %f975, %f820, %f973;
+ fma.rn.f32 %f979, %f975, %f822, %f977;
+ mul.f32 %f980, %f979, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f981, %f980;
+ add.f32 %f982, %f975, 0f00000000;
+ ex2.approx.f32 %f983, %f982;
+ mul.f32 %f984, %f981, %f983;
+ setp.lt.f32 %p129, %f973, 0fC2D20000;
+ selp.f32 %f985, 0f00000000, %f984, %p129;
+ setp.gt.f32 %p130, %f973, 0f42D20000;
+ selp.f32 %f1165, 0f7F800000, %f985, %p130;
+ setp.eq.f32 %p131, %f1165, 0f7F800000;
+ @%p131 bra BB0_121;
+
+ fma.rn.f32 %f1165, %f1165, %f225, %f1165;
+
+BB0_121:
+ setp.lt.f32 %p132, %f196, 0f00000000;
+ and.pred %p6, %p132, %p101;
+ mov.b32 %r316, %f1165;
+ xor.b32 %r317, %r316, -2147483648;
+ mov.b32 %f986, %r317;
+ selp.f32 %f1167, %f986, %f1165, %p6;
+ setp.eq.f32 %p134, %f196, 0f00000000;
+ @%p134 bra BB0_124;
+ bra.uni BB0_122;
+
+BB0_124:
+ add.f32 %f989, %f196, %f196;
+ selp.f32 %f1167, %f989, 0f00000000, %p101;
+ bra.uni BB0_125;
+
+BB0_122:
+ setp.geu.f32 %p135, %f196, 0f00000000;
+ @%p135 bra BB0_125;
+
+ cvt.rzi.f32.f32 %f988, %f804;
+ setp.neu.f32 %p136, %f988, 0f3EE66666;
+ selp.f32 %f1167, 0f7FFFFFFF, %f1167, %p136;
+
+BB0_125:
+ add.f32 %f990, %f224, 0f3EE66666;
+ mov.b32 %r318, %f990;
+ setp.lt.s32 %p138, %r318, 2139095040;
+ @%p138 bra BB0_130;
+
+ setp.gtu.f32 %p139, %f224, 0f7F800000;
+ @%p139 bra BB0_129;
+ bra.uni BB0_127;
+
+BB0_129:
+ add.f32 %f1167, %f196, 0f3EE66666;
+ bra.uni BB0_130;
+
+BB0_127:
+ setp.neu.f32 %p140, %f224, 0f7F800000;
+ @%p140 bra BB0_130;
+
+ selp.f32 %f1167, 0fFF800000, 0f7F800000, %p6;
+
+BB0_130:
+ mov.u32 %r392, 2;
+ setp.eq.f32 %p141, %f196, 0f3F800000;
+ selp.f32 %f991, 0f3F800000, %f1167, %p141;
+ cvt.u64.u32 %rd107, %r4;
+ cvt.u64.u32 %rd106, %r3;
+ mov.u64 %rd110, image;
+ cvta.global.u64 %rd105, %rd110;
+ // inline asm
+ call (%rd104), _rt_buffer_get_64, (%rd105, %r392, %r108, %rd106, %rd107, %rd29, %rd29);
+ // inline asm
+ cvt.sat.f32.f32 %f992, %f991;
+ mul.f32 %f993, %f992, 0f437FFD71;
+ cvt.rzi.u32.f32 %r321, %f993;
+ cvt.sat.f32.f32 %f994, %f223;
+ mul.f32 %f995, %f994, 0f437FFD71;
+ cvt.rzi.u32.f32 %r322, %f995;
+ cvt.sat.f32.f32 %f996, %f210;
+ mul.f32 %f997, %f996, 0f437FFD71;
+ cvt.rzi.u32.f32 %r323, %f997;
+ cvt.u16.u32 %rs42, %r321;
+ cvt.u16.u32 %rs43, %r323;
+ cvt.u16.u32 %rs44, %r322;
+ mov.u16 %rs45, 255;
+ st.v4.u8 [%rd104], {%rs42, %rs44, %rs43, %rs45};
+ ld.global.u32 %r432, [imageEnabled];
+
+BB0_131:
+ cvt.u64.u32 %rd20, %r3;
+ cvt.u64.u32 %rd21, %r4;
+ and.b32 %r324, %r432, 4;
+ setp.eq.s32 %p142, %r324, 0;
+ @%p142 bra BB0_135;
+
+ ld.global.u32 %r325, [additive];
+ setp.eq.s32 %p143, %r325, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f539;}
+
+ // inline asm
+ @%p143 bra BB0_134;
+
+ mov.u32 %r393, 2;
+ mov.u64 %rd123, image_HDR;
+ cvta.global.u64 %rd112, %rd123;
+ mov.u32 %r329, 8;
+ // inline asm
+ call (%rd111), _rt_buffer_get_64, (%rd112, %r393, %r329, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ ld.v4.u16 {%rs53, %rs54, %rs55, %rs56}, [%rd111];
+ // inline asm
+ { cvt.f32.f16 %f999, %rs53;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1000, %rs54;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1001, %rs55;}
+
+ // inline asm
+ // inline asm
+ call (%rd117), _rt_buffer_get_64, (%rd112, %r393, %r329, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ add.f32 %f1002, %f194, %f999;
+ add.f32 %f1003, %f195, %f1000;
+ add.f32 %f1004, %f196, %f1001;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f1004;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f1003;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f1002;}
+
+ // inline asm
+ st.v4.u16 [%rd117], {%rs50, %rs51, %rs52, %rs46};
+ bra.uni BB0_135;
+
+BB0_134:
+ mov.u32 %r394, 2;
+ mov.u64 %rd130, image_HDR;
+ cvta.global.u64 %rd125, %rd130;
+ mov.u32 %r331, 8;
+ // inline asm
+ call (%rd124), _rt_buffer_get_64, (%rd125, %r394, %r331, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f196;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f195;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f194;}
+
+ // inline asm
+ st.v4.u16 [%rd124], {%rs57, %rs58, %rs59, %rs46};
+
+BB0_135:
+ add.f32 %f1009, %f1152, %f1153;
+ add.f32 %f1010, %f1009, %f1154;
+ mul.f32 %f1011, %f1010, 0f3F13CD3A;
+ div.rn.f32 %f1012, %f1151, %f1011;
+ setp.eq.f32 %p144, %f1151, 0f00000000;
+ selp.f32 %f1013, 0f00000000, %f1012, %p144;
+ mul.f32 %f1014, %f1152, %f1013;
+ mul.f32 %f1015, %f1153, %f1013;
+ mul.f32 %f1016, %f1154, %f1013;
+ ld.global.f32 %f1017, [lightColor];
+ mul.f32 %f236, %f1017, %f1014;
+ ld.global.f32 %f1018, [lightColor+4];
+ mul.f32 %f237, %f1018, %f1014;
+ ld.global.f32 %f1019, [lightColor+8];
+ mul.f32 %f238, %f1014, %f1019;
+ mul.f32 %f239, %f1017, %f1015;
+ mul.f32 %f240, %f1018, %f1015;
+ mul.f32 %f241, %f1015, %f1019;
+ mul.f32 %f242, %f1016, %f1017;
+ mul.f32 %f243, %f1016, %f1018;
+ mul.f32 %f244, %f1016, %f1019;
+ ld.global.u32 %r332, [additive];
+ setp.eq.s32 %p145, %r332, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f539;}
+
+ // inline asm
+ @%p145 bra BB0_137;
+
+ mov.u32 %r395, 2;
+ mov.u64 %rd143, image_RNM0;
+ cvta.global.u64 %rd132, %rd143;
+ mov.u32 %r336, 8;
+ // inline asm
+ call (%rd131), _rt_buffer_get_64, (%rd132, %r395, %r336, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd131];
+ // inline asm
+ { cvt.f32.f16 %f1020, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1021, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1022, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd137), _rt_buffer_get_64, (%rd132, %r395, %r336, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ add.f32 %f1023, %f236, %f1020;
+ add.f32 %f1024, %f237, %f1021;
+ add.f32 %f1025, %f238, %f1022;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f1025;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f1024;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f1023;}
+
+ // inline asm
+ st.v4.u16 [%rd137], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_138;
+
+BB0_137:
+ mov.u32 %r400, 2;
+ mov.u64 %rd150, image_RNM0;
+ cvta.global.u64 %rd145, %rd150;
+ mov.u32 %r338, 8;
+ // inline asm
+ call (%rd144), _rt_buffer_get_64, (%rd145, %r400, %r338, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f238;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f237;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f236;}
+
+ // inline asm
+ st.v4.u16 [%rd144], {%rs71, %rs72, %rs73, %rs60};
+
+BB0_138:
+ ld.global.u32 %r339, [additive];
+ setp.eq.s32 %p146, %r339, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f539;}
+
+ // inline asm
+ @%p146 bra BB0_140;
+
+ mov.u32 %r396, 2;
+ mov.u64 %rd163, image_RNM1;
+ cvta.global.u64 %rd152, %rd163;
+ mov.u32 %r343, 8;
+ // inline asm
+ call (%rd151), _rt_buffer_get_64, (%rd152, %r396, %r343, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ ld.v4.u16 {%rs81, %rs82, %rs83, %rs84}, [%rd151];
+ // inline asm
+ { cvt.f32.f16 %f1030, %rs81;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1031, %rs82;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1032, %rs83;}
+
+ // inline asm
+ // inline asm
+ call (%rd157), _rt_buffer_get_64, (%rd152, %r396, %r343, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ add.f32 %f1033, %f239, %f1030;
+ add.f32 %f1034, %f240, %f1031;
+ add.f32 %f1035, %f241, %f1032;
+ // inline asm
+ { cvt.rn.f16.f32 %rs80, %f1035;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs79, %f1034;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f1033;}
+
+ // inline asm
+ st.v4.u16 [%rd157], {%rs78, %rs79, %rs80, %rs74};
+ bra.uni BB0_141;
+
+BB0_140:
+ mov.u32 %r399, 2;
+ mov.u64 %rd170, image_RNM1;
+ cvta.global.u64 %rd165, %rd170;
+ mov.u32 %r345, 8;
+ // inline asm
+ call (%rd164), _rt_buffer_get_64, (%rd165, %r399, %r345, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f241;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f240;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f239;}
+
+ // inline asm
+ st.v4.u16 [%rd164], {%rs85, %rs86, %rs87, %rs74};
+
+BB0_141:
+ ld.global.u32 %r346, [additive];
+ setp.eq.s32 %p147, %r346, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f539;}
+
+ // inline asm
+ @%p147 bra BB0_143;
+
+ mov.u32 %r397, 2;
+ mov.u64 %rd183, image_RNM2;
+ cvta.global.u64 %rd172, %rd183;
+ mov.u32 %r350, 8;
+ // inline asm
+ call (%rd171), _rt_buffer_get_64, (%rd172, %r397, %r350, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ ld.v4.u16 {%rs95, %rs96, %rs97, %rs98}, [%rd171];
+ // inline asm
+ { cvt.f32.f16 %f1040, %rs95;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1041, %rs96;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1042, %rs97;}
+
+ // inline asm
+ // inline asm
+ call (%rd177), _rt_buffer_get_64, (%rd172, %r397, %r350, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ add.f32 %f1043, %f242, %f1040;
+ add.f32 %f1044, %f243, %f1041;
+ add.f32 %f1045, %f244, %f1042;
+ // inline asm
+ { cvt.rn.f16.f32 %rs94, %f1045;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f1044;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f1043;}
+
+ // inline asm
+ st.v4.u16 [%rd177], {%rs92, %rs93, %rs94, %rs88};
+ bra.uni BB0_161;
+
+BB0_143:
+ mov.u32 %r398, 2;
+ mov.u64 %rd190, image_RNM2;
+ cvta.global.u64 %rd185, %rd190;
+ mov.u32 %r352, 8;
+ // inline asm
+ call (%rd184), _rt_buffer_get_64, (%rd185, %r398, %r352, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs101, %f244;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs100, %f243;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f242;}
+
+ // inline asm
+ st.v4.u16 [%rd184], {%rs99, %rs100, %rs101, %rs88};
+
+BB0_161:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightRNM.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightRNM.ptx.meta
new file mode 100644
index 00000000..de3789a8
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightRNM.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: af8693c7623b99b49b07c2f1bbe20a19
+timeCreated: 1537530274
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightSH.ptx
new file mode 100644
index 00000000..4b53d8d0
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightSH.ptx
@@ -0,0 +1,2376 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 lightMeshBuffer[1];
+.global .align 4 .u32 lightMeshBufferSize;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightPointSize;
+.global .align 4 .b8 lightColor[12];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo19lightMeshBufferSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightPointSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename19lightMeshBufferSizeE[13] = {117, 110, 115, 105, 103, 110, 101, 100, 32, 105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightPointSizeE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum19lightMeshBufferSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightPointSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightPointSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightPointSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[36];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<151>;
+ .reg .b16 %rs<152>;
+ .reg .f32 %f<1034>;
+ .reg .b32 %r<415>;
+ .reg .b64 %rd<308>;
+
+
+ mov.u64 %rd307, __local_depot0;
+ cvta.local.u64 %SP, %rd307;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r103, %r104}, [pixelID];
+ cvt.u64.u32 %rd23, %r103;
+ cvt.u64.u32 %rd24, %r104;
+ mov.u64 %rd27, uvnormal;
+ cvta.global.u64 %rd22, %rd27;
+ mov.u32 %r101, 2;
+ mov.u32 %r102, 4;
+ mov.u64 %rd26, 0;
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd22, %r101, %r102, %rd23, %rd24, %rd26, %rd26);
+ // inline asm
+ ld.u32 %r2, [%rd21];
+ shr.u32 %r107, %r2, 16;
+ cvt.u16.u32 %rs1, %r107;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r2;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p7, %rs9, 0;
+ mov.f32 %f956, 0f00000000;
+ mov.f32 %f957, %f956;
+ mov.f32 %f958, %f956;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs10, [%rd21+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f231, %rs12;
+ div.rn.f32 %f232, %f231, 0f437F0000;
+ fma.rn.f32 %f233, %f232, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f234, %rs10;
+ div.rn.f32 %f235, %f234, 0f437F0000;
+ fma.rn.f32 %f236, %f235, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f237, %rs7;
+ div.rn.f32 %f238, %f237, 0f437F0000;
+ fma.rn.f32 %f239, %f238, 0f40000000, 0fBF800000;
+ mul.f32 %f240, %f236, %f236;
+ fma.rn.f32 %f241, %f233, %f233, %f240;
+ fma.rn.f32 %f242, %f239, %f239, %f241;
+ sqrt.rn.f32 %f243, %f242;
+ rcp.rn.f32 %f244, %f243;
+ mul.f32 %f956, %f233, %f244;
+ mul.f32 %f957, %f236, %f244;
+ mul.f32 %f958, %f239, %f244;
+
+BB0_2:
+ ld.global.v2.u32 {%r108, %r109}, [pixelID];
+ ld.global.v2.u32 {%r111, %r112}, [tileInfo];
+ add.s32 %r3, %r108, %r111;
+ add.s32 %r4, %r109, %r112;
+ setp.eq.f32 %p8, %f957, 0f00000000;
+ setp.eq.f32 %p9, %f956, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f958, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_141;
+ bra.uni BB0_3;
+
+BB0_141:
+ ld.global.u32 %r414, [imageEnabled];
+ and.b32 %r336, %r414, 1;
+ setp.eq.b32 %p142, %r336, 1;
+ @!%p142 bra BB0_143;
+ bra.uni BB0_142;
+
+BB0_142:
+ cvt.u64.u32 %rd189, %r3;
+ cvt.u64.u32 %rd190, %r4;
+ mov.u64 %rd193, image;
+ cvta.global.u64 %rd188, %rd193;
+ mov.u64 %rd192, 0;
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd188, %r101, %r102, %rd189, %rd190, %rd192, %rd192);
+ // inline asm
+ mov.u16 %rs84, 0;
+ st.v4.u8 [%rd187], {%rs84, %rs84, %rs84, %rs84};
+ ld.global.u32 %r414, [imageEnabled];
+
+BB0_143:
+ and.b32 %r339, %r414, 8;
+ setp.eq.s32 %p143, %r339, 0;
+ @%p143 bra BB0_145;
+
+ cvt.u64.u32 %rd197, %r4;
+ cvt.u64.u32 %rd196, %r3;
+ mov.u64 %rd200, image_Mask;
+ cvta.global.u64 %rd195, %rd200;
+ mov.u64 %rd199, 0;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r101, %r101, %rd196, %rd197, %rd199, %rd199);
+ // inline asm
+ mov.f32 %f911, 0f00000000;
+ cvt.rzi.u32.f32 %r342, %f911;
+ cvt.u16.u32 %rs85, %r342;
+ mov.u16 %rs86, 0;
+ st.v2.u8 [%rd194], {%rs85, %rs86};
+ ld.global.u32 %r414, [imageEnabled];
+
+BB0_145:
+ cvt.u64.u32 %rd19, %r3;
+ cvt.u64.u32 %rd20, %r4;
+ and.b32 %r343, %r414, 4;
+ setp.eq.s32 %p144, %r343, 0;
+ @%p144 bra BB0_149;
+
+ ld.global.u32 %r344, [additive];
+ setp.eq.s32 %p145, %r344, 0;
+ @%p145 bra BB0_148;
+
+ mov.u64 %rd213, image_HDR;
+ cvta.global.u64 %rd202, %rd213;
+ mov.u32 %r348, 8;
+ mov.u64 %rd212, 0;
+ // inline asm
+ call (%rd201), _rt_buffer_get_64, (%rd202, %r101, %r348, %rd19, %rd20, %rd212, %rd212);
+ // inline asm
+ ld.v4.u16 {%rs93, %rs94, %rs95, %rs96}, [%rd201];
+ // inline asm
+ { cvt.f32.f16 %f912, %rs93;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f913, %rs94;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f914, %rs95;}
+
+ // inline asm
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd202, %r101, %r348, %rd19, %rd20, %rd212, %rd212);
+ // inline asm
+ add.f32 %f915, %f912, 0f00000000;
+ add.f32 %f916, %f913, 0f00000000;
+ add.f32 %f917, %f914, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f917;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f916;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f915;}
+
+ // inline asm
+ mov.u16 %rs97, 0;
+ st.v4.u16 [%rd207], {%rs90, %rs91, %rs92, %rs97};
+ bra.uni BB0_149;
+
+BB0_3:
+ ld.global.v2.u32 {%r121, %r122}, [pixelID];
+ cvt.u64.u32 %rd30, %r121;
+ cvt.u64.u32 %rd31, %r122;
+ mov.u64 %rd40, uvpos;
+ cvta.global.u64 %rd29, %rd40;
+ mov.u32 %r117, 12;
+ // inline asm
+ call (%rd28), _rt_buffer_get_64, (%rd29, %r101, %r117, %rd30, %rd31, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f9, [%rd28+8];
+ ld.f32 %f8, [%rd28+4];
+ ld.f32 %f7, [%rd28];
+ mul.f32 %f251, %f7, 0f3456BF95;
+ mul.f32 %f252, %f8, 0f3456BF95;
+ mul.f32 %f253, %f9, 0f3456BF95;
+ abs.f32 %f10, %f956;
+ div.rn.f32 %f254, %f251, %f10;
+ abs.f32 %f255, %f957;
+ div.rn.f32 %f256, %f252, %f255;
+ abs.f32 %f11, %f958;
+ div.rn.f32 %f257, %f253, %f11;
+ abs.f32 %f258, %f254;
+ abs.f32 %f259, %f256;
+ abs.f32 %f260, %f257;
+ mov.f32 %f261, 0f38D1B717;
+ max.f32 %f262, %f258, %f261;
+ max.f32 %f263, %f259, %f261;
+ max.f32 %f264, %f260, %f261;
+ fma.rn.f32 %f12, %f956, %f262, %f7;
+ fma.rn.f32 %f13, %f957, %f263, %f8;
+ fma.rn.f32 %f14, %f958, %f264, %f9;
+ ld.global.v2.u32 {%r125, %r126}, [pixelID];
+ cvt.u64.u32 %rd36, %r125;
+ cvt.u64.u32 %rd37, %r126;
+ mov.u64 %rd41, rnd_seeds;
+ cvta.global.u64 %rd35, %rd41;
+ // inline asm
+ call (%rd34), _rt_buffer_get_64, (%rd35, %r101, %r102, %rd36, %rd37, %rd26, %rd26);
+ // inline asm
+ ld.u32 %r129, [%rd34];
+ mad.lo.s32 %r5, %r129, 1664525, 1013904223;
+ ld.global.u32 %r130, [lightMeshBufferSize];
+ setp.eq.s32 %p14, %r130, 0;
+ mov.pred %p13, 0;
+ mov.f32 %f20, 0f00000000;
+ mov.u32 %r7, 0;
+ @%p14 bra BB0_4;
+
+ ld.global.f32 %f15, [lightPointSize];
+ mul.f32 %f16, %f12, 0f3456BF95;
+ mul.f32 %f17, %f13, 0f3456BF95;
+ mul.f32 %f18, %f14, 0f3456BF95;
+ and.b32 %r133, %r5, 16777215;
+ cvt.rn.f32.u32 %f271, %r133;
+ mul.f32 %f272, %f271, 0fB3800000;
+ fma.rn.f32 %f19, %f272, 0f3F333333, 0f3F800000;
+ mov.f32 %f20, 0f00000000;
+ mov.u32 %r383, 0;
+ abs.f32 %f394, %f17;
+ abs.f32 %f395, %f16;
+ max.f32 %f396, %f395, %f394;
+ abs.f32 %f397, %f18;
+ max.f32 %f398, %f396, %f397;
+ mov.u32 %r7, %r383;
+ mov.f32 %f21, %f20;
+ mov.f32 %f22, %f20;
+ mov.f32 %f23, %f20;
+ mov.f32 %f24, %f20;
+ mov.f32 %f25, %f20;
+
+BB0_6:
+ shl.b32 %r8, %r383, 1;
+ cvt.s64.s32 %rd44, %r8;
+ mov.u64 %rd48, lightMeshBuffer;
+ cvta.global.u64 %rd43, %rd48;
+ mov.u32 %r134, 1;
+ // inline asm
+ call (%rd42), _rt_buffer_get_64, (%rd43, %r134, %r117, %rd44, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f273, [%rd42];
+ sub.f32 %f274, %f273, %f7;
+ ld.f32 %f275, [%rd42+4];
+ sub.f32 %f276, %f275, %f8;
+ ld.f32 %f277, [%rd42+8];
+ sub.f32 %f278, %f277, %f9;
+ mul.f32 %f279, %f276, %f276;
+ fma.rn.f32 %f280, %f274, %f274, %f279;
+ fma.rn.f32 %f281, %f278, %f278, %f280;
+ sqrt.rn.f32 %f26, %f281;
+ rcp.rn.f32 %f282, %f26;
+ mul.f32 %f27, %f274, %f282;
+ mul.f32 %f28, %f276, %f282;
+ mul.f32 %f29, %f278, %f282;
+ mul.f32 %f283, %f957, %f28;
+ fma.rn.f32 %f284, %f956, %f27, %f283;
+ fma.rn.f32 %f30, %f958, %f29, %f284;
+ setp.leu.f32 %p15, %f30, 0f00000000;
+ @%p15 bra BB0_22;
+
+ setp.ne.s32 %p17, %r1, 0;
+ mul.f32 %f285, %f26, %f26;
+ mul.f32 %f286, %f285, 0f40C90FDB;
+ div.rn.f32 %f287, %f15, %f286;
+ add.f32 %f31, %f287, %f287;
+ setp.gt.f32 %p18, %f31, %f19;
+ and.pred %p19, %p17, %p18;
+ mov.pred %p150, -1;
+ @%p19 bra BB0_24;
+
+ ld.global.f32 %f290, [lightInvCutoff];
+ mul.f32 %f32, %f26, %f290;
+ mov.f32 %f294, 0f40800000;
+ abs.f32 %f34, %f32;
+ setp.lt.f32 %p20, %f34, 0f00800000;
+ mul.f32 %f296, %f34, 0f4B800000;
+ selp.f32 %f297, 0fC3170000, 0fC2FE0000, %p20;
+ selp.f32 %f298, %f296, %f34, %p20;
+ mov.b32 %r136, %f298;
+ and.b32 %r137, %r136, 8388607;
+ or.b32 %r138, %r137, 1065353216;
+ mov.b32 %f299, %r138;
+ shr.u32 %r139, %r136, 23;
+ cvt.rn.f32.u32 %f300, %r139;
+ add.f32 %f301, %f297, %f300;
+ setp.gt.f32 %p21, %f299, 0f3FB504F3;
+ mul.f32 %f302, %f299, 0f3F000000;
+ add.f32 %f303, %f301, 0f3F800000;
+ selp.f32 %f304, %f302, %f299, %p21;
+ selp.f32 %f305, %f303, %f301, %p21;
+ add.f32 %f306, %f304, 0fBF800000;
+ add.f32 %f289, %f304, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f288,%f289;
+ // inline asm
+ add.f32 %f307, %f306, %f306;
+ mul.f32 %f308, %f288, %f307;
+ mul.f32 %f309, %f308, %f308;
+ mov.f32 %f310, 0f3C4CAF63;
+ mov.f32 %f311, 0f3B18F0FE;
+ fma.rn.f32 %f312, %f311, %f309, %f310;
+ mov.f32 %f313, 0f3DAAAABD;
+ fma.rn.f32 %f314, %f312, %f309, %f313;
+ mul.rn.f32 %f315, %f314, %f309;
+ mul.rn.f32 %f316, %f315, %f308;
+ sub.f32 %f317, %f306, %f308;
+ neg.f32 %f318, %f308;
+ add.f32 %f319, %f317, %f317;
+ fma.rn.f32 %f320, %f318, %f306, %f319;
+ mul.rn.f32 %f321, %f288, %f320;
+ add.f32 %f322, %f316, %f308;
+ sub.f32 %f323, %f308, %f322;
+ add.f32 %f324, %f316, %f323;
+ add.f32 %f325, %f321, %f324;
+ add.f32 %f326, %f322, %f325;
+ sub.f32 %f327, %f322, %f326;
+ add.f32 %f328, %f325, %f327;
+ mov.f32 %f329, 0f3F317200;
+ mul.rn.f32 %f330, %f305, %f329;
+ mov.f32 %f331, 0f35BFBE8E;
+ mul.rn.f32 %f332, %f305, %f331;
+ add.f32 %f333, %f330, %f326;
+ sub.f32 %f334, %f330, %f333;
+ add.f32 %f335, %f326, %f334;
+ add.f32 %f336, %f328, %f335;
+ add.f32 %f337, %f332, %f336;
+ add.f32 %f338, %f333, %f337;
+ sub.f32 %f339, %f333, %f338;
+ add.f32 %f340, %f337, %f339;
+ mul.rn.f32 %f341, %f294, %f338;
+ neg.f32 %f342, %f341;
+ fma.rn.f32 %f343, %f294, %f338, %f342;
+ fma.rn.f32 %f344, %f294, %f340, %f343;
+ mov.f32 %f345, 0f00000000;
+ fma.rn.f32 %f346, %f345, %f338, %f344;
+ add.rn.f32 %f347, %f341, %f346;
+ neg.f32 %f348, %f347;
+ add.rn.f32 %f349, %f341, %f348;
+ add.rn.f32 %f350, %f349, %f346;
+ mov.b32 %r140, %f347;
+ setp.eq.s32 %p22, %r140, 1118925336;
+ add.s32 %r141, %r140, -1;
+ mov.b32 %f351, %r141;
+ add.f32 %f352, %f350, 0f37000000;
+ selp.f32 %f353, %f351, %f347, %p22;
+ selp.f32 %f35, %f352, %f350, %p22;
+ mul.f32 %f354, %f353, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f355, %f354;
+ mov.f32 %f356, 0fBF317200;
+ fma.rn.f32 %f357, %f355, %f356, %f353;
+ mov.f32 %f358, 0fB5BFBE8E;
+ fma.rn.f32 %f359, %f355, %f358, %f357;
+ mul.f32 %f360, %f359, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f361, %f360;
+ add.f32 %f362, %f355, 0f00000000;
+ ex2.approx.f32 %f363, %f362;
+ mul.f32 %f364, %f361, %f363;
+ setp.lt.f32 %p23, %f353, 0fC2D20000;
+ selp.f32 %f365, 0f00000000, %f364, %p23;
+ setp.gt.f32 %p24, %f353, 0f42D20000;
+ selp.f32 %f965, 0f7F800000, %f365, %p24;
+ setp.eq.f32 %p25, %f965, 0f7F800000;
+ @%p25 bra BB0_10;
+
+ fma.rn.f32 %f965, %f965, %f35, %f965;
+
+BB0_10:
+ mov.f32 %f952, 0f40000000;
+ cvt.rzi.f32.f32 %f951, %f952;
+ add.f32 %f950, %f951, %f951;
+ mov.f32 %f949, 0f40800000;
+ sub.f32 %f948, %f949, %f950;
+ abs.f32 %f947, %f948;
+ setp.lt.f32 %p26, %f32, 0f00000000;
+ setp.eq.f32 %p27, %f947, 0f3F800000;
+ and.pred %p1, %p26, %p27;
+ mov.b32 %r142, %f965;
+ xor.b32 %r143, %r142, -2147483648;
+ mov.b32 %f366, %r143;
+ selp.f32 %f967, %f366, %f965, %p1;
+ setp.eq.f32 %p28, %f32, 0f00000000;
+ @%p28 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f369, %f32, %f32;
+ selp.f32 %f967, %f369, 0f00000000, %p27;
+ bra.uni BB0_14;
+
+BB0_11:
+ setp.geu.f32 %p29, %f32, 0f00000000;
+ @%p29 bra BB0_14;
+
+ mov.f32 %f955, 0f40800000;
+ cvt.rzi.f32.f32 %f368, %f955;
+ setp.neu.f32 %p30, %f368, 0f40800000;
+ selp.f32 %f967, 0f7FFFFFFF, %f967, %p30;
+
+BB0_14:
+ add.f32 %f370, %f34, 0f40800000;
+ mov.b32 %r144, %f370;
+ setp.lt.s32 %p32, %r144, 2139095040;
+ @%p32 bra BB0_19;
+
+ setp.gtu.f32 %p33, %f34, 0f7F800000;
+ @%p33 bra BB0_18;
+ bra.uni BB0_16;
+
+BB0_18:
+ add.f32 %f967, %f32, 0f40800000;
+ bra.uni BB0_19;
+
+BB0_16:
+ setp.neu.f32 %p34, %f34, 0f7F800000;
+ @%p34 bra BB0_19;
+
+ selp.f32 %f967, 0fFF800000, 0f7F800000, %p1;
+
+BB0_19:
+ mov.u32 %r380, 1;
+ mov.u64 %rd302, lightMeshBuffer;
+ cvta.global.u64 %rd301, %rd302;
+ shl.b32 %r379, %r383, 1;
+ mov.f32 %f371, 0f3F800000;
+ sub.f32 %f372, %f371, %f967;
+ setp.eq.f32 %p35, %f32, 0f3F800000;
+ selp.f32 %f373, 0f00000000, %f372, %p35;
+ cvt.sat.f32.f32 %f374, %f373;
+ mul.f32 %f375, %f31, %f374;
+ add.s32 %r147, %r379, 1;
+ cvt.s64.s32 %rd51, %r147;
+ // inline asm
+ call (%rd49), _rt_buffer_get_64, (%rd301, %r380, %r117, %rd51, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f376, [%rd49];
+ mul.f32 %f377, %f27, %f376;
+ ld.f32 %f378, [%rd49+4];
+ mul.f32 %f379, %f28, %f378;
+ neg.f32 %f380, %f379;
+ sub.f32 %f381, %f380, %f377;
+ ld.f32 %f382, [%rd49+8];
+ mul.f32 %f383, %f29, %f382;
+ sub.f32 %f384, %f381, %f383;
+ cvt.sat.f32.f32 %f385, %f384;
+ mul.f32 %f46, %f375, %f385;
+ setp.leu.f32 %p36, %f46, 0f3727C5AC;
+ @%p36 bra BB0_21;
+
+ mov.u32 %r382, 1;
+ add.u64 %rd56, %SP, 4;
+ cvta.to.local.u64 %rd57, %rd56;
+ max.f32 %f392, %f398, %f261;
+ sub.f32 %f393, %f26, %f392;
+ mov.u32 %r151, 1065353216;
+ st.local.u32 [%rd57], %r151;
+ ld.global.u32 %r148, [root];
+ // inline asm
+ call _rt_trace_64, (%r148, %f12, %f13, %f14, %f27, %f28, %f29, %r382, %f392, %f393, %rd56, %r102);
+ // inline asm
+ ld.local.f32 %f400, [%rd57];
+ mul.f32 %f401, %f46, %f400;
+ cvt.sat.f32.f32 %f402, %f30;
+ fma.rn.f32 %f25, %f402, %f401, %f25;
+ mul.f32 %f403, %f30, 0f40800000;
+ cvt.sat.f32.f32 %f404, %f403;
+ mul.f32 %f405, %f401, %f404;
+ fma.rn.f32 %f23, %f27, %f405, %f23;
+ fma.rn.f32 %f22, %f28, %f405, %f22;
+ fma.rn.f32 %f21, %f29, %f405, %f21;
+ add.f32 %f24, %f24, %f405;
+ add.f32 %f20, %f20, %f400;
+
+BB0_21:
+ add.s32 %r7, %r7, 1;
+
+BB0_22:
+ ld.global.u32 %r152, [lightMeshBufferSize];
+ add.s32 %r383, %r383, 1;
+ setp.lt.u32 %p38, %r383, %r152;
+ @%p38 bra BB0_6;
+ bra.uni BB0_23;
+
+BB0_4:
+ mov.f32 %f21, %f20;
+ mov.f32 %f22, %f20;
+ mov.f32 %f23, %f20;
+ mov.f32 %f24, %f20;
+ mov.f32 %f25, %f20;
+
+BB0_23:
+ mov.pred %p150, %p13;
+
+BB0_24:
+ cvt.rn.f32.s32 %f406, %r7;
+ mov.f32 %f407, 0f3F800000;
+ max.f32 %f408, %f406, %f407;
+ div.rn.f32 %f1016, %f25, %f408;
+ div.rn.f32 %f1021, %f20, %f408;
+ div.rn.f32 %f1017, %f24, %f408;
+ div.rn.f32 %f1018, %f23, %f408;
+ div.rn.f32 %f1019, %f22, %f408;
+ div.rn.f32 %f1020, %f21, %f408;
+ @!%p150 bra BB0_77;
+ bra.uni BB0_25;
+
+BB0_25:
+ abs.f32 %f954, %f958;
+ abs.f32 %f953, %f956;
+ setp.gt.f32 %p39, %f953, %f954;
+ neg.f32 %f415, %f957;
+ selp.f32 %f416, %f415, 0f00000000, %p39;
+ neg.f32 %f417, %f958;
+ selp.f32 %f418, %f956, %f417, %p39;
+ selp.f32 %f419, 0f00000000, %f957, %p39;
+ mul.f32 %f420, %f418, %f418;
+ fma.rn.f32 %f421, %f416, %f416, %f420;
+ fma.rn.f32 %f422, %f419, %f419, %f421;
+ sqrt.rn.f32 %f423, %f422;
+ rcp.rn.f32 %f424, %f423;
+ mul.f32 %f77, %f416, %f424;
+ mul.f32 %f78, %f418, %f424;
+ mul.f32 %f79, %f419, %f424;
+ mov.f32 %f992, 0f00000000;
+ setp.lt.s32 %p40, %r1, 1;
+ mov.f32 %f993, %f992;
+ mov.f32 %f994, %f992;
+ mov.f32 %f995, %f992;
+ mov.f32 %f996, %f992;
+ mov.f32 %f997, %f992;
+ @%p40 bra BB0_76;
+
+ mad.lo.s32 %r390, %r129, 1664525, 1013904223;
+ cvt.rn.f32.s32 %f431, %r1;
+ rcp.rn.f32 %f80, %f431;
+ add.u64 %rd58, %SP, 8;
+ cvta.to.local.u64 %rd2, %rd58;
+ mul.f32 %f81, %f12, 0f3456BF95;
+ mul.f32 %f82, %f13, 0f3456BF95;
+ mul.f32 %f83, %f14, 0f3456BF95;
+ add.u64 %rd59, %SP, 0;
+ cvta.to.local.u64 %rd3, %rd59;
+ mul.f32 %f432, %f956, %f78;
+ mul.f32 %f433, %f957, %f77;
+ sub.f32 %f84, %f433, %f432;
+ mul.f32 %f434, %f958, %f77;
+ mul.f32 %f435, %f956, %f79;
+ sub.f32 %f85, %f435, %f434;
+ mul.f32 %f436, %f957, %f79;
+ mul.f32 %f437, %f958, %f78;
+ sub.f32 %f86, %f437, %f436;
+ mov.f32 %f992, 0f00000000;
+ mov.u32 %r153, 0;
+ abs.f32 %f438, %f82;
+ abs.f32 %f439, %f81;
+ max.f32 %f440, %f439, %f438;
+ abs.f32 %f441, %f83;
+ max.f32 %f442, %f440, %f441;
+ mov.u32 %r387, %r153;
+ mov.f32 %f993, %f992;
+ mov.f32 %f994, %f992;
+ mov.f32 %f995, %f992;
+ mov.f32 %f996, %f992;
+ mov.f32 %f997, %f992;
+
+BB0_27:
+ cvt.rn.f32.s32 %f93, %r387;
+ max.f32 %f94, %f442, %f261;
+ mov.u32 %r389, %r153;
+
+BB0_28:
+ mad.lo.s32 %r155, %r390, 1664525, 1013904223;
+ and.b32 %r156, %r155, 16777215;
+ cvt.rn.f32.u32 %f444, %r156;
+ fma.rn.f32 %f445, %f444, 0f33800000, %f93;
+ mul.f32 %f101, %f80, %f445;
+ mad.lo.s32 %r390, %r155, 1664525, 1013904223;
+ and.b32 %r157, %r390, 16777215;
+ cvt.rn.f32.u32 %f446, %r157;
+ cvt.rn.f32.s32 %f447, %r389;
+ fma.rn.f32 %f448, %f446, 0f33800000, %f447;
+ mul.f32 %f449, %f80, %f448;
+ mul.f32 %f450, %f101, %f101;
+ sub.f32 %f452, %f407, %f450;
+ mov.f32 %f453, 0f00000000;
+ max.f32 %f454, %f453, %f452;
+ sqrt.rn.f32 %f102, %f454;
+ mul.f32 %f1004, %f449, 0f40C90FDB;
+ abs.f32 %f104, %f1004;
+ setp.neu.f32 %p41, %f104, 0f7F800000;
+ mov.f32 %f998, %f1004;
+ @%p41 bra BB0_30;
+
+ mul.rn.f32 %f998, %f1004, %f453;
+
+BB0_30:
+ mul.f32 %f456, %f998, 0f3F22F983;
+ cvt.rni.s32.f32 %r400, %f456;
+ cvt.rn.f32.s32 %f457, %r400;
+ neg.f32 %f458, %f457;
+ mov.f32 %f459, 0f3FC90FDA;
+ fma.rn.f32 %f460, %f458, %f459, %f998;
+ mov.f32 %f461, 0f33A22168;
+ fma.rn.f32 %f462, %f458, %f461, %f460;
+ mov.f32 %f463, 0f27C234C5;
+ fma.rn.f32 %f999, %f458, %f463, %f462;
+ abs.f32 %f464, %f998;
+ setp.leu.f32 %p42, %f464, 0f47CE4780;
+ @%p42 bra BB0_41;
+
+ mov.b32 %r19, %f998;
+ shr.u32 %r20, %r19, 23;
+ shl.b32 %r160, %r19, 8;
+ or.b32 %r21, %r160, -2147483648;
+ mov.u32 %r391, 0;
+ mov.u64 %rd304, 0;
+ mov.u64 %rd303, %rd2;
+ mov.u32 %r392, %r391;
+
+BB0_32:
+ .pragma "nounroll";
+ shl.b64 %rd61, %rd304, 2;
+ mov.u64 %rd62, __cudart_i2opi_f;
+ add.s64 %rd63, %rd62, %rd61;
+ ld.const.u32 %r163, [%rd63];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r161, %r163, %r21, %r392;
+ madc.hi.u32 %r392, %r163, %r21, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd303], %r161;
+ add.s32 %r391, %r391, 1;
+ cvt.s64.s32 %rd304, %r391;
+ mul.wide.s32 %rd64, %r391, 4;
+ add.s64 %rd303, %rd2, %rd64;
+ setp.ne.s32 %p43, %r391, 6;
+ @%p43 bra BB0_32;
+
+ and.b32 %r166, %r20, 255;
+ add.s32 %r167, %r166, -128;
+ shr.u32 %r168, %r167, 5;
+ and.b32 %r26, %r19, -2147483648;
+ st.local.u32 [%rd2+24], %r392;
+ mov.u32 %r169, 6;
+ sub.s32 %r170, %r169, %r168;
+ mul.wide.s32 %rd65, %r170, 4;
+ add.s64 %rd9, %rd2, %rd65;
+ ld.local.u32 %r393, [%rd9];
+ ld.local.u32 %r394, [%rd9+-4];
+ and.b32 %r29, %r20, 31;
+ setp.eq.s32 %p44, %r29, 0;
+ @%p44 bra BB0_35;
+
+ mov.u32 %r171, 32;
+ sub.s32 %r172, %r171, %r29;
+ shr.u32 %r173, %r394, %r172;
+ shl.b32 %r174, %r393, %r29;
+ add.s32 %r393, %r173, %r174;
+ ld.local.u32 %r175, [%rd9+-8];
+ shr.u32 %r176, %r175, %r172;
+ shl.b32 %r177, %r394, %r29;
+ add.s32 %r394, %r176, %r177;
+
+BB0_35:
+ shr.u32 %r178, %r394, 30;
+ shl.b32 %r179, %r393, 2;
+ add.s32 %r395, %r178, %r179;
+ shl.b32 %r35, %r394, 2;
+ shr.u32 %r180, %r395, 31;
+ shr.u32 %r181, %r393, 30;
+ add.s32 %r36, %r180, %r181;
+ setp.eq.s32 %p45, %r180, 0;
+ @%p45 bra BB0_36;
+ bra.uni BB0_37;
+
+BB0_36:
+ mov.u32 %r396, %r26;
+ mov.u32 %r397, %r35;
+ bra.uni BB0_38;
+
+BB0_37:
+ not.b32 %r182, %r395;
+ neg.s32 %r397, %r35;
+ setp.eq.s32 %p46, %r35, 0;
+ selp.u32 %r183, 1, 0, %p46;
+ add.s32 %r395, %r183, %r182;
+ xor.b32 %r396, %r26, -2147483648;
+
+BB0_38:
+ clz.b32 %r399, %r395;
+ setp.eq.s32 %p47, %r399, 0;
+ shl.b32 %r184, %r395, %r399;
+ mov.u32 %r185, 32;
+ sub.s32 %r186, %r185, %r399;
+ shr.u32 %r187, %r397, %r186;
+ add.s32 %r188, %r187, %r184;
+ selp.b32 %r44, %r395, %r188, %p47;
+ mov.u32 %r189, -921707870;
+ mul.hi.u32 %r398, %r44, %r189;
+ setp.eq.s32 %p48, %r26, 0;
+ neg.s32 %r190, %r36;
+ selp.b32 %r400, %r36, %r190, %p48;
+ setp.lt.s32 %p49, %r398, 1;
+ @%p49 bra BB0_40;
+
+ mul.lo.s32 %r191, %r44, -921707870;
+ shr.u32 %r192, %r191, 31;
+ shl.b32 %r193, %r398, 1;
+ add.s32 %r398, %r192, %r193;
+ add.s32 %r399, %r399, 1;
+
+BB0_40:
+ mov.u32 %r194, 126;
+ sub.s32 %r195, %r194, %r399;
+ shl.b32 %r196, %r195, 23;
+ add.s32 %r197, %r398, 1;
+ shr.u32 %r198, %r197, 7;
+ add.s32 %r199, %r198, 1;
+ shr.u32 %r200, %r199, 1;
+ add.s32 %r201, %r200, %r196;
+ or.b32 %r202, %r201, %r396;
+ mov.b32 %f999, %r202;
+
+BB0_41:
+ mul.rn.f32 %f110, %f999, %f999;
+ add.s32 %r52, %r400, 1;
+ and.b32 %r53, %r52, 1;
+ setp.eq.s32 %p50, %r53, 0;
+ @%p50 bra BB0_43;
+ bra.uni BB0_42;
+
+BB0_43:
+ mov.f32 %f467, 0f3C08839E;
+ mov.f32 %f468, 0fB94CA1F9;
+ fma.rn.f32 %f1000, %f468, %f110, %f467;
+ bra.uni BB0_44;
+
+BB0_42:
+ mov.f32 %f465, 0fBAB6061A;
+ mov.f32 %f466, 0f37CCF5CE;
+ fma.rn.f32 %f1000, %f466, %f110, %f465;
+
+BB0_44:
+ @%p50 bra BB0_46;
+ bra.uni BB0_45;
+
+BB0_46:
+ mov.f32 %f472, 0fBE2AAAA3;
+ fma.rn.f32 %f473, %f1000, %f110, %f472;
+ fma.rn.f32 %f1001, %f473, %f110, %f453;
+ bra.uni BB0_47;
+
+BB0_45:
+ mov.f32 %f469, 0f3D2AAAA5;
+ fma.rn.f32 %f470, %f1000, %f110, %f469;
+ mov.f32 %f471, 0fBF000000;
+ fma.rn.f32 %f1001, %f470, %f110, %f471;
+
+BB0_47:
+ fma.rn.f32 %f1002, %f1001, %f999, %f999;
+ @%p50 bra BB0_49;
+
+ fma.rn.f32 %f1002, %f1001, %f110, %f407;
+
+BB0_49:
+ and.b32 %r203, %r52, 2;
+ setp.eq.s32 %p53, %r203, 0;
+ @%p53 bra BB0_51;
+
+ mov.f32 %f477, 0fBF800000;
+ fma.rn.f32 %f1002, %f1002, %f477, %f453;
+
+BB0_51:
+ @%p41 bra BB0_53;
+
+ mul.rn.f32 %f1004, %f1004, %f453;
+
+BB0_53:
+ mul.f32 %f479, %f1004, 0f3F22F983;
+ cvt.rni.s32.f32 %r410, %f479;
+ cvt.rn.f32.s32 %f480, %r410;
+ neg.f32 %f481, %f480;
+ fma.rn.f32 %f483, %f481, %f459, %f1004;
+ fma.rn.f32 %f485, %f481, %f461, %f483;
+ fma.rn.f32 %f1005, %f481, %f463, %f485;
+ abs.f32 %f487, %f1004;
+ setp.leu.f32 %p55, %f487, 0f47CE4780;
+ @%p55 bra BB0_64;
+
+ mov.b32 %r55, %f1004;
+ shr.u32 %r56, %r55, 23;
+ shl.b32 %r206, %r55, 8;
+ or.b32 %r57, %r206, -2147483648;
+ mov.u32 %r401, 0;
+ mov.u64 %rd305, %rd2;
+ mov.u64 %rd306, %rd26;
+ mov.u32 %r402, %r401;
+
+BB0_55:
+ .pragma "nounroll";
+ shl.b64 %rd67, %rd306, 2;
+ mov.u64 %rd68, __cudart_i2opi_f;
+ add.s64 %rd69, %rd68, %rd67;
+ ld.const.u32 %r209, [%rd69];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r207, %r209, %r57, %r402;
+ madc.hi.u32 %r402, %r209, %r57, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd305], %r207;
+ add.s32 %r401, %r401, 1;
+ cvt.s64.s32 %rd306, %r401;
+ mul.wide.s32 %rd70, %r401, 4;
+ add.s64 %rd305, %rd2, %rd70;
+ setp.ne.s32 %p56, %r401, 6;
+ @%p56 bra BB0_55;
+
+ and.b32 %r212, %r56, 255;
+ add.s32 %r213, %r212, -128;
+ shr.u32 %r214, %r213, 5;
+ and.b32 %r62, %r55, -2147483648;
+ st.local.u32 [%rd2+24], %r402;
+ mov.u32 %r215, 6;
+ sub.s32 %r216, %r215, %r214;
+ mul.wide.s32 %rd71, %r216, 4;
+ add.s64 %rd15, %rd2, %rd71;
+ ld.local.u32 %r403, [%rd15];
+ ld.local.u32 %r404, [%rd15+-4];
+ and.b32 %r65, %r56, 31;
+ setp.eq.s32 %p57, %r65, 0;
+ @%p57 bra BB0_58;
+
+ mov.u32 %r217, 32;
+ sub.s32 %r218, %r217, %r65;
+ shr.u32 %r219, %r404, %r218;
+ shl.b32 %r220, %r403, %r65;
+ add.s32 %r403, %r219, %r220;
+ ld.local.u32 %r221, [%rd15+-8];
+ shr.u32 %r222, %r221, %r218;
+ shl.b32 %r223, %r404, %r65;
+ add.s32 %r404, %r222, %r223;
+
+BB0_58:
+ shr.u32 %r224, %r404, 30;
+ shl.b32 %r225, %r403, 2;
+ add.s32 %r405, %r224, %r225;
+ shl.b32 %r71, %r404, 2;
+ shr.u32 %r226, %r405, 31;
+ shr.u32 %r227, %r403, 30;
+ add.s32 %r72, %r226, %r227;
+ setp.eq.s32 %p58, %r226, 0;
+ @%p58 bra BB0_59;
+ bra.uni BB0_60;
+
+BB0_59:
+ mov.u32 %r406, %r62;
+ mov.u32 %r407, %r71;
+ bra.uni BB0_61;
+
+BB0_60:
+ not.b32 %r228, %r405;
+ neg.s32 %r407, %r71;
+ setp.eq.s32 %p59, %r71, 0;
+ selp.u32 %r229, 1, 0, %p59;
+ add.s32 %r405, %r229, %r228;
+ xor.b32 %r406, %r62, -2147483648;
+
+BB0_61:
+ clz.b32 %r409, %r405;
+ setp.eq.s32 %p60, %r409, 0;
+ shl.b32 %r230, %r405, %r409;
+ mov.u32 %r231, 32;
+ sub.s32 %r232, %r231, %r409;
+ shr.u32 %r233, %r407, %r232;
+ add.s32 %r234, %r233, %r230;
+ selp.b32 %r80, %r405, %r234, %p60;
+ mov.u32 %r235, -921707870;
+ mul.hi.u32 %r408, %r80, %r235;
+ setp.eq.s32 %p61, %r62, 0;
+ neg.s32 %r236, %r72;
+ selp.b32 %r410, %r72, %r236, %p61;
+ setp.lt.s32 %p62, %r408, 1;
+ @%p62 bra BB0_63;
+
+ mul.lo.s32 %r237, %r80, -921707870;
+ shr.u32 %r238, %r237, 31;
+ shl.b32 %r239, %r408, 1;
+ add.s32 %r408, %r238, %r239;
+ add.s32 %r409, %r409, 1;
+
+BB0_63:
+ mov.u32 %r240, 126;
+ sub.s32 %r241, %r240, %r409;
+ shl.b32 %r242, %r241, 23;
+ add.s32 %r243, %r408, 1;
+ shr.u32 %r244, %r243, 7;
+ add.s32 %r245, %r244, 1;
+ shr.u32 %r246, %r245, 1;
+ add.s32 %r247, %r246, %r242;
+ or.b32 %r248, %r247, %r406;
+ mov.b32 %f1005, %r248;
+
+BB0_64:
+ mul.rn.f32 %f127, %f1005, %f1005;
+ and.b32 %r88, %r410, 1;
+ setp.eq.s32 %p63, %r88, 0;
+ @%p63 bra BB0_66;
+ bra.uni BB0_65;
+
+BB0_66:
+ mov.f32 %f490, 0f3C08839E;
+ mov.f32 %f491, 0fB94CA1F9;
+ fma.rn.f32 %f1006, %f491, %f127, %f490;
+ bra.uni BB0_67;
+
+BB0_65:
+ mov.f32 %f488, 0fBAB6061A;
+ mov.f32 %f489, 0f37CCF5CE;
+ fma.rn.f32 %f1006, %f489, %f127, %f488;
+
+BB0_67:
+ @%p63 bra BB0_69;
+ bra.uni BB0_68;
+
+BB0_69:
+ mov.f32 %f495, 0fBE2AAAA3;
+ fma.rn.f32 %f496, %f1006, %f127, %f495;
+ fma.rn.f32 %f1007, %f496, %f127, %f453;
+ bra.uni BB0_70;
+
+BB0_68:
+ mov.f32 %f492, 0f3D2AAAA5;
+ fma.rn.f32 %f493, %f1006, %f127, %f492;
+ mov.f32 %f494, 0fBF000000;
+ fma.rn.f32 %f1007, %f493, %f127, %f494;
+
+BB0_70:
+ fma.rn.f32 %f1008, %f1007, %f1005, %f1005;
+ @%p63 bra BB0_72;
+
+ fma.rn.f32 %f1008, %f1007, %f127, %f407;
+
+BB0_72:
+ and.b32 %r249, %r410, 2;
+ setp.eq.s32 %p66, %r249, 0;
+ @%p66 bra BB0_74;
+
+ mov.f32 %f500, 0fBF800000;
+ fma.rn.f32 %f1008, %f1008, %f500, %f453;
+
+BB0_74:
+ mul.f32 %f509, %f102, %f1002;
+ mul.f32 %f510, %f102, %f1008;
+ mul.f32 %f511, %f77, %f510;
+ mul.f32 %f512, %f78, %f510;
+ mul.f32 %f513, %f79, %f510;
+ fma.rn.f32 %f514, %f86, %f509, %f511;
+ fma.rn.f32 %f515, %f85, %f509, %f512;
+ fma.rn.f32 %f516, %f84, %f509, %f513;
+ fma.rn.f32 %f504, %f956, %f101, %f514;
+ fma.rn.f32 %f505, %f957, %f101, %f515;
+ fma.rn.f32 %f506, %f958, %f101, %f516;
+ mov.u32 %r251, 0;
+ st.local.u32 [%rd3], %r251;
+ ld.global.u32 %r250, [root];
+ mov.f32 %f508, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r250, %f12, %f13, %f14, %f504, %f505, %f506, %r251, %f94, %f508, %rd59, %r102);
+ // inline asm
+ ld.local.f32 %f517, [%rd3];
+ setp.lt.f32 %p67, %f517, 0f00000000;
+ selp.f32 %f518, 0f00000000, %f517, %p67;
+ selp.f32 %f519, 0f00000000, 0f3F800000, %p67;
+ add.f32 %f992, %f992, %f519;
+ fma.rn.f32 %f995, %f504, %f518, %f995;
+ fma.rn.f32 %f994, %f505, %f518, %f994;
+ fma.rn.f32 %f993, %f506, %f518, %f993;
+ add.f32 %f996, %f996, %f518;
+ mul.f32 %f520, %f957, %f505;
+ fma.rn.f32 %f521, %f956, %f504, %f520;
+ fma.rn.f32 %f522, %f958, %f506, %f521;
+ cvt.sat.f32.f32 %f523, %f522;
+ fma.rn.f32 %f997, %f518, %f523, %f997;
+ add.s32 %r389, %r389, 1;
+ setp.lt.s32 %p68, %r389, %r1;
+ @%p68 bra BB0_28;
+
+ add.s32 %r387, %r387, 1;
+ setp.lt.s32 %p69, %r387, %r1;
+ @%p69 bra BB0_27;
+
+BB0_76:
+ mul.lo.s32 %r253, %r1, %r1;
+ cvt.rn.f32.s32 %f524, %r253;
+ div.rn.f32 %f525, %f997, %f524;
+ div.rn.f32 %f1021, %f992, %f524;
+ div.rn.f32 %f1017, %f996, %f524;
+ div.rn.f32 %f1018, %f995, %f524;
+ div.rn.f32 %f1019, %f994, %f524;
+ div.rn.f32 %f1020, %f993, %f524;
+ add.f32 %f1016, %f525, %f525;
+
+BB0_77:
+ ld.global.u32 %r412, [imageEnabled];
+ and.b32 %r254, %r412, 8;
+ setp.eq.s32 %p70, %r254, 0;
+ @%p70 bra BB0_90;
+
+ cvt.u64.u32 %rd75, %r3;
+ cvt.u64.u32 %rd76, %r4;
+ mov.u64 %rd79, image_Mask;
+ cvta.global.u64 %rd74, %rd79;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r101, %r101, %rd75, %rd76, %rd26, %rd26);
+ // inline asm
+ mov.f32 %f528, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f529, %f528;
+ fma.rn.f32 %f530, %f529, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f163, %f530;
+ abs.f32 %f164, %f1021;
+ setp.lt.f32 %p71, %f164, 0f00800000;
+ mul.f32 %f531, %f164, 0f4B800000;
+ selp.f32 %f532, 0fC3170000, 0fC2FE0000, %p71;
+ selp.f32 %f533, %f531, %f164, %p71;
+ mov.b32 %r257, %f533;
+ and.b32 %r258, %r257, 8388607;
+ or.b32 %r259, %r258, 1065353216;
+ mov.b32 %f534, %r259;
+ shr.u32 %r260, %r257, 23;
+ cvt.rn.f32.u32 %f535, %r260;
+ add.f32 %f536, %f532, %f535;
+ setp.gt.f32 %p72, %f534, 0f3FB504F3;
+ mul.f32 %f537, %f534, 0f3F000000;
+ add.f32 %f538, %f536, 0f3F800000;
+ selp.f32 %f539, %f537, %f534, %p72;
+ selp.f32 %f540, %f538, %f536, %p72;
+ add.f32 %f541, %f539, 0fBF800000;
+ add.f32 %f527, %f539, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f526,%f527;
+ // inline asm
+ add.f32 %f542, %f541, %f541;
+ mul.f32 %f543, %f526, %f542;
+ mul.f32 %f544, %f543, %f543;
+ mov.f32 %f545, 0f3C4CAF63;
+ mov.f32 %f546, 0f3B18F0FE;
+ fma.rn.f32 %f547, %f546, %f544, %f545;
+ mov.f32 %f548, 0f3DAAAABD;
+ fma.rn.f32 %f549, %f547, %f544, %f548;
+ mul.rn.f32 %f550, %f549, %f544;
+ mul.rn.f32 %f551, %f550, %f543;
+ sub.f32 %f552, %f541, %f543;
+ neg.f32 %f553, %f543;
+ add.f32 %f554, %f552, %f552;
+ fma.rn.f32 %f555, %f553, %f541, %f554;
+ mul.rn.f32 %f556, %f526, %f555;
+ add.f32 %f557, %f551, %f543;
+ sub.f32 %f558, %f543, %f557;
+ add.f32 %f559, %f551, %f558;
+ add.f32 %f560, %f556, %f559;
+ add.f32 %f561, %f557, %f560;
+ sub.f32 %f562, %f557, %f561;
+ add.f32 %f563, %f560, %f562;
+ mov.f32 %f564, 0f3F317200;
+ mul.rn.f32 %f565, %f540, %f564;
+ mov.f32 %f566, 0f35BFBE8E;
+ mul.rn.f32 %f567, %f540, %f566;
+ add.f32 %f568, %f565, %f561;
+ sub.f32 %f569, %f565, %f568;
+ add.f32 %f570, %f561, %f569;
+ add.f32 %f571, %f563, %f570;
+ add.f32 %f572, %f567, %f571;
+ add.f32 %f573, %f568, %f572;
+ sub.f32 %f574, %f568, %f573;
+ add.f32 %f575, %f572, %f574;
+ mov.f32 %f576, 0f3EE8BA2E;
+ mul.rn.f32 %f577, %f576, %f573;
+ neg.f32 %f578, %f577;
+ fma.rn.f32 %f579, %f576, %f573, %f578;
+ fma.rn.f32 %f580, %f576, %f575, %f579;
+ mov.f32 %f581, 0f00000000;
+ fma.rn.f32 %f582, %f581, %f573, %f580;
+ add.rn.f32 %f583, %f577, %f582;
+ neg.f32 %f584, %f583;
+ add.rn.f32 %f585, %f577, %f584;
+ add.rn.f32 %f586, %f585, %f582;
+ mov.b32 %r261, %f583;
+ setp.eq.s32 %p73, %r261, 1118925336;
+ add.s32 %r262, %r261, -1;
+ mov.b32 %f587, %r262;
+ add.f32 %f588, %f586, 0f37000000;
+ selp.f32 %f589, %f587, %f583, %p73;
+ selp.f32 %f165, %f588, %f586, %p73;
+ mul.f32 %f590, %f589, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f591, %f590;
+ mov.f32 %f592, 0fBF317200;
+ fma.rn.f32 %f593, %f591, %f592, %f589;
+ mov.f32 %f594, 0fB5BFBE8E;
+ fma.rn.f32 %f595, %f591, %f594, %f593;
+ mul.f32 %f596, %f595, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f597, %f596;
+ add.f32 %f598, %f591, 0f00000000;
+ ex2.approx.f32 %f599, %f598;
+ mul.f32 %f600, %f597, %f599;
+ setp.lt.f32 %p74, %f589, 0fC2D20000;
+ selp.f32 %f601, 0f00000000, %f600, %p74;
+ setp.gt.f32 %p75, %f589, 0f42D20000;
+ selp.f32 %f1022, 0f7F800000, %f601, %p75;
+ setp.eq.f32 %p76, %f1022, 0f7F800000;
+ @%p76 bra BB0_80;
+
+ fma.rn.f32 %f1022, %f1022, %f165, %f1022;
+
+BB0_80:
+ setp.lt.f32 %p77, %f1021, 0f00000000;
+ setp.eq.f32 %p78, %f163, 0f3F800000;
+ and.pred %p3, %p77, %p78;
+ mov.b32 %r263, %f1022;
+ xor.b32 %r264, %r263, -2147483648;
+ mov.b32 %f602, %r264;
+ selp.f32 %f1024, %f602, %f1022, %p3;
+ setp.eq.f32 %p79, %f1021, 0f00000000;
+ @%p79 bra BB0_83;
+ bra.uni BB0_81;
+
+BB0_83:
+ add.f32 %f605, %f1021, %f1021;
+ selp.f32 %f1024, %f605, 0f00000000, %p78;
+ bra.uni BB0_84;
+
+BB0_148:
+ mov.u64 %rd220, image_HDR;
+ cvta.global.u64 %rd215, %rd220;
+ mov.u32 %r350, 8;
+ mov.u64 %rd219, 0;
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd215, %r101, %r350, %rd19, %rd20, %rd219, %rd219);
+ // inline asm
+ mov.f32 %f918, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f918;}
+
+ // inline asm
+ mov.u16 %rs99, 0;
+ st.v4.u16 [%rd214], {%rs98, %rs98, %rs98, %rs99};
+
+BB0_149:
+ ld.global.u32 %r351, [additive];
+ setp.eq.s32 %p146, %r351, 0;
+ @%p146 bra BB0_151;
+
+ mov.u64 %rd233, image_RNM0;
+ cvta.global.u64 %rd222, %rd233;
+ mov.u32 %r355, 8;
+ mov.u64 %rd232, 0;
+ // inline asm
+ call (%rd221), _rt_buffer_get_64, (%rd222, %r101, %r355, %rd19, %rd20, %rd232, %rd232);
+ // inline asm
+ ld.v4.u16 {%rs106, %rs107, %rs108, %rs109}, [%rd221];
+ // inline asm
+ { cvt.f32.f16 %f919, %rs106;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f920, %rs107;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f921, %rs108;}
+
+ // inline asm
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd222, %r101, %r355, %rd19, %rd20, %rd232, %rd232);
+ // inline asm
+ add.f32 %f922, %f919, 0f00000000;
+ add.f32 %f923, %f920, 0f00000000;
+ add.f32 %f924, %f921, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f924;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f923;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs103, %f922;}
+
+ // inline asm
+ mov.u16 %rs110, 0;
+ st.v4.u16 [%rd227], {%rs103, %rs104, %rs105, %rs110};
+ bra.uni BB0_152;
+
+BB0_151:
+ mov.u64 %rd240, image_RNM0;
+ cvta.global.u64 %rd235, %rd240;
+ mov.u32 %r357, 8;
+ mov.u64 %rd239, 0;
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd235, %r101, %r357, %rd19, %rd20, %rd239, %rd239);
+ // inline asm
+ mov.f32 %f925, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f925;}
+
+ // inline asm
+ mov.u16 %rs112, 0;
+ st.v4.u16 [%rd234], {%rs111, %rs111, %rs111, %rs112};
+
+BB0_152:
+ ld.global.u32 %r358, [additive];
+ setp.eq.s32 %p147, %r358, 0;
+ @%p147 bra BB0_154;
+
+ mov.u64 %rd253, image_RNM1;
+ cvta.global.u64 %rd242, %rd253;
+ mov.u32 %r362, 8;
+ mov.u64 %rd252, 0;
+ // inline asm
+ call (%rd241), _rt_buffer_get_64, (%rd242, %r101, %r362, %rd19, %rd20, %rd252, %rd252);
+ // inline asm
+ ld.v4.u16 {%rs119, %rs120, %rs121, %rs122}, [%rd241];
+ // inline asm
+ { cvt.f32.f16 %f926, %rs119;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f927, %rs120;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f928, %rs121;}
+
+ // inline asm
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd242, %r101, %r362, %rd19, %rd20, %rd252, %rd252);
+ // inline asm
+ add.f32 %f929, %f926, 0f00000000;
+ add.f32 %f930, %f927, 0f00000000;
+ add.f32 %f931, %f928, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs118, %f931;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f930;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f929;}
+
+ // inline asm
+ mov.u16 %rs123, 0;
+ st.v4.u16 [%rd247], {%rs116, %rs117, %rs118, %rs123};
+ bra.uni BB0_155;
+
+BB0_154:
+ mov.u64 %rd260, image_RNM1;
+ cvta.global.u64 %rd255, %rd260;
+ mov.u32 %r364, 8;
+ mov.u64 %rd259, 0;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r101, %r364, %rd19, %rd20, %rd259, %rd259);
+ // inline asm
+ mov.f32 %f932, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs124, %f932;}
+
+ // inline asm
+ mov.u16 %rs125, 0;
+ st.v4.u16 [%rd254], {%rs124, %rs124, %rs124, %rs125};
+
+BB0_155:
+ ld.global.u32 %r365, [additive];
+ setp.eq.s32 %p148, %r365, 0;
+ @%p148 bra BB0_157;
+
+ mov.u64 %rd273, image_RNM2;
+ cvta.global.u64 %rd262, %rd273;
+ mov.u32 %r369, 8;
+ mov.u64 %rd272, 0;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r101, %r369, %rd19, %rd20, %rd272, %rd272);
+ // inline asm
+ ld.v4.u16 {%rs132, %rs133, %rs134, %rs135}, [%rd261];
+ // inline asm
+ { cvt.f32.f16 %f933, %rs132;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f934, %rs133;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f935, %rs134;}
+
+ // inline asm
+ // inline asm
+ call (%rd267), _rt_buffer_get_64, (%rd262, %r101, %r369, %rd19, %rd20, %rd272, %rd272);
+ // inline asm
+ add.f32 %f936, %f933, 0f00000000;
+ add.f32 %f937, %f934, 0f00000000;
+ add.f32 %f938, %f935, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs131, %f938;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f937;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f936;}
+
+ // inline asm
+ mov.u16 %rs136, 0;
+ st.v4.u16 [%rd267], {%rs129, %rs130, %rs131, %rs136};
+ bra.uni BB0_158;
+
+BB0_157:
+ mov.u64 %rd280, image_RNM2;
+ cvta.global.u64 %rd275, %rd280;
+ mov.u32 %r371, 8;
+ mov.u64 %rd279, 0;
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd275, %r101, %r371, %rd19, %rd20, %rd279, %rd279);
+ // inline asm
+ mov.f32 %f939, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs137, %f939;}
+
+ // inline asm
+ mov.u16 %rs138, 0;
+ st.v4.u16 [%rd274], {%rs137, %rs137, %rs137, %rs138};
+
+BB0_158:
+ ld.global.u32 %r372, [additive];
+ setp.eq.s32 %p149, %r372, 0;
+ @%p149 bra BB0_160;
+
+ mov.u64 %rd293, image_RNM3;
+ cvta.global.u64 %rd282, %rd293;
+ mov.u32 %r376, 8;
+ mov.u64 %rd292, 0;
+ // inline asm
+ call (%rd281), _rt_buffer_get_64, (%rd282, %r101, %r376, %rd19, %rd20, %rd292, %rd292);
+ // inline asm
+ ld.v4.u16 {%rs145, %rs146, %rs147, %rs148}, [%rd281];
+ // inline asm
+ { cvt.f32.f16 %f940, %rs145;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f941, %rs146;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f942, %rs147;}
+
+ // inline asm
+ // inline asm
+ call (%rd287), _rt_buffer_get_64, (%rd282, %r101, %r376, %rd19, %rd20, %rd292, %rd292);
+ // inline asm
+ add.f32 %f943, %f940, 0f00000000;
+ add.f32 %f944, %f941, 0f00000000;
+ add.f32 %f945, %f942, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs144, %f945;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f944;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs142, %f943;}
+
+ // inline asm
+ mov.u16 %rs149, 0;
+ st.v4.u16 [%rd287], {%rs142, %rs143, %rs144, %rs149};
+ bra.uni BB0_161;
+
+BB0_160:
+ mov.u64 %rd300, image_RNM3;
+ cvta.global.u64 %rd295, %rd300;
+ mov.u32 %r378, 8;
+ mov.u64 %rd299, 0;
+ // inline asm
+ call (%rd294), _rt_buffer_get_64, (%rd295, %r101, %r378, %rd19, %rd20, %rd299, %rd299);
+ // inline asm
+ mov.f32 %f946, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f946;}
+
+ // inline asm
+ mov.u16 %rs151, 0;
+ st.v4.u16 [%rd294], {%rs150, %rs150, %rs150, %rs151};
+ bra.uni BB0_161;
+
+BB0_81:
+ setp.geu.f32 %p80, %f1021, 0f00000000;
+ @%p80 bra BB0_84;
+
+ cvt.rzi.f32.f32 %f604, %f576;
+ setp.neu.f32 %p81, %f604, 0f3EE8BA2E;
+ selp.f32 %f1024, 0f7FFFFFFF, %f1024, %p81;
+
+BB0_84:
+ add.f32 %f606, %f164, 0f3EE8BA2E;
+ mov.b32 %r265, %f606;
+ setp.lt.s32 %p83, %r265, 2139095040;
+ @%p83 bra BB0_89;
+
+ setp.gtu.f32 %p84, %f164, 0f7F800000;
+ @%p84 bra BB0_88;
+ bra.uni BB0_86;
+
+BB0_88:
+ add.f32 %f1024, %f1021, 0f3EE8BA2E;
+ bra.uni BB0_89;
+
+BB0_86:
+ setp.neu.f32 %p85, %f164, 0f7F800000;
+ @%p85 bra BB0_89;
+
+ selp.f32 %f1024, 0fFF800000, 0f7F800000, %p3;
+
+BB0_89:
+ mul.f32 %f607, %f1024, 0f437F0000;
+ setp.eq.f32 %p86, %f1021, 0f3F800000;
+ selp.f32 %f608, 0f437F0000, %f607, %p86;
+ cvt.rzi.u32.f32 %r266, %f608;
+ cvt.u16.u32 %rs14, %r266;
+ mov.u16 %rs15, 255;
+ st.v2.u8 [%rd73], {%rs14, %rs15};
+ ld.global.u32 %r412, [imageEnabled];
+
+BB0_90:
+ ld.global.f32 %f609, [lightColor];
+ mul.f32 %f176, %f1016, %f609;
+ ld.global.f32 %f610, [lightColor+4];
+ mul.f32 %f177, %f1016, %f610;
+ ld.global.f32 %f611, [lightColor+8];
+ mul.f32 %f178, %f1016, %f611;
+ and.b32 %r267, %r412, 1;
+ setp.eq.b32 %p87, %r267, 1;
+ @!%p87 bra BB0_125;
+ bra.uni BB0_91;
+
+BB0_91:
+ mov.f32 %f614, 0f3E666666;
+ cvt.rzi.f32.f32 %f615, %f614;
+ fma.rn.f32 %f616, %f615, 0fC0000000, 0f3EE66666;
+ abs.f32 %f179, %f616;
+ abs.f32 %f180, %f176;
+ setp.lt.f32 %p88, %f180, 0f00800000;
+ mul.f32 %f617, %f180, 0f4B800000;
+ selp.f32 %f618, 0fC3170000, 0fC2FE0000, %p88;
+ selp.f32 %f619, %f617, %f180, %p88;
+ mov.b32 %r268, %f619;
+ and.b32 %r269, %r268, 8388607;
+ or.b32 %r270, %r269, 1065353216;
+ mov.b32 %f620, %r270;
+ shr.u32 %r271, %r268, 23;
+ cvt.rn.f32.u32 %f621, %r271;
+ add.f32 %f622, %f618, %f621;
+ setp.gt.f32 %p89, %f620, 0f3FB504F3;
+ mul.f32 %f623, %f620, 0f3F000000;
+ add.f32 %f624, %f622, 0f3F800000;
+ selp.f32 %f625, %f623, %f620, %p89;
+ selp.f32 %f626, %f624, %f622, %p89;
+ add.f32 %f627, %f625, 0fBF800000;
+ add.f32 %f613, %f625, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f612,%f613;
+ // inline asm
+ add.f32 %f628, %f627, %f627;
+ mul.f32 %f629, %f612, %f628;
+ mul.f32 %f630, %f629, %f629;
+ mov.f32 %f631, 0f3C4CAF63;
+ mov.f32 %f632, 0f3B18F0FE;
+ fma.rn.f32 %f633, %f632, %f630, %f631;
+ mov.f32 %f634, 0f3DAAAABD;
+ fma.rn.f32 %f635, %f633, %f630, %f634;
+ mul.rn.f32 %f636, %f635, %f630;
+ mul.rn.f32 %f637, %f636, %f629;
+ sub.f32 %f638, %f627, %f629;
+ neg.f32 %f639, %f629;
+ add.f32 %f640, %f638, %f638;
+ fma.rn.f32 %f641, %f639, %f627, %f640;
+ mul.rn.f32 %f642, %f612, %f641;
+ add.f32 %f643, %f637, %f629;
+ sub.f32 %f644, %f629, %f643;
+ add.f32 %f645, %f637, %f644;
+ add.f32 %f646, %f642, %f645;
+ add.f32 %f647, %f643, %f646;
+ sub.f32 %f648, %f643, %f647;
+ add.f32 %f649, %f646, %f648;
+ mov.f32 %f650, 0f3F317200;
+ mul.rn.f32 %f651, %f626, %f650;
+ mov.f32 %f652, 0f35BFBE8E;
+ mul.rn.f32 %f653, %f626, %f652;
+ add.f32 %f654, %f651, %f647;
+ sub.f32 %f655, %f651, %f654;
+ add.f32 %f656, %f647, %f655;
+ add.f32 %f657, %f649, %f656;
+ add.f32 %f658, %f653, %f657;
+ add.f32 %f659, %f654, %f658;
+ sub.f32 %f660, %f654, %f659;
+ add.f32 %f661, %f658, %f660;
+ mov.f32 %f662, 0f3EE66666;
+ mul.rn.f32 %f663, %f662, %f659;
+ neg.f32 %f664, %f663;
+ fma.rn.f32 %f665, %f662, %f659, %f664;
+ fma.rn.f32 %f666, %f662, %f661, %f665;
+ mov.f32 %f667, 0f00000000;
+ fma.rn.f32 %f668, %f667, %f659, %f666;
+ add.rn.f32 %f669, %f663, %f668;
+ neg.f32 %f670, %f669;
+ add.rn.f32 %f671, %f663, %f670;
+ add.rn.f32 %f672, %f671, %f668;
+ mov.b32 %r272, %f669;
+ setp.eq.s32 %p90, %r272, 1118925336;
+ add.s32 %r273, %r272, -1;
+ mov.b32 %f673, %r273;
+ add.f32 %f674, %f672, 0f37000000;
+ selp.f32 %f675, %f673, %f669, %p90;
+ selp.f32 %f181, %f674, %f672, %p90;
+ mul.f32 %f676, %f675, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f677, %f676;
+ mov.f32 %f678, 0fBF317200;
+ fma.rn.f32 %f679, %f677, %f678, %f675;
+ mov.f32 %f680, 0fB5BFBE8E;
+ fma.rn.f32 %f681, %f677, %f680, %f679;
+ mul.f32 %f682, %f681, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f683, %f682;
+ add.f32 %f684, %f677, 0f00000000;
+ ex2.approx.f32 %f685, %f684;
+ mul.f32 %f686, %f683, %f685;
+ setp.lt.f32 %p91, %f675, 0fC2D20000;
+ selp.f32 %f687, 0f00000000, %f686, %p91;
+ setp.gt.f32 %p92, %f675, 0f42D20000;
+ selp.f32 %f1025, 0f7F800000, %f687, %p92;
+ setp.eq.f32 %p93, %f1025, 0f7F800000;
+ @%p93 bra BB0_93;
+
+ fma.rn.f32 %f1025, %f1025, %f181, %f1025;
+
+BB0_93:
+ setp.lt.f32 %p94, %f176, 0f00000000;
+ setp.eq.f32 %p95, %f179, 0f3F800000;
+ and.pred %p4, %p94, %p95;
+ mov.b32 %r274, %f1025;
+ xor.b32 %r275, %r274, -2147483648;
+ mov.b32 %f688, %r275;
+ selp.f32 %f1027, %f688, %f1025, %p4;
+ setp.eq.f32 %p96, %f176, 0f00000000;
+ @%p96 bra BB0_96;
+ bra.uni BB0_94;
+
+BB0_96:
+ add.f32 %f691, %f176, %f176;
+ selp.f32 %f1027, %f691, 0f00000000, %p95;
+ bra.uni BB0_97;
+
+BB0_94:
+ setp.geu.f32 %p97, %f176, 0f00000000;
+ @%p97 bra BB0_97;
+
+ cvt.rzi.f32.f32 %f690, %f662;
+ setp.neu.f32 %p98, %f690, 0f3EE66666;
+ selp.f32 %f1027, 0f7FFFFFFF, %f1027, %p98;
+
+BB0_97:
+ add.f32 %f692, %f180, 0f3EE66666;
+ mov.b32 %r276, %f692;
+ setp.lt.s32 %p100, %r276, 2139095040;
+ @%p100 bra BB0_102;
+
+ setp.gtu.f32 %p101, %f180, 0f7F800000;
+ @%p101 bra BB0_101;
+ bra.uni BB0_99;
+
+BB0_101:
+ add.f32 %f1027, %f176, 0f3EE66666;
+ bra.uni BB0_102;
+
+BB0_99:
+ setp.neu.f32 %p102, %f180, 0f7F800000;
+ @%p102 bra BB0_102;
+
+ selp.f32 %f1027, 0fFF800000, 0f7F800000, %p4;
+
+BB0_102:
+ setp.eq.f32 %p103, %f176, 0f3F800000;
+ selp.f32 %f192, 0f3F800000, %f1027, %p103;
+ abs.f32 %f193, %f177;
+ setp.lt.f32 %p104, %f193, 0f00800000;
+ mul.f32 %f695, %f193, 0f4B800000;
+ selp.f32 %f696, 0fC3170000, 0fC2FE0000, %p104;
+ selp.f32 %f697, %f695, %f193, %p104;
+ mov.b32 %r277, %f697;
+ and.b32 %r278, %r277, 8388607;
+ or.b32 %r279, %r278, 1065353216;
+ mov.b32 %f698, %r279;
+ shr.u32 %r280, %r277, 23;
+ cvt.rn.f32.u32 %f699, %r280;
+ add.f32 %f700, %f696, %f699;
+ setp.gt.f32 %p105, %f698, 0f3FB504F3;
+ mul.f32 %f701, %f698, 0f3F000000;
+ add.f32 %f702, %f700, 0f3F800000;
+ selp.f32 %f703, %f701, %f698, %p105;
+ selp.f32 %f704, %f702, %f700, %p105;
+ add.f32 %f705, %f703, 0fBF800000;
+ add.f32 %f694, %f703, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f693,%f694;
+ // inline asm
+ add.f32 %f706, %f705, %f705;
+ mul.f32 %f707, %f693, %f706;
+ mul.f32 %f708, %f707, %f707;
+ fma.rn.f32 %f711, %f632, %f708, %f631;
+ fma.rn.f32 %f713, %f711, %f708, %f634;
+ mul.rn.f32 %f714, %f713, %f708;
+ mul.rn.f32 %f715, %f714, %f707;
+ sub.f32 %f716, %f705, %f707;
+ neg.f32 %f717, %f707;
+ add.f32 %f718, %f716, %f716;
+ fma.rn.f32 %f719, %f717, %f705, %f718;
+ mul.rn.f32 %f720, %f693, %f719;
+ add.f32 %f721, %f715, %f707;
+ sub.f32 %f722, %f707, %f721;
+ add.f32 %f723, %f715, %f722;
+ add.f32 %f724, %f720, %f723;
+ add.f32 %f725, %f721, %f724;
+ sub.f32 %f726, %f721, %f725;
+ add.f32 %f727, %f724, %f726;
+ mul.rn.f32 %f729, %f704, %f650;
+ mul.rn.f32 %f731, %f704, %f652;
+ add.f32 %f732, %f729, %f725;
+ sub.f32 %f733, %f729, %f732;
+ add.f32 %f734, %f725, %f733;
+ add.f32 %f735, %f727, %f734;
+ add.f32 %f736, %f731, %f735;
+ add.f32 %f737, %f732, %f736;
+ sub.f32 %f738, %f732, %f737;
+ add.f32 %f739, %f736, %f738;
+ mul.rn.f32 %f741, %f662, %f737;
+ neg.f32 %f742, %f741;
+ fma.rn.f32 %f743, %f662, %f737, %f742;
+ fma.rn.f32 %f744, %f662, %f739, %f743;
+ fma.rn.f32 %f746, %f667, %f737, %f744;
+ add.rn.f32 %f747, %f741, %f746;
+ neg.f32 %f748, %f747;
+ add.rn.f32 %f749, %f741, %f748;
+ add.rn.f32 %f750, %f749, %f746;
+ mov.b32 %r281, %f747;
+ setp.eq.s32 %p106, %r281, 1118925336;
+ add.s32 %r282, %r281, -1;
+ mov.b32 %f751, %r282;
+ add.f32 %f752, %f750, 0f37000000;
+ selp.f32 %f753, %f751, %f747, %p106;
+ selp.f32 %f194, %f752, %f750, %p106;
+ mul.f32 %f754, %f753, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f755, %f754;
+ fma.rn.f32 %f757, %f755, %f678, %f753;
+ fma.rn.f32 %f759, %f755, %f680, %f757;
+ mul.f32 %f760, %f759, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f761, %f760;
+ add.f32 %f762, %f755, 0f00000000;
+ ex2.approx.f32 %f763, %f762;
+ mul.f32 %f764, %f761, %f763;
+ setp.lt.f32 %p107, %f753, 0fC2D20000;
+ selp.f32 %f765, 0f00000000, %f764, %p107;
+ setp.gt.f32 %p108, %f753, 0f42D20000;
+ selp.f32 %f1028, 0f7F800000, %f765, %p108;
+ setp.eq.f32 %p109, %f1028, 0f7F800000;
+ @%p109 bra BB0_104;
+
+ fma.rn.f32 %f1028, %f1028, %f194, %f1028;
+
+BB0_104:
+ setp.lt.f32 %p110, %f177, 0f00000000;
+ and.pred %p5, %p110, %p95;
+ mov.b32 %r283, %f1028;
+ xor.b32 %r284, %r283, -2147483648;
+ mov.b32 %f766, %r284;
+ selp.f32 %f1030, %f766, %f1028, %p5;
+ setp.eq.f32 %p112, %f177, 0f00000000;
+ @%p112 bra BB0_107;
+ bra.uni BB0_105;
+
+BB0_107:
+ add.f32 %f769, %f177, %f177;
+ selp.f32 %f1030, %f769, 0f00000000, %p95;
+ bra.uni BB0_108;
+
+BB0_105:
+ setp.geu.f32 %p113, %f177, 0f00000000;
+ @%p113 bra BB0_108;
+
+ cvt.rzi.f32.f32 %f768, %f662;
+ setp.neu.f32 %p114, %f768, 0f3EE66666;
+ selp.f32 %f1030, 0f7FFFFFFF, %f1030, %p114;
+
+BB0_108:
+ add.f32 %f770, %f193, 0f3EE66666;
+ mov.b32 %r285, %f770;
+ setp.lt.s32 %p116, %r285, 2139095040;
+ @%p116 bra BB0_113;
+
+ setp.gtu.f32 %p117, %f193, 0f7F800000;
+ @%p117 bra BB0_112;
+ bra.uni BB0_110;
+
+BB0_112:
+ add.f32 %f1030, %f177, 0f3EE66666;
+ bra.uni BB0_113;
+
+BB0_110:
+ setp.neu.f32 %p118, %f193, 0f7F800000;
+ @%p118 bra BB0_113;
+
+ selp.f32 %f1030, 0fFF800000, 0f7F800000, %p5;
+
+BB0_113:
+ setp.eq.f32 %p119, %f177, 0f3F800000;
+ selp.f32 %f205, 0f3F800000, %f1030, %p119;
+ abs.f32 %f206, %f178;
+ setp.lt.f32 %p120, %f206, 0f00800000;
+ mul.f32 %f773, %f206, 0f4B800000;
+ selp.f32 %f774, 0fC3170000, 0fC2FE0000, %p120;
+ selp.f32 %f775, %f773, %f206, %p120;
+ mov.b32 %r286, %f775;
+ and.b32 %r287, %r286, 8388607;
+ or.b32 %r288, %r287, 1065353216;
+ mov.b32 %f776, %r288;
+ shr.u32 %r289, %r286, 23;
+ cvt.rn.f32.u32 %f777, %r289;
+ add.f32 %f778, %f774, %f777;
+ setp.gt.f32 %p121, %f776, 0f3FB504F3;
+ mul.f32 %f779, %f776, 0f3F000000;
+ add.f32 %f780, %f778, 0f3F800000;
+ selp.f32 %f781, %f779, %f776, %p121;
+ selp.f32 %f782, %f780, %f778, %p121;
+ add.f32 %f783, %f781, 0fBF800000;
+ add.f32 %f772, %f781, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f771,%f772;
+ // inline asm
+ add.f32 %f784, %f783, %f783;
+ mul.f32 %f785, %f771, %f784;
+ mul.f32 %f786, %f785, %f785;
+ fma.rn.f32 %f789, %f632, %f786, %f631;
+ fma.rn.f32 %f791, %f789, %f786, %f634;
+ mul.rn.f32 %f792, %f791, %f786;
+ mul.rn.f32 %f793, %f792, %f785;
+ sub.f32 %f794, %f783, %f785;
+ neg.f32 %f795, %f785;
+ add.f32 %f796, %f794, %f794;
+ fma.rn.f32 %f797, %f795, %f783, %f796;
+ mul.rn.f32 %f798, %f771, %f797;
+ add.f32 %f799, %f793, %f785;
+ sub.f32 %f800, %f785, %f799;
+ add.f32 %f801, %f793, %f800;
+ add.f32 %f802, %f798, %f801;
+ add.f32 %f803, %f799, %f802;
+ sub.f32 %f804, %f799, %f803;
+ add.f32 %f805, %f802, %f804;
+ mul.rn.f32 %f807, %f782, %f650;
+ mul.rn.f32 %f809, %f782, %f652;
+ add.f32 %f810, %f807, %f803;
+ sub.f32 %f811, %f807, %f810;
+ add.f32 %f812, %f803, %f811;
+ add.f32 %f813, %f805, %f812;
+ add.f32 %f814, %f809, %f813;
+ add.f32 %f815, %f810, %f814;
+ sub.f32 %f816, %f810, %f815;
+ add.f32 %f817, %f814, %f816;
+ mul.rn.f32 %f819, %f662, %f815;
+ neg.f32 %f820, %f819;
+ fma.rn.f32 %f821, %f662, %f815, %f820;
+ fma.rn.f32 %f822, %f662, %f817, %f821;
+ fma.rn.f32 %f824, %f667, %f815, %f822;
+ add.rn.f32 %f825, %f819, %f824;
+ neg.f32 %f826, %f825;
+ add.rn.f32 %f827, %f819, %f826;
+ add.rn.f32 %f828, %f827, %f824;
+ mov.b32 %r290, %f825;
+ setp.eq.s32 %p122, %r290, 1118925336;
+ add.s32 %r291, %r290, -1;
+ mov.b32 %f829, %r291;
+ add.f32 %f830, %f828, 0f37000000;
+ selp.f32 %f831, %f829, %f825, %p122;
+ selp.f32 %f207, %f830, %f828, %p122;
+ mul.f32 %f832, %f831, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f833, %f832;
+ fma.rn.f32 %f835, %f833, %f678, %f831;
+ fma.rn.f32 %f837, %f833, %f680, %f835;
+ mul.f32 %f838, %f837, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f839, %f838;
+ add.f32 %f840, %f833, 0f00000000;
+ ex2.approx.f32 %f841, %f840;
+ mul.f32 %f842, %f839, %f841;
+ setp.lt.f32 %p123, %f831, 0fC2D20000;
+ selp.f32 %f843, 0f00000000, %f842, %p123;
+ setp.gt.f32 %p124, %f831, 0f42D20000;
+ selp.f32 %f1031, 0f7F800000, %f843, %p124;
+ setp.eq.f32 %p125, %f1031, 0f7F800000;
+ @%p125 bra BB0_115;
+
+ fma.rn.f32 %f1031, %f1031, %f207, %f1031;
+
+BB0_115:
+ setp.lt.f32 %p126, %f178, 0f00000000;
+ and.pred %p6, %p126, %p95;
+ mov.b32 %r292, %f1031;
+ xor.b32 %r293, %r292, -2147483648;
+ mov.b32 %f844, %r293;
+ selp.f32 %f1033, %f844, %f1031, %p6;
+ setp.eq.f32 %p128, %f178, 0f00000000;
+ @%p128 bra BB0_118;
+ bra.uni BB0_116;
+
+BB0_118:
+ add.f32 %f847, %f178, %f178;
+ selp.f32 %f1033, %f847, 0f00000000, %p95;
+ bra.uni BB0_119;
+
+BB0_116:
+ setp.geu.f32 %p129, %f178, 0f00000000;
+ @%p129 bra BB0_119;
+
+ cvt.rzi.f32.f32 %f846, %f662;
+ setp.neu.f32 %p130, %f846, 0f3EE66666;
+ selp.f32 %f1033, 0f7FFFFFFF, %f1033, %p130;
+
+BB0_119:
+ add.f32 %f848, %f206, 0f3EE66666;
+ mov.b32 %r294, %f848;
+ setp.lt.s32 %p132, %r294, 2139095040;
+ @%p132 bra BB0_124;
+
+ setp.gtu.f32 %p133, %f206, 0f7F800000;
+ @%p133 bra BB0_123;
+ bra.uni BB0_121;
+
+BB0_123:
+ add.f32 %f1033, %f178, 0f3EE66666;
+ bra.uni BB0_124;
+
+BB0_121:
+ setp.neu.f32 %p134, %f206, 0f7F800000;
+ @%p134 bra BB0_124;
+
+ selp.f32 %f1033, 0fFF800000, 0f7F800000, %p6;
+
+BB0_124:
+ setp.eq.f32 %p135, %f178, 0f3F800000;
+ selp.f32 %f849, 0f3F800000, %f1033, %p135;
+ cvt.u64.u32 %rd83, %r4;
+ cvt.u64.u32 %rd82, %r3;
+ mov.u64 %rd86, image;
+ cvta.global.u64 %rd81, %rd86;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r101, %r102, %rd82, %rd83, %rd26, %rd26);
+ // inline asm
+ cvt.sat.f32.f32 %f850, %f849;
+ mul.f32 %f851, %f850, 0f437FFD71;
+ cvt.rzi.u32.f32 %r297, %f851;
+ cvt.sat.f32.f32 %f852, %f205;
+ mul.f32 %f853, %f852, 0f437FFD71;
+ cvt.rzi.u32.f32 %r298, %f853;
+ cvt.sat.f32.f32 %f854, %f192;
+ mul.f32 %f855, %f854, 0f437FFD71;
+ cvt.rzi.u32.f32 %r299, %f855;
+ cvt.u16.u32 %rs16, %r297;
+ cvt.u16.u32 %rs17, %r299;
+ cvt.u16.u32 %rs18, %r298;
+ mov.u16 %rs19, 255;
+ st.v4.u8 [%rd80], {%rs16, %rs18, %rs17, %rs19};
+ ld.global.u32 %r412, [imageEnabled];
+
+BB0_125:
+ cvt.u64.u32 %rd17, %r3;
+ cvt.u64.u32 %rd18, %r4;
+ and.b32 %r300, %r412, 4;
+ setp.eq.s32 %p136, %r300, 0;
+ @%p136 bra BB0_129;
+
+ ld.global.u32 %r301, [additive];
+ setp.eq.s32 %p137, %r301, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f407;}
+
+ // inline asm
+ @%p137 bra BB0_128;
+
+ mov.u64 %rd99, image_HDR;
+ cvta.global.u64 %rd88, %rd99;
+ mov.u32 %r305, 8;
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd88, %r101, %r305, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs27, %rs28, %rs29, %rs30}, [%rd87];
+ // inline asm
+ { cvt.f32.f16 %f857, %rs27;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f858, %rs28;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f859, %rs29;}
+
+ // inline asm
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd88, %r101, %r305, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f860, %f176, %f857;
+ add.f32 %f861, %f177, %f858;
+ add.f32 %f862, %f178, %f859;
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f862;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f861;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f860;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs24, %rs25, %rs26, %rs20};
+ bra.uni BB0_129;
+
+BB0_128:
+ mov.u64 %rd106, image_HDR;
+ cvta.global.u64 %rd101, %rd106;
+ mov.u32 %r307, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r101, %r307, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f178;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f177;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f176;}
+
+ // inline asm
+ st.v4.u16 [%rd100], {%rs31, %rs32, %rs33, %rs20};
+
+BB0_129:
+ selp.f32 %f867, 0f3F000000, 0f3E800000, %p150;
+ mul.f32 %f218, %f867, %f1017;
+ mul.f32 %f219, %f867, %f1018;
+ mul.f32 %f220, %f867, %f1019;
+ mul.f32 %f221, %f867, %f1020;
+ ld.global.f32 %f868, [lightColor];
+ mul.f32 %f222, %f218, %f868;
+ ld.global.f32 %f869, [lightColor+4];
+ mul.f32 %f223, %f218, %f869;
+ ld.global.f32 %f870, [lightColor+8];
+ mul.f32 %f224, %f218, %f870;
+ ld.global.u32 %r308, [additive];
+ setp.eq.s32 %p138, %r308, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f407;}
+
+ // inline asm
+ @%p138 bra BB0_131;
+
+ mov.u64 %rd119, image_RNM0;
+ cvta.global.u64 %rd108, %rd119;
+ mov.u32 %r312, 8;
+ // inline asm
+ call (%rd107), _rt_buffer_get_64, (%rd108, %r101, %r312, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs41, %rs42, %rs43, %rs44}, [%rd107];
+ // inline asm
+ { cvt.f32.f16 %f871, %rs41;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f872, %rs42;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f873, %rs43;}
+
+ // inline asm
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd108, %r101, %r312, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f874, %f222, %f871;
+ add.f32 %f875, %f223, %f872;
+ add.f32 %f876, %f224, %f873;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f876;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f875;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f874;}
+
+ // inline asm
+ st.v4.u16 [%rd113], {%rs38, %rs39, %rs40, %rs34};
+ bra.uni BB0_132;
+
+BB0_131:
+ mov.u64 %rd126, image_RNM0;
+ cvta.global.u64 %rd121, %rd126;
+ mov.u32 %r314, 8;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd121, %r101, %r314, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f224;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f223;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f222;}
+
+ // inline asm
+ st.v4.u16 [%rd120], {%rs45, %rs46, %rs47, %rs34};
+
+BB0_132:
+ mov.f32 %f881, 0f34000000;
+ max.f32 %f882, %f218, %f881;
+ div.rn.f32 %f883, %f219, %f882;
+ fma.rn.f32 %f225, %f883, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f884, %f220, %f882;
+ fma.rn.f32 %f226, %f884, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f885, %f221, %f882;
+ fma.rn.f32 %f227, %f885, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r315, [additive];
+ setp.eq.s32 %p139, %r315, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f407;}
+
+ // inline asm
+ @%p139 bra BB0_134;
+
+ mov.u64 %rd139, image_RNM1;
+ cvta.global.u64 %rd128, %rd139;
+ mov.u32 %r319, 8;
+ // inline asm
+ call (%rd127), _rt_buffer_get_64, (%rd128, %r101, %r319, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs55, %rs56, %rs57, %rs58}, [%rd127];
+ // inline asm
+ { cvt.f32.f16 %f886, %rs55;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f887, %rs56;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f888, %rs57;}
+
+ // inline asm
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd128, %r101, %r319, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f889, %f225, %f886;
+ add.f32 %f890, %f225, %f887;
+ add.f32 %f891, %f225, %f888;
+ // inline asm
+ { cvt.rn.f16.f32 %rs54, %f891;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f890;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f889;}
+
+ // inline asm
+ st.v4.u16 [%rd133], {%rs52, %rs53, %rs54, %rs48};
+ bra.uni BB0_135;
+
+BB0_134:
+ mov.u64 %rd146, image_RNM1;
+ cvta.global.u64 %rd141, %rd146;
+ mov.u32 %r321, 8;
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd141, %r101, %r321, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f225;}
+
+ // inline asm
+ st.v4.u16 [%rd140], {%rs59, %rs59, %rs59, %rs48};
+
+BB0_135:
+ ld.global.u32 %r322, [additive];
+ setp.eq.s32 %p140, %r322, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f407;}
+
+ // inline asm
+ @%p140 bra BB0_137;
+
+ mov.u64 %rd159, image_RNM2;
+ cvta.global.u64 %rd148, %rd159;
+ mov.u32 %r326, 8;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r101, %r326, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd147];
+ // inline asm
+ { cvt.f32.f16 %f894, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f895, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f896, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd153), _rt_buffer_get_64, (%rd148, %r101, %r326, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f897, %f226, %f894;
+ add.f32 %f898, %f226, %f895;
+ add.f32 %f899, %f226, %f896;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f899;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f898;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f897;}
+
+ // inline asm
+ st.v4.u16 [%rd153], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_138;
+
+BB0_137:
+ mov.u64 %rd166, image_RNM2;
+ cvta.global.u64 %rd161, %rd166;
+ mov.u32 %r328, 8;
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd161, %r101, %r328, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f226;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs71, %rs71, %rs71, %rs60};
+
+BB0_138:
+ ld.global.u32 %r329, [additive];
+ setp.eq.s32 %p141, %r329, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f407;}
+
+ // inline asm
+ @%p141 bra BB0_140;
+
+ mov.u64 %rd179, image_RNM3;
+ cvta.global.u64 %rd168, %rd179;
+ mov.u32 %r333, 8;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r101, %r333, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs79, %rs80, %rs81, %rs82}, [%rd167];
+ // inline asm
+ { cvt.f32.f16 %f902, %rs79;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f903, %rs80;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f904, %rs81;}
+
+ // inline asm
+ // inline asm
+ call (%rd173), _rt_buffer_get_64, (%rd168, %r101, %r333, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f905, %f227, %f902;
+ add.f32 %f906, %f227, %f903;
+ add.f32 %f907, %f227, %f904;
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f907;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f906;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f905;}
+
+ // inline asm
+ st.v4.u16 [%rd173], {%rs76, %rs77, %rs78, %rs72};
+ bra.uni BB0_161;
+
+BB0_140:
+ mov.u64 %rd186, image_RNM3;
+ cvta.global.u64 %rd181, %rd186;
+ mov.u32 %r335, 8;
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd181, %r101, %r335, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f227;}
+
+ // inline asm
+ st.v4.u16 [%rd180], {%rs83, %rs83, %rs83, %rs72};
+
+BB0_161:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightSH.ptx.meta
new file mode 100644
index 00000000..f2ad57ca
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmAreaLightSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 59f629558be07bb4fbda253d540faaed
+timeCreated: 1537818498
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLight.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLight.ptx
new file mode 100644
index 00000000..480ec16c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLight.ptx
@@ -0,0 +1,1847 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_Dir[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 ignoreNormal;
+.global .align 1 .b8 localLights[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<132>;
+ .reg .b16 %rs<59>;
+ .reg .f32 %f<1206>;
+ .reg .b32 %r<199>;
+ .reg .b64 %rd<126>;
+
+
+ mov.u64 %rd125, __local_depot0;
+ cvta.local.u64 %SP, %rd125;
+ ld.global.v2.u32 {%r29, %r30}, [pixelID];
+ cvt.u64.u32 %rd10, %r29;
+ cvt.u64.u32 %rd11, %r30;
+ mov.u64 %rd14, uvnormal;
+ cvta.global.u64 %rd9, %rd14;
+ mov.u32 %r27, 2;
+ mov.u32 %r28, 4;
+ mov.u64 %rd13, 0;
+ // inline asm
+ call (%rd8), _rt_buffer_get_64, (%rd9, %r27, %r28, %rd10, %rd11, %rd13, %rd13);
+ // inline asm
+ ld.u32 %r1, [%rd8];
+ shr.u32 %r33, %r1, 16;
+ cvt.u16.u32 %rs1, %r33;
+ and.b16 %rs3, %rs1, 255;
+ cvt.u16.u32 %rs4, %r1;
+ or.b16 %rs5, %rs4, %rs3;
+ setp.eq.s16 %p8, %rs5, 0;
+ mov.f32 %f1148, 0f00000000;
+ mov.f32 %f1149, %f1148;
+ mov.f32 %f1150, %f1148;
+ @%p8 bra BB0_2;
+
+ ld.u8 %rs6, [%rd8+1];
+ and.b16 %rs8, %rs4, 255;
+ cvt.rn.f32.u16 %f203, %rs8;
+ div.rn.f32 %f204, %f203, 0f437F0000;
+ fma.rn.f32 %f205, %f204, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f206, %rs6;
+ div.rn.f32 %f207, %f206, 0f437F0000;
+ fma.rn.f32 %f208, %f207, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f209, %rs3;
+ div.rn.f32 %f210, %f209, 0f437F0000;
+ fma.rn.f32 %f211, %f210, 0f40000000, 0fBF800000;
+ mul.f32 %f212, %f208, %f208;
+ fma.rn.f32 %f213, %f205, %f205, %f212;
+ fma.rn.f32 %f214, %f211, %f211, %f213;
+ sqrt.rn.f32 %f215, %f214;
+ rcp.rn.f32 %f216, %f215;
+ mul.f32 %f1148, %f205, %f216;
+ mul.f32 %f1149, %f208, %f216;
+ mul.f32 %f1150, %f211, %f216;
+
+BB0_2:
+ ld.global.v2.u32 {%r34, %r35}, [pixelID];
+ ld.global.v2.u32 {%r37, %r38}, [tileInfo];
+ add.s32 %r2, %r34, %r37;
+ add.s32 %r3, %r35, %r38;
+ setp.eq.f32 %p9, %f1149, 0f00000000;
+ setp.eq.f32 %p10, %f1148, 0f00000000;
+ and.pred %p11, %p10, %p9;
+ setp.eq.f32 %p12, %f1150, 0f00000000;
+ and.pred %p13, %p11, %p12;
+ @%p13 bra BB0_96;
+ bra.uni BB0_3;
+
+BB0_96:
+ ld.global.u32 %r198, [imageEnabled];
+ and.b32 %r173, %r198, 1;
+ setp.eq.b32 %p126, %r173, 1;
+ @!%p126 bra BB0_98;
+ bra.uni BB0_97;
+
+BB0_97:
+ cvt.u64.u32 %rd86, %r2;
+ cvt.u64.u32 %rd87, %r3;
+ mov.u64 %rd90, image;
+ cvta.global.u64 %rd85, %rd90;
+ // inline asm
+ call (%rd84), _rt_buffer_get_64, (%rd85, %r27, %r28, %rd86, %rd87, %rd13, %rd13);
+ // inline asm
+ mov.u16 %rs40, 0;
+ st.v4.u8 [%rd84], {%rs40, %rs40, %rs40, %rs40};
+ ld.global.u32 %r198, [imageEnabled];
+
+BB0_98:
+ and.b32 %r176, %r198, 8;
+ setp.eq.s32 %p127, %r176, 0;
+ @%p127 bra BB0_100;
+
+ cvt.u64.u32 %rd93, %r2;
+ cvt.u64.u32 %rd94, %r3;
+ mov.u64 %rd97, image_Mask;
+ cvta.global.u64 %rd92, %rd97;
+ // inline asm
+ call (%rd91), _rt_buffer_get_64, (%rd92, %r27, %r27, %rd93, %rd94, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1140, 0f00000000;
+ cvt.rzi.u32.f32 %r179, %f1140;
+ cvt.u16.u32 %rs41, %r179;
+ mov.u16 %rs42, 0;
+ st.v2.u8 [%rd91], {%rs41, %rs42};
+ ld.global.u32 %r198, [imageEnabled];
+
+BB0_100:
+ and.b32 %r180, %r198, 4;
+ setp.eq.s32 %p128, %r180, 0;
+ @%p128 bra BB0_104;
+
+ ld.global.u32 %r181, [additive];
+ setp.eq.s32 %p129, %r181, 0;
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ @%p129 bra BB0_103;
+
+ mov.u64 %rd110, image_HDR;
+ cvta.global.u64 %rd99, %rd110;
+ mov.u32 %r185, 8;
+ // inline asm
+ call (%rd98), _rt_buffer_get_64, (%rd99, %r27, %r185, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs49, %rs50, %rs51, %rs52}, [%rd98];
+ // inline asm
+ { cvt.f32.f16 %f1141, %rs49;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1142, %rs50;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1143, %rs51;}
+
+ // inline asm
+ // inline asm
+ call (%rd104), _rt_buffer_get_64, (%rd99, %r27, %r185, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1144, %f1141, 0f00000000;
+ add.f32 %f1145, %f1142, 0f00000000;
+ add.f32 %f1146, %f1143, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f1146;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f1145;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f1144;}
+
+ // inline asm
+ mov.u16 %rs53, 0;
+ st.v4.u16 [%rd104], {%rs46, %rs47, %rs48, %rs53};
+ bra.uni BB0_104;
+
+BB0_3:
+ ld.global.v2.u32 {%r46, %r47}, [pixelID];
+ cvt.u64.u32 %rd17, %r46;
+ cvt.u64.u32 %rd18, %r47;
+ mov.u64 %rd26, uvpos;
+ cvta.global.u64 %rd16, %rd26;
+ mov.u32 %r43, 12;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd16, %r27, %r43, %rd17, %rd18, %rd13, %rd13);
+ // inline asm
+ ld.f32 %f9, [%rd15+8];
+ ld.f32 %f8, [%rd15+4];
+ ld.f32 %f7, [%rd15];
+ mul.f32 %f224, %f7, 0f3456BF95;
+ mul.f32 %f225, %f8, 0f3456BF95;
+ mul.f32 %f226, %f9, 0f3456BF95;
+ abs.f32 %f227, %f1148;
+ div.rn.f32 %f228, %f224, %f227;
+ abs.f32 %f229, %f1149;
+ div.rn.f32 %f230, %f225, %f229;
+ abs.f32 %f231, %f1150;
+ div.rn.f32 %f232, %f226, %f231;
+ abs.f32 %f233, %f228;
+ abs.f32 %f234, %f230;
+ abs.f32 %f235, %f232;
+ mov.f32 %f236, 0f38D1B717;
+ max.f32 %f237, %f233, %f236;
+ max.f32 %f238, %f234, %f236;
+ max.f32 %f239, %f235, %f236;
+ fma.rn.f32 %f10, %f1148, %f237, %f7;
+ fma.rn.f32 %f11, %f1149, %f238, %f8;
+ fma.rn.f32 %f12, %f1150, %f239, %f9;
+ mov.u64 %rd27, localLights;
+ cvta.global.u64 %rd25, %rd27;
+ mov.u32 %r44, 1;
+ mov.u32 %r45, 96;
+ // inline asm
+ call (%rd21, %rd22, %rd23, %rd24), _rt_buffer_get_size_64, (%rd25, %r44, %r45);
+ // inline asm
+ cvt.u32.u64 %r4, %rd21;
+ setp.eq.s32 %p14, %r4, 0;
+ mov.f32 %f1151, 0f00000000;
+ mov.f32 %f18, %f1151;
+ mov.f32 %f19, %f1151;
+ mov.f32 %f20, %f1151;
+ mov.f32 %f1155, %f1151;
+ mov.f32 %f1156, %f1151;
+ mov.f32 %f1157, %f1151;
+ @%p14 bra BB0_42;
+
+ mov.f32 %f247, 0f40000000;
+ cvt.rzi.f32.f32 %f248, %f247;
+ add.f32 %f249, %f248, %f248;
+ mov.f32 %f250, 0f40800000;
+ sub.f32 %f251, %f250, %f249;
+ abs.f32 %f13, %f251;
+ mul.f32 %f14, %f10, 0f3456BF95;
+ mul.f32 %f15, %f11, 0f3456BF95;
+ mul.f32 %f16, %f12, 0f3456BF95;
+ mov.f32 %f246, 0f00000000;
+ mov.u32 %r190, 0;
+ abs.f32 %f428, %f14;
+ abs.f32 %f429, %f15;
+ max.f32 %f430, %f428, %f429;
+ abs.f32 %f431, %f16;
+ max.f32 %f432, %f430, %f431;
+ mov.f32 %f1151, %f246;
+ mov.f32 %f18, %f246;
+ mov.f32 %f19, %f246;
+ mov.f32 %f20, %f246;
+ mov.f32 %f1155, %f246;
+ mov.f32 %f1156, %f246;
+ mov.f32 %f1157, %f246;
+
+BB0_5:
+ cvt.u64.u32 %rd30, %r190;
+ // inline asm
+ call (%rd28), _rt_buffer_get_64, (%rd25, %r44, %r45, %rd30, %rd13, %rd13, %rd13);
+ // inline asm
+ ld.v4.f32 {%f254, %f255, %f256, %f257}, [%rd28+80];
+ ld.v4.f32 {%f258, %f259, %f260, %f261}, [%rd28+64];
+ ld.v4.f32 {%f262, %f263, %f264, %f265}, [%rd28+48];
+ ld.v4.f32 {%f1161, %f1162, %f1163, %f269}, [%rd28+32];
+ ld.v4.f32 {%f270, %f271, %f272, %f273}, [%rd28+16];
+ ld.v4.f32 {%f274, %f275, %f276, %f277}, [%rd28];
+ mov.b32 %r6, %f257;
+ sub.f32 %f279, %f275, %f7;
+ sub.f32 %f280, %f276, %f8;
+ sub.f32 %f281, %f277, %f9;
+ mul.f32 %f282, %f280, %f280;
+ fma.rn.f32 %f283, %f279, %f279, %f282;
+ fma.rn.f32 %f284, %f281, %f281, %f283;
+ sqrt.rn.f32 %f50, %f284;
+ rcp.rn.f32 %f285, %f50;
+ mul.f32 %f51, %f279, %f285;
+ mul.f32 %f52, %f280, %f285;
+ mul.f32 %f53, %f281, %f285;
+ mul.f32 %f54, %f50, %f273;
+ abs.f32 %f55, %f54;
+ setp.lt.f32 %p15, %f55, 0f00800000;
+ mul.f32 %f286, %f55, 0f4B800000;
+ selp.f32 %f287, 0fC3170000, 0fC2FE0000, %p15;
+ selp.f32 %f288, %f286, %f55, %p15;
+ mov.b32 %r53, %f288;
+ and.b32 %r54, %r53, 8388607;
+ or.b32 %r55, %r54, 1065353216;
+ mov.b32 %f289, %r55;
+ shr.u32 %r56, %r53, 23;
+ cvt.rn.f32.u32 %f290, %r56;
+ add.f32 %f291, %f287, %f290;
+ setp.gt.f32 %p16, %f289, 0f3FB504F3;
+ mul.f32 %f292, %f289, 0f3F000000;
+ add.f32 %f293, %f291, 0f3F800000;
+ selp.f32 %f294, %f292, %f289, %p16;
+ selp.f32 %f295, %f293, %f291, %p16;
+ add.f32 %f296, %f294, 0fBF800000;
+ add.f32 %f253, %f294, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f252,%f253;
+ // inline asm
+ add.f32 %f297, %f296, %f296;
+ mul.f32 %f298, %f252, %f297;
+ mul.f32 %f299, %f298, %f298;
+ mov.f32 %f300, 0f3C4CAF63;
+ mov.f32 %f301, 0f3B18F0FE;
+ fma.rn.f32 %f302, %f301, %f299, %f300;
+ mov.f32 %f303, 0f3DAAAABD;
+ fma.rn.f32 %f304, %f302, %f299, %f303;
+ mul.rn.f32 %f305, %f304, %f299;
+ mul.rn.f32 %f306, %f305, %f298;
+ sub.f32 %f307, %f296, %f298;
+ neg.f32 %f308, %f298;
+ add.f32 %f309, %f307, %f307;
+ fma.rn.f32 %f310, %f308, %f296, %f309;
+ mul.rn.f32 %f311, %f252, %f310;
+ add.f32 %f312, %f306, %f298;
+ sub.f32 %f313, %f298, %f312;
+ add.f32 %f314, %f306, %f313;
+ add.f32 %f315, %f311, %f314;
+ add.f32 %f316, %f312, %f315;
+ sub.f32 %f317, %f312, %f316;
+ add.f32 %f318, %f315, %f317;
+ mov.f32 %f319, 0f3F317200;
+ mul.rn.f32 %f320, %f295, %f319;
+ mov.f32 %f321, 0f35BFBE8E;
+ mul.rn.f32 %f322, %f295, %f321;
+ add.f32 %f323, %f320, %f316;
+ sub.f32 %f324, %f320, %f323;
+ add.f32 %f325, %f316, %f324;
+ add.f32 %f326, %f318, %f325;
+ add.f32 %f327, %f322, %f326;
+ add.f32 %f328, %f323, %f327;
+ sub.f32 %f329, %f323, %f328;
+ add.f32 %f330, %f327, %f329;
+ mul.rn.f32 %f56, %f250, %f328;
+ neg.f32 %f332, %f56;
+ fma.rn.f32 %f333, %f250, %f328, %f332;
+ fma.rn.f32 %f334, %f250, %f330, %f333;
+ fma.rn.f32 %f57, %f246, %f328, %f334;
+ add.rn.f32 %f58, %f56, %f57;
+ mov.b32 %r57, %f58;
+ setp.eq.s32 %p1, %r57, 1118925336;
+ add.s32 %r58, %r57, -1;
+ mov.b32 %f336, %r58;
+ selp.f32 %f337, %f336, %f58, %p1;
+ mul.f32 %f338, %f337, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f339, %f338;
+ mov.f32 %f340, 0fBF317200;
+ fma.rn.f32 %f341, %f339, %f340, %f337;
+ mov.f32 %f342, 0fB5BFBE8E;
+ fma.rn.f32 %f343, %f339, %f342, %f341;
+ mul.f32 %f344, %f343, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f345, %f344;
+ add.f32 %f346, %f339, 0f00000000;
+ ex2.approx.f32 %f347, %f346;
+ mul.f32 %f348, %f345, %f347;
+ setp.lt.f32 %p17, %f337, 0fC2D20000;
+ selp.f32 %f349, 0f00000000, %f348, %p17;
+ setp.gt.f32 %p18, %f337, 0f42D20000;
+ selp.f32 %f1158, 0f7F800000, %f349, %p18;
+ setp.eq.f32 %p19, %f1158, 0f7F800000;
+ @%p19 bra BB0_7;
+
+ neg.f32 %f350, %f58;
+ add.rn.f32 %f351, %f56, %f350;
+ add.rn.f32 %f352, %f351, %f57;
+ add.f32 %f353, %f352, 0f37000000;
+ selp.f32 %f354, %f353, %f352, %p1;
+ fma.rn.f32 %f1158, %f1158, %f354, %f1158;
+
+BB0_7:
+ setp.lt.f32 %p20, %f54, 0f00000000;
+ setp.eq.f32 %p21, %f13, 0f3F800000;
+ and.pred %p2, %p20, %p21;
+ mov.b32 %r59, %f1158;
+ xor.b32 %r60, %r59, -2147483648;
+ mov.b32 %f355, %r60;
+ selp.f32 %f1160, %f355, %f1158, %p2;
+ setp.eq.f32 %p22, %f54, 0f00000000;
+ @%p22 bra BB0_10;
+ bra.uni BB0_8;
+
+BB0_10:
+ add.f32 %f358, %f54, %f54;
+ selp.f32 %f1160, %f358, 0f00000000, %p21;
+ bra.uni BB0_11;
+
+BB0_8:
+ setp.geu.f32 %p23, %f54, 0f00000000;
+ @%p23 bra BB0_11;
+
+ cvt.rzi.f32.f32 %f357, %f250;
+ setp.neu.f32 %p24, %f357, 0f40800000;
+ selp.f32 %f1160, 0f7FFFFFFF, %f1160, %p24;
+
+BB0_11:
+ add.f32 %f359, %f55, 0f40800000;
+ mov.b32 %r61, %f359;
+ setp.lt.s32 %p26, %r61, 2139095040;
+ @%p26 bra BB0_16;
+
+ setp.gtu.f32 %p27, %f55, 0f7F800000;
+ @%p27 bra BB0_15;
+ bra.uni BB0_13;
+
+BB0_15:
+ add.f32 %f1160, %f54, 0f40800000;
+ bra.uni BB0_16;
+
+BB0_13:
+ setp.neu.f32 %p28, %f55, 0f7F800000;
+ @%p28 bra BB0_16;
+
+ selp.f32 %f1160, 0fFF800000, 0f7F800000, %p2;
+
+BB0_16:
+ mul.f32 %f360, %f50, %f271;
+ mov.f32 %f1176, 0f3F800000;
+ sub.f32 %f362, %f1176, %f1160;
+ setp.eq.f32 %p29, %f54, 0f3F800000;
+ selp.f32 %f363, 0f00000000, %f362, %p29;
+ cvt.sat.f32.f32 %f364, %f363;
+ fma.rn.f32 %f365, %f360, %f360, %f272;
+ div.rn.f32 %f1164, %f364, %f365;
+ mul.f32 %f366, %f1149, %f52;
+ fma.rn.f32 %f367, %f1148, %f51, %f366;
+ fma.rn.f32 %f368, %f1150, %f53, %f367;
+ ld.global.u32 %r62, [ignoreNormal];
+ setp.eq.s32 %p30, %r62, 0;
+ selp.f32 %f369, %f368, 0f3F800000, %p30;
+ cvt.sat.f32.f32 %f85, %f369;
+ setp.eq.f32 %p31, %f274, 0f3F800000;
+ @%p31 bra BB0_22;
+ bra.uni BB0_17;
+
+BB0_22:
+ setp.leu.f32 %p35, %f269, 0f00000000;
+ @%p35 bra BB0_24;
+
+ mul.f32 %f400, %f254, %f51;
+ mul.f32 %f401, %f255, %f52;
+ neg.f32 %f402, %f401;
+ sub.f32 %f403, %f402, %f400;
+ mul.f32 %f404, %f256, %f53;
+ sub.f32 %f405, %f403, %f404;
+ setp.gt.f32 %p36, %f405, 0f00000000;
+ selp.f32 %f406, 0f3F800000, 0f00000000, %p36;
+ mul.f32 %f407, %f263, %f52;
+ fma.rn.f32 %f408, %f262, %f51, %f407;
+ mul.f32 %f409, %f259, %f52;
+ fma.rn.f32 %f410, %f258, %f51, %f409;
+ fma.rn.f32 %f411, %f264, %f53, %f408;
+ fma.rn.f32 %f412, %f260, %f53, %f410;
+ fma.rn.f32 %f396, %f265, %f411, 0f3F000000;
+ fma.rn.f32 %f397, %f265, %f412, 0f3F000000;
+ cvt.rzi.s32.f32 %r66, %f269;
+ mov.f32 %f399, 0f00000000;
+ // inline asm
+ call (%f392, %f393, %f394, %f395), _rt_texture_get_f_id, (%r66, %r27, %f396, %f397, %f399, %f399);
+ // inline asm
+ mul.f32 %f413, %f406, %f392;
+ mul.f32 %f414, %f406, %f393;
+ mul.f32 %f415, %f406, %f394;
+ mul.f32 %f1161, %f1161, %f413;
+ mul.f32 %f1162, %f1162, %f414;
+ mul.f32 %f1163, %f1163, %f415;
+ bra.uni BB0_24;
+
+BB0_17:
+ setp.eq.f32 %p32, %f274, 0f40000000;
+ @%p32 bra BB0_20;
+ bra.uni BB0_18;
+
+BB0_20:
+ setp.leu.f32 %p34, %f269, 0f00000000;
+ @%p34 bra BB0_24;
+
+ mul.f32 %f386, %f263, %f52;
+ fma.rn.f32 %f387, %f262, %f51, %f386;
+ mul.f32 %f388, %f259, %f52;
+ fma.rn.f32 %f389, %f258, %f51, %f388;
+ mul.f32 %f390, %f255, %f52;
+ fma.rn.f32 %f391, %f254, %f51, %f390;
+ fma.rn.f32 %f383, %f264, %f53, %f387;
+ fma.rn.f32 %f384, %f260, %f53, %f389;
+ fma.rn.f32 %f385, %f256, %f53, %f391;
+ cvt.rzi.s32.f32 %r63, %f269;
+ mov.u32 %r64, 6;
+ mov.u32 %r65, 0;
+ // inline asm
+ call (%f379, %f380, %f381, %f382), _rt_texture_get_base_id, (%r63, %r64, %f383, %f384, %f385, %r65);
+ // inline asm
+ mul.f32 %f1161, %f1161, %f379;
+ mul.f32 %f1162, %f1162, %f380;
+ mul.f32 %f1163, %f1163, %f381;
+ bra.uni BB0_24;
+
+BB0_18:
+ setp.neu.f32 %p33, %f274, 0f40800000;
+ @%p33 bra BB0_24;
+
+ mul.f32 %f370, %f254, %f51;
+ mul.f32 %f371, %f255, %f52;
+ neg.f32 %f372, %f371;
+ sub.f32 %f373, %f372, %f370;
+ mul.f32 %f374, %f256, %f53;
+ sub.f32 %f375, %f373, %f374;
+ fma.rn.f32 %f376, %f269, %f375, %f265;
+ cvt.sat.f32.f32 %f377, %f376;
+ mul.f32 %f378, %f377, %f377;
+ mul.f32 %f1164, %f1164, %f378;
+
+BB0_24:
+ max.f32 %f422, %f1161, %f1162;
+ max.f32 %f423, %f422, %f1163;
+ mul.f32 %f97, %f85, %f1164;
+ mul.f32 %f424, %f97, %f423;
+ setp.lt.f32 %p38, %f424, 0f3727C5AC;
+ mov.pred %p131, -1;
+ mov.f32 %f104, 0f00000000;
+ mov.f32 %f105, %f104;
+ mov.f32 %f106, %f104;
+ mov.f32 %f107, %f104;
+ mov.f32 %f108, %f104;
+ mov.f32 %f109, %f104;
+ @%p38 bra BB0_26;
+
+ mul.f32 %f104, %f1161, %f97;
+ mul.f32 %f105, %f1162, %f97;
+ mul.f32 %f106, %f1163, %f97;
+ ld.global.u8 %rs10, [imageEnabled];
+ and.b16 %rs11, %rs10, 64;
+ setp.eq.s16 %p40, %rs11, 0;
+ selp.f32 %f107, 0f00000000, %f51, %p40;
+ selp.f32 %f108, 0f00000000, %f52, %p40;
+ selp.f32 %f109, 0f00000000, %f53, %p40;
+ mov.pred %p131, 0;
+
+BB0_26:
+ @%p131 bra BB0_41;
+
+ setp.eq.s32 %p41, %r6, 0;
+ @%p41 bra BB0_38;
+
+ mov.f32 %f1175, 0f00000000;
+ setp.lt.s32 %p42, %r6, 1;
+ @%p42 bra BB0_37;
+
+ max.f32 %f111, %f432, %f236;
+ and.b32 %r8, %r6, 3;
+ setp.eq.s32 %p43, %r8, 0;
+ add.u64 %rd35, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd35;
+ mov.f32 %f1175, 0f00000000;
+ mov.u32 %r194, 0;
+ @%p43 bra BB0_35;
+
+ setp.eq.s32 %p44, %r8, 1;
+ mov.f32 %f1172, 0f00000000;
+ mov.u32 %r192, 0;
+ @%p44 bra BB0_34;
+
+ setp.eq.s32 %p45, %r8, 2;
+ mov.f32 %f1171, 0f00000000;
+ mov.u32 %r191, 0;
+ @%p45 bra BB0_33;
+
+ sub.f32 %f444, %f275, %f270;
+ sub.f32 %f445, %f276, %f270;
+ sub.f32 %f446, %f277, %f270;
+ sub.f32 %f447, %f444, %f7;
+ sub.f32 %f448, %f445, %f8;
+ sub.f32 %f449, %f446, %f9;
+ mul.f32 %f450, %f448, %f448;
+ fma.rn.f32 %f451, %f447, %f447, %f450;
+ fma.rn.f32 %f452, %f449, %f449, %f451;
+ sqrt.rn.f32 %f443, %f452;
+ rcp.rn.f32 %f453, %f443;
+ mul.f32 %f439, %f453, %f447;
+ mul.f32 %f440, %f453, %f448;
+ mul.f32 %f441, %f453, %f449;
+ ld.global.u32 %r75, [imageEnabled];
+ and.b32 %r76, %r75, 32;
+ setp.eq.s32 %p46, %r76, 0;
+ selp.f32 %f454, 0f3F800000, 0f41200000, %p46;
+ mul.f32 %f442, %f454, %f111;
+ mov.u32 %r77, 1065353216;
+ st.local.u32 [%rd2], %r77;
+ ld.global.u32 %r71, [root];
+ // inline asm
+ call _rt_trace_64, (%r71, %f10, %f11, %f12, %f439, %f440, %f441, %r44, %f442, %f443, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f455, [%rd2];
+ add.f32 %f1171, %f455, 0f00000000;
+ mov.u32 %r191, %r44;
+
+BB0_33:
+ cvt.rn.f32.s32 %f464, %r191;
+ mul.f32 %f465, %f464, 0f3DD32618;
+ cvt.rmi.f32.f32 %f466, %f465;
+ sub.f32 %f467, %f465, %f466;
+ mul.f32 %f468, %f464, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f469, %f468;
+ sub.f32 %f470, %f468, %f469;
+ mul.f32 %f471, %f464, 0f3DC74539;
+ cvt.rmi.f32.f32 %f472, %f471;
+ sub.f32 %f473, %f471, %f472;
+ add.f32 %f474, %f470, 0f4199851F;
+ add.f32 %f475, %f473, 0f4199851F;
+ add.f32 %f476, %f467, 0f4199851F;
+ mul.f32 %f477, %f470, %f475;
+ fma.rn.f32 %f478, %f467, %f474, %f477;
+ fma.rn.f32 %f479, %f476, %f473, %f478;
+ add.f32 %f480, %f467, %f479;
+ add.f32 %f481, %f470, %f479;
+ add.f32 %f482, %f473, %f479;
+ add.f32 %f483, %f480, %f481;
+ mul.f32 %f484, %f482, %f483;
+ cvt.rmi.f32.f32 %f485, %f484;
+ sub.f32 %f486, %f484, %f485;
+ add.f32 %f487, %f480, %f482;
+ mul.f32 %f488, %f481, %f487;
+ cvt.rmi.f32.f32 %f489, %f488;
+ sub.f32 %f490, %f488, %f489;
+ add.f32 %f491, %f481, %f482;
+ mul.f32 %f492, %f480, %f491;
+ cvt.rmi.f32.f32 %f493, %f492;
+ sub.f32 %f494, %f492, %f493;
+ fma.rn.f32 %f495, %f486, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f496, %f490, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f497, %f494, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f498, %f270, %f495, %f275;
+ fma.rn.f32 %f499, %f270, %f496, %f276;
+ fma.rn.f32 %f500, %f270, %f497, %f277;
+ sub.f32 %f501, %f498, %f7;
+ sub.f32 %f502, %f499, %f8;
+ sub.f32 %f503, %f500, %f9;
+ mul.f32 %f504, %f502, %f502;
+ fma.rn.f32 %f505, %f501, %f501, %f504;
+ fma.rn.f32 %f506, %f503, %f503, %f505;
+ sqrt.rn.f32 %f463, %f506;
+ rcp.rn.f32 %f507, %f463;
+ mul.f32 %f459, %f507, %f501;
+ mul.f32 %f460, %f507, %f502;
+ mul.f32 %f461, %f507, %f503;
+ ld.global.u32 %r81, [imageEnabled];
+ and.b32 %r82, %r81, 32;
+ setp.eq.s32 %p47, %r82, 0;
+ selp.f32 %f508, 0f3F800000, 0f41200000, %p47;
+ mul.f32 %f462, %f508, %f111;
+ mov.u32 %r83, 1065353216;
+ st.local.u32 [%rd2], %r83;
+ ld.global.u32 %r78, [root];
+ // inline asm
+ call _rt_trace_64, (%r78, %f10, %f11, %f12, %f459, %f460, %f461, %r44, %f462, %f463, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f509, [%rd2];
+ add.f32 %f1172, %f1171, %f509;
+ add.s32 %r192, %r191, 1;
+
+BB0_34:
+ cvt.rn.f32.s32 %f518, %r192;
+ mul.f32 %f519, %f518, 0f3DD32618;
+ cvt.rmi.f32.f32 %f520, %f519;
+ sub.f32 %f521, %f519, %f520;
+ mul.f32 %f522, %f518, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f523, %f522;
+ sub.f32 %f524, %f522, %f523;
+ mul.f32 %f525, %f518, 0f3DC74539;
+ cvt.rmi.f32.f32 %f526, %f525;
+ sub.f32 %f527, %f525, %f526;
+ add.f32 %f528, %f524, 0f4199851F;
+ add.f32 %f529, %f527, 0f4199851F;
+ add.f32 %f530, %f521, 0f4199851F;
+ mul.f32 %f531, %f524, %f529;
+ fma.rn.f32 %f532, %f521, %f528, %f531;
+ fma.rn.f32 %f533, %f530, %f527, %f532;
+ add.f32 %f534, %f521, %f533;
+ add.f32 %f535, %f524, %f533;
+ add.f32 %f536, %f527, %f533;
+ add.f32 %f537, %f534, %f535;
+ mul.f32 %f538, %f536, %f537;
+ cvt.rmi.f32.f32 %f539, %f538;
+ sub.f32 %f540, %f538, %f539;
+ add.f32 %f541, %f534, %f536;
+ mul.f32 %f542, %f535, %f541;
+ cvt.rmi.f32.f32 %f543, %f542;
+ sub.f32 %f544, %f542, %f543;
+ add.f32 %f545, %f535, %f536;
+ mul.f32 %f546, %f534, %f545;
+ cvt.rmi.f32.f32 %f547, %f546;
+ sub.f32 %f548, %f546, %f547;
+ fma.rn.f32 %f549, %f540, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f550, %f544, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f551, %f548, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f552, %f270, %f549, %f275;
+ fma.rn.f32 %f553, %f270, %f550, %f276;
+ fma.rn.f32 %f554, %f270, %f551, %f277;
+ sub.f32 %f555, %f552, %f7;
+ sub.f32 %f556, %f553, %f8;
+ sub.f32 %f557, %f554, %f9;
+ mul.f32 %f558, %f556, %f556;
+ fma.rn.f32 %f559, %f555, %f555, %f558;
+ fma.rn.f32 %f560, %f557, %f557, %f559;
+ sqrt.rn.f32 %f517, %f560;
+ rcp.rn.f32 %f561, %f517;
+ mul.f32 %f513, %f561, %f555;
+ mul.f32 %f514, %f561, %f556;
+ mul.f32 %f515, %f561, %f557;
+ ld.global.u32 %r87, [imageEnabled];
+ and.b32 %r88, %r87, 32;
+ setp.eq.s32 %p48, %r88, 0;
+ selp.f32 %f562, 0f3F800000, 0f41200000, %p48;
+ mul.f32 %f516, %f562, %f111;
+ mov.u32 %r89, 1065353216;
+ st.local.u32 [%rd2], %r89;
+ ld.global.u32 %r84, [root];
+ mov.u32 %r85, 1;
+ // inline asm
+ call _rt_trace_64, (%r84, %f10, %f11, %f12, %f513, %f514, %f515, %r85, %f516, %f517, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f563, [%rd2];
+ add.f32 %f1175, %f1172, %f563;
+ add.s32 %r194, %r192, 1;
+
+BB0_35:
+ setp.lt.u32 %p49, %r6, 4;
+ @%p49 bra BB0_37;
+
+BB0_36:
+ cvt.rn.f32.s32 %f596, %r194;
+ mul.f32 %f597, %f596, 0f3DD32618;
+ cvt.rmi.f32.f32 %f598, %f597;
+ sub.f32 %f599, %f597, %f598;
+ mul.f32 %f600, %f596, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f601, %f600;
+ sub.f32 %f602, %f600, %f601;
+ mul.f32 %f603, %f596, 0f3DC74539;
+ cvt.rmi.f32.f32 %f604, %f603;
+ sub.f32 %f605, %f603, %f604;
+ add.f32 %f606, %f602, 0f4199851F;
+ add.f32 %f607, %f605, 0f4199851F;
+ add.f32 %f608, %f599, 0f4199851F;
+ mul.f32 %f609, %f602, %f607;
+ fma.rn.f32 %f610, %f599, %f606, %f609;
+ fma.rn.f32 %f611, %f608, %f605, %f610;
+ add.f32 %f612, %f599, %f611;
+ add.f32 %f613, %f602, %f611;
+ add.f32 %f614, %f605, %f611;
+ add.f32 %f615, %f612, %f613;
+ mul.f32 %f616, %f614, %f615;
+ cvt.rmi.f32.f32 %f617, %f616;
+ sub.f32 %f618, %f616, %f617;
+ add.f32 %f619, %f612, %f614;
+ mul.f32 %f620, %f613, %f619;
+ cvt.rmi.f32.f32 %f621, %f620;
+ sub.f32 %f622, %f620, %f621;
+ add.f32 %f623, %f613, %f614;
+ mul.f32 %f624, %f612, %f623;
+ cvt.rmi.f32.f32 %f625, %f624;
+ sub.f32 %f626, %f624, %f625;
+ fma.rn.f32 %f627, %f618, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f628, %f622, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f629, %f626, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f630, %f270, %f627, %f275;
+ fma.rn.f32 %f631, %f270, %f628, %f276;
+ fma.rn.f32 %f632, %f270, %f629, %f277;
+ sub.f32 %f633, %f630, %f7;
+ sub.f32 %f634, %f631, %f8;
+ sub.f32 %f635, %f632, %f9;
+ mul.f32 %f636, %f634, %f634;
+ fma.rn.f32 %f637, %f633, %f633, %f636;
+ fma.rn.f32 %f638, %f635, %f635, %f637;
+ sqrt.rn.f32 %f571, %f638;
+ rcp.rn.f32 %f639, %f571;
+ mul.f32 %f567, %f639, %f633;
+ mul.f32 %f568, %f639, %f634;
+ mul.f32 %f569, %f639, %f635;
+ ld.global.u32 %r102, [imageEnabled];
+ and.b32 %r103, %r102, 32;
+ setp.eq.s32 %p50, %r103, 0;
+ selp.f32 %f640, 0f3F800000, 0f41200000, %p50;
+ mul.f32 %f570, %f640, %f111;
+ mov.u32 %r104, 1065353216;
+ st.local.u32 [%rd2], %r104;
+ ld.global.u32 %r90, [root];
+ mov.u32 %r100, 1;
+ // inline asm
+ call _rt_trace_64, (%r90, %f10, %f11, %f12, %f567, %f568, %f569, %r100, %f570, %f571, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f641, [%rd2];
+ add.f32 %f642, %f1175, %f641;
+ add.s32 %r105, %r194, 1;
+ cvt.rn.f32.s32 %f643, %r105;
+ mul.f32 %f644, %f643, 0f3DD32618;
+ cvt.rmi.f32.f32 %f645, %f644;
+ sub.f32 %f646, %f644, %f645;
+ mul.f32 %f647, %f643, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f648, %f647;
+ sub.f32 %f649, %f647, %f648;
+ mul.f32 %f650, %f643, 0f3DC74539;
+ cvt.rmi.f32.f32 %f651, %f650;
+ sub.f32 %f652, %f650, %f651;
+ add.f32 %f653, %f649, 0f4199851F;
+ add.f32 %f654, %f652, 0f4199851F;
+ add.f32 %f655, %f646, 0f4199851F;
+ mul.f32 %f656, %f649, %f654;
+ fma.rn.f32 %f657, %f646, %f653, %f656;
+ fma.rn.f32 %f658, %f655, %f652, %f657;
+ add.f32 %f659, %f646, %f658;
+ add.f32 %f660, %f649, %f658;
+ add.f32 %f661, %f652, %f658;
+ add.f32 %f662, %f659, %f660;
+ mul.f32 %f663, %f661, %f662;
+ cvt.rmi.f32.f32 %f664, %f663;
+ sub.f32 %f665, %f663, %f664;
+ add.f32 %f666, %f659, %f661;
+ mul.f32 %f667, %f660, %f666;
+ cvt.rmi.f32.f32 %f668, %f667;
+ sub.f32 %f669, %f667, %f668;
+ add.f32 %f670, %f660, %f661;
+ mul.f32 %f671, %f659, %f670;
+ cvt.rmi.f32.f32 %f672, %f671;
+ sub.f32 %f673, %f671, %f672;
+ fma.rn.f32 %f674, %f665, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f675, %f669, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f676, %f673, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f677, %f270, %f674, %f275;
+ fma.rn.f32 %f678, %f270, %f675, %f276;
+ fma.rn.f32 %f679, %f270, %f676, %f277;
+ sub.f32 %f680, %f677, %f7;
+ sub.f32 %f681, %f678, %f8;
+ sub.f32 %f682, %f679, %f9;
+ mul.f32 %f683, %f681, %f681;
+ fma.rn.f32 %f684, %f680, %f680, %f683;
+ fma.rn.f32 %f685, %f682, %f682, %f684;
+ sqrt.rn.f32 %f579, %f685;
+ rcp.rn.f32 %f686, %f579;
+ mul.f32 %f575, %f686, %f680;
+ mul.f32 %f576, %f686, %f681;
+ mul.f32 %f577, %f686, %f682;
+ ld.global.u32 %r106, [imageEnabled];
+ and.b32 %r107, %r106, 32;
+ setp.eq.s32 %p51, %r107, 0;
+ selp.f32 %f687, 0f3F800000, 0f41200000, %p51;
+ mul.f32 %f578, %f687, %f111;
+ st.local.u32 [%rd2], %r104;
+ ld.global.u32 %r93, [root];
+ // inline asm
+ call _rt_trace_64, (%r93, %f10, %f11, %f12, %f575, %f576, %f577, %r100, %f578, %f579, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f688, [%rd2];
+ add.f32 %f689, %f642, %f688;
+ add.s32 %r108, %r194, 2;
+ cvt.rn.f32.s32 %f690, %r108;
+ mul.f32 %f691, %f690, 0f3DD32618;
+ cvt.rmi.f32.f32 %f692, %f691;
+ sub.f32 %f693, %f691, %f692;
+ mul.f32 %f694, %f690, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f695, %f694;
+ sub.f32 %f696, %f694, %f695;
+ mul.f32 %f697, %f690, 0f3DC74539;
+ cvt.rmi.f32.f32 %f698, %f697;
+ sub.f32 %f699, %f697, %f698;
+ add.f32 %f700, %f696, 0f4199851F;
+ add.f32 %f701, %f699, 0f4199851F;
+ add.f32 %f702, %f693, 0f4199851F;
+ mul.f32 %f703, %f696, %f701;
+ fma.rn.f32 %f704, %f693, %f700, %f703;
+ fma.rn.f32 %f705, %f702, %f699, %f704;
+ add.f32 %f706, %f693, %f705;
+ add.f32 %f707, %f696, %f705;
+ add.f32 %f708, %f699, %f705;
+ add.f32 %f709, %f706, %f707;
+ mul.f32 %f710, %f708, %f709;
+ cvt.rmi.f32.f32 %f711, %f710;
+ sub.f32 %f712, %f710, %f711;
+ add.f32 %f713, %f706, %f708;
+ mul.f32 %f714, %f707, %f713;
+ cvt.rmi.f32.f32 %f715, %f714;
+ sub.f32 %f716, %f714, %f715;
+ add.f32 %f717, %f707, %f708;
+ mul.f32 %f718, %f706, %f717;
+ cvt.rmi.f32.f32 %f719, %f718;
+ sub.f32 %f720, %f718, %f719;
+ fma.rn.f32 %f721, %f712, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f722, %f716, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f723, %f720, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f724, %f270, %f721, %f275;
+ fma.rn.f32 %f725, %f270, %f722, %f276;
+ fma.rn.f32 %f726, %f270, %f723, %f277;
+ sub.f32 %f727, %f724, %f7;
+ sub.f32 %f728, %f725, %f8;
+ sub.f32 %f729, %f726, %f9;
+ mul.f32 %f730, %f728, %f728;
+ fma.rn.f32 %f731, %f727, %f727, %f730;
+ fma.rn.f32 %f732, %f729, %f729, %f731;
+ sqrt.rn.f32 %f587, %f732;
+ rcp.rn.f32 %f733, %f587;
+ mul.f32 %f583, %f733, %f727;
+ mul.f32 %f584, %f733, %f728;
+ mul.f32 %f585, %f733, %f729;
+ ld.global.u32 %r109, [imageEnabled];
+ and.b32 %r110, %r109, 32;
+ setp.eq.s32 %p52, %r110, 0;
+ selp.f32 %f734, 0f3F800000, 0f41200000, %p52;
+ mul.f32 %f586, %f734, %f111;
+ st.local.u32 [%rd2], %r104;
+ ld.global.u32 %r96, [root];
+ // inline asm
+ call _rt_trace_64, (%r96, %f10, %f11, %f12, %f583, %f584, %f585, %r100, %f586, %f587, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f735, [%rd2];
+ add.f32 %f736, %f689, %f735;
+ add.s32 %r111, %r194, 3;
+ cvt.rn.f32.s32 %f737, %r111;
+ mul.f32 %f738, %f737, 0f3DD32618;
+ cvt.rmi.f32.f32 %f739, %f738;
+ sub.f32 %f740, %f738, %f739;
+ mul.f32 %f741, %f737, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f742, %f741;
+ sub.f32 %f743, %f741, %f742;
+ mul.f32 %f744, %f737, 0f3DC74539;
+ cvt.rmi.f32.f32 %f745, %f744;
+ sub.f32 %f746, %f744, %f745;
+ add.f32 %f747, %f743, 0f4199851F;
+ add.f32 %f748, %f746, 0f4199851F;
+ add.f32 %f749, %f740, 0f4199851F;
+ mul.f32 %f750, %f743, %f748;
+ fma.rn.f32 %f751, %f740, %f747, %f750;
+ fma.rn.f32 %f752, %f749, %f746, %f751;
+ add.f32 %f753, %f740, %f752;
+ add.f32 %f754, %f743, %f752;
+ add.f32 %f755, %f746, %f752;
+ add.f32 %f756, %f753, %f754;
+ mul.f32 %f757, %f755, %f756;
+ cvt.rmi.f32.f32 %f758, %f757;
+ sub.f32 %f759, %f757, %f758;
+ add.f32 %f760, %f753, %f755;
+ mul.f32 %f761, %f754, %f760;
+ cvt.rmi.f32.f32 %f762, %f761;
+ sub.f32 %f763, %f761, %f762;
+ add.f32 %f764, %f754, %f755;
+ mul.f32 %f765, %f753, %f764;
+ cvt.rmi.f32.f32 %f766, %f765;
+ sub.f32 %f767, %f765, %f766;
+ fma.rn.f32 %f768, %f759, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f769, %f763, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f770, %f767, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f771, %f270, %f768, %f275;
+ fma.rn.f32 %f772, %f270, %f769, %f276;
+ fma.rn.f32 %f773, %f270, %f770, %f277;
+ sub.f32 %f774, %f771, %f7;
+ sub.f32 %f775, %f772, %f8;
+ sub.f32 %f776, %f773, %f9;
+ mul.f32 %f777, %f775, %f775;
+ fma.rn.f32 %f778, %f774, %f774, %f777;
+ fma.rn.f32 %f779, %f776, %f776, %f778;
+ sqrt.rn.f32 %f595, %f779;
+ rcp.rn.f32 %f780, %f595;
+ mul.f32 %f591, %f780, %f774;
+ mul.f32 %f592, %f780, %f775;
+ mul.f32 %f593, %f780, %f776;
+ ld.global.u32 %r112, [imageEnabled];
+ and.b32 %r113, %r112, 32;
+ setp.eq.s32 %p53, %r113, 0;
+ selp.f32 %f781, 0f3F800000, 0f41200000, %p53;
+ mul.f32 %f594, %f781, %f111;
+ st.local.u32 [%rd2], %r104;
+ ld.global.u32 %r99, [root];
+ // inline asm
+ call _rt_trace_64, (%r99, %f10, %f11, %f12, %f591, %f592, %f593, %r100, %f594, %f595, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f782, [%rd2];
+ add.f32 %f1175, %f736, %f782;
+ add.s32 %r194, %r194, 4;
+ setp.lt.s32 %p54, %r194, %r6;
+ @%p54 bra BB0_36;
+
+BB0_37:
+ cvt.rn.f32.s32 %f783, %r6;
+ div.rn.f32 %f1176, %f1175, %f783;
+
+BB0_38:
+ fma.rn.f32 %f1157, %f104, %f1176, %f1157;
+ fma.rn.f32 %f1156, %f105, %f1176, %f1156;
+ fma.rn.f32 %f1155, %f106, %f1176, %f1155;
+ ld.global.u8 %rs12, [imageEnabled];
+ and.b16 %rs13, %rs12, 64;
+ setp.eq.s16 %p55, %rs13, 0;
+ @%p55 bra BB0_40;
+
+ mul.f32 %f784, %f105, 0f3F372474;
+ fma.rn.f32 %f785, %f104, 0f3E59999A, %f784;
+ fma.rn.f32 %f786, %f106, 0f3D93A92A, %f785;
+ fma.rn.f32 %f20, %f107, %f786, %f20;
+ fma.rn.f32 %f19, %f108, %f786, %f19;
+ fma.rn.f32 %f18, %f786, %f109, %f18;
+
+BB0_40:
+ add.f32 %f1151, %f1151, %f1176;
+
+BB0_41:
+ add.s32 %r190, %r190, 1;
+ setp.lt.u32 %p56, %r190, %r4;
+ @%p56 bra BB0_5;
+
+BB0_42:
+ ld.global.u32 %r196, [imageEnabled];
+ and.b32 %r114, %r196, 8;
+ setp.eq.s32 %p57, %r114, 0;
+ @%p57 bra BB0_55;
+
+ cvt.sat.f32.f32 %f147, %f1151;
+ cvt.u64.u32 %rd46, %r3;
+ cvt.u64.u32 %rd45, %r2;
+ mov.u64 %rd49, image_Mask;
+ cvta.global.u64 %rd44, %rd49;
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd44, %r27, %r27, %rd45, %rd46, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f789, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f790, %f789;
+ fma.rn.f32 %f791, %f790, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f148, %f791;
+ abs.f32 %f149, %f147;
+ setp.lt.f32 %p58, %f149, 0f00800000;
+ mul.f32 %f792, %f149, 0f4B800000;
+ selp.f32 %f793, 0fC3170000, 0fC2FE0000, %p58;
+ selp.f32 %f794, %f792, %f149, %p58;
+ mov.b32 %r117, %f794;
+ and.b32 %r118, %r117, 8388607;
+ or.b32 %r119, %r118, 1065353216;
+ mov.b32 %f795, %r119;
+ shr.u32 %r120, %r117, 23;
+ cvt.rn.f32.u32 %f796, %r120;
+ add.f32 %f797, %f793, %f796;
+ setp.gt.f32 %p59, %f795, 0f3FB504F3;
+ mul.f32 %f798, %f795, 0f3F000000;
+ add.f32 %f799, %f797, 0f3F800000;
+ selp.f32 %f800, %f798, %f795, %p59;
+ selp.f32 %f801, %f799, %f797, %p59;
+ add.f32 %f802, %f800, 0fBF800000;
+ add.f32 %f788, %f800, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f787,%f788;
+ // inline asm
+ add.f32 %f803, %f802, %f802;
+ mul.f32 %f804, %f787, %f803;
+ mul.f32 %f805, %f804, %f804;
+ mov.f32 %f806, 0f3C4CAF63;
+ mov.f32 %f807, 0f3B18F0FE;
+ fma.rn.f32 %f808, %f807, %f805, %f806;
+ mov.f32 %f809, 0f3DAAAABD;
+ fma.rn.f32 %f810, %f808, %f805, %f809;
+ mul.rn.f32 %f811, %f810, %f805;
+ mul.rn.f32 %f812, %f811, %f804;
+ sub.f32 %f813, %f802, %f804;
+ neg.f32 %f814, %f804;
+ add.f32 %f815, %f813, %f813;
+ fma.rn.f32 %f816, %f814, %f802, %f815;
+ mul.rn.f32 %f817, %f787, %f816;
+ add.f32 %f818, %f812, %f804;
+ sub.f32 %f819, %f804, %f818;
+ add.f32 %f820, %f812, %f819;
+ add.f32 %f821, %f817, %f820;
+ add.f32 %f822, %f818, %f821;
+ sub.f32 %f823, %f818, %f822;
+ add.f32 %f824, %f821, %f823;
+ mov.f32 %f825, 0f3F317200;
+ mul.rn.f32 %f826, %f801, %f825;
+ mov.f32 %f827, 0f35BFBE8E;
+ mul.rn.f32 %f828, %f801, %f827;
+ add.f32 %f829, %f826, %f822;
+ sub.f32 %f830, %f826, %f829;
+ add.f32 %f831, %f822, %f830;
+ add.f32 %f832, %f824, %f831;
+ add.f32 %f833, %f828, %f832;
+ add.f32 %f834, %f829, %f833;
+ sub.f32 %f835, %f829, %f834;
+ add.f32 %f836, %f833, %f835;
+ mov.f32 %f837, 0f3EE8BA2E;
+ mul.rn.f32 %f838, %f837, %f834;
+ neg.f32 %f839, %f838;
+ fma.rn.f32 %f840, %f837, %f834, %f839;
+ fma.rn.f32 %f841, %f837, %f836, %f840;
+ mov.f32 %f842, 0f00000000;
+ fma.rn.f32 %f843, %f842, %f834, %f841;
+ add.rn.f32 %f844, %f838, %f843;
+ neg.f32 %f845, %f844;
+ add.rn.f32 %f846, %f838, %f845;
+ add.rn.f32 %f847, %f846, %f843;
+ mov.b32 %r121, %f844;
+ setp.eq.s32 %p60, %r121, 1118925336;
+ add.s32 %r122, %r121, -1;
+ mov.b32 %f848, %r122;
+ add.f32 %f849, %f847, 0f37000000;
+ selp.f32 %f850, %f848, %f844, %p60;
+ selp.f32 %f150, %f849, %f847, %p60;
+ mul.f32 %f851, %f850, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f852, %f851;
+ mov.f32 %f853, 0fBF317200;
+ fma.rn.f32 %f854, %f852, %f853, %f850;
+ mov.f32 %f855, 0fB5BFBE8E;
+ fma.rn.f32 %f856, %f852, %f855, %f854;
+ mul.f32 %f857, %f856, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f858, %f857;
+ add.f32 %f859, %f852, 0f00000000;
+ ex2.approx.f32 %f860, %f859;
+ mul.f32 %f861, %f858, %f860;
+ setp.lt.f32 %p61, %f850, 0fC2D20000;
+ selp.f32 %f862, 0f00000000, %f861, %p61;
+ setp.gt.f32 %p62, %f850, 0f42D20000;
+ selp.f32 %f1194, 0f7F800000, %f862, %p62;
+ setp.eq.f32 %p63, %f1194, 0f7F800000;
+ @%p63 bra BB0_45;
+
+ fma.rn.f32 %f1194, %f1194, %f150, %f1194;
+
+BB0_45:
+ setp.lt.f32 %p64, %f147, 0f00000000;
+ setp.eq.f32 %p65, %f148, 0f3F800000;
+ and.pred %p4, %p64, %p65;
+ mov.b32 %r123, %f1194;
+ xor.b32 %r124, %r123, -2147483648;
+ mov.b32 %f863, %r124;
+ selp.f32 %f1196, %f863, %f1194, %p4;
+ setp.eq.f32 %p66, %f147, 0f00000000;
+ @%p66 bra BB0_48;
+ bra.uni BB0_46;
+
+BB0_48:
+ add.f32 %f866, %f147, %f147;
+ selp.f32 %f1196, %f866, 0f00000000, %p65;
+ bra.uni BB0_49;
+
+BB0_103:
+ mov.u64 %rd117, image_HDR;
+ cvta.global.u64 %rd112, %rd117;
+ mov.u32 %r187, 8;
+ // inline asm
+ call (%rd111), _rt_buffer_get_64, (%rd112, %r27, %r187, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1147, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs54, %f1147;}
+
+ // inline asm
+ mov.u16 %rs55, 0;
+ st.v4.u16 [%rd111], {%rs54, %rs54, %rs54, %rs55};
+
+BB0_104:
+ ld.global.u8 %rs56, [imageEnabled];
+ and.b16 %rs57, %rs56, 64;
+ setp.eq.s16 %p130, %rs57, 0;
+ @%p130 bra BB0_106;
+
+ cvt.u64.u32 %rd120, %r2;
+ cvt.u64.u32 %rd121, %r3;
+ mov.u64 %rd124, image_Dir;
+ cvta.global.u64 %rd119, %rd124;
+ // inline asm
+ call (%rd118), _rt_buffer_get_64, (%rd119, %r27, %r28, %rd120, %rd121, %rd13, %rd13);
+ // inline asm
+ mov.u16 %rs58, 0;
+ st.v4.u8 [%rd118], {%rs58, %rs58, %rs58, %rs58};
+ bra.uni BB0_106;
+
+BB0_46:
+ setp.geu.f32 %p67, %f147, 0f00000000;
+ @%p67 bra BB0_49;
+
+ cvt.rzi.f32.f32 %f865, %f837;
+ setp.neu.f32 %p68, %f865, 0f3EE8BA2E;
+ selp.f32 %f1196, 0f7FFFFFFF, %f1196, %p68;
+
+BB0_49:
+ add.f32 %f867, %f149, 0f3EE8BA2E;
+ mov.b32 %r125, %f867;
+ setp.lt.s32 %p70, %r125, 2139095040;
+ @%p70 bra BB0_54;
+
+ setp.gtu.f32 %p71, %f149, 0f7F800000;
+ @%p71 bra BB0_53;
+ bra.uni BB0_51;
+
+BB0_53:
+ add.f32 %f1196, %f147, 0f3EE8BA2E;
+ bra.uni BB0_54;
+
+BB0_51:
+ setp.neu.f32 %p72, %f149, 0f7F800000;
+ @%p72 bra BB0_54;
+
+ selp.f32 %f1196, 0fFF800000, 0f7F800000, %p4;
+
+BB0_54:
+ mul.f32 %f868, %f1196, 0f437F0000;
+ setp.eq.f32 %p73, %f147, 0f3F800000;
+ selp.f32 %f869, 0f437F0000, %f868, %p73;
+ cvt.rzi.u32.f32 %r126, %f869;
+ cvt.u16.u32 %rs14, %r126;
+ mov.u16 %rs15, 255;
+ st.v2.u8 [%rd43], {%rs14, %rs15};
+ ld.global.u32 %r196, [imageEnabled];
+
+BB0_55:
+ and.b32 %r127, %r196, 1;
+ setp.eq.b32 %p74, %r127, 1;
+ @!%p74 bra BB0_90;
+ bra.uni BB0_56;
+
+BB0_56:
+ mov.f32 %f872, 0f3E666666;
+ cvt.rzi.f32.f32 %f873, %f872;
+ fma.rn.f32 %f874, %f873, 0fC0000000, 0f3EE66666;
+ abs.f32 %f161, %f874;
+ abs.f32 %f162, %f1157;
+ setp.lt.f32 %p75, %f162, 0f00800000;
+ mul.f32 %f875, %f162, 0f4B800000;
+ selp.f32 %f876, 0fC3170000, 0fC2FE0000, %p75;
+ selp.f32 %f877, %f875, %f162, %p75;
+ mov.b32 %r128, %f877;
+ and.b32 %r129, %r128, 8388607;
+ or.b32 %r130, %r129, 1065353216;
+ mov.b32 %f878, %r130;
+ shr.u32 %r131, %r128, 23;
+ cvt.rn.f32.u32 %f879, %r131;
+ add.f32 %f880, %f876, %f879;
+ setp.gt.f32 %p76, %f878, 0f3FB504F3;
+ mul.f32 %f881, %f878, 0f3F000000;
+ add.f32 %f882, %f880, 0f3F800000;
+ selp.f32 %f883, %f881, %f878, %p76;
+ selp.f32 %f884, %f882, %f880, %p76;
+ add.f32 %f885, %f883, 0fBF800000;
+ add.f32 %f871, %f883, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f870,%f871;
+ // inline asm
+ add.f32 %f886, %f885, %f885;
+ mul.f32 %f887, %f870, %f886;
+ mul.f32 %f888, %f887, %f887;
+ mov.f32 %f889, 0f3C4CAF63;
+ mov.f32 %f890, 0f3B18F0FE;
+ fma.rn.f32 %f891, %f890, %f888, %f889;
+ mov.f32 %f892, 0f3DAAAABD;
+ fma.rn.f32 %f893, %f891, %f888, %f892;
+ mul.rn.f32 %f894, %f893, %f888;
+ mul.rn.f32 %f895, %f894, %f887;
+ sub.f32 %f896, %f885, %f887;
+ neg.f32 %f897, %f887;
+ add.f32 %f898, %f896, %f896;
+ fma.rn.f32 %f899, %f897, %f885, %f898;
+ mul.rn.f32 %f900, %f870, %f899;
+ add.f32 %f901, %f895, %f887;
+ sub.f32 %f902, %f887, %f901;
+ add.f32 %f903, %f895, %f902;
+ add.f32 %f904, %f900, %f903;
+ add.f32 %f905, %f901, %f904;
+ sub.f32 %f906, %f901, %f905;
+ add.f32 %f907, %f904, %f906;
+ mov.f32 %f908, 0f3F317200;
+ mul.rn.f32 %f909, %f884, %f908;
+ mov.f32 %f910, 0f35BFBE8E;
+ mul.rn.f32 %f911, %f884, %f910;
+ add.f32 %f912, %f909, %f905;
+ sub.f32 %f913, %f909, %f912;
+ add.f32 %f914, %f905, %f913;
+ add.f32 %f915, %f907, %f914;
+ add.f32 %f916, %f911, %f915;
+ add.f32 %f917, %f912, %f916;
+ sub.f32 %f918, %f912, %f917;
+ add.f32 %f919, %f916, %f918;
+ mov.f32 %f920, 0f3EE66666;
+ mul.rn.f32 %f921, %f920, %f917;
+ neg.f32 %f922, %f921;
+ fma.rn.f32 %f923, %f920, %f917, %f922;
+ fma.rn.f32 %f924, %f920, %f919, %f923;
+ mov.f32 %f925, 0f00000000;
+ fma.rn.f32 %f926, %f925, %f917, %f924;
+ add.rn.f32 %f927, %f921, %f926;
+ neg.f32 %f928, %f927;
+ add.rn.f32 %f929, %f921, %f928;
+ add.rn.f32 %f930, %f929, %f926;
+ mov.b32 %r132, %f927;
+ setp.eq.s32 %p77, %r132, 1118925336;
+ add.s32 %r133, %r132, -1;
+ mov.b32 %f931, %r133;
+ add.f32 %f932, %f930, 0f37000000;
+ selp.f32 %f933, %f931, %f927, %p77;
+ selp.f32 %f163, %f932, %f930, %p77;
+ mul.f32 %f934, %f933, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f935, %f934;
+ mov.f32 %f936, 0fBF317200;
+ fma.rn.f32 %f937, %f935, %f936, %f933;
+ mov.f32 %f938, 0fB5BFBE8E;
+ fma.rn.f32 %f939, %f935, %f938, %f937;
+ mul.f32 %f940, %f939, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f941, %f940;
+ add.f32 %f942, %f935, 0f00000000;
+ ex2.approx.f32 %f943, %f942;
+ mul.f32 %f944, %f941, %f943;
+ setp.lt.f32 %p78, %f933, 0fC2D20000;
+ selp.f32 %f945, 0f00000000, %f944, %p78;
+ setp.gt.f32 %p79, %f933, 0f42D20000;
+ selp.f32 %f1197, 0f7F800000, %f945, %p79;
+ setp.eq.f32 %p80, %f1197, 0f7F800000;
+ @%p80 bra BB0_58;
+
+ fma.rn.f32 %f1197, %f1197, %f163, %f1197;
+
+BB0_58:
+ setp.lt.f32 %p81, %f1157, 0f00000000;
+ setp.eq.f32 %p82, %f161, 0f3F800000;
+ and.pred %p5, %p81, %p82;
+ mov.b32 %r134, %f1197;
+ xor.b32 %r135, %r134, -2147483648;
+ mov.b32 %f946, %r135;
+ selp.f32 %f1199, %f946, %f1197, %p5;
+ setp.eq.f32 %p83, %f1157, 0f00000000;
+ @%p83 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f949, %f1157, %f1157;
+ selp.f32 %f1199, %f949, 0f00000000, %p82;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p84, %f1157, 0f00000000;
+ @%p84 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f948, %f920;
+ setp.neu.f32 %p85, %f948, 0f3EE66666;
+ selp.f32 %f1199, 0f7FFFFFFF, %f1199, %p85;
+
+BB0_62:
+ add.f32 %f950, %f162, 0f3EE66666;
+ mov.b32 %r136, %f950;
+ setp.lt.s32 %p87, %r136, 2139095040;
+ @%p87 bra BB0_67;
+
+ setp.gtu.f32 %p88, %f162, 0f7F800000;
+ @%p88 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f1199, %f1157, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p89, %f162, 0f7F800000;
+ @%p89 bra BB0_67;
+
+ selp.f32 %f1199, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ setp.eq.f32 %p90, %f1157, 0f3F800000;
+ selp.f32 %f174, 0f3F800000, %f1199, %p90;
+ abs.f32 %f175, %f1156;
+ setp.lt.f32 %p91, %f175, 0f00800000;
+ mul.f32 %f953, %f175, 0f4B800000;
+ selp.f32 %f954, 0fC3170000, 0fC2FE0000, %p91;
+ selp.f32 %f955, %f953, %f175, %p91;
+ mov.b32 %r137, %f955;
+ and.b32 %r138, %r137, 8388607;
+ or.b32 %r139, %r138, 1065353216;
+ mov.b32 %f956, %r139;
+ shr.u32 %r140, %r137, 23;
+ cvt.rn.f32.u32 %f957, %r140;
+ add.f32 %f958, %f954, %f957;
+ setp.gt.f32 %p92, %f956, 0f3FB504F3;
+ mul.f32 %f959, %f956, 0f3F000000;
+ add.f32 %f960, %f958, 0f3F800000;
+ selp.f32 %f961, %f959, %f956, %p92;
+ selp.f32 %f962, %f960, %f958, %p92;
+ add.f32 %f963, %f961, 0fBF800000;
+ add.f32 %f952, %f961, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f951,%f952;
+ // inline asm
+ add.f32 %f964, %f963, %f963;
+ mul.f32 %f965, %f951, %f964;
+ mul.f32 %f966, %f965, %f965;
+ fma.rn.f32 %f969, %f890, %f966, %f889;
+ fma.rn.f32 %f971, %f969, %f966, %f892;
+ mul.rn.f32 %f972, %f971, %f966;
+ mul.rn.f32 %f973, %f972, %f965;
+ sub.f32 %f974, %f963, %f965;
+ neg.f32 %f975, %f965;
+ add.f32 %f976, %f974, %f974;
+ fma.rn.f32 %f977, %f975, %f963, %f976;
+ mul.rn.f32 %f978, %f951, %f977;
+ add.f32 %f979, %f973, %f965;
+ sub.f32 %f980, %f965, %f979;
+ add.f32 %f981, %f973, %f980;
+ add.f32 %f982, %f978, %f981;
+ add.f32 %f983, %f979, %f982;
+ sub.f32 %f984, %f979, %f983;
+ add.f32 %f985, %f982, %f984;
+ mul.rn.f32 %f987, %f962, %f908;
+ mul.rn.f32 %f989, %f962, %f910;
+ add.f32 %f990, %f987, %f983;
+ sub.f32 %f991, %f987, %f990;
+ add.f32 %f992, %f983, %f991;
+ add.f32 %f993, %f985, %f992;
+ add.f32 %f994, %f989, %f993;
+ add.f32 %f995, %f990, %f994;
+ sub.f32 %f996, %f990, %f995;
+ add.f32 %f997, %f994, %f996;
+ mul.rn.f32 %f999, %f920, %f995;
+ neg.f32 %f1000, %f999;
+ fma.rn.f32 %f1001, %f920, %f995, %f1000;
+ fma.rn.f32 %f1002, %f920, %f997, %f1001;
+ fma.rn.f32 %f1004, %f925, %f995, %f1002;
+ add.rn.f32 %f1005, %f999, %f1004;
+ neg.f32 %f1006, %f1005;
+ add.rn.f32 %f1007, %f999, %f1006;
+ add.rn.f32 %f1008, %f1007, %f1004;
+ mov.b32 %r141, %f1005;
+ setp.eq.s32 %p93, %r141, 1118925336;
+ add.s32 %r142, %r141, -1;
+ mov.b32 %f1009, %r142;
+ add.f32 %f1010, %f1008, 0f37000000;
+ selp.f32 %f1011, %f1009, %f1005, %p93;
+ selp.f32 %f176, %f1010, %f1008, %p93;
+ mul.f32 %f1012, %f1011, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1013, %f1012;
+ fma.rn.f32 %f1015, %f1013, %f936, %f1011;
+ fma.rn.f32 %f1017, %f1013, %f938, %f1015;
+ mul.f32 %f1018, %f1017, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1019, %f1018;
+ add.f32 %f1020, %f1013, 0f00000000;
+ ex2.approx.f32 %f1021, %f1020;
+ mul.f32 %f1022, %f1019, %f1021;
+ setp.lt.f32 %p94, %f1011, 0fC2D20000;
+ selp.f32 %f1023, 0f00000000, %f1022, %p94;
+ setp.gt.f32 %p95, %f1011, 0f42D20000;
+ selp.f32 %f1200, 0f7F800000, %f1023, %p95;
+ setp.eq.f32 %p96, %f1200, 0f7F800000;
+ @%p96 bra BB0_69;
+
+ fma.rn.f32 %f1200, %f1200, %f176, %f1200;
+
+BB0_69:
+ setp.lt.f32 %p97, %f1156, 0f00000000;
+ and.pred %p6, %p97, %p82;
+ mov.b32 %r143, %f1200;
+ xor.b32 %r144, %r143, -2147483648;
+ mov.b32 %f1024, %r144;
+ selp.f32 %f1202, %f1024, %f1200, %p6;
+ setp.eq.f32 %p99, %f1156, 0f00000000;
+ @%p99 bra BB0_72;
+ bra.uni BB0_70;
+
+BB0_72:
+ add.f32 %f1027, %f1156, %f1156;
+ selp.f32 %f1202, %f1027, 0f00000000, %p82;
+ bra.uni BB0_73;
+
+BB0_70:
+ setp.geu.f32 %p100, %f1156, 0f00000000;
+ @%p100 bra BB0_73;
+
+ cvt.rzi.f32.f32 %f1026, %f920;
+ setp.neu.f32 %p101, %f1026, 0f3EE66666;
+ selp.f32 %f1202, 0f7FFFFFFF, %f1202, %p101;
+
+BB0_73:
+ add.f32 %f1028, %f175, 0f3EE66666;
+ mov.b32 %r145, %f1028;
+ setp.lt.s32 %p103, %r145, 2139095040;
+ @%p103 bra BB0_78;
+
+ setp.gtu.f32 %p104, %f175, 0f7F800000;
+ @%p104 bra BB0_77;
+ bra.uni BB0_75;
+
+BB0_77:
+ add.f32 %f1202, %f1156, 0f3EE66666;
+ bra.uni BB0_78;
+
+BB0_75:
+ setp.neu.f32 %p105, %f175, 0f7F800000;
+ @%p105 bra BB0_78;
+
+ selp.f32 %f1202, 0fFF800000, 0f7F800000, %p6;
+
+BB0_78:
+ setp.eq.f32 %p106, %f1156, 0f3F800000;
+ selp.f32 %f187, 0f3F800000, %f1202, %p106;
+ abs.f32 %f188, %f1155;
+ setp.lt.f32 %p107, %f188, 0f00800000;
+ mul.f32 %f1031, %f188, 0f4B800000;
+ selp.f32 %f1032, 0fC3170000, 0fC2FE0000, %p107;
+ selp.f32 %f1033, %f1031, %f188, %p107;
+ mov.b32 %r146, %f1033;
+ and.b32 %r147, %r146, 8388607;
+ or.b32 %r148, %r147, 1065353216;
+ mov.b32 %f1034, %r148;
+ shr.u32 %r149, %r146, 23;
+ cvt.rn.f32.u32 %f1035, %r149;
+ add.f32 %f1036, %f1032, %f1035;
+ setp.gt.f32 %p108, %f1034, 0f3FB504F3;
+ mul.f32 %f1037, %f1034, 0f3F000000;
+ add.f32 %f1038, %f1036, 0f3F800000;
+ selp.f32 %f1039, %f1037, %f1034, %p108;
+ selp.f32 %f1040, %f1038, %f1036, %p108;
+ add.f32 %f1041, %f1039, 0fBF800000;
+ add.f32 %f1030, %f1039, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f1029,%f1030;
+ // inline asm
+ add.f32 %f1042, %f1041, %f1041;
+ mul.f32 %f1043, %f1029, %f1042;
+ mul.f32 %f1044, %f1043, %f1043;
+ fma.rn.f32 %f1047, %f890, %f1044, %f889;
+ fma.rn.f32 %f1049, %f1047, %f1044, %f892;
+ mul.rn.f32 %f1050, %f1049, %f1044;
+ mul.rn.f32 %f1051, %f1050, %f1043;
+ sub.f32 %f1052, %f1041, %f1043;
+ neg.f32 %f1053, %f1043;
+ add.f32 %f1054, %f1052, %f1052;
+ fma.rn.f32 %f1055, %f1053, %f1041, %f1054;
+ mul.rn.f32 %f1056, %f1029, %f1055;
+ add.f32 %f1057, %f1051, %f1043;
+ sub.f32 %f1058, %f1043, %f1057;
+ add.f32 %f1059, %f1051, %f1058;
+ add.f32 %f1060, %f1056, %f1059;
+ add.f32 %f1061, %f1057, %f1060;
+ sub.f32 %f1062, %f1057, %f1061;
+ add.f32 %f1063, %f1060, %f1062;
+ mul.rn.f32 %f1065, %f1040, %f908;
+ mul.rn.f32 %f1067, %f1040, %f910;
+ add.f32 %f1068, %f1065, %f1061;
+ sub.f32 %f1069, %f1065, %f1068;
+ add.f32 %f1070, %f1061, %f1069;
+ add.f32 %f1071, %f1063, %f1070;
+ add.f32 %f1072, %f1067, %f1071;
+ add.f32 %f1073, %f1068, %f1072;
+ sub.f32 %f1074, %f1068, %f1073;
+ add.f32 %f1075, %f1072, %f1074;
+ mul.rn.f32 %f1077, %f920, %f1073;
+ neg.f32 %f1078, %f1077;
+ fma.rn.f32 %f1079, %f920, %f1073, %f1078;
+ fma.rn.f32 %f1080, %f920, %f1075, %f1079;
+ fma.rn.f32 %f1082, %f925, %f1073, %f1080;
+ add.rn.f32 %f1083, %f1077, %f1082;
+ neg.f32 %f1084, %f1083;
+ add.rn.f32 %f1085, %f1077, %f1084;
+ add.rn.f32 %f1086, %f1085, %f1082;
+ mov.b32 %r150, %f1083;
+ setp.eq.s32 %p109, %r150, 1118925336;
+ add.s32 %r151, %r150, -1;
+ mov.b32 %f1087, %r151;
+ add.f32 %f1088, %f1086, 0f37000000;
+ selp.f32 %f1089, %f1087, %f1083, %p109;
+ selp.f32 %f189, %f1088, %f1086, %p109;
+ mul.f32 %f1090, %f1089, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1091, %f1090;
+ fma.rn.f32 %f1093, %f1091, %f936, %f1089;
+ fma.rn.f32 %f1095, %f1091, %f938, %f1093;
+ mul.f32 %f1096, %f1095, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1097, %f1096;
+ add.f32 %f1098, %f1091, 0f00000000;
+ ex2.approx.f32 %f1099, %f1098;
+ mul.f32 %f1100, %f1097, %f1099;
+ setp.lt.f32 %p110, %f1089, 0fC2D20000;
+ selp.f32 %f1101, 0f00000000, %f1100, %p110;
+ setp.gt.f32 %p111, %f1089, 0f42D20000;
+ selp.f32 %f1203, 0f7F800000, %f1101, %p111;
+ setp.eq.f32 %p112, %f1203, 0f7F800000;
+ @%p112 bra BB0_80;
+
+ fma.rn.f32 %f1203, %f1203, %f189, %f1203;
+
+BB0_80:
+ setp.lt.f32 %p113, %f1155, 0f00000000;
+ and.pred %p7, %p113, %p82;
+ mov.b32 %r152, %f1203;
+ xor.b32 %r153, %r152, -2147483648;
+ mov.b32 %f1102, %r153;
+ selp.f32 %f1205, %f1102, %f1203, %p7;
+ setp.eq.f32 %p115, %f1155, 0f00000000;
+ @%p115 bra BB0_83;
+ bra.uni BB0_81;
+
+BB0_83:
+ add.f32 %f1105, %f1155, %f1155;
+ selp.f32 %f1205, %f1105, 0f00000000, %p82;
+ bra.uni BB0_84;
+
+BB0_81:
+ setp.geu.f32 %p116, %f1155, 0f00000000;
+ @%p116 bra BB0_84;
+
+ cvt.rzi.f32.f32 %f1104, %f920;
+ setp.neu.f32 %p117, %f1104, 0f3EE66666;
+ selp.f32 %f1205, 0f7FFFFFFF, %f1205, %p117;
+
+BB0_84:
+ add.f32 %f1106, %f188, 0f3EE66666;
+ mov.b32 %r154, %f1106;
+ setp.lt.s32 %p119, %r154, 2139095040;
+ @%p119 bra BB0_89;
+
+ setp.gtu.f32 %p120, %f188, 0f7F800000;
+ @%p120 bra BB0_88;
+ bra.uni BB0_86;
+
+BB0_88:
+ add.f32 %f1205, %f1155, 0f3EE66666;
+ bra.uni BB0_89;
+
+BB0_86:
+ setp.neu.f32 %p121, %f188, 0f7F800000;
+ @%p121 bra BB0_89;
+
+ selp.f32 %f1205, 0fFF800000, 0f7F800000, %p7;
+
+BB0_89:
+ setp.eq.f32 %p122, %f1155, 0f3F800000;
+ selp.f32 %f1107, 0f3F800000, %f1205, %p122;
+ cvt.u64.u32 %rd53, %r3;
+ cvt.u64.u32 %rd52, %r2;
+ mov.u64 %rd56, image;
+ cvta.global.u64 %rd51, %rd56;
+ // inline asm
+ call (%rd50), _rt_buffer_get_64, (%rd51, %r27, %r28, %rd52, %rd53, %rd13, %rd13);
+ // inline asm
+ cvt.sat.f32.f32 %f1108, %f1107;
+ mul.f32 %f1109, %f1108, 0f437FFD71;
+ cvt.rzi.u32.f32 %r157, %f1109;
+ cvt.sat.f32.f32 %f1110, %f187;
+ mul.f32 %f1111, %f1110, 0f437FFD71;
+ cvt.rzi.u32.f32 %r158, %f1111;
+ cvt.sat.f32.f32 %f1112, %f174;
+ mul.f32 %f1113, %f1112, 0f437FFD71;
+ cvt.rzi.u32.f32 %r159, %f1113;
+ cvt.u16.u32 %rs16, %r157;
+ cvt.u16.u32 %rs17, %r159;
+ cvt.u16.u32 %rs18, %r158;
+ mov.u16 %rs19, 255;
+ st.v4.u8 [%rd50], {%rs16, %rs18, %rs17, %rs19};
+ ld.global.u32 %r196, [imageEnabled];
+
+BB0_90:
+ and.b32 %r160, %r196, 4;
+ setp.eq.s32 %p123, %r160, 0;
+ @%p123 bra BB0_94;
+
+ ld.global.u32 %r161, [additive];
+ setp.eq.s32 %p124, %r161, 0;
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ mov.f32 %f1114, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f1114;}
+
+ // inline asm
+ @%p124 bra BB0_93;
+
+ mov.u64 %rd69, image_HDR;
+ cvta.global.u64 %rd58, %rd69;
+ mov.u32 %r165, 8;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd58, %r27, %r165, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs27, %rs28, %rs29, %rs30}, [%rd57];
+ // inline asm
+ { cvt.f32.f16 %f1115, %rs27;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1116, %rs28;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1117, %rs29;}
+
+ // inline asm
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd58, %r27, %r165, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1118, %f1157, %f1115;
+ add.f32 %f1119, %f1156, %f1116;
+ add.f32 %f1120, %f1155, %f1117;
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f1120;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f1119;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f1118;}
+
+ // inline asm
+ st.v4.u16 [%rd63], {%rs24, %rs25, %rs26, %rs20};
+ bra.uni BB0_94;
+
+BB0_93:
+ mov.u64 %rd76, image_HDR;
+ cvta.global.u64 %rd71, %rd76;
+ mov.u32 %r167, 8;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd71, %r27, %r167, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f1155;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f1156;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f1157;}
+
+ // inline asm
+ st.v4.u16 [%rd70], {%rs31, %rs32, %rs33, %rs20};
+
+BB0_94:
+ ld.global.u8 %rs34, [imageEnabled];
+ and.b16 %rs35, %rs34, 64;
+ setp.eq.s16 %p125, %rs35, 0;
+ @%p125 bra BB0_106;
+
+ mul.f32 %f1124, %f19, %f19;
+ fma.rn.f32 %f1125, %f20, %f20, %f1124;
+ fma.rn.f32 %f1126, %f18, %f18, %f1125;
+ sqrt.rn.f32 %f1127, %f1126;
+ rcp.rn.f32 %f1128, %f1127;
+ mul.f32 %f1129, %f20, %f1128;
+ mul.f32 %f1130, %f19, %f1128;
+ mul.f32 %f1131, %f18, %f1128;
+ cvt.u64.u32 %rd80, %r3;
+ cvt.u64.u32 %rd79, %r2;
+ mov.u64 %rd83, image_Dir;
+ cvta.global.u64 %rd78, %rd83;
+ // inline asm
+ call (%rd77), _rt_buffer_get_64, (%rd78, %r27, %r28, %rd79, %rd80, %rd13, %rd13);
+ // inline asm
+ fma.rn.f32 %f1132, %f1129, 0f3F000000, 0f3F000000;
+ mul.f32 %f1133, %f1132, 0f437F0000;
+ cvt.rzi.u32.f32 %r170, %f1133;
+ fma.rn.f32 %f1134, %f1130, 0f3F000000, 0f3F000000;
+ mul.f32 %f1135, %f1134, 0f437F0000;
+ cvt.rzi.u32.f32 %r171, %f1135;
+ fma.rn.f32 %f1136, %f1131, 0f3F000000, 0f3F000000;
+ mul.f32 %f1137, %f1136, 0f437F0000;
+ cvt.rzi.u32.f32 %r172, %f1137;
+ cvt.u16.u32 %rs36, %r172;
+ cvt.u16.u32 %rs37, %r171;
+ cvt.u16.u32 %rs38, %r170;
+ mov.u16 %rs39, 255;
+ st.v4.u8 [%rd77], {%rs38, %rs37, %rs36, %rs39};
+
+BB0_106:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLight.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLight.ptx.meta
new file mode 100644
index 00000000..159d1f56
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLight.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e661f8eba59c2c74aae2e26dd07d3fc7
+timeCreated: 1583324482
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightProbeSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightProbeSH.ptx
new file mode 100644
index 00000000..885f3bf1
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightProbeSH.ptx
@@ -0,0 +1,2378 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 ignoreNormal;
+.global .align 1 .b8 localLights[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<136>;
+ .reg .b16 %rs<158>;
+ .reg .f32 %f<1391>;
+ .reg .b32 %r<248>;
+ .reg .b64 %rd<272>;
+
+
+ mov.u64 %rd271, __local_depot0;
+ cvta.local.u64 %SP, %rd271;
+ ld.global.v2.u32 {%r29, %r30}, [pixelID];
+ cvt.u64.u32 %rd10, %r29;
+ cvt.u64.u32 %rd11, %r30;
+ mov.u64 %rd14, uvnormal;
+ cvta.global.u64 %rd9, %rd14;
+ mov.u32 %r27, 2;
+ mov.u32 %r28, 4;
+ mov.u64 %rd13, 0;
+ // inline asm
+ call (%rd8), _rt_buffer_get_64, (%rd9, %r27, %r28, %rd10, %rd11, %rd13, %rd13);
+ // inline asm
+ ld.u32 %r1, [%rd8];
+ shr.u32 %r33, %r1, 16;
+ cvt.u16.u32 %rs1, %r33;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r1;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p8, %rs9, 0;
+ mov.f32 %f1300, 0f00000000;
+ mov.f32 %f1301, %f1300;
+ mov.f32 %f1302, %f1300;
+ @%p8 bra BB0_2;
+
+ ld.u8 %rs10, [%rd8+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f262, %rs12;
+ div.rn.f32 %f263, %f262, 0f437F0000;
+ fma.rn.f32 %f264, %f263, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f265, %rs10;
+ div.rn.f32 %f266, %f265, 0f437F0000;
+ fma.rn.f32 %f267, %f266, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f268, %rs7;
+ div.rn.f32 %f269, %f268, 0f437F0000;
+ fma.rn.f32 %f270, %f269, 0f40000000, 0fBF800000;
+ mul.f32 %f271, %f267, %f267;
+ fma.rn.f32 %f272, %f264, %f264, %f271;
+ fma.rn.f32 %f273, %f270, %f270, %f272;
+ sqrt.rn.f32 %f274, %f273;
+ rcp.rn.f32 %f275, %f274;
+ mul.f32 %f1300, %f264, %f275;
+ mul.f32 %f1301, %f267, %f275;
+ mul.f32 %f1302, %f270, %f275;
+
+BB0_2:
+ ld.global.v2.u32 {%r34, %r35}, [pixelID];
+ ld.global.v2.u32 {%r37, %r38}, [tileInfo];
+ add.s32 %r2, %r34, %r37;
+ add.s32 %r3, %r35, %r38;
+ setp.eq.f32 %p9, %f1301, 0f00000000;
+ setp.eq.f32 %p10, %f1300, 0f00000000;
+ and.pred %p11, %p10, %p9;
+ setp.eq.f32 %p12, %f1302, 0f00000000;
+ and.pred %p13, %p11, %p12;
+ @%p13 bra BB0_104;
+ bra.uni BB0_3;
+
+BB0_104:
+ ld.global.u32 %r247, [imageEnabled];
+ and.b32 %r196, %r247, 1;
+ setp.eq.b32 %p127, %r196, 1;
+ @!%p127 bra BB0_106;
+ bra.uni BB0_105;
+
+BB0_105:
+ cvt.u64.u32 %rd159, %r2;
+ cvt.u64.u32 %rd160, %r3;
+ mov.u64 %rd163, image;
+ cvta.global.u64 %rd158, %rd163;
+ // inline asm
+ call (%rd157), _rt_buffer_get_64, (%rd158, %r27, %r28, %rd159, %rd160, %rd13, %rd13);
+ // inline asm
+ mov.u16 %rs90, 0;
+ st.v4.u8 [%rd157], {%rs90, %rs90, %rs90, %rs90};
+ ld.global.u32 %r247, [imageEnabled];
+
+BB0_106:
+ and.b32 %r199, %r247, 8;
+ setp.eq.s32 %p128, %r199, 0;
+ @%p128 bra BB0_108;
+
+ cvt.u64.u32 %rd167, %r3;
+ cvt.u64.u32 %rd166, %r2;
+ mov.u64 %rd170, image_Mask;
+ cvta.global.u64 %rd165, %rd170;
+ // inline asm
+ call (%rd164), _rt_buffer_get_64, (%rd165, %r27, %r27, %rd166, %rd167, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1264, 0f00000000;
+ cvt.rzi.u32.f32 %r202, %f1264;
+ cvt.u16.u32 %rs91, %r202;
+ mov.u16 %rs92, 0;
+ st.v2.u8 [%rd164], {%rs91, %rs92};
+ ld.global.u32 %r247, [imageEnabled];
+
+BB0_108:
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ and.b32 %r203, %r247, 4;
+ setp.eq.s32 %p129, %r203, 0;
+ @%p129 bra BB0_112;
+
+ ld.global.u32 %r204, [additive];
+ setp.eq.s32 %p130, %r204, 0;
+ @%p130 bra BB0_111;
+
+ mov.u64 %rd183, image_HDR;
+ cvta.global.u64 %rd172, %rd183;
+ mov.u32 %r208, 8;
+ // inline asm
+ call (%rd171), _rt_buffer_get_64, (%rd172, %r27, %r208, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs99, %rs100, %rs101, %rs102}, [%rd171];
+ // inline asm
+ { cvt.f32.f16 %f1265, %rs99;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1266, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1267, %rs101;}
+
+ // inline asm
+ // inline asm
+ call (%rd177), _rt_buffer_get_64, (%rd172, %r27, %r208, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1268, %f1265, 0f00000000;
+ add.f32 %f1269, %f1266, 0f00000000;
+ add.f32 %f1270, %f1267, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f1270;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f1269;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs96, %f1268;}
+
+ // inline asm
+ mov.u16 %rs103, 0;
+ st.v4.u16 [%rd177], {%rs96, %rs97, %rs98, %rs103};
+ bra.uni BB0_112;
+
+BB0_3:
+ ld.global.v2.u32 {%r46, %r47}, [pixelID];
+ cvt.u64.u32 %rd17, %r46;
+ cvt.u64.u32 %rd18, %r47;
+ mov.u64 %rd26, uvpos;
+ cvta.global.u64 %rd16, %rd26;
+ mov.u32 %r43, 12;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd16, %r27, %r43, %rd17, %rd18, %rd13, %rd13);
+ // inline asm
+ ld.f32 %f9, [%rd15+8];
+ ld.f32 %f8, [%rd15+4];
+ ld.f32 %f7, [%rd15];
+ mul.f32 %f292, %f7, 0f3456BF95;
+ mul.f32 %f293, %f8, 0f3456BF95;
+ mul.f32 %f294, %f9, 0f3456BF95;
+ abs.f32 %f295, %f1300;
+ div.rn.f32 %f296, %f292, %f295;
+ abs.f32 %f297, %f1301;
+ div.rn.f32 %f298, %f293, %f297;
+ abs.f32 %f299, %f1302;
+ div.rn.f32 %f300, %f294, %f299;
+ abs.f32 %f301, %f296;
+ abs.f32 %f302, %f298;
+ abs.f32 %f303, %f300;
+ mov.f32 %f304, 0f38D1B717;
+ max.f32 %f305, %f301, %f304;
+ max.f32 %f306, %f302, %f304;
+ max.f32 %f307, %f303, %f304;
+ fma.rn.f32 %f10, %f1300, %f305, %f7;
+ fma.rn.f32 %f11, %f1301, %f306, %f8;
+ fma.rn.f32 %f12, %f1302, %f307, %f9;
+ mov.u64 %rd27, localLights;
+ cvta.global.u64 %rd25, %rd27;
+ mov.u32 %r44, 1;
+ mov.u32 %r45, 96;
+ // inline asm
+ call (%rd21, %rd22, %rd23, %rd24), _rt_buffer_get_size_64, (%rd25, %r44, %r45);
+ // inline asm
+ cvt.u32.u64 %r4, %rd21;
+ setp.eq.s32 %p14, %r4, 0;
+ mov.f32 %f1303, 0f00000000;
+ mov.f32 %f1304, %f1303;
+ mov.f32 %f1305, %f1303;
+ mov.f32 %f1306, %f1303;
+ mov.f32 %f1307, %f1303;
+ mov.f32 %f1308, %f1303;
+ mov.f32 %f1309, %f1303;
+ mov.f32 %f1310, %f1303;
+ mov.f32 %f1311, %f1303;
+ mov.f32 %f1312, %f1303;
+ mov.f32 %f1313, %f1303;
+ mov.f32 %f1314, %f1303;
+ mov.f32 %f1315, %f1303;
+ mov.f32 %f1316, %f1303;
+ mov.f32 %f1317, %f1303;
+ mov.f32 %f1318, %f1303;
+ @%p14 bra BB0_40;
+
+ mov.f32 %f324, 0f40000000;
+ cvt.rzi.f32.f32 %f325, %f324;
+ add.f32 %f326, %f325, %f325;
+ mov.f32 %f327, 0f40800000;
+ sub.f32 %f328, %f327, %f326;
+ abs.f32 %f13, %f328;
+ mul.f32 %f14, %f10, 0f3456BF95;
+ mul.f32 %f15, %f11, 0f3456BF95;
+ mul.f32 %f16, %f12, 0f3456BF95;
+ mov.f32 %f323, 0f00000000;
+ mov.u32 %r239, 0;
+ abs.f32 %f516, %f14;
+ abs.f32 %f517, %f15;
+ max.f32 %f518, %f516, %f517;
+ abs.f32 %f519, %f16;
+ max.f32 %f520, %f518, %f519;
+ mov.f32 %f1303, %f323;
+ mov.f32 %f1304, %f323;
+ mov.f32 %f1305, %f323;
+ mov.f32 %f1306, %f323;
+ mov.f32 %f1307, %f323;
+ mov.f32 %f1308, %f323;
+ mov.f32 %f1309, %f323;
+ mov.f32 %f1310, %f323;
+ mov.f32 %f1311, %f323;
+ mov.f32 %f1312, %f323;
+ mov.f32 %f1313, %f323;
+ mov.f32 %f1314, %f323;
+ mov.f32 %f1315, %f323;
+ mov.f32 %f1316, %f323;
+ mov.f32 %f1317, %f323;
+ mov.f32 %f1318, %f323;
+
+BB0_5:
+ cvt.u64.u32 %rd30, %r239;
+ // inline asm
+ call (%rd28), _rt_buffer_get_64, (%rd25, %r44, %r45, %rd30, %rd13, %rd13, %rd13);
+ // inline asm
+ ld.v4.f32 {%f331, %f332, %f333, %f334}, [%rd28+80];
+ ld.v4.f32 {%f335, %f336, %f337, %f338}, [%rd28+64];
+ ld.v4.f32 {%f339, %f340, %f341, %f342}, [%rd28+48];
+ ld.v4.f32 {%f1322, %f1323, %f1324, %f346}, [%rd28+32];
+ ld.v4.f32 {%f347, %f348, %f349, %f350}, [%rd28+16];
+ ld.v4.f32 {%f351, %f352, %f353, %f354}, [%rd28];
+ mov.b32 %r6, %f334;
+ sub.f32 %f356, %f352, %f7;
+ sub.f32 %f357, %f353, %f8;
+ sub.f32 %f358, %f354, %f9;
+ mul.f32 %f359, %f357, %f357;
+ fma.rn.f32 %f360, %f356, %f356, %f359;
+ fma.rn.f32 %f361, %f358, %f358, %f360;
+ sqrt.rn.f32 %f59, %f361;
+ rcp.rn.f32 %f362, %f59;
+ mul.f32 %f60, %f356, %f362;
+ mul.f32 %f61, %f357, %f362;
+ mul.f32 %f62, %f358, %f362;
+ mul.f32 %f63, %f59, %f350;
+ abs.f32 %f64, %f63;
+ setp.lt.f32 %p15, %f64, 0f00800000;
+ mul.f32 %f363, %f64, 0f4B800000;
+ selp.f32 %f364, 0fC3170000, 0fC2FE0000, %p15;
+ selp.f32 %f365, %f363, %f64, %p15;
+ mov.b32 %r53, %f365;
+ and.b32 %r54, %r53, 8388607;
+ or.b32 %r55, %r54, 1065353216;
+ mov.b32 %f366, %r55;
+ shr.u32 %r56, %r53, 23;
+ cvt.rn.f32.u32 %f367, %r56;
+ add.f32 %f368, %f364, %f367;
+ setp.gt.f32 %p16, %f366, 0f3FB504F3;
+ mul.f32 %f369, %f366, 0f3F000000;
+ add.f32 %f370, %f368, 0f3F800000;
+ selp.f32 %f371, %f369, %f366, %p16;
+ selp.f32 %f372, %f370, %f368, %p16;
+ add.f32 %f373, %f371, 0fBF800000;
+ add.f32 %f330, %f371, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f329,%f330;
+ // inline asm
+ add.f32 %f374, %f373, %f373;
+ mul.f32 %f375, %f329, %f374;
+ mul.f32 %f376, %f375, %f375;
+ mov.f32 %f377, 0f3C4CAF63;
+ mov.f32 %f378, 0f3B18F0FE;
+ fma.rn.f32 %f379, %f378, %f376, %f377;
+ mov.f32 %f380, 0f3DAAAABD;
+ fma.rn.f32 %f381, %f379, %f376, %f380;
+ mul.rn.f32 %f382, %f381, %f376;
+ mul.rn.f32 %f383, %f382, %f375;
+ sub.f32 %f384, %f373, %f375;
+ neg.f32 %f385, %f375;
+ add.f32 %f386, %f384, %f384;
+ fma.rn.f32 %f387, %f385, %f373, %f386;
+ mul.rn.f32 %f388, %f329, %f387;
+ add.f32 %f389, %f383, %f375;
+ sub.f32 %f390, %f375, %f389;
+ add.f32 %f391, %f383, %f390;
+ add.f32 %f392, %f388, %f391;
+ add.f32 %f393, %f389, %f392;
+ sub.f32 %f394, %f389, %f393;
+ add.f32 %f395, %f392, %f394;
+ mov.f32 %f396, 0f3F317200;
+ mul.rn.f32 %f397, %f372, %f396;
+ mov.f32 %f398, 0f35BFBE8E;
+ mul.rn.f32 %f399, %f372, %f398;
+ add.f32 %f400, %f397, %f393;
+ sub.f32 %f401, %f397, %f400;
+ add.f32 %f402, %f393, %f401;
+ add.f32 %f403, %f395, %f402;
+ add.f32 %f404, %f399, %f403;
+ add.f32 %f405, %f400, %f404;
+ sub.f32 %f406, %f400, %f405;
+ add.f32 %f407, %f404, %f406;
+ mul.rn.f32 %f65, %f327, %f405;
+ neg.f32 %f409, %f65;
+ fma.rn.f32 %f410, %f327, %f405, %f409;
+ fma.rn.f32 %f411, %f327, %f407, %f410;
+ fma.rn.f32 %f66, %f323, %f405, %f411;
+ add.rn.f32 %f67, %f65, %f66;
+ mov.b32 %r57, %f67;
+ setp.eq.s32 %p1, %r57, 1118925336;
+ add.s32 %r58, %r57, -1;
+ mov.b32 %f413, %r58;
+ selp.f32 %f414, %f413, %f67, %p1;
+ mul.f32 %f415, %f414, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f416, %f415;
+ mov.f32 %f417, 0fBF317200;
+ fma.rn.f32 %f418, %f416, %f417, %f414;
+ mov.f32 %f419, 0fB5BFBE8E;
+ fma.rn.f32 %f420, %f416, %f419, %f418;
+ mul.f32 %f421, %f420, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f422, %f421;
+ add.f32 %f423, %f416, 0f00000000;
+ ex2.approx.f32 %f424, %f423;
+ mul.f32 %f425, %f422, %f424;
+ setp.lt.f32 %p17, %f414, 0fC2D20000;
+ selp.f32 %f426, 0f00000000, %f425, %p17;
+ setp.gt.f32 %p18, %f414, 0f42D20000;
+ selp.f32 %f1319, 0f7F800000, %f426, %p18;
+ setp.eq.f32 %p19, %f1319, 0f7F800000;
+ @%p19 bra BB0_7;
+
+ neg.f32 %f427, %f67;
+ add.rn.f32 %f428, %f65, %f427;
+ add.rn.f32 %f429, %f428, %f66;
+ add.f32 %f430, %f429, 0f37000000;
+ selp.f32 %f431, %f430, %f429, %p1;
+ fma.rn.f32 %f1319, %f1319, %f431, %f1319;
+
+BB0_7:
+ setp.lt.f32 %p20, %f63, 0f00000000;
+ setp.eq.f32 %p21, %f13, 0f3F800000;
+ and.pred %p2, %p20, %p21;
+ mov.b32 %r59, %f1319;
+ xor.b32 %r60, %r59, -2147483648;
+ mov.b32 %f432, %r60;
+ selp.f32 %f1321, %f432, %f1319, %p2;
+ setp.eq.f32 %p22, %f63, 0f00000000;
+ @%p22 bra BB0_10;
+ bra.uni BB0_8;
+
+BB0_10:
+ add.f32 %f435, %f63, %f63;
+ selp.f32 %f1321, %f435, 0f00000000, %p21;
+ bra.uni BB0_11;
+
+BB0_8:
+ setp.geu.f32 %p23, %f63, 0f00000000;
+ @%p23 bra BB0_11;
+
+ cvt.rzi.f32.f32 %f434, %f327;
+ setp.neu.f32 %p24, %f434, 0f40800000;
+ selp.f32 %f1321, 0f7FFFFFFF, %f1321, %p24;
+
+BB0_11:
+ add.f32 %f436, %f64, 0f40800000;
+ mov.b32 %r61, %f436;
+ setp.lt.s32 %p26, %r61, 2139095040;
+ @%p26 bra BB0_16;
+
+ setp.gtu.f32 %p27, %f64, 0f7F800000;
+ @%p27 bra BB0_15;
+ bra.uni BB0_13;
+
+BB0_15:
+ add.f32 %f1321, %f63, 0f40800000;
+ bra.uni BB0_16;
+
+BB0_13:
+ setp.neu.f32 %p28, %f64, 0f7F800000;
+ @%p28 bra BB0_16;
+
+ selp.f32 %f1321, 0fFF800000, 0f7F800000, %p2;
+
+BB0_16:
+ mul.f32 %f437, %f59, %f348;
+ mov.f32 %f1346, 0f3F800000;
+ sub.f32 %f439, %f1346, %f1321;
+ setp.eq.f32 %p29, %f63, 0f3F800000;
+ selp.f32 %f440, 0f00000000, %f439, %p29;
+ cvt.sat.f32.f32 %f441, %f440;
+ fma.rn.f32 %f442, %f437, %f437, %f349;
+ div.rn.f32 %f1325, %f441, %f442;
+ mul.f32 %f443, %f1301, %f61;
+ fma.rn.f32 %f444, %f1300, %f60, %f443;
+ fma.rn.f32 %f94, %f1302, %f62, %f444;
+ setp.eq.f32 %p30, %f351, 0f3F800000;
+ @%p30 bra BB0_22;
+ bra.uni BB0_17;
+
+BB0_22:
+ setp.leu.f32 %p34, %f346, 0f00000000;
+ @%p34 bra BB0_24;
+
+ mul.f32 %f475, %f331, %f60;
+ mul.f32 %f476, %f332, %f61;
+ neg.f32 %f477, %f476;
+ sub.f32 %f478, %f477, %f475;
+ mul.f32 %f479, %f333, %f62;
+ sub.f32 %f480, %f478, %f479;
+ setp.gt.f32 %p35, %f480, 0f00000000;
+ selp.f32 %f481, 0f3F800000, 0f00000000, %p35;
+ mul.f32 %f482, %f340, %f61;
+ fma.rn.f32 %f483, %f339, %f60, %f482;
+ mul.f32 %f484, %f336, %f61;
+ fma.rn.f32 %f485, %f335, %f60, %f484;
+ fma.rn.f32 %f486, %f341, %f62, %f483;
+ fma.rn.f32 %f487, %f337, %f62, %f485;
+ fma.rn.f32 %f471, %f342, %f486, 0f3F000000;
+ fma.rn.f32 %f472, %f342, %f487, 0f3F000000;
+ cvt.rzi.s32.f32 %r65, %f346;
+ mov.f32 %f474, 0f00000000;
+ // inline asm
+ call (%f467, %f468, %f469, %f470), _rt_texture_get_f_id, (%r65, %r27, %f471, %f472, %f474, %f474);
+ // inline asm
+ mul.f32 %f488, %f481, %f467;
+ mul.f32 %f489, %f481, %f468;
+ mul.f32 %f490, %f481, %f469;
+ mul.f32 %f1322, %f1322, %f488;
+ mul.f32 %f1323, %f1323, %f489;
+ mul.f32 %f1324, %f1324, %f490;
+ bra.uni BB0_24;
+
+BB0_17:
+ setp.eq.f32 %p31, %f351, 0f40000000;
+ @%p31 bra BB0_20;
+ bra.uni BB0_18;
+
+BB0_20:
+ setp.leu.f32 %p33, %f346, 0f00000000;
+ @%p33 bra BB0_24;
+
+ mul.f32 %f461, %f340, %f61;
+ fma.rn.f32 %f462, %f339, %f60, %f461;
+ mul.f32 %f463, %f336, %f61;
+ fma.rn.f32 %f464, %f335, %f60, %f463;
+ mul.f32 %f465, %f332, %f61;
+ fma.rn.f32 %f466, %f331, %f60, %f465;
+ fma.rn.f32 %f458, %f341, %f62, %f462;
+ fma.rn.f32 %f459, %f337, %f62, %f464;
+ fma.rn.f32 %f460, %f333, %f62, %f466;
+ cvt.rzi.s32.f32 %r62, %f346;
+ mov.u32 %r63, 6;
+ mov.u32 %r64, 0;
+ // inline asm
+ call (%f454, %f455, %f456, %f457), _rt_texture_get_base_id, (%r62, %r63, %f458, %f459, %f460, %r64);
+ // inline asm
+ mul.f32 %f1322, %f1322, %f454;
+ mul.f32 %f1323, %f1323, %f455;
+ mul.f32 %f1324, %f1324, %f456;
+ bra.uni BB0_24;
+
+BB0_18:
+ setp.neu.f32 %p32, %f351, 0f40800000;
+ @%p32 bra BB0_24;
+
+ mul.f32 %f445, %f331, %f60;
+ mul.f32 %f446, %f332, %f61;
+ neg.f32 %f447, %f446;
+ sub.f32 %f448, %f447, %f445;
+ mul.f32 %f449, %f333, %f62;
+ sub.f32 %f450, %f448, %f449;
+ fma.rn.f32 %f451, %f346, %f450, %f342;
+ cvt.sat.f32.f32 %f452, %f451;
+ mul.f32 %f453, %f452, %f452;
+ mul.f32 %f1325, %f1325, %f453;
+
+BB0_24:
+ max.f32 %f506, %f1322, %f1323;
+ max.f32 %f507, %f506, %f1324;
+ mul.f32 %f508, %f1325, %f507;
+ setp.lt.f32 %p37, %f508, 0f3727C5AC;
+ mov.pred %p135, -1;
+ mov.f32 %f1326, 0f00000000;
+ mov.f32 %f1327, %f1326;
+ mov.f32 %f1328, %f1326;
+ mov.f32 %f1329, %f1326;
+ mov.f32 %f1330, %f1326;
+ mov.f32 %f1331, %f1326;
+ mov.f32 %f1332, %f1326;
+ mov.f32 %f1333, %f1326;
+ mov.f32 %f1334, %f1326;
+ mov.f32 %f1335, %f1326;
+ mov.f32 %f1336, %f1326;
+ mov.f32 %f1337, %f1326;
+ mov.f32 %f1338, %f1326;
+ mov.f32 %f1339, %f1326;
+ mov.f32 %f1340, %f1326;
+ @%p37 bra BB0_26;
+
+ ld.global.u32 %r67, [ignoreNormal];
+ setp.eq.s32 %p39, %r67, 0;
+ selp.f32 %f509, %f94, 0f3F800000, %p39;
+ cvt.sat.f32.f32 %f510, %f509;
+ mul.f32 %f511, %f1325, %f510;
+ mul.f32 %f1326, %f1322, %f511;
+ mul.f32 %f1327, %f1323, %f511;
+ mul.f32 %f1328, %f1324, %f511;
+ mul.f32 %f512, %f1325, 0f3E800000;
+ mul.f32 %f1329, %f1322, %f512;
+ mul.f32 %f1330, %f1323, %f512;
+ mul.f32 %f1331, %f1324, %f512;
+ mul.f32 %f1332, %f60, %f1329;
+ mul.f32 %f1333, %f60, %f1330;
+ mul.f32 %f1334, %f60, %f1331;
+ mul.f32 %f1335, %f61, %f1329;
+ mul.f32 %f1336, %f61, %f1330;
+ mul.f32 %f1337, %f61, %f1331;
+ mul.f32 %f1338, %f62, %f1329;
+ mul.f32 %f1339, %f62, %f1330;
+ mul.f32 %f1340, %f62, %f1331;
+ mov.pred %p135, 0;
+
+BB0_26:
+ @%p135 bra BB0_39;
+
+ setp.eq.s32 %p40, %r6, 0;
+ @%p40 bra BB0_38;
+
+ mov.f32 %f1345, 0f00000000;
+ setp.lt.s32 %p41, %r6, 1;
+ @%p41 bra BB0_37;
+
+ max.f32 %f137, %f520, %f304;
+ and.b32 %r8, %r6, 3;
+ setp.eq.s32 %p42, %r8, 0;
+ add.u64 %rd35, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd35;
+ mov.f32 %f1345, 0f00000000;
+ mov.u32 %r243, 0;
+ @%p42 bra BB0_35;
+
+ setp.eq.s32 %p43, %r8, 1;
+ mov.f32 %f1342, 0f00000000;
+ mov.u32 %r241, 0;
+ @%p43 bra BB0_34;
+
+ setp.eq.s32 %p44, %r8, 2;
+ mov.f32 %f1341, 0f00000000;
+ mov.u32 %r240, 0;
+ @%p44 bra BB0_33;
+
+ sub.f32 %f532, %f352, %f347;
+ sub.f32 %f533, %f353, %f347;
+ sub.f32 %f534, %f354, %f347;
+ sub.f32 %f535, %f532, %f7;
+ sub.f32 %f536, %f533, %f8;
+ sub.f32 %f537, %f534, %f9;
+ mul.f32 %f538, %f536, %f536;
+ fma.rn.f32 %f539, %f535, %f535, %f538;
+ fma.rn.f32 %f540, %f537, %f537, %f539;
+ sqrt.rn.f32 %f531, %f540;
+ rcp.rn.f32 %f541, %f531;
+ mul.f32 %f527, %f541, %f535;
+ mul.f32 %f528, %f541, %f536;
+ mul.f32 %f529, %f541, %f537;
+ ld.global.u32 %r75, [imageEnabled];
+ and.b32 %r76, %r75, 32;
+ setp.eq.s32 %p45, %r76, 0;
+ selp.f32 %f542, 0f3F800000, 0f41200000, %p45;
+ mul.f32 %f530, %f542, %f137;
+ mov.u32 %r77, 1065353216;
+ st.local.u32 [%rd2], %r77;
+ ld.global.u32 %r71, [root];
+ // inline asm
+ call _rt_trace_64, (%r71, %f10, %f11, %f12, %f527, %f528, %f529, %r44, %f530, %f531, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f543, [%rd2];
+ add.f32 %f1341, %f543, 0f00000000;
+ mov.u32 %r240, %r44;
+
+BB0_33:
+ cvt.rn.f32.s32 %f552, %r240;
+ mul.f32 %f553, %f552, 0f3DD32618;
+ cvt.rmi.f32.f32 %f554, %f553;
+ sub.f32 %f555, %f553, %f554;
+ mul.f32 %f556, %f552, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f557, %f556;
+ sub.f32 %f558, %f556, %f557;
+ mul.f32 %f559, %f552, 0f3DC74539;
+ cvt.rmi.f32.f32 %f560, %f559;
+ sub.f32 %f561, %f559, %f560;
+ add.f32 %f562, %f558, 0f4199851F;
+ add.f32 %f563, %f561, 0f4199851F;
+ add.f32 %f564, %f555, 0f4199851F;
+ mul.f32 %f565, %f558, %f563;
+ fma.rn.f32 %f566, %f555, %f562, %f565;
+ fma.rn.f32 %f567, %f564, %f561, %f566;
+ add.f32 %f568, %f555, %f567;
+ add.f32 %f569, %f558, %f567;
+ add.f32 %f570, %f561, %f567;
+ add.f32 %f571, %f568, %f569;
+ mul.f32 %f572, %f570, %f571;
+ cvt.rmi.f32.f32 %f573, %f572;
+ sub.f32 %f574, %f572, %f573;
+ add.f32 %f575, %f568, %f570;
+ mul.f32 %f576, %f569, %f575;
+ cvt.rmi.f32.f32 %f577, %f576;
+ sub.f32 %f578, %f576, %f577;
+ add.f32 %f579, %f569, %f570;
+ mul.f32 %f580, %f568, %f579;
+ cvt.rmi.f32.f32 %f581, %f580;
+ sub.f32 %f582, %f580, %f581;
+ fma.rn.f32 %f583, %f574, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f584, %f578, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f585, %f582, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f586, %f347, %f583, %f352;
+ fma.rn.f32 %f587, %f347, %f584, %f353;
+ fma.rn.f32 %f588, %f347, %f585, %f354;
+ sub.f32 %f589, %f586, %f7;
+ sub.f32 %f590, %f587, %f8;
+ sub.f32 %f591, %f588, %f9;
+ mul.f32 %f592, %f590, %f590;
+ fma.rn.f32 %f593, %f589, %f589, %f592;
+ fma.rn.f32 %f594, %f591, %f591, %f593;
+ sqrt.rn.f32 %f551, %f594;
+ rcp.rn.f32 %f595, %f551;
+ mul.f32 %f547, %f595, %f589;
+ mul.f32 %f548, %f595, %f590;
+ mul.f32 %f549, %f595, %f591;
+ ld.global.u32 %r81, [imageEnabled];
+ and.b32 %r82, %r81, 32;
+ setp.eq.s32 %p46, %r82, 0;
+ selp.f32 %f596, 0f3F800000, 0f41200000, %p46;
+ mul.f32 %f550, %f596, %f137;
+ mov.u32 %r83, 1065353216;
+ st.local.u32 [%rd2], %r83;
+ ld.global.u32 %r78, [root];
+ // inline asm
+ call _rt_trace_64, (%r78, %f10, %f11, %f12, %f547, %f548, %f549, %r44, %f550, %f551, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f597, [%rd2];
+ add.f32 %f1342, %f1341, %f597;
+ add.s32 %r241, %r240, 1;
+
+BB0_34:
+ cvt.rn.f32.s32 %f606, %r241;
+ mul.f32 %f607, %f606, 0f3DD32618;
+ cvt.rmi.f32.f32 %f608, %f607;
+ sub.f32 %f609, %f607, %f608;
+ mul.f32 %f610, %f606, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f611, %f610;
+ sub.f32 %f612, %f610, %f611;
+ mul.f32 %f613, %f606, 0f3DC74539;
+ cvt.rmi.f32.f32 %f614, %f613;
+ sub.f32 %f615, %f613, %f614;
+ add.f32 %f616, %f612, 0f4199851F;
+ add.f32 %f617, %f615, 0f4199851F;
+ add.f32 %f618, %f609, 0f4199851F;
+ mul.f32 %f619, %f612, %f617;
+ fma.rn.f32 %f620, %f609, %f616, %f619;
+ fma.rn.f32 %f621, %f618, %f615, %f620;
+ add.f32 %f622, %f609, %f621;
+ add.f32 %f623, %f612, %f621;
+ add.f32 %f624, %f615, %f621;
+ add.f32 %f625, %f622, %f623;
+ mul.f32 %f626, %f624, %f625;
+ cvt.rmi.f32.f32 %f627, %f626;
+ sub.f32 %f628, %f626, %f627;
+ add.f32 %f629, %f622, %f624;
+ mul.f32 %f630, %f623, %f629;
+ cvt.rmi.f32.f32 %f631, %f630;
+ sub.f32 %f632, %f630, %f631;
+ add.f32 %f633, %f623, %f624;
+ mul.f32 %f634, %f622, %f633;
+ cvt.rmi.f32.f32 %f635, %f634;
+ sub.f32 %f636, %f634, %f635;
+ fma.rn.f32 %f637, %f628, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f638, %f632, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f639, %f636, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f640, %f347, %f637, %f352;
+ fma.rn.f32 %f641, %f347, %f638, %f353;
+ fma.rn.f32 %f642, %f347, %f639, %f354;
+ sub.f32 %f643, %f640, %f7;
+ sub.f32 %f644, %f641, %f8;
+ sub.f32 %f645, %f642, %f9;
+ mul.f32 %f646, %f644, %f644;
+ fma.rn.f32 %f647, %f643, %f643, %f646;
+ fma.rn.f32 %f648, %f645, %f645, %f647;
+ sqrt.rn.f32 %f605, %f648;
+ rcp.rn.f32 %f649, %f605;
+ mul.f32 %f601, %f649, %f643;
+ mul.f32 %f602, %f649, %f644;
+ mul.f32 %f603, %f649, %f645;
+ ld.global.u32 %r87, [imageEnabled];
+ and.b32 %r88, %r87, 32;
+ setp.eq.s32 %p47, %r88, 0;
+ selp.f32 %f650, 0f3F800000, 0f41200000, %p47;
+ mul.f32 %f604, %f650, %f137;
+ mov.u32 %r89, 1065353216;
+ st.local.u32 [%rd2], %r89;
+ ld.global.u32 %r84, [root];
+ mov.u32 %r85, 1;
+ // inline asm
+ call _rt_trace_64, (%r84, %f10, %f11, %f12, %f601, %f602, %f603, %r85, %f604, %f605, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f651, [%rd2];
+ add.f32 %f1345, %f1342, %f651;
+ add.s32 %r243, %r241, 1;
+
+BB0_35:
+ setp.lt.u32 %p48, %r6, 4;
+ @%p48 bra BB0_37;
+
+BB0_36:
+ cvt.rn.f32.s32 %f684, %r243;
+ mul.f32 %f685, %f684, 0f3DD32618;
+ cvt.rmi.f32.f32 %f686, %f685;
+ sub.f32 %f687, %f685, %f686;
+ mul.f32 %f688, %f684, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f689, %f688;
+ sub.f32 %f690, %f688, %f689;
+ mul.f32 %f691, %f684, 0f3DC74539;
+ cvt.rmi.f32.f32 %f692, %f691;
+ sub.f32 %f693, %f691, %f692;
+ add.f32 %f694, %f690, 0f4199851F;
+ add.f32 %f695, %f693, 0f4199851F;
+ add.f32 %f696, %f687, 0f4199851F;
+ mul.f32 %f697, %f690, %f695;
+ fma.rn.f32 %f698, %f687, %f694, %f697;
+ fma.rn.f32 %f699, %f696, %f693, %f698;
+ add.f32 %f700, %f687, %f699;
+ add.f32 %f701, %f690, %f699;
+ add.f32 %f702, %f693, %f699;
+ add.f32 %f703, %f700, %f701;
+ mul.f32 %f704, %f702, %f703;
+ cvt.rmi.f32.f32 %f705, %f704;
+ sub.f32 %f706, %f704, %f705;
+ add.f32 %f707, %f700, %f702;
+ mul.f32 %f708, %f701, %f707;
+ cvt.rmi.f32.f32 %f709, %f708;
+ sub.f32 %f710, %f708, %f709;
+ add.f32 %f711, %f701, %f702;
+ mul.f32 %f712, %f700, %f711;
+ cvt.rmi.f32.f32 %f713, %f712;
+ sub.f32 %f714, %f712, %f713;
+ fma.rn.f32 %f715, %f706, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f716, %f710, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f717, %f714, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f718, %f347, %f715, %f352;
+ fma.rn.f32 %f719, %f347, %f716, %f353;
+ fma.rn.f32 %f720, %f347, %f717, %f354;
+ sub.f32 %f721, %f718, %f7;
+ sub.f32 %f722, %f719, %f8;
+ sub.f32 %f723, %f720, %f9;
+ mul.f32 %f724, %f722, %f722;
+ fma.rn.f32 %f725, %f721, %f721, %f724;
+ fma.rn.f32 %f726, %f723, %f723, %f725;
+ sqrt.rn.f32 %f659, %f726;
+ rcp.rn.f32 %f727, %f659;
+ mul.f32 %f655, %f727, %f721;
+ mul.f32 %f656, %f727, %f722;
+ mul.f32 %f657, %f727, %f723;
+ ld.global.u32 %r102, [imageEnabled];
+ and.b32 %r103, %r102, 32;
+ setp.eq.s32 %p49, %r103, 0;
+ selp.f32 %f728, 0f3F800000, 0f41200000, %p49;
+ mul.f32 %f658, %f728, %f137;
+ mov.u32 %r104, 1065353216;
+ st.local.u32 [%rd2], %r104;
+ ld.global.u32 %r90, [root];
+ mov.u32 %r100, 1;
+ // inline asm
+ call _rt_trace_64, (%r90, %f10, %f11, %f12, %f655, %f656, %f657, %r100, %f658, %f659, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f729, [%rd2];
+ add.f32 %f730, %f1345, %f729;
+ add.s32 %r105, %r243, 1;
+ cvt.rn.f32.s32 %f731, %r105;
+ mul.f32 %f732, %f731, 0f3DD32618;
+ cvt.rmi.f32.f32 %f733, %f732;
+ sub.f32 %f734, %f732, %f733;
+ mul.f32 %f735, %f731, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f736, %f735;
+ sub.f32 %f737, %f735, %f736;
+ mul.f32 %f738, %f731, 0f3DC74539;
+ cvt.rmi.f32.f32 %f739, %f738;
+ sub.f32 %f740, %f738, %f739;
+ add.f32 %f741, %f737, 0f4199851F;
+ add.f32 %f742, %f740, 0f4199851F;
+ add.f32 %f743, %f734, 0f4199851F;
+ mul.f32 %f744, %f737, %f742;
+ fma.rn.f32 %f745, %f734, %f741, %f744;
+ fma.rn.f32 %f746, %f743, %f740, %f745;
+ add.f32 %f747, %f734, %f746;
+ add.f32 %f748, %f737, %f746;
+ add.f32 %f749, %f740, %f746;
+ add.f32 %f750, %f747, %f748;
+ mul.f32 %f751, %f749, %f750;
+ cvt.rmi.f32.f32 %f752, %f751;
+ sub.f32 %f753, %f751, %f752;
+ add.f32 %f754, %f747, %f749;
+ mul.f32 %f755, %f748, %f754;
+ cvt.rmi.f32.f32 %f756, %f755;
+ sub.f32 %f757, %f755, %f756;
+ add.f32 %f758, %f748, %f749;
+ mul.f32 %f759, %f747, %f758;
+ cvt.rmi.f32.f32 %f760, %f759;
+ sub.f32 %f761, %f759, %f760;
+ fma.rn.f32 %f762, %f753, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f763, %f757, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f764, %f761, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f765, %f347, %f762, %f352;
+ fma.rn.f32 %f766, %f347, %f763, %f353;
+ fma.rn.f32 %f767, %f347, %f764, %f354;
+ sub.f32 %f768, %f765, %f7;
+ sub.f32 %f769, %f766, %f8;
+ sub.f32 %f770, %f767, %f9;
+ mul.f32 %f771, %f769, %f769;
+ fma.rn.f32 %f772, %f768, %f768, %f771;
+ fma.rn.f32 %f773, %f770, %f770, %f772;
+ sqrt.rn.f32 %f667, %f773;
+ rcp.rn.f32 %f774, %f667;
+ mul.f32 %f663, %f774, %f768;
+ mul.f32 %f664, %f774, %f769;
+ mul.f32 %f665, %f774, %f770;
+ ld.global.u32 %r106, [imageEnabled];
+ and.b32 %r107, %r106, 32;
+ setp.eq.s32 %p50, %r107, 0;
+ selp.f32 %f775, 0f3F800000, 0f41200000, %p50;
+ mul.f32 %f666, %f775, %f137;
+ st.local.u32 [%rd2], %r104;
+ ld.global.u32 %r93, [root];
+ // inline asm
+ call _rt_trace_64, (%r93, %f10, %f11, %f12, %f663, %f664, %f665, %r100, %f666, %f667, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f776, [%rd2];
+ add.f32 %f777, %f730, %f776;
+ add.s32 %r108, %r243, 2;
+ cvt.rn.f32.s32 %f778, %r108;
+ mul.f32 %f779, %f778, 0f3DD32618;
+ cvt.rmi.f32.f32 %f780, %f779;
+ sub.f32 %f781, %f779, %f780;
+ mul.f32 %f782, %f778, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f783, %f782;
+ sub.f32 %f784, %f782, %f783;
+ mul.f32 %f785, %f778, 0f3DC74539;
+ cvt.rmi.f32.f32 %f786, %f785;
+ sub.f32 %f787, %f785, %f786;
+ add.f32 %f788, %f784, 0f4199851F;
+ add.f32 %f789, %f787, 0f4199851F;
+ add.f32 %f790, %f781, 0f4199851F;
+ mul.f32 %f791, %f784, %f789;
+ fma.rn.f32 %f792, %f781, %f788, %f791;
+ fma.rn.f32 %f793, %f790, %f787, %f792;
+ add.f32 %f794, %f781, %f793;
+ add.f32 %f795, %f784, %f793;
+ add.f32 %f796, %f787, %f793;
+ add.f32 %f797, %f794, %f795;
+ mul.f32 %f798, %f796, %f797;
+ cvt.rmi.f32.f32 %f799, %f798;
+ sub.f32 %f800, %f798, %f799;
+ add.f32 %f801, %f794, %f796;
+ mul.f32 %f802, %f795, %f801;
+ cvt.rmi.f32.f32 %f803, %f802;
+ sub.f32 %f804, %f802, %f803;
+ add.f32 %f805, %f795, %f796;
+ mul.f32 %f806, %f794, %f805;
+ cvt.rmi.f32.f32 %f807, %f806;
+ sub.f32 %f808, %f806, %f807;
+ fma.rn.f32 %f809, %f800, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f810, %f804, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f811, %f808, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f812, %f347, %f809, %f352;
+ fma.rn.f32 %f813, %f347, %f810, %f353;
+ fma.rn.f32 %f814, %f347, %f811, %f354;
+ sub.f32 %f815, %f812, %f7;
+ sub.f32 %f816, %f813, %f8;
+ sub.f32 %f817, %f814, %f9;
+ mul.f32 %f818, %f816, %f816;
+ fma.rn.f32 %f819, %f815, %f815, %f818;
+ fma.rn.f32 %f820, %f817, %f817, %f819;
+ sqrt.rn.f32 %f675, %f820;
+ rcp.rn.f32 %f821, %f675;
+ mul.f32 %f671, %f821, %f815;
+ mul.f32 %f672, %f821, %f816;
+ mul.f32 %f673, %f821, %f817;
+ ld.global.u32 %r109, [imageEnabled];
+ and.b32 %r110, %r109, 32;
+ setp.eq.s32 %p51, %r110, 0;
+ selp.f32 %f822, 0f3F800000, 0f41200000, %p51;
+ mul.f32 %f674, %f822, %f137;
+ st.local.u32 [%rd2], %r104;
+ ld.global.u32 %r96, [root];
+ // inline asm
+ call _rt_trace_64, (%r96, %f10, %f11, %f12, %f671, %f672, %f673, %r100, %f674, %f675, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f823, [%rd2];
+ add.f32 %f824, %f777, %f823;
+ add.s32 %r111, %r243, 3;
+ cvt.rn.f32.s32 %f825, %r111;
+ mul.f32 %f826, %f825, 0f3DD32618;
+ cvt.rmi.f32.f32 %f827, %f826;
+ sub.f32 %f828, %f826, %f827;
+ mul.f32 %f829, %f825, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f830, %f829;
+ sub.f32 %f831, %f829, %f830;
+ mul.f32 %f832, %f825, 0f3DC74539;
+ cvt.rmi.f32.f32 %f833, %f832;
+ sub.f32 %f834, %f832, %f833;
+ add.f32 %f835, %f831, 0f4199851F;
+ add.f32 %f836, %f834, 0f4199851F;
+ add.f32 %f837, %f828, 0f4199851F;
+ mul.f32 %f838, %f831, %f836;
+ fma.rn.f32 %f839, %f828, %f835, %f838;
+ fma.rn.f32 %f840, %f837, %f834, %f839;
+ add.f32 %f841, %f828, %f840;
+ add.f32 %f842, %f831, %f840;
+ add.f32 %f843, %f834, %f840;
+ add.f32 %f844, %f841, %f842;
+ mul.f32 %f845, %f843, %f844;
+ cvt.rmi.f32.f32 %f846, %f845;
+ sub.f32 %f847, %f845, %f846;
+ add.f32 %f848, %f841, %f843;
+ mul.f32 %f849, %f842, %f848;
+ cvt.rmi.f32.f32 %f850, %f849;
+ sub.f32 %f851, %f849, %f850;
+ add.f32 %f852, %f842, %f843;
+ mul.f32 %f853, %f841, %f852;
+ cvt.rmi.f32.f32 %f854, %f853;
+ sub.f32 %f855, %f853, %f854;
+ fma.rn.f32 %f856, %f847, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f857, %f851, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f858, %f855, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f859, %f347, %f856, %f352;
+ fma.rn.f32 %f860, %f347, %f857, %f353;
+ fma.rn.f32 %f861, %f347, %f858, %f354;
+ sub.f32 %f862, %f859, %f7;
+ sub.f32 %f863, %f860, %f8;
+ sub.f32 %f864, %f861, %f9;
+ mul.f32 %f865, %f863, %f863;
+ fma.rn.f32 %f866, %f862, %f862, %f865;
+ fma.rn.f32 %f867, %f864, %f864, %f866;
+ sqrt.rn.f32 %f683, %f867;
+ rcp.rn.f32 %f868, %f683;
+ mul.f32 %f679, %f868, %f862;
+ mul.f32 %f680, %f868, %f863;
+ mul.f32 %f681, %f868, %f864;
+ ld.global.u32 %r112, [imageEnabled];
+ and.b32 %r113, %r112, 32;
+ setp.eq.s32 %p52, %r113, 0;
+ selp.f32 %f869, 0f3F800000, 0f41200000, %p52;
+ mul.f32 %f682, %f869, %f137;
+ st.local.u32 [%rd2], %r104;
+ ld.global.u32 %r99, [root];
+ // inline asm
+ call _rt_trace_64, (%r99, %f10, %f11, %f12, %f679, %f680, %f681, %r100, %f682, %f683, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f870, [%rd2];
+ add.f32 %f1345, %f824, %f870;
+ add.s32 %r243, %r243, 4;
+ setp.lt.s32 %p53, %r243, %r6;
+ @%p53 bra BB0_36;
+
+BB0_37:
+ cvt.rn.f32.s32 %f871, %r6;
+ div.rn.f32 %f1346, %f1345, %f871;
+
+BB0_38:
+ fma.rn.f32 %f1318, %f1326, %f1346, %f1318;
+ fma.rn.f32 %f1317, %f1327, %f1346, %f1317;
+ fma.rn.f32 %f1316, %f1328, %f1346, %f1316;
+ fma.rn.f32 %f1315, %f1329, %f1346, %f1315;
+ fma.rn.f32 %f1314, %f1330, %f1346, %f1314;
+ fma.rn.f32 %f1313, %f1331, %f1346, %f1313;
+ fma.rn.f32 %f1312, %f1332, %f1346, %f1312;
+ fma.rn.f32 %f1311, %f1333, %f1346, %f1311;
+ fma.rn.f32 %f1310, %f1334, %f1346, %f1310;
+ fma.rn.f32 %f1309, %f1335, %f1346, %f1309;
+ fma.rn.f32 %f1308, %f1336, %f1346, %f1308;
+ fma.rn.f32 %f1307, %f1337, %f1346, %f1307;
+ fma.rn.f32 %f1306, %f1338, %f1346, %f1306;
+ fma.rn.f32 %f1305, %f1339, %f1346, %f1305;
+ fma.rn.f32 %f1304, %f1340, %f1346, %f1304;
+ add.f32 %f1303, %f1303, %f1346;
+
+BB0_39:
+ add.s32 %r239, %r239, 1;
+ setp.lt.u32 %p54, %r239, %r4;
+ @%p54 bra BB0_5;
+
+BB0_40:
+ ld.global.u32 %r245, [imageEnabled];
+ and.b32 %r114, %r245, 8;
+ setp.eq.s32 %p55, %r114, 0;
+ @%p55 bra BB0_53;
+
+ cvt.sat.f32.f32 %f197, %f1303;
+ cvt.u64.u32 %rd46, %r3;
+ cvt.u64.u32 %rd45, %r2;
+ mov.u64 %rd49, image_Mask;
+ cvta.global.u64 %rd44, %rd49;
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd44, %r27, %r27, %rd45, %rd46, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f874, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f875, %f874;
+ fma.rn.f32 %f876, %f875, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f198, %f876;
+ abs.f32 %f199, %f197;
+ setp.lt.f32 %p56, %f199, 0f00800000;
+ mul.f32 %f877, %f199, 0f4B800000;
+ selp.f32 %f878, 0fC3170000, 0fC2FE0000, %p56;
+ selp.f32 %f879, %f877, %f199, %p56;
+ mov.b32 %r117, %f879;
+ and.b32 %r118, %r117, 8388607;
+ or.b32 %r119, %r118, 1065353216;
+ mov.b32 %f880, %r119;
+ shr.u32 %r120, %r117, 23;
+ cvt.rn.f32.u32 %f881, %r120;
+ add.f32 %f882, %f878, %f881;
+ setp.gt.f32 %p57, %f880, 0f3FB504F3;
+ mul.f32 %f883, %f880, 0f3F000000;
+ add.f32 %f884, %f882, 0f3F800000;
+ selp.f32 %f885, %f883, %f880, %p57;
+ selp.f32 %f886, %f884, %f882, %p57;
+ add.f32 %f887, %f885, 0fBF800000;
+ add.f32 %f873, %f885, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f872,%f873;
+ // inline asm
+ add.f32 %f888, %f887, %f887;
+ mul.f32 %f889, %f872, %f888;
+ mul.f32 %f890, %f889, %f889;
+ mov.f32 %f891, 0f3C4CAF63;
+ mov.f32 %f892, 0f3B18F0FE;
+ fma.rn.f32 %f893, %f892, %f890, %f891;
+ mov.f32 %f894, 0f3DAAAABD;
+ fma.rn.f32 %f895, %f893, %f890, %f894;
+ mul.rn.f32 %f896, %f895, %f890;
+ mul.rn.f32 %f897, %f896, %f889;
+ sub.f32 %f898, %f887, %f889;
+ neg.f32 %f899, %f889;
+ add.f32 %f900, %f898, %f898;
+ fma.rn.f32 %f901, %f899, %f887, %f900;
+ mul.rn.f32 %f902, %f872, %f901;
+ add.f32 %f903, %f897, %f889;
+ sub.f32 %f904, %f889, %f903;
+ add.f32 %f905, %f897, %f904;
+ add.f32 %f906, %f902, %f905;
+ add.f32 %f907, %f903, %f906;
+ sub.f32 %f908, %f903, %f907;
+ add.f32 %f909, %f906, %f908;
+ mov.f32 %f910, 0f3F317200;
+ mul.rn.f32 %f911, %f886, %f910;
+ mov.f32 %f912, 0f35BFBE8E;
+ mul.rn.f32 %f913, %f886, %f912;
+ add.f32 %f914, %f911, %f907;
+ sub.f32 %f915, %f911, %f914;
+ add.f32 %f916, %f907, %f915;
+ add.f32 %f917, %f909, %f916;
+ add.f32 %f918, %f913, %f917;
+ add.f32 %f919, %f914, %f918;
+ sub.f32 %f920, %f914, %f919;
+ add.f32 %f921, %f918, %f920;
+ mov.f32 %f922, 0f3EE8BA2E;
+ mul.rn.f32 %f923, %f922, %f919;
+ neg.f32 %f924, %f923;
+ fma.rn.f32 %f925, %f922, %f919, %f924;
+ fma.rn.f32 %f926, %f922, %f921, %f925;
+ mov.f32 %f927, 0f00000000;
+ fma.rn.f32 %f928, %f927, %f919, %f926;
+ add.rn.f32 %f929, %f923, %f928;
+ neg.f32 %f930, %f929;
+ add.rn.f32 %f931, %f923, %f930;
+ add.rn.f32 %f932, %f931, %f928;
+ mov.b32 %r121, %f929;
+ setp.eq.s32 %p58, %r121, 1118925336;
+ add.s32 %r122, %r121, -1;
+ mov.b32 %f933, %r122;
+ add.f32 %f934, %f932, 0f37000000;
+ selp.f32 %f935, %f933, %f929, %p58;
+ selp.f32 %f200, %f934, %f932, %p58;
+ mul.f32 %f936, %f935, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f937, %f936;
+ mov.f32 %f938, 0fBF317200;
+ fma.rn.f32 %f939, %f937, %f938, %f935;
+ mov.f32 %f940, 0fB5BFBE8E;
+ fma.rn.f32 %f941, %f937, %f940, %f939;
+ mul.f32 %f942, %f941, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f943, %f942;
+ add.f32 %f944, %f937, 0f00000000;
+ ex2.approx.f32 %f945, %f944;
+ mul.f32 %f946, %f943, %f945;
+ setp.lt.f32 %p59, %f935, 0fC2D20000;
+ selp.f32 %f947, 0f00000000, %f946, %p59;
+ setp.gt.f32 %p60, %f935, 0f42D20000;
+ selp.f32 %f1379, 0f7F800000, %f947, %p60;
+ setp.eq.f32 %p61, %f1379, 0f7F800000;
+ @%p61 bra BB0_43;
+
+ fma.rn.f32 %f1379, %f1379, %f200, %f1379;
+
+BB0_43:
+ setp.lt.f32 %p62, %f197, 0f00000000;
+ setp.eq.f32 %p63, %f198, 0f3F800000;
+ and.pred %p4, %p62, %p63;
+ mov.b32 %r123, %f1379;
+ xor.b32 %r124, %r123, -2147483648;
+ mov.b32 %f948, %r124;
+ selp.f32 %f1381, %f948, %f1379, %p4;
+ setp.eq.f32 %p64, %f197, 0f00000000;
+ @%p64 bra BB0_46;
+ bra.uni BB0_44;
+
+BB0_46:
+ add.f32 %f951, %f197, %f197;
+ selp.f32 %f1381, %f951, 0f00000000, %p63;
+ bra.uni BB0_47;
+
+BB0_111:
+ mov.u64 %rd190, image_HDR;
+ cvta.global.u64 %rd185, %rd190;
+ mov.u32 %r210, 8;
+ // inline asm
+ call (%rd184), _rt_buffer_get_64, (%rd185, %r27, %r210, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1271, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f1271;}
+
+ // inline asm
+ mov.u16 %rs105, 0;
+ st.v4.u16 [%rd184], {%rs104, %rs104, %rs104, %rs105};
+
+BB0_112:
+ ld.global.u32 %r211, [additive];
+ setp.eq.s32 %p131, %r211, 0;
+ @%p131 bra BB0_114;
+
+ mov.u64 %rd203, image_RNM0;
+ cvta.global.u64 %rd192, %rd203;
+ mov.u32 %r215, 8;
+ // inline asm
+ call (%rd191), _rt_buffer_get_64, (%rd192, %r27, %r215, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd191];
+ // inline asm
+ { cvt.f32.f16 %f1272, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1273, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1274, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd197), _rt_buffer_get_64, (%rd192, %r27, %r215, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1275, %f1272, 0f00000000;
+ add.f32 %f1276, %f1273, 0f00000000;
+ add.f32 %f1277, %f1274, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f1277;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f1276;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f1275;}
+
+ // inline asm
+ mov.u16 %rs116, 0;
+ st.v4.u16 [%rd197], {%rs109, %rs110, %rs111, %rs116};
+ bra.uni BB0_115;
+
+BB0_114:
+ mov.u64 %rd210, image_RNM0;
+ cvta.global.u64 %rd205, %rd210;
+ mov.u32 %r217, 8;
+ // inline asm
+ call (%rd204), _rt_buffer_get_64, (%rd205, %r27, %r217, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1278, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f1278;}
+
+ // inline asm
+ mov.u16 %rs118, 0;
+ st.v4.u16 [%rd204], {%rs117, %rs117, %rs117, %rs118};
+
+BB0_115:
+ ld.global.u32 %r218, [additive];
+ setp.eq.s32 %p132, %r218, 0;
+ @%p132 bra BB0_117;
+
+ mov.u64 %rd223, image_RNM1;
+ cvta.global.u64 %rd212, %rd223;
+ mov.u32 %r222, 8;
+ // inline asm
+ call (%rd211), _rt_buffer_get_64, (%rd212, %r27, %r222, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs125, %rs126, %rs127, %rs128}, [%rd211];
+ // inline asm
+ { cvt.f32.f16 %f1279, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1280, %rs126;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1281, %rs127;}
+
+ // inline asm
+ // inline asm
+ call (%rd217), _rt_buffer_get_64, (%rd212, %r27, %r222, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1282, %f1279, 0f00000000;
+ add.f32 %f1283, %f1280, 0f00000000;
+ add.f32 %f1284, %f1281, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs124, %f1284;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f1283;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f1282;}
+
+ // inline asm
+ mov.u16 %rs129, 0;
+ st.v4.u16 [%rd217], {%rs122, %rs123, %rs124, %rs129};
+ bra.uni BB0_118;
+
+BB0_117:
+ mov.u64 %rd230, image_RNM1;
+ cvta.global.u64 %rd225, %rd230;
+ mov.u32 %r224, 8;
+ // inline asm
+ call (%rd224), _rt_buffer_get_64, (%rd225, %r27, %r224, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1285, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f1285;}
+
+ // inline asm
+ mov.u16 %rs131, 0;
+ st.v4.u16 [%rd224], {%rs130, %rs130, %rs130, %rs131};
+
+BB0_118:
+ ld.global.u32 %r225, [additive];
+ setp.eq.s32 %p133, %r225, 0;
+ @%p133 bra BB0_120;
+
+ mov.u64 %rd243, image_RNM2;
+ cvta.global.u64 %rd232, %rd243;
+ mov.u32 %r229, 8;
+ // inline asm
+ call (%rd231), _rt_buffer_get_64, (%rd232, %r27, %r229, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs138, %rs139, %rs140, %rs141}, [%rd231];
+ // inline asm
+ { cvt.f32.f16 %f1286, %rs138;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1287, %rs139;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1288, %rs140;}
+
+ // inline asm
+ // inline asm
+ call (%rd237), _rt_buffer_get_64, (%rd232, %r27, %r229, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1289, %f1286, 0f00000000;
+ add.f32 %f1290, %f1287, 0f00000000;
+ add.f32 %f1291, %f1288, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs137, %f1291;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs136, %f1290;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f1289;}
+
+ // inline asm
+ mov.u16 %rs142, 0;
+ st.v4.u16 [%rd237], {%rs135, %rs136, %rs137, %rs142};
+ bra.uni BB0_121;
+
+BB0_120:
+ mov.u64 %rd250, image_RNM2;
+ cvta.global.u64 %rd245, %rd250;
+ mov.u32 %r231, 8;
+ // inline asm
+ call (%rd244), _rt_buffer_get_64, (%rd245, %r27, %r231, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1292, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f1292;}
+
+ // inline asm
+ mov.u16 %rs144, 0;
+ st.v4.u16 [%rd244], {%rs143, %rs143, %rs143, %rs144};
+
+BB0_121:
+ ld.global.u32 %r232, [additive];
+ setp.eq.s32 %p134, %r232, 0;
+ @%p134 bra BB0_123;
+
+ mov.u64 %rd263, image_RNM3;
+ cvta.global.u64 %rd252, %rd263;
+ mov.u32 %r236, 8;
+ // inline asm
+ call (%rd251), _rt_buffer_get_64, (%rd252, %r27, %r236, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs151, %rs152, %rs153, %rs154}, [%rd251];
+ // inline asm
+ { cvt.f32.f16 %f1293, %rs151;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1294, %rs152;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1295, %rs153;}
+
+ // inline asm
+ // inline asm
+ call (%rd257), _rt_buffer_get_64, (%rd252, %r27, %r236, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1296, %f1293, 0f00000000;
+ add.f32 %f1297, %f1294, 0f00000000;
+ add.f32 %f1298, %f1295, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f1298;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs149, %f1297;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs148, %f1296;}
+
+ // inline asm
+ mov.u16 %rs155, 0;
+ st.v4.u16 [%rd257], {%rs148, %rs149, %rs150, %rs155};
+ bra.uni BB0_124;
+
+BB0_123:
+ mov.u64 %rd270, image_RNM3;
+ cvta.global.u64 %rd265, %rd270;
+ mov.u32 %r238, 8;
+ // inline asm
+ call (%rd264), _rt_buffer_get_64, (%rd265, %r27, %r238, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1299, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs156, %f1299;}
+
+ // inline asm
+ mov.u16 %rs157, 0;
+ st.v4.u16 [%rd264], {%rs156, %rs156, %rs156, %rs157};
+ bra.uni BB0_124;
+
+BB0_44:
+ setp.geu.f32 %p65, %f197, 0f00000000;
+ @%p65 bra BB0_47;
+
+ cvt.rzi.f32.f32 %f950, %f922;
+ setp.neu.f32 %p66, %f950, 0f3EE8BA2E;
+ selp.f32 %f1381, 0f7FFFFFFF, %f1381, %p66;
+
+BB0_47:
+ add.f32 %f952, %f199, 0f3EE8BA2E;
+ mov.b32 %r125, %f952;
+ setp.lt.s32 %p68, %r125, 2139095040;
+ @%p68 bra BB0_52;
+
+ setp.gtu.f32 %p69, %f199, 0f7F800000;
+ @%p69 bra BB0_51;
+ bra.uni BB0_49;
+
+BB0_51:
+ add.f32 %f1381, %f197, 0f3EE8BA2E;
+ bra.uni BB0_52;
+
+BB0_49:
+ setp.neu.f32 %p70, %f199, 0f7F800000;
+ @%p70 bra BB0_52;
+
+ selp.f32 %f1381, 0fFF800000, 0f7F800000, %p4;
+
+BB0_52:
+ mul.f32 %f953, %f1381, 0f437F0000;
+ setp.eq.f32 %p71, %f197, 0f3F800000;
+ selp.f32 %f954, 0f437F0000, %f953, %p71;
+ cvt.rzi.u32.f32 %r126, %f954;
+ cvt.u16.u32 %rs14, %r126;
+ mov.u16 %rs15, 255;
+ st.v2.u8 [%rd43], {%rs14, %rs15};
+ ld.global.u32 %r245, [imageEnabled];
+
+BB0_53:
+ and.b32 %r127, %r245, 1;
+ setp.eq.b32 %p72, %r127, 1;
+ @!%p72 bra BB0_88;
+ bra.uni BB0_54;
+
+BB0_54:
+ mov.f32 %f957, 0f3E666666;
+ cvt.rzi.f32.f32 %f958, %f957;
+ fma.rn.f32 %f959, %f958, 0fC0000000, 0f3EE66666;
+ abs.f32 %f211, %f959;
+ abs.f32 %f212, %f1318;
+ setp.lt.f32 %p73, %f212, 0f00800000;
+ mul.f32 %f960, %f212, 0f4B800000;
+ selp.f32 %f961, 0fC3170000, 0fC2FE0000, %p73;
+ selp.f32 %f962, %f960, %f212, %p73;
+ mov.b32 %r128, %f962;
+ and.b32 %r129, %r128, 8388607;
+ or.b32 %r130, %r129, 1065353216;
+ mov.b32 %f963, %r130;
+ shr.u32 %r131, %r128, 23;
+ cvt.rn.f32.u32 %f964, %r131;
+ add.f32 %f965, %f961, %f964;
+ setp.gt.f32 %p74, %f963, 0f3FB504F3;
+ mul.f32 %f966, %f963, 0f3F000000;
+ add.f32 %f967, %f965, 0f3F800000;
+ selp.f32 %f968, %f966, %f963, %p74;
+ selp.f32 %f969, %f967, %f965, %p74;
+ add.f32 %f970, %f968, 0fBF800000;
+ add.f32 %f956, %f968, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f955,%f956;
+ // inline asm
+ add.f32 %f971, %f970, %f970;
+ mul.f32 %f972, %f955, %f971;
+ mul.f32 %f973, %f972, %f972;
+ mov.f32 %f974, 0f3C4CAF63;
+ mov.f32 %f975, 0f3B18F0FE;
+ fma.rn.f32 %f976, %f975, %f973, %f974;
+ mov.f32 %f977, 0f3DAAAABD;
+ fma.rn.f32 %f978, %f976, %f973, %f977;
+ mul.rn.f32 %f979, %f978, %f973;
+ mul.rn.f32 %f980, %f979, %f972;
+ sub.f32 %f981, %f970, %f972;
+ neg.f32 %f982, %f972;
+ add.f32 %f983, %f981, %f981;
+ fma.rn.f32 %f984, %f982, %f970, %f983;
+ mul.rn.f32 %f985, %f955, %f984;
+ add.f32 %f986, %f980, %f972;
+ sub.f32 %f987, %f972, %f986;
+ add.f32 %f988, %f980, %f987;
+ add.f32 %f989, %f985, %f988;
+ add.f32 %f990, %f986, %f989;
+ sub.f32 %f991, %f986, %f990;
+ add.f32 %f992, %f989, %f991;
+ mov.f32 %f993, 0f3F317200;
+ mul.rn.f32 %f994, %f969, %f993;
+ mov.f32 %f995, 0f35BFBE8E;
+ mul.rn.f32 %f996, %f969, %f995;
+ add.f32 %f997, %f994, %f990;
+ sub.f32 %f998, %f994, %f997;
+ add.f32 %f999, %f990, %f998;
+ add.f32 %f1000, %f992, %f999;
+ add.f32 %f1001, %f996, %f1000;
+ add.f32 %f1002, %f997, %f1001;
+ sub.f32 %f1003, %f997, %f1002;
+ add.f32 %f1004, %f1001, %f1003;
+ mov.f32 %f1005, 0f3EE66666;
+ mul.rn.f32 %f1006, %f1005, %f1002;
+ neg.f32 %f1007, %f1006;
+ fma.rn.f32 %f1008, %f1005, %f1002, %f1007;
+ fma.rn.f32 %f1009, %f1005, %f1004, %f1008;
+ mov.f32 %f1010, 0f00000000;
+ fma.rn.f32 %f1011, %f1010, %f1002, %f1009;
+ add.rn.f32 %f1012, %f1006, %f1011;
+ neg.f32 %f1013, %f1012;
+ add.rn.f32 %f1014, %f1006, %f1013;
+ add.rn.f32 %f1015, %f1014, %f1011;
+ mov.b32 %r132, %f1012;
+ setp.eq.s32 %p75, %r132, 1118925336;
+ add.s32 %r133, %r132, -1;
+ mov.b32 %f1016, %r133;
+ add.f32 %f1017, %f1015, 0f37000000;
+ selp.f32 %f1018, %f1016, %f1012, %p75;
+ selp.f32 %f213, %f1017, %f1015, %p75;
+ mul.f32 %f1019, %f1018, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1020, %f1019;
+ mov.f32 %f1021, 0fBF317200;
+ fma.rn.f32 %f1022, %f1020, %f1021, %f1018;
+ mov.f32 %f1023, 0fB5BFBE8E;
+ fma.rn.f32 %f1024, %f1020, %f1023, %f1022;
+ mul.f32 %f1025, %f1024, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1026, %f1025;
+ add.f32 %f1027, %f1020, 0f00000000;
+ ex2.approx.f32 %f1028, %f1027;
+ mul.f32 %f1029, %f1026, %f1028;
+ setp.lt.f32 %p76, %f1018, 0fC2D20000;
+ selp.f32 %f1030, 0f00000000, %f1029, %p76;
+ setp.gt.f32 %p77, %f1018, 0f42D20000;
+ selp.f32 %f1382, 0f7F800000, %f1030, %p77;
+ setp.eq.f32 %p78, %f1382, 0f7F800000;
+ @%p78 bra BB0_56;
+
+ fma.rn.f32 %f1382, %f1382, %f213, %f1382;
+
+BB0_56:
+ setp.lt.f32 %p79, %f1318, 0f00000000;
+ setp.eq.f32 %p80, %f211, 0f3F800000;
+ and.pred %p5, %p79, %p80;
+ mov.b32 %r134, %f1382;
+ xor.b32 %r135, %r134, -2147483648;
+ mov.b32 %f1031, %r135;
+ selp.f32 %f1384, %f1031, %f1382, %p5;
+ setp.eq.f32 %p81, %f1318, 0f00000000;
+ @%p81 bra BB0_59;
+ bra.uni BB0_57;
+
+BB0_59:
+ add.f32 %f1034, %f1318, %f1318;
+ selp.f32 %f1384, %f1034, 0f00000000, %p80;
+ bra.uni BB0_60;
+
+BB0_57:
+ setp.geu.f32 %p82, %f1318, 0f00000000;
+ @%p82 bra BB0_60;
+
+ cvt.rzi.f32.f32 %f1033, %f1005;
+ setp.neu.f32 %p83, %f1033, 0f3EE66666;
+ selp.f32 %f1384, 0f7FFFFFFF, %f1384, %p83;
+
+BB0_60:
+ add.f32 %f1035, %f212, 0f3EE66666;
+ mov.b32 %r136, %f1035;
+ setp.lt.s32 %p85, %r136, 2139095040;
+ @%p85 bra BB0_65;
+
+ setp.gtu.f32 %p86, %f212, 0f7F800000;
+ @%p86 bra BB0_64;
+ bra.uni BB0_62;
+
+BB0_64:
+ add.f32 %f1384, %f1318, 0f3EE66666;
+ bra.uni BB0_65;
+
+BB0_62:
+ setp.neu.f32 %p87, %f212, 0f7F800000;
+ @%p87 bra BB0_65;
+
+ selp.f32 %f1384, 0fFF800000, 0f7F800000, %p5;
+
+BB0_65:
+ setp.eq.f32 %p88, %f1318, 0f3F800000;
+ selp.f32 %f224, 0f3F800000, %f1384, %p88;
+ abs.f32 %f225, %f1317;
+ setp.lt.f32 %p89, %f225, 0f00800000;
+ mul.f32 %f1038, %f225, 0f4B800000;
+ selp.f32 %f1039, 0fC3170000, 0fC2FE0000, %p89;
+ selp.f32 %f1040, %f1038, %f225, %p89;
+ mov.b32 %r137, %f1040;
+ and.b32 %r138, %r137, 8388607;
+ or.b32 %r139, %r138, 1065353216;
+ mov.b32 %f1041, %r139;
+ shr.u32 %r140, %r137, 23;
+ cvt.rn.f32.u32 %f1042, %r140;
+ add.f32 %f1043, %f1039, %f1042;
+ setp.gt.f32 %p90, %f1041, 0f3FB504F3;
+ mul.f32 %f1044, %f1041, 0f3F000000;
+ add.f32 %f1045, %f1043, 0f3F800000;
+ selp.f32 %f1046, %f1044, %f1041, %p90;
+ selp.f32 %f1047, %f1045, %f1043, %p90;
+ add.f32 %f1048, %f1046, 0fBF800000;
+ add.f32 %f1037, %f1046, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f1036,%f1037;
+ // inline asm
+ add.f32 %f1049, %f1048, %f1048;
+ mul.f32 %f1050, %f1036, %f1049;
+ mul.f32 %f1051, %f1050, %f1050;
+ fma.rn.f32 %f1054, %f975, %f1051, %f974;
+ fma.rn.f32 %f1056, %f1054, %f1051, %f977;
+ mul.rn.f32 %f1057, %f1056, %f1051;
+ mul.rn.f32 %f1058, %f1057, %f1050;
+ sub.f32 %f1059, %f1048, %f1050;
+ neg.f32 %f1060, %f1050;
+ add.f32 %f1061, %f1059, %f1059;
+ fma.rn.f32 %f1062, %f1060, %f1048, %f1061;
+ mul.rn.f32 %f1063, %f1036, %f1062;
+ add.f32 %f1064, %f1058, %f1050;
+ sub.f32 %f1065, %f1050, %f1064;
+ add.f32 %f1066, %f1058, %f1065;
+ add.f32 %f1067, %f1063, %f1066;
+ add.f32 %f1068, %f1064, %f1067;
+ sub.f32 %f1069, %f1064, %f1068;
+ add.f32 %f1070, %f1067, %f1069;
+ mul.rn.f32 %f1072, %f1047, %f993;
+ mul.rn.f32 %f1074, %f1047, %f995;
+ add.f32 %f1075, %f1072, %f1068;
+ sub.f32 %f1076, %f1072, %f1075;
+ add.f32 %f1077, %f1068, %f1076;
+ add.f32 %f1078, %f1070, %f1077;
+ add.f32 %f1079, %f1074, %f1078;
+ add.f32 %f1080, %f1075, %f1079;
+ sub.f32 %f1081, %f1075, %f1080;
+ add.f32 %f1082, %f1079, %f1081;
+ mul.rn.f32 %f1084, %f1005, %f1080;
+ neg.f32 %f1085, %f1084;
+ fma.rn.f32 %f1086, %f1005, %f1080, %f1085;
+ fma.rn.f32 %f1087, %f1005, %f1082, %f1086;
+ fma.rn.f32 %f1089, %f1010, %f1080, %f1087;
+ add.rn.f32 %f1090, %f1084, %f1089;
+ neg.f32 %f1091, %f1090;
+ add.rn.f32 %f1092, %f1084, %f1091;
+ add.rn.f32 %f1093, %f1092, %f1089;
+ mov.b32 %r141, %f1090;
+ setp.eq.s32 %p91, %r141, 1118925336;
+ add.s32 %r142, %r141, -1;
+ mov.b32 %f1094, %r142;
+ add.f32 %f1095, %f1093, 0f37000000;
+ selp.f32 %f1096, %f1094, %f1090, %p91;
+ selp.f32 %f226, %f1095, %f1093, %p91;
+ mul.f32 %f1097, %f1096, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1098, %f1097;
+ fma.rn.f32 %f1100, %f1098, %f1021, %f1096;
+ fma.rn.f32 %f1102, %f1098, %f1023, %f1100;
+ mul.f32 %f1103, %f1102, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1104, %f1103;
+ add.f32 %f1105, %f1098, 0f00000000;
+ ex2.approx.f32 %f1106, %f1105;
+ mul.f32 %f1107, %f1104, %f1106;
+ setp.lt.f32 %p92, %f1096, 0fC2D20000;
+ selp.f32 %f1108, 0f00000000, %f1107, %p92;
+ setp.gt.f32 %p93, %f1096, 0f42D20000;
+ selp.f32 %f1385, 0f7F800000, %f1108, %p93;
+ setp.eq.f32 %p94, %f1385, 0f7F800000;
+ @%p94 bra BB0_67;
+
+ fma.rn.f32 %f1385, %f1385, %f226, %f1385;
+
+BB0_67:
+ setp.lt.f32 %p95, %f1317, 0f00000000;
+ and.pred %p6, %p95, %p80;
+ mov.b32 %r143, %f1385;
+ xor.b32 %r144, %r143, -2147483648;
+ mov.b32 %f1109, %r144;
+ selp.f32 %f1387, %f1109, %f1385, %p6;
+ setp.eq.f32 %p97, %f1317, 0f00000000;
+ @%p97 bra BB0_70;
+ bra.uni BB0_68;
+
+BB0_70:
+ add.f32 %f1112, %f1317, %f1317;
+ selp.f32 %f1387, %f1112, 0f00000000, %p80;
+ bra.uni BB0_71;
+
+BB0_68:
+ setp.geu.f32 %p98, %f1317, 0f00000000;
+ @%p98 bra BB0_71;
+
+ cvt.rzi.f32.f32 %f1111, %f1005;
+ setp.neu.f32 %p99, %f1111, 0f3EE66666;
+ selp.f32 %f1387, 0f7FFFFFFF, %f1387, %p99;
+
+BB0_71:
+ add.f32 %f1113, %f225, 0f3EE66666;
+ mov.b32 %r145, %f1113;
+ setp.lt.s32 %p101, %r145, 2139095040;
+ @%p101 bra BB0_76;
+
+ setp.gtu.f32 %p102, %f225, 0f7F800000;
+ @%p102 bra BB0_75;
+ bra.uni BB0_73;
+
+BB0_75:
+ add.f32 %f1387, %f1317, 0f3EE66666;
+ bra.uni BB0_76;
+
+BB0_73:
+ setp.neu.f32 %p103, %f225, 0f7F800000;
+ @%p103 bra BB0_76;
+
+ selp.f32 %f1387, 0fFF800000, 0f7F800000, %p6;
+
+BB0_76:
+ setp.eq.f32 %p104, %f1317, 0f3F800000;
+ selp.f32 %f237, 0f3F800000, %f1387, %p104;
+ abs.f32 %f238, %f1316;
+ setp.lt.f32 %p105, %f238, 0f00800000;
+ mul.f32 %f1116, %f238, 0f4B800000;
+ selp.f32 %f1117, 0fC3170000, 0fC2FE0000, %p105;
+ selp.f32 %f1118, %f1116, %f238, %p105;
+ mov.b32 %r146, %f1118;
+ and.b32 %r147, %r146, 8388607;
+ or.b32 %r148, %r147, 1065353216;
+ mov.b32 %f1119, %r148;
+ shr.u32 %r149, %r146, 23;
+ cvt.rn.f32.u32 %f1120, %r149;
+ add.f32 %f1121, %f1117, %f1120;
+ setp.gt.f32 %p106, %f1119, 0f3FB504F3;
+ mul.f32 %f1122, %f1119, 0f3F000000;
+ add.f32 %f1123, %f1121, 0f3F800000;
+ selp.f32 %f1124, %f1122, %f1119, %p106;
+ selp.f32 %f1125, %f1123, %f1121, %p106;
+ add.f32 %f1126, %f1124, 0fBF800000;
+ add.f32 %f1115, %f1124, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f1114,%f1115;
+ // inline asm
+ add.f32 %f1127, %f1126, %f1126;
+ mul.f32 %f1128, %f1114, %f1127;
+ mul.f32 %f1129, %f1128, %f1128;
+ fma.rn.f32 %f1132, %f975, %f1129, %f974;
+ fma.rn.f32 %f1134, %f1132, %f1129, %f977;
+ mul.rn.f32 %f1135, %f1134, %f1129;
+ mul.rn.f32 %f1136, %f1135, %f1128;
+ sub.f32 %f1137, %f1126, %f1128;
+ neg.f32 %f1138, %f1128;
+ add.f32 %f1139, %f1137, %f1137;
+ fma.rn.f32 %f1140, %f1138, %f1126, %f1139;
+ mul.rn.f32 %f1141, %f1114, %f1140;
+ add.f32 %f1142, %f1136, %f1128;
+ sub.f32 %f1143, %f1128, %f1142;
+ add.f32 %f1144, %f1136, %f1143;
+ add.f32 %f1145, %f1141, %f1144;
+ add.f32 %f1146, %f1142, %f1145;
+ sub.f32 %f1147, %f1142, %f1146;
+ add.f32 %f1148, %f1145, %f1147;
+ mul.rn.f32 %f1150, %f1125, %f993;
+ mul.rn.f32 %f1152, %f1125, %f995;
+ add.f32 %f1153, %f1150, %f1146;
+ sub.f32 %f1154, %f1150, %f1153;
+ add.f32 %f1155, %f1146, %f1154;
+ add.f32 %f1156, %f1148, %f1155;
+ add.f32 %f1157, %f1152, %f1156;
+ add.f32 %f1158, %f1153, %f1157;
+ sub.f32 %f1159, %f1153, %f1158;
+ add.f32 %f1160, %f1157, %f1159;
+ mul.rn.f32 %f1162, %f1005, %f1158;
+ neg.f32 %f1163, %f1162;
+ fma.rn.f32 %f1164, %f1005, %f1158, %f1163;
+ fma.rn.f32 %f1165, %f1005, %f1160, %f1164;
+ fma.rn.f32 %f1167, %f1010, %f1158, %f1165;
+ add.rn.f32 %f1168, %f1162, %f1167;
+ neg.f32 %f1169, %f1168;
+ add.rn.f32 %f1170, %f1162, %f1169;
+ add.rn.f32 %f1171, %f1170, %f1167;
+ mov.b32 %r150, %f1168;
+ setp.eq.s32 %p107, %r150, 1118925336;
+ add.s32 %r151, %r150, -1;
+ mov.b32 %f1172, %r151;
+ add.f32 %f1173, %f1171, 0f37000000;
+ selp.f32 %f1174, %f1172, %f1168, %p107;
+ selp.f32 %f239, %f1173, %f1171, %p107;
+ mul.f32 %f1175, %f1174, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1176, %f1175;
+ fma.rn.f32 %f1178, %f1176, %f1021, %f1174;
+ fma.rn.f32 %f1180, %f1176, %f1023, %f1178;
+ mul.f32 %f1181, %f1180, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1182, %f1181;
+ add.f32 %f1183, %f1176, 0f00000000;
+ ex2.approx.f32 %f1184, %f1183;
+ mul.f32 %f1185, %f1182, %f1184;
+ setp.lt.f32 %p108, %f1174, 0fC2D20000;
+ selp.f32 %f1186, 0f00000000, %f1185, %p108;
+ setp.gt.f32 %p109, %f1174, 0f42D20000;
+ selp.f32 %f1388, 0f7F800000, %f1186, %p109;
+ setp.eq.f32 %p110, %f1388, 0f7F800000;
+ @%p110 bra BB0_78;
+
+ fma.rn.f32 %f1388, %f1388, %f239, %f1388;
+
+BB0_78:
+ setp.lt.f32 %p111, %f1316, 0f00000000;
+ and.pred %p7, %p111, %p80;
+ mov.b32 %r152, %f1388;
+ xor.b32 %r153, %r152, -2147483648;
+ mov.b32 %f1187, %r153;
+ selp.f32 %f1390, %f1187, %f1388, %p7;
+ setp.eq.f32 %p113, %f1316, 0f00000000;
+ @%p113 bra BB0_81;
+ bra.uni BB0_79;
+
+BB0_81:
+ add.f32 %f1190, %f1316, %f1316;
+ selp.f32 %f1390, %f1190, 0f00000000, %p80;
+ bra.uni BB0_82;
+
+BB0_79:
+ setp.geu.f32 %p114, %f1316, 0f00000000;
+ @%p114 bra BB0_82;
+
+ cvt.rzi.f32.f32 %f1189, %f1005;
+ setp.neu.f32 %p115, %f1189, 0f3EE66666;
+ selp.f32 %f1390, 0f7FFFFFFF, %f1390, %p115;
+
+BB0_82:
+ add.f32 %f1191, %f238, 0f3EE66666;
+ mov.b32 %r154, %f1191;
+ setp.lt.s32 %p117, %r154, 2139095040;
+ @%p117 bra BB0_87;
+
+ setp.gtu.f32 %p118, %f238, 0f7F800000;
+ @%p118 bra BB0_86;
+ bra.uni BB0_84;
+
+BB0_86:
+ add.f32 %f1390, %f1316, 0f3EE66666;
+ bra.uni BB0_87;
+
+BB0_84:
+ setp.neu.f32 %p119, %f238, 0f7F800000;
+ @%p119 bra BB0_87;
+
+ selp.f32 %f1390, 0fFF800000, 0f7F800000, %p7;
+
+BB0_87:
+ setp.eq.f32 %p120, %f1316, 0f3F800000;
+ selp.f32 %f1192, 0f3F800000, %f1390, %p120;
+ cvt.u64.u32 %rd53, %r3;
+ cvt.u64.u32 %rd52, %r2;
+ mov.u64 %rd56, image;
+ cvta.global.u64 %rd51, %rd56;
+ // inline asm
+ call (%rd50), _rt_buffer_get_64, (%rd51, %r27, %r28, %rd52, %rd53, %rd13, %rd13);
+ // inline asm
+ cvt.sat.f32.f32 %f1193, %f1192;
+ mul.f32 %f1194, %f1193, 0f437FFD71;
+ cvt.rzi.u32.f32 %r157, %f1194;
+ cvt.sat.f32.f32 %f1195, %f237;
+ mul.f32 %f1196, %f1195, 0f437FFD71;
+ cvt.rzi.u32.f32 %r158, %f1196;
+ cvt.sat.f32.f32 %f1197, %f224;
+ mul.f32 %f1198, %f1197, 0f437FFD71;
+ cvt.rzi.u32.f32 %r159, %f1198;
+ cvt.u16.u32 %rs16, %r157;
+ cvt.u16.u32 %rs17, %r159;
+ cvt.u16.u32 %rs18, %r158;
+ mov.u16 %rs19, 255;
+ st.v4.u8 [%rd50], {%rs16, %rs18, %rs17, %rs19};
+ ld.global.u32 %r245, [imageEnabled];
+
+BB0_88:
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ and.b32 %r160, %r245, 4;
+ setp.eq.s32 %p121, %r160, 0;
+ @%p121 bra BB0_92;
+
+ ld.global.u32 %r161, [additive];
+ setp.eq.s32 %p122, %r161, 0;
+ mov.f32 %f1199, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f1199;}
+
+ // inline asm
+ @%p122 bra BB0_91;
+
+ mov.u64 %rd69, image_HDR;
+ cvta.global.u64 %rd58, %rd69;
+ mov.u32 %r165, 8;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd58, %r27, %r165, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs27, %rs28, %rs29, %rs30}, [%rd57];
+ // inline asm
+ { cvt.f32.f16 %f1200, %rs27;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1201, %rs28;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1202, %rs29;}
+
+ // inline asm
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd58, %r27, %r165, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1203, %f1318, %f1200;
+ add.f32 %f1204, %f1317, %f1201;
+ add.f32 %f1205, %f1316, %f1202;
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f1205;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f1204;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f1203;}
+
+ // inline asm
+ st.v4.u16 [%rd63], {%rs24, %rs25, %rs26, %rs20};
+ bra.uni BB0_92;
+
+BB0_91:
+ mov.u64 %rd76, image_HDR;
+ cvta.global.u64 %rd71, %rd76;
+ mov.u32 %r167, 8;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd71, %r27, %r167, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f1316;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f1317;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f1318;}
+
+ // inline asm
+ st.v4.u16 [%rd70], {%rs31, %rs32, %rs33, %rs20};
+
+BB0_92:
+ mov.f32 %f1210, 0f34000000;
+ max.f32 %f1211, %f1315, %f1210;
+ div.rn.f32 %f1212, %f1312, %f1211;
+ max.f32 %f1213, %f1314, %f1210;
+ div.rn.f32 %f1214, %f1311, %f1213;
+ max.f32 %f1215, %f1313, %f1210;
+ div.rn.f32 %f1216, %f1310, %f1215;
+ fma.rn.f32 %f250, %f1212, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f251, %f1214, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f252, %f1216, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f1217, %f1309, %f1211;
+ div.rn.f32 %f1218, %f1308, %f1213;
+ div.rn.f32 %f1219, %f1307, %f1215;
+ fma.rn.f32 %f253, %f1217, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f254, %f1218, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f255, %f1219, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f1220, %f1306, %f1211;
+ div.rn.f32 %f1221, %f1305, %f1213;
+ div.rn.f32 %f1222, %f1304, %f1215;
+ fma.rn.f32 %f256, %f1220, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f257, %f1221, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f258, %f1222, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r168, [additive];
+ setp.eq.s32 %p123, %r168, 0;
+ mov.f32 %f1209, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f1209;}
+
+ // inline asm
+ @%p123 bra BB0_94;
+
+ mov.u64 %rd89, image_RNM0;
+ cvta.global.u64 %rd78, %rd89;
+ mov.u32 %r172, 8;
+ // inline asm
+ call (%rd77), _rt_buffer_get_64, (%rd78, %r27, %r172, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs41, %rs42, %rs43, %rs44}, [%rd77];
+ // inline asm
+ { cvt.f32.f16 %f1223, %rs41;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1224, %rs42;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1225, %rs43;}
+
+ // inline asm
+ // inline asm
+ call (%rd83), _rt_buffer_get_64, (%rd78, %r27, %r172, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1226, %f1315, %f1223;
+ add.f32 %f1227, %f1314, %f1224;
+ add.f32 %f1228, %f1313, %f1225;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f1228;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f1227;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f1226;}
+
+ // inline asm
+ st.v4.u16 [%rd83], {%rs38, %rs39, %rs40, %rs34};
+ bra.uni BB0_95;
+
+BB0_94:
+ mov.u64 %rd96, image_RNM0;
+ cvta.global.u64 %rd91, %rd96;
+ mov.u32 %r174, 8;
+ // inline asm
+ call (%rd90), _rt_buffer_get_64, (%rd91, %r27, %r174, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f1313;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f1314;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f1315;}
+
+ // inline asm
+ st.v4.u16 [%rd90], {%rs45, %rs46, %rs47, %rs34};
+
+BB0_95:
+ ld.global.u32 %r175, [additive];
+ setp.eq.s32 %p124, %r175, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f1209;}
+
+ // inline asm
+ @%p124 bra BB0_97;
+
+ mov.u64 %rd109, image_RNM1;
+ cvta.global.u64 %rd98, %rd109;
+ mov.u32 %r179, 8;
+ // inline asm
+ call (%rd97), _rt_buffer_get_64, (%rd98, %r27, %r179, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs55, %rs56, %rs57, %rs58}, [%rd97];
+ // inline asm
+ { cvt.f32.f16 %f1233, %rs55;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1234, %rs56;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1235, %rs57;}
+
+ // inline asm
+ // inline asm
+ call (%rd103), _rt_buffer_get_64, (%rd98, %r27, %r179, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1236, %f250, %f1233;
+ add.f32 %f1237, %f251, %f1234;
+ add.f32 %f1238, %f252, %f1235;
+ // inline asm
+ { cvt.rn.f16.f32 %rs54, %f1238;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f1237;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f1236;}
+
+ // inline asm
+ st.v4.u16 [%rd103], {%rs52, %rs53, %rs54, %rs48};
+ bra.uni BB0_98;
+
+BB0_97:
+ mov.u64 %rd116, image_RNM1;
+ cvta.global.u64 %rd111, %rd116;
+ mov.u32 %r181, 8;
+ // inline asm
+ call (%rd110), _rt_buffer_get_64, (%rd111, %r27, %r181, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs61, %f252;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f251;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f250;}
+
+ // inline asm
+ st.v4.u16 [%rd110], {%rs59, %rs60, %rs61, %rs48};
+
+BB0_98:
+ ld.global.u32 %r182, [additive];
+ setp.eq.s32 %p125, %r182, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs62, %f1209;}
+
+ // inline asm
+ @%p125 bra BB0_100;
+
+ mov.u64 %rd129, image_RNM2;
+ cvta.global.u64 %rd118, %rd129;
+ mov.u32 %r186, 8;
+ // inline asm
+ call (%rd117), _rt_buffer_get_64, (%rd118, %r27, %r186, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs69, %rs70, %rs71, %rs72}, [%rd117];
+ // inline asm
+ { cvt.f32.f16 %f1243, %rs69;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1244, %rs70;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1245, %rs71;}
+
+ // inline asm
+ // inline asm
+ call (%rd123), _rt_buffer_get_64, (%rd118, %r27, %r186, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1246, %f253, %f1243;
+ add.f32 %f1247, %f254, %f1244;
+ add.f32 %f1248, %f255, %f1245;
+ // inline asm
+ { cvt.rn.f16.f32 %rs68, %f1248;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs67, %f1247;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f1246;}
+
+ // inline asm
+ st.v4.u16 [%rd123], {%rs66, %rs67, %rs68, %rs62};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd136, image_RNM2;
+ cvta.global.u64 %rd131, %rd136;
+ mov.u32 %r188, 8;
+ // inline asm
+ call (%rd130), _rt_buffer_get_64, (%rd131, %r27, %r188, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs75, %f255;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f254;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f253;}
+
+ // inline asm
+ st.v4.u16 [%rd130], {%rs73, %rs74, %rs75, %rs62};
+
+BB0_101:
+ ld.global.u32 %r189, [additive];
+ setp.eq.s32 %p126, %r189, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f1209;}
+
+ // inline asm
+ @%p126 bra BB0_103;
+
+ mov.u64 %rd149, image_RNM3;
+ cvta.global.u64 %rd138, %rd149;
+ mov.u32 %r193, 8;
+ // inline asm
+ call (%rd137), _rt_buffer_get_64, (%rd138, %r27, %r193, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs83, %rs84, %rs85, %rs86}, [%rd137];
+ // inline asm
+ { cvt.f32.f16 %f1253, %rs83;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1254, %rs84;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1255, %rs85;}
+
+ // inline asm
+ // inline asm
+ call (%rd143), _rt_buffer_get_64, (%rd138, %r27, %r193, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1256, %f256, %f1253;
+ add.f32 %f1257, %f257, %f1254;
+ add.f32 %f1258, %f258, %f1255;
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f1258;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f1257;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs80, %f1256;}
+
+ // inline asm
+ st.v4.u16 [%rd143], {%rs80, %rs81, %rs82, %rs76};
+ bra.uni BB0_124;
+
+BB0_103:
+ mov.u64 %rd156, image_RNM3;
+ cvta.global.u64 %rd151, %rd156;
+ mov.u32 %r195, 8;
+ // inline asm
+ call (%rd150), _rt_buffer_get_64, (%rd151, %r27, %r195, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs89, %f258;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f257;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f256;}
+
+ // inline asm
+ st.v4.u16 [%rd150], {%rs87, %rs88, %rs89, %rs76};
+
+BB0_124:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightProbeSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightProbeSH.ptx.meta
new file mode 100644
index 00000000..efe8b647
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightProbeSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 24c20464d1776064b82711f5f9d9d6ca
+timeCreated: 1583324482
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightRNM.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightRNM.ptx
new file mode 100644
index 00000000..e3987955
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightRNM.ptx
@@ -0,0 +1,2442 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 uvtangent[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 ignoreNormal;
+.global .align 1 .b8 localLights[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<143>;
+ .reg .b16 %rs<157>;
+ .reg .f32 %f<1498>;
+ .reg .b32 %r<258>;
+ .reg .b64 %rd<256>;
+
+
+ mov.u64 %rd255, __local_depot0;
+ cvta.local.u64 %SP, %rd255;
+ ld.global.v2.u32 {%r35, %r36}, [pixelID];
+ cvt.u64.u32 %rd13, %r35;
+ cvt.u64.u32 %rd14, %r36;
+ mov.u64 %rd17, uvnormal;
+ cvta.global.u64 %rd12, %rd17;
+ mov.u32 %r33, 2;
+ mov.u32 %r34, 4;
+ mov.u64 %rd16, 0;
+ // inline asm
+ call (%rd11), _rt_buffer_get_64, (%rd12, %r33, %r34, %rd13, %rd14, %rd16, %rd16);
+ // inline asm
+ ld.u32 %r1, [%rd11];
+ shr.u32 %r39, %r1, 16;
+ cvt.u16.u32 %rs1, %r39;
+ and.b16 %rs6, %rs1, 255;
+ cvt.u16.u32 %rs7, %r1;
+ or.b16 %rs8, %rs7, %rs6;
+ setp.eq.s16 %p8, %rs8, 0;
+ mov.f32 %f1410, 0f00000000;
+ mov.f32 %f1411, %f1410;
+ mov.f32 %f1412, %f1410;
+ @%p8 bra BB0_2;
+
+ ld.u8 %rs9, [%rd11+1];
+ and.b16 %rs11, %rs7, 255;
+ cvt.rn.f32.u16 %f266, %rs11;
+ div.rn.f32 %f267, %f266, 0f437F0000;
+ fma.rn.f32 %f268, %f267, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f269, %rs9;
+ div.rn.f32 %f270, %f269, 0f437F0000;
+ fma.rn.f32 %f271, %f270, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f272, %rs6;
+ div.rn.f32 %f273, %f272, 0f437F0000;
+ fma.rn.f32 %f274, %f273, 0f40000000, 0fBF800000;
+ mul.f32 %f275, %f271, %f271;
+ fma.rn.f32 %f276, %f268, %f268, %f275;
+ fma.rn.f32 %f277, %f274, %f274, %f276;
+ sqrt.rn.f32 %f278, %f277;
+ rcp.rn.f32 %f279, %f278;
+ mul.f32 %f1410, %f268, %f279;
+ mul.f32 %f1411, %f271, %f279;
+ mul.f32 %f1412, %f274, %f279;
+
+BB0_2:
+ ld.global.v2.u32 {%r40, %r41}, [pixelID];
+ ld.global.v2.u32 {%r43, %r44}, [tileInfo];
+ add.s32 %r2, %r40, %r43;
+ add.s32 %r3, %r41, %r44;
+ setp.eq.f32 %p9, %f1411, 0f00000000;
+ setp.eq.f32 %p10, %f1410, 0f00000000;
+ and.pred %p11, %p10, %p9;
+ setp.eq.f32 %p12, %f1412, 0f00000000;
+ and.pred %p13, %p11, %p12;
+ @%p13 bra BB0_107;
+ bra.uni BB0_3;
+
+BB0_107:
+ ld.global.u32 %r257, [imageEnabled];
+ and.b32 %r213, %r257, 1;
+ setp.eq.b32 %p135, %r213, 1;
+ @!%p135 bra BB0_109;
+ bra.uni BB0_108;
+
+BB0_108:
+ cvt.u64.u32 %rd163, %r2;
+ cvt.u64.u32 %rd164, %r3;
+ mov.u64 %rd167, image;
+ cvta.global.u64 %rd162, %rd167;
+ // inline asm
+ call (%rd161), _rt_buffer_get_64, (%rd162, %r33, %r34, %rd163, %rd164, %rd16, %rd16);
+ // inline asm
+ mov.u16 %rs102, 0;
+ st.v4.u8 [%rd161], {%rs102, %rs102, %rs102, %rs102};
+ ld.global.u32 %r257, [imageEnabled];
+
+BB0_109:
+ and.b32 %r216, %r257, 8;
+ setp.eq.s32 %p136, %r216, 0;
+ @%p136 bra BB0_111;
+
+ cvt.u64.u32 %rd171, %r3;
+ cvt.u64.u32 %rd170, %r2;
+ mov.u64 %rd174, image_Mask;
+ cvta.global.u64 %rd169, %rd174;
+ // inline asm
+ call (%rd168), _rt_buffer_get_64, (%rd169, %r33, %r33, %rd170, %rd171, %rd16, %rd16);
+ // inline asm
+ mov.f32 %f1381, 0f00000000;
+ cvt.rzi.u32.f32 %r219, %f1381;
+ cvt.u16.u32 %rs103, %r219;
+ mov.u16 %rs104, 0;
+ st.v2.u8 [%rd168], {%rs103, %rs104};
+ ld.global.u32 %r257, [imageEnabled];
+
+BB0_111:
+ cvt.u64.u32 %rd9, %r2;
+ cvt.u64.u32 %rd10, %r3;
+ and.b32 %r220, %r257, 4;
+ setp.eq.s32 %p137, %r220, 0;
+ @%p137 bra BB0_115;
+
+ ld.global.u32 %r221, [additive];
+ setp.eq.s32 %p138, %r221, 0;
+ @%p138 bra BB0_114;
+
+ mov.u64 %rd187, image_HDR;
+ cvta.global.u64 %rd176, %rd187;
+ mov.u32 %r225, 8;
+ // inline asm
+ call (%rd175), _rt_buffer_get_64, (%rd176, %r33, %r225, %rd9, %rd10, %rd16, %rd16);
+ // inline asm
+ ld.v4.u16 {%rs111, %rs112, %rs113, %rs114}, [%rd175];
+ // inline asm
+ { cvt.f32.f16 %f1382, %rs111;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1383, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1384, %rs113;}
+
+ // inline asm
+ // inline asm
+ call (%rd181), _rt_buffer_get_64, (%rd176, %r33, %r225, %rd9, %rd10, %rd16, %rd16);
+ // inline asm
+ add.f32 %f1385, %f1382, 0f00000000;
+ add.f32 %f1386, %f1383, 0f00000000;
+ add.f32 %f1387, %f1384, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f1387;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f1386;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs108, %f1385;}
+
+ // inline asm
+ mov.u16 %rs115, 0;
+ st.v4.u16 [%rd181], {%rs108, %rs109, %rs110, %rs115};
+ bra.uni BB0_115;
+
+BB0_3:
+ ld.global.v2.u32 {%r52, %r53}, [pixelID];
+ cvt.u64.u32 %rd20, %r52;
+ cvt.u64.u32 %rd21, %r53;
+ mov.u64 %rd30, uvpos;
+ cvta.global.u64 %rd19, %rd30;
+ mov.u32 %r49, 12;
+ // inline asm
+ call (%rd18), _rt_buffer_get_64, (%rd19, %r33, %r49, %rd20, %rd21, %rd16, %rd16);
+ // inline asm
+ ld.f32 %f9, [%rd18+8];
+ ld.f32 %f8, [%rd18+4];
+ ld.f32 %f7, [%rd18];
+ mul.f32 %f283, %f7, 0f3456BF95;
+ mul.f32 %f284, %f8, 0f3456BF95;
+ mul.f32 %f285, %f9, 0f3456BF95;
+ abs.f32 %f286, %f1410;
+ div.rn.f32 %f287, %f283, %f286;
+ abs.f32 %f288, %f1411;
+ div.rn.f32 %f289, %f284, %f288;
+ abs.f32 %f290, %f1412;
+ div.rn.f32 %f291, %f285, %f290;
+ abs.f32 %f292, %f287;
+ abs.f32 %f293, %f289;
+ abs.f32 %f294, %f291;
+ mov.f32 %f295, 0f38D1B717;
+ max.f32 %f296, %f292, %f295;
+ max.f32 %f297, %f293, %f295;
+ max.f32 %f298, %f294, %f295;
+ fma.rn.f32 %f10, %f1410, %f296, %f7;
+ fma.rn.f32 %f11, %f1411, %f297, %f8;
+ fma.rn.f32 %f12, %f1412, %f298, %f9;
+ ld.global.v2.u32 {%r56, %r57}, [pixelID];
+ cvt.u64.u32 %rd26, %r56;
+ cvt.u64.u32 %rd27, %r57;
+ mov.u64 %rd31, uvtangent;
+ cvta.global.u64 %rd25, %rd31;
+ // inline asm
+ call (%rd24), _rt_buffer_get_64, (%rd25, %r33, %r34, %rd26, %rd27, %rd16, %rd16);
+ // inline asm
+ ld.u32 %r4, [%rd24];
+ shr.u32 %r5, %r4, 16;
+ cvt.u16.u32 %rs13, %r5;
+ and.b16 %rs14, %rs13, 255;
+ cvt.u16.u32 %rs15, %r4;
+ or.b16 %rs16, %rs15, %rs14;
+ setp.eq.s16 %p14, %rs16, 0;
+ mov.f32 %f1422, 0f00000000;
+ mov.f32 %f1413, %f1422;
+ mov.f32 %f1414, %f1422;
+ mov.f32 %f1415, %f1422;
+ @%p14 bra BB0_5;
+
+ ld.u8 %rs17, [%rd24+1];
+ and.b16 %rs19, %rs15, 255;
+ cvt.rn.f32.u16 %f299, %rs19;
+ div.rn.f32 %f300, %f299, 0f437F0000;
+ fma.rn.f32 %f301, %f300, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f302, %rs17;
+ div.rn.f32 %f303, %f302, 0f437F0000;
+ fma.rn.f32 %f304, %f303, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f305, %rs14;
+ div.rn.f32 %f306, %f305, 0f437F0000;
+ fma.rn.f32 %f307, %f306, 0f40000000, 0fBF800000;
+ mul.f32 %f308, %f304, %f304;
+ fma.rn.f32 %f309, %f301, %f301, %f308;
+ fma.rn.f32 %f310, %f307, %f307, %f309;
+ sqrt.rn.f32 %f311, %f310;
+ rcp.rn.f32 %f312, %f311;
+ mul.f32 %f1413, %f301, %f312;
+ mul.f32 %f1414, %f304, %f312;
+ mul.f32 %f1415, %f307, %f312;
+
+BB0_5:
+ mul.f32 %f316, %f1412, %f1414;
+ mul.f32 %f317, %f1411, %f1415;
+ sub.f32 %f318, %f317, %f316;
+ mul.f32 %f319, %f1410, %f1415;
+ mul.f32 %f320, %f1412, %f1413;
+ sub.f32 %f321, %f320, %f319;
+ mul.f32 %f322, %f1411, %f1413;
+ mul.f32 %f323, %f1410, %f1414;
+ sub.f32 %f324, %f323, %f322;
+ setp.lt.u32 %p15, %r4, 16777216;
+ selp.f32 %f325, 0fBF800000, 0f3F800000, %p15;
+ mul.f32 %f326, %f318, %f325;
+ mul.f32 %f327, %f321, %f325;
+ mul.f32 %f328, %f324, %f325;
+ mul.f32 %f329, %f326, 0f00000000;
+ mul.f32 %f330, %f327, 0f00000000;
+ mul.f32 %f331, %f328, 0f00000000;
+ fma.rn.f32 %f332, %f1413, 0f3F5105EC, %f329;
+ fma.rn.f32 %f333, %f1414, 0f3F5105EC, %f330;
+ fma.rn.f32 %f334, %f1415, 0f3F5105EC, %f331;
+ mul.f32 %f19, %f1410, 0f3F13CD3A;
+ add.f32 %f20, %f19, %f332;
+ mul.f32 %f21, %f1411, 0f3F13CD3A;
+ add.f32 %f22, %f21, %f333;
+ mul.f32 %f23, %f1412, 0f3F13CD3A;
+ add.f32 %f24, %f23, %f334;
+ ld.global.v2.u32 {%r62, %r63}, [pixelID];
+ cvt.u64.u32 %rd34, %r62;
+ cvt.u64.u32 %rd35, %r63;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd25, %r33, %r34, %rd34, %rd35, %rd16, %rd16);
+ // inline asm
+ ld.u32 %r6, [%rd32];
+ shr.u32 %r7, %r6, 16;
+ cvt.u16.u32 %rs22, %r7;
+ and.b16 %rs23, %rs22, 255;
+ cvt.u16.u32 %rs24, %r6;
+ or.b16 %rs25, %rs24, %rs23;
+ setp.eq.s16 %p16, %rs25, 0;
+ mov.f32 %f1416, %f1422;
+ mov.f32 %f1417, %f1422;
+ mov.f32 %f1418, %f1422;
+ @%p16 bra BB0_7;
+
+ ld.u8 %rs26, [%rd32+1];
+ and.b16 %rs28, %rs24, 255;
+ cvt.rn.f32.u16 %f335, %rs28;
+ div.rn.f32 %f336, %f335, 0f437F0000;
+ fma.rn.f32 %f337, %f336, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f338, %rs26;
+ div.rn.f32 %f339, %f338, 0f437F0000;
+ fma.rn.f32 %f340, %f339, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f341, %rs23;
+ div.rn.f32 %f342, %f341, 0f437F0000;
+ fma.rn.f32 %f343, %f342, 0f40000000, 0fBF800000;
+ mul.f32 %f344, %f340, %f340;
+ fma.rn.f32 %f345, %f337, %f337, %f344;
+ fma.rn.f32 %f346, %f343, %f343, %f345;
+ sqrt.rn.f32 %f347, %f346;
+ rcp.rn.f32 %f348, %f347;
+ mul.f32 %f1416, %f337, %f348;
+ mul.f32 %f1417, %f340, %f348;
+ mul.f32 %f1418, %f343, %f348;
+
+BB0_7:
+ mul.f32 %f352, %f1412, %f1417;
+ mul.f32 %f353, %f1411, %f1418;
+ sub.f32 %f354, %f353, %f352;
+ mul.f32 %f355, %f1410, %f1418;
+ mul.f32 %f356, %f1412, %f1416;
+ sub.f32 %f357, %f356, %f355;
+ mul.f32 %f358, %f1411, %f1416;
+ mul.f32 %f359, %f1410, %f1417;
+ sub.f32 %f360, %f359, %f358;
+ setp.lt.u32 %p17, %r6, 16777216;
+ selp.f32 %f361, 0fBF800000, 0f3F800000, %p17;
+ mul.f32 %f362, %f354, %f361;
+ mul.f32 %f363, %f357, %f361;
+ mul.f32 %f364, %f360, %f361;
+ mul.f32 %f365, %f362, 0f3F3504F3;
+ mul.f32 %f366, %f363, 0f3F3504F3;
+ mul.f32 %f367, %f364, 0f3F3504F3;
+ fma.rn.f32 %f368, %f1416, 0fBED105EC, %f365;
+ fma.rn.f32 %f369, %f1417, 0fBED105EC, %f366;
+ fma.rn.f32 %f370, %f1418, 0fBED105EC, %f367;
+ add.f32 %f31, %f19, %f368;
+ add.f32 %f32, %f21, %f369;
+ add.f32 %f33, %f23, %f370;
+ ld.global.v2.u32 {%r68, %r69}, [pixelID];
+ cvt.u64.u32 %rd41, %r68;
+ cvt.u64.u32 %rd42, %r69;
+ // inline asm
+ call (%rd39), _rt_buffer_get_64, (%rd25, %r33, %r34, %rd41, %rd42, %rd16, %rd16);
+ // inline asm
+ ld.u32 %r8, [%rd39];
+ shr.u32 %r9, %r8, 16;
+ cvt.u16.u32 %rs31, %r9;
+ and.b16 %rs32, %rs31, 255;
+ cvt.u16.u32 %rs33, %r8;
+ or.b16 %rs34, %rs33, %rs32;
+ setp.eq.s16 %p18, %rs34, 0;
+ mov.f32 %f1419, %f1422;
+ mov.f32 %f1420, %f1422;
+ mov.f32 %f1421, %f1422;
+ @%p18 bra BB0_9;
+
+ ld.u8 %rs35, [%rd39+1];
+ and.b16 %rs37, %rs33, 255;
+ cvt.rn.f32.u16 %f371, %rs37;
+ div.rn.f32 %f372, %f371, 0f437F0000;
+ fma.rn.f32 %f373, %f372, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f374, %rs35;
+ div.rn.f32 %f375, %f374, 0f437F0000;
+ fma.rn.f32 %f376, %f375, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f377, %rs32;
+ div.rn.f32 %f378, %f377, 0f437F0000;
+ fma.rn.f32 %f379, %f378, 0f40000000, 0fBF800000;
+ mul.f32 %f380, %f376, %f376;
+ fma.rn.f32 %f381, %f373, %f373, %f380;
+ fma.rn.f32 %f382, %f379, %f379, %f381;
+ sqrt.rn.f32 %f383, %f382;
+ rcp.rn.f32 %f384, %f383;
+ mul.f32 %f1419, %f373, %f384;
+ mul.f32 %f1420, %f376, %f384;
+ mul.f32 %f1421, %f379, %f384;
+
+BB0_9:
+ mul.f32 %f398, %f1412, %f1420;
+ mul.f32 %f399, %f1411, %f1421;
+ sub.f32 %f400, %f399, %f398;
+ mul.f32 %f401, %f1410, %f1421;
+ mul.f32 %f402, %f1412, %f1419;
+ sub.f32 %f403, %f402, %f401;
+ mul.f32 %f404, %f1411, %f1419;
+ mul.f32 %f405, %f1410, %f1420;
+ sub.f32 %f406, %f405, %f404;
+ setp.lt.u32 %p19, %r8, 16777216;
+ selp.f32 %f407, 0fBF800000, 0f3F800000, %p19;
+ mul.f32 %f408, %f400, %f407;
+ mul.f32 %f409, %f403, %f407;
+ mul.f32 %f410, %f406, %f407;
+ mul.f32 %f411, %f408, 0fBF3504F3;
+ mul.f32 %f412, %f409, 0fBF3504F3;
+ mul.f32 %f413, %f410, 0fBF3504F3;
+ fma.rn.f32 %f414, %f1419, 0fBED105EC, %f411;
+ fma.rn.f32 %f415, %f1420, 0fBED105EC, %f412;
+ fma.rn.f32 %f416, %f1421, 0fBED105EC, %f413;
+ add.f32 %f40, %f19, %f414;
+ add.f32 %f41, %f21, %f415;
+ add.f32 %f42, %f23, %f416;
+ mov.u64 %rd51, localLights;
+ cvta.global.u64 %rd50, %rd51;
+ mov.u32 %r72, 1;
+ mov.u32 %r73, 96;
+ // inline asm
+ call (%rd46, %rd47, %rd48, %rd49), _rt_buffer_get_size_64, (%rd50, %r72, %r73);
+ // inline asm
+ cvt.u32.u64 %r10, %rd46;
+ setp.eq.s32 %p20, %r10, 0;
+ mov.f32 %f1423, %f1422;
+ mov.f32 %f1424, %f1422;
+ mov.f32 %f1425, %f1422;
+ mov.f32 %f1426, %f1422;
+ mov.f32 %f1427, %f1422;
+ mov.f32 %f1428, %f1422;
+ mov.f32 %f1429, %f1422;
+ mov.f32 %f1430, %f1422;
+ mov.f32 %f1431, %f1422;
+ mov.f32 %f1432, %f1422;
+ mov.f32 %f1433, %f1422;
+ mov.f32 %f1434, %f1422;
+ @%p20 bra BB0_46;
+
+ mov.f32 %f430, 0f40000000;
+ cvt.rzi.f32.f32 %f431, %f430;
+ add.f32 %f432, %f431, %f431;
+ mov.f32 %f433, 0f40800000;
+ sub.f32 %f434, %f433, %f432;
+ abs.f32 %f43, %f434;
+ mul.f32 %f44, %f10, 0f3456BF95;
+ mul.f32 %f45, %f11, 0f3456BF95;
+ mul.f32 %f46, %f12, 0f3456BF95;
+ mov.f32 %f429, 0f00000000;
+ mov.u32 %r249, 0;
+ abs.f32 %f656, %f44;
+ abs.f32 %f657, %f45;
+ max.f32 %f658, %f656, %f657;
+ abs.f32 %f659, %f46;
+ max.f32 %f660, %f658, %f659;
+ mov.f32 %f1422, %f429;
+ mov.f32 %f1423, %f429;
+ mov.f32 %f1424, %f429;
+ mov.f32 %f1425, %f429;
+ mov.f32 %f1426, %f429;
+ mov.f32 %f1427, %f429;
+ mov.f32 %f1428, %f429;
+ mov.f32 %f1429, %f429;
+ mov.f32 %f1430, %f429;
+ mov.f32 %f1431, %f429;
+ mov.f32 %f1432, %f429;
+ mov.f32 %f1433, %f429;
+ mov.f32 %f1434, %f429;
+
+BB0_11:
+ cvt.u64.u32 %rd54, %r249;
+ // inline asm
+ call (%rd52), _rt_buffer_get_64, (%rd50, %r72, %r73, %rd54, %rd16, %rd16, %rd16);
+ // inline asm
+ ld.v4.f32 {%f437, %f438, %f439, %f440}, [%rd52+80];
+ ld.v4.f32 {%f441, %f442, %f443, %f444}, [%rd52+64];
+ ld.v4.f32 {%f445, %f446, %f447, %f448}, [%rd52+48];
+ ld.v4.f32 {%f1438, %f1439, %f1440, %f452}, [%rd52+32];
+ ld.v4.f32 {%f453, %f454, %f455, %f456}, [%rd52+16];
+ ld.v4.f32 {%f457, %f458, %f459, %f460}, [%rd52];
+ mov.b32 %r12, %f440;
+ sub.f32 %f462, %f458, %f7;
+ sub.f32 %f463, %f459, %f8;
+ sub.f32 %f464, %f460, %f9;
+ mul.f32 %f465, %f463, %f463;
+ fma.rn.f32 %f466, %f462, %f462, %f465;
+ fma.rn.f32 %f467, %f464, %f464, %f466;
+ sqrt.rn.f32 %f86, %f467;
+ rcp.rn.f32 %f468, %f86;
+ mul.f32 %f87, %f462, %f468;
+ mul.f32 %f88, %f463, %f468;
+ mul.f32 %f89, %f464, %f468;
+ mul.f32 %f90, %f86, %f456;
+ abs.f32 %f91, %f90;
+ setp.lt.f32 %p21, %f91, 0f00800000;
+ mul.f32 %f469, %f91, 0f4B800000;
+ selp.f32 %f470, 0fC3170000, 0fC2FE0000, %p21;
+ selp.f32 %f471, %f469, %f91, %p21;
+ mov.b32 %r77, %f471;
+ and.b32 %r78, %r77, 8388607;
+ or.b32 %r79, %r78, 1065353216;
+ mov.b32 %f472, %r79;
+ shr.u32 %r80, %r77, 23;
+ cvt.rn.f32.u32 %f473, %r80;
+ add.f32 %f474, %f470, %f473;
+ setp.gt.f32 %p22, %f472, 0f3FB504F3;
+ mul.f32 %f475, %f472, 0f3F000000;
+ add.f32 %f476, %f474, 0f3F800000;
+ selp.f32 %f477, %f475, %f472, %p22;
+ selp.f32 %f478, %f476, %f474, %p22;
+ add.f32 %f479, %f477, 0fBF800000;
+ add.f32 %f436, %f477, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f435,%f436;
+ // inline asm
+ add.f32 %f480, %f479, %f479;
+ mul.f32 %f481, %f435, %f480;
+ mul.f32 %f482, %f481, %f481;
+ mov.f32 %f483, 0f3C4CAF63;
+ mov.f32 %f484, 0f3B18F0FE;
+ fma.rn.f32 %f485, %f484, %f482, %f483;
+ mov.f32 %f486, 0f3DAAAABD;
+ fma.rn.f32 %f487, %f485, %f482, %f486;
+ mul.rn.f32 %f488, %f487, %f482;
+ mul.rn.f32 %f489, %f488, %f481;
+ sub.f32 %f490, %f479, %f481;
+ neg.f32 %f491, %f481;
+ add.f32 %f492, %f490, %f490;
+ fma.rn.f32 %f493, %f491, %f479, %f492;
+ mul.rn.f32 %f494, %f435, %f493;
+ add.f32 %f495, %f489, %f481;
+ sub.f32 %f496, %f481, %f495;
+ add.f32 %f497, %f489, %f496;
+ add.f32 %f498, %f494, %f497;
+ add.f32 %f499, %f495, %f498;
+ sub.f32 %f500, %f495, %f499;
+ add.f32 %f501, %f498, %f500;
+ mov.f32 %f502, 0f3F317200;
+ mul.rn.f32 %f503, %f478, %f502;
+ mov.f32 %f504, 0f35BFBE8E;
+ mul.rn.f32 %f505, %f478, %f504;
+ add.f32 %f506, %f503, %f499;
+ sub.f32 %f507, %f503, %f506;
+ add.f32 %f508, %f499, %f507;
+ add.f32 %f509, %f501, %f508;
+ add.f32 %f510, %f505, %f509;
+ add.f32 %f511, %f506, %f510;
+ sub.f32 %f512, %f506, %f511;
+ add.f32 %f513, %f510, %f512;
+ mul.rn.f32 %f92, %f433, %f511;
+ neg.f32 %f515, %f92;
+ fma.rn.f32 %f516, %f433, %f511, %f515;
+ fma.rn.f32 %f517, %f433, %f513, %f516;
+ fma.rn.f32 %f93, %f429, %f511, %f517;
+ add.rn.f32 %f94, %f92, %f93;
+ mov.b32 %r81, %f94;
+ setp.eq.s32 %p1, %r81, 1118925336;
+ add.s32 %r82, %r81, -1;
+ mov.b32 %f519, %r82;
+ selp.f32 %f520, %f519, %f94, %p1;
+ mul.f32 %f521, %f520, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f522, %f521;
+ mov.f32 %f523, 0fBF317200;
+ fma.rn.f32 %f524, %f522, %f523, %f520;
+ mov.f32 %f525, 0fB5BFBE8E;
+ fma.rn.f32 %f526, %f522, %f525, %f524;
+ mul.f32 %f527, %f526, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f528, %f527;
+ add.f32 %f529, %f522, 0f00000000;
+ ex2.approx.f32 %f530, %f529;
+ mul.f32 %f531, %f528, %f530;
+ setp.lt.f32 %p23, %f520, 0fC2D20000;
+ selp.f32 %f532, 0f00000000, %f531, %p23;
+ setp.gt.f32 %p24, %f520, 0f42D20000;
+ selp.f32 %f1435, 0f7F800000, %f532, %p24;
+ setp.eq.f32 %p25, %f1435, 0f7F800000;
+ @%p25 bra BB0_13;
+
+ neg.f32 %f533, %f94;
+ add.rn.f32 %f534, %f92, %f533;
+ add.rn.f32 %f535, %f534, %f93;
+ add.f32 %f536, %f535, 0f37000000;
+ selp.f32 %f537, %f536, %f535, %p1;
+ fma.rn.f32 %f1435, %f1435, %f537, %f1435;
+
+BB0_13:
+ setp.lt.f32 %p26, %f90, 0f00000000;
+ setp.eq.f32 %p27, %f43, 0f3F800000;
+ and.pred %p2, %p26, %p27;
+ mov.b32 %r83, %f1435;
+ xor.b32 %r84, %r83, -2147483648;
+ mov.b32 %f538, %r84;
+ selp.f32 %f1437, %f538, %f1435, %p2;
+ setp.eq.f32 %p28, %f90, 0f00000000;
+ @%p28 bra BB0_16;
+ bra.uni BB0_14;
+
+BB0_16:
+ add.f32 %f541, %f90, %f90;
+ selp.f32 %f1437, %f541, 0f00000000, %p27;
+ bra.uni BB0_17;
+
+BB0_14:
+ setp.geu.f32 %p29, %f90, 0f00000000;
+ @%p29 bra BB0_17;
+
+ cvt.rzi.f32.f32 %f540, %f433;
+ setp.neu.f32 %p30, %f540, 0f40800000;
+ selp.f32 %f1437, 0f7FFFFFFF, %f1437, %p30;
+
+BB0_17:
+ add.f32 %f542, %f91, 0f40800000;
+ mov.b32 %r85, %f542;
+ setp.lt.s32 %p32, %r85, 2139095040;
+ @%p32 bra BB0_22;
+
+ setp.gtu.f32 %p33, %f91, 0f7F800000;
+ @%p33 bra BB0_21;
+ bra.uni BB0_19;
+
+BB0_21:
+ add.f32 %f1437, %f90, 0f40800000;
+ bra.uni BB0_22;
+
+BB0_19:
+ setp.neu.f32 %p34, %f91, 0f7F800000;
+ @%p34 bra BB0_22;
+
+ selp.f32 %f1437, 0fFF800000, 0f7F800000, %p2;
+
+BB0_22:
+ mul.f32 %f543, %f86, %f454;
+ mov.f32 %f1459, 0f3F800000;
+ sub.f32 %f545, %f1459, %f1437;
+ setp.eq.f32 %p35, %f90, 0f3F800000;
+ selp.f32 %f546, 0f00000000, %f545, %p35;
+ cvt.sat.f32.f32 %f547, %f546;
+ fma.rn.f32 %f548, %f543, %f543, %f455;
+ div.rn.f32 %f1441, %f547, %f548;
+ mul.f32 %f549, %f1411, %f88;
+ fma.rn.f32 %f550, %f1410, %f87, %f549;
+ fma.rn.f32 %f551, %f1412, %f89, %f550;
+ ld.global.u32 %r86, [ignoreNormal];
+ setp.eq.s32 %p36, %r86, 0;
+ selp.f32 %f552, %f551, 0f3F800000, %p36;
+ cvt.sat.f32.f32 %f121, %f552;
+ setp.eq.f32 %p37, %f457, 0f3F800000;
+ @%p37 bra BB0_28;
+ bra.uni BB0_23;
+
+BB0_28:
+ setp.leu.f32 %p41, %f452, 0f00000000;
+ @%p41 bra BB0_30;
+
+ mul.f32 %f583, %f437, %f87;
+ mul.f32 %f584, %f438, %f88;
+ neg.f32 %f585, %f584;
+ sub.f32 %f586, %f585, %f583;
+ mul.f32 %f587, %f439, %f89;
+ sub.f32 %f588, %f586, %f587;
+ setp.gt.f32 %p42, %f588, 0f00000000;
+ selp.f32 %f589, 0f3F800000, 0f00000000, %p42;
+ mul.f32 %f590, %f446, %f88;
+ fma.rn.f32 %f591, %f445, %f87, %f590;
+ mul.f32 %f592, %f442, %f88;
+ fma.rn.f32 %f593, %f441, %f87, %f592;
+ fma.rn.f32 %f594, %f447, %f89, %f591;
+ fma.rn.f32 %f595, %f443, %f89, %f593;
+ fma.rn.f32 %f579, %f448, %f594, 0f3F000000;
+ fma.rn.f32 %f580, %f448, %f595, 0f3F000000;
+ cvt.rzi.s32.f32 %r90, %f452;
+ mov.f32 %f582, 0f00000000;
+ // inline asm
+ call (%f575, %f576, %f577, %f578), _rt_texture_get_f_id, (%r90, %r33, %f579, %f580, %f582, %f582);
+ // inline asm
+ mul.f32 %f596, %f589, %f575;
+ mul.f32 %f597, %f589, %f576;
+ mul.f32 %f598, %f589, %f577;
+ mul.f32 %f1438, %f1438, %f596;
+ mul.f32 %f1439, %f1439, %f597;
+ mul.f32 %f1440, %f1440, %f598;
+ bra.uni BB0_30;
+
+BB0_23:
+ setp.eq.f32 %p38, %f457, 0f40000000;
+ @%p38 bra BB0_26;
+ bra.uni BB0_24;
+
+BB0_26:
+ setp.leu.f32 %p40, %f452, 0f00000000;
+ @%p40 bra BB0_30;
+
+ mul.f32 %f569, %f446, %f88;
+ fma.rn.f32 %f570, %f445, %f87, %f569;
+ mul.f32 %f571, %f442, %f88;
+ fma.rn.f32 %f572, %f441, %f87, %f571;
+ mul.f32 %f573, %f438, %f88;
+ fma.rn.f32 %f574, %f437, %f87, %f573;
+ fma.rn.f32 %f566, %f447, %f89, %f570;
+ fma.rn.f32 %f567, %f443, %f89, %f572;
+ fma.rn.f32 %f568, %f439, %f89, %f574;
+ cvt.rzi.s32.f32 %r87, %f452;
+ mov.u32 %r88, 6;
+ mov.u32 %r89, 0;
+ // inline asm
+ call (%f562, %f563, %f564, %f565), _rt_texture_get_base_id, (%r87, %r88, %f566, %f567, %f568, %r89);
+ // inline asm
+ mul.f32 %f1438, %f1438, %f562;
+ mul.f32 %f1439, %f1439, %f563;
+ mul.f32 %f1440, %f1440, %f564;
+ bra.uni BB0_30;
+
+BB0_24:
+ setp.neu.f32 %p39, %f457, 0f40800000;
+ @%p39 bra BB0_30;
+
+ mul.f32 %f553, %f437, %f87;
+ mul.f32 %f554, %f438, %f88;
+ neg.f32 %f555, %f554;
+ sub.f32 %f556, %f555, %f553;
+ mul.f32 %f557, %f439, %f89;
+ sub.f32 %f558, %f556, %f557;
+ fma.rn.f32 %f559, %f452, %f558, %f448;
+ cvt.sat.f32.f32 %f560, %f559;
+ mul.f32 %f561, %f560, %f560;
+ mul.f32 %f1441, %f1441, %f561;
+
+BB0_30:
+ max.f32 %f611, %f1438, %f1439;
+ max.f32 %f612, %f611, %f1440;
+ mul.f32 %f133, %f121, %f1441;
+ mul.f32 %f613, %f133, %f612;
+ setp.lt.f32 %p44, %f613, 0f3727C5AC;
+ mov.pred %p142, -1;
+ mov.f32 %f1442, 0f00000000;
+ mov.f32 %f1443, %f1442;
+ mov.f32 %f1444, %f1442;
+ mov.f32 %f1445, %f1442;
+ mov.f32 %f1446, %f1442;
+ mov.f32 %f1447, %f1442;
+ mov.f32 %f1448, %f1442;
+ mov.f32 %f1449, %f1442;
+ mov.f32 %f1450, %f1442;
+ mov.f32 %f1451, %f1442;
+ mov.f32 %f1452, %f1442;
+ mov.f32 %f1453, %f1442;
+ @%p44 bra BB0_32;
+
+ mul.f32 %f1442, %f1438, %f133;
+ mul.f32 %f614, %f22, %f88;
+ fma.rn.f32 %f615, %f20, %f87, %f614;
+ fma.rn.f32 %f616, %f24, %f89, %f615;
+ cvt.sat.f32.f32 %f617, %f616;
+ mul.f32 %f618, %f1438, %f1441;
+ mul.f32 %f619, %f618, %f617;
+ mul.f32 %f620, %f1439, %f1441;
+ mul.f32 %f621, %f620, %f617;
+ mul.f32 %f622, %f1440, %f1441;
+ mul.f32 %f623, %f622, %f617;
+ mul.f32 %f624, %f32, %f88;
+ fma.rn.f32 %f625, %f31, %f87, %f624;
+ fma.rn.f32 %f626, %f33, %f89, %f625;
+ cvt.sat.f32.f32 %f627, %f626;
+ mul.f32 %f628, %f618, %f627;
+ mul.f32 %f629, %f620, %f627;
+ mul.f32 %f630, %f622, %f627;
+ mul.f32 %f631, %f41, %f88;
+ fma.rn.f32 %f632, %f40, %f87, %f631;
+ fma.rn.f32 %f633, %f42, %f89, %f632;
+ cvt.sat.f32.f32 %f634, %f633;
+ mul.f32 %f635, %f618, %f634;
+ mul.f32 %f636, %f620, %f634;
+ mul.f32 %f637, %f622, %f634;
+ add.f32 %f638, %f619, %f628;
+ add.f32 %f639, %f621, %f629;
+ add.f32 %f640, %f623, %f630;
+ add.f32 %f641, %f638, %f635;
+ add.f32 %f642, %f639, %f636;
+ add.f32 %f643, %f640, %f637;
+ mul.f32 %f644, %f641, 0f3F13CD3A;
+ mul.f32 %f645, %f642, 0f3F13CD3A;
+ mul.f32 %f646, %f643, 0f3F13CD3A;
+ div.rn.f32 %f647, %f1442, %f644;
+ mul.f32 %f1443, %f1439, %f133;
+ div.rn.f32 %f648, %f1443, %f645;
+ mul.f32 %f1444, %f1440, %f133;
+ div.rn.f32 %f649, %f1444, %f646;
+ setp.eq.f32 %p46, %f1442, 0f00000000;
+ selp.f32 %f650, 0f00000000, %f647, %p46;
+ setp.eq.f32 %p47, %f1443, 0f00000000;
+ selp.f32 %f651, 0f00000000, %f648, %p47;
+ setp.eq.f32 %p48, %f1444, 0f00000000;
+ selp.f32 %f652, 0f00000000, %f649, %p48;
+ mul.f32 %f1445, %f619, %f650;
+ mul.f32 %f1446, %f621, %f651;
+ mul.f32 %f1447, %f623, %f652;
+ mul.f32 %f1448, %f628, %f650;
+ mul.f32 %f1449, %f629, %f651;
+ mul.f32 %f1450, %f630, %f652;
+ mul.f32 %f1451, %f635, %f650;
+ mul.f32 %f1452, %f636, %f651;
+ mul.f32 %f1453, %f637, %f652;
+ mov.pred %p142, 0;
+
+BB0_32:
+ @%p142 bra BB0_45;
+
+ setp.eq.s32 %p49, %r12, 0;
+ @%p49 bra BB0_44;
+
+ mov.f32 %f1458, 0f00000000;
+ setp.lt.s32 %p50, %r12, 1;
+ @%p50 bra BB0_43;
+
+ max.f32 %f159, %f660, %f295;
+ and.b32 %r14, %r12, 3;
+ setp.eq.s32 %p51, %r14, 0;
+ add.u64 %rd59, %SP, 0;
+ cvta.to.local.u64 %rd5, %rd59;
+ mov.f32 %f1458, 0f00000000;
+ mov.u32 %r253, 0;
+ @%p51 bra BB0_41;
+
+ setp.eq.s32 %p52, %r14, 1;
+ mov.f32 %f1455, 0f00000000;
+ mov.u32 %r251, 0;
+ @%p52 bra BB0_40;
+
+ setp.eq.s32 %p53, %r14, 2;
+ mov.f32 %f1454, 0f00000000;
+ mov.u32 %r250, 0;
+ @%p53 bra BB0_39;
+
+ sub.f32 %f672, %f458, %f453;
+ sub.f32 %f673, %f459, %f453;
+ sub.f32 %f674, %f460, %f453;
+ sub.f32 %f675, %f672, %f7;
+ sub.f32 %f676, %f673, %f8;
+ sub.f32 %f677, %f674, %f9;
+ mul.f32 %f678, %f676, %f676;
+ fma.rn.f32 %f679, %f675, %f675, %f678;
+ fma.rn.f32 %f680, %f677, %f677, %f679;
+ sqrt.rn.f32 %f671, %f680;
+ rcp.rn.f32 %f681, %f671;
+ mul.f32 %f667, %f681, %f675;
+ mul.f32 %f668, %f681, %f676;
+ mul.f32 %f669, %f681, %f677;
+ ld.global.u32 %r99, [imageEnabled];
+ and.b32 %r100, %r99, 32;
+ setp.eq.s32 %p54, %r100, 0;
+ selp.f32 %f682, 0f3F800000, 0f41200000, %p54;
+ mul.f32 %f670, %f682, %f159;
+ mov.u32 %r101, 1065353216;
+ st.local.u32 [%rd5], %r101;
+ ld.global.u32 %r95, [root];
+ // inline asm
+ call _rt_trace_64, (%r95, %f10, %f11, %f12, %f667, %f668, %f669, %r72, %f670, %f671, %rd59, %r34);
+ // inline asm
+ ld.local.f32 %f683, [%rd5];
+ add.f32 %f1454, %f683, 0f00000000;
+ mov.u32 %r250, %r72;
+
+BB0_39:
+ cvt.rn.f32.s32 %f692, %r250;
+ mul.f32 %f693, %f692, 0f3DD32618;
+ cvt.rmi.f32.f32 %f694, %f693;
+ sub.f32 %f695, %f693, %f694;
+ mul.f32 %f696, %f692, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f697, %f696;
+ sub.f32 %f698, %f696, %f697;
+ mul.f32 %f699, %f692, 0f3DC74539;
+ cvt.rmi.f32.f32 %f700, %f699;
+ sub.f32 %f701, %f699, %f700;
+ add.f32 %f702, %f698, 0f4199851F;
+ add.f32 %f703, %f701, 0f4199851F;
+ add.f32 %f704, %f695, 0f4199851F;
+ mul.f32 %f705, %f698, %f703;
+ fma.rn.f32 %f706, %f695, %f702, %f705;
+ fma.rn.f32 %f707, %f704, %f701, %f706;
+ add.f32 %f708, %f695, %f707;
+ add.f32 %f709, %f698, %f707;
+ add.f32 %f710, %f701, %f707;
+ add.f32 %f711, %f708, %f709;
+ mul.f32 %f712, %f710, %f711;
+ cvt.rmi.f32.f32 %f713, %f712;
+ sub.f32 %f714, %f712, %f713;
+ add.f32 %f715, %f708, %f710;
+ mul.f32 %f716, %f709, %f715;
+ cvt.rmi.f32.f32 %f717, %f716;
+ sub.f32 %f718, %f716, %f717;
+ add.f32 %f719, %f709, %f710;
+ mul.f32 %f720, %f708, %f719;
+ cvt.rmi.f32.f32 %f721, %f720;
+ sub.f32 %f722, %f720, %f721;
+ fma.rn.f32 %f723, %f714, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f724, %f718, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f725, %f722, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f726, %f453, %f723, %f458;
+ fma.rn.f32 %f727, %f453, %f724, %f459;
+ fma.rn.f32 %f728, %f453, %f725, %f460;
+ sub.f32 %f729, %f726, %f7;
+ sub.f32 %f730, %f727, %f8;
+ sub.f32 %f731, %f728, %f9;
+ mul.f32 %f732, %f730, %f730;
+ fma.rn.f32 %f733, %f729, %f729, %f732;
+ fma.rn.f32 %f734, %f731, %f731, %f733;
+ sqrt.rn.f32 %f691, %f734;
+ rcp.rn.f32 %f735, %f691;
+ mul.f32 %f687, %f735, %f729;
+ mul.f32 %f688, %f735, %f730;
+ mul.f32 %f689, %f735, %f731;
+ ld.global.u32 %r105, [imageEnabled];
+ and.b32 %r106, %r105, 32;
+ setp.eq.s32 %p55, %r106, 0;
+ selp.f32 %f736, 0f3F800000, 0f41200000, %p55;
+ mul.f32 %f690, %f736, %f159;
+ mov.u32 %r107, 1065353216;
+ st.local.u32 [%rd5], %r107;
+ ld.global.u32 %r102, [root];
+ // inline asm
+ call _rt_trace_64, (%r102, %f10, %f11, %f12, %f687, %f688, %f689, %r72, %f690, %f691, %rd59, %r34);
+ // inline asm
+ ld.local.f32 %f737, [%rd5];
+ add.f32 %f1455, %f1454, %f737;
+ add.s32 %r251, %r250, 1;
+
+BB0_40:
+ cvt.rn.f32.s32 %f746, %r251;
+ mul.f32 %f747, %f746, 0f3DD32618;
+ cvt.rmi.f32.f32 %f748, %f747;
+ sub.f32 %f749, %f747, %f748;
+ mul.f32 %f750, %f746, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f751, %f750;
+ sub.f32 %f752, %f750, %f751;
+ mul.f32 %f753, %f746, 0f3DC74539;
+ cvt.rmi.f32.f32 %f754, %f753;
+ sub.f32 %f755, %f753, %f754;
+ add.f32 %f756, %f752, 0f4199851F;
+ add.f32 %f757, %f755, 0f4199851F;
+ add.f32 %f758, %f749, 0f4199851F;
+ mul.f32 %f759, %f752, %f757;
+ fma.rn.f32 %f760, %f749, %f756, %f759;
+ fma.rn.f32 %f761, %f758, %f755, %f760;
+ add.f32 %f762, %f749, %f761;
+ add.f32 %f763, %f752, %f761;
+ add.f32 %f764, %f755, %f761;
+ add.f32 %f765, %f762, %f763;
+ mul.f32 %f766, %f764, %f765;
+ cvt.rmi.f32.f32 %f767, %f766;
+ sub.f32 %f768, %f766, %f767;
+ add.f32 %f769, %f762, %f764;
+ mul.f32 %f770, %f763, %f769;
+ cvt.rmi.f32.f32 %f771, %f770;
+ sub.f32 %f772, %f770, %f771;
+ add.f32 %f773, %f763, %f764;
+ mul.f32 %f774, %f762, %f773;
+ cvt.rmi.f32.f32 %f775, %f774;
+ sub.f32 %f776, %f774, %f775;
+ fma.rn.f32 %f777, %f768, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f778, %f772, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f779, %f776, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f780, %f453, %f777, %f458;
+ fma.rn.f32 %f781, %f453, %f778, %f459;
+ fma.rn.f32 %f782, %f453, %f779, %f460;
+ sub.f32 %f783, %f780, %f7;
+ sub.f32 %f784, %f781, %f8;
+ sub.f32 %f785, %f782, %f9;
+ mul.f32 %f786, %f784, %f784;
+ fma.rn.f32 %f787, %f783, %f783, %f786;
+ fma.rn.f32 %f788, %f785, %f785, %f787;
+ sqrt.rn.f32 %f745, %f788;
+ rcp.rn.f32 %f789, %f745;
+ mul.f32 %f741, %f789, %f783;
+ mul.f32 %f742, %f789, %f784;
+ mul.f32 %f743, %f789, %f785;
+ ld.global.u32 %r111, [imageEnabled];
+ and.b32 %r112, %r111, 32;
+ setp.eq.s32 %p56, %r112, 0;
+ selp.f32 %f790, 0f3F800000, 0f41200000, %p56;
+ mul.f32 %f744, %f790, %f159;
+ mov.u32 %r113, 1065353216;
+ st.local.u32 [%rd5], %r113;
+ ld.global.u32 %r108, [root];
+ mov.u32 %r109, 1;
+ // inline asm
+ call _rt_trace_64, (%r108, %f10, %f11, %f12, %f741, %f742, %f743, %r109, %f744, %f745, %rd59, %r34);
+ // inline asm
+ ld.local.f32 %f791, [%rd5];
+ add.f32 %f1458, %f1455, %f791;
+ add.s32 %r253, %r251, 1;
+
+BB0_41:
+ setp.lt.u32 %p57, %r12, 4;
+ @%p57 bra BB0_43;
+
+BB0_42:
+ cvt.rn.f32.s32 %f824, %r253;
+ mul.f32 %f825, %f824, 0f3DD32618;
+ cvt.rmi.f32.f32 %f826, %f825;
+ sub.f32 %f827, %f825, %f826;
+ mul.f32 %f828, %f824, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f829, %f828;
+ sub.f32 %f830, %f828, %f829;
+ mul.f32 %f831, %f824, 0f3DC74539;
+ cvt.rmi.f32.f32 %f832, %f831;
+ sub.f32 %f833, %f831, %f832;
+ add.f32 %f834, %f830, 0f4199851F;
+ add.f32 %f835, %f833, 0f4199851F;
+ add.f32 %f836, %f827, 0f4199851F;
+ mul.f32 %f837, %f830, %f835;
+ fma.rn.f32 %f838, %f827, %f834, %f837;
+ fma.rn.f32 %f839, %f836, %f833, %f838;
+ add.f32 %f840, %f827, %f839;
+ add.f32 %f841, %f830, %f839;
+ add.f32 %f842, %f833, %f839;
+ add.f32 %f843, %f840, %f841;
+ mul.f32 %f844, %f842, %f843;
+ cvt.rmi.f32.f32 %f845, %f844;
+ sub.f32 %f846, %f844, %f845;
+ add.f32 %f847, %f840, %f842;
+ mul.f32 %f848, %f841, %f847;
+ cvt.rmi.f32.f32 %f849, %f848;
+ sub.f32 %f850, %f848, %f849;
+ add.f32 %f851, %f841, %f842;
+ mul.f32 %f852, %f840, %f851;
+ cvt.rmi.f32.f32 %f853, %f852;
+ sub.f32 %f854, %f852, %f853;
+ fma.rn.f32 %f855, %f846, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f856, %f850, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f857, %f854, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f858, %f453, %f855, %f458;
+ fma.rn.f32 %f859, %f453, %f856, %f459;
+ fma.rn.f32 %f860, %f453, %f857, %f460;
+ sub.f32 %f861, %f858, %f7;
+ sub.f32 %f862, %f859, %f8;
+ sub.f32 %f863, %f860, %f9;
+ mul.f32 %f864, %f862, %f862;
+ fma.rn.f32 %f865, %f861, %f861, %f864;
+ fma.rn.f32 %f866, %f863, %f863, %f865;
+ sqrt.rn.f32 %f799, %f866;
+ rcp.rn.f32 %f867, %f799;
+ mul.f32 %f795, %f867, %f861;
+ mul.f32 %f796, %f867, %f862;
+ mul.f32 %f797, %f867, %f863;
+ ld.global.u32 %r126, [imageEnabled];
+ and.b32 %r127, %r126, 32;
+ setp.eq.s32 %p58, %r127, 0;
+ selp.f32 %f868, 0f3F800000, 0f41200000, %p58;
+ mul.f32 %f798, %f868, %f159;
+ mov.u32 %r128, 1065353216;
+ st.local.u32 [%rd5], %r128;
+ ld.global.u32 %r114, [root];
+ mov.u32 %r124, 1;
+ // inline asm
+ call _rt_trace_64, (%r114, %f10, %f11, %f12, %f795, %f796, %f797, %r124, %f798, %f799, %rd59, %r34);
+ // inline asm
+ ld.local.f32 %f869, [%rd5];
+ add.f32 %f870, %f1458, %f869;
+ add.s32 %r129, %r253, 1;
+ cvt.rn.f32.s32 %f871, %r129;
+ mul.f32 %f872, %f871, 0f3DD32618;
+ cvt.rmi.f32.f32 %f873, %f872;
+ sub.f32 %f874, %f872, %f873;
+ mul.f32 %f875, %f871, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f876, %f875;
+ sub.f32 %f877, %f875, %f876;
+ mul.f32 %f878, %f871, 0f3DC74539;
+ cvt.rmi.f32.f32 %f879, %f878;
+ sub.f32 %f880, %f878, %f879;
+ add.f32 %f881, %f877, 0f4199851F;
+ add.f32 %f882, %f880, 0f4199851F;
+ add.f32 %f883, %f874, 0f4199851F;
+ mul.f32 %f884, %f877, %f882;
+ fma.rn.f32 %f885, %f874, %f881, %f884;
+ fma.rn.f32 %f886, %f883, %f880, %f885;
+ add.f32 %f887, %f874, %f886;
+ add.f32 %f888, %f877, %f886;
+ add.f32 %f889, %f880, %f886;
+ add.f32 %f890, %f887, %f888;
+ mul.f32 %f891, %f889, %f890;
+ cvt.rmi.f32.f32 %f892, %f891;
+ sub.f32 %f893, %f891, %f892;
+ add.f32 %f894, %f887, %f889;
+ mul.f32 %f895, %f888, %f894;
+ cvt.rmi.f32.f32 %f896, %f895;
+ sub.f32 %f897, %f895, %f896;
+ add.f32 %f898, %f888, %f889;
+ mul.f32 %f899, %f887, %f898;
+ cvt.rmi.f32.f32 %f900, %f899;
+ sub.f32 %f901, %f899, %f900;
+ fma.rn.f32 %f902, %f893, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f903, %f897, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f904, %f901, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f905, %f453, %f902, %f458;
+ fma.rn.f32 %f906, %f453, %f903, %f459;
+ fma.rn.f32 %f907, %f453, %f904, %f460;
+ sub.f32 %f908, %f905, %f7;
+ sub.f32 %f909, %f906, %f8;
+ sub.f32 %f910, %f907, %f9;
+ mul.f32 %f911, %f909, %f909;
+ fma.rn.f32 %f912, %f908, %f908, %f911;
+ fma.rn.f32 %f913, %f910, %f910, %f912;
+ sqrt.rn.f32 %f807, %f913;
+ rcp.rn.f32 %f914, %f807;
+ mul.f32 %f803, %f914, %f908;
+ mul.f32 %f804, %f914, %f909;
+ mul.f32 %f805, %f914, %f910;
+ ld.global.u32 %r130, [imageEnabled];
+ and.b32 %r131, %r130, 32;
+ setp.eq.s32 %p59, %r131, 0;
+ selp.f32 %f915, 0f3F800000, 0f41200000, %p59;
+ mul.f32 %f806, %f915, %f159;
+ st.local.u32 [%rd5], %r128;
+ ld.global.u32 %r117, [root];
+ // inline asm
+ call _rt_trace_64, (%r117, %f10, %f11, %f12, %f803, %f804, %f805, %r124, %f806, %f807, %rd59, %r34);
+ // inline asm
+ ld.local.f32 %f916, [%rd5];
+ add.f32 %f917, %f870, %f916;
+ add.s32 %r132, %r253, 2;
+ cvt.rn.f32.s32 %f918, %r132;
+ mul.f32 %f919, %f918, 0f3DD32618;
+ cvt.rmi.f32.f32 %f920, %f919;
+ sub.f32 %f921, %f919, %f920;
+ mul.f32 %f922, %f918, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f923, %f922;
+ sub.f32 %f924, %f922, %f923;
+ mul.f32 %f925, %f918, 0f3DC74539;
+ cvt.rmi.f32.f32 %f926, %f925;
+ sub.f32 %f927, %f925, %f926;
+ add.f32 %f928, %f924, 0f4199851F;
+ add.f32 %f929, %f927, 0f4199851F;
+ add.f32 %f930, %f921, 0f4199851F;
+ mul.f32 %f931, %f924, %f929;
+ fma.rn.f32 %f932, %f921, %f928, %f931;
+ fma.rn.f32 %f933, %f930, %f927, %f932;
+ add.f32 %f934, %f921, %f933;
+ add.f32 %f935, %f924, %f933;
+ add.f32 %f936, %f927, %f933;
+ add.f32 %f937, %f934, %f935;
+ mul.f32 %f938, %f936, %f937;
+ cvt.rmi.f32.f32 %f939, %f938;
+ sub.f32 %f940, %f938, %f939;
+ add.f32 %f941, %f934, %f936;
+ mul.f32 %f942, %f935, %f941;
+ cvt.rmi.f32.f32 %f943, %f942;
+ sub.f32 %f944, %f942, %f943;
+ add.f32 %f945, %f935, %f936;
+ mul.f32 %f946, %f934, %f945;
+ cvt.rmi.f32.f32 %f947, %f946;
+ sub.f32 %f948, %f946, %f947;
+ fma.rn.f32 %f949, %f940, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f950, %f944, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f951, %f948, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f952, %f453, %f949, %f458;
+ fma.rn.f32 %f953, %f453, %f950, %f459;
+ fma.rn.f32 %f954, %f453, %f951, %f460;
+ sub.f32 %f955, %f952, %f7;
+ sub.f32 %f956, %f953, %f8;
+ sub.f32 %f957, %f954, %f9;
+ mul.f32 %f958, %f956, %f956;
+ fma.rn.f32 %f959, %f955, %f955, %f958;
+ fma.rn.f32 %f960, %f957, %f957, %f959;
+ sqrt.rn.f32 %f815, %f960;
+ rcp.rn.f32 %f961, %f815;
+ mul.f32 %f811, %f961, %f955;
+ mul.f32 %f812, %f961, %f956;
+ mul.f32 %f813, %f961, %f957;
+ ld.global.u32 %r133, [imageEnabled];
+ and.b32 %r134, %r133, 32;
+ setp.eq.s32 %p60, %r134, 0;
+ selp.f32 %f962, 0f3F800000, 0f41200000, %p60;
+ mul.f32 %f814, %f962, %f159;
+ st.local.u32 [%rd5], %r128;
+ ld.global.u32 %r120, [root];
+ // inline asm
+ call _rt_trace_64, (%r120, %f10, %f11, %f12, %f811, %f812, %f813, %r124, %f814, %f815, %rd59, %r34);
+ // inline asm
+ ld.local.f32 %f963, [%rd5];
+ add.f32 %f964, %f917, %f963;
+ add.s32 %r135, %r253, 3;
+ cvt.rn.f32.s32 %f965, %r135;
+ mul.f32 %f966, %f965, 0f3DD32618;
+ cvt.rmi.f32.f32 %f967, %f966;
+ sub.f32 %f968, %f966, %f967;
+ mul.f32 %f969, %f965, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f970, %f969;
+ sub.f32 %f971, %f969, %f970;
+ mul.f32 %f972, %f965, 0f3DC74539;
+ cvt.rmi.f32.f32 %f973, %f972;
+ sub.f32 %f974, %f972, %f973;
+ add.f32 %f975, %f971, 0f4199851F;
+ add.f32 %f976, %f974, 0f4199851F;
+ add.f32 %f977, %f968, 0f4199851F;
+ mul.f32 %f978, %f971, %f976;
+ fma.rn.f32 %f979, %f968, %f975, %f978;
+ fma.rn.f32 %f980, %f977, %f974, %f979;
+ add.f32 %f981, %f968, %f980;
+ add.f32 %f982, %f971, %f980;
+ add.f32 %f983, %f974, %f980;
+ add.f32 %f984, %f981, %f982;
+ mul.f32 %f985, %f983, %f984;
+ cvt.rmi.f32.f32 %f986, %f985;
+ sub.f32 %f987, %f985, %f986;
+ add.f32 %f988, %f981, %f983;
+ mul.f32 %f989, %f982, %f988;
+ cvt.rmi.f32.f32 %f990, %f989;
+ sub.f32 %f991, %f989, %f990;
+ add.f32 %f992, %f982, %f983;
+ mul.f32 %f993, %f981, %f992;
+ cvt.rmi.f32.f32 %f994, %f993;
+ sub.f32 %f995, %f993, %f994;
+ fma.rn.f32 %f996, %f987, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f997, %f991, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f998, %f995, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f999, %f453, %f996, %f458;
+ fma.rn.f32 %f1000, %f453, %f997, %f459;
+ fma.rn.f32 %f1001, %f453, %f998, %f460;
+ sub.f32 %f1002, %f999, %f7;
+ sub.f32 %f1003, %f1000, %f8;
+ sub.f32 %f1004, %f1001, %f9;
+ mul.f32 %f1005, %f1003, %f1003;
+ fma.rn.f32 %f1006, %f1002, %f1002, %f1005;
+ fma.rn.f32 %f1007, %f1004, %f1004, %f1006;
+ sqrt.rn.f32 %f823, %f1007;
+ rcp.rn.f32 %f1008, %f823;
+ mul.f32 %f819, %f1008, %f1002;
+ mul.f32 %f820, %f1008, %f1003;
+ mul.f32 %f821, %f1008, %f1004;
+ ld.global.u32 %r136, [imageEnabled];
+ and.b32 %r137, %r136, 32;
+ setp.eq.s32 %p61, %r137, 0;
+ selp.f32 %f1009, 0f3F800000, 0f41200000, %p61;
+ mul.f32 %f822, %f1009, %f159;
+ st.local.u32 [%rd5], %r128;
+ ld.global.u32 %r123, [root];
+ // inline asm
+ call _rt_trace_64, (%r123, %f10, %f11, %f12, %f819, %f820, %f821, %r124, %f822, %f823, %rd59, %r34);
+ // inline asm
+ ld.local.f32 %f1010, [%rd5];
+ add.f32 %f1458, %f964, %f1010;
+ add.s32 %r253, %r253, 4;
+ setp.lt.s32 %p62, %r253, %r12;
+ @%p62 bra BB0_42;
+
+BB0_43:
+ cvt.rn.f32.s32 %f1011, %r12;
+ div.rn.f32 %f1459, %f1458, %f1011;
+
+BB0_44:
+ fma.rn.f32 %f1434, %f1442, %f1459, %f1434;
+ fma.rn.f32 %f1433, %f1443, %f1459, %f1433;
+ fma.rn.f32 %f1432, %f1444, %f1459, %f1432;
+ fma.rn.f32 %f1431, %f1445, %f1459, %f1431;
+ fma.rn.f32 %f1430, %f1446, %f1459, %f1430;
+ fma.rn.f32 %f1429, %f1447, %f1459, %f1429;
+ fma.rn.f32 %f1428, %f1448, %f1459, %f1428;
+ fma.rn.f32 %f1427, %f1449, %f1459, %f1427;
+ fma.rn.f32 %f1426, %f1450, %f1459, %f1426;
+ fma.rn.f32 %f1425, %f1451, %f1459, %f1425;
+ fma.rn.f32 %f1424, %f1452, %f1459, %f1424;
+ fma.rn.f32 %f1423, %f1453, %f1459, %f1423;
+ add.f32 %f1422, %f1422, %f1459;
+
+BB0_45:
+ add.s32 %r249, %r249, 1;
+ setp.lt.u32 %p63, %r249, %r10;
+ @%p63 bra BB0_11;
+
+BB0_46:
+ ld.global.u32 %r255, [imageEnabled];
+ and.b32 %r138, %r255, 8;
+ setp.eq.s32 %p64, %r138, 0;
+ @%p64 bra BB0_59;
+
+ cvt.sat.f32.f32 %f210, %f1422;
+ cvt.u64.u32 %rd70, %r3;
+ cvt.u64.u32 %rd69, %r2;
+ mov.u64 %rd73, image_Mask;
+ cvta.global.u64 %rd68, %rd73;
+ // inline asm
+ call (%rd67), _rt_buffer_get_64, (%rd68, %r33, %r33, %rd69, %rd70, %rd16, %rd16);
+ // inline asm
+ mov.f32 %f1014, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f1015, %f1014;
+ fma.rn.f32 %f1016, %f1015, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f211, %f1016;
+ abs.f32 %f212, %f210;
+ setp.lt.f32 %p65, %f212, 0f00800000;
+ mul.f32 %f1017, %f212, 0f4B800000;
+ selp.f32 %f1018, 0fC3170000, 0fC2FE0000, %p65;
+ selp.f32 %f1019, %f1017, %f212, %p65;
+ mov.b32 %r141, %f1019;
+ and.b32 %r142, %r141, 8388607;
+ or.b32 %r143, %r142, 1065353216;
+ mov.b32 %f1020, %r143;
+ shr.u32 %r144, %r141, 23;
+ cvt.rn.f32.u32 %f1021, %r144;
+ add.f32 %f1022, %f1018, %f1021;
+ setp.gt.f32 %p66, %f1020, 0f3FB504F3;
+ mul.f32 %f1023, %f1020, 0f3F000000;
+ add.f32 %f1024, %f1022, 0f3F800000;
+ selp.f32 %f1025, %f1023, %f1020, %p66;
+ selp.f32 %f1026, %f1024, %f1022, %p66;
+ add.f32 %f1027, %f1025, 0fBF800000;
+ add.f32 %f1013, %f1025, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f1012,%f1013;
+ // inline asm
+ add.f32 %f1028, %f1027, %f1027;
+ mul.f32 %f1029, %f1012, %f1028;
+ mul.f32 %f1030, %f1029, %f1029;
+ mov.f32 %f1031, 0f3C4CAF63;
+ mov.f32 %f1032, 0f3B18F0FE;
+ fma.rn.f32 %f1033, %f1032, %f1030, %f1031;
+ mov.f32 %f1034, 0f3DAAAABD;
+ fma.rn.f32 %f1035, %f1033, %f1030, %f1034;
+ mul.rn.f32 %f1036, %f1035, %f1030;
+ mul.rn.f32 %f1037, %f1036, %f1029;
+ sub.f32 %f1038, %f1027, %f1029;
+ neg.f32 %f1039, %f1029;
+ add.f32 %f1040, %f1038, %f1038;
+ fma.rn.f32 %f1041, %f1039, %f1027, %f1040;
+ mul.rn.f32 %f1042, %f1012, %f1041;
+ add.f32 %f1043, %f1037, %f1029;
+ sub.f32 %f1044, %f1029, %f1043;
+ add.f32 %f1045, %f1037, %f1044;
+ add.f32 %f1046, %f1042, %f1045;
+ add.f32 %f1047, %f1043, %f1046;
+ sub.f32 %f1048, %f1043, %f1047;
+ add.f32 %f1049, %f1046, %f1048;
+ mov.f32 %f1050, 0f3F317200;
+ mul.rn.f32 %f1051, %f1026, %f1050;
+ mov.f32 %f1052, 0f35BFBE8E;
+ mul.rn.f32 %f1053, %f1026, %f1052;
+ add.f32 %f1054, %f1051, %f1047;
+ sub.f32 %f1055, %f1051, %f1054;
+ add.f32 %f1056, %f1047, %f1055;
+ add.f32 %f1057, %f1049, %f1056;
+ add.f32 %f1058, %f1053, %f1057;
+ add.f32 %f1059, %f1054, %f1058;
+ sub.f32 %f1060, %f1054, %f1059;
+ add.f32 %f1061, %f1058, %f1060;
+ mov.f32 %f1062, 0f3EE8BA2E;
+ mul.rn.f32 %f1063, %f1062, %f1059;
+ neg.f32 %f1064, %f1063;
+ fma.rn.f32 %f1065, %f1062, %f1059, %f1064;
+ fma.rn.f32 %f1066, %f1062, %f1061, %f1065;
+ mov.f32 %f1067, 0f00000000;
+ fma.rn.f32 %f1068, %f1067, %f1059, %f1066;
+ add.rn.f32 %f1069, %f1063, %f1068;
+ neg.f32 %f1070, %f1069;
+ add.rn.f32 %f1071, %f1063, %f1070;
+ add.rn.f32 %f1072, %f1071, %f1068;
+ mov.b32 %r145, %f1069;
+ setp.eq.s32 %p67, %r145, 1118925336;
+ add.s32 %r146, %r145, -1;
+ mov.b32 %f1073, %r146;
+ add.f32 %f1074, %f1072, 0f37000000;
+ selp.f32 %f1075, %f1073, %f1069, %p67;
+ selp.f32 %f213, %f1074, %f1072, %p67;
+ mul.f32 %f1076, %f1075, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1077, %f1076;
+ mov.f32 %f1078, 0fBF317200;
+ fma.rn.f32 %f1079, %f1077, %f1078, %f1075;
+ mov.f32 %f1080, 0fB5BFBE8E;
+ fma.rn.f32 %f1081, %f1077, %f1080, %f1079;
+ mul.f32 %f1082, %f1081, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1083, %f1082;
+ add.f32 %f1084, %f1077, 0f00000000;
+ ex2.approx.f32 %f1085, %f1084;
+ mul.f32 %f1086, %f1083, %f1085;
+ setp.lt.f32 %p68, %f1075, 0fC2D20000;
+ selp.f32 %f1087, 0f00000000, %f1086, %p68;
+ setp.gt.f32 %p69, %f1075, 0f42D20000;
+ selp.f32 %f1486, 0f7F800000, %f1087, %p69;
+ setp.eq.f32 %p70, %f1486, 0f7F800000;
+ @%p70 bra BB0_49;
+
+ fma.rn.f32 %f1486, %f1486, %f213, %f1486;
+
+BB0_49:
+ setp.lt.f32 %p71, %f210, 0f00000000;
+ setp.eq.f32 %p72, %f211, 0f3F800000;
+ and.pred %p4, %p71, %p72;
+ mov.b32 %r147, %f1486;
+ xor.b32 %r148, %r147, -2147483648;
+ mov.b32 %f1088, %r148;
+ selp.f32 %f1488, %f1088, %f1486, %p4;
+ setp.eq.f32 %p73, %f210, 0f00000000;
+ @%p73 bra BB0_52;
+ bra.uni BB0_50;
+
+BB0_52:
+ add.f32 %f1091, %f210, %f210;
+ selp.f32 %f1488, %f1091, 0f00000000, %p72;
+ bra.uni BB0_53;
+
+BB0_114:
+ mov.u64 %rd194, image_HDR;
+ cvta.global.u64 %rd189, %rd194;
+ mov.u32 %r227, 8;
+ // inline asm
+ call (%rd188), _rt_buffer_get_64, (%rd189, %r33, %r227, %rd9, %rd10, %rd16, %rd16);
+ // inline asm
+ mov.f32 %f1388, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f1388;}
+
+ // inline asm
+ mov.u16 %rs117, 0;
+ st.v4.u16 [%rd188], {%rs116, %rs116, %rs116, %rs117};
+
+BB0_115:
+ ld.global.u32 %r228, [additive];
+ setp.eq.s32 %p139, %r228, 0;
+ @%p139 bra BB0_117;
+
+ mov.u64 %rd207, image_RNM0;
+ cvta.global.u64 %rd196, %rd207;
+ mov.u32 %r232, 8;
+ // inline asm
+ call (%rd195), _rt_buffer_get_64, (%rd196, %r33, %r232, %rd9, %rd10, %rd16, %rd16);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd195];
+ // inline asm
+ { cvt.f32.f16 %f1389, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1390, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1391, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd201), _rt_buffer_get_64, (%rd196, %r33, %r232, %rd9, %rd10, %rd16, %rd16);
+ // inline asm
+ add.f32 %f1392, %f1389, 0f00000000;
+ add.f32 %f1393, %f1390, 0f00000000;
+ add.f32 %f1394, %f1391, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f1394;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f1393;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f1392;}
+
+ // inline asm
+ mov.u16 %rs128, 0;
+ st.v4.u16 [%rd201], {%rs121, %rs122, %rs123, %rs128};
+ bra.uni BB0_118;
+
+BB0_117:
+ mov.u64 %rd214, image_RNM0;
+ cvta.global.u64 %rd209, %rd214;
+ mov.u32 %r234, 8;
+ // inline asm
+ call (%rd208), _rt_buffer_get_64, (%rd209, %r33, %r234, %rd9, %rd10, %rd16, %rd16);
+ // inline asm
+ mov.f32 %f1395, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f1395;}
+
+ // inline asm
+ mov.u16 %rs130, 0;
+ st.v4.u16 [%rd208], {%rs129, %rs129, %rs129, %rs130};
+
+BB0_118:
+ ld.global.u32 %r235, [additive];
+ setp.eq.s32 %p140, %r235, 0;
+ @%p140 bra BB0_120;
+
+ mov.u64 %rd227, image_RNM1;
+ cvta.global.u64 %rd216, %rd227;
+ mov.u32 %r239, 8;
+ // inline asm
+ call (%rd215), _rt_buffer_get_64, (%rd216, %r33, %r239, %rd9, %rd10, %rd16, %rd16);
+ // inline asm
+ ld.v4.u16 {%rs137, %rs138, %rs139, %rs140}, [%rd215];
+ // inline asm
+ { cvt.f32.f16 %f1396, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1397, %rs138;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1398, %rs139;}
+
+ // inline asm
+ // inline asm
+ call (%rd221), _rt_buffer_get_64, (%rd216, %r33, %r239, %rd9, %rd10, %rd16, %rd16);
+ // inline asm
+ add.f32 %f1399, %f1396, 0f00000000;
+ add.f32 %f1400, %f1397, 0f00000000;
+ add.f32 %f1401, %f1398, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs136, %f1401;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f1400;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f1399;}
+
+ // inline asm
+ mov.u16 %rs141, 0;
+ st.v4.u16 [%rd221], {%rs134, %rs135, %rs136, %rs141};
+ bra.uni BB0_121;
+
+BB0_120:
+ mov.u64 %rd234, image_RNM1;
+ cvta.global.u64 %rd229, %rd234;
+ mov.u32 %r241, 8;
+ // inline asm
+ call (%rd228), _rt_buffer_get_64, (%rd229, %r33, %r241, %rd9, %rd10, %rd16, %rd16);
+ // inline asm
+ mov.f32 %f1402, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs142, %f1402;}
+
+ // inline asm
+ mov.u16 %rs143, 0;
+ st.v4.u16 [%rd228], {%rs142, %rs142, %rs142, %rs143};
+
+BB0_121:
+ ld.global.u32 %r242, [additive];
+ setp.eq.s32 %p141, %r242, 0;
+ @%p141 bra BB0_123;
+
+ mov.u64 %rd247, image_RNM2;
+ cvta.global.u64 %rd236, %rd247;
+ mov.u32 %r246, 8;
+ // inline asm
+ call (%rd235), _rt_buffer_get_64, (%rd236, %r33, %r246, %rd9, %rd10, %rd16, %rd16);
+ // inline asm
+ ld.v4.u16 {%rs150, %rs151, %rs152, %rs153}, [%rd235];
+ // inline asm
+ { cvt.f32.f16 %f1403, %rs150;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1404, %rs151;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1405, %rs152;}
+
+ // inline asm
+ // inline asm
+ call (%rd241), _rt_buffer_get_64, (%rd236, %r33, %r246, %rd9, %rd10, %rd16, %rd16);
+ // inline asm
+ add.f32 %f1406, %f1403, 0f00000000;
+ add.f32 %f1407, %f1404, 0f00000000;
+ add.f32 %f1408, %f1405, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs149, %f1408;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs148, %f1407;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f1406;}
+
+ // inline asm
+ mov.u16 %rs154, 0;
+ st.v4.u16 [%rd241], {%rs147, %rs148, %rs149, %rs154};
+ bra.uni BB0_124;
+
+BB0_123:
+ mov.u64 %rd254, image_RNM2;
+ cvta.global.u64 %rd249, %rd254;
+ mov.u32 %r248, 8;
+ // inline asm
+ call (%rd248), _rt_buffer_get_64, (%rd249, %r33, %r248, %rd9, %rd10, %rd16, %rd16);
+ // inline asm
+ mov.f32 %f1409, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs155, %f1409;}
+
+ // inline asm
+ mov.u16 %rs156, 0;
+ st.v4.u16 [%rd248], {%rs155, %rs155, %rs155, %rs156};
+ bra.uni BB0_124;
+
+BB0_50:
+ setp.geu.f32 %p74, %f210, 0f00000000;
+ @%p74 bra BB0_53;
+
+ cvt.rzi.f32.f32 %f1090, %f1062;
+ setp.neu.f32 %p75, %f1090, 0f3EE8BA2E;
+ selp.f32 %f1488, 0f7FFFFFFF, %f1488, %p75;
+
+BB0_53:
+ add.f32 %f1092, %f212, 0f3EE8BA2E;
+ mov.b32 %r149, %f1092;
+ setp.lt.s32 %p77, %r149, 2139095040;
+ @%p77 bra BB0_58;
+
+ setp.gtu.f32 %p78, %f212, 0f7F800000;
+ @%p78 bra BB0_57;
+ bra.uni BB0_55;
+
+BB0_57:
+ add.f32 %f1488, %f210, 0f3EE8BA2E;
+ bra.uni BB0_58;
+
+BB0_55:
+ setp.neu.f32 %p79, %f212, 0f7F800000;
+ @%p79 bra BB0_58;
+
+ selp.f32 %f1488, 0fFF800000, 0f7F800000, %p4;
+
+BB0_58:
+ mul.f32 %f1093, %f1488, 0f437F0000;
+ setp.eq.f32 %p80, %f210, 0f3F800000;
+ selp.f32 %f1094, 0f437F0000, %f1093, %p80;
+ cvt.rzi.u32.f32 %r150, %f1094;
+ cvt.u16.u32 %rs40, %r150;
+ mov.u16 %rs41, 255;
+ st.v2.u8 [%rd67], {%rs40, %rs41};
+ ld.global.u32 %r255, [imageEnabled];
+
+BB0_59:
+ and.b32 %r151, %r255, 1;
+ setp.eq.b32 %p81, %r151, 1;
+ @!%p81 bra BB0_94;
+ bra.uni BB0_60;
+
+BB0_60:
+ mov.f32 %f1097, 0f3E666666;
+ cvt.rzi.f32.f32 %f1098, %f1097;
+ fma.rn.f32 %f1099, %f1098, 0fC0000000, 0f3EE66666;
+ abs.f32 %f224, %f1099;
+ abs.f32 %f225, %f1434;
+ setp.lt.f32 %p82, %f225, 0f00800000;
+ mul.f32 %f1100, %f225, 0f4B800000;
+ selp.f32 %f1101, 0fC3170000, 0fC2FE0000, %p82;
+ selp.f32 %f1102, %f1100, %f225, %p82;
+ mov.b32 %r152, %f1102;
+ and.b32 %r153, %r152, 8388607;
+ or.b32 %r154, %r153, 1065353216;
+ mov.b32 %f1103, %r154;
+ shr.u32 %r155, %r152, 23;
+ cvt.rn.f32.u32 %f1104, %r155;
+ add.f32 %f1105, %f1101, %f1104;
+ setp.gt.f32 %p83, %f1103, 0f3FB504F3;
+ mul.f32 %f1106, %f1103, 0f3F000000;
+ add.f32 %f1107, %f1105, 0f3F800000;
+ selp.f32 %f1108, %f1106, %f1103, %p83;
+ selp.f32 %f1109, %f1107, %f1105, %p83;
+ add.f32 %f1110, %f1108, 0fBF800000;
+ add.f32 %f1096, %f1108, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f1095,%f1096;
+ // inline asm
+ add.f32 %f1111, %f1110, %f1110;
+ mul.f32 %f1112, %f1095, %f1111;
+ mul.f32 %f1113, %f1112, %f1112;
+ mov.f32 %f1114, 0f3C4CAF63;
+ mov.f32 %f1115, 0f3B18F0FE;
+ fma.rn.f32 %f1116, %f1115, %f1113, %f1114;
+ mov.f32 %f1117, 0f3DAAAABD;
+ fma.rn.f32 %f1118, %f1116, %f1113, %f1117;
+ mul.rn.f32 %f1119, %f1118, %f1113;
+ mul.rn.f32 %f1120, %f1119, %f1112;
+ sub.f32 %f1121, %f1110, %f1112;
+ neg.f32 %f1122, %f1112;
+ add.f32 %f1123, %f1121, %f1121;
+ fma.rn.f32 %f1124, %f1122, %f1110, %f1123;
+ mul.rn.f32 %f1125, %f1095, %f1124;
+ add.f32 %f1126, %f1120, %f1112;
+ sub.f32 %f1127, %f1112, %f1126;
+ add.f32 %f1128, %f1120, %f1127;
+ add.f32 %f1129, %f1125, %f1128;
+ add.f32 %f1130, %f1126, %f1129;
+ sub.f32 %f1131, %f1126, %f1130;
+ add.f32 %f1132, %f1129, %f1131;
+ mov.f32 %f1133, 0f3F317200;
+ mul.rn.f32 %f1134, %f1109, %f1133;
+ mov.f32 %f1135, 0f35BFBE8E;
+ mul.rn.f32 %f1136, %f1109, %f1135;
+ add.f32 %f1137, %f1134, %f1130;
+ sub.f32 %f1138, %f1134, %f1137;
+ add.f32 %f1139, %f1130, %f1138;
+ add.f32 %f1140, %f1132, %f1139;
+ add.f32 %f1141, %f1136, %f1140;
+ add.f32 %f1142, %f1137, %f1141;
+ sub.f32 %f1143, %f1137, %f1142;
+ add.f32 %f1144, %f1141, %f1143;
+ mov.f32 %f1145, 0f3EE66666;
+ mul.rn.f32 %f1146, %f1145, %f1142;
+ neg.f32 %f1147, %f1146;
+ fma.rn.f32 %f1148, %f1145, %f1142, %f1147;
+ fma.rn.f32 %f1149, %f1145, %f1144, %f1148;
+ mov.f32 %f1150, 0f00000000;
+ fma.rn.f32 %f1151, %f1150, %f1142, %f1149;
+ add.rn.f32 %f1152, %f1146, %f1151;
+ neg.f32 %f1153, %f1152;
+ add.rn.f32 %f1154, %f1146, %f1153;
+ add.rn.f32 %f1155, %f1154, %f1151;
+ mov.b32 %r156, %f1152;
+ setp.eq.s32 %p84, %r156, 1118925336;
+ add.s32 %r157, %r156, -1;
+ mov.b32 %f1156, %r157;
+ add.f32 %f1157, %f1155, 0f37000000;
+ selp.f32 %f1158, %f1156, %f1152, %p84;
+ selp.f32 %f226, %f1157, %f1155, %p84;
+ mul.f32 %f1159, %f1158, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1160, %f1159;
+ mov.f32 %f1161, 0fBF317200;
+ fma.rn.f32 %f1162, %f1160, %f1161, %f1158;
+ mov.f32 %f1163, 0fB5BFBE8E;
+ fma.rn.f32 %f1164, %f1160, %f1163, %f1162;
+ mul.f32 %f1165, %f1164, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1166, %f1165;
+ add.f32 %f1167, %f1160, 0f00000000;
+ ex2.approx.f32 %f1168, %f1167;
+ mul.f32 %f1169, %f1166, %f1168;
+ setp.lt.f32 %p85, %f1158, 0fC2D20000;
+ selp.f32 %f1170, 0f00000000, %f1169, %p85;
+ setp.gt.f32 %p86, %f1158, 0f42D20000;
+ selp.f32 %f1489, 0f7F800000, %f1170, %p86;
+ setp.eq.f32 %p87, %f1489, 0f7F800000;
+ @%p87 bra BB0_62;
+
+ fma.rn.f32 %f1489, %f1489, %f226, %f1489;
+
+BB0_62:
+ setp.lt.f32 %p88, %f1434, 0f00000000;
+ setp.eq.f32 %p89, %f224, 0f3F800000;
+ and.pred %p5, %p88, %p89;
+ mov.b32 %r158, %f1489;
+ xor.b32 %r159, %r158, -2147483648;
+ mov.b32 %f1171, %r159;
+ selp.f32 %f1491, %f1171, %f1489, %p5;
+ setp.eq.f32 %p90, %f1434, 0f00000000;
+ @%p90 bra BB0_65;
+ bra.uni BB0_63;
+
+BB0_65:
+ add.f32 %f1174, %f1434, %f1434;
+ selp.f32 %f1491, %f1174, 0f00000000, %p89;
+ bra.uni BB0_66;
+
+BB0_63:
+ setp.geu.f32 %p91, %f1434, 0f00000000;
+ @%p91 bra BB0_66;
+
+ cvt.rzi.f32.f32 %f1173, %f1145;
+ setp.neu.f32 %p92, %f1173, 0f3EE66666;
+ selp.f32 %f1491, 0f7FFFFFFF, %f1491, %p92;
+
+BB0_66:
+ add.f32 %f1175, %f225, 0f3EE66666;
+ mov.b32 %r160, %f1175;
+ setp.lt.s32 %p94, %r160, 2139095040;
+ @%p94 bra BB0_71;
+
+ setp.gtu.f32 %p95, %f225, 0f7F800000;
+ @%p95 bra BB0_70;
+ bra.uni BB0_68;
+
+BB0_70:
+ add.f32 %f1491, %f1434, 0f3EE66666;
+ bra.uni BB0_71;
+
+BB0_68:
+ setp.neu.f32 %p96, %f225, 0f7F800000;
+ @%p96 bra BB0_71;
+
+ selp.f32 %f1491, 0fFF800000, 0f7F800000, %p5;
+
+BB0_71:
+ setp.eq.f32 %p97, %f1434, 0f3F800000;
+ selp.f32 %f237, 0f3F800000, %f1491, %p97;
+ abs.f32 %f238, %f1433;
+ setp.lt.f32 %p98, %f238, 0f00800000;
+ mul.f32 %f1178, %f238, 0f4B800000;
+ selp.f32 %f1179, 0fC3170000, 0fC2FE0000, %p98;
+ selp.f32 %f1180, %f1178, %f238, %p98;
+ mov.b32 %r161, %f1180;
+ and.b32 %r162, %r161, 8388607;
+ or.b32 %r163, %r162, 1065353216;
+ mov.b32 %f1181, %r163;
+ shr.u32 %r164, %r161, 23;
+ cvt.rn.f32.u32 %f1182, %r164;
+ add.f32 %f1183, %f1179, %f1182;
+ setp.gt.f32 %p99, %f1181, 0f3FB504F3;
+ mul.f32 %f1184, %f1181, 0f3F000000;
+ add.f32 %f1185, %f1183, 0f3F800000;
+ selp.f32 %f1186, %f1184, %f1181, %p99;
+ selp.f32 %f1187, %f1185, %f1183, %p99;
+ add.f32 %f1188, %f1186, 0fBF800000;
+ add.f32 %f1177, %f1186, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f1176,%f1177;
+ // inline asm
+ add.f32 %f1189, %f1188, %f1188;
+ mul.f32 %f1190, %f1176, %f1189;
+ mul.f32 %f1191, %f1190, %f1190;
+ fma.rn.f32 %f1194, %f1115, %f1191, %f1114;
+ fma.rn.f32 %f1196, %f1194, %f1191, %f1117;
+ mul.rn.f32 %f1197, %f1196, %f1191;
+ mul.rn.f32 %f1198, %f1197, %f1190;
+ sub.f32 %f1199, %f1188, %f1190;
+ neg.f32 %f1200, %f1190;
+ add.f32 %f1201, %f1199, %f1199;
+ fma.rn.f32 %f1202, %f1200, %f1188, %f1201;
+ mul.rn.f32 %f1203, %f1176, %f1202;
+ add.f32 %f1204, %f1198, %f1190;
+ sub.f32 %f1205, %f1190, %f1204;
+ add.f32 %f1206, %f1198, %f1205;
+ add.f32 %f1207, %f1203, %f1206;
+ add.f32 %f1208, %f1204, %f1207;
+ sub.f32 %f1209, %f1204, %f1208;
+ add.f32 %f1210, %f1207, %f1209;
+ mul.rn.f32 %f1212, %f1187, %f1133;
+ mul.rn.f32 %f1214, %f1187, %f1135;
+ add.f32 %f1215, %f1212, %f1208;
+ sub.f32 %f1216, %f1212, %f1215;
+ add.f32 %f1217, %f1208, %f1216;
+ add.f32 %f1218, %f1210, %f1217;
+ add.f32 %f1219, %f1214, %f1218;
+ add.f32 %f1220, %f1215, %f1219;
+ sub.f32 %f1221, %f1215, %f1220;
+ add.f32 %f1222, %f1219, %f1221;
+ mul.rn.f32 %f1224, %f1145, %f1220;
+ neg.f32 %f1225, %f1224;
+ fma.rn.f32 %f1226, %f1145, %f1220, %f1225;
+ fma.rn.f32 %f1227, %f1145, %f1222, %f1226;
+ fma.rn.f32 %f1229, %f1150, %f1220, %f1227;
+ add.rn.f32 %f1230, %f1224, %f1229;
+ neg.f32 %f1231, %f1230;
+ add.rn.f32 %f1232, %f1224, %f1231;
+ add.rn.f32 %f1233, %f1232, %f1229;
+ mov.b32 %r165, %f1230;
+ setp.eq.s32 %p100, %r165, 1118925336;
+ add.s32 %r166, %r165, -1;
+ mov.b32 %f1234, %r166;
+ add.f32 %f1235, %f1233, 0f37000000;
+ selp.f32 %f1236, %f1234, %f1230, %p100;
+ selp.f32 %f239, %f1235, %f1233, %p100;
+ mul.f32 %f1237, %f1236, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1238, %f1237;
+ fma.rn.f32 %f1240, %f1238, %f1161, %f1236;
+ fma.rn.f32 %f1242, %f1238, %f1163, %f1240;
+ mul.f32 %f1243, %f1242, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1244, %f1243;
+ add.f32 %f1245, %f1238, 0f00000000;
+ ex2.approx.f32 %f1246, %f1245;
+ mul.f32 %f1247, %f1244, %f1246;
+ setp.lt.f32 %p101, %f1236, 0fC2D20000;
+ selp.f32 %f1248, 0f00000000, %f1247, %p101;
+ setp.gt.f32 %p102, %f1236, 0f42D20000;
+ selp.f32 %f1492, 0f7F800000, %f1248, %p102;
+ setp.eq.f32 %p103, %f1492, 0f7F800000;
+ @%p103 bra BB0_73;
+
+ fma.rn.f32 %f1492, %f1492, %f239, %f1492;
+
+BB0_73:
+ setp.lt.f32 %p104, %f1433, 0f00000000;
+ and.pred %p6, %p104, %p89;
+ mov.b32 %r167, %f1492;
+ xor.b32 %r168, %r167, -2147483648;
+ mov.b32 %f1249, %r168;
+ selp.f32 %f1494, %f1249, %f1492, %p6;
+ setp.eq.f32 %p106, %f1433, 0f00000000;
+ @%p106 bra BB0_76;
+ bra.uni BB0_74;
+
+BB0_76:
+ add.f32 %f1252, %f1433, %f1433;
+ selp.f32 %f1494, %f1252, 0f00000000, %p89;
+ bra.uni BB0_77;
+
+BB0_74:
+ setp.geu.f32 %p107, %f1433, 0f00000000;
+ @%p107 bra BB0_77;
+
+ cvt.rzi.f32.f32 %f1251, %f1145;
+ setp.neu.f32 %p108, %f1251, 0f3EE66666;
+ selp.f32 %f1494, 0f7FFFFFFF, %f1494, %p108;
+
+BB0_77:
+ add.f32 %f1253, %f238, 0f3EE66666;
+ mov.b32 %r169, %f1253;
+ setp.lt.s32 %p110, %r169, 2139095040;
+ @%p110 bra BB0_82;
+
+ setp.gtu.f32 %p111, %f238, 0f7F800000;
+ @%p111 bra BB0_81;
+ bra.uni BB0_79;
+
+BB0_81:
+ add.f32 %f1494, %f1433, 0f3EE66666;
+ bra.uni BB0_82;
+
+BB0_79:
+ setp.neu.f32 %p112, %f238, 0f7F800000;
+ @%p112 bra BB0_82;
+
+ selp.f32 %f1494, 0fFF800000, 0f7F800000, %p6;
+
+BB0_82:
+ setp.eq.f32 %p113, %f1433, 0f3F800000;
+ selp.f32 %f250, 0f3F800000, %f1494, %p113;
+ abs.f32 %f251, %f1432;
+ setp.lt.f32 %p114, %f251, 0f00800000;
+ mul.f32 %f1256, %f251, 0f4B800000;
+ selp.f32 %f1257, 0fC3170000, 0fC2FE0000, %p114;
+ selp.f32 %f1258, %f1256, %f251, %p114;
+ mov.b32 %r170, %f1258;
+ and.b32 %r171, %r170, 8388607;
+ or.b32 %r172, %r171, 1065353216;
+ mov.b32 %f1259, %r172;
+ shr.u32 %r173, %r170, 23;
+ cvt.rn.f32.u32 %f1260, %r173;
+ add.f32 %f1261, %f1257, %f1260;
+ setp.gt.f32 %p115, %f1259, 0f3FB504F3;
+ mul.f32 %f1262, %f1259, 0f3F000000;
+ add.f32 %f1263, %f1261, 0f3F800000;
+ selp.f32 %f1264, %f1262, %f1259, %p115;
+ selp.f32 %f1265, %f1263, %f1261, %p115;
+ add.f32 %f1266, %f1264, 0fBF800000;
+ add.f32 %f1255, %f1264, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f1254,%f1255;
+ // inline asm
+ add.f32 %f1267, %f1266, %f1266;
+ mul.f32 %f1268, %f1254, %f1267;
+ mul.f32 %f1269, %f1268, %f1268;
+ fma.rn.f32 %f1272, %f1115, %f1269, %f1114;
+ fma.rn.f32 %f1274, %f1272, %f1269, %f1117;
+ mul.rn.f32 %f1275, %f1274, %f1269;
+ mul.rn.f32 %f1276, %f1275, %f1268;
+ sub.f32 %f1277, %f1266, %f1268;
+ neg.f32 %f1278, %f1268;
+ add.f32 %f1279, %f1277, %f1277;
+ fma.rn.f32 %f1280, %f1278, %f1266, %f1279;
+ mul.rn.f32 %f1281, %f1254, %f1280;
+ add.f32 %f1282, %f1276, %f1268;
+ sub.f32 %f1283, %f1268, %f1282;
+ add.f32 %f1284, %f1276, %f1283;
+ add.f32 %f1285, %f1281, %f1284;
+ add.f32 %f1286, %f1282, %f1285;
+ sub.f32 %f1287, %f1282, %f1286;
+ add.f32 %f1288, %f1285, %f1287;
+ mul.rn.f32 %f1290, %f1265, %f1133;
+ mul.rn.f32 %f1292, %f1265, %f1135;
+ add.f32 %f1293, %f1290, %f1286;
+ sub.f32 %f1294, %f1290, %f1293;
+ add.f32 %f1295, %f1286, %f1294;
+ add.f32 %f1296, %f1288, %f1295;
+ add.f32 %f1297, %f1292, %f1296;
+ add.f32 %f1298, %f1293, %f1297;
+ sub.f32 %f1299, %f1293, %f1298;
+ add.f32 %f1300, %f1297, %f1299;
+ mul.rn.f32 %f1302, %f1145, %f1298;
+ neg.f32 %f1303, %f1302;
+ fma.rn.f32 %f1304, %f1145, %f1298, %f1303;
+ fma.rn.f32 %f1305, %f1145, %f1300, %f1304;
+ fma.rn.f32 %f1307, %f1150, %f1298, %f1305;
+ add.rn.f32 %f1308, %f1302, %f1307;
+ neg.f32 %f1309, %f1308;
+ add.rn.f32 %f1310, %f1302, %f1309;
+ add.rn.f32 %f1311, %f1310, %f1307;
+ mov.b32 %r174, %f1308;
+ setp.eq.s32 %p116, %r174, 1118925336;
+ add.s32 %r175, %r174, -1;
+ mov.b32 %f1312, %r175;
+ add.f32 %f1313, %f1311, 0f37000000;
+ selp.f32 %f1314, %f1312, %f1308, %p116;
+ selp.f32 %f252, %f1313, %f1311, %p116;
+ mul.f32 %f1315, %f1314, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1316, %f1315;
+ fma.rn.f32 %f1318, %f1316, %f1161, %f1314;
+ fma.rn.f32 %f1320, %f1316, %f1163, %f1318;
+ mul.f32 %f1321, %f1320, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1322, %f1321;
+ add.f32 %f1323, %f1316, 0f00000000;
+ ex2.approx.f32 %f1324, %f1323;
+ mul.f32 %f1325, %f1322, %f1324;
+ setp.lt.f32 %p117, %f1314, 0fC2D20000;
+ selp.f32 %f1326, 0f00000000, %f1325, %p117;
+ setp.gt.f32 %p118, %f1314, 0f42D20000;
+ selp.f32 %f1495, 0f7F800000, %f1326, %p118;
+ setp.eq.f32 %p119, %f1495, 0f7F800000;
+ @%p119 bra BB0_84;
+
+ fma.rn.f32 %f1495, %f1495, %f252, %f1495;
+
+BB0_84:
+ setp.lt.f32 %p120, %f1432, 0f00000000;
+ and.pred %p7, %p120, %p89;
+ mov.b32 %r176, %f1495;
+ xor.b32 %r177, %r176, -2147483648;
+ mov.b32 %f1327, %r177;
+ selp.f32 %f1497, %f1327, %f1495, %p7;
+ setp.eq.f32 %p122, %f1432, 0f00000000;
+ @%p122 bra BB0_87;
+ bra.uni BB0_85;
+
+BB0_87:
+ add.f32 %f1330, %f1432, %f1432;
+ selp.f32 %f1497, %f1330, 0f00000000, %p89;
+ bra.uni BB0_88;
+
+BB0_85:
+ setp.geu.f32 %p123, %f1432, 0f00000000;
+ @%p123 bra BB0_88;
+
+ cvt.rzi.f32.f32 %f1329, %f1145;
+ setp.neu.f32 %p124, %f1329, 0f3EE66666;
+ selp.f32 %f1497, 0f7FFFFFFF, %f1497, %p124;
+
+BB0_88:
+ add.f32 %f1331, %f251, 0f3EE66666;
+ mov.b32 %r178, %f1331;
+ setp.lt.s32 %p126, %r178, 2139095040;
+ @%p126 bra BB0_93;
+
+ setp.gtu.f32 %p127, %f251, 0f7F800000;
+ @%p127 bra BB0_92;
+ bra.uni BB0_90;
+
+BB0_92:
+ add.f32 %f1497, %f1432, 0f3EE66666;
+ bra.uni BB0_93;
+
+BB0_90:
+ setp.neu.f32 %p128, %f251, 0f7F800000;
+ @%p128 bra BB0_93;
+
+ selp.f32 %f1497, 0fFF800000, 0f7F800000, %p7;
+
+BB0_93:
+ setp.eq.f32 %p129, %f1432, 0f3F800000;
+ selp.f32 %f1332, 0f3F800000, %f1497, %p129;
+ cvt.u64.u32 %rd77, %r3;
+ cvt.u64.u32 %rd76, %r2;
+ mov.u64 %rd80, image;
+ cvta.global.u64 %rd75, %rd80;
+ // inline asm
+ call (%rd74), _rt_buffer_get_64, (%rd75, %r33, %r34, %rd76, %rd77, %rd16, %rd16);
+ // inline asm
+ cvt.sat.f32.f32 %f1333, %f1332;
+ mul.f32 %f1334, %f1333, 0f437FFD71;
+ cvt.rzi.u32.f32 %r181, %f1334;
+ cvt.sat.f32.f32 %f1335, %f250;
+ mul.f32 %f1336, %f1335, 0f437FFD71;
+ cvt.rzi.u32.f32 %r182, %f1336;
+ cvt.sat.f32.f32 %f1337, %f237;
+ mul.f32 %f1338, %f1337, 0f437FFD71;
+ cvt.rzi.u32.f32 %r183, %f1338;
+ cvt.u16.u32 %rs42, %r181;
+ cvt.u16.u32 %rs43, %r183;
+ cvt.u16.u32 %rs44, %r182;
+ mov.u16 %rs45, 255;
+ st.v4.u8 [%rd74], {%rs42, %rs44, %rs43, %rs45};
+ ld.global.u32 %r255, [imageEnabled];
+
+BB0_94:
+ cvt.u64.u32 %rd7, %r2;
+ cvt.u64.u32 %rd8, %r3;
+ and.b32 %r184, %r255, 4;
+ setp.eq.s32 %p130, %r184, 0;
+ @%p130 bra BB0_98;
+
+ ld.global.u32 %r185, [additive];
+ setp.eq.s32 %p131, %r185, 0;
+ mov.f32 %f1339, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f1339;}
+
+ // inline asm
+ @%p131 bra BB0_97;
+
+ mov.u64 %rd93, image_HDR;
+ cvta.global.u64 %rd82, %rd93;
+ mov.u32 %r189, 8;
+ // inline asm
+ call (%rd81), _rt_buffer_get_64, (%rd82, %r33, %r189, %rd7, %rd8, %rd16, %rd16);
+ // inline asm
+ ld.v4.u16 {%rs53, %rs54, %rs55, %rs56}, [%rd81];
+ // inline asm
+ { cvt.f32.f16 %f1340, %rs53;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1341, %rs54;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1342, %rs55;}
+
+ // inline asm
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd82, %r33, %r189, %rd7, %rd8, %rd16, %rd16);
+ // inline asm
+ add.f32 %f1343, %f1434, %f1340;
+ add.f32 %f1344, %f1433, %f1341;
+ add.f32 %f1345, %f1432, %f1342;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f1345;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f1344;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f1343;}
+
+ // inline asm
+ st.v4.u16 [%rd87], {%rs50, %rs51, %rs52, %rs46};
+ bra.uni BB0_98;
+
+BB0_97:
+ mov.u64 %rd100, image_HDR;
+ cvta.global.u64 %rd95, %rd100;
+ mov.u32 %r191, 8;
+ // inline asm
+ call (%rd94), _rt_buffer_get_64, (%rd95, %r33, %r191, %rd7, %rd8, %rd16, %rd16);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f1432;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f1433;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f1434;}
+
+ // inline asm
+ st.v4.u16 [%rd94], {%rs57, %rs58, %rs59, %rs46};
+
+BB0_98:
+ ld.global.u32 %r192, [additive];
+ setp.eq.s32 %p132, %r192, 0;
+ mov.f32 %f1349, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f1349;}
+
+ // inline asm
+ @%p132 bra BB0_100;
+
+ mov.u64 %rd113, image_RNM0;
+ cvta.global.u64 %rd102, %rd113;
+ mov.u32 %r196, 8;
+ // inline asm
+ call (%rd101), _rt_buffer_get_64, (%rd102, %r33, %r196, %rd7, %rd8, %rd16, %rd16);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd101];
+ // inline asm
+ { cvt.f32.f16 %f1350, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1351, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1352, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd107), _rt_buffer_get_64, (%rd102, %r33, %r196, %rd7, %rd8, %rd16, %rd16);
+ // inline asm
+ add.f32 %f1353, %f1431, %f1350;
+ add.f32 %f1354, %f1430, %f1351;
+ add.f32 %f1355, %f1429, %f1352;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f1355;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f1354;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f1353;}
+
+ // inline asm
+ st.v4.u16 [%rd107], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd120, image_RNM0;
+ cvta.global.u64 %rd115, %rd120;
+ mov.u32 %r198, 8;
+ // inline asm
+ call (%rd114), _rt_buffer_get_64, (%rd115, %r33, %r198, %rd7, %rd8, %rd16, %rd16);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f1429;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f1430;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f1431;}
+
+ // inline asm
+ st.v4.u16 [%rd114], {%rs71, %rs72, %rs73, %rs60};
+
+BB0_101:
+ ld.global.u32 %r199, [additive];
+ setp.eq.s32 %p133, %r199, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f1349;}
+
+ // inline asm
+ @%p133 bra BB0_103;
+
+ mov.u64 %rd133, image_RNM1;
+ cvta.global.u64 %rd122, %rd133;
+ mov.u32 %r203, 8;
+ // inline asm
+ call (%rd121), _rt_buffer_get_64, (%rd122, %r33, %r203, %rd7, %rd8, %rd16, %rd16);
+ // inline asm
+ ld.v4.u16 {%rs81, %rs82, %rs83, %rs84}, [%rd121];
+ // inline asm
+ { cvt.f32.f16 %f1360, %rs81;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1361, %rs82;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1362, %rs83;}
+
+ // inline asm
+ // inline asm
+ call (%rd127), _rt_buffer_get_64, (%rd122, %r33, %r203, %rd7, %rd8, %rd16, %rd16);
+ // inline asm
+ add.f32 %f1363, %f1428, %f1360;
+ add.f32 %f1364, %f1427, %f1361;
+ add.f32 %f1365, %f1426, %f1362;
+ // inline asm
+ { cvt.rn.f16.f32 %rs80, %f1365;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs79, %f1364;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f1363;}
+
+ // inline asm
+ st.v4.u16 [%rd127], {%rs78, %rs79, %rs80, %rs74};
+ bra.uni BB0_104;
+
+BB0_103:
+ mov.u64 %rd140, image_RNM1;
+ cvta.global.u64 %rd135, %rd140;
+ mov.u32 %r205, 8;
+ // inline asm
+ call (%rd134), _rt_buffer_get_64, (%rd135, %r33, %r205, %rd7, %rd8, %rd16, %rd16);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f1426;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f1427;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f1428;}
+
+ // inline asm
+ st.v4.u16 [%rd134], {%rs85, %rs86, %rs87, %rs74};
+
+BB0_104:
+ ld.global.u32 %r206, [additive];
+ setp.eq.s32 %p134, %r206, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f1349;}
+
+ // inline asm
+ @%p134 bra BB0_106;
+
+ mov.u64 %rd153, image_RNM2;
+ cvta.global.u64 %rd142, %rd153;
+ mov.u32 %r210, 8;
+ // inline asm
+ call (%rd141), _rt_buffer_get_64, (%rd142, %r33, %r210, %rd7, %rd8, %rd16, %rd16);
+ // inline asm
+ ld.v4.u16 {%rs95, %rs96, %rs97, %rs98}, [%rd141];
+ // inline asm
+ { cvt.f32.f16 %f1370, %rs95;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1371, %rs96;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1372, %rs97;}
+
+ // inline asm
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd142, %r33, %r210, %rd7, %rd8, %rd16, %rd16);
+ // inline asm
+ add.f32 %f1373, %f1425, %f1370;
+ add.f32 %f1374, %f1424, %f1371;
+ add.f32 %f1375, %f1423, %f1372;
+ // inline asm
+ { cvt.rn.f16.f32 %rs94, %f1375;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f1374;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f1373;}
+
+ // inline asm
+ st.v4.u16 [%rd147], {%rs92, %rs93, %rs94, %rs88};
+ bra.uni BB0_124;
+
+BB0_106:
+ mov.u64 %rd160, image_RNM2;
+ cvta.global.u64 %rd155, %rd160;
+ mov.u32 %r212, 8;
+ // inline asm
+ call (%rd154), _rt_buffer_get_64, (%rd155, %r33, %r212, %rd7, %rd8, %rd16, %rd16);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs101, %f1423;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs100, %f1424;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f1425;}
+
+ // inline asm
+ st.v4.u16 [%rd154], {%rs99, %rs100, %rs101, %rs88};
+
+BB0_124:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightRNM.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightRNM.ptx.meta
new file mode 100644
index 00000000..7097cc0c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightRNM.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: df7afd4e0579111429667094386d99f2
+timeCreated: 1583324482
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightSH.ptx
new file mode 100644
index 00000000..3eb90e6c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightSH.ptx
@@ -0,0 +1,2382 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 ignoreNormal;
+.global .align 1 .b8 localLights[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<136>;
+ .reg .b16 %rs<158>;
+ .reg .f32 %f<1395>;
+ .reg .b32 %r<248>;
+ .reg .b64 %rd<272>;
+
+
+ mov.u64 %rd271, __local_depot0;
+ cvta.local.u64 %SP, %rd271;
+ ld.global.v2.u32 {%r29, %r30}, [pixelID];
+ cvt.u64.u32 %rd10, %r29;
+ cvt.u64.u32 %rd11, %r30;
+ mov.u64 %rd14, uvnormal;
+ cvta.global.u64 %rd9, %rd14;
+ mov.u32 %r27, 2;
+ mov.u32 %r28, 4;
+ mov.u64 %rd13, 0;
+ // inline asm
+ call (%rd8), _rt_buffer_get_64, (%rd9, %r27, %r28, %rd10, %rd11, %rd13, %rd13);
+ // inline asm
+ ld.u32 %r1, [%rd8];
+ shr.u32 %r33, %r1, 16;
+ cvt.u16.u32 %rs1, %r33;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r1;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p8, %rs9, 0;
+ mov.f32 %f1304, 0f00000000;
+ mov.f32 %f1305, %f1304;
+ mov.f32 %f1306, %f1304;
+ @%p8 bra BB0_2;
+
+ ld.u8 %rs10, [%rd8+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f263, %rs12;
+ div.rn.f32 %f264, %f263, 0f437F0000;
+ fma.rn.f32 %f265, %f264, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f266, %rs10;
+ div.rn.f32 %f267, %f266, 0f437F0000;
+ fma.rn.f32 %f268, %f267, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f269, %rs7;
+ div.rn.f32 %f270, %f269, 0f437F0000;
+ fma.rn.f32 %f271, %f270, 0f40000000, 0fBF800000;
+ mul.f32 %f272, %f268, %f268;
+ fma.rn.f32 %f273, %f265, %f265, %f272;
+ fma.rn.f32 %f274, %f271, %f271, %f273;
+ sqrt.rn.f32 %f275, %f274;
+ rcp.rn.f32 %f276, %f275;
+ mul.f32 %f1304, %f265, %f276;
+ mul.f32 %f1305, %f268, %f276;
+ mul.f32 %f1306, %f271, %f276;
+
+BB0_2:
+ ld.global.v2.u32 {%r34, %r35}, [pixelID];
+ ld.global.v2.u32 {%r37, %r38}, [tileInfo];
+ add.s32 %r2, %r34, %r37;
+ add.s32 %r3, %r35, %r38;
+ setp.eq.f32 %p9, %f1305, 0f00000000;
+ setp.eq.f32 %p10, %f1304, 0f00000000;
+ and.pred %p11, %p10, %p9;
+ setp.eq.f32 %p12, %f1306, 0f00000000;
+ and.pred %p13, %p11, %p12;
+ @%p13 bra BB0_104;
+ bra.uni BB0_3;
+
+BB0_104:
+ ld.global.u32 %r247, [imageEnabled];
+ and.b32 %r196, %r247, 1;
+ setp.eq.b32 %p127, %r196, 1;
+ @!%p127 bra BB0_106;
+ bra.uni BB0_105;
+
+BB0_105:
+ cvt.u64.u32 %rd159, %r2;
+ cvt.u64.u32 %rd160, %r3;
+ mov.u64 %rd163, image;
+ cvta.global.u64 %rd158, %rd163;
+ // inline asm
+ call (%rd157), _rt_buffer_get_64, (%rd158, %r27, %r28, %rd159, %rd160, %rd13, %rd13);
+ // inline asm
+ mov.u16 %rs90, 0;
+ st.v4.u8 [%rd157], {%rs90, %rs90, %rs90, %rs90};
+ ld.global.u32 %r247, [imageEnabled];
+
+BB0_106:
+ and.b32 %r199, %r247, 8;
+ setp.eq.s32 %p128, %r199, 0;
+ @%p128 bra BB0_108;
+
+ cvt.u64.u32 %rd167, %r3;
+ cvt.u64.u32 %rd166, %r2;
+ mov.u64 %rd170, image_Mask;
+ cvta.global.u64 %rd165, %rd170;
+ // inline asm
+ call (%rd164), _rt_buffer_get_64, (%rd165, %r27, %r27, %rd166, %rd167, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1268, 0f00000000;
+ cvt.rzi.u32.f32 %r202, %f1268;
+ cvt.u16.u32 %rs91, %r202;
+ mov.u16 %rs92, 0;
+ st.v2.u8 [%rd164], {%rs91, %rs92};
+ ld.global.u32 %r247, [imageEnabled];
+
+BB0_108:
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ and.b32 %r203, %r247, 4;
+ setp.eq.s32 %p129, %r203, 0;
+ @%p129 bra BB0_112;
+
+ ld.global.u32 %r204, [additive];
+ setp.eq.s32 %p130, %r204, 0;
+ @%p130 bra BB0_111;
+
+ mov.u64 %rd183, image_HDR;
+ cvta.global.u64 %rd172, %rd183;
+ mov.u32 %r208, 8;
+ // inline asm
+ call (%rd171), _rt_buffer_get_64, (%rd172, %r27, %r208, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs99, %rs100, %rs101, %rs102}, [%rd171];
+ // inline asm
+ { cvt.f32.f16 %f1269, %rs99;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1270, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1271, %rs101;}
+
+ // inline asm
+ // inline asm
+ call (%rd177), _rt_buffer_get_64, (%rd172, %r27, %r208, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1272, %f1269, 0f00000000;
+ add.f32 %f1273, %f1270, 0f00000000;
+ add.f32 %f1274, %f1271, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f1274;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f1273;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs96, %f1272;}
+
+ // inline asm
+ mov.u16 %rs103, 0;
+ st.v4.u16 [%rd177], {%rs96, %rs97, %rs98, %rs103};
+ bra.uni BB0_112;
+
+BB0_3:
+ ld.global.v2.u32 {%r46, %r47}, [pixelID];
+ cvt.u64.u32 %rd17, %r46;
+ cvt.u64.u32 %rd18, %r47;
+ mov.u64 %rd26, uvpos;
+ cvta.global.u64 %rd16, %rd26;
+ mov.u32 %r43, 12;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd16, %r27, %r43, %rd17, %rd18, %rd13, %rd13);
+ // inline asm
+ ld.f32 %f9, [%rd15+8];
+ ld.f32 %f8, [%rd15+4];
+ ld.f32 %f7, [%rd15];
+ mul.f32 %f293, %f7, 0f3456BF95;
+ mul.f32 %f294, %f8, 0f3456BF95;
+ mul.f32 %f295, %f9, 0f3456BF95;
+ abs.f32 %f296, %f1304;
+ div.rn.f32 %f297, %f293, %f296;
+ abs.f32 %f298, %f1305;
+ div.rn.f32 %f299, %f294, %f298;
+ abs.f32 %f300, %f1306;
+ div.rn.f32 %f301, %f295, %f300;
+ abs.f32 %f302, %f297;
+ abs.f32 %f303, %f299;
+ abs.f32 %f304, %f301;
+ mov.f32 %f305, 0f38D1B717;
+ max.f32 %f306, %f302, %f305;
+ max.f32 %f307, %f303, %f305;
+ max.f32 %f308, %f304, %f305;
+ fma.rn.f32 %f10, %f1304, %f306, %f7;
+ fma.rn.f32 %f11, %f1305, %f307, %f8;
+ fma.rn.f32 %f12, %f1306, %f308, %f9;
+ mov.u64 %rd27, localLights;
+ cvta.global.u64 %rd25, %rd27;
+ mov.u32 %r44, 1;
+ mov.u32 %r45, 96;
+ // inline asm
+ call (%rd21, %rd22, %rd23, %rd24), _rt_buffer_get_size_64, (%rd25, %r44, %r45);
+ // inline asm
+ cvt.u32.u64 %r4, %rd21;
+ setp.eq.s32 %p14, %r4, 0;
+ mov.f32 %f1307, 0f00000000;
+ mov.f32 %f1308, %f1307;
+ mov.f32 %f1309, %f1307;
+ mov.f32 %f1310, %f1307;
+ mov.f32 %f1311, %f1307;
+ mov.f32 %f1312, %f1307;
+ mov.f32 %f1313, %f1307;
+ mov.f32 %f1314, %f1307;
+ mov.f32 %f1315, %f1307;
+ mov.f32 %f1316, %f1307;
+ mov.f32 %f1317, %f1307;
+ mov.f32 %f1318, %f1307;
+ mov.f32 %f1319, %f1307;
+ mov.f32 %f1320, %f1307;
+ mov.f32 %f1321, %f1307;
+ mov.f32 %f1322, %f1307;
+ @%p14 bra BB0_40;
+
+ mov.f32 %f325, 0f40000000;
+ cvt.rzi.f32.f32 %f326, %f325;
+ add.f32 %f327, %f326, %f326;
+ mov.f32 %f328, 0f40800000;
+ sub.f32 %f329, %f328, %f327;
+ abs.f32 %f13, %f329;
+ mul.f32 %f14, %f10, 0f3456BF95;
+ mul.f32 %f15, %f11, 0f3456BF95;
+ mul.f32 %f16, %f12, 0f3456BF95;
+ mov.f32 %f324, 0f00000000;
+ mov.u32 %r239, 0;
+ abs.f32 %f520, %f14;
+ abs.f32 %f521, %f15;
+ max.f32 %f522, %f520, %f521;
+ abs.f32 %f523, %f16;
+ max.f32 %f524, %f522, %f523;
+ mov.f32 %f1307, %f324;
+ mov.f32 %f1308, %f324;
+ mov.f32 %f1309, %f324;
+ mov.f32 %f1310, %f324;
+ mov.f32 %f1311, %f324;
+ mov.f32 %f1312, %f324;
+ mov.f32 %f1313, %f324;
+ mov.f32 %f1314, %f324;
+ mov.f32 %f1315, %f324;
+ mov.f32 %f1316, %f324;
+ mov.f32 %f1317, %f324;
+ mov.f32 %f1318, %f324;
+ mov.f32 %f1319, %f324;
+ mov.f32 %f1320, %f324;
+ mov.f32 %f1321, %f324;
+ mov.f32 %f1322, %f324;
+
+BB0_5:
+ cvt.u64.u32 %rd30, %r239;
+ // inline asm
+ call (%rd28), _rt_buffer_get_64, (%rd25, %r44, %r45, %rd30, %rd13, %rd13, %rd13);
+ // inline asm
+ ld.v4.f32 {%f332, %f333, %f334, %f335}, [%rd28+80];
+ ld.v4.f32 {%f336, %f337, %f338, %f339}, [%rd28+64];
+ ld.v4.f32 {%f340, %f341, %f342, %f343}, [%rd28+48];
+ ld.v4.f32 {%f1326, %f1327, %f1328, %f347}, [%rd28+32];
+ ld.v4.f32 {%f348, %f349, %f350, %f351}, [%rd28+16];
+ ld.v4.f32 {%f352, %f353, %f354, %f355}, [%rd28];
+ mov.b32 %r6, %f335;
+ sub.f32 %f357, %f353, %f7;
+ sub.f32 %f358, %f354, %f8;
+ sub.f32 %f359, %f355, %f9;
+ mul.f32 %f360, %f358, %f358;
+ fma.rn.f32 %f361, %f357, %f357, %f360;
+ fma.rn.f32 %f362, %f359, %f359, %f361;
+ sqrt.rn.f32 %f59, %f362;
+ rcp.rn.f32 %f363, %f59;
+ mul.f32 %f60, %f357, %f363;
+ mul.f32 %f61, %f358, %f363;
+ mul.f32 %f62, %f359, %f363;
+ mul.f32 %f63, %f59, %f351;
+ abs.f32 %f64, %f63;
+ setp.lt.f32 %p15, %f64, 0f00800000;
+ mul.f32 %f364, %f64, 0f4B800000;
+ selp.f32 %f365, 0fC3170000, 0fC2FE0000, %p15;
+ selp.f32 %f366, %f364, %f64, %p15;
+ mov.b32 %r53, %f366;
+ and.b32 %r54, %r53, 8388607;
+ or.b32 %r55, %r54, 1065353216;
+ mov.b32 %f367, %r55;
+ shr.u32 %r56, %r53, 23;
+ cvt.rn.f32.u32 %f368, %r56;
+ add.f32 %f369, %f365, %f368;
+ setp.gt.f32 %p16, %f367, 0f3FB504F3;
+ mul.f32 %f370, %f367, 0f3F000000;
+ add.f32 %f371, %f369, 0f3F800000;
+ selp.f32 %f372, %f370, %f367, %p16;
+ selp.f32 %f373, %f371, %f369, %p16;
+ add.f32 %f374, %f372, 0fBF800000;
+ add.f32 %f331, %f372, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f330,%f331;
+ // inline asm
+ add.f32 %f375, %f374, %f374;
+ mul.f32 %f376, %f330, %f375;
+ mul.f32 %f377, %f376, %f376;
+ mov.f32 %f378, 0f3C4CAF63;
+ mov.f32 %f379, 0f3B18F0FE;
+ fma.rn.f32 %f380, %f379, %f377, %f378;
+ mov.f32 %f381, 0f3DAAAABD;
+ fma.rn.f32 %f382, %f380, %f377, %f381;
+ mul.rn.f32 %f383, %f382, %f377;
+ mul.rn.f32 %f384, %f383, %f376;
+ sub.f32 %f385, %f374, %f376;
+ neg.f32 %f386, %f376;
+ add.f32 %f387, %f385, %f385;
+ fma.rn.f32 %f388, %f386, %f374, %f387;
+ mul.rn.f32 %f389, %f330, %f388;
+ add.f32 %f390, %f384, %f376;
+ sub.f32 %f391, %f376, %f390;
+ add.f32 %f392, %f384, %f391;
+ add.f32 %f393, %f389, %f392;
+ add.f32 %f394, %f390, %f393;
+ sub.f32 %f395, %f390, %f394;
+ add.f32 %f396, %f393, %f395;
+ mov.f32 %f397, 0f3F317200;
+ mul.rn.f32 %f398, %f373, %f397;
+ mov.f32 %f399, 0f35BFBE8E;
+ mul.rn.f32 %f400, %f373, %f399;
+ add.f32 %f401, %f398, %f394;
+ sub.f32 %f402, %f398, %f401;
+ add.f32 %f403, %f394, %f402;
+ add.f32 %f404, %f396, %f403;
+ add.f32 %f405, %f400, %f404;
+ add.f32 %f406, %f401, %f405;
+ sub.f32 %f407, %f401, %f406;
+ add.f32 %f408, %f405, %f407;
+ mul.rn.f32 %f65, %f328, %f406;
+ neg.f32 %f410, %f65;
+ fma.rn.f32 %f411, %f328, %f406, %f410;
+ fma.rn.f32 %f412, %f328, %f408, %f411;
+ fma.rn.f32 %f66, %f324, %f406, %f412;
+ add.rn.f32 %f67, %f65, %f66;
+ mov.b32 %r57, %f67;
+ setp.eq.s32 %p1, %r57, 1118925336;
+ add.s32 %r58, %r57, -1;
+ mov.b32 %f414, %r58;
+ selp.f32 %f415, %f414, %f67, %p1;
+ mul.f32 %f416, %f415, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f417, %f416;
+ mov.f32 %f418, 0fBF317200;
+ fma.rn.f32 %f419, %f417, %f418, %f415;
+ mov.f32 %f420, 0fB5BFBE8E;
+ fma.rn.f32 %f421, %f417, %f420, %f419;
+ mul.f32 %f422, %f421, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f423, %f422;
+ add.f32 %f424, %f417, 0f00000000;
+ ex2.approx.f32 %f425, %f424;
+ mul.f32 %f426, %f423, %f425;
+ setp.lt.f32 %p17, %f415, 0fC2D20000;
+ selp.f32 %f427, 0f00000000, %f426, %p17;
+ setp.gt.f32 %p18, %f415, 0f42D20000;
+ selp.f32 %f1323, 0f7F800000, %f427, %p18;
+ setp.eq.f32 %p19, %f1323, 0f7F800000;
+ @%p19 bra BB0_7;
+
+ neg.f32 %f428, %f67;
+ add.rn.f32 %f429, %f65, %f428;
+ add.rn.f32 %f430, %f429, %f66;
+ add.f32 %f431, %f430, 0f37000000;
+ selp.f32 %f432, %f431, %f430, %p1;
+ fma.rn.f32 %f1323, %f1323, %f432, %f1323;
+
+BB0_7:
+ setp.lt.f32 %p20, %f63, 0f00000000;
+ setp.eq.f32 %p21, %f13, 0f3F800000;
+ and.pred %p2, %p20, %p21;
+ mov.b32 %r59, %f1323;
+ xor.b32 %r60, %r59, -2147483648;
+ mov.b32 %f433, %r60;
+ selp.f32 %f1325, %f433, %f1323, %p2;
+ setp.eq.f32 %p22, %f63, 0f00000000;
+ @%p22 bra BB0_10;
+ bra.uni BB0_8;
+
+BB0_10:
+ add.f32 %f436, %f63, %f63;
+ selp.f32 %f1325, %f436, 0f00000000, %p21;
+ bra.uni BB0_11;
+
+BB0_8:
+ setp.geu.f32 %p23, %f63, 0f00000000;
+ @%p23 bra BB0_11;
+
+ cvt.rzi.f32.f32 %f435, %f328;
+ setp.neu.f32 %p24, %f435, 0f40800000;
+ selp.f32 %f1325, 0f7FFFFFFF, %f1325, %p24;
+
+BB0_11:
+ add.f32 %f437, %f64, 0f40800000;
+ mov.b32 %r61, %f437;
+ setp.lt.s32 %p26, %r61, 2139095040;
+ @%p26 bra BB0_16;
+
+ setp.gtu.f32 %p27, %f64, 0f7F800000;
+ @%p27 bra BB0_15;
+ bra.uni BB0_13;
+
+BB0_15:
+ add.f32 %f1325, %f63, 0f40800000;
+ bra.uni BB0_16;
+
+BB0_13:
+ setp.neu.f32 %p28, %f64, 0f7F800000;
+ @%p28 bra BB0_16;
+
+ selp.f32 %f1325, 0fFF800000, 0f7F800000, %p2;
+
+BB0_16:
+ mul.f32 %f438, %f59, %f349;
+ mov.f32 %f1350, 0f3F800000;
+ sub.f32 %f440, %f1350, %f1325;
+ setp.eq.f32 %p29, %f63, 0f3F800000;
+ selp.f32 %f441, 0f00000000, %f440, %p29;
+ cvt.sat.f32.f32 %f442, %f441;
+ fma.rn.f32 %f443, %f438, %f438, %f350;
+ div.rn.f32 %f1329, %f442, %f443;
+ mul.f32 %f444, %f1305, %f61;
+ fma.rn.f32 %f445, %f1304, %f60, %f444;
+ fma.rn.f32 %f446, %f1306, %f62, %f445;
+ ld.global.u32 %r62, [ignoreNormal];
+ setp.eq.s32 %p30, %r62, 0;
+ selp.f32 %f94, %f446, 0f3F800000, %p30;
+ mul.f32 %f447, %f94, 0f40800000;
+ cvt.sat.f32.f32 %f95, %f447;
+ setp.eq.f32 %p31, %f352, 0f3F800000;
+ @%p31 bra BB0_22;
+ bra.uni BB0_17;
+
+BB0_22:
+ setp.leu.f32 %p35, %f347, 0f00000000;
+ @%p35 bra BB0_24;
+
+ mul.f32 %f478, %f332, %f60;
+ mul.f32 %f479, %f333, %f61;
+ neg.f32 %f480, %f479;
+ sub.f32 %f481, %f480, %f478;
+ mul.f32 %f482, %f334, %f62;
+ sub.f32 %f483, %f481, %f482;
+ setp.gt.f32 %p36, %f483, 0f00000000;
+ selp.f32 %f484, 0f3F800000, 0f00000000, %p36;
+ mul.f32 %f485, %f341, %f61;
+ fma.rn.f32 %f486, %f340, %f60, %f485;
+ mul.f32 %f487, %f337, %f61;
+ fma.rn.f32 %f488, %f336, %f60, %f487;
+ fma.rn.f32 %f489, %f342, %f62, %f486;
+ fma.rn.f32 %f490, %f338, %f62, %f488;
+ fma.rn.f32 %f474, %f343, %f489, 0f3F000000;
+ fma.rn.f32 %f475, %f343, %f490, 0f3F000000;
+ cvt.rzi.s32.f32 %r66, %f347;
+ mov.f32 %f477, 0f00000000;
+ // inline asm
+ call (%f470, %f471, %f472, %f473), _rt_texture_get_f_id, (%r66, %r27, %f474, %f475, %f477, %f477);
+ // inline asm
+ mul.f32 %f491, %f484, %f470;
+ mul.f32 %f492, %f484, %f471;
+ mul.f32 %f493, %f484, %f472;
+ mul.f32 %f1326, %f1326, %f491;
+ mul.f32 %f1327, %f1327, %f492;
+ mul.f32 %f1328, %f1328, %f493;
+ bra.uni BB0_24;
+
+BB0_17:
+ setp.eq.f32 %p32, %f352, 0f40000000;
+ @%p32 bra BB0_20;
+ bra.uni BB0_18;
+
+BB0_20:
+ setp.leu.f32 %p34, %f347, 0f00000000;
+ @%p34 bra BB0_24;
+
+ mul.f32 %f464, %f341, %f61;
+ fma.rn.f32 %f465, %f340, %f60, %f464;
+ mul.f32 %f466, %f337, %f61;
+ fma.rn.f32 %f467, %f336, %f60, %f466;
+ mul.f32 %f468, %f333, %f61;
+ fma.rn.f32 %f469, %f332, %f60, %f468;
+ fma.rn.f32 %f461, %f342, %f62, %f465;
+ fma.rn.f32 %f462, %f338, %f62, %f467;
+ fma.rn.f32 %f463, %f334, %f62, %f469;
+ cvt.rzi.s32.f32 %r63, %f347;
+ mov.u32 %r64, 6;
+ mov.u32 %r65, 0;
+ // inline asm
+ call (%f457, %f458, %f459, %f460), _rt_texture_get_base_id, (%r63, %r64, %f461, %f462, %f463, %r65);
+ // inline asm
+ mul.f32 %f1326, %f1326, %f457;
+ mul.f32 %f1327, %f1327, %f458;
+ mul.f32 %f1328, %f1328, %f459;
+ bra.uni BB0_24;
+
+BB0_18:
+ setp.neu.f32 %p33, %f352, 0f40800000;
+ @%p33 bra BB0_24;
+
+ mul.f32 %f448, %f332, %f60;
+ mul.f32 %f449, %f333, %f61;
+ neg.f32 %f450, %f449;
+ sub.f32 %f451, %f450, %f448;
+ mul.f32 %f452, %f334, %f62;
+ sub.f32 %f453, %f451, %f452;
+ fma.rn.f32 %f454, %f347, %f453, %f343;
+ cvt.sat.f32.f32 %f455, %f454;
+ mul.f32 %f456, %f455, %f455;
+ mul.f32 %f1329, %f1329, %f456;
+
+BB0_24:
+ max.f32 %f509, %f1326, %f1327;
+ max.f32 %f510, %f509, %f1328;
+ mul.f32 %f511, %f95, %f1329;
+ mul.f32 %f512, %f511, %f510;
+ setp.lt.f32 %p38, %f512, 0f3727C5AC;
+ mov.pred %p135, -1;
+ mov.f32 %f1330, 0f00000000;
+ mov.f32 %f1331, %f1330;
+ mov.f32 %f1332, %f1330;
+ mov.f32 %f1333, %f1330;
+ mov.f32 %f1334, %f1330;
+ mov.f32 %f1335, %f1330;
+ mov.f32 %f1336, %f1330;
+ mov.f32 %f1337, %f1330;
+ mov.f32 %f1338, %f1330;
+ mov.f32 %f1339, %f1330;
+ mov.f32 %f1340, %f1330;
+ mov.f32 %f1341, %f1330;
+ mov.f32 %f1342, %f1330;
+ mov.f32 %f1343, %f1330;
+ mov.f32 %f1344, %f1330;
+ @%p38 bra BB0_26;
+
+ cvt.sat.f32.f32 %f513, %f94;
+ mul.f32 %f514, %f1329, %f513;
+ mul.f32 %f1330, %f1326, %f514;
+ mul.f32 %f1331, %f1327, %f514;
+ mul.f32 %f1332, %f1328, %f514;
+ mul.f32 %f515, %f1329, 0f3E800000;
+ mul.f32 %f516, %f95, %f515;
+ mul.f32 %f1333, %f1326, %f516;
+ mul.f32 %f1334, %f1327, %f516;
+ mul.f32 %f1335, %f1328, %f516;
+ mul.f32 %f1336, %f60, %f1333;
+ mul.f32 %f1337, %f60, %f1334;
+ mul.f32 %f1338, %f60, %f1335;
+ mul.f32 %f1339, %f61, %f1333;
+ mul.f32 %f1340, %f61, %f1334;
+ mul.f32 %f1341, %f61, %f1335;
+ mul.f32 %f1342, %f62, %f1333;
+ mul.f32 %f1343, %f62, %f1334;
+ mul.f32 %f1344, %f62, %f1335;
+ mov.pred %p135, 0;
+
+BB0_26:
+ @%p135 bra BB0_39;
+
+ setp.eq.s32 %p40, %r6, 0;
+ @%p40 bra BB0_38;
+
+ mov.f32 %f1349, 0f00000000;
+ setp.lt.s32 %p41, %r6, 1;
+ @%p41 bra BB0_37;
+
+ max.f32 %f138, %f524, %f305;
+ and.b32 %r8, %r6, 3;
+ setp.eq.s32 %p42, %r8, 0;
+ add.u64 %rd35, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd35;
+ mov.f32 %f1349, 0f00000000;
+ mov.u32 %r243, 0;
+ @%p42 bra BB0_35;
+
+ setp.eq.s32 %p43, %r8, 1;
+ mov.f32 %f1346, 0f00000000;
+ mov.u32 %r241, 0;
+ @%p43 bra BB0_34;
+
+ setp.eq.s32 %p44, %r8, 2;
+ mov.f32 %f1345, 0f00000000;
+ mov.u32 %r240, 0;
+ @%p44 bra BB0_33;
+
+ sub.f32 %f536, %f353, %f348;
+ sub.f32 %f537, %f354, %f348;
+ sub.f32 %f538, %f355, %f348;
+ sub.f32 %f539, %f536, %f7;
+ sub.f32 %f540, %f537, %f8;
+ sub.f32 %f541, %f538, %f9;
+ mul.f32 %f542, %f540, %f540;
+ fma.rn.f32 %f543, %f539, %f539, %f542;
+ fma.rn.f32 %f544, %f541, %f541, %f543;
+ sqrt.rn.f32 %f535, %f544;
+ rcp.rn.f32 %f545, %f535;
+ mul.f32 %f531, %f545, %f539;
+ mul.f32 %f532, %f545, %f540;
+ mul.f32 %f533, %f545, %f541;
+ ld.global.u32 %r75, [imageEnabled];
+ and.b32 %r76, %r75, 32;
+ setp.eq.s32 %p45, %r76, 0;
+ selp.f32 %f546, 0f3F800000, 0f41200000, %p45;
+ mul.f32 %f534, %f546, %f138;
+ mov.u32 %r77, 1065353216;
+ st.local.u32 [%rd2], %r77;
+ ld.global.u32 %r71, [root];
+ // inline asm
+ call _rt_trace_64, (%r71, %f10, %f11, %f12, %f531, %f532, %f533, %r44, %f534, %f535, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f547, [%rd2];
+ add.f32 %f1345, %f547, 0f00000000;
+ mov.u32 %r240, %r44;
+
+BB0_33:
+ cvt.rn.f32.s32 %f556, %r240;
+ mul.f32 %f557, %f556, 0f3DD32618;
+ cvt.rmi.f32.f32 %f558, %f557;
+ sub.f32 %f559, %f557, %f558;
+ mul.f32 %f560, %f556, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f561, %f560;
+ sub.f32 %f562, %f560, %f561;
+ mul.f32 %f563, %f556, 0f3DC74539;
+ cvt.rmi.f32.f32 %f564, %f563;
+ sub.f32 %f565, %f563, %f564;
+ add.f32 %f566, %f562, 0f4199851F;
+ add.f32 %f567, %f565, 0f4199851F;
+ add.f32 %f568, %f559, 0f4199851F;
+ mul.f32 %f569, %f562, %f567;
+ fma.rn.f32 %f570, %f559, %f566, %f569;
+ fma.rn.f32 %f571, %f568, %f565, %f570;
+ add.f32 %f572, %f559, %f571;
+ add.f32 %f573, %f562, %f571;
+ add.f32 %f574, %f565, %f571;
+ add.f32 %f575, %f572, %f573;
+ mul.f32 %f576, %f574, %f575;
+ cvt.rmi.f32.f32 %f577, %f576;
+ sub.f32 %f578, %f576, %f577;
+ add.f32 %f579, %f572, %f574;
+ mul.f32 %f580, %f573, %f579;
+ cvt.rmi.f32.f32 %f581, %f580;
+ sub.f32 %f582, %f580, %f581;
+ add.f32 %f583, %f573, %f574;
+ mul.f32 %f584, %f572, %f583;
+ cvt.rmi.f32.f32 %f585, %f584;
+ sub.f32 %f586, %f584, %f585;
+ fma.rn.f32 %f587, %f578, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f588, %f582, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f589, %f586, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f590, %f348, %f587, %f353;
+ fma.rn.f32 %f591, %f348, %f588, %f354;
+ fma.rn.f32 %f592, %f348, %f589, %f355;
+ sub.f32 %f593, %f590, %f7;
+ sub.f32 %f594, %f591, %f8;
+ sub.f32 %f595, %f592, %f9;
+ mul.f32 %f596, %f594, %f594;
+ fma.rn.f32 %f597, %f593, %f593, %f596;
+ fma.rn.f32 %f598, %f595, %f595, %f597;
+ sqrt.rn.f32 %f555, %f598;
+ rcp.rn.f32 %f599, %f555;
+ mul.f32 %f551, %f599, %f593;
+ mul.f32 %f552, %f599, %f594;
+ mul.f32 %f553, %f599, %f595;
+ ld.global.u32 %r81, [imageEnabled];
+ and.b32 %r82, %r81, 32;
+ setp.eq.s32 %p46, %r82, 0;
+ selp.f32 %f600, 0f3F800000, 0f41200000, %p46;
+ mul.f32 %f554, %f600, %f138;
+ mov.u32 %r83, 1065353216;
+ st.local.u32 [%rd2], %r83;
+ ld.global.u32 %r78, [root];
+ // inline asm
+ call _rt_trace_64, (%r78, %f10, %f11, %f12, %f551, %f552, %f553, %r44, %f554, %f555, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f601, [%rd2];
+ add.f32 %f1346, %f1345, %f601;
+ add.s32 %r241, %r240, 1;
+
+BB0_34:
+ cvt.rn.f32.s32 %f610, %r241;
+ mul.f32 %f611, %f610, 0f3DD32618;
+ cvt.rmi.f32.f32 %f612, %f611;
+ sub.f32 %f613, %f611, %f612;
+ mul.f32 %f614, %f610, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f615, %f614;
+ sub.f32 %f616, %f614, %f615;
+ mul.f32 %f617, %f610, 0f3DC74539;
+ cvt.rmi.f32.f32 %f618, %f617;
+ sub.f32 %f619, %f617, %f618;
+ add.f32 %f620, %f616, 0f4199851F;
+ add.f32 %f621, %f619, 0f4199851F;
+ add.f32 %f622, %f613, 0f4199851F;
+ mul.f32 %f623, %f616, %f621;
+ fma.rn.f32 %f624, %f613, %f620, %f623;
+ fma.rn.f32 %f625, %f622, %f619, %f624;
+ add.f32 %f626, %f613, %f625;
+ add.f32 %f627, %f616, %f625;
+ add.f32 %f628, %f619, %f625;
+ add.f32 %f629, %f626, %f627;
+ mul.f32 %f630, %f628, %f629;
+ cvt.rmi.f32.f32 %f631, %f630;
+ sub.f32 %f632, %f630, %f631;
+ add.f32 %f633, %f626, %f628;
+ mul.f32 %f634, %f627, %f633;
+ cvt.rmi.f32.f32 %f635, %f634;
+ sub.f32 %f636, %f634, %f635;
+ add.f32 %f637, %f627, %f628;
+ mul.f32 %f638, %f626, %f637;
+ cvt.rmi.f32.f32 %f639, %f638;
+ sub.f32 %f640, %f638, %f639;
+ fma.rn.f32 %f641, %f632, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f642, %f636, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f643, %f640, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f644, %f348, %f641, %f353;
+ fma.rn.f32 %f645, %f348, %f642, %f354;
+ fma.rn.f32 %f646, %f348, %f643, %f355;
+ sub.f32 %f647, %f644, %f7;
+ sub.f32 %f648, %f645, %f8;
+ sub.f32 %f649, %f646, %f9;
+ mul.f32 %f650, %f648, %f648;
+ fma.rn.f32 %f651, %f647, %f647, %f650;
+ fma.rn.f32 %f652, %f649, %f649, %f651;
+ sqrt.rn.f32 %f609, %f652;
+ rcp.rn.f32 %f653, %f609;
+ mul.f32 %f605, %f653, %f647;
+ mul.f32 %f606, %f653, %f648;
+ mul.f32 %f607, %f653, %f649;
+ ld.global.u32 %r87, [imageEnabled];
+ and.b32 %r88, %r87, 32;
+ setp.eq.s32 %p47, %r88, 0;
+ selp.f32 %f654, 0f3F800000, 0f41200000, %p47;
+ mul.f32 %f608, %f654, %f138;
+ mov.u32 %r89, 1065353216;
+ st.local.u32 [%rd2], %r89;
+ ld.global.u32 %r84, [root];
+ mov.u32 %r85, 1;
+ // inline asm
+ call _rt_trace_64, (%r84, %f10, %f11, %f12, %f605, %f606, %f607, %r85, %f608, %f609, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f655, [%rd2];
+ add.f32 %f1349, %f1346, %f655;
+ add.s32 %r243, %r241, 1;
+
+BB0_35:
+ setp.lt.u32 %p48, %r6, 4;
+ @%p48 bra BB0_37;
+
+BB0_36:
+ cvt.rn.f32.s32 %f688, %r243;
+ mul.f32 %f689, %f688, 0f3DD32618;
+ cvt.rmi.f32.f32 %f690, %f689;
+ sub.f32 %f691, %f689, %f690;
+ mul.f32 %f692, %f688, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f693, %f692;
+ sub.f32 %f694, %f692, %f693;
+ mul.f32 %f695, %f688, 0f3DC74539;
+ cvt.rmi.f32.f32 %f696, %f695;
+ sub.f32 %f697, %f695, %f696;
+ add.f32 %f698, %f694, 0f4199851F;
+ add.f32 %f699, %f697, 0f4199851F;
+ add.f32 %f700, %f691, 0f4199851F;
+ mul.f32 %f701, %f694, %f699;
+ fma.rn.f32 %f702, %f691, %f698, %f701;
+ fma.rn.f32 %f703, %f700, %f697, %f702;
+ add.f32 %f704, %f691, %f703;
+ add.f32 %f705, %f694, %f703;
+ add.f32 %f706, %f697, %f703;
+ add.f32 %f707, %f704, %f705;
+ mul.f32 %f708, %f706, %f707;
+ cvt.rmi.f32.f32 %f709, %f708;
+ sub.f32 %f710, %f708, %f709;
+ add.f32 %f711, %f704, %f706;
+ mul.f32 %f712, %f705, %f711;
+ cvt.rmi.f32.f32 %f713, %f712;
+ sub.f32 %f714, %f712, %f713;
+ add.f32 %f715, %f705, %f706;
+ mul.f32 %f716, %f704, %f715;
+ cvt.rmi.f32.f32 %f717, %f716;
+ sub.f32 %f718, %f716, %f717;
+ fma.rn.f32 %f719, %f710, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f720, %f714, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f721, %f718, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f722, %f348, %f719, %f353;
+ fma.rn.f32 %f723, %f348, %f720, %f354;
+ fma.rn.f32 %f724, %f348, %f721, %f355;
+ sub.f32 %f725, %f722, %f7;
+ sub.f32 %f726, %f723, %f8;
+ sub.f32 %f727, %f724, %f9;
+ mul.f32 %f728, %f726, %f726;
+ fma.rn.f32 %f729, %f725, %f725, %f728;
+ fma.rn.f32 %f730, %f727, %f727, %f729;
+ sqrt.rn.f32 %f663, %f730;
+ rcp.rn.f32 %f731, %f663;
+ mul.f32 %f659, %f731, %f725;
+ mul.f32 %f660, %f731, %f726;
+ mul.f32 %f661, %f731, %f727;
+ ld.global.u32 %r102, [imageEnabled];
+ and.b32 %r103, %r102, 32;
+ setp.eq.s32 %p49, %r103, 0;
+ selp.f32 %f732, 0f3F800000, 0f41200000, %p49;
+ mul.f32 %f662, %f732, %f138;
+ mov.u32 %r104, 1065353216;
+ st.local.u32 [%rd2], %r104;
+ ld.global.u32 %r90, [root];
+ mov.u32 %r100, 1;
+ // inline asm
+ call _rt_trace_64, (%r90, %f10, %f11, %f12, %f659, %f660, %f661, %r100, %f662, %f663, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f733, [%rd2];
+ add.f32 %f734, %f1349, %f733;
+ add.s32 %r105, %r243, 1;
+ cvt.rn.f32.s32 %f735, %r105;
+ mul.f32 %f736, %f735, 0f3DD32618;
+ cvt.rmi.f32.f32 %f737, %f736;
+ sub.f32 %f738, %f736, %f737;
+ mul.f32 %f739, %f735, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f740, %f739;
+ sub.f32 %f741, %f739, %f740;
+ mul.f32 %f742, %f735, 0f3DC74539;
+ cvt.rmi.f32.f32 %f743, %f742;
+ sub.f32 %f744, %f742, %f743;
+ add.f32 %f745, %f741, 0f4199851F;
+ add.f32 %f746, %f744, 0f4199851F;
+ add.f32 %f747, %f738, 0f4199851F;
+ mul.f32 %f748, %f741, %f746;
+ fma.rn.f32 %f749, %f738, %f745, %f748;
+ fma.rn.f32 %f750, %f747, %f744, %f749;
+ add.f32 %f751, %f738, %f750;
+ add.f32 %f752, %f741, %f750;
+ add.f32 %f753, %f744, %f750;
+ add.f32 %f754, %f751, %f752;
+ mul.f32 %f755, %f753, %f754;
+ cvt.rmi.f32.f32 %f756, %f755;
+ sub.f32 %f757, %f755, %f756;
+ add.f32 %f758, %f751, %f753;
+ mul.f32 %f759, %f752, %f758;
+ cvt.rmi.f32.f32 %f760, %f759;
+ sub.f32 %f761, %f759, %f760;
+ add.f32 %f762, %f752, %f753;
+ mul.f32 %f763, %f751, %f762;
+ cvt.rmi.f32.f32 %f764, %f763;
+ sub.f32 %f765, %f763, %f764;
+ fma.rn.f32 %f766, %f757, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f767, %f761, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f768, %f765, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f769, %f348, %f766, %f353;
+ fma.rn.f32 %f770, %f348, %f767, %f354;
+ fma.rn.f32 %f771, %f348, %f768, %f355;
+ sub.f32 %f772, %f769, %f7;
+ sub.f32 %f773, %f770, %f8;
+ sub.f32 %f774, %f771, %f9;
+ mul.f32 %f775, %f773, %f773;
+ fma.rn.f32 %f776, %f772, %f772, %f775;
+ fma.rn.f32 %f777, %f774, %f774, %f776;
+ sqrt.rn.f32 %f671, %f777;
+ rcp.rn.f32 %f778, %f671;
+ mul.f32 %f667, %f778, %f772;
+ mul.f32 %f668, %f778, %f773;
+ mul.f32 %f669, %f778, %f774;
+ ld.global.u32 %r106, [imageEnabled];
+ and.b32 %r107, %r106, 32;
+ setp.eq.s32 %p50, %r107, 0;
+ selp.f32 %f779, 0f3F800000, 0f41200000, %p50;
+ mul.f32 %f670, %f779, %f138;
+ st.local.u32 [%rd2], %r104;
+ ld.global.u32 %r93, [root];
+ // inline asm
+ call _rt_trace_64, (%r93, %f10, %f11, %f12, %f667, %f668, %f669, %r100, %f670, %f671, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f780, [%rd2];
+ add.f32 %f781, %f734, %f780;
+ add.s32 %r108, %r243, 2;
+ cvt.rn.f32.s32 %f782, %r108;
+ mul.f32 %f783, %f782, 0f3DD32618;
+ cvt.rmi.f32.f32 %f784, %f783;
+ sub.f32 %f785, %f783, %f784;
+ mul.f32 %f786, %f782, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f787, %f786;
+ sub.f32 %f788, %f786, %f787;
+ mul.f32 %f789, %f782, 0f3DC74539;
+ cvt.rmi.f32.f32 %f790, %f789;
+ sub.f32 %f791, %f789, %f790;
+ add.f32 %f792, %f788, 0f4199851F;
+ add.f32 %f793, %f791, 0f4199851F;
+ add.f32 %f794, %f785, 0f4199851F;
+ mul.f32 %f795, %f788, %f793;
+ fma.rn.f32 %f796, %f785, %f792, %f795;
+ fma.rn.f32 %f797, %f794, %f791, %f796;
+ add.f32 %f798, %f785, %f797;
+ add.f32 %f799, %f788, %f797;
+ add.f32 %f800, %f791, %f797;
+ add.f32 %f801, %f798, %f799;
+ mul.f32 %f802, %f800, %f801;
+ cvt.rmi.f32.f32 %f803, %f802;
+ sub.f32 %f804, %f802, %f803;
+ add.f32 %f805, %f798, %f800;
+ mul.f32 %f806, %f799, %f805;
+ cvt.rmi.f32.f32 %f807, %f806;
+ sub.f32 %f808, %f806, %f807;
+ add.f32 %f809, %f799, %f800;
+ mul.f32 %f810, %f798, %f809;
+ cvt.rmi.f32.f32 %f811, %f810;
+ sub.f32 %f812, %f810, %f811;
+ fma.rn.f32 %f813, %f804, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f814, %f808, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f815, %f812, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f816, %f348, %f813, %f353;
+ fma.rn.f32 %f817, %f348, %f814, %f354;
+ fma.rn.f32 %f818, %f348, %f815, %f355;
+ sub.f32 %f819, %f816, %f7;
+ sub.f32 %f820, %f817, %f8;
+ sub.f32 %f821, %f818, %f9;
+ mul.f32 %f822, %f820, %f820;
+ fma.rn.f32 %f823, %f819, %f819, %f822;
+ fma.rn.f32 %f824, %f821, %f821, %f823;
+ sqrt.rn.f32 %f679, %f824;
+ rcp.rn.f32 %f825, %f679;
+ mul.f32 %f675, %f825, %f819;
+ mul.f32 %f676, %f825, %f820;
+ mul.f32 %f677, %f825, %f821;
+ ld.global.u32 %r109, [imageEnabled];
+ and.b32 %r110, %r109, 32;
+ setp.eq.s32 %p51, %r110, 0;
+ selp.f32 %f826, 0f3F800000, 0f41200000, %p51;
+ mul.f32 %f678, %f826, %f138;
+ st.local.u32 [%rd2], %r104;
+ ld.global.u32 %r96, [root];
+ // inline asm
+ call _rt_trace_64, (%r96, %f10, %f11, %f12, %f675, %f676, %f677, %r100, %f678, %f679, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f827, [%rd2];
+ add.f32 %f828, %f781, %f827;
+ add.s32 %r111, %r243, 3;
+ cvt.rn.f32.s32 %f829, %r111;
+ mul.f32 %f830, %f829, 0f3DD32618;
+ cvt.rmi.f32.f32 %f831, %f830;
+ sub.f32 %f832, %f830, %f831;
+ mul.f32 %f833, %f829, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f834, %f833;
+ sub.f32 %f835, %f833, %f834;
+ mul.f32 %f836, %f829, 0f3DC74539;
+ cvt.rmi.f32.f32 %f837, %f836;
+ sub.f32 %f838, %f836, %f837;
+ add.f32 %f839, %f835, 0f4199851F;
+ add.f32 %f840, %f838, 0f4199851F;
+ add.f32 %f841, %f832, 0f4199851F;
+ mul.f32 %f842, %f835, %f840;
+ fma.rn.f32 %f843, %f832, %f839, %f842;
+ fma.rn.f32 %f844, %f841, %f838, %f843;
+ add.f32 %f845, %f832, %f844;
+ add.f32 %f846, %f835, %f844;
+ add.f32 %f847, %f838, %f844;
+ add.f32 %f848, %f845, %f846;
+ mul.f32 %f849, %f847, %f848;
+ cvt.rmi.f32.f32 %f850, %f849;
+ sub.f32 %f851, %f849, %f850;
+ add.f32 %f852, %f845, %f847;
+ mul.f32 %f853, %f846, %f852;
+ cvt.rmi.f32.f32 %f854, %f853;
+ sub.f32 %f855, %f853, %f854;
+ add.f32 %f856, %f846, %f847;
+ mul.f32 %f857, %f845, %f856;
+ cvt.rmi.f32.f32 %f858, %f857;
+ sub.f32 %f859, %f857, %f858;
+ fma.rn.f32 %f860, %f851, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f861, %f855, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f862, %f859, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f863, %f348, %f860, %f353;
+ fma.rn.f32 %f864, %f348, %f861, %f354;
+ fma.rn.f32 %f865, %f348, %f862, %f355;
+ sub.f32 %f866, %f863, %f7;
+ sub.f32 %f867, %f864, %f8;
+ sub.f32 %f868, %f865, %f9;
+ mul.f32 %f869, %f867, %f867;
+ fma.rn.f32 %f870, %f866, %f866, %f869;
+ fma.rn.f32 %f871, %f868, %f868, %f870;
+ sqrt.rn.f32 %f687, %f871;
+ rcp.rn.f32 %f872, %f687;
+ mul.f32 %f683, %f872, %f866;
+ mul.f32 %f684, %f872, %f867;
+ mul.f32 %f685, %f872, %f868;
+ ld.global.u32 %r112, [imageEnabled];
+ and.b32 %r113, %r112, 32;
+ setp.eq.s32 %p52, %r113, 0;
+ selp.f32 %f873, 0f3F800000, 0f41200000, %p52;
+ mul.f32 %f686, %f873, %f138;
+ st.local.u32 [%rd2], %r104;
+ ld.global.u32 %r99, [root];
+ // inline asm
+ call _rt_trace_64, (%r99, %f10, %f11, %f12, %f683, %f684, %f685, %r100, %f686, %f687, %rd35, %r28);
+ // inline asm
+ ld.local.f32 %f874, [%rd2];
+ add.f32 %f1349, %f828, %f874;
+ add.s32 %r243, %r243, 4;
+ setp.lt.s32 %p53, %r243, %r6;
+ @%p53 bra BB0_36;
+
+BB0_37:
+ cvt.rn.f32.s32 %f875, %r6;
+ div.rn.f32 %f1350, %f1349, %f875;
+
+BB0_38:
+ fma.rn.f32 %f1322, %f1330, %f1350, %f1322;
+ fma.rn.f32 %f1321, %f1331, %f1350, %f1321;
+ fma.rn.f32 %f1320, %f1332, %f1350, %f1320;
+ fma.rn.f32 %f1319, %f1333, %f1350, %f1319;
+ fma.rn.f32 %f1318, %f1334, %f1350, %f1318;
+ fma.rn.f32 %f1317, %f1335, %f1350, %f1317;
+ fma.rn.f32 %f1316, %f1336, %f1350, %f1316;
+ fma.rn.f32 %f1315, %f1337, %f1350, %f1315;
+ fma.rn.f32 %f1314, %f1338, %f1350, %f1314;
+ fma.rn.f32 %f1313, %f1339, %f1350, %f1313;
+ fma.rn.f32 %f1312, %f1340, %f1350, %f1312;
+ fma.rn.f32 %f1311, %f1341, %f1350, %f1311;
+ fma.rn.f32 %f1310, %f1342, %f1350, %f1310;
+ fma.rn.f32 %f1309, %f1343, %f1350, %f1309;
+ fma.rn.f32 %f1308, %f1344, %f1350, %f1308;
+ add.f32 %f1307, %f1307, %f1350;
+
+BB0_39:
+ add.s32 %r239, %r239, 1;
+ setp.lt.u32 %p54, %r239, %r4;
+ @%p54 bra BB0_5;
+
+BB0_40:
+ ld.global.u32 %r245, [imageEnabled];
+ and.b32 %r114, %r245, 8;
+ setp.eq.s32 %p55, %r114, 0;
+ @%p55 bra BB0_53;
+
+ cvt.sat.f32.f32 %f198, %f1307;
+ cvt.u64.u32 %rd46, %r3;
+ cvt.u64.u32 %rd45, %r2;
+ mov.u64 %rd49, image_Mask;
+ cvta.global.u64 %rd44, %rd49;
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd44, %r27, %r27, %rd45, %rd46, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f878, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f879, %f878;
+ fma.rn.f32 %f880, %f879, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f199, %f880;
+ abs.f32 %f200, %f198;
+ setp.lt.f32 %p56, %f200, 0f00800000;
+ mul.f32 %f881, %f200, 0f4B800000;
+ selp.f32 %f882, 0fC3170000, 0fC2FE0000, %p56;
+ selp.f32 %f883, %f881, %f200, %p56;
+ mov.b32 %r117, %f883;
+ and.b32 %r118, %r117, 8388607;
+ or.b32 %r119, %r118, 1065353216;
+ mov.b32 %f884, %r119;
+ shr.u32 %r120, %r117, 23;
+ cvt.rn.f32.u32 %f885, %r120;
+ add.f32 %f886, %f882, %f885;
+ setp.gt.f32 %p57, %f884, 0f3FB504F3;
+ mul.f32 %f887, %f884, 0f3F000000;
+ add.f32 %f888, %f886, 0f3F800000;
+ selp.f32 %f889, %f887, %f884, %p57;
+ selp.f32 %f890, %f888, %f886, %p57;
+ add.f32 %f891, %f889, 0fBF800000;
+ add.f32 %f877, %f889, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f876,%f877;
+ // inline asm
+ add.f32 %f892, %f891, %f891;
+ mul.f32 %f893, %f876, %f892;
+ mul.f32 %f894, %f893, %f893;
+ mov.f32 %f895, 0f3C4CAF63;
+ mov.f32 %f896, 0f3B18F0FE;
+ fma.rn.f32 %f897, %f896, %f894, %f895;
+ mov.f32 %f898, 0f3DAAAABD;
+ fma.rn.f32 %f899, %f897, %f894, %f898;
+ mul.rn.f32 %f900, %f899, %f894;
+ mul.rn.f32 %f901, %f900, %f893;
+ sub.f32 %f902, %f891, %f893;
+ neg.f32 %f903, %f893;
+ add.f32 %f904, %f902, %f902;
+ fma.rn.f32 %f905, %f903, %f891, %f904;
+ mul.rn.f32 %f906, %f876, %f905;
+ add.f32 %f907, %f901, %f893;
+ sub.f32 %f908, %f893, %f907;
+ add.f32 %f909, %f901, %f908;
+ add.f32 %f910, %f906, %f909;
+ add.f32 %f911, %f907, %f910;
+ sub.f32 %f912, %f907, %f911;
+ add.f32 %f913, %f910, %f912;
+ mov.f32 %f914, 0f3F317200;
+ mul.rn.f32 %f915, %f890, %f914;
+ mov.f32 %f916, 0f35BFBE8E;
+ mul.rn.f32 %f917, %f890, %f916;
+ add.f32 %f918, %f915, %f911;
+ sub.f32 %f919, %f915, %f918;
+ add.f32 %f920, %f911, %f919;
+ add.f32 %f921, %f913, %f920;
+ add.f32 %f922, %f917, %f921;
+ add.f32 %f923, %f918, %f922;
+ sub.f32 %f924, %f918, %f923;
+ add.f32 %f925, %f922, %f924;
+ mov.f32 %f926, 0f3EE8BA2E;
+ mul.rn.f32 %f927, %f926, %f923;
+ neg.f32 %f928, %f927;
+ fma.rn.f32 %f929, %f926, %f923, %f928;
+ fma.rn.f32 %f930, %f926, %f925, %f929;
+ mov.f32 %f931, 0f00000000;
+ fma.rn.f32 %f932, %f931, %f923, %f930;
+ add.rn.f32 %f933, %f927, %f932;
+ neg.f32 %f934, %f933;
+ add.rn.f32 %f935, %f927, %f934;
+ add.rn.f32 %f936, %f935, %f932;
+ mov.b32 %r121, %f933;
+ setp.eq.s32 %p58, %r121, 1118925336;
+ add.s32 %r122, %r121, -1;
+ mov.b32 %f937, %r122;
+ add.f32 %f938, %f936, 0f37000000;
+ selp.f32 %f939, %f937, %f933, %p58;
+ selp.f32 %f201, %f938, %f936, %p58;
+ mul.f32 %f940, %f939, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f941, %f940;
+ mov.f32 %f942, 0fBF317200;
+ fma.rn.f32 %f943, %f941, %f942, %f939;
+ mov.f32 %f944, 0fB5BFBE8E;
+ fma.rn.f32 %f945, %f941, %f944, %f943;
+ mul.f32 %f946, %f945, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f947, %f946;
+ add.f32 %f948, %f941, 0f00000000;
+ ex2.approx.f32 %f949, %f948;
+ mul.f32 %f950, %f947, %f949;
+ setp.lt.f32 %p59, %f939, 0fC2D20000;
+ selp.f32 %f951, 0f00000000, %f950, %p59;
+ setp.gt.f32 %p60, %f939, 0f42D20000;
+ selp.f32 %f1383, 0f7F800000, %f951, %p60;
+ setp.eq.f32 %p61, %f1383, 0f7F800000;
+ @%p61 bra BB0_43;
+
+ fma.rn.f32 %f1383, %f1383, %f201, %f1383;
+
+BB0_43:
+ setp.lt.f32 %p62, %f198, 0f00000000;
+ setp.eq.f32 %p63, %f199, 0f3F800000;
+ and.pred %p4, %p62, %p63;
+ mov.b32 %r123, %f1383;
+ xor.b32 %r124, %r123, -2147483648;
+ mov.b32 %f952, %r124;
+ selp.f32 %f1385, %f952, %f1383, %p4;
+ setp.eq.f32 %p64, %f198, 0f00000000;
+ @%p64 bra BB0_46;
+ bra.uni BB0_44;
+
+BB0_46:
+ add.f32 %f955, %f198, %f198;
+ selp.f32 %f1385, %f955, 0f00000000, %p63;
+ bra.uni BB0_47;
+
+BB0_111:
+ mov.u64 %rd190, image_HDR;
+ cvta.global.u64 %rd185, %rd190;
+ mov.u32 %r210, 8;
+ // inline asm
+ call (%rd184), _rt_buffer_get_64, (%rd185, %r27, %r210, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1275, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f1275;}
+
+ // inline asm
+ mov.u16 %rs105, 0;
+ st.v4.u16 [%rd184], {%rs104, %rs104, %rs104, %rs105};
+
+BB0_112:
+ ld.global.u32 %r211, [additive];
+ setp.eq.s32 %p131, %r211, 0;
+ @%p131 bra BB0_114;
+
+ mov.u64 %rd203, image_RNM0;
+ cvta.global.u64 %rd192, %rd203;
+ mov.u32 %r215, 8;
+ // inline asm
+ call (%rd191), _rt_buffer_get_64, (%rd192, %r27, %r215, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd191];
+ // inline asm
+ { cvt.f32.f16 %f1276, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1277, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1278, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd197), _rt_buffer_get_64, (%rd192, %r27, %r215, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1279, %f1276, 0f00000000;
+ add.f32 %f1280, %f1277, 0f00000000;
+ add.f32 %f1281, %f1278, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f1281;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f1280;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f1279;}
+
+ // inline asm
+ mov.u16 %rs116, 0;
+ st.v4.u16 [%rd197], {%rs109, %rs110, %rs111, %rs116};
+ bra.uni BB0_115;
+
+BB0_114:
+ mov.u64 %rd210, image_RNM0;
+ cvta.global.u64 %rd205, %rd210;
+ mov.u32 %r217, 8;
+ // inline asm
+ call (%rd204), _rt_buffer_get_64, (%rd205, %r27, %r217, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1282, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f1282;}
+
+ // inline asm
+ mov.u16 %rs118, 0;
+ st.v4.u16 [%rd204], {%rs117, %rs117, %rs117, %rs118};
+
+BB0_115:
+ ld.global.u32 %r218, [additive];
+ setp.eq.s32 %p132, %r218, 0;
+ @%p132 bra BB0_117;
+
+ mov.u64 %rd223, image_RNM1;
+ cvta.global.u64 %rd212, %rd223;
+ mov.u32 %r222, 8;
+ // inline asm
+ call (%rd211), _rt_buffer_get_64, (%rd212, %r27, %r222, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs125, %rs126, %rs127, %rs128}, [%rd211];
+ // inline asm
+ { cvt.f32.f16 %f1283, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1284, %rs126;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1285, %rs127;}
+
+ // inline asm
+ // inline asm
+ call (%rd217), _rt_buffer_get_64, (%rd212, %r27, %r222, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1286, %f1283, 0f00000000;
+ add.f32 %f1287, %f1284, 0f00000000;
+ add.f32 %f1288, %f1285, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs124, %f1288;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f1287;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f1286;}
+
+ // inline asm
+ mov.u16 %rs129, 0;
+ st.v4.u16 [%rd217], {%rs122, %rs123, %rs124, %rs129};
+ bra.uni BB0_118;
+
+BB0_117:
+ mov.u64 %rd230, image_RNM1;
+ cvta.global.u64 %rd225, %rd230;
+ mov.u32 %r224, 8;
+ // inline asm
+ call (%rd224), _rt_buffer_get_64, (%rd225, %r27, %r224, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1289, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f1289;}
+
+ // inline asm
+ mov.u16 %rs131, 0;
+ st.v4.u16 [%rd224], {%rs130, %rs130, %rs130, %rs131};
+
+BB0_118:
+ ld.global.u32 %r225, [additive];
+ setp.eq.s32 %p133, %r225, 0;
+ @%p133 bra BB0_120;
+
+ mov.u64 %rd243, image_RNM2;
+ cvta.global.u64 %rd232, %rd243;
+ mov.u32 %r229, 8;
+ // inline asm
+ call (%rd231), _rt_buffer_get_64, (%rd232, %r27, %r229, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs138, %rs139, %rs140, %rs141}, [%rd231];
+ // inline asm
+ { cvt.f32.f16 %f1290, %rs138;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1291, %rs139;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1292, %rs140;}
+
+ // inline asm
+ // inline asm
+ call (%rd237), _rt_buffer_get_64, (%rd232, %r27, %r229, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1293, %f1290, 0f00000000;
+ add.f32 %f1294, %f1291, 0f00000000;
+ add.f32 %f1295, %f1292, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs137, %f1295;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs136, %f1294;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f1293;}
+
+ // inline asm
+ mov.u16 %rs142, 0;
+ st.v4.u16 [%rd237], {%rs135, %rs136, %rs137, %rs142};
+ bra.uni BB0_121;
+
+BB0_120:
+ mov.u64 %rd250, image_RNM2;
+ cvta.global.u64 %rd245, %rd250;
+ mov.u32 %r231, 8;
+ // inline asm
+ call (%rd244), _rt_buffer_get_64, (%rd245, %r27, %r231, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1296, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f1296;}
+
+ // inline asm
+ mov.u16 %rs144, 0;
+ st.v4.u16 [%rd244], {%rs143, %rs143, %rs143, %rs144};
+
+BB0_121:
+ ld.global.u32 %r232, [additive];
+ setp.eq.s32 %p134, %r232, 0;
+ @%p134 bra BB0_123;
+
+ mov.u64 %rd263, image_RNM3;
+ cvta.global.u64 %rd252, %rd263;
+ mov.u32 %r236, 8;
+ // inline asm
+ call (%rd251), _rt_buffer_get_64, (%rd252, %r27, %r236, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs151, %rs152, %rs153, %rs154}, [%rd251];
+ // inline asm
+ { cvt.f32.f16 %f1297, %rs151;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1298, %rs152;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1299, %rs153;}
+
+ // inline asm
+ // inline asm
+ call (%rd257), _rt_buffer_get_64, (%rd252, %r27, %r236, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1300, %f1297, 0f00000000;
+ add.f32 %f1301, %f1298, 0f00000000;
+ add.f32 %f1302, %f1299, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f1302;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs149, %f1301;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs148, %f1300;}
+
+ // inline asm
+ mov.u16 %rs155, 0;
+ st.v4.u16 [%rd257], {%rs148, %rs149, %rs150, %rs155};
+ bra.uni BB0_124;
+
+BB0_123:
+ mov.u64 %rd270, image_RNM3;
+ cvta.global.u64 %rd265, %rd270;
+ mov.u32 %r238, 8;
+ // inline asm
+ call (%rd264), _rt_buffer_get_64, (%rd265, %r27, %r238, %rd6, %rd7, %rd13, %rd13);
+ // inline asm
+ mov.f32 %f1303, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs156, %f1303;}
+
+ // inline asm
+ mov.u16 %rs157, 0;
+ st.v4.u16 [%rd264], {%rs156, %rs156, %rs156, %rs157};
+ bra.uni BB0_124;
+
+BB0_44:
+ setp.geu.f32 %p65, %f198, 0f00000000;
+ @%p65 bra BB0_47;
+
+ cvt.rzi.f32.f32 %f954, %f926;
+ setp.neu.f32 %p66, %f954, 0f3EE8BA2E;
+ selp.f32 %f1385, 0f7FFFFFFF, %f1385, %p66;
+
+BB0_47:
+ add.f32 %f956, %f200, 0f3EE8BA2E;
+ mov.b32 %r125, %f956;
+ setp.lt.s32 %p68, %r125, 2139095040;
+ @%p68 bra BB0_52;
+
+ setp.gtu.f32 %p69, %f200, 0f7F800000;
+ @%p69 bra BB0_51;
+ bra.uni BB0_49;
+
+BB0_51:
+ add.f32 %f1385, %f198, 0f3EE8BA2E;
+ bra.uni BB0_52;
+
+BB0_49:
+ setp.neu.f32 %p70, %f200, 0f7F800000;
+ @%p70 bra BB0_52;
+
+ selp.f32 %f1385, 0fFF800000, 0f7F800000, %p4;
+
+BB0_52:
+ mul.f32 %f957, %f1385, 0f437F0000;
+ setp.eq.f32 %p71, %f198, 0f3F800000;
+ selp.f32 %f958, 0f437F0000, %f957, %p71;
+ cvt.rzi.u32.f32 %r126, %f958;
+ cvt.u16.u32 %rs14, %r126;
+ mov.u16 %rs15, 255;
+ st.v2.u8 [%rd43], {%rs14, %rs15};
+ ld.global.u32 %r245, [imageEnabled];
+
+BB0_53:
+ and.b32 %r127, %r245, 1;
+ setp.eq.b32 %p72, %r127, 1;
+ @!%p72 bra BB0_88;
+ bra.uni BB0_54;
+
+BB0_54:
+ mov.f32 %f961, 0f3E666666;
+ cvt.rzi.f32.f32 %f962, %f961;
+ fma.rn.f32 %f963, %f962, 0fC0000000, 0f3EE66666;
+ abs.f32 %f212, %f963;
+ abs.f32 %f213, %f1322;
+ setp.lt.f32 %p73, %f213, 0f00800000;
+ mul.f32 %f964, %f213, 0f4B800000;
+ selp.f32 %f965, 0fC3170000, 0fC2FE0000, %p73;
+ selp.f32 %f966, %f964, %f213, %p73;
+ mov.b32 %r128, %f966;
+ and.b32 %r129, %r128, 8388607;
+ or.b32 %r130, %r129, 1065353216;
+ mov.b32 %f967, %r130;
+ shr.u32 %r131, %r128, 23;
+ cvt.rn.f32.u32 %f968, %r131;
+ add.f32 %f969, %f965, %f968;
+ setp.gt.f32 %p74, %f967, 0f3FB504F3;
+ mul.f32 %f970, %f967, 0f3F000000;
+ add.f32 %f971, %f969, 0f3F800000;
+ selp.f32 %f972, %f970, %f967, %p74;
+ selp.f32 %f973, %f971, %f969, %p74;
+ add.f32 %f974, %f972, 0fBF800000;
+ add.f32 %f960, %f972, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f959,%f960;
+ // inline asm
+ add.f32 %f975, %f974, %f974;
+ mul.f32 %f976, %f959, %f975;
+ mul.f32 %f977, %f976, %f976;
+ mov.f32 %f978, 0f3C4CAF63;
+ mov.f32 %f979, 0f3B18F0FE;
+ fma.rn.f32 %f980, %f979, %f977, %f978;
+ mov.f32 %f981, 0f3DAAAABD;
+ fma.rn.f32 %f982, %f980, %f977, %f981;
+ mul.rn.f32 %f983, %f982, %f977;
+ mul.rn.f32 %f984, %f983, %f976;
+ sub.f32 %f985, %f974, %f976;
+ neg.f32 %f986, %f976;
+ add.f32 %f987, %f985, %f985;
+ fma.rn.f32 %f988, %f986, %f974, %f987;
+ mul.rn.f32 %f989, %f959, %f988;
+ add.f32 %f990, %f984, %f976;
+ sub.f32 %f991, %f976, %f990;
+ add.f32 %f992, %f984, %f991;
+ add.f32 %f993, %f989, %f992;
+ add.f32 %f994, %f990, %f993;
+ sub.f32 %f995, %f990, %f994;
+ add.f32 %f996, %f993, %f995;
+ mov.f32 %f997, 0f3F317200;
+ mul.rn.f32 %f998, %f973, %f997;
+ mov.f32 %f999, 0f35BFBE8E;
+ mul.rn.f32 %f1000, %f973, %f999;
+ add.f32 %f1001, %f998, %f994;
+ sub.f32 %f1002, %f998, %f1001;
+ add.f32 %f1003, %f994, %f1002;
+ add.f32 %f1004, %f996, %f1003;
+ add.f32 %f1005, %f1000, %f1004;
+ add.f32 %f1006, %f1001, %f1005;
+ sub.f32 %f1007, %f1001, %f1006;
+ add.f32 %f1008, %f1005, %f1007;
+ mov.f32 %f1009, 0f3EE66666;
+ mul.rn.f32 %f1010, %f1009, %f1006;
+ neg.f32 %f1011, %f1010;
+ fma.rn.f32 %f1012, %f1009, %f1006, %f1011;
+ fma.rn.f32 %f1013, %f1009, %f1008, %f1012;
+ mov.f32 %f1014, 0f00000000;
+ fma.rn.f32 %f1015, %f1014, %f1006, %f1013;
+ add.rn.f32 %f1016, %f1010, %f1015;
+ neg.f32 %f1017, %f1016;
+ add.rn.f32 %f1018, %f1010, %f1017;
+ add.rn.f32 %f1019, %f1018, %f1015;
+ mov.b32 %r132, %f1016;
+ setp.eq.s32 %p75, %r132, 1118925336;
+ add.s32 %r133, %r132, -1;
+ mov.b32 %f1020, %r133;
+ add.f32 %f1021, %f1019, 0f37000000;
+ selp.f32 %f1022, %f1020, %f1016, %p75;
+ selp.f32 %f214, %f1021, %f1019, %p75;
+ mul.f32 %f1023, %f1022, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1024, %f1023;
+ mov.f32 %f1025, 0fBF317200;
+ fma.rn.f32 %f1026, %f1024, %f1025, %f1022;
+ mov.f32 %f1027, 0fB5BFBE8E;
+ fma.rn.f32 %f1028, %f1024, %f1027, %f1026;
+ mul.f32 %f1029, %f1028, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1030, %f1029;
+ add.f32 %f1031, %f1024, 0f00000000;
+ ex2.approx.f32 %f1032, %f1031;
+ mul.f32 %f1033, %f1030, %f1032;
+ setp.lt.f32 %p76, %f1022, 0fC2D20000;
+ selp.f32 %f1034, 0f00000000, %f1033, %p76;
+ setp.gt.f32 %p77, %f1022, 0f42D20000;
+ selp.f32 %f1386, 0f7F800000, %f1034, %p77;
+ setp.eq.f32 %p78, %f1386, 0f7F800000;
+ @%p78 bra BB0_56;
+
+ fma.rn.f32 %f1386, %f1386, %f214, %f1386;
+
+BB0_56:
+ setp.lt.f32 %p79, %f1322, 0f00000000;
+ setp.eq.f32 %p80, %f212, 0f3F800000;
+ and.pred %p5, %p79, %p80;
+ mov.b32 %r134, %f1386;
+ xor.b32 %r135, %r134, -2147483648;
+ mov.b32 %f1035, %r135;
+ selp.f32 %f1388, %f1035, %f1386, %p5;
+ setp.eq.f32 %p81, %f1322, 0f00000000;
+ @%p81 bra BB0_59;
+ bra.uni BB0_57;
+
+BB0_59:
+ add.f32 %f1038, %f1322, %f1322;
+ selp.f32 %f1388, %f1038, 0f00000000, %p80;
+ bra.uni BB0_60;
+
+BB0_57:
+ setp.geu.f32 %p82, %f1322, 0f00000000;
+ @%p82 bra BB0_60;
+
+ cvt.rzi.f32.f32 %f1037, %f1009;
+ setp.neu.f32 %p83, %f1037, 0f3EE66666;
+ selp.f32 %f1388, 0f7FFFFFFF, %f1388, %p83;
+
+BB0_60:
+ add.f32 %f1039, %f213, 0f3EE66666;
+ mov.b32 %r136, %f1039;
+ setp.lt.s32 %p85, %r136, 2139095040;
+ @%p85 bra BB0_65;
+
+ setp.gtu.f32 %p86, %f213, 0f7F800000;
+ @%p86 bra BB0_64;
+ bra.uni BB0_62;
+
+BB0_64:
+ add.f32 %f1388, %f1322, 0f3EE66666;
+ bra.uni BB0_65;
+
+BB0_62:
+ setp.neu.f32 %p87, %f213, 0f7F800000;
+ @%p87 bra BB0_65;
+
+ selp.f32 %f1388, 0fFF800000, 0f7F800000, %p5;
+
+BB0_65:
+ setp.eq.f32 %p88, %f1322, 0f3F800000;
+ selp.f32 %f225, 0f3F800000, %f1388, %p88;
+ abs.f32 %f226, %f1321;
+ setp.lt.f32 %p89, %f226, 0f00800000;
+ mul.f32 %f1042, %f226, 0f4B800000;
+ selp.f32 %f1043, 0fC3170000, 0fC2FE0000, %p89;
+ selp.f32 %f1044, %f1042, %f226, %p89;
+ mov.b32 %r137, %f1044;
+ and.b32 %r138, %r137, 8388607;
+ or.b32 %r139, %r138, 1065353216;
+ mov.b32 %f1045, %r139;
+ shr.u32 %r140, %r137, 23;
+ cvt.rn.f32.u32 %f1046, %r140;
+ add.f32 %f1047, %f1043, %f1046;
+ setp.gt.f32 %p90, %f1045, 0f3FB504F3;
+ mul.f32 %f1048, %f1045, 0f3F000000;
+ add.f32 %f1049, %f1047, 0f3F800000;
+ selp.f32 %f1050, %f1048, %f1045, %p90;
+ selp.f32 %f1051, %f1049, %f1047, %p90;
+ add.f32 %f1052, %f1050, 0fBF800000;
+ add.f32 %f1041, %f1050, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f1040,%f1041;
+ // inline asm
+ add.f32 %f1053, %f1052, %f1052;
+ mul.f32 %f1054, %f1040, %f1053;
+ mul.f32 %f1055, %f1054, %f1054;
+ fma.rn.f32 %f1058, %f979, %f1055, %f978;
+ fma.rn.f32 %f1060, %f1058, %f1055, %f981;
+ mul.rn.f32 %f1061, %f1060, %f1055;
+ mul.rn.f32 %f1062, %f1061, %f1054;
+ sub.f32 %f1063, %f1052, %f1054;
+ neg.f32 %f1064, %f1054;
+ add.f32 %f1065, %f1063, %f1063;
+ fma.rn.f32 %f1066, %f1064, %f1052, %f1065;
+ mul.rn.f32 %f1067, %f1040, %f1066;
+ add.f32 %f1068, %f1062, %f1054;
+ sub.f32 %f1069, %f1054, %f1068;
+ add.f32 %f1070, %f1062, %f1069;
+ add.f32 %f1071, %f1067, %f1070;
+ add.f32 %f1072, %f1068, %f1071;
+ sub.f32 %f1073, %f1068, %f1072;
+ add.f32 %f1074, %f1071, %f1073;
+ mul.rn.f32 %f1076, %f1051, %f997;
+ mul.rn.f32 %f1078, %f1051, %f999;
+ add.f32 %f1079, %f1076, %f1072;
+ sub.f32 %f1080, %f1076, %f1079;
+ add.f32 %f1081, %f1072, %f1080;
+ add.f32 %f1082, %f1074, %f1081;
+ add.f32 %f1083, %f1078, %f1082;
+ add.f32 %f1084, %f1079, %f1083;
+ sub.f32 %f1085, %f1079, %f1084;
+ add.f32 %f1086, %f1083, %f1085;
+ mul.rn.f32 %f1088, %f1009, %f1084;
+ neg.f32 %f1089, %f1088;
+ fma.rn.f32 %f1090, %f1009, %f1084, %f1089;
+ fma.rn.f32 %f1091, %f1009, %f1086, %f1090;
+ fma.rn.f32 %f1093, %f1014, %f1084, %f1091;
+ add.rn.f32 %f1094, %f1088, %f1093;
+ neg.f32 %f1095, %f1094;
+ add.rn.f32 %f1096, %f1088, %f1095;
+ add.rn.f32 %f1097, %f1096, %f1093;
+ mov.b32 %r141, %f1094;
+ setp.eq.s32 %p91, %r141, 1118925336;
+ add.s32 %r142, %r141, -1;
+ mov.b32 %f1098, %r142;
+ add.f32 %f1099, %f1097, 0f37000000;
+ selp.f32 %f1100, %f1098, %f1094, %p91;
+ selp.f32 %f227, %f1099, %f1097, %p91;
+ mul.f32 %f1101, %f1100, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1102, %f1101;
+ fma.rn.f32 %f1104, %f1102, %f1025, %f1100;
+ fma.rn.f32 %f1106, %f1102, %f1027, %f1104;
+ mul.f32 %f1107, %f1106, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1108, %f1107;
+ add.f32 %f1109, %f1102, 0f00000000;
+ ex2.approx.f32 %f1110, %f1109;
+ mul.f32 %f1111, %f1108, %f1110;
+ setp.lt.f32 %p92, %f1100, 0fC2D20000;
+ selp.f32 %f1112, 0f00000000, %f1111, %p92;
+ setp.gt.f32 %p93, %f1100, 0f42D20000;
+ selp.f32 %f1389, 0f7F800000, %f1112, %p93;
+ setp.eq.f32 %p94, %f1389, 0f7F800000;
+ @%p94 bra BB0_67;
+
+ fma.rn.f32 %f1389, %f1389, %f227, %f1389;
+
+BB0_67:
+ setp.lt.f32 %p95, %f1321, 0f00000000;
+ and.pred %p6, %p95, %p80;
+ mov.b32 %r143, %f1389;
+ xor.b32 %r144, %r143, -2147483648;
+ mov.b32 %f1113, %r144;
+ selp.f32 %f1391, %f1113, %f1389, %p6;
+ setp.eq.f32 %p97, %f1321, 0f00000000;
+ @%p97 bra BB0_70;
+ bra.uni BB0_68;
+
+BB0_70:
+ add.f32 %f1116, %f1321, %f1321;
+ selp.f32 %f1391, %f1116, 0f00000000, %p80;
+ bra.uni BB0_71;
+
+BB0_68:
+ setp.geu.f32 %p98, %f1321, 0f00000000;
+ @%p98 bra BB0_71;
+
+ cvt.rzi.f32.f32 %f1115, %f1009;
+ setp.neu.f32 %p99, %f1115, 0f3EE66666;
+ selp.f32 %f1391, 0f7FFFFFFF, %f1391, %p99;
+
+BB0_71:
+ add.f32 %f1117, %f226, 0f3EE66666;
+ mov.b32 %r145, %f1117;
+ setp.lt.s32 %p101, %r145, 2139095040;
+ @%p101 bra BB0_76;
+
+ setp.gtu.f32 %p102, %f226, 0f7F800000;
+ @%p102 bra BB0_75;
+ bra.uni BB0_73;
+
+BB0_75:
+ add.f32 %f1391, %f1321, 0f3EE66666;
+ bra.uni BB0_76;
+
+BB0_73:
+ setp.neu.f32 %p103, %f226, 0f7F800000;
+ @%p103 bra BB0_76;
+
+ selp.f32 %f1391, 0fFF800000, 0f7F800000, %p6;
+
+BB0_76:
+ setp.eq.f32 %p104, %f1321, 0f3F800000;
+ selp.f32 %f238, 0f3F800000, %f1391, %p104;
+ abs.f32 %f239, %f1320;
+ setp.lt.f32 %p105, %f239, 0f00800000;
+ mul.f32 %f1120, %f239, 0f4B800000;
+ selp.f32 %f1121, 0fC3170000, 0fC2FE0000, %p105;
+ selp.f32 %f1122, %f1120, %f239, %p105;
+ mov.b32 %r146, %f1122;
+ and.b32 %r147, %r146, 8388607;
+ or.b32 %r148, %r147, 1065353216;
+ mov.b32 %f1123, %r148;
+ shr.u32 %r149, %r146, 23;
+ cvt.rn.f32.u32 %f1124, %r149;
+ add.f32 %f1125, %f1121, %f1124;
+ setp.gt.f32 %p106, %f1123, 0f3FB504F3;
+ mul.f32 %f1126, %f1123, 0f3F000000;
+ add.f32 %f1127, %f1125, 0f3F800000;
+ selp.f32 %f1128, %f1126, %f1123, %p106;
+ selp.f32 %f1129, %f1127, %f1125, %p106;
+ add.f32 %f1130, %f1128, 0fBF800000;
+ add.f32 %f1119, %f1128, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f1118,%f1119;
+ // inline asm
+ add.f32 %f1131, %f1130, %f1130;
+ mul.f32 %f1132, %f1118, %f1131;
+ mul.f32 %f1133, %f1132, %f1132;
+ fma.rn.f32 %f1136, %f979, %f1133, %f978;
+ fma.rn.f32 %f1138, %f1136, %f1133, %f981;
+ mul.rn.f32 %f1139, %f1138, %f1133;
+ mul.rn.f32 %f1140, %f1139, %f1132;
+ sub.f32 %f1141, %f1130, %f1132;
+ neg.f32 %f1142, %f1132;
+ add.f32 %f1143, %f1141, %f1141;
+ fma.rn.f32 %f1144, %f1142, %f1130, %f1143;
+ mul.rn.f32 %f1145, %f1118, %f1144;
+ add.f32 %f1146, %f1140, %f1132;
+ sub.f32 %f1147, %f1132, %f1146;
+ add.f32 %f1148, %f1140, %f1147;
+ add.f32 %f1149, %f1145, %f1148;
+ add.f32 %f1150, %f1146, %f1149;
+ sub.f32 %f1151, %f1146, %f1150;
+ add.f32 %f1152, %f1149, %f1151;
+ mul.rn.f32 %f1154, %f1129, %f997;
+ mul.rn.f32 %f1156, %f1129, %f999;
+ add.f32 %f1157, %f1154, %f1150;
+ sub.f32 %f1158, %f1154, %f1157;
+ add.f32 %f1159, %f1150, %f1158;
+ add.f32 %f1160, %f1152, %f1159;
+ add.f32 %f1161, %f1156, %f1160;
+ add.f32 %f1162, %f1157, %f1161;
+ sub.f32 %f1163, %f1157, %f1162;
+ add.f32 %f1164, %f1161, %f1163;
+ mul.rn.f32 %f1166, %f1009, %f1162;
+ neg.f32 %f1167, %f1166;
+ fma.rn.f32 %f1168, %f1009, %f1162, %f1167;
+ fma.rn.f32 %f1169, %f1009, %f1164, %f1168;
+ fma.rn.f32 %f1171, %f1014, %f1162, %f1169;
+ add.rn.f32 %f1172, %f1166, %f1171;
+ neg.f32 %f1173, %f1172;
+ add.rn.f32 %f1174, %f1166, %f1173;
+ add.rn.f32 %f1175, %f1174, %f1171;
+ mov.b32 %r150, %f1172;
+ setp.eq.s32 %p107, %r150, 1118925336;
+ add.s32 %r151, %r150, -1;
+ mov.b32 %f1176, %r151;
+ add.f32 %f1177, %f1175, 0f37000000;
+ selp.f32 %f1178, %f1176, %f1172, %p107;
+ selp.f32 %f240, %f1177, %f1175, %p107;
+ mul.f32 %f1179, %f1178, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1180, %f1179;
+ fma.rn.f32 %f1182, %f1180, %f1025, %f1178;
+ fma.rn.f32 %f1184, %f1180, %f1027, %f1182;
+ mul.f32 %f1185, %f1184, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1186, %f1185;
+ add.f32 %f1187, %f1180, 0f00000000;
+ ex2.approx.f32 %f1188, %f1187;
+ mul.f32 %f1189, %f1186, %f1188;
+ setp.lt.f32 %p108, %f1178, 0fC2D20000;
+ selp.f32 %f1190, 0f00000000, %f1189, %p108;
+ setp.gt.f32 %p109, %f1178, 0f42D20000;
+ selp.f32 %f1392, 0f7F800000, %f1190, %p109;
+ setp.eq.f32 %p110, %f1392, 0f7F800000;
+ @%p110 bra BB0_78;
+
+ fma.rn.f32 %f1392, %f1392, %f240, %f1392;
+
+BB0_78:
+ setp.lt.f32 %p111, %f1320, 0f00000000;
+ and.pred %p7, %p111, %p80;
+ mov.b32 %r152, %f1392;
+ xor.b32 %r153, %r152, -2147483648;
+ mov.b32 %f1191, %r153;
+ selp.f32 %f1394, %f1191, %f1392, %p7;
+ setp.eq.f32 %p113, %f1320, 0f00000000;
+ @%p113 bra BB0_81;
+ bra.uni BB0_79;
+
+BB0_81:
+ add.f32 %f1194, %f1320, %f1320;
+ selp.f32 %f1394, %f1194, 0f00000000, %p80;
+ bra.uni BB0_82;
+
+BB0_79:
+ setp.geu.f32 %p114, %f1320, 0f00000000;
+ @%p114 bra BB0_82;
+
+ cvt.rzi.f32.f32 %f1193, %f1009;
+ setp.neu.f32 %p115, %f1193, 0f3EE66666;
+ selp.f32 %f1394, 0f7FFFFFFF, %f1394, %p115;
+
+BB0_82:
+ add.f32 %f1195, %f239, 0f3EE66666;
+ mov.b32 %r154, %f1195;
+ setp.lt.s32 %p117, %r154, 2139095040;
+ @%p117 bra BB0_87;
+
+ setp.gtu.f32 %p118, %f239, 0f7F800000;
+ @%p118 bra BB0_86;
+ bra.uni BB0_84;
+
+BB0_86:
+ add.f32 %f1394, %f1320, 0f3EE66666;
+ bra.uni BB0_87;
+
+BB0_84:
+ setp.neu.f32 %p119, %f239, 0f7F800000;
+ @%p119 bra BB0_87;
+
+ selp.f32 %f1394, 0fFF800000, 0f7F800000, %p7;
+
+BB0_87:
+ setp.eq.f32 %p120, %f1320, 0f3F800000;
+ selp.f32 %f1196, 0f3F800000, %f1394, %p120;
+ cvt.u64.u32 %rd53, %r3;
+ cvt.u64.u32 %rd52, %r2;
+ mov.u64 %rd56, image;
+ cvta.global.u64 %rd51, %rd56;
+ // inline asm
+ call (%rd50), _rt_buffer_get_64, (%rd51, %r27, %r28, %rd52, %rd53, %rd13, %rd13);
+ // inline asm
+ cvt.sat.f32.f32 %f1197, %f1196;
+ mul.f32 %f1198, %f1197, 0f437FFD71;
+ cvt.rzi.u32.f32 %r157, %f1198;
+ cvt.sat.f32.f32 %f1199, %f238;
+ mul.f32 %f1200, %f1199, 0f437FFD71;
+ cvt.rzi.u32.f32 %r158, %f1200;
+ cvt.sat.f32.f32 %f1201, %f225;
+ mul.f32 %f1202, %f1201, 0f437FFD71;
+ cvt.rzi.u32.f32 %r159, %f1202;
+ cvt.u16.u32 %rs16, %r157;
+ cvt.u16.u32 %rs17, %r159;
+ cvt.u16.u32 %rs18, %r158;
+ mov.u16 %rs19, 255;
+ st.v4.u8 [%rd50], {%rs16, %rs18, %rs17, %rs19};
+ ld.global.u32 %r245, [imageEnabled];
+
+BB0_88:
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ and.b32 %r160, %r245, 4;
+ setp.eq.s32 %p121, %r160, 0;
+ @%p121 bra BB0_92;
+
+ ld.global.u32 %r161, [additive];
+ setp.eq.s32 %p122, %r161, 0;
+ mov.f32 %f1203, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f1203;}
+
+ // inline asm
+ @%p122 bra BB0_91;
+
+ mov.u64 %rd69, image_HDR;
+ cvta.global.u64 %rd58, %rd69;
+ mov.u32 %r165, 8;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd58, %r27, %r165, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs27, %rs28, %rs29, %rs30}, [%rd57];
+ // inline asm
+ { cvt.f32.f16 %f1204, %rs27;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1205, %rs28;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1206, %rs29;}
+
+ // inline asm
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd58, %r27, %r165, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1207, %f1322, %f1204;
+ add.f32 %f1208, %f1321, %f1205;
+ add.f32 %f1209, %f1320, %f1206;
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f1209;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f1208;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f1207;}
+
+ // inline asm
+ st.v4.u16 [%rd63], {%rs24, %rs25, %rs26, %rs20};
+ bra.uni BB0_92;
+
+BB0_91:
+ mov.u64 %rd76, image_HDR;
+ cvta.global.u64 %rd71, %rd76;
+ mov.u32 %r167, 8;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd71, %r27, %r167, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f1320;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f1321;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f1322;}
+
+ // inline asm
+ st.v4.u16 [%rd70], {%rs31, %rs32, %rs33, %rs20};
+
+BB0_92:
+ mov.f32 %f1214, 0f34000000;
+ max.f32 %f1215, %f1319, %f1214;
+ div.rn.f32 %f1216, %f1316, %f1215;
+ max.f32 %f1217, %f1318, %f1214;
+ div.rn.f32 %f1218, %f1315, %f1217;
+ max.f32 %f1219, %f1317, %f1214;
+ div.rn.f32 %f1220, %f1314, %f1219;
+ fma.rn.f32 %f251, %f1216, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f252, %f1218, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f253, %f1220, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f1221, %f1313, %f1215;
+ div.rn.f32 %f1222, %f1312, %f1217;
+ div.rn.f32 %f1223, %f1311, %f1219;
+ fma.rn.f32 %f254, %f1221, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f255, %f1222, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f256, %f1223, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f1224, %f1310, %f1215;
+ div.rn.f32 %f1225, %f1309, %f1217;
+ div.rn.f32 %f1226, %f1308, %f1219;
+ fma.rn.f32 %f257, %f1224, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f258, %f1225, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f259, %f1226, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r168, [additive];
+ setp.eq.s32 %p123, %r168, 0;
+ mov.f32 %f1213, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f1213;}
+
+ // inline asm
+ @%p123 bra BB0_94;
+
+ mov.u64 %rd89, image_RNM0;
+ cvta.global.u64 %rd78, %rd89;
+ mov.u32 %r172, 8;
+ // inline asm
+ call (%rd77), _rt_buffer_get_64, (%rd78, %r27, %r172, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs41, %rs42, %rs43, %rs44}, [%rd77];
+ // inline asm
+ { cvt.f32.f16 %f1227, %rs41;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1228, %rs42;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1229, %rs43;}
+
+ // inline asm
+ // inline asm
+ call (%rd83), _rt_buffer_get_64, (%rd78, %r27, %r172, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1230, %f1319, %f1227;
+ add.f32 %f1231, %f1318, %f1228;
+ add.f32 %f1232, %f1317, %f1229;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f1232;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f1231;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f1230;}
+
+ // inline asm
+ st.v4.u16 [%rd83], {%rs38, %rs39, %rs40, %rs34};
+ bra.uni BB0_95;
+
+BB0_94:
+ mov.u64 %rd96, image_RNM0;
+ cvta.global.u64 %rd91, %rd96;
+ mov.u32 %r174, 8;
+ // inline asm
+ call (%rd90), _rt_buffer_get_64, (%rd91, %r27, %r174, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f1317;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f1318;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f1319;}
+
+ // inline asm
+ st.v4.u16 [%rd90], {%rs45, %rs46, %rs47, %rs34};
+
+BB0_95:
+ ld.global.u32 %r175, [additive];
+ setp.eq.s32 %p124, %r175, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f1213;}
+
+ // inline asm
+ @%p124 bra BB0_97;
+
+ mov.u64 %rd109, image_RNM1;
+ cvta.global.u64 %rd98, %rd109;
+ mov.u32 %r179, 8;
+ // inline asm
+ call (%rd97), _rt_buffer_get_64, (%rd98, %r27, %r179, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs55, %rs56, %rs57, %rs58}, [%rd97];
+ // inline asm
+ { cvt.f32.f16 %f1237, %rs55;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1238, %rs56;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1239, %rs57;}
+
+ // inline asm
+ // inline asm
+ call (%rd103), _rt_buffer_get_64, (%rd98, %r27, %r179, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1240, %f251, %f1237;
+ add.f32 %f1241, %f252, %f1238;
+ add.f32 %f1242, %f253, %f1239;
+ // inline asm
+ { cvt.rn.f16.f32 %rs54, %f1242;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f1241;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f1240;}
+
+ // inline asm
+ st.v4.u16 [%rd103], {%rs52, %rs53, %rs54, %rs48};
+ bra.uni BB0_98;
+
+BB0_97:
+ mov.u64 %rd116, image_RNM1;
+ cvta.global.u64 %rd111, %rd116;
+ mov.u32 %r181, 8;
+ // inline asm
+ call (%rd110), _rt_buffer_get_64, (%rd111, %r27, %r181, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs61, %f253;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f252;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f251;}
+
+ // inline asm
+ st.v4.u16 [%rd110], {%rs59, %rs60, %rs61, %rs48};
+
+BB0_98:
+ ld.global.u32 %r182, [additive];
+ setp.eq.s32 %p125, %r182, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs62, %f1213;}
+
+ // inline asm
+ @%p125 bra BB0_100;
+
+ mov.u64 %rd129, image_RNM2;
+ cvta.global.u64 %rd118, %rd129;
+ mov.u32 %r186, 8;
+ // inline asm
+ call (%rd117), _rt_buffer_get_64, (%rd118, %r27, %r186, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs69, %rs70, %rs71, %rs72}, [%rd117];
+ // inline asm
+ { cvt.f32.f16 %f1247, %rs69;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1248, %rs70;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1249, %rs71;}
+
+ // inline asm
+ // inline asm
+ call (%rd123), _rt_buffer_get_64, (%rd118, %r27, %r186, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1250, %f254, %f1247;
+ add.f32 %f1251, %f255, %f1248;
+ add.f32 %f1252, %f256, %f1249;
+ // inline asm
+ { cvt.rn.f16.f32 %rs68, %f1252;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs67, %f1251;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f1250;}
+
+ // inline asm
+ st.v4.u16 [%rd123], {%rs66, %rs67, %rs68, %rs62};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd136, image_RNM2;
+ cvta.global.u64 %rd131, %rd136;
+ mov.u32 %r188, 8;
+ // inline asm
+ call (%rd130), _rt_buffer_get_64, (%rd131, %r27, %r188, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs75, %f256;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f255;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f254;}
+
+ // inline asm
+ st.v4.u16 [%rd130], {%rs73, %rs74, %rs75, %rs62};
+
+BB0_101:
+ ld.global.u32 %r189, [additive];
+ setp.eq.s32 %p126, %r189, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f1213;}
+
+ // inline asm
+ @%p126 bra BB0_103;
+
+ mov.u64 %rd149, image_RNM3;
+ cvta.global.u64 %rd138, %rd149;
+ mov.u32 %r193, 8;
+ // inline asm
+ call (%rd137), _rt_buffer_get_64, (%rd138, %r27, %r193, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ ld.v4.u16 {%rs83, %rs84, %rs85, %rs86}, [%rd137];
+ // inline asm
+ { cvt.f32.f16 %f1257, %rs83;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1258, %rs84;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1259, %rs85;}
+
+ // inline asm
+ // inline asm
+ call (%rd143), _rt_buffer_get_64, (%rd138, %r27, %r193, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ add.f32 %f1260, %f257, %f1257;
+ add.f32 %f1261, %f258, %f1258;
+ add.f32 %f1262, %f259, %f1259;
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f1262;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f1261;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs80, %f1260;}
+
+ // inline asm
+ st.v4.u16 [%rd143], {%rs80, %rs81, %rs82, %rs76};
+ bra.uni BB0_124;
+
+BB0_103:
+ mov.u64 %rd156, image_RNM3;
+ cvta.global.u64 %rd151, %rd156;
+ mov.u32 %r195, 8;
+ // inline asm
+ call (%rd150), _rt_buffer_get_64, (%rd151, %r27, %r195, %rd4, %rd5, %rd13, %rd13);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs89, %f259;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f258;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f257;}
+
+ // inline asm
+ st.v4.u16 [%rd150], {%rs87, %rs88, %rs89, %rs76};
+
+BB0_124:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightSH.ptx.meta
new file mode 100644
index 00000000..50f3cee0
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmBatchPointLightSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ae9a4cb4257fb4b4399e1bb8d650eb34
+timeCreated: 1583324482
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLight.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLight.ptx
new file mode 100644
index 00000000..85c60992
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLight.ptx
@@ -0,0 +1,1568 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_Dir[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .b8 lightConeDir[12];
+.global .align 8 .b8 lightCone[8];
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12lightConeDirE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9lightConeE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12lightConeDirE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9lightConeE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12lightConeDirE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9lightConeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12lightConeDirE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9lightConeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12lightConeDirE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9lightConeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<113>;
+ .reg .b16 %rs<76>;
+ .reg .f32 %f<773>;
+ .reg .b32 %r<167>;
+ .reg .b64 %rd<150>;
+
+
+ mov.u64 %rd149, __local_depot0;
+ cvta.local.u64 %SP, %rd149;
+ ld.global.v2.u32 {%r28, %r29}, [pixelID];
+ cvt.u64.u32 %rd12, %r28;
+ cvt.u64.u32 %rd13, %r29;
+ mov.u64 %rd16, uvnormal;
+ cvta.global.u64 %rd11, %rd16;
+ mov.u32 %r26, 2;
+ mov.u32 %r27, 4;
+ mov.u64 %rd15, 0;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r26, %r27, %rd12, %rd13, %rd15, %rd15);
+ // inline asm
+ ld.u32 %r1, [%rd10];
+ shr.u32 %r32, %r1, 16;
+ cvt.u16.u32 %rs1, %r32;
+ and.b16 %rs4, %rs1, 255;
+ cvt.u16.u32 %rs5, %r1;
+ or.b16 %rs6, %rs5, %rs4;
+ setp.eq.s16 %p6, %rs6, 0;
+ mov.f32 %f749, 0f00000000;
+ mov.f32 %f750, %f749;
+ mov.f32 %f751, %f749;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs7, [%rd10+1];
+ and.b16 %rs9, %rs5, 255;
+ cvt.rn.f32.u16 %f105, %rs9;
+ div.rn.f32 %f106, %f105, 0f437F0000;
+ fma.rn.f32 %f107, %f106, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f108, %rs7;
+ div.rn.f32 %f109, %f108, 0f437F0000;
+ fma.rn.f32 %f110, %f109, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f111, %rs4;
+ div.rn.f32 %f112, %f111, 0f437F0000;
+ fma.rn.f32 %f113, %f112, 0f40000000, 0fBF800000;
+ mul.f32 %f114, %f110, %f110;
+ fma.rn.f32 %f115, %f107, %f107, %f114;
+ fma.rn.f32 %f116, %f113, %f113, %f115;
+ sqrt.rn.f32 %f117, %f116;
+ rcp.rn.f32 %f118, %f117;
+ mul.f32 %f749, %f107, %f118;
+ mul.f32 %f750, %f110, %f118;
+ mul.f32 %f751, %f113, %f118;
+
+BB0_2:
+ ld.global.v2.u32 {%r33, %r34}, [pixelID];
+ ld.global.v2.u32 {%r36, %r37}, [tileInfo];
+ add.s32 %r2, %r33, %r36;
+ add.s32 %r3, %r34, %r37;
+ setp.eq.f32 %p7, %f750, 0f00000000;
+ setp.eq.f32 %p8, %f749, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f751, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_85;
+ bra.uni BB0_3;
+
+BB0_85:
+ ld.global.u32 %r166, [imageEnabled];
+ and.b32 %r141, %r166, 1;
+ setp.eq.b32 %p108, %r141, 1;
+ @!%p108 bra BB0_87;
+ bra.uni BB0_86;
+
+BB0_86:
+ cvt.u64.u32 %rd110, %r2;
+ cvt.u64.u32 %rd111, %r3;
+ mov.u64 %rd114, image;
+ cvta.global.u64 %rd109, %rd114;
+ // inline asm
+ call (%rd108), _rt_buffer_get_64, (%rd109, %r26, %r27, %rd110, %rd111, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs57, 0;
+ st.v4.u8 [%rd108], {%rs57, %rs57, %rs57, %rs57};
+ ld.global.u32 %r166, [imageEnabled];
+
+BB0_87:
+ and.b32 %r144, %r166, 8;
+ setp.eq.s32 %p109, %r144, 0;
+ @%p109 bra BB0_89;
+
+ cvt.u64.u32 %rd117, %r2;
+ cvt.u64.u32 %rd118, %r3;
+ mov.u64 %rd121, image_Mask;
+ cvta.global.u64 %rd116, %rd121;
+ // inline asm
+ call (%rd115), _rt_buffer_get_64, (%rd116, %r26, %r26, %rd117, %rd118, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f690, 0f00000000;
+ cvt.rzi.u32.f32 %r147, %f690;
+ cvt.u16.u32 %rs58, %r147;
+ mov.u16 %rs59, 0;
+ st.v2.u8 [%rd115], {%rs58, %rs59};
+ ld.global.u32 %r166, [imageEnabled];
+
+BB0_89:
+ and.b32 %r148, %r166, 4;
+ setp.eq.s32 %p110, %r148, 0;
+ @%p110 bra BB0_93;
+
+ ld.global.u32 %r149, [additive];
+ setp.eq.s32 %p111, %r149, 0;
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ @%p111 bra BB0_92;
+
+ mov.u64 %rd134, image_HDR;
+ cvta.global.u64 %rd123, %rd134;
+ mov.u32 %r153, 8;
+ // inline asm
+ call (%rd122), _rt_buffer_get_64, (%rd123, %r26, %r153, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs66, %rs67, %rs68, %rs69}, [%rd122];
+ // inline asm
+ { cvt.f32.f16 %f691, %rs66;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f692, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f693, %rs68;}
+
+ // inline asm
+ // inline asm
+ call (%rd128), _rt_buffer_get_64, (%rd123, %r26, %r153, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f694, %f691, 0f00000000;
+ add.f32 %f695, %f692, 0f00000000;
+ add.f32 %f696, %f693, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f696;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f695;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs63, %f694;}
+
+ // inline asm
+ mov.u16 %rs70, 0;
+ st.v4.u16 [%rd128], {%rs63, %rs64, %rs65, %rs70};
+ bra.uni BB0_93;
+
+BB0_3:
+ ld.global.v2.u32 {%r43, %r44}, [pixelID];
+ cvt.u64.u32 %rd19, %r43;
+ cvt.u64.u32 %rd20, %r44;
+ mov.u64 %rd23, uvpos;
+ cvta.global.u64 %rd18, %rd23;
+ mov.u32 %r42, 12;
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd18, %r26, %r42, %rd19, %rd20, %rd15, %rd15);
+ // inline asm
+ ld.global.f32 %f7, [lightPos];
+ ld.f32 %f12, [%rd17+8];
+ ld.f32 %f10, [%rd17+4];
+ ld.f32 %f8, [%rd17];
+ sub.f32 %f121, %f7, %f8;
+ ld.global.f32 %f9, [lightPos+4];
+ sub.f32 %f122, %f9, %f10;
+ ld.global.f32 %f11, [lightPos+8];
+ sub.f32 %f123, %f11, %f12;
+ mul.f32 %f124, %f122, %f122;
+ fma.rn.f32 %f125, %f121, %f121, %f124;
+ fma.rn.f32 %f126, %f123, %f123, %f125;
+ sqrt.rn.f32 %f127, %f126;
+ rcp.rn.f32 %f128, %f127;
+ ld.global.f32 %f129, [lightFalloffFakeDistanceMult];
+ mul.f32 %f16, %f127, %f129;
+ ld.global.f32 %f130, [lightInvCutoff];
+ mul.f32 %f17, %f127, %f130;
+ mov.f32 %f134, 0f40800000;
+ abs.f32 %f19, %f17;
+ setp.lt.f32 %p12, %f19, 0f00800000;
+ mul.f32 %f136, %f19, 0f4B800000;
+ selp.f32 %f137, 0fC3170000, 0fC2FE0000, %p12;
+ selp.f32 %f138, %f136, %f19, %p12;
+ mov.b32 %r47, %f138;
+ and.b32 %r48, %r47, 8388607;
+ or.b32 %r49, %r48, 1065353216;
+ mov.b32 %f139, %r49;
+ shr.u32 %r50, %r47, 23;
+ cvt.rn.f32.u32 %f140, %r50;
+ add.f32 %f141, %f137, %f140;
+ setp.gt.f32 %p13, %f139, 0f3FB504F3;
+ mul.f32 %f142, %f139, 0f3F000000;
+ add.f32 %f143, %f141, 0f3F800000;
+ selp.f32 %f144, %f142, %f139, %p13;
+ selp.f32 %f145, %f143, %f141, %p13;
+ add.f32 %f146, %f144, 0fBF800000;
+ add.f32 %f120, %f144, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f119,%f120;
+ // inline asm
+ add.f32 %f147, %f146, %f146;
+ mul.f32 %f148, %f119, %f147;
+ mul.f32 %f149, %f148, %f148;
+ mov.f32 %f150, 0f3C4CAF63;
+ mov.f32 %f151, 0f3B18F0FE;
+ fma.rn.f32 %f152, %f151, %f149, %f150;
+ mov.f32 %f153, 0f3DAAAABD;
+ fma.rn.f32 %f154, %f152, %f149, %f153;
+ mul.rn.f32 %f155, %f154, %f149;
+ mul.rn.f32 %f156, %f155, %f148;
+ sub.f32 %f157, %f146, %f148;
+ neg.f32 %f158, %f148;
+ add.f32 %f159, %f157, %f157;
+ fma.rn.f32 %f160, %f158, %f146, %f159;
+ mul.rn.f32 %f161, %f119, %f160;
+ add.f32 %f162, %f156, %f148;
+ sub.f32 %f163, %f148, %f162;
+ add.f32 %f164, %f156, %f163;
+ add.f32 %f165, %f161, %f164;
+ add.f32 %f166, %f162, %f165;
+ sub.f32 %f167, %f162, %f166;
+ add.f32 %f168, %f165, %f167;
+ mov.f32 %f169, 0f3F317200;
+ mul.rn.f32 %f170, %f145, %f169;
+ mov.f32 %f171, 0f35BFBE8E;
+ mul.rn.f32 %f172, %f145, %f171;
+ add.f32 %f173, %f170, %f166;
+ sub.f32 %f174, %f170, %f173;
+ add.f32 %f175, %f166, %f174;
+ add.f32 %f176, %f168, %f175;
+ add.f32 %f177, %f172, %f176;
+ add.f32 %f178, %f173, %f177;
+ sub.f32 %f179, %f173, %f178;
+ add.f32 %f180, %f177, %f179;
+ mul.rn.f32 %f181, %f134, %f178;
+ neg.f32 %f182, %f181;
+ fma.rn.f32 %f183, %f134, %f178, %f182;
+ fma.rn.f32 %f184, %f134, %f180, %f183;
+ mov.f32 %f185, 0f00000000;
+ fma.rn.f32 %f186, %f185, %f178, %f184;
+ add.rn.f32 %f187, %f181, %f186;
+ neg.f32 %f188, %f187;
+ add.rn.f32 %f189, %f181, %f188;
+ add.rn.f32 %f190, %f189, %f186;
+ mov.b32 %r51, %f187;
+ setp.eq.s32 %p14, %r51, 1118925336;
+ add.s32 %r52, %r51, -1;
+ mov.b32 %f191, %r52;
+ add.f32 %f192, %f190, 0f37000000;
+ selp.f32 %f193, %f191, %f187, %p14;
+ selp.f32 %f20, %f192, %f190, %p14;
+ mul.f32 %f194, %f193, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f195, %f194;
+ mov.f32 %f196, 0fBF317200;
+ fma.rn.f32 %f197, %f195, %f196, %f193;
+ mov.f32 %f198, 0fB5BFBE8E;
+ fma.rn.f32 %f199, %f195, %f198, %f197;
+ mul.f32 %f200, %f199, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f201, %f200;
+ add.f32 %f202, %f195, 0f00000000;
+ ex2.approx.f32 %f203, %f202;
+ mul.f32 %f204, %f201, %f203;
+ setp.lt.f32 %p15, %f193, 0fC2D20000;
+ selp.f32 %f205, 0f00000000, %f204, %p15;
+ setp.gt.f32 %p16, %f193, 0f42D20000;
+ selp.f32 %f752, 0f7F800000, %f205, %p16;
+ setp.eq.f32 %p17, %f752, 0f7F800000;
+ @%p17 bra BB0_5;
+
+ fma.rn.f32 %f752, %f752, %f20, %f752;
+
+BB0_5:
+ mov.f32 %f703, 0f40000000;
+ cvt.rzi.f32.f32 %f702, %f703;
+ add.f32 %f701, %f702, %f702;
+ mov.f32 %f700, 0f40800000;
+ sub.f32 %f699, %f700, %f701;
+ abs.f32 %f698, %f699;
+ setp.lt.f32 %p18, %f17, 0f00000000;
+ setp.eq.f32 %p19, %f698, 0f3F800000;
+ and.pred %p1, %p18, %p19;
+ mov.b32 %r53, %f752;
+ xor.b32 %r54, %r53, -2147483648;
+ mov.b32 %f206, %r54;
+ selp.f32 %f754, %f206, %f752, %p1;
+ setp.eq.f32 %p20, %f17, 0f00000000;
+ @%p20 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f209, %f17, %f17;
+ selp.f32 %f754, %f209, 0f00000000, %p19;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p21, %f17, 0f00000000;
+ @%p21 bra BB0_9;
+
+ mov.f32 %f748, 0f40800000;
+ cvt.rzi.f32.f32 %f208, %f748;
+ setp.neu.f32 %p22, %f208, 0f40800000;
+ selp.f32 %f754, 0f7FFFFFFF, %f754, %p22;
+
+BB0_9:
+ abs.f32 %f704, %f17;
+ add.f32 %f210, %f704, 0f40800000;
+ mov.b32 %r55, %f210;
+ setp.lt.s32 %p24, %r55, 2139095040;
+ @%p24 bra BB0_14;
+
+ abs.f32 %f746, %f17;
+ setp.gtu.f32 %p25, %f746, 0f7F800000;
+ @%p25 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f754, %f17, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f747, %f17;
+ setp.neu.f32 %p26, %f747, 0f7F800000;
+ @%p26 bra BB0_14;
+
+ selp.f32 %f754, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ sub.f32 %f710, %f11, %f12;
+ mul.f32 %f709, %f710, %f128;
+ sub.f32 %f708, %f7, %f8;
+ mul.f32 %f707, %f708, %f128;
+ sub.f32 %f706, %f9, %f10;
+ mul.f32 %f705, %f706, %f128;
+ mov.f32 %f760, 0f3F800000;
+ sub.f32 %f212, %f760, %f754;
+ setp.eq.f32 %p27, %f17, 0f3F800000;
+ selp.f32 %f213, 0f00000000, %f212, %p27;
+ cvt.sat.f32.f32 %f214, %f213;
+ ld.global.f32 %f215, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f216, %f16, %f16, %f215;
+ div.rn.f32 %f217, %f214, %f216;
+ mul.f32 %f218, %f750, %f705;
+ fma.rn.f32 %f219, %f749, %f707, %f218;
+ fma.rn.f32 %f220, %f751, %f709, %f219;
+ ld.global.u32 %r164, [imageEnabled];
+ and.b32 %r56, %r164, 32;
+ ld.global.u32 %r57, [ignoreNormal];
+ or.b32 %r58, %r56, %r57;
+ setp.eq.s32 %p28, %r58, 0;
+ selp.f32 %f221, %f220, 0f3F800000, %p28;
+ cvt.sat.f32.f32 %f222, %f221;
+ ld.global.f32 %f223, [lightConeDir];
+ mul.f32 %f224, %f707, %f223;
+ ld.global.f32 %f225, [lightConeDir+4];
+ mul.f32 %f226, %f705, %f225;
+ neg.f32 %f227, %f226;
+ sub.f32 %f228, %f227, %f224;
+ ld.global.f32 %f229, [lightConeDir+8];
+ mul.f32 %f230, %f709, %f229;
+ sub.f32 %f231, %f228, %f230;
+ ld.global.v2.f32 {%f232, %f233}, [lightCone];
+ fma.rn.f32 %f236, %f232, %f231, %f233;
+ cvt.sat.f32.f32 %f237, %f236;
+ mul.f32 %f238, %f237, %f237;
+ mul.f32 %f239, %f217, %f238;
+ mul.f32 %f31, %f222, %f239;
+ ld.global.f32 %f240, [lightColor+4];
+ ld.global.f32 %f241, [lightColor];
+ max.f32 %f242, %f241, %f240;
+ ld.global.f32 %f243, [lightColor+8];
+ max.f32 %f244, %f242, %f243;
+ mul.f32 %f245, %f31, %f244;
+ setp.lt.f32 %p29, %f245, 0f3727C5AC;
+ @%p29 bra BB0_75;
+ bra.uni BB0_15;
+
+BB0_75:
+ and.b32 %r124, %r164, 1;
+ setp.eq.b32 %p103, %r124, 1;
+ @!%p103 bra BB0_77;
+ bra.uni BB0_76;
+
+BB0_76:
+ cvt.u64.u32 %rd69, %r2;
+ cvt.u64.u32 %rd70, %r3;
+ mov.u64 %rd73, image;
+ cvta.global.u64 %rd68, %rd73;
+ // inline asm
+ call (%rd67), _rt_buffer_get_64, (%rd68, %r26, %r27, %rd69, %rd70, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs37, 1;
+ mov.u16 %rs38, 0;
+ st.v4.u8 [%rd67], {%rs38, %rs38, %rs38, %rs37};
+ ld.global.u32 %r164, [imageEnabled];
+
+BB0_77:
+ and.b32 %r127, %r164, 8;
+ setp.eq.s32 %p104, %r127, 0;
+ @%p104 bra BB0_79;
+
+ cvt.u64.u32 %rd76, %r2;
+ cvt.u64.u32 %rd77, %r3;
+ mov.u64 %rd80, image_Mask;
+ cvta.global.u64 %rd75, %rd80;
+ // inline asm
+ call (%rd74), _rt_buffer_get_64, (%rd75, %r26, %r26, %rd76, %rd77, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f679, 0f00000000;
+ cvt.rzi.u32.f32 %r130, %f679;
+ cvt.u16.u32 %rs39, %r130;
+ mov.u16 %rs40, 255;
+ st.v2.u8 [%rd74], {%rs39, %rs40};
+ ld.global.u32 %r164, [imageEnabled];
+
+BB0_79:
+ and.b32 %r131, %r164, 4;
+ setp.eq.s32 %p105, %r131, 0;
+ @%p105 bra BB0_83;
+
+ ld.global.u32 %r132, [additive];
+ setp.eq.s32 %p106, %r132, 0;
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ mov.f32 %f680, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs41, %f680;}
+
+ // inline asm
+ @%p106 bra BB0_82;
+
+ mov.u64 %rd93, image_HDR;
+ cvta.global.u64 %rd82, %rd93;
+ mov.u32 %r136, 8;
+ // inline asm
+ call (%rd81), _rt_buffer_get_64, (%rd82, %r26, %r136, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs48, %rs49, %rs50, %rs51}, [%rd81];
+ // inline asm
+ { cvt.f32.f16 %f681, %rs48;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f682, %rs49;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f683, %rs50;}
+
+ // inline asm
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd82, %r26, %r136, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f684, %f681, 0f00000000;
+ add.f32 %f685, %f682, 0f00000000;
+ add.f32 %f686, %f683, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f686;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f685;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f684;}
+
+ // inline asm
+ st.v4.u16 [%rd87], {%rs45, %rs46, %rs47, %rs41};
+ bra.uni BB0_83;
+
+BB0_15:
+ mov.f32 %f758, 0f00000000;
+ mul.f32 %f247, %f8, 0f3456BF95;
+ abs.f32 %f248, %f749;
+ div.rn.f32 %f249, %f247, %f248;
+ abs.f32 %f250, %f750;
+ mul.f32 %f251, %f10, 0f3456BF95;
+ div.rn.f32 %f252, %f251, %f250;
+ abs.f32 %f253, %f751;
+ mul.f32 %f254, %f12, 0f3456BF95;
+ div.rn.f32 %f255, %f254, %f253;
+ abs.f32 %f256, %f249;
+ abs.f32 %f257, %f252;
+ abs.f32 %f258, %f255;
+ mov.f32 %f259, 0f38D1B717;
+ max.f32 %f260, %f256, %f259;
+ max.f32 %f261, %f257, %f259;
+ max.f32 %f262, %f258, %f259;
+ fma.rn.f32 %f32, %f749, %f260, %f8;
+ fma.rn.f32 %f33, %f750, %f261, %f10;
+ fma.rn.f32 %f34, %f751, %f262, %f12;
+ ld.global.u32 %r160, [samples];
+ setp.lt.s32 %p30, %r160, 1;
+ @%p30 bra BB0_18;
+
+ mul.f32 %f264, %f32, 0f3456BF95;
+ abs.f32 %f265, %f264;
+ mul.f32 %f266, %f33, 0f3456BF95;
+ abs.f32 %f267, %f266;
+ mul.f32 %f268, %f34, 0f3456BF95;
+ abs.f32 %f269, %f268;
+ max.f32 %f270, %f265, %f267;
+ max.f32 %f271, %f270, %f269;
+ max.f32 %f35, %f271, %f259;
+ add.u64 %rd24, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd24;
+ mov.f32 %f758, 0f00000000;
+ mov.u32 %r159, 0;
+ mov.f32 %f755, %f11;
+ mov.f32 %f756, %f9;
+ mov.f32 %f757, %f7;
+ bra.uni BB0_17;
+
+BB0_74:
+ ld.global.f32 %f757, [lightPos];
+ ld.global.f32 %f756, [lightPos+4];
+ ld.global.f32 %f755, [lightPos+8];
+ ld.global.u32 %r164, [imageEnabled];
+
+BB0_17:
+ cvt.rn.f32.s32 %f281, %r159;
+ mul.f32 %f282, %f281, 0f3DD32618;
+ cvt.rmi.f32.f32 %f283, %f282;
+ sub.f32 %f284, %f282, %f283;
+ mul.f32 %f285, %f281, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f286, %f285;
+ sub.f32 %f287, %f285, %f286;
+ mul.f32 %f288, %f281, 0f3DC74539;
+ cvt.rmi.f32.f32 %f289, %f288;
+ sub.f32 %f290, %f288, %f289;
+ add.f32 %f291, %f287, 0f4199851F;
+ add.f32 %f292, %f290, 0f4199851F;
+ add.f32 %f293, %f284, 0f4199851F;
+ mul.f32 %f294, %f287, %f292;
+ fma.rn.f32 %f295, %f284, %f291, %f294;
+ fma.rn.f32 %f296, %f293, %f290, %f295;
+ add.f32 %f297, %f284, %f296;
+ add.f32 %f298, %f287, %f296;
+ add.f32 %f299, %f290, %f296;
+ add.f32 %f300, %f297, %f298;
+ mul.f32 %f301, %f299, %f300;
+ cvt.rmi.f32.f32 %f302, %f301;
+ sub.f32 %f303, %f301, %f302;
+ add.f32 %f304, %f297, %f299;
+ mul.f32 %f305, %f298, %f304;
+ cvt.rmi.f32.f32 %f306, %f305;
+ sub.f32 %f307, %f305, %f306;
+ add.f32 %f308, %f298, %f299;
+ mul.f32 %f309, %f297, %f308;
+ cvt.rmi.f32.f32 %f310, %f309;
+ sub.f32 %f311, %f309, %f310;
+ fma.rn.f32 %f312, %f303, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f313, %f307, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f314, %f311, 0f40000000, 0fBF800000;
+ ld.global.f32 %f315, [lightRadius];
+ fma.rn.f32 %f316, %f315, %f312, %f757;
+ fma.rn.f32 %f317, %f315, %f313, %f756;
+ fma.rn.f32 %f318, %f315, %f314, %f755;
+ sub.f32 %f319, %f316, %f8;
+ sub.f32 %f320, %f317, %f10;
+ sub.f32 %f321, %f318, %f12;
+ mul.f32 %f322, %f320, %f320;
+ fma.rn.f32 %f323, %f319, %f319, %f322;
+ fma.rn.f32 %f324, %f321, %f321, %f323;
+ sqrt.rn.f32 %f280, %f324;
+ rcp.rn.f32 %f325, %f280;
+ mul.f32 %f276, %f325, %f319;
+ mul.f32 %f277, %f325, %f320;
+ mul.f32 %f278, %f325, %f321;
+ and.b32 %r63, %r164, 32;
+ setp.eq.s32 %p31, %r63, 0;
+ selp.f32 %f326, 0f3F800000, 0f41200000, %p31;
+ mul.f32 %f279, %f326, %f35;
+ mov.u32 %r64, 1065353216;
+ st.local.u32 [%rd2], %r64;
+ ld.global.u32 %r60, [root];
+ mov.u32 %r61, 1;
+ // inline asm
+ call _rt_trace_64, (%r60, %f32, %f33, %f34, %f276, %f277, %f278, %r61, %f279, %f280, %rd24, %r27);
+ // inline asm
+ ld.local.f32 %f327, [%rd2];
+ add.f32 %f758, %f758, %f327;
+ ld.global.u32 %r160, [samples];
+ add.s32 %r159, %r159, 1;
+ setp.lt.s32 %p32, %r159, %r160;
+ @%p32 bra BB0_74;
+
+BB0_18:
+ setp.eq.s32 %p33, %r160, 0;
+ @%p33 bra BB0_20;
+
+ cvt.rn.f32.s32 %f329, %r160;
+ div.rn.f32 %f760, %f758, %f329;
+
+BB0_20:
+ ld.global.f32 %f330, [lightColor];
+ mul.f32 %f331, %f31, %f760;
+ mul.f32 %f44, %f330, %f331;
+ ld.global.f32 %f332, [lightColor+4];
+ mul.f32 %f45, %f331, %f332;
+ ld.global.f32 %f333, [lightColor+8];
+ mul.f32 %f46, %f331, %f333;
+ ld.global.u32 %r162, [imageEnabled];
+ and.b32 %r65, %r162, 8;
+ setp.eq.s32 %p34, %r65, 0;
+ @%p34 bra BB0_33;
+
+ mov.f32 %f718, 0fB5BFBE8E;
+ mov.f32 %f717, 0fBF317200;
+ mov.f32 %f716, 0f35BFBE8E;
+ mov.f32 %f715, 0f3F317200;
+ mov.f32 %f714, 0f3DAAAABD;
+ mov.f32 %f713, 0f3C4CAF63;
+ mov.f32 %f712, 0f3B18F0FE;
+ cvt.u64.u32 %rd28, %r2;
+ cvt.u64.u32 %rd29, %r3;
+ mov.u64 %rd32, image_Mask;
+ cvta.global.u64 %rd27, %rd32;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r26, %r26, %rd28, %rd29, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f336, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f337, %f336;
+ fma.rn.f32 %f338, %f337, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f47, %f338;
+ abs.f32 %f48, %f760;
+ setp.lt.f32 %p35, %f48, 0f00800000;
+ mul.f32 %f339, %f48, 0f4B800000;
+ selp.f32 %f340, 0fC3170000, 0fC2FE0000, %p35;
+ selp.f32 %f341, %f339, %f48, %p35;
+ mov.b32 %r68, %f341;
+ and.b32 %r69, %r68, 8388607;
+ or.b32 %r70, %r69, 1065353216;
+ mov.b32 %f342, %r70;
+ shr.u32 %r71, %r68, 23;
+ cvt.rn.f32.u32 %f343, %r71;
+ add.f32 %f344, %f340, %f343;
+ setp.gt.f32 %p36, %f342, 0f3FB504F3;
+ mul.f32 %f345, %f342, 0f3F000000;
+ add.f32 %f346, %f344, 0f3F800000;
+ selp.f32 %f347, %f345, %f342, %p36;
+ selp.f32 %f348, %f346, %f344, %p36;
+ add.f32 %f349, %f347, 0fBF800000;
+ add.f32 %f335, %f347, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f334,%f335;
+ // inline asm
+ add.f32 %f350, %f349, %f349;
+ mul.f32 %f351, %f334, %f350;
+ mul.f32 %f352, %f351, %f351;
+ fma.rn.f32 %f355, %f712, %f352, %f713;
+ fma.rn.f32 %f357, %f355, %f352, %f714;
+ mul.rn.f32 %f358, %f357, %f352;
+ mul.rn.f32 %f359, %f358, %f351;
+ sub.f32 %f360, %f349, %f351;
+ neg.f32 %f361, %f351;
+ add.f32 %f362, %f360, %f360;
+ fma.rn.f32 %f363, %f361, %f349, %f362;
+ mul.rn.f32 %f364, %f334, %f363;
+ add.f32 %f365, %f359, %f351;
+ sub.f32 %f366, %f351, %f365;
+ add.f32 %f367, %f359, %f366;
+ add.f32 %f368, %f364, %f367;
+ add.f32 %f369, %f365, %f368;
+ sub.f32 %f370, %f365, %f369;
+ add.f32 %f371, %f368, %f370;
+ mul.rn.f32 %f373, %f348, %f715;
+ mul.rn.f32 %f375, %f348, %f716;
+ add.f32 %f376, %f373, %f369;
+ sub.f32 %f377, %f373, %f376;
+ add.f32 %f378, %f369, %f377;
+ add.f32 %f379, %f371, %f378;
+ add.f32 %f380, %f375, %f379;
+ add.f32 %f381, %f376, %f380;
+ sub.f32 %f382, %f376, %f381;
+ add.f32 %f383, %f380, %f382;
+ mov.f32 %f384, 0f3EE8BA2E;
+ mul.rn.f32 %f385, %f384, %f381;
+ neg.f32 %f386, %f385;
+ fma.rn.f32 %f387, %f384, %f381, %f386;
+ fma.rn.f32 %f388, %f384, %f383, %f387;
+ mov.f32 %f389, 0f00000000;
+ fma.rn.f32 %f390, %f389, %f381, %f388;
+ add.rn.f32 %f391, %f385, %f390;
+ neg.f32 %f392, %f391;
+ add.rn.f32 %f393, %f385, %f392;
+ add.rn.f32 %f394, %f393, %f390;
+ mov.b32 %r72, %f391;
+ setp.eq.s32 %p37, %r72, 1118925336;
+ add.s32 %r73, %r72, -1;
+ mov.b32 %f395, %r73;
+ add.f32 %f396, %f394, 0f37000000;
+ selp.f32 %f397, %f395, %f391, %p37;
+ selp.f32 %f49, %f396, %f394, %p37;
+ mul.f32 %f398, %f397, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f399, %f398;
+ fma.rn.f32 %f401, %f399, %f717, %f397;
+ fma.rn.f32 %f403, %f399, %f718, %f401;
+ mul.f32 %f404, %f403, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f405, %f404;
+ add.f32 %f406, %f399, 0f00000000;
+ ex2.approx.f32 %f407, %f406;
+ mul.f32 %f408, %f405, %f407;
+ setp.lt.f32 %p38, %f397, 0fC2D20000;
+ selp.f32 %f409, 0f00000000, %f408, %p38;
+ setp.gt.f32 %p39, %f397, 0f42D20000;
+ selp.f32 %f761, 0f7F800000, %f409, %p39;
+ setp.eq.f32 %p40, %f761, 0f7F800000;
+ @%p40 bra BB0_23;
+
+ fma.rn.f32 %f761, %f761, %f49, %f761;
+
+BB0_23:
+ setp.lt.f32 %p41, %f760, 0f00000000;
+ setp.eq.f32 %p42, %f47, 0f3F800000;
+ and.pred %p2, %p41, %p42;
+ mov.b32 %r74, %f761;
+ xor.b32 %r75, %r74, -2147483648;
+ mov.b32 %f410, %r75;
+ selp.f32 %f763, %f410, %f761, %p2;
+ setp.eq.f32 %p43, %f760, 0f00000000;
+ @%p43 bra BB0_26;
+ bra.uni BB0_24;
+
+BB0_26:
+ add.f32 %f413, %f760, %f760;
+ selp.f32 %f763, %f413, 0f00000000, %p42;
+ bra.uni BB0_27;
+
+BB0_92:
+ mov.u64 %rd141, image_HDR;
+ cvta.global.u64 %rd136, %rd141;
+ mov.u32 %r155, 8;
+ // inline asm
+ call (%rd135), _rt_buffer_get_64, (%rd136, %r26, %r155, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f697, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f697;}
+
+ // inline asm
+ mov.u16 %rs72, 0;
+ st.v4.u16 [%rd135], {%rs71, %rs71, %rs71, %rs72};
+
+BB0_93:
+ ld.global.u8 %rs73, [imageEnabled];
+ and.b16 %rs74, %rs73, 64;
+ setp.eq.s16 %p112, %rs74, 0;
+ @%p112 bra BB0_95;
+
+ cvt.u64.u32 %rd144, %r2;
+ cvt.u64.u32 %rd145, %r3;
+ mov.u64 %rd148, image_Dir;
+ cvta.global.u64 %rd143, %rd148;
+ // inline asm
+ call (%rd142), _rt_buffer_get_64, (%rd143, %r26, %r27, %rd144, %rd145, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs75, 0;
+ st.v4.u8 [%rd142], {%rs75, %rs75, %rs75, %rs75};
+ bra.uni BB0_95;
+
+BB0_82:
+ mov.u64 %rd100, image_HDR;
+ cvta.global.u64 %rd95, %rd100;
+ mov.u32 %r138, 8;
+ // inline asm
+ call (%rd94), _rt_buffer_get_64, (%rd95, %r26, %r138, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f687, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f687;}
+
+ // inline asm
+ st.v4.u16 [%rd94], {%rs52, %rs52, %rs52, %rs41};
+
+BB0_83:
+ ld.global.u8 %rs53, [imageEnabled];
+ and.b16 %rs54, %rs53, 64;
+ setp.eq.s16 %p107, %rs54, 0;
+ @%p107 bra BB0_95;
+
+ cvt.u64.u32 %rd103, %r2;
+ cvt.u64.u32 %rd104, %r3;
+ mov.u64 %rd107, image_Dir;
+ cvta.global.u64 %rd102, %rd107;
+ // inline asm
+ call (%rd101), _rt_buffer_get_64, (%rd102, %r26, %r27, %rd103, %rd104, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs55, 255;
+ mov.u16 %rs56, 0;
+ st.v4.u8 [%rd101], {%rs56, %rs56, %rs56, %rs55};
+ bra.uni BB0_95;
+
+BB0_24:
+ setp.geu.f32 %p44, %f760, 0f00000000;
+ @%p44 bra BB0_27;
+
+ cvt.rzi.f32.f32 %f412, %f384;
+ setp.neu.f32 %p45, %f412, 0f3EE8BA2E;
+ selp.f32 %f763, 0f7FFFFFFF, %f763, %p45;
+
+BB0_27:
+ add.f32 %f414, %f48, 0f3EE8BA2E;
+ mov.b32 %r76, %f414;
+ setp.lt.s32 %p47, %r76, 2139095040;
+ @%p47 bra BB0_32;
+
+ setp.gtu.f32 %p48, %f48, 0f7F800000;
+ @%p48 bra BB0_31;
+ bra.uni BB0_29;
+
+BB0_31:
+ add.f32 %f763, %f760, 0f3EE8BA2E;
+ bra.uni BB0_32;
+
+BB0_29:
+ setp.neu.f32 %p49, %f48, 0f7F800000;
+ @%p49 bra BB0_32;
+
+ selp.f32 %f763, 0fFF800000, 0f7F800000, %p2;
+
+BB0_32:
+ mul.f32 %f415, %f763, 0f437F0000;
+ setp.eq.f32 %p50, %f760, 0f3F800000;
+ selp.f32 %f416, 0f437F0000, %f415, %p50;
+ cvt.rzi.u32.f32 %r77, %f416;
+ cvt.u16.u32 %rs11, %r77;
+ mov.u16 %rs12, 255;
+ st.v2.u8 [%rd26], {%rs11, %rs12};
+ ld.global.u32 %r162, [imageEnabled];
+
+BB0_33:
+ and.b32 %r78, %r162, 1;
+ setp.eq.b32 %p51, %r78, 1;
+ @!%p51 bra BB0_68;
+ bra.uni BB0_34;
+
+BB0_34:
+ mov.f32 %f725, 0fB5BFBE8E;
+ mov.f32 %f724, 0fBF317200;
+ mov.f32 %f723, 0f35BFBE8E;
+ mov.f32 %f722, 0f3F317200;
+ mov.f32 %f721, 0f3DAAAABD;
+ mov.f32 %f720, 0f3C4CAF63;
+ mov.f32 %f719, 0f3B18F0FE;
+ mov.f32 %f419, 0f3E666666;
+ cvt.rzi.f32.f32 %f420, %f419;
+ fma.rn.f32 %f421, %f420, 0fC0000000, 0f3EE66666;
+ abs.f32 %f60, %f421;
+ abs.f32 %f61, %f44;
+ setp.lt.f32 %p52, %f61, 0f00800000;
+ mul.f32 %f422, %f61, 0f4B800000;
+ selp.f32 %f423, 0fC3170000, 0fC2FE0000, %p52;
+ selp.f32 %f424, %f422, %f61, %p52;
+ mov.b32 %r79, %f424;
+ and.b32 %r80, %r79, 8388607;
+ or.b32 %r81, %r80, 1065353216;
+ mov.b32 %f425, %r81;
+ shr.u32 %r82, %r79, 23;
+ cvt.rn.f32.u32 %f426, %r82;
+ add.f32 %f427, %f423, %f426;
+ setp.gt.f32 %p53, %f425, 0f3FB504F3;
+ mul.f32 %f428, %f425, 0f3F000000;
+ add.f32 %f429, %f427, 0f3F800000;
+ selp.f32 %f430, %f428, %f425, %p53;
+ selp.f32 %f431, %f429, %f427, %p53;
+ add.f32 %f432, %f430, 0fBF800000;
+ add.f32 %f418, %f430, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f417,%f418;
+ // inline asm
+ add.f32 %f433, %f432, %f432;
+ mul.f32 %f434, %f417, %f433;
+ mul.f32 %f435, %f434, %f434;
+ fma.rn.f32 %f438, %f719, %f435, %f720;
+ fma.rn.f32 %f440, %f438, %f435, %f721;
+ mul.rn.f32 %f441, %f440, %f435;
+ mul.rn.f32 %f442, %f441, %f434;
+ sub.f32 %f443, %f432, %f434;
+ neg.f32 %f444, %f434;
+ add.f32 %f445, %f443, %f443;
+ fma.rn.f32 %f446, %f444, %f432, %f445;
+ mul.rn.f32 %f447, %f417, %f446;
+ add.f32 %f448, %f442, %f434;
+ sub.f32 %f449, %f434, %f448;
+ add.f32 %f450, %f442, %f449;
+ add.f32 %f451, %f447, %f450;
+ add.f32 %f452, %f448, %f451;
+ sub.f32 %f453, %f448, %f452;
+ add.f32 %f454, %f451, %f453;
+ mul.rn.f32 %f456, %f431, %f722;
+ mul.rn.f32 %f458, %f431, %f723;
+ add.f32 %f459, %f456, %f452;
+ sub.f32 %f460, %f456, %f459;
+ add.f32 %f461, %f452, %f460;
+ add.f32 %f462, %f454, %f461;
+ add.f32 %f463, %f458, %f462;
+ add.f32 %f464, %f459, %f463;
+ sub.f32 %f465, %f459, %f464;
+ add.f32 %f466, %f463, %f465;
+ mov.f32 %f467, 0f3EE66666;
+ mul.rn.f32 %f468, %f467, %f464;
+ neg.f32 %f469, %f468;
+ fma.rn.f32 %f470, %f467, %f464, %f469;
+ fma.rn.f32 %f471, %f467, %f466, %f470;
+ mov.f32 %f472, 0f00000000;
+ fma.rn.f32 %f473, %f472, %f464, %f471;
+ add.rn.f32 %f474, %f468, %f473;
+ neg.f32 %f475, %f474;
+ add.rn.f32 %f476, %f468, %f475;
+ add.rn.f32 %f477, %f476, %f473;
+ mov.b32 %r83, %f474;
+ setp.eq.s32 %p54, %r83, 1118925336;
+ add.s32 %r84, %r83, -1;
+ mov.b32 %f478, %r84;
+ add.f32 %f479, %f477, 0f37000000;
+ selp.f32 %f480, %f478, %f474, %p54;
+ selp.f32 %f62, %f479, %f477, %p54;
+ mul.f32 %f481, %f480, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f482, %f481;
+ fma.rn.f32 %f484, %f482, %f724, %f480;
+ fma.rn.f32 %f486, %f482, %f725, %f484;
+ mul.f32 %f487, %f486, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f488, %f487;
+ add.f32 %f489, %f482, 0f00000000;
+ ex2.approx.f32 %f490, %f489;
+ mul.f32 %f491, %f488, %f490;
+ setp.lt.f32 %p55, %f480, 0fC2D20000;
+ selp.f32 %f492, 0f00000000, %f491, %p55;
+ setp.gt.f32 %p56, %f480, 0f42D20000;
+ selp.f32 %f764, 0f7F800000, %f492, %p56;
+ setp.eq.f32 %p57, %f764, 0f7F800000;
+ @%p57 bra BB0_36;
+
+ fma.rn.f32 %f764, %f764, %f62, %f764;
+
+BB0_36:
+ setp.lt.f32 %p58, %f44, 0f00000000;
+ setp.eq.f32 %p59, %f60, 0f3F800000;
+ and.pred %p3, %p58, %p59;
+ mov.b32 %r85, %f764;
+ xor.b32 %r86, %r85, -2147483648;
+ mov.b32 %f493, %r86;
+ selp.f32 %f766, %f493, %f764, %p3;
+ setp.eq.f32 %p60, %f44, 0f00000000;
+ @%p60 bra BB0_39;
+ bra.uni BB0_37;
+
+BB0_39:
+ add.f32 %f496, %f44, %f44;
+ selp.f32 %f766, %f496, 0f00000000, %p59;
+ bra.uni BB0_40;
+
+BB0_37:
+ setp.geu.f32 %p61, %f44, 0f00000000;
+ @%p61 bra BB0_40;
+
+ cvt.rzi.f32.f32 %f495, %f467;
+ setp.neu.f32 %p62, %f495, 0f3EE66666;
+ selp.f32 %f766, 0f7FFFFFFF, %f766, %p62;
+
+BB0_40:
+ add.f32 %f497, %f61, 0f3EE66666;
+ mov.b32 %r87, %f497;
+ setp.lt.s32 %p64, %r87, 2139095040;
+ @%p64 bra BB0_45;
+
+ setp.gtu.f32 %p65, %f61, 0f7F800000;
+ @%p65 bra BB0_44;
+ bra.uni BB0_42;
+
+BB0_44:
+ add.f32 %f766, %f44, 0f3EE66666;
+ bra.uni BB0_45;
+
+BB0_42:
+ setp.neu.f32 %p66, %f61, 0f7F800000;
+ @%p66 bra BB0_45;
+
+ selp.f32 %f766, 0fFF800000, 0f7F800000, %p3;
+
+BB0_45:
+ mov.f32 %f732, 0fB5BFBE8E;
+ mov.f32 %f731, 0fBF317200;
+ mov.f32 %f730, 0f35BFBE8E;
+ mov.f32 %f729, 0f3F317200;
+ mov.f32 %f728, 0f3DAAAABD;
+ mov.f32 %f727, 0f3C4CAF63;
+ mov.f32 %f726, 0f3B18F0FE;
+ setp.eq.f32 %p67, %f44, 0f3F800000;
+ selp.f32 %f73, 0f3F800000, %f766, %p67;
+ abs.f32 %f74, %f45;
+ setp.lt.f32 %p68, %f74, 0f00800000;
+ mul.f32 %f500, %f74, 0f4B800000;
+ selp.f32 %f501, 0fC3170000, 0fC2FE0000, %p68;
+ selp.f32 %f502, %f500, %f74, %p68;
+ mov.b32 %r88, %f502;
+ and.b32 %r89, %r88, 8388607;
+ or.b32 %r90, %r89, 1065353216;
+ mov.b32 %f503, %r90;
+ shr.u32 %r91, %r88, 23;
+ cvt.rn.f32.u32 %f504, %r91;
+ add.f32 %f505, %f501, %f504;
+ setp.gt.f32 %p69, %f503, 0f3FB504F3;
+ mul.f32 %f506, %f503, 0f3F000000;
+ add.f32 %f507, %f505, 0f3F800000;
+ selp.f32 %f508, %f506, %f503, %p69;
+ selp.f32 %f509, %f507, %f505, %p69;
+ add.f32 %f510, %f508, 0fBF800000;
+ add.f32 %f499, %f508, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f498,%f499;
+ // inline asm
+ add.f32 %f511, %f510, %f510;
+ mul.f32 %f512, %f498, %f511;
+ mul.f32 %f513, %f512, %f512;
+ fma.rn.f32 %f516, %f726, %f513, %f727;
+ fma.rn.f32 %f518, %f516, %f513, %f728;
+ mul.rn.f32 %f519, %f518, %f513;
+ mul.rn.f32 %f520, %f519, %f512;
+ sub.f32 %f521, %f510, %f512;
+ neg.f32 %f522, %f512;
+ add.f32 %f523, %f521, %f521;
+ fma.rn.f32 %f524, %f522, %f510, %f523;
+ mul.rn.f32 %f525, %f498, %f524;
+ add.f32 %f526, %f520, %f512;
+ sub.f32 %f527, %f512, %f526;
+ add.f32 %f528, %f520, %f527;
+ add.f32 %f529, %f525, %f528;
+ add.f32 %f530, %f526, %f529;
+ sub.f32 %f531, %f526, %f530;
+ add.f32 %f532, %f529, %f531;
+ mul.rn.f32 %f534, %f509, %f729;
+ mul.rn.f32 %f536, %f509, %f730;
+ add.f32 %f537, %f534, %f530;
+ sub.f32 %f538, %f534, %f537;
+ add.f32 %f539, %f530, %f538;
+ add.f32 %f540, %f532, %f539;
+ add.f32 %f541, %f536, %f540;
+ add.f32 %f542, %f537, %f541;
+ sub.f32 %f543, %f537, %f542;
+ add.f32 %f544, %f541, %f543;
+ mul.rn.f32 %f546, %f467, %f542;
+ neg.f32 %f547, %f546;
+ fma.rn.f32 %f548, %f467, %f542, %f547;
+ fma.rn.f32 %f549, %f467, %f544, %f548;
+ fma.rn.f32 %f551, %f472, %f542, %f549;
+ add.rn.f32 %f552, %f546, %f551;
+ neg.f32 %f553, %f552;
+ add.rn.f32 %f554, %f546, %f553;
+ add.rn.f32 %f555, %f554, %f551;
+ mov.b32 %r92, %f552;
+ setp.eq.s32 %p70, %r92, 1118925336;
+ add.s32 %r93, %r92, -1;
+ mov.b32 %f556, %r93;
+ add.f32 %f557, %f555, 0f37000000;
+ selp.f32 %f558, %f556, %f552, %p70;
+ selp.f32 %f75, %f557, %f555, %p70;
+ mul.f32 %f559, %f558, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f560, %f559;
+ fma.rn.f32 %f562, %f560, %f731, %f558;
+ fma.rn.f32 %f564, %f560, %f732, %f562;
+ mul.f32 %f565, %f564, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f566, %f565;
+ add.f32 %f567, %f560, 0f00000000;
+ ex2.approx.f32 %f568, %f567;
+ mul.f32 %f569, %f566, %f568;
+ setp.lt.f32 %p71, %f558, 0fC2D20000;
+ selp.f32 %f570, 0f00000000, %f569, %p71;
+ setp.gt.f32 %p72, %f558, 0f42D20000;
+ selp.f32 %f767, 0f7F800000, %f570, %p72;
+ setp.eq.f32 %p73, %f767, 0f7F800000;
+ @%p73 bra BB0_47;
+
+ fma.rn.f32 %f767, %f767, %f75, %f767;
+
+BB0_47:
+ setp.lt.f32 %p74, %f45, 0f00000000;
+ and.pred %p4, %p74, %p59;
+ mov.b32 %r94, %f767;
+ xor.b32 %r95, %r94, -2147483648;
+ mov.b32 %f571, %r95;
+ selp.f32 %f769, %f571, %f767, %p4;
+ setp.eq.f32 %p76, %f45, 0f00000000;
+ @%p76 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f574, %f45, %f45;
+ selp.f32 %f769, %f574, 0f00000000, %p59;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p77, %f45, 0f00000000;
+ @%p77 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f573, %f467;
+ setp.neu.f32 %p78, %f573, 0f3EE66666;
+ selp.f32 %f769, 0f7FFFFFFF, %f769, %p78;
+
+BB0_51:
+ add.f32 %f575, %f74, 0f3EE66666;
+ mov.b32 %r96, %f575;
+ setp.lt.s32 %p80, %r96, 2139095040;
+ @%p80 bra BB0_56;
+
+ setp.gtu.f32 %p81, %f74, 0f7F800000;
+ @%p81 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f769, %f45, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p82, %f74, 0f7F800000;
+ @%p82 bra BB0_56;
+
+ selp.f32 %f769, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f739, 0fB5BFBE8E;
+ mov.f32 %f738, 0fBF317200;
+ mov.f32 %f737, 0f35BFBE8E;
+ mov.f32 %f736, 0f3F317200;
+ mov.f32 %f735, 0f3DAAAABD;
+ mov.f32 %f734, 0f3C4CAF63;
+ mov.f32 %f733, 0f3B18F0FE;
+ setp.eq.f32 %p83, %f45, 0f3F800000;
+ selp.f32 %f86, 0f3F800000, %f769, %p83;
+ abs.f32 %f87, %f46;
+ setp.lt.f32 %p84, %f87, 0f00800000;
+ mul.f32 %f578, %f87, 0f4B800000;
+ selp.f32 %f579, 0fC3170000, 0fC2FE0000, %p84;
+ selp.f32 %f580, %f578, %f87, %p84;
+ mov.b32 %r97, %f580;
+ and.b32 %r98, %r97, 8388607;
+ or.b32 %r99, %r98, 1065353216;
+ mov.b32 %f581, %r99;
+ shr.u32 %r100, %r97, 23;
+ cvt.rn.f32.u32 %f582, %r100;
+ add.f32 %f583, %f579, %f582;
+ setp.gt.f32 %p85, %f581, 0f3FB504F3;
+ mul.f32 %f584, %f581, 0f3F000000;
+ add.f32 %f585, %f583, 0f3F800000;
+ selp.f32 %f586, %f584, %f581, %p85;
+ selp.f32 %f587, %f585, %f583, %p85;
+ add.f32 %f588, %f586, 0fBF800000;
+ add.f32 %f577, %f586, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f576,%f577;
+ // inline asm
+ add.f32 %f589, %f588, %f588;
+ mul.f32 %f590, %f576, %f589;
+ mul.f32 %f591, %f590, %f590;
+ fma.rn.f32 %f594, %f733, %f591, %f734;
+ fma.rn.f32 %f596, %f594, %f591, %f735;
+ mul.rn.f32 %f597, %f596, %f591;
+ mul.rn.f32 %f598, %f597, %f590;
+ sub.f32 %f599, %f588, %f590;
+ neg.f32 %f600, %f590;
+ add.f32 %f601, %f599, %f599;
+ fma.rn.f32 %f602, %f600, %f588, %f601;
+ mul.rn.f32 %f603, %f576, %f602;
+ add.f32 %f604, %f598, %f590;
+ sub.f32 %f605, %f590, %f604;
+ add.f32 %f606, %f598, %f605;
+ add.f32 %f607, %f603, %f606;
+ add.f32 %f608, %f604, %f607;
+ sub.f32 %f609, %f604, %f608;
+ add.f32 %f610, %f607, %f609;
+ mul.rn.f32 %f612, %f587, %f736;
+ mul.rn.f32 %f614, %f587, %f737;
+ add.f32 %f615, %f612, %f608;
+ sub.f32 %f616, %f612, %f615;
+ add.f32 %f617, %f608, %f616;
+ add.f32 %f618, %f610, %f617;
+ add.f32 %f619, %f614, %f618;
+ add.f32 %f620, %f615, %f619;
+ sub.f32 %f621, %f615, %f620;
+ add.f32 %f622, %f619, %f621;
+ mul.rn.f32 %f624, %f467, %f620;
+ neg.f32 %f625, %f624;
+ fma.rn.f32 %f626, %f467, %f620, %f625;
+ fma.rn.f32 %f627, %f467, %f622, %f626;
+ fma.rn.f32 %f629, %f472, %f620, %f627;
+ add.rn.f32 %f630, %f624, %f629;
+ neg.f32 %f631, %f630;
+ add.rn.f32 %f632, %f624, %f631;
+ add.rn.f32 %f633, %f632, %f629;
+ mov.b32 %r101, %f630;
+ setp.eq.s32 %p86, %r101, 1118925336;
+ add.s32 %r102, %r101, -1;
+ mov.b32 %f634, %r102;
+ add.f32 %f635, %f633, 0f37000000;
+ selp.f32 %f636, %f634, %f630, %p86;
+ selp.f32 %f88, %f635, %f633, %p86;
+ mul.f32 %f637, %f636, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f638, %f637;
+ fma.rn.f32 %f640, %f638, %f738, %f636;
+ fma.rn.f32 %f642, %f638, %f739, %f640;
+ mul.f32 %f643, %f642, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f644, %f643;
+ add.f32 %f645, %f638, 0f00000000;
+ ex2.approx.f32 %f646, %f645;
+ mul.f32 %f647, %f644, %f646;
+ setp.lt.f32 %p87, %f636, 0fC2D20000;
+ selp.f32 %f648, 0f00000000, %f647, %p87;
+ setp.gt.f32 %p88, %f636, 0f42D20000;
+ selp.f32 %f770, 0f7F800000, %f648, %p88;
+ setp.eq.f32 %p89, %f770, 0f7F800000;
+ @%p89 bra BB0_58;
+
+ fma.rn.f32 %f770, %f770, %f88, %f770;
+
+BB0_58:
+ setp.lt.f32 %p90, %f46, 0f00000000;
+ and.pred %p5, %p90, %p59;
+ mov.b32 %r103, %f770;
+ xor.b32 %r104, %r103, -2147483648;
+ mov.b32 %f649, %r104;
+ selp.f32 %f772, %f649, %f770, %p5;
+ setp.eq.f32 %p92, %f46, 0f00000000;
+ @%p92 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f652, %f46, %f46;
+ selp.f32 %f772, %f652, 0f00000000, %p59;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p93, %f46, 0f00000000;
+ @%p93 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f651, %f467;
+ setp.neu.f32 %p94, %f651, 0f3EE66666;
+ selp.f32 %f772, 0f7FFFFFFF, %f772, %p94;
+
+BB0_62:
+ add.f32 %f653, %f87, 0f3EE66666;
+ mov.b32 %r105, %f653;
+ setp.lt.s32 %p96, %r105, 2139095040;
+ @%p96 bra BB0_67;
+
+ setp.gtu.f32 %p97, %f87, 0f7F800000;
+ @%p97 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f772, %f46, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p98, %f87, 0f7F800000;
+ @%p98 bra BB0_67;
+
+ selp.f32 %f772, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ setp.eq.f32 %p99, %f46, 0f3F800000;
+ selp.f32 %f654, 0f3F800000, %f772, %p99;
+ cvt.u64.u32 %rd36, %r3;
+ cvt.u64.u32 %rd35, %r2;
+ mov.u64 %rd39, image;
+ cvta.global.u64 %rd34, %rd39;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r26, %r27, %rd35, %rd36, %rd15, %rd15);
+ // inline asm
+ cvt.sat.f32.f32 %f655, %f654;
+ mul.f32 %f656, %f655, 0f437FFD71;
+ cvt.rzi.u32.f32 %r108, %f656;
+ cvt.sat.f32.f32 %f657, %f86;
+ mul.f32 %f658, %f657, 0f437FFD71;
+ cvt.rzi.u32.f32 %r109, %f658;
+ cvt.sat.f32.f32 %f659, %f73;
+ mul.f32 %f660, %f659, 0f437FFD71;
+ cvt.rzi.u32.f32 %r110, %f660;
+ cvt.u16.u32 %rs13, %r108;
+ cvt.u16.u32 %rs14, %r110;
+ cvt.u16.u32 %rs15, %r109;
+ mov.u16 %rs16, 255;
+ st.v4.u8 [%rd33], {%rs13, %rs15, %rs14, %rs16};
+ ld.global.u32 %r162, [imageEnabled];
+
+BB0_68:
+ and.b32 %r111, %r162, 4;
+ setp.eq.s32 %p100, %r111, 0;
+ @%p100 bra BB0_72;
+
+ ld.global.u32 %r112, [additive];
+ setp.eq.s32 %p101, %r112, 0;
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ mov.f32 %f661, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs17, %f661;}
+
+ // inline asm
+ @%p101 bra BB0_71;
+
+ mov.u64 %rd52, image_HDR;
+ cvta.global.u64 %rd41, %rd52;
+ mov.u32 %r116, 8;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r26, %r116, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs24, %rs25, %rs26, %rs27}, [%rd40];
+ // inline asm
+ { cvt.f32.f16 %f662, %rs24;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f663, %rs25;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f664, %rs26;}
+
+ // inline asm
+ // inline asm
+ call (%rd46), _rt_buffer_get_64, (%rd41, %r26, %r116, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f665, %f44, %f662;
+ add.f32 %f666, %f45, %f663;
+ add.f32 %f667, %f46, %f664;
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f667;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f666;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs21, %f665;}
+
+ // inline asm
+ st.v4.u16 [%rd46], {%rs21, %rs22, %rs23, %rs17};
+ bra.uni BB0_72;
+
+BB0_71:
+ mov.u64 %rd59, image_HDR;
+ cvta.global.u64 %rd54, %rd59;
+ mov.u32 %r118, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r26, %r118, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f46;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f45;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f44;}
+
+ // inline asm
+ st.v4.u16 [%rd53], {%rs28, %rs29, %rs30, %rs17};
+
+BB0_72:
+ ld.global.u8 %rs31, [imageEnabled];
+ and.b16 %rs32, %rs31, 64;
+ setp.eq.s16 %p102, %rs32, 0;
+ @%p102 bra BB0_95;
+
+ sub.f32 %f745, %f11, %f12;
+ mul.f32 %f744, %f745, %f128;
+ sub.f32 %f743, %f7, %f8;
+ mul.f32 %f742, %f743, %f128;
+ sub.f32 %f741, %f9, %f10;
+ mul.f32 %f740, %f741, %f128;
+ cvt.u64.u32 %rd62, %r2;
+ cvt.u64.u32 %rd63, %r3;
+ mov.u64 %rd66, image_Dir;
+ cvta.global.u64 %rd61, %rd66;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r26, %r27, %rd62, %rd63, %rd15, %rd15);
+ // inline asm
+ fma.rn.f32 %f671, %f742, 0f3F000000, 0f3F000000;
+ mul.f32 %f672, %f671, 0f437F0000;
+ cvt.rzi.u32.f32 %r121, %f672;
+ fma.rn.f32 %f673, %f740, 0f3F000000, 0f3F000000;
+ mul.f32 %f674, %f673, 0f437F0000;
+ cvt.rzi.u32.f32 %r122, %f674;
+ fma.rn.f32 %f675, %f744, 0f3F000000, 0f3F000000;
+ mul.f32 %f676, %f675, 0f437F0000;
+ cvt.rzi.u32.f32 %r123, %f676;
+ cvt.u16.u32 %rs33, %r123;
+ cvt.u16.u32 %rs34, %r122;
+ cvt.u16.u32 %rs35, %r121;
+ mov.u16 %rs36, 255;
+ st.v4.u8 [%rd60], {%rs35, %rs34, %rs33, %rs36};
+
+BB0_95:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLight.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLight.ptx.meta
new file mode 100644
index 00000000..49b64df3
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLight.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 95391c7593c3f5046a71076530bd8632
+timeCreated: 1558780075
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightProbeSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightProbeSH.ptx
new file mode 100644
index 00000000..b524e38f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightProbeSH.ptx
@@ -0,0 +1,2276 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .b8 lightConeDir[12];
+.global .align 8 .b8 lightCone[8];
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12lightConeDirE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9lightConeE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12lightConeDirE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9lightConeE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12lightConeDirE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9lightConeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12lightConeDirE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9lightConeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12lightConeDirE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9lightConeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<122>;
+ .reg .b16 %rs<221>;
+ .reg .f32 %f<872>;
+ .reg .b32 %r<242>;
+ .reg .b64 %rd<369>;
+
+
+ mov.u64 %rd368, __local_depot0;
+ cvta.local.u64 %SP, %rd368;
+ ld.global.v2.u32 {%r28, %r29}, [pixelID];
+ cvt.u64.u32 %rd12, %r28;
+ cvt.u64.u32 %rd13, %r29;
+ mov.u64 %rd16, uvnormal;
+ cvta.global.u64 %rd11, %rd16;
+ mov.u32 %r26, 2;
+ mov.u32 %r27, 4;
+ mov.u64 %rd15, 0;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r26, %r27, %rd12, %rd13, %rd15, %rd15);
+ // inline asm
+ ld.u32 %r1, [%rd10];
+ shr.u32 %r32, %r1, 16;
+ cvt.u16.u32 %rs1, %r32;
+ and.b16 %rs12, %rs1, 255;
+ cvt.u16.u32 %rs13, %r1;
+ or.b16 %rs14, %rs13, %rs12;
+ setp.eq.s16 %p6, %rs14, 0;
+ mov.f32 %f848, 0f00000000;
+ mov.f32 %f849, %f848;
+ mov.f32 %f850, %f848;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs15, [%rd10+1];
+ and.b16 %rs17, %rs13, 255;
+ cvt.rn.f32.u16 %f113, %rs17;
+ div.rn.f32 %f114, %f113, 0f437F0000;
+ fma.rn.f32 %f115, %f114, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f116, %rs15;
+ div.rn.f32 %f117, %f116, 0f437F0000;
+ fma.rn.f32 %f118, %f117, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f119, %rs12;
+ div.rn.f32 %f120, %f119, 0f437F0000;
+ fma.rn.f32 %f121, %f120, 0f40000000, 0fBF800000;
+ mul.f32 %f122, %f118, %f118;
+ fma.rn.f32 %f123, %f115, %f115, %f122;
+ fma.rn.f32 %f124, %f121, %f121, %f123;
+ sqrt.rn.f32 %f125, %f124;
+ rcp.rn.f32 %f126, %f125;
+ mul.f32 %f848, %f115, %f126;
+ mul.f32 %f849, %f118, %f126;
+ mul.f32 %f850, %f121, %f126;
+
+BB0_2:
+ ld.global.v2.u32 {%r33, %r34}, [pixelID];
+ ld.global.v2.u32 {%r36, %r37}, [tileInfo];
+ add.s32 %r2, %r33, %r36;
+ add.s32 %r3, %r34, %r37;
+ setp.eq.f32 %p7, %f849, 0f00000000;
+ setp.eq.f32 %p8, %f848, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f850, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_105;
+ bra.uni BB0_3;
+
+BB0_105:
+ ld.global.u32 %r241, [imageEnabled];
+ and.b32 %r190, %r241, 1;
+ setp.eq.b32 %p114, %r190, 1;
+ @!%p114 bra BB0_107;
+ bra.uni BB0_106;
+
+BB0_106:
+ cvt.u64.u32 %rd256, %r2;
+ cvt.u64.u32 %rd257, %r3;
+ mov.u64 %rd260, image;
+ cvta.global.u64 %rd255, %rd260;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r26, %r27, %rd256, %rd257, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs153, 0;
+ st.v4.u8 [%rd254], {%rs153, %rs153, %rs153, %rs153};
+ ld.global.u32 %r241, [imageEnabled];
+
+BB0_107:
+ and.b32 %r193, %r241, 8;
+ setp.eq.s32 %p115, %r193, 0;
+ @%p115 bra BB0_109;
+
+ cvt.u64.u32 %rd264, %r3;
+ cvt.u64.u32 %rd263, %r2;
+ mov.u64 %rd267, image_Mask;
+ cvta.global.u64 %rd262, %rd267;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r26, %r26, %rd263, %rd264, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f761, 0f00000000;
+ cvt.rzi.u32.f32 %r196, %f761;
+ cvt.u16.u32 %rs154, %r196;
+ mov.u16 %rs155, 0;
+ st.v2.u8 [%rd261], {%rs154, %rs155};
+ ld.global.u32 %r241, [imageEnabled];
+
+BB0_109:
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ and.b32 %r197, %r241, 4;
+ setp.eq.s32 %p116, %r197, 0;
+ @%p116 bra BB0_113;
+
+ ld.global.u32 %r198, [additive];
+ setp.eq.s32 %p117, %r198, 0;
+ @%p117 bra BB0_112;
+
+ mov.u64 %rd280, image_HDR;
+ cvta.global.u64 %rd269, %rd280;
+ mov.u32 %r202, 8;
+ // inline asm
+ call (%rd268), _rt_buffer_get_64, (%rd269, %r26, %r202, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs162, %rs163, %rs164, %rs165}, [%rd268];
+ // inline asm
+ { cvt.f32.f16 %f762, %rs162;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f763, %rs163;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f764, %rs164;}
+
+ // inline asm
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd269, %r26, %r202, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f765, %f762, 0f00000000;
+ add.f32 %f766, %f763, 0f00000000;
+ add.f32 %f767, %f764, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs161, %f767;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs160, %f766;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs159, %f765;}
+
+ // inline asm
+ mov.u16 %rs166, 0;
+ st.v4.u16 [%rd274], {%rs159, %rs160, %rs161, %rs166};
+ bra.uni BB0_113;
+
+BB0_3:
+ ld.global.v2.u32 {%r43, %r44}, [pixelID];
+ cvt.u64.u32 %rd19, %r43;
+ cvt.u64.u32 %rd20, %r44;
+ mov.u64 %rd23, uvpos;
+ cvta.global.u64 %rd18, %rd23;
+ mov.u32 %r42, 12;
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd18, %r26, %r42, %rd19, %rd20, %rd15, %rd15);
+ // inline asm
+ ld.global.f32 %f7, [lightPos];
+ ld.f32 %f12, [%rd17+8];
+ ld.f32 %f10, [%rd17+4];
+ ld.f32 %f8, [%rd17];
+ sub.f32 %f129, %f7, %f8;
+ ld.global.f32 %f9, [lightPos+4];
+ sub.f32 %f130, %f9, %f10;
+ ld.global.f32 %f11, [lightPos+8];
+ sub.f32 %f131, %f11, %f12;
+ mul.f32 %f132, %f130, %f130;
+ fma.rn.f32 %f133, %f129, %f129, %f132;
+ fma.rn.f32 %f134, %f131, %f131, %f133;
+ sqrt.rn.f32 %f135, %f134;
+ rcp.rn.f32 %f136, %f135;
+ ld.global.f32 %f137, [lightFalloffFakeDistanceMult];
+ mul.f32 %f16, %f135, %f137;
+ ld.global.f32 %f138, [lightInvCutoff];
+ mul.f32 %f17, %f135, %f138;
+ mov.f32 %f142, 0f40800000;
+ abs.f32 %f19, %f17;
+ setp.lt.f32 %p12, %f19, 0f00800000;
+ mul.f32 %f144, %f19, 0f4B800000;
+ selp.f32 %f145, 0fC3170000, 0fC2FE0000, %p12;
+ selp.f32 %f146, %f144, %f19, %p12;
+ mov.b32 %r47, %f146;
+ and.b32 %r48, %r47, 8388607;
+ or.b32 %r49, %r48, 1065353216;
+ mov.b32 %f147, %r49;
+ shr.u32 %r50, %r47, 23;
+ cvt.rn.f32.u32 %f148, %r50;
+ add.f32 %f149, %f145, %f148;
+ setp.gt.f32 %p13, %f147, 0f3FB504F3;
+ mul.f32 %f150, %f147, 0f3F000000;
+ add.f32 %f151, %f149, 0f3F800000;
+ selp.f32 %f152, %f150, %f147, %p13;
+ selp.f32 %f153, %f151, %f149, %p13;
+ add.f32 %f154, %f152, 0fBF800000;
+ add.f32 %f128, %f152, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f127,%f128;
+ // inline asm
+ add.f32 %f155, %f154, %f154;
+ mul.f32 %f156, %f127, %f155;
+ mul.f32 %f157, %f156, %f156;
+ mov.f32 %f158, 0f3C4CAF63;
+ mov.f32 %f159, 0f3B18F0FE;
+ fma.rn.f32 %f160, %f159, %f157, %f158;
+ mov.f32 %f161, 0f3DAAAABD;
+ fma.rn.f32 %f162, %f160, %f157, %f161;
+ mul.rn.f32 %f163, %f162, %f157;
+ mul.rn.f32 %f164, %f163, %f156;
+ sub.f32 %f165, %f154, %f156;
+ neg.f32 %f166, %f156;
+ add.f32 %f167, %f165, %f165;
+ fma.rn.f32 %f168, %f166, %f154, %f167;
+ mul.rn.f32 %f169, %f127, %f168;
+ add.f32 %f170, %f164, %f156;
+ sub.f32 %f171, %f156, %f170;
+ add.f32 %f172, %f164, %f171;
+ add.f32 %f173, %f169, %f172;
+ add.f32 %f174, %f170, %f173;
+ sub.f32 %f175, %f170, %f174;
+ add.f32 %f176, %f173, %f175;
+ mov.f32 %f177, 0f3F317200;
+ mul.rn.f32 %f178, %f153, %f177;
+ mov.f32 %f179, 0f35BFBE8E;
+ mul.rn.f32 %f180, %f153, %f179;
+ add.f32 %f181, %f178, %f174;
+ sub.f32 %f182, %f178, %f181;
+ add.f32 %f183, %f174, %f182;
+ add.f32 %f184, %f176, %f183;
+ add.f32 %f185, %f180, %f184;
+ add.f32 %f186, %f181, %f185;
+ sub.f32 %f187, %f181, %f186;
+ add.f32 %f188, %f185, %f187;
+ mul.rn.f32 %f189, %f142, %f186;
+ neg.f32 %f190, %f189;
+ fma.rn.f32 %f191, %f142, %f186, %f190;
+ fma.rn.f32 %f192, %f142, %f188, %f191;
+ mov.f32 %f193, 0f00000000;
+ fma.rn.f32 %f194, %f193, %f186, %f192;
+ add.rn.f32 %f195, %f189, %f194;
+ neg.f32 %f196, %f195;
+ add.rn.f32 %f197, %f189, %f196;
+ add.rn.f32 %f198, %f197, %f194;
+ mov.b32 %r51, %f195;
+ setp.eq.s32 %p14, %r51, 1118925336;
+ add.s32 %r52, %r51, -1;
+ mov.b32 %f199, %r52;
+ add.f32 %f200, %f198, 0f37000000;
+ selp.f32 %f201, %f199, %f195, %p14;
+ selp.f32 %f20, %f200, %f198, %p14;
+ mul.f32 %f202, %f201, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f203, %f202;
+ mov.f32 %f204, 0fBF317200;
+ fma.rn.f32 %f205, %f203, %f204, %f201;
+ mov.f32 %f206, 0fB5BFBE8E;
+ fma.rn.f32 %f207, %f203, %f206, %f205;
+ mul.f32 %f208, %f207, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f209, %f208;
+ add.f32 %f210, %f203, 0f00000000;
+ ex2.approx.f32 %f211, %f210;
+ mul.f32 %f212, %f209, %f211;
+ setp.lt.f32 %p15, %f201, 0fC2D20000;
+ selp.f32 %f213, 0f00000000, %f212, %p15;
+ setp.gt.f32 %p16, %f201, 0f42D20000;
+ selp.f32 %f851, 0f7F800000, %f213, %p16;
+ setp.eq.f32 %p17, %f851, 0f7F800000;
+ @%p17 bra BB0_5;
+
+ fma.rn.f32 %f851, %f851, %f20, %f851;
+
+BB0_5:
+ mov.f32 %f802, 0f40000000;
+ cvt.rzi.f32.f32 %f801, %f802;
+ add.f32 %f800, %f801, %f801;
+ mov.f32 %f799, 0f40800000;
+ sub.f32 %f798, %f799, %f800;
+ abs.f32 %f797, %f798;
+ setp.lt.f32 %p18, %f17, 0f00000000;
+ setp.eq.f32 %p19, %f797, 0f3F800000;
+ and.pred %p1, %p18, %p19;
+ mov.b32 %r53, %f851;
+ xor.b32 %r54, %r53, -2147483648;
+ mov.b32 %f214, %r54;
+ selp.f32 %f853, %f214, %f851, %p1;
+ setp.eq.f32 %p20, %f17, 0f00000000;
+ @%p20 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f217, %f17, %f17;
+ selp.f32 %f853, %f217, 0f00000000, %p19;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p21, %f17, 0f00000000;
+ @%p21 bra BB0_9;
+
+ mov.f32 %f847, 0f40800000;
+ cvt.rzi.f32.f32 %f216, %f847;
+ setp.neu.f32 %p22, %f216, 0f40800000;
+ selp.f32 %f853, 0f7FFFFFFF, %f853, %p22;
+
+BB0_9:
+ abs.f32 %f803, %f17;
+ add.f32 %f218, %f803, 0f40800000;
+ mov.b32 %r55, %f218;
+ setp.lt.s32 %p24, %r55, 2139095040;
+ @%p24 bra BB0_14;
+
+ abs.f32 %f845, %f17;
+ setp.gtu.f32 %p25, %f845, 0f7F800000;
+ @%p25 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f853, %f17, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f846, %f17;
+ setp.neu.f32 %p26, %f846, 0f7F800000;
+ @%p26 bra BB0_14;
+
+ selp.f32 %f853, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ sub.f32 %f809, %f11, %f12;
+ mul.f32 %f808, %f809, %f136;
+ sub.f32 %f807, %f7, %f8;
+ mul.f32 %f806, %f807, %f136;
+ sub.f32 %f805, %f9, %f10;
+ mul.f32 %f804, %f805, %f136;
+ mov.f32 %f859, 0f3F800000;
+ sub.f32 %f220, %f859, %f853;
+ setp.eq.f32 %p27, %f17, 0f3F800000;
+ selp.f32 %f221, 0f00000000, %f220, %p27;
+ cvt.sat.f32.f32 %f222, %f221;
+ ld.global.f32 %f223, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f224, %f16, %f16, %f223;
+ div.rn.f32 %f225, %f222, %f224;
+ mul.f32 %f226, %f849, %f804;
+ fma.rn.f32 %f227, %f848, %f806, %f226;
+ fma.rn.f32 %f31, %f850, %f808, %f227;
+ ld.global.u32 %r239, [imageEnabled];
+ ld.global.f32 %f228, [lightConeDir];
+ mul.f32 %f229, %f806, %f228;
+ ld.global.f32 %f230, [lightConeDir+4];
+ mul.f32 %f231, %f804, %f230;
+ neg.f32 %f232, %f231;
+ sub.f32 %f233, %f232, %f229;
+ ld.global.f32 %f234, [lightConeDir+8];
+ mul.f32 %f235, %f808, %f234;
+ sub.f32 %f236, %f233, %f235;
+ ld.global.v2.f32 {%f237, %f238}, [lightCone];
+ fma.rn.f32 %f241, %f237, %f236, %f238;
+ cvt.sat.f32.f32 %f242, %f241;
+ mul.f32 %f243, %f242, %f242;
+ mul.f32 %f32, %f225, %f243;
+ ld.global.f32 %f244, [lightColor+4];
+ ld.global.f32 %f245, [lightColor];
+ max.f32 %f246, %f245, %f244;
+ ld.global.f32 %f247, [lightColor+8];
+ max.f32 %f248, %f246, %f247;
+ mul.f32 %f249, %f32, %f248;
+ setp.lt.f32 %p28, %f249, 0f3727C5AC;
+ @%p28 bra BB0_85;
+ bra.uni BB0_15;
+
+BB0_85:
+ and.b32 %r147, %r239, 1;
+ setp.eq.b32 %p106, %r147, 1;
+ @!%p106 bra BB0_87;
+ bra.uni BB0_86;
+
+BB0_86:
+ cvt.u64.u32 %rd142, %r2;
+ cvt.u64.u32 %rd143, %r3;
+ mov.u64 %rd146, image;
+ cvta.global.u64 %rd141, %rd146;
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd141, %r26, %r27, %rd142, %rd143, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs89, 1;
+ mov.u16 %rs90, 0;
+ st.v4.u8 [%rd140], {%rs90, %rs90, %rs90, %rs89};
+ ld.global.u32 %r239, [imageEnabled];
+
+BB0_87:
+ and.b32 %r150, %r239, 8;
+ setp.eq.s32 %p107, %r150, 0;
+ @%p107 bra BB0_89;
+
+ cvt.u64.u32 %rd150, %r3;
+ cvt.u64.u32 %rd149, %r2;
+ mov.u64 %rd153, image_Mask;
+ cvta.global.u64 %rd148, %rd153;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r26, %r26, %rd149, %rd150, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f718, 0f00000000;
+ cvt.rzi.u32.f32 %r153, %f718;
+ cvt.u16.u32 %rs91, %r153;
+ mov.u16 %rs92, 255;
+ st.v2.u8 [%rd147], {%rs91, %rs92};
+ ld.global.u32 %r239, [imageEnabled];
+
+BB0_89:
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ and.b32 %r154, %r239, 4;
+ setp.eq.s32 %p108, %r154, 0;
+ @%p108 bra BB0_93;
+
+ ld.global.u32 %r155, [additive];
+ setp.eq.s32 %p109, %r155, 0;
+ mov.f32 %f719, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f719;}
+
+ // inline asm
+ @%p109 bra BB0_92;
+
+ mov.u64 %rd166, image_HDR;
+ cvta.global.u64 %rd155, %rd166;
+ mov.u32 %r159, 8;
+ // inline asm
+ call (%rd154), _rt_buffer_get_64, (%rd155, %r26, %r159, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs100, %rs101, %rs102, %rs103}, [%rd154];
+ // inline asm
+ { cvt.f32.f16 %f720, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f721, %rs101;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f722, %rs102;}
+
+ // inline asm
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd155, %r26, %r159, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f723, %f720, 0f00000000;
+ add.f32 %f724, %f721, 0f00000000;
+ add.f32 %f725, %f722, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f725;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f724;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f723;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs97, %rs98, %rs99, %rs93};
+ bra.uni BB0_93;
+
+BB0_15:
+ mov.f32 %f857, 0f00000000;
+ mul.f32 %f251, %f8, 0f3456BF95;
+ abs.f32 %f252, %f848;
+ div.rn.f32 %f253, %f251, %f252;
+ abs.f32 %f254, %f849;
+ mul.f32 %f255, %f10, 0f3456BF95;
+ div.rn.f32 %f256, %f255, %f254;
+ abs.f32 %f257, %f850;
+ mul.f32 %f258, %f12, 0f3456BF95;
+ div.rn.f32 %f259, %f258, %f257;
+ abs.f32 %f260, %f253;
+ abs.f32 %f261, %f256;
+ abs.f32 %f262, %f259;
+ mov.f32 %f263, 0f38D1B717;
+ max.f32 %f264, %f260, %f263;
+ max.f32 %f265, %f261, %f263;
+ max.f32 %f266, %f262, %f263;
+ fma.rn.f32 %f33, %f848, %f264, %f8;
+ fma.rn.f32 %f34, %f849, %f265, %f10;
+ fma.rn.f32 %f35, %f850, %f266, %f12;
+ ld.global.u32 %r235, [samples];
+ setp.lt.s32 %p29, %r235, 1;
+ @%p29 bra BB0_18;
+
+ mul.f32 %f268, %f33, 0f3456BF95;
+ abs.f32 %f269, %f268;
+ mul.f32 %f270, %f34, 0f3456BF95;
+ abs.f32 %f271, %f270;
+ mul.f32 %f272, %f35, 0f3456BF95;
+ abs.f32 %f273, %f272;
+ max.f32 %f274, %f269, %f271;
+ max.f32 %f275, %f274, %f273;
+ max.f32 %f36, %f275, %f263;
+ add.u64 %rd24, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd24;
+ mov.f32 %f857, 0f00000000;
+ mov.u32 %r234, 0;
+ mov.u32 %r233, %r239;
+ mov.f32 %f854, %f11;
+ mov.f32 %f855, %f9;
+ mov.f32 %f856, %f7;
+ bra.uni BB0_17;
+
+BB0_84:
+ ld.global.f32 %f856, [lightPos];
+ ld.global.f32 %f855, [lightPos+4];
+ ld.global.f32 %f854, [lightPos+8];
+ ld.global.u32 %r233, [imageEnabled];
+
+BB0_17:
+ cvt.rn.f32.s32 %f285, %r234;
+ mul.f32 %f286, %f285, 0f3DD32618;
+ cvt.rmi.f32.f32 %f287, %f286;
+ sub.f32 %f288, %f286, %f287;
+ mul.f32 %f289, %f285, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f290, %f289;
+ sub.f32 %f291, %f289, %f290;
+ mul.f32 %f292, %f285, 0f3DC74539;
+ cvt.rmi.f32.f32 %f293, %f292;
+ sub.f32 %f294, %f292, %f293;
+ add.f32 %f295, %f291, 0f4199851F;
+ add.f32 %f296, %f294, 0f4199851F;
+ add.f32 %f297, %f288, 0f4199851F;
+ mul.f32 %f298, %f291, %f296;
+ fma.rn.f32 %f299, %f288, %f295, %f298;
+ fma.rn.f32 %f300, %f297, %f294, %f299;
+ add.f32 %f301, %f288, %f300;
+ add.f32 %f302, %f291, %f300;
+ add.f32 %f303, %f294, %f300;
+ add.f32 %f304, %f301, %f302;
+ mul.f32 %f305, %f303, %f304;
+ cvt.rmi.f32.f32 %f306, %f305;
+ sub.f32 %f307, %f305, %f306;
+ add.f32 %f308, %f301, %f303;
+ mul.f32 %f309, %f302, %f308;
+ cvt.rmi.f32.f32 %f310, %f309;
+ sub.f32 %f311, %f309, %f310;
+ add.f32 %f312, %f302, %f303;
+ mul.f32 %f313, %f301, %f312;
+ cvt.rmi.f32.f32 %f314, %f313;
+ sub.f32 %f315, %f313, %f314;
+ fma.rn.f32 %f316, %f307, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f317, %f311, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f318, %f315, 0f40000000, 0fBF800000;
+ ld.global.f32 %f319, [lightRadius];
+ fma.rn.f32 %f320, %f319, %f316, %f856;
+ fma.rn.f32 %f321, %f319, %f317, %f855;
+ fma.rn.f32 %f322, %f319, %f318, %f854;
+ sub.f32 %f323, %f320, %f8;
+ sub.f32 %f324, %f321, %f10;
+ sub.f32 %f325, %f322, %f12;
+ mul.f32 %f326, %f324, %f324;
+ fma.rn.f32 %f327, %f323, %f323, %f326;
+ fma.rn.f32 %f328, %f325, %f325, %f327;
+ sqrt.rn.f32 %f284, %f328;
+ rcp.rn.f32 %f329, %f284;
+ mul.f32 %f280, %f329, %f323;
+ mul.f32 %f281, %f329, %f324;
+ mul.f32 %f282, %f329, %f325;
+ and.b32 %r60, %r233, 32;
+ setp.eq.s32 %p30, %r60, 0;
+ selp.f32 %f330, 0f3F800000, 0f41200000, %p30;
+ mul.f32 %f283, %f330, %f36;
+ mov.u32 %r61, 1065353216;
+ st.local.u32 [%rd2], %r61;
+ ld.global.u32 %r57, [root];
+ mov.u32 %r58, 1;
+ // inline asm
+ call _rt_trace_64, (%r57, %f33, %f34, %f35, %f280, %f281, %f282, %r58, %f283, %f284, %rd24, %r27);
+ // inline asm
+ ld.local.f32 %f331, [%rd2];
+ add.f32 %f857, %f857, %f331;
+ ld.global.u32 %r235, [samples];
+ add.s32 %r234, %r234, 1;
+ setp.lt.s32 %p31, %r234, %r235;
+ @%p31 bra BB0_84;
+
+BB0_18:
+ ld.global.u32 %r62, [ignoreNormal];
+ setp.eq.s32 %p32, %r235, 0;
+ and.b32 %r63, %r239, 32;
+ or.b32 %r64, %r63, %r62;
+ setp.eq.s32 %p33, %r64, 0;
+ selp.f32 %f43, %f31, 0f3F800000, %p33;
+ @%p32 bra BB0_20;
+
+ cvt.rn.f32.s32 %f333, %r235;
+ div.rn.f32 %f859, %f857, %f333;
+
+BB0_20:
+ cvt.sat.f32.f32 %f334, %f43;
+ mul.f32 %f335, %f32, %f334;
+ mul.f32 %f336, %f859, %f335;
+ ld.global.f32 %f337, [lightColor];
+ mul.f32 %f46, %f337, %f336;
+ ld.global.f32 %f338, [lightColor+4];
+ mul.f32 %f47, %f338, %f336;
+ ld.global.f32 %f339, [lightColor+8];
+ mul.f32 %f48, %f336, %f339;
+ ld.global.u32 %r237, [imageEnabled];
+ and.b32 %r65, %r237, 8;
+ setp.eq.s32 %p34, %r65, 0;
+ @%p34 bra BB0_33;
+
+ mov.f32 %f817, 0fB5BFBE8E;
+ mov.f32 %f816, 0fBF317200;
+ mov.f32 %f815, 0f35BFBE8E;
+ mov.f32 %f814, 0f3F317200;
+ mov.f32 %f813, 0f3DAAAABD;
+ mov.f32 %f812, 0f3C4CAF63;
+ mov.f32 %f811, 0f3B18F0FE;
+ cvt.u64.u32 %rd28, %r2;
+ cvt.u64.u32 %rd29, %r3;
+ mov.u64 %rd32, image_Mask;
+ cvta.global.u64 %rd27, %rd32;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r26, %r26, %rd28, %rd29, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f342, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f343, %f342;
+ fma.rn.f32 %f344, %f343, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f49, %f344;
+ abs.f32 %f50, %f859;
+ setp.lt.f32 %p35, %f50, 0f00800000;
+ mul.f32 %f345, %f50, 0f4B800000;
+ selp.f32 %f346, 0fC3170000, 0fC2FE0000, %p35;
+ selp.f32 %f347, %f345, %f50, %p35;
+ mov.b32 %r68, %f347;
+ and.b32 %r69, %r68, 8388607;
+ or.b32 %r70, %r69, 1065353216;
+ mov.b32 %f348, %r70;
+ shr.u32 %r71, %r68, 23;
+ cvt.rn.f32.u32 %f349, %r71;
+ add.f32 %f350, %f346, %f349;
+ setp.gt.f32 %p36, %f348, 0f3FB504F3;
+ mul.f32 %f351, %f348, 0f3F000000;
+ add.f32 %f352, %f350, 0f3F800000;
+ selp.f32 %f353, %f351, %f348, %p36;
+ selp.f32 %f354, %f352, %f350, %p36;
+ add.f32 %f355, %f353, 0fBF800000;
+ add.f32 %f341, %f353, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f340,%f341;
+ // inline asm
+ add.f32 %f356, %f355, %f355;
+ mul.f32 %f357, %f340, %f356;
+ mul.f32 %f358, %f357, %f357;
+ fma.rn.f32 %f361, %f811, %f358, %f812;
+ fma.rn.f32 %f363, %f361, %f358, %f813;
+ mul.rn.f32 %f364, %f363, %f358;
+ mul.rn.f32 %f365, %f364, %f357;
+ sub.f32 %f366, %f355, %f357;
+ neg.f32 %f367, %f357;
+ add.f32 %f368, %f366, %f366;
+ fma.rn.f32 %f369, %f367, %f355, %f368;
+ mul.rn.f32 %f370, %f340, %f369;
+ add.f32 %f371, %f365, %f357;
+ sub.f32 %f372, %f357, %f371;
+ add.f32 %f373, %f365, %f372;
+ add.f32 %f374, %f370, %f373;
+ add.f32 %f375, %f371, %f374;
+ sub.f32 %f376, %f371, %f375;
+ add.f32 %f377, %f374, %f376;
+ mul.rn.f32 %f379, %f354, %f814;
+ mul.rn.f32 %f381, %f354, %f815;
+ add.f32 %f382, %f379, %f375;
+ sub.f32 %f383, %f379, %f382;
+ add.f32 %f384, %f375, %f383;
+ add.f32 %f385, %f377, %f384;
+ add.f32 %f386, %f381, %f385;
+ add.f32 %f387, %f382, %f386;
+ sub.f32 %f388, %f382, %f387;
+ add.f32 %f389, %f386, %f388;
+ mov.f32 %f390, 0f3EE8BA2E;
+ mul.rn.f32 %f391, %f390, %f387;
+ neg.f32 %f392, %f391;
+ fma.rn.f32 %f393, %f390, %f387, %f392;
+ fma.rn.f32 %f394, %f390, %f389, %f393;
+ mov.f32 %f395, 0f00000000;
+ fma.rn.f32 %f396, %f395, %f387, %f394;
+ add.rn.f32 %f397, %f391, %f396;
+ neg.f32 %f398, %f397;
+ add.rn.f32 %f399, %f391, %f398;
+ add.rn.f32 %f400, %f399, %f396;
+ mov.b32 %r72, %f397;
+ setp.eq.s32 %p37, %r72, 1118925336;
+ add.s32 %r73, %r72, -1;
+ mov.b32 %f401, %r73;
+ add.f32 %f402, %f400, 0f37000000;
+ selp.f32 %f403, %f401, %f397, %p37;
+ selp.f32 %f51, %f402, %f400, %p37;
+ mul.f32 %f404, %f403, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f405, %f404;
+ fma.rn.f32 %f407, %f405, %f816, %f403;
+ fma.rn.f32 %f409, %f405, %f817, %f407;
+ mul.f32 %f410, %f409, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f411, %f410;
+ add.f32 %f412, %f405, 0f00000000;
+ ex2.approx.f32 %f413, %f412;
+ mul.f32 %f414, %f411, %f413;
+ setp.lt.f32 %p38, %f403, 0fC2D20000;
+ selp.f32 %f415, 0f00000000, %f414, %p38;
+ setp.gt.f32 %p39, %f403, 0f42D20000;
+ selp.f32 %f860, 0f7F800000, %f415, %p39;
+ setp.eq.f32 %p40, %f860, 0f7F800000;
+ @%p40 bra BB0_23;
+
+ fma.rn.f32 %f860, %f860, %f51, %f860;
+
+BB0_23:
+ setp.lt.f32 %p41, %f859, 0f00000000;
+ setp.eq.f32 %p42, %f49, 0f3F800000;
+ and.pred %p2, %p41, %p42;
+ mov.b32 %r74, %f860;
+ xor.b32 %r75, %r74, -2147483648;
+ mov.b32 %f416, %r75;
+ selp.f32 %f862, %f416, %f860, %p2;
+ setp.eq.f32 %p43, %f859, 0f00000000;
+ @%p43 bra BB0_26;
+ bra.uni BB0_24;
+
+BB0_26:
+ add.f32 %f419, %f859, %f859;
+ selp.f32 %f862, %f419, 0f00000000, %p42;
+ bra.uni BB0_27;
+
+BB0_112:
+ mov.u64 %rd287, image_HDR;
+ cvta.global.u64 %rd282, %rd287;
+ mov.u32 %r204, 8;
+ // inline asm
+ call (%rd281), _rt_buffer_get_64, (%rd282, %r26, %r204, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f768, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs167, %f768;}
+
+ // inline asm
+ mov.u16 %rs168, 0;
+ st.v4.u16 [%rd281], {%rs167, %rs167, %rs167, %rs168};
+
+BB0_113:
+ ld.global.u32 %r205, [additive];
+ setp.eq.s32 %p118, %r205, 0;
+ @%p118 bra BB0_115;
+
+ mov.u64 %rd300, image_RNM0;
+ cvta.global.u64 %rd289, %rd300;
+ mov.u32 %r209, 8;
+ // inline asm
+ call (%rd288), _rt_buffer_get_64, (%rd289, %r26, %r209, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs175, %rs176, %rs177, %rs178}, [%rd288];
+ // inline asm
+ { cvt.f32.f16 %f769, %rs175;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f770, %rs176;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f771, %rs177;}
+
+ // inline asm
+ // inline asm
+ call (%rd294), _rt_buffer_get_64, (%rd289, %r26, %r209, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f772, %f769, 0f00000000;
+ add.f32 %f773, %f770, 0f00000000;
+ add.f32 %f774, %f771, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs174, %f774;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs173, %f773;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs172, %f772;}
+
+ // inline asm
+ mov.u16 %rs179, 0;
+ st.v4.u16 [%rd294], {%rs172, %rs173, %rs174, %rs179};
+ bra.uni BB0_116;
+
+BB0_115:
+ mov.u64 %rd307, image_RNM0;
+ cvta.global.u64 %rd302, %rd307;
+ mov.u32 %r211, 8;
+ // inline asm
+ call (%rd301), _rt_buffer_get_64, (%rd302, %r26, %r211, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f775, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs180, %f775;}
+
+ // inline asm
+ mov.u16 %rs181, 0;
+ st.v4.u16 [%rd301], {%rs180, %rs180, %rs180, %rs181};
+
+BB0_116:
+ ld.global.u32 %r212, [additive];
+ setp.eq.s32 %p119, %r212, 0;
+ @%p119 bra BB0_118;
+
+ mov.u64 %rd320, image_RNM1;
+ cvta.global.u64 %rd309, %rd320;
+ mov.u32 %r216, 8;
+ // inline asm
+ call (%rd308), _rt_buffer_get_64, (%rd309, %r26, %r216, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs188, %rs189, %rs190, %rs191}, [%rd308];
+ // inline asm
+ { cvt.f32.f16 %f776, %rs188;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f777, %rs189;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f778, %rs190;}
+
+ // inline asm
+ // inline asm
+ call (%rd314), _rt_buffer_get_64, (%rd309, %r26, %r216, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f779, %f776, 0f00000000;
+ add.f32 %f780, %f777, 0f00000000;
+ add.f32 %f781, %f778, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs187, %f781;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs186, %f780;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs185, %f779;}
+
+ // inline asm
+ mov.u16 %rs192, 0;
+ st.v4.u16 [%rd314], {%rs185, %rs186, %rs187, %rs192};
+ bra.uni BB0_119;
+
+BB0_118:
+ mov.u64 %rd327, image_RNM1;
+ cvta.global.u64 %rd322, %rd327;
+ mov.u32 %r218, 8;
+ // inline asm
+ call (%rd321), _rt_buffer_get_64, (%rd322, %r26, %r218, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f782, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs193, %f782;}
+
+ // inline asm
+ mov.u16 %rs194, 0;
+ st.v4.u16 [%rd321], {%rs193, %rs193, %rs193, %rs194};
+
+BB0_119:
+ ld.global.u32 %r219, [additive];
+ setp.eq.s32 %p120, %r219, 0;
+ @%p120 bra BB0_121;
+
+ mov.u64 %rd340, image_RNM2;
+ cvta.global.u64 %rd329, %rd340;
+ mov.u32 %r223, 8;
+ // inline asm
+ call (%rd328), _rt_buffer_get_64, (%rd329, %r26, %r223, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs201, %rs202, %rs203, %rs204}, [%rd328];
+ // inline asm
+ { cvt.f32.f16 %f783, %rs201;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f784, %rs202;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f785, %rs203;}
+
+ // inline asm
+ // inline asm
+ call (%rd334), _rt_buffer_get_64, (%rd329, %r26, %r223, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f786, %f783, 0f00000000;
+ add.f32 %f787, %f784, 0f00000000;
+ add.f32 %f788, %f785, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs200, %f788;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs199, %f787;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs198, %f786;}
+
+ // inline asm
+ mov.u16 %rs205, 0;
+ st.v4.u16 [%rd334], {%rs198, %rs199, %rs200, %rs205};
+ bra.uni BB0_122;
+
+BB0_121:
+ mov.u64 %rd347, image_RNM2;
+ cvta.global.u64 %rd342, %rd347;
+ mov.u32 %r225, 8;
+ // inline asm
+ call (%rd341), _rt_buffer_get_64, (%rd342, %r26, %r225, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f789, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs206, %f789;}
+
+ // inline asm
+ mov.u16 %rs207, 0;
+ st.v4.u16 [%rd341], {%rs206, %rs206, %rs206, %rs207};
+
+BB0_122:
+ ld.global.u32 %r226, [additive];
+ setp.eq.s32 %p121, %r226, 0;
+ @%p121 bra BB0_124;
+
+ mov.u64 %rd360, image_RNM3;
+ cvta.global.u64 %rd349, %rd360;
+ mov.u32 %r230, 8;
+ // inline asm
+ call (%rd348), _rt_buffer_get_64, (%rd349, %r26, %r230, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs214, %rs215, %rs216, %rs217}, [%rd348];
+ // inline asm
+ { cvt.f32.f16 %f790, %rs214;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f791, %rs215;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f792, %rs216;}
+
+ // inline asm
+ // inline asm
+ call (%rd354), _rt_buffer_get_64, (%rd349, %r26, %r230, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f793, %f790, 0f00000000;
+ add.f32 %f794, %f791, 0f00000000;
+ add.f32 %f795, %f792, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs213, %f795;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs212, %f794;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs211, %f793;}
+
+ // inline asm
+ mov.u16 %rs218, 0;
+ st.v4.u16 [%rd354], {%rs211, %rs212, %rs213, %rs218};
+ bra.uni BB0_125;
+
+BB0_124:
+ mov.u64 %rd367, image_RNM3;
+ cvta.global.u64 %rd362, %rd367;
+ mov.u32 %r232, 8;
+ // inline asm
+ call (%rd361), _rt_buffer_get_64, (%rd362, %r26, %r232, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f796, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs219, %f796;}
+
+ // inline asm
+ mov.u16 %rs220, 0;
+ st.v4.u16 [%rd361], {%rs219, %rs219, %rs219, %rs220};
+ bra.uni BB0_125;
+
+BB0_92:
+ mov.u64 %rd173, image_HDR;
+ cvta.global.u64 %rd168, %rd173;
+ mov.u32 %r161, 8;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r26, %r161, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f726, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f726;}
+
+ // inline asm
+ st.v4.u16 [%rd167], {%rs104, %rs104, %rs104, %rs93};
+
+BB0_93:
+ ld.global.u32 %r162, [additive];
+ setp.eq.s32 %p110, %r162, 0;
+ mov.f32 %f727, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f727;}
+
+ // inline asm
+ @%p110 bra BB0_95;
+
+ mov.u64 %rd186, image_RNM0;
+ cvta.global.u64 %rd175, %rd186;
+ mov.u32 %r166, 8;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r26, %r166, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd174];
+ // inline asm
+ { cvt.f32.f16 %f728, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f729, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f730, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd175, %r26, %r166, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f731, %f728, 0f00000000;
+ add.f32 %f732, %f729, 0f00000000;
+ add.f32 %f733, %f730, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f733;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f732;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f731;}
+
+ // inline asm
+ st.v4.u16 [%rd180], {%rs109, %rs110, %rs111, %rs105};
+ bra.uni BB0_96;
+
+BB0_95:
+ mov.u64 %rd193, image_RNM0;
+ cvta.global.u64 %rd188, %rd193;
+ mov.u32 %r168, 8;
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd188, %r26, %r168, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f734, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f734;}
+
+ // inline asm
+ st.v4.u16 [%rd187], {%rs116, %rs116, %rs116, %rs105};
+
+BB0_96:
+ ld.global.u32 %r169, [additive];
+ setp.eq.s32 %p111, %r169, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f727;}
+
+ // inline asm
+ @%p111 bra BB0_98;
+
+ mov.u64 %rd206, image_RNM1;
+ cvta.global.u64 %rd195, %rd206;
+ mov.u32 %r173, 8;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r26, %r173, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd194];
+ // inline asm
+ { cvt.f32.f16 %f736, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f737, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f738, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd195, %r26, %r173, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f739, %f736, 0f00000000;
+ add.f32 %f740, %f737, 0f00000000;
+ add.f32 %f741, %f738, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f741;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f740;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f739;}
+
+ // inline asm
+ st.v4.u16 [%rd200], {%rs121, %rs122, %rs123, %rs117};
+ bra.uni BB0_99;
+
+BB0_98:
+ mov.u64 %rd213, image_RNM1;
+ cvta.global.u64 %rd208, %rd213;
+ mov.u32 %r175, 8;
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd208, %r26, %r175, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f742, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs128, %f742;}
+
+ // inline asm
+ st.v4.u16 [%rd207], {%rs128, %rs128, %rs128, %rs117};
+
+BB0_99:
+ ld.global.u32 %r176, [additive];
+ setp.eq.s32 %p112, %r176, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f727;}
+
+ // inline asm
+ @%p112 bra BB0_101;
+
+ mov.u64 %rd226, image_RNM2;
+ cvta.global.u64 %rd215, %rd226;
+ mov.u32 %r180, 8;
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd215, %r26, %r180, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs136, %rs137, %rs138, %rs139}, [%rd214];
+ // inline asm
+ { cvt.f32.f16 %f744, %rs136;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f745, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f746, %rs138;}
+
+ // inline asm
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd215, %r26, %r180, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f747, %f744, 0f00000000;
+ add.f32 %f748, %f745, 0f00000000;
+ add.f32 %f749, %f746, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f749;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f748;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f747;}
+
+ // inline asm
+ st.v4.u16 [%rd220], {%rs133, %rs134, %rs135, %rs129};
+ bra.uni BB0_102;
+
+BB0_101:
+ mov.u64 %rd233, image_RNM2;
+ cvta.global.u64 %rd228, %rd233;
+ mov.u32 %r182, 8;
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd228, %r26, %r182, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f750, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f750;}
+
+ // inline asm
+ st.v4.u16 [%rd227], {%rs140, %rs140, %rs140, %rs129};
+
+BB0_102:
+ ld.global.u32 %r183, [additive];
+ setp.eq.s32 %p113, %r183, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs141, %f727;}
+
+ // inline asm
+ @%p113 bra BB0_104;
+
+ mov.u64 %rd246, image_RNM3;
+ cvta.global.u64 %rd235, %rd246;
+ mov.u32 %r187, 8;
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd235, %r26, %r187, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs148, %rs149, %rs150, %rs151}, [%rd234];
+ // inline asm
+ { cvt.f32.f16 %f752, %rs148;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f753, %rs149;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f754, %rs150;}
+
+ // inline asm
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd235, %r26, %r187, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f755, %f752, 0f00000000;
+ add.f32 %f756, %f753, 0f00000000;
+ add.f32 %f757, %f754, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f757;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f756;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f755;}
+
+ // inline asm
+ st.v4.u16 [%rd240], {%rs145, %rs146, %rs147, %rs141};
+ bra.uni BB0_125;
+
+BB0_104:
+ mov.u64 %rd253, image_RNM3;
+ cvta.global.u64 %rd248, %rd253;
+ mov.u32 %r189, 8;
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd248, %r26, %r189, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f758, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f758;}
+
+ // inline asm
+ st.v4.u16 [%rd247], {%rs152, %rs152, %rs152, %rs141};
+ bra.uni BB0_125;
+
+BB0_24:
+ setp.geu.f32 %p44, %f859, 0f00000000;
+ @%p44 bra BB0_27;
+
+ cvt.rzi.f32.f32 %f418, %f390;
+ setp.neu.f32 %p45, %f418, 0f3EE8BA2E;
+ selp.f32 %f862, 0f7FFFFFFF, %f862, %p45;
+
+BB0_27:
+ add.f32 %f420, %f50, 0f3EE8BA2E;
+ mov.b32 %r76, %f420;
+ setp.lt.s32 %p47, %r76, 2139095040;
+ @%p47 bra BB0_32;
+
+ setp.gtu.f32 %p48, %f50, 0f7F800000;
+ @%p48 bra BB0_31;
+ bra.uni BB0_29;
+
+BB0_31:
+ add.f32 %f862, %f859, 0f3EE8BA2E;
+ bra.uni BB0_32;
+
+BB0_29:
+ setp.neu.f32 %p49, %f50, 0f7F800000;
+ @%p49 bra BB0_32;
+
+ selp.f32 %f862, 0fFF800000, 0f7F800000, %p2;
+
+BB0_32:
+ mul.f32 %f421, %f862, 0f437F0000;
+ setp.eq.f32 %p50, %f859, 0f3F800000;
+ selp.f32 %f422, 0f437F0000, %f421, %p50;
+ cvt.rzi.u32.f32 %r77, %f422;
+ cvt.u16.u32 %rs19, %r77;
+ mov.u16 %rs20, 255;
+ st.v2.u8 [%rd26], {%rs19, %rs20};
+ ld.global.u32 %r237, [imageEnabled];
+
+BB0_33:
+ and.b32 %r78, %r237, 1;
+ setp.eq.b32 %p51, %r78, 1;
+ @!%p51 bra BB0_68;
+ bra.uni BB0_34;
+
+BB0_34:
+ mov.f32 %f824, 0fB5BFBE8E;
+ mov.f32 %f823, 0fBF317200;
+ mov.f32 %f822, 0f35BFBE8E;
+ mov.f32 %f821, 0f3F317200;
+ mov.f32 %f820, 0f3DAAAABD;
+ mov.f32 %f819, 0f3C4CAF63;
+ mov.f32 %f818, 0f3B18F0FE;
+ mov.f32 %f425, 0f3E666666;
+ cvt.rzi.f32.f32 %f426, %f425;
+ fma.rn.f32 %f427, %f426, 0fC0000000, 0f3EE66666;
+ abs.f32 %f62, %f427;
+ abs.f32 %f63, %f46;
+ setp.lt.f32 %p52, %f63, 0f00800000;
+ mul.f32 %f428, %f63, 0f4B800000;
+ selp.f32 %f429, 0fC3170000, 0fC2FE0000, %p52;
+ selp.f32 %f430, %f428, %f63, %p52;
+ mov.b32 %r79, %f430;
+ and.b32 %r80, %r79, 8388607;
+ or.b32 %r81, %r80, 1065353216;
+ mov.b32 %f431, %r81;
+ shr.u32 %r82, %r79, 23;
+ cvt.rn.f32.u32 %f432, %r82;
+ add.f32 %f433, %f429, %f432;
+ setp.gt.f32 %p53, %f431, 0f3FB504F3;
+ mul.f32 %f434, %f431, 0f3F000000;
+ add.f32 %f435, %f433, 0f3F800000;
+ selp.f32 %f436, %f434, %f431, %p53;
+ selp.f32 %f437, %f435, %f433, %p53;
+ add.f32 %f438, %f436, 0fBF800000;
+ add.f32 %f424, %f436, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f423,%f424;
+ // inline asm
+ add.f32 %f439, %f438, %f438;
+ mul.f32 %f440, %f423, %f439;
+ mul.f32 %f441, %f440, %f440;
+ fma.rn.f32 %f444, %f818, %f441, %f819;
+ fma.rn.f32 %f446, %f444, %f441, %f820;
+ mul.rn.f32 %f447, %f446, %f441;
+ mul.rn.f32 %f448, %f447, %f440;
+ sub.f32 %f449, %f438, %f440;
+ neg.f32 %f450, %f440;
+ add.f32 %f451, %f449, %f449;
+ fma.rn.f32 %f452, %f450, %f438, %f451;
+ mul.rn.f32 %f453, %f423, %f452;
+ add.f32 %f454, %f448, %f440;
+ sub.f32 %f455, %f440, %f454;
+ add.f32 %f456, %f448, %f455;
+ add.f32 %f457, %f453, %f456;
+ add.f32 %f458, %f454, %f457;
+ sub.f32 %f459, %f454, %f458;
+ add.f32 %f460, %f457, %f459;
+ mul.rn.f32 %f462, %f437, %f821;
+ mul.rn.f32 %f464, %f437, %f822;
+ add.f32 %f465, %f462, %f458;
+ sub.f32 %f466, %f462, %f465;
+ add.f32 %f467, %f458, %f466;
+ add.f32 %f468, %f460, %f467;
+ add.f32 %f469, %f464, %f468;
+ add.f32 %f470, %f465, %f469;
+ sub.f32 %f471, %f465, %f470;
+ add.f32 %f472, %f469, %f471;
+ mov.f32 %f473, 0f3EE66666;
+ mul.rn.f32 %f474, %f473, %f470;
+ neg.f32 %f475, %f474;
+ fma.rn.f32 %f476, %f473, %f470, %f475;
+ fma.rn.f32 %f477, %f473, %f472, %f476;
+ mov.f32 %f478, 0f00000000;
+ fma.rn.f32 %f479, %f478, %f470, %f477;
+ add.rn.f32 %f480, %f474, %f479;
+ neg.f32 %f481, %f480;
+ add.rn.f32 %f482, %f474, %f481;
+ add.rn.f32 %f483, %f482, %f479;
+ mov.b32 %r83, %f480;
+ setp.eq.s32 %p54, %r83, 1118925336;
+ add.s32 %r84, %r83, -1;
+ mov.b32 %f484, %r84;
+ add.f32 %f485, %f483, 0f37000000;
+ selp.f32 %f486, %f484, %f480, %p54;
+ selp.f32 %f64, %f485, %f483, %p54;
+ mul.f32 %f487, %f486, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f488, %f487;
+ fma.rn.f32 %f490, %f488, %f823, %f486;
+ fma.rn.f32 %f492, %f488, %f824, %f490;
+ mul.f32 %f493, %f492, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f494, %f493;
+ add.f32 %f495, %f488, 0f00000000;
+ ex2.approx.f32 %f496, %f495;
+ mul.f32 %f497, %f494, %f496;
+ setp.lt.f32 %p55, %f486, 0fC2D20000;
+ selp.f32 %f498, 0f00000000, %f497, %p55;
+ setp.gt.f32 %p56, %f486, 0f42D20000;
+ selp.f32 %f863, 0f7F800000, %f498, %p56;
+ setp.eq.f32 %p57, %f863, 0f7F800000;
+ @%p57 bra BB0_36;
+
+ fma.rn.f32 %f863, %f863, %f64, %f863;
+
+BB0_36:
+ setp.lt.f32 %p58, %f46, 0f00000000;
+ setp.eq.f32 %p59, %f62, 0f3F800000;
+ and.pred %p3, %p58, %p59;
+ mov.b32 %r85, %f863;
+ xor.b32 %r86, %r85, -2147483648;
+ mov.b32 %f499, %r86;
+ selp.f32 %f865, %f499, %f863, %p3;
+ setp.eq.f32 %p60, %f46, 0f00000000;
+ @%p60 bra BB0_39;
+ bra.uni BB0_37;
+
+BB0_39:
+ add.f32 %f502, %f46, %f46;
+ selp.f32 %f865, %f502, 0f00000000, %p59;
+ bra.uni BB0_40;
+
+BB0_37:
+ setp.geu.f32 %p61, %f46, 0f00000000;
+ @%p61 bra BB0_40;
+
+ cvt.rzi.f32.f32 %f501, %f473;
+ setp.neu.f32 %p62, %f501, 0f3EE66666;
+ selp.f32 %f865, 0f7FFFFFFF, %f865, %p62;
+
+BB0_40:
+ add.f32 %f503, %f63, 0f3EE66666;
+ mov.b32 %r87, %f503;
+ setp.lt.s32 %p64, %r87, 2139095040;
+ @%p64 bra BB0_45;
+
+ setp.gtu.f32 %p65, %f63, 0f7F800000;
+ @%p65 bra BB0_44;
+ bra.uni BB0_42;
+
+BB0_44:
+ add.f32 %f865, %f46, 0f3EE66666;
+ bra.uni BB0_45;
+
+BB0_42:
+ setp.neu.f32 %p66, %f63, 0f7F800000;
+ @%p66 bra BB0_45;
+
+ selp.f32 %f865, 0fFF800000, 0f7F800000, %p3;
+
+BB0_45:
+ mov.f32 %f831, 0fB5BFBE8E;
+ mov.f32 %f830, 0fBF317200;
+ mov.f32 %f829, 0f35BFBE8E;
+ mov.f32 %f828, 0f3F317200;
+ mov.f32 %f827, 0f3DAAAABD;
+ mov.f32 %f826, 0f3C4CAF63;
+ mov.f32 %f825, 0f3B18F0FE;
+ setp.eq.f32 %p67, %f46, 0f3F800000;
+ selp.f32 %f75, 0f3F800000, %f865, %p67;
+ abs.f32 %f76, %f47;
+ setp.lt.f32 %p68, %f76, 0f00800000;
+ mul.f32 %f506, %f76, 0f4B800000;
+ selp.f32 %f507, 0fC3170000, 0fC2FE0000, %p68;
+ selp.f32 %f508, %f506, %f76, %p68;
+ mov.b32 %r88, %f508;
+ and.b32 %r89, %r88, 8388607;
+ or.b32 %r90, %r89, 1065353216;
+ mov.b32 %f509, %r90;
+ shr.u32 %r91, %r88, 23;
+ cvt.rn.f32.u32 %f510, %r91;
+ add.f32 %f511, %f507, %f510;
+ setp.gt.f32 %p69, %f509, 0f3FB504F3;
+ mul.f32 %f512, %f509, 0f3F000000;
+ add.f32 %f513, %f511, 0f3F800000;
+ selp.f32 %f514, %f512, %f509, %p69;
+ selp.f32 %f515, %f513, %f511, %p69;
+ add.f32 %f516, %f514, 0fBF800000;
+ add.f32 %f505, %f514, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f504,%f505;
+ // inline asm
+ add.f32 %f517, %f516, %f516;
+ mul.f32 %f518, %f504, %f517;
+ mul.f32 %f519, %f518, %f518;
+ fma.rn.f32 %f522, %f825, %f519, %f826;
+ fma.rn.f32 %f524, %f522, %f519, %f827;
+ mul.rn.f32 %f525, %f524, %f519;
+ mul.rn.f32 %f526, %f525, %f518;
+ sub.f32 %f527, %f516, %f518;
+ neg.f32 %f528, %f518;
+ add.f32 %f529, %f527, %f527;
+ fma.rn.f32 %f530, %f528, %f516, %f529;
+ mul.rn.f32 %f531, %f504, %f530;
+ add.f32 %f532, %f526, %f518;
+ sub.f32 %f533, %f518, %f532;
+ add.f32 %f534, %f526, %f533;
+ add.f32 %f535, %f531, %f534;
+ add.f32 %f536, %f532, %f535;
+ sub.f32 %f537, %f532, %f536;
+ add.f32 %f538, %f535, %f537;
+ mul.rn.f32 %f540, %f515, %f828;
+ mul.rn.f32 %f542, %f515, %f829;
+ add.f32 %f543, %f540, %f536;
+ sub.f32 %f544, %f540, %f543;
+ add.f32 %f545, %f536, %f544;
+ add.f32 %f546, %f538, %f545;
+ add.f32 %f547, %f542, %f546;
+ add.f32 %f548, %f543, %f547;
+ sub.f32 %f549, %f543, %f548;
+ add.f32 %f550, %f547, %f549;
+ mul.rn.f32 %f552, %f473, %f548;
+ neg.f32 %f553, %f552;
+ fma.rn.f32 %f554, %f473, %f548, %f553;
+ fma.rn.f32 %f555, %f473, %f550, %f554;
+ fma.rn.f32 %f557, %f478, %f548, %f555;
+ add.rn.f32 %f558, %f552, %f557;
+ neg.f32 %f559, %f558;
+ add.rn.f32 %f560, %f552, %f559;
+ add.rn.f32 %f561, %f560, %f557;
+ mov.b32 %r92, %f558;
+ setp.eq.s32 %p70, %r92, 1118925336;
+ add.s32 %r93, %r92, -1;
+ mov.b32 %f562, %r93;
+ add.f32 %f563, %f561, 0f37000000;
+ selp.f32 %f564, %f562, %f558, %p70;
+ selp.f32 %f77, %f563, %f561, %p70;
+ mul.f32 %f565, %f564, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f566, %f565;
+ fma.rn.f32 %f568, %f566, %f830, %f564;
+ fma.rn.f32 %f570, %f566, %f831, %f568;
+ mul.f32 %f571, %f570, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f572, %f571;
+ add.f32 %f573, %f566, 0f00000000;
+ ex2.approx.f32 %f574, %f573;
+ mul.f32 %f575, %f572, %f574;
+ setp.lt.f32 %p71, %f564, 0fC2D20000;
+ selp.f32 %f576, 0f00000000, %f575, %p71;
+ setp.gt.f32 %p72, %f564, 0f42D20000;
+ selp.f32 %f866, 0f7F800000, %f576, %p72;
+ setp.eq.f32 %p73, %f866, 0f7F800000;
+ @%p73 bra BB0_47;
+
+ fma.rn.f32 %f866, %f866, %f77, %f866;
+
+BB0_47:
+ setp.lt.f32 %p74, %f47, 0f00000000;
+ and.pred %p4, %p74, %p59;
+ mov.b32 %r94, %f866;
+ xor.b32 %r95, %r94, -2147483648;
+ mov.b32 %f577, %r95;
+ selp.f32 %f868, %f577, %f866, %p4;
+ setp.eq.f32 %p76, %f47, 0f00000000;
+ @%p76 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f580, %f47, %f47;
+ selp.f32 %f868, %f580, 0f00000000, %p59;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p77, %f47, 0f00000000;
+ @%p77 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f579, %f473;
+ setp.neu.f32 %p78, %f579, 0f3EE66666;
+ selp.f32 %f868, 0f7FFFFFFF, %f868, %p78;
+
+BB0_51:
+ add.f32 %f581, %f76, 0f3EE66666;
+ mov.b32 %r96, %f581;
+ setp.lt.s32 %p80, %r96, 2139095040;
+ @%p80 bra BB0_56;
+
+ setp.gtu.f32 %p81, %f76, 0f7F800000;
+ @%p81 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f868, %f47, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p82, %f76, 0f7F800000;
+ @%p82 bra BB0_56;
+
+ selp.f32 %f868, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f838, 0fB5BFBE8E;
+ mov.f32 %f837, 0fBF317200;
+ mov.f32 %f836, 0f35BFBE8E;
+ mov.f32 %f835, 0f3F317200;
+ mov.f32 %f834, 0f3DAAAABD;
+ mov.f32 %f833, 0f3C4CAF63;
+ mov.f32 %f832, 0f3B18F0FE;
+ setp.eq.f32 %p83, %f47, 0f3F800000;
+ selp.f32 %f88, 0f3F800000, %f868, %p83;
+ abs.f32 %f89, %f48;
+ setp.lt.f32 %p84, %f89, 0f00800000;
+ mul.f32 %f584, %f89, 0f4B800000;
+ selp.f32 %f585, 0fC3170000, 0fC2FE0000, %p84;
+ selp.f32 %f586, %f584, %f89, %p84;
+ mov.b32 %r97, %f586;
+ and.b32 %r98, %r97, 8388607;
+ or.b32 %r99, %r98, 1065353216;
+ mov.b32 %f587, %r99;
+ shr.u32 %r100, %r97, 23;
+ cvt.rn.f32.u32 %f588, %r100;
+ add.f32 %f589, %f585, %f588;
+ setp.gt.f32 %p85, %f587, 0f3FB504F3;
+ mul.f32 %f590, %f587, 0f3F000000;
+ add.f32 %f591, %f589, 0f3F800000;
+ selp.f32 %f592, %f590, %f587, %p85;
+ selp.f32 %f593, %f591, %f589, %p85;
+ add.f32 %f594, %f592, 0fBF800000;
+ add.f32 %f583, %f592, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f582,%f583;
+ // inline asm
+ add.f32 %f595, %f594, %f594;
+ mul.f32 %f596, %f582, %f595;
+ mul.f32 %f597, %f596, %f596;
+ fma.rn.f32 %f600, %f832, %f597, %f833;
+ fma.rn.f32 %f602, %f600, %f597, %f834;
+ mul.rn.f32 %f603, %f602, %f597;
+ mul.rn.f32 %f604, %f603, %f596;
+ sub.f32 %f605, %f594, %f596;
+ neg.f32 %f606, %f596;
+ add.f32 %f607, %f605, %f605;
+ fma.rn.f32 %f608, %f606, %f594, %f607;
+ mul.rn.f32 %f609, %f582, %f608;
+ add.f32 %f610, %f604, %f596;
+ sub.f32 %f611, %f596, %f610;
+ add.f32 %f612, %f604, %f611;
+ add.f32 %f613, %f609, %f612;
+ add.f32 %f614, %f610, %f613;
+ sub.f32 %f615, %f610, %f614;
+ add.f32 %f616, %f613, %f615;
+ mul.rn.f32 %f618, %f593, %f835;
+ mul.rn.f32 %f620, %f593, %f836;
+ add.f32 %f621, %f618, %f614;
+ sub.f32 %f622, %f618, %f621;
+ add.f32 %f623, %f614, %f622;
+ add.f32 %f624, %f616, %f623;
+ add.f32 %f625, %f620, %f624;
+ add.f32 %f626, %f621, %f625;
+ sub.f32 %f627, %f621, %f626;
+ add.f32 %f628, %f625, %f627;
+ mul.rn.f32 %f630, %f473, %f626;
+ neg.f32 %f631, %f630;
+ fma.rn.f32 %f632, %f473, %f626, %f631;
+ fma.rn.f32 %f633, %f473, %f628, %f632;
+ fma.rn.f32 %f635, %f478, %f626, %f633;
+ add.rn.f32 %f636, %f630, %f635;
+ neg.f32 %f637, %f636;
+ add.rn.f32 %f638, %f630, %f637;
+ add.rn.f32 %f639, %f638, %f635;
+ mov.b32 %r101, %f636;
+ setp.eq.s32 %p86, %r101, 1118925336;
+ add.s32 %r102, %r101, -1;
+ mov.b32 %f640, %r102;
+ add.f32 %f641, %f639, 0f37000000;
+ selp.f32 %f642, %f640, %f636, %p86;
+ selp.f32 %f90, %f641, %f639, %p86;
+ mul.f32 %f643, %f642, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f644, %f643;
+ fma.rn.f32 %f646, %f644, %f837, %f642;
+ fma.rn.f32 %f648, %f644, %f838, %f646;
+ mul.f32 %f649, %f648, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f650, %f649;
+ add.f32 %f651, %f644, 0f00000000;
+ ex2.approx.f32 %f652, %f651;
+ mul.f32 %f653, %f650, %f652;
+ setp.lt.f32 %p87, %f642, 0fC2D20000;
+ selp.f32 %f654, 0f00000000, %f653, %p87;
+ setp.gt.f32 %p88, %f642, 0f42D20000;
+ selp.f32 %f869, 0f7F800000, %f654, %p88;
+ setp.eq.f32 %p89, %f869, 0f7F800000;
+ @%p89 bra BB0_58;
+
+ fma.rn.f32 %f869, %f869, %f90, %f869;
+
+BB0_58:
+ setp.lt.f32 %p90, %f48, 0f00000000;
+ and.pred %p5, %p90, %p59;
+ mov.b32 %r103, %f869;
+ xor.b32 %r104, %r103, -2147483648;
+ mov.b32 %f655, %r104;
+ selp.f32 %f871, %f655, %f869, %p5;
+ setp.eq.f32 %p92, %f48, 0f00000000;
+ @%p92 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f658, %f48, %f48;
+ selp.f32 %f871, %f658, 0f00000000, %p59;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p93, %f48, 0f00000000;
+ @%p93 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f657, %f473;
+ setp.neu.f32 %p94, %f657, 0f3EE66666;
+ selp.f32 %f871, 0f7FFFFFFF, %f871, %p94;
+
+BB0_62:
+ add.f32 %f659, %f89, 0f3EE66666;
+ mov.b32 %r105, %f659;
+ setp.lt.s32 %p96, %r105, 2139095040;
+ @%p96 bra BB0_67;
+
+ setp.gtu.f32 %p97, %f89, 0f7F800000;
+ @%p97 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f871, %f48, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p98, %f89, 0f7F800000;
+ @%p98 bra BB0_67;
+
+ selp.f32 %f871, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ setp.eq.f32 %p99, %f48, 0f3F800000;
+ selp.f32 %f660, 0f3F800000, %f871, %p99;
+ cvt.u64.u32 %rd36, %r3;
+ cvt.u64.u32 %rd35, %r2;
+ mov.u64 %rd39, image;
+ cvta.global.u64 %rd34, %rd39;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r26, %r27, %rd35, %rd36, %rd15, %rd15);
+ // inline asm
+ cvt.sat.f32.f32 %f661, %f660;
+ mul.f32 %f662, %f661, 0f437FFD71;
+ cvt.rzi.u32.f32 %r108, %f662;
+ cvt.sat.f32.f32 %f663, %f88;
+ mul.f32 %f664, %f663, 0f437FFD71;
+ cvt.rzi.u32.f32 %r109, %f664;
+ cvt.sat.f32.f32 %f665, %f75;
+ mul.f32 %f666, %f665, 0f437FFD71;
+ cvt.rzi.u32.f32 %r110, %f666;
+ cvt.u16.u32 %rs21, %r108;
+ cvt.u16.u32 %rs22, %r110;
+ cvt.u16.u32 %rs23, %r109;
+ mov.u16 %rs24, 255;
+ st.v4.u8 [%rd33], {%rs21, %rs23, %rs22, %rs24};
+ ld.global.u32 %r237, [imageEnabled];
+
+BB0_68:
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ and.b32 %r111, %r237, 4;
+ setp.eq.s32 %p100, %r111, 0;
+ @%p100 bra BB0_72;
+
+ ld.global.u32 %r112, [additive];
+ setp.eq.s32 %p101, %r112, 0;
+ mov.f32 %f667, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f667;}
+
+ // inline asm
+ @%p101 bra BB0_71;
+
+ mov.u64 %rd52, image_HDR;
+ cvta.global.u64 %rd41, %rd52;
+ mov.u32 %r116, 8;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r26, %r116, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs32, %rs33, %rs34, %rs35}, [%rd40];
+ // inline asm
+ { cvt.f32.f16 %f668, %rs32;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f669, %rs33;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f670, %rs34;}
+
+ // inline asm
+ // inline asm
+ call (%rd46), _rt_buffer_get_64, (%rd41, %r26, %r116, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f671, %f46, %f668;
+ add.f32 %f672, %f47, %f669;
+ add.f32 %f673, %f48, %f670;
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f673;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f672;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f671;}
+
+ // inline asm
+ st.v4.u16 [%rd46], {%rs29, %rs30, %rs31, %rs25};
+ bra.uni BB0_72;
+
+BB0_71:
+ mov.u64 %rd59, image_HDR;
+ cvta.global.u64 %rd54, %rd59;
+ mov.u32 %r118, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r26, %r118, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f48;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f47;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f46;}
+
+ // inline asm
+ st.v4.u16 [%rd53], {%rs36, %rs37, %rs38, %rs25};
+
+BB0_72:
+ mul.f32 %f678, %f32, 0f3E800000;
+ mul.f32 %f679, %f678, %f859;
+ ld.global.f32 %f680, [lightColor];
+ mul.f32 %f101, %f679, %f680;
+ ld.global.f32 %f681, [lightColor+4];
+ mul.f32 %f102, %f679, %f681;
+ ld.global.f32 %f682, [lightColor+8];
+ mul.f32 %f103, %f679, %f682;
+ ld.global.u32 %r119, [additive];
+ setp.eq.s32 %p102, %r119, 0;
+ mov.f32 %f677, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f677;}
+
+ // inline asm
+ @%p102 bra BB0_74;
+
+ mov.u64 %rd72, image_RNM0;
+ cvta.global.u64 %rd61, %rd72;
+ mov.u32 %r123, 8;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r26, %r123, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs46, %rs47, %rs48, %rs49}, [%rd60];
+ // inline asm
+ { cvt.f32.f16 %f683, %rs46;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f684, %rs47;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f685, %rs48;}
+
+ // inline asm
+ // inline asm
+ call (%rd66), _rt_buffer_get_64, (%rd61, %r26, %r123, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f686, %f101, %f683;
+ add.f32 %f687, %f102, %f684;
+ add.f32 %f688, %f103, %f685;
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f688;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f687;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f686;}
+
+ // inline asm
+ st.v4.u16 [%rd66], {%rs43, %rs44, %rs45, %rs39};
+ bra.uni BB0_75;
+
+BB0_74:
+ mov.u64 %rd79, image_RNM0;
+ cvta.global.u64 %rd74, %rd79;
+ mov.u32 %r125, 8;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r26, %r125, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f103;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f102;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f101;}
+
+ // inline asm
+ st.v4.u16 [%rd73], {%rs50, %rs51, %rs52, %rs39};
+
+BB0_75:
+ sub.f32 %f844, %f11, %f12;
+ mul.f32 %f843, %f844, %f136;
+ sub.f32 %f842, %f7, %f8;
+ mul.f32 %f841, %f842, %f136;
+ sub.f32 %f840, %f9, %f10;
+ mul.f32 %f839, %f840, %f136;
+ fma.rn.f32 %f104, %f841, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f105, %f839, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f106, %f843, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r126, [additive];
+ setp.eq.s32 %p103, %r126, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f677;}
+
+ // inline asm
+ @%p103 bra BB0_77;
+
+ mov.u64 %rd92, image_RNM1;
+ cvta.global.u64 %rd81, %rd92;
+ mov.u32 %r130, 8;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r26, %r130, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs60, %rs61, %rs62, %rs63}, [%rd80];
+ // inline asm
+ { cvt.f32.f16 %f693, %rs60;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f694, %rs61;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f695, %rs62;}
+
+ // inline asm
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd81, %r26, %r130, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f696, %f104, %f693;
+ add.f32 %f697, %f104, %f694;
+ add.f32 %f698, %f104, %f695;
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f698;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f697;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f696;}
+
+ // inline asm
+ st.v4.u16 [%rd86], {%rs57, %rs58, %rs59, %rs53};
+ bra.uni BB0_78;
+
+BB0_77:
+ mov.u64 %rd99, image_RNM1;
+ cvta.global.u64 %rd94, %rd99;
+ mov.u32 %r132, 8;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd94, %r26, %r132, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f104;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs64, %rs64, %rs64, %rs53};
+
+BB0_78:
+ ld.global.u32 %r133, [additive];
+ setp.eq.s32 %p104, %r133, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f677;}
+
+ // inline asm
+ @%p104 bra BB0_80;
+
+ mov.u64 %rd112, image_RNM2;
+ cvta.global.u64 %rd101, %rd112;
+ mov.u32 %r137, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r26, %r137, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs72, %rs73, %rs74, %rs75}, [%rd100];
+ // inline asm
+ { cvt.f32.f16 %f701, %rs72;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f702, %rs73;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f703, %rs74;}
+
+ // inline asm
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd101, %r26, %r137, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f704, %f105, %f701;
+ add.f32 %f705, %f105, %f702;
+ add.f32 %f706, %f105, %f703;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f706;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f705;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f704;}
+
+ // inline asm
+ st.v4.u16 [%rd106], {%rs69, %rs70, %rs71, %rs65};
+ bra.uni BB0_81;
+
+BB0_80:
+ mov.u64 %rd119, image_RNM2;
+ cvta.global.u64 %rd114, %rd119;
+ mov.u32 %r139, 8;
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd114, %r26, %r139, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f105;}
+
+ // inline asm
+ st.v4.u16 [%rd113], {%rs76, %rs76, %rs76, %rs65};
+
+BB0_81:
+ ld.global.u32 %r140, [additive];
+ setp.eq.s32 %p105, %r140, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f677;}
+
+ // inline asm
+ @%p105 bra BB0_83;
+
+ mov.u64 %rd132, image_RNM3;
+ cvta.global.u64 %rd121, %rd132;
+ mov.u32 %r144, 8;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd121, %r26, %r144, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs84, %rs85, %rs86, %rs87}, [%rd120];
+ // inline asm
+ { cvt.f32.f16 %f709, %rs84;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f710, %rs85;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f711, %rs86;}
+
+ // inline asm
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd121, %r26, %r144, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f712, %f106, %f709;
+ add.f32 %f713, %f106, %f710;
+ add.f32 %f714, %f106, %f711;
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f714;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f713;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f712;}
+
+ // inline asm
+ st.v4.u16 [%rd126], {%rs81, %rs82, %rs83, %rs77};
+ bra.uni BB0_125;
+
+BB0_83:
+ mov.u64 %rd139, image_RNM3;
+ cvta.global.u64 %rd134, %rd139;
+ mov.u32 %r146, 8;
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd134, %r26, %r146, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f106;}
+
+ // inline asm
+ st.v4.u16 [%rd133], {%rs88, %rs88, %rs88, %rs77};
+
+BB0_125:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightProbeSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightProbeSH.ptx.meta
new file mode 100644
index 00000000..e8cd0bdb
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightProbeSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 54bc4621eb11a6a40ba7aa3432daac74
+timeCreated: 1558780075
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightRNM.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightRNM.ptx
new file mode 100644
index 00000000..8dcdb02c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightRNM.ptx
@@ -0,0 +1,2347 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 uvtangent[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .b8 lightConeDir[12];
+.global .align 8 .b8 lightCone[8];
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12lightConeDirE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9lightConeE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12lightConeDirE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9lightConeE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12lightConeDirE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9lightConeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12lightConeDirE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9lightConeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12lightConeDirE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9lightConeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<128>;
+ .reg .b16 %rs<213>;
+ .reg .f32 %f<1045>;
+ .reg .b32 %r<245>;
+ .reg .b64 %rd<335>;
+
+
+ mov.u64 %rd334, __local_depot0;
+ cvta.local.u64 %SP, %rd334;
+ ld.global.v2.u32 {%r34, %r35}, [pixelID];
+ cvt.u64.u32 %rd17, %r34;
+ cvt.u64.u32 %rd18, %r35;
+ mov.u64 %rd21, uvnormal;
+ cvta.global.u64 %rd16, %rd21;
+ mov.u32 %r32, 2;
+ mov.u32 %r33, 4;
+ mov.u64 %rd20, 0;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd16, %r32, %r33, %rd17, %rd18, %rd20, %rd20);
+ // inline asm
+ ld.u32 %r1, [%rd15];
+ shr.u32 %r38, %r1, 16;
+ cvt.u16.u32 %rs1, %r38;
+ and.b16 %rs10, %rs1, 255;
+ cvt.u16.u32 %rs11, %r1;
+ or.b16 %rs12, %rs11, %rs10;
+ setp.eq.s16 %p6, %rs12, 0;
+ mov.f32 %f1012, 0f00000000;
+ mov.f32 %f1013, %f1012;
+ mov.f32 %f1014, %f1012;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs13, [%rd15+1];
+ and.b16 %rs15, %rs11, 255;
+ cvt.rn.f32.u16 %f145, %rs15;
+ div.rn.f32 %f146, %f145, 0f437F0000;
+ fma.rn.f32 %f147, %f146, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f148, %rs13;
+ div.rn.f32 %f149, %f148, 0f437F0000;
+ fma.rn.f32 %f150, %f149, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f151, %rs10;
+ div.rn.f32 %f152, %f151, 0f437F0000;
+ fma.rn.f32 %f153, %f152, 0f40000000, 0fBF800000;
+ mul.f32 %f154, %f150, %f150;
+ fma.rn.f32 %f155, %f147, %f147, %f154;
+ fma.rn.f32 %f156, %f153, %f153, %f155;
+ sqrt.rn.f32 %f157, %f156;
+ rcp.rn.f32 %f158, %f157;
+ mul.f32 %f1012, %f147, %f158;
+ mul.f32 %f1013, %f150, %f158;
+ mul.f32 %f1014, %f153, %f158;
+
+BB0_2:
+ ld.global.v2.u32 {%r39, %r40}, [pixelID];
+ ld.global.v2.u32 {%r42, %r43}, [tileInfo];
+ add.s32 %r2, %r39, %r42;
+ add.s32 %r3, %r40, %r43;
+ setp.eq.f32 %p7, %f1013, 0f00000000;
+ setp.eq.f32 %p8, %f1012, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f1014, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_105;
+ bra.uni BB0_3;
+
+BB0_105:
+ ld.global.u32 %r244, [imageEnabled];
+ and.b32 %r200, %r244, 1;
+ setp.eq.b32 %p121, %r200, 1;
+ @!%p121 bra BB0_107;
+ bra.uni BB0_106;
+
+BB0_106:
+ cvt.u64.u32 %rd242, %r2;
+ cvt.u64.u32 %rd243, %r3;
+ mov.u64 %rd246, image;
+ cvta.global.u64 %rd241, %rd246;
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd241, %r32, %r33, %rd242, %rd243, %rd20, %rd20);
+ // inline asm
+ mov.u16 %rs158, 0;
+ st.v4.u8 [%rd240], {%rs158, %rs158, %rs158, %rs158};
+ ld.global.u32 %r244, [imageEnabled];
+
+BB0_107:
+ and.b32 %r203, %r244, 8;
+ setp.eq.s32 %p122, %r203, 0;
+ @%p122 bra BB0_109;
+
+ cvt.u64.u32 %rd250, %r3;
+ cvt.u64.u32 %rd249, %r2;
+ mov.u64 %rd253, image_Mask;
+ cvta.global.u64 %rd248, %rd253;
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd248, %r32, %r32, %rd249, %rd250, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f932, 0f00000000;
+ cvt.rzi.u32.f32 %r206, %f932;
+ cvt.u16.u32 %rs159, %r206;
+ mov.u16 %rs160, 0;
+ st.v2.u8 [%rd247], {%rs159, %rs160};
+ ld.global.u32 %r244, [imageEnabled];
+
+BB0_109:
+ cvt.u64.u32 %rd13, %r2;
+ cvt.u64.u32 %rd14, %r3;
+ and.b32 %r207, %r244, 4;
+ setp.eq.s32 %p123, %r207, 0;
+ @%p123 bra BB0_113;
+
+ ld.global.u32 %r208, [additive];
+ setp.eq.s32 %p124, %r208, 0;
+ @%p124 bra BB0_112;
+
+ mov.u64 %rd266, image_HDR;
+ cvta.global.u64 %rd255, %rd266;
+ mov.u32 %r212, 8;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r32, %r212, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs167, %rs168, %rs169, %rs170}, [%rd254];
+ // inline asm
+ { cvt.f32.f16 %f933, %rs167;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f934, %rs168;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f935, %rs169;}
+
+ // inline asm
+ // inline asm
+ call (%rd260), _rt_buffer_get_64, (%rd255, %r32, %r212, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ add.f32 %f936, %f933, 0f00000000;
+ add.f32 %f937, %f934, 0f00000000;
+ add.f32 %f938, %f935, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs166, %f938;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs165, %f937;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs164, %f936;}
+
+ // inline asm
+ mov.u16 %rs171, 0;
+ st.v4.u16 [%rd260], {%rs164, %rs165, %rs166, %rs171};
+ bra.uni BB0_113;
+
+BB0_3:
+ ld.global.v2.u32 {%r49, %r50}, [pixelID];
+ cvt.u64.u32 %rd24, %r49;
+ cvt.u64.u32 %rd25, %r50;
+ mov.u64 %rd28, uvpos;
+ cvta.global.u64 %rd23, %rd28;
+ mov.u32 %r48, 12;
+ // inline asm
+ call (%rd22), _rt_buffer_get_64, (%rd23, %r32, %r48, %rd24, %rd25, %rd20, %rd20);
+ // inline asm
+ ld.global.f32 %f7, [lightPos];
+ ld.f32 %f12, [%rd22+8];
+ ld.f32 %f10, [%rd22+4];
+ ld.f32 %f8, [%rd22];
+ sub.f32 %f161, %f7, %f8;
+ ld.global.f32 %f9, [lightPos+4];
+ sub.f32 %f162, %f9, %f10;
+ ld.global.f32 %f11, [lightPos+8];
+ sub.f32 %f163, %f11, %f12;
+ mul.f32 %f164, %f162, %f162;
+ fma.rn.f32 %f165, %f161, %f161, %f164;
+ fma.rn.f32 %f166, %f163, %f163, %f165;
+ sqrt.rn.f32 %f167, %f166;
+ rcp.rn.f32 %f168, %f167;
+ ld.global.f32 %f169, [lightFalloffFakeDistanceMult];
+ mul.f32 %f16, %f167, %f169;
+ ld.global.f32 %f170, [lightInvCutoff];
+ mul.f32 %f17, %f167, %f170;
+ mov.f32 %f174, 0f40800000;
+ abs.f32 %f19, %f17;
+ setp.lt.f32 %p12, %f19, 0f00800000;
+ mul.f32 %f176, %f19, 0f4B800000;
+ selp.f32 %f177, 0fC3170000, 0fC2FE0000, %p12;
+ selp.f32 %f178, %f176, %f19, %p12;
+ mov.b32 %r53, %f178;
+ and.b32 %r54, %r53, 8388607;
+ or.b32 %r55, %r54, 1065353216;
+ mov.b32 %f179, %r55;
+ shr.u32 %r56, %r53, 23;
+ cvt.rn.f32.u32 %f180, %r56;
+ add.f32 %f181, %f177, %f180;
+ setp.gt.f32 %p13, %f179, 0f3FB504F3;
+ mul.f32 %f182, %f179, 0f3F000000;
+ add.f32 %f183, %f181, 0f3F800000;
+ selp.f32 %f184, %f182, %f179, %p13;
+ selp.f32 %f185, %f183, %f181, %p13;
+ add.f32 %f186, %f184, 0fBF800000;
+ add.f32 %f160, %f184, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f159,%f160;
+ // inline asm
+ add.f32 %f187, %f186, %f186;
+ mul.f32 %f188, %f159, %f187;
+ mul.f32 %f189, %f188, %f188;
+ mov.f32 %f190, 0f3C4CAF63;
+ mov.f32 %f191, 0f3B18F0FE;
+ fma.rn.f32 %f192, %f191, %f189, %f190;
+ mov.f32 %f193, 0f3DAAAABD;
+ fma.rn.f32 %f194, %f192, %f189, %f193;
+ mul.rn.f32 %f195, %f194, %f189;
+ mul.rn.f32 %f196, %f195, %f188;
+ sub.f32 %f197, %f186, %f188;
+ neg.f32 %f198, %f188;
+ add.f32 %f199, %f197, %f197;
+ fma.rn.f32 %f200, %f198, %f186, %f199;
+ mul.rn.f32 %f201, %f159, %f200;
+ add.f32 %f202, %f196, %f188;
+ sub.f32 %f203, %f188, %f202;
+ add.f32 %f204, %f196, %f203;
+ add.f32 %f205, %f201, %f204;
+ add.f32 %f206, %f202, %f205;
+ sub.f32 %f207, %f202, %f206;
+ add.f32 %f208, %f205, %f207;
+ mov.f32 %f209, 0f3F317200;
+ mul.rn.f32 %f210, %f185, %f209;
+ mov.f32 %f211, 0f35BFBE8E;
+ mul.rn.f32 %f212, %f185, %f211;
+ add.f32 %f213, %f210, %f206;
+ sub.f32 %f214, %f210, %f213;
+ add.f32 %f215, %f206, %f214;
+ add.f32 %f216, %f208, %f215;
+ add.f32 %f217, %f212, %f216;
+ add.f32 %f218, %f213, %f217;
+ sub.f32 %f219, %f213, %f218;
+ add.f32 %f220, %f217, %f219;
+ mul.rn.f32 %f221, %f174, %f218;
+ neg.f32 %f222, %f221;
+ fma.rn.f32 %f223, %f174, %f218, %f222;
+ fma.rn.f32 %f224, %f174, %f220, %f223;
+ mov.f32 %f225, 0f00000000;
+ fma.rn.f32 %f226, %f225, %f218, %f224;
+ add.rn.f32 %f227, %f221, %f226;
+ neg.f32 %f228, %f227;
+ add.rn.f32 %f229, %f221, %f228;
+ add.rn.f32 %f230, %f229, %f226;
+ mov.b32 %r57, %f227;
+ setp.eq.s32 %p14, %r57, 1118925336;
+ add.s32 %r58, %r57, -1;
+ mov.b32 %f231, %r58;
+ add.f32 %f232, %f230, 0f37000000;
+ selp.f32 %f233, %f231, %f227, %p14;
+ selp.f32 %f20, %f232, %f230, %p14;
+ mul.f32 %f234, %f233, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f235, %f234;
+ mov.f32 %f236, 0fBF317200;
+ fma.rn.f32 %f237, %f235, %f236, %f233;
+ mov.f32 %f238, 0fB5BFBE8E;
+ fma.rn.f32 %f239, %f235, %f238, %f237;
+ mul.f32 %f240, %f239, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f241, %f240;
+ add.f32 %f242, %f235, 0f00000000;
+ ex2.approx.f32 %f243, %f242;
+ mul.f32 %f244, %f241, %f243;
+ setp.lt.f32 %p15, %f233, 0fC2D20000;
+ selp.f32 %f245, 0f00000000, %f244, %p15;
+ setp.gt.f32 %p16, %f233, 0f42D20000;
+ selp.f32 %f1015, 0f7F800000, %f245, %p16;
+ setp.eq.f32 %p17, %f1015, 0f7F800000;
+ @%p17 bra BB0_5;
+
+ fma.rn.f32 %f1015, %f1015, %f20, %f1015;
+
+BB0_5:
+ mov.f32 %f966, 0f40000000;
+ cvt.rzi.f32.f32 %f965, %f966;
+ add.f32 %f964, %f965, %f965;
+ mov.f32 %f963, 0f40800000;
+ sub.f32 %f962, %f963, %f964;
+ abs.f32 %f961, %f962;
+ setp.lt.f32 %p18, %f17, 0f00000000;
+ setp.eq.f32 %p19, %f961, 0f3F800000;
+ and.pred %p1, %p18, %p19;
+ mov.b32 %r59, %f1015;
+ xor.b32 %r60, %r59, -2147483648;
+ mov.b32 %f246, %r60;
+ selp.f32 %f1017, %f246, %f1015, %p1;
+ setp.eq.f32 %p20, %f17, 0f00000000;
+ @%p20 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f249, %f17, %f17;
+ selp.f32 %f1017, %f249, 0f00000000, %p19;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p21, %f17, 0f00000000;
+ @%p21 bra BB0_9;
+
+ mov.f32 %f1011, 0f40800000;
+ cvt.rzi.f32.f32 %f248, %f1011;
+ setp.neu.f32 %p22, %f248, 0f40800000;
+ selp.f32 %f1017, 0f7FFFFFFF, %f1017, %p22;
+
+BB0_9:
+ abs.f32 %f967, %f17;
+ add.f32 %f250, %f967, 0f40800000;
+ mov.b32 %r61, %f250;
+ setp.lt.s32 %p24, %r61, 2139095040;
+ @%p24 bra BB0_14;
+
+ abs.f32 %f1009, %f17;
+ setp.gtu.f32 %p25, %f1009, 0f7F800000;
+ @%p25 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f1017, %f17, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f1010, %f17;
+ setp.neu.f32 %p26, %f1010, 0f7F800000;
+ @%p26 bra BB0_14;
+
+ selp.f32 %f1017, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ sub.f32 %f973, %f11, %f12;
+ mul.f32 %f972, %f973, %f168;
+ sub.f32 %f971, %f7, %f8;
+ mul.f32 %f970, %f971, %f168;
+ sub.f32 %f969, %f9, %f10;
+ mul.f32 %f968, %f969, %f168;
+ mov.f32 %f1023, 0f3F800000;
+ sub.f32 %f252, %f1023, %f1017;
+ setp.eq.f32 %p27, %f17, 0f3F800000;
+ selp.f32 %f253, 0f00000000, %f252, %p27;
+ cvt.sat.f32.f32 %f254, %f253;
+ ld.global.f32 %f255, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f256, %f16, %f16, %f255;
+ div.rn.f32 %f257, %f254, %f256;
+ mul.f32 %f258, %f1013, %f968;
+ fma.rn.f32 %f259, %f1012, %f970, %f258;
+ fma.rn.f32 %f31, %f1014, %f972, %f259;
+ ld.global.u32 %r242, [imageEnabled];
+ ld.global.f32 %f260, [lightConeDir];
+ mul.f32 %f261, %f970, %f260;
+ ld.global.f32 %f262, [lightConeDir+4];
+ mul.f32 %f263, %f968, %f262;
+ neg.f32 %f264, %f263;
+ sub.f32 %f265, %f264, %f261;
+ ld.global.f32 %f266, [lightConeDir+8];
+ mul.f32 %f267, %f972, %f266;
+ sub.f32 %f268, %f265, %f267;
+ ld.global.v2.f32 {%f269, %f270}, [lightCone];
+ fma.rn.f32 %f273, %f269, %f268, %f270;
+ cvt.sat.f32.f32 %f274, %f273;
+ mul.f32 %f275, %f274, %f274;
+ mul.f32 %f32, %f257, %f275;
+ ld.global.f32 %f276, [lightColor+4];
+ ld.global.f32 %f277, [lightColor];
+ max.f32 %f278, %f277, %f276;
+ ld.global.f32 %f279, [lightColor+8];
+ max.f32 %f280, %f278, %f279;
+ mul.f32 %f281, %f32, %f280;
+ setp.lt.f32 %p28, %f281, 0f3727C5AC;
+ @%p28 bra BB0_88;
+ bra.uni BB0_15;
+
+BB0_88:
+ and.b32 %r164, %r242, 1;
+ setp.eq.b32 %p114, %r164, 1;
+ @!%p114 bra BB0_90;
+ bra.uni BB0_89;
+
+BB0_89:
+ cvt.u64.u32 %rd148, %r2;
+ cvt.u64.u32 %rd149, %r3;
+ mov.u64 %rd152, image;
+ cvta.global.u64 %rd147, %rd152;
+ // inline asm
+ call (%rd146), _rt_buffer_get_64, (%rd147, %r32, %r33, %rd148, %rd149, %rd20, %rd20);
+ // inline asm
+ mov.u16 %rs106, 1;
+ mov.u16 %rs107, 0;
+ st.v4.u8 [%rd146], {%rs107, %rs107, %rs107, %rs106};
+ ld.global.u32 %r242, [imageEnabled];
+
+BB0_90:
+ and.b32 %r167, %r242, 8;
+ setp.eq.s32 %p115, %r167, 0;
+ @%p115 bra BB0_92;
+
+ cvt.u64.u32 %rd156, %r3;
+ cvt.u64.u32 %rd155, %r2;
+ mov.u64 %rd159, image_Mask;
+ cvta.global.u64 %rd154, %rd159;
+ // inline asm
+ call (%rd153), _rt_buffer_get_64, (%rd154, %r32, %r32, %rd155, %rd156, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f897, 0f00000000;
+ cvt.rzi.u32.f32 %r170, %f897;
+ cvt.u16.u32 %rs108, %r170;
+ mov.u16 %rs109, 255;
+ st.v2.u8 [%rd153], {%rs108, %rs109};
+ ld.global.u32 %r242, [imageEnabled];
+
+BB0_92:
+ cvt.u64.u32 %rd11, %r2;
+ cvt.u64.u32 %rd12, %r3;
+ and.b32 %r171, %r242, 4;
+ setp.eq.s32 %p116, %r171, 0;
+ @%p116 bra BB0_96;
+
+ ld.global.u32 %r172, [additive];
+ setp.eq.s32 %p117, %r172, 0;
+ mov.f32 %f898, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f898;}
+
+ // inline asm
+ @%p117 bra BB0_95;
+
+ mov.u64 %rd172, image_HDR;
+ cvta.global.u64 %rd161, %rd172;
+ mov.u32 %r176, 8;
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd161, %r32, %r176, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs117, %rs118, %rs119, %rs120}, [%rd160];
+ // inline asm
+ { cvt.f32.f16 %f899, %rs117;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f900, %rs118;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f901, %rs119;}
+
+ // inline asm
+ // inline asm
+ call (%rd166), _rt_buffer_get_64, (%rd161, %r32, %r176, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ add.f32 %f902, %f899, 0f00000000;
+ add.f32 %f903, %f900, 0f00000000;
+ add.f32 %f904, %f901, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f904;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs115, %f903;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs114, %f902;}
+
+ // inline asm
+ st.v4.u16 [%rd166], {%rs114, %rs115, %rs116, %rs110};
+ bra.uni BB0_96;
+
+BB0_15:
+ mov.f32 %f1021, 0f00000000;
+ mul.f32 %f283, %f8, 0f3456BF95;
+ abs.f32 %f284, %f1012;
+ div.rn.f32 %f285, %f283, %f284;
+ abs.f32 %f286, %f1013;
+ mul.f32 %f287, %f10, 0f3456BF95;
+ div.rn.f32 %f288, %f287, %f286;
+ abs.f32 %f289, %f1014;
+ mul.f32 %f290, %f12, 0f3456BF95;
+ div.rn.f32 %f291, %f290, %f289;
+ abs.f32 %f292, %f285;
+ abs.f32 %f293, %f288;
+ abs.f32 %f294, %f291;
+ mov.f32 %f295, 0f38D1B717;
+ max.f32 %f296, %f292, %f295;
+ max.f32 %f297, %f293, %f295;
+ max.f32 %f298, %f294, %f295;
+ fma.rn.f32 %f33, %f1012, %f296, %f8;
+ fma.rn.f32 %f34, %f1013, %f297, %f10;
+ fma.rn.f32 %f35, %f1014, %f298, %f12;
+ ld.global.u32 %r238, [samples];
+ setp.lt.s32 %p29, %r238, 1;
+ @%p29 bra BB0_18;
+
+ mul.f32 %f300, %f33, 0f3456BF95;
+ abs.f32 %f301, %f300;
+ mul.f32 %f302, %f34, 0f3456BF95;
+ abs.f32 %f303, %f302;
+ mul.f32 %f304, %f35, 0f3456BF95;
+ abs.f32 %f305, %f304;
+ max.f32 %f306, %f301, %f303;
+ max.f32 %f307, %f306, %f305;
+ max.f32 %f36, %f307, %f295;
+ add.u64 %rd29, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd29;
+ mov.f32 %f1021, 0f00000000;
+ mov.u32 %r237, 0;
+ mov.u32 %r236, %r242;
+ mov.f32 %f1018, %f11;
+ mov.f32 %f1019, %f9;
+ mov.f32 %f1020, %f7;
+ bra.uni BB0_17;
+
+BB0_87:
+ ld.global.f32 %f1020, [lightPos];
+ ld.global.f32 %f1019, [lightPos+4];
+ ld.global.f32 %f1018, [lightPos+8];
+ ld.global.u32 %r236, [imageEnabled];
+
+BB0_17:
+ cvt.rn.f32.s32 %f317, %r237;
+ mul.f32 %f318, %f317, 0f3DD32618;
+ cvt.rmi.f32.f32 %f319, %f318;
+ sub.f32 %f320, %f318, %f319;
+ mul.f32 %f321, %f317, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f322, %f321;
+ sub.f32 %f323, %f321, %f322;
+ mul.f32 %f324, %f317, 0f3DC74539;
+ cvt.rmi.f32.f32 %f325, %f324;
+ sub.f32 %f326, %f324, %f325;
+ add.f32 %f327, %f323, 0f4199851F;
+ add.f32 %f328, %f326, 0f4199851F;
+ add.f32 %f329, %f320, 0f4199851F;
+ mul.f32 %f330, %f323, %f328;
+ fma.rn.f32 %f331, %f320, %f327, %f330;
+ fma.rn.f32 %f332, %f329, %f326, %f331;
+ add.f32 %f333, %f320, %f332;
+ add.f32 %f334, %f323, %f332;
+ add.f32 %f335, %f326, %f332;
+ add.f32 %f336, %f333, %f334;
+ mul.f32 %f337, %f335, %f336;
+ cvt.rmi.f32.f32 %f338, %f337;
+ sub.f32 %f339, %f337, %f338;
+ add.f32 %f340, %f333, %f335;
+ mul.f32 %f341, %f334, %f340;
+ cvt.rmi.f32.f32 %f342, %f341;
+ sub.f32 %f343, %f341, %f342;
+ add.f32 %f344, %f334, %f335;
+ mul.f32 %f345, %f333, %f344;
+ cvt.rmi.f32.f32 %f346, %f345;
+ sub.f32 %f347, %f345, %f346;
+ fma.rn.f32 %f348, %f339, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f349, %f343, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f350, %f347, 0f40000000, 0fBF800000;
+ ld.global.f32 %f351, [lightRadius];
+ fma.rn.f32 %f352, %f351, %f348, %f1020;
+ fma.rn.f32 %f353, %f351, %f349, %f1019;
+ fma.rn.f32 %f354, %f351, %f350, %f1018;
+ sub.f32 %f355, %f352, %f8;
+ sub.f32 %f356, %f353, %f10;
+ sub.f32 %f357, %f354, %f12;
+ mul.f32 %f358, %f356, %f356;
+ fma.rn.f32 %f359, %f355, %f355, %f358;
+ fma.rn.f32 %f360, %f357, %f357, %f359;
+ sqrt.rn.f32 %f316, %f360;
+ rcp.rn.f32 %f361, %f316;
+ mul.f32 %f312, %f361, %f355;
+ mul.f32 %f313, %f361, %f356;
+ mul.f32 %f314, %f361, %f357;
+ and.b32 %r66, %r236, 32;
+ setp.eq.s32 %p30, %r66, 0;
+ selp.f32 %f362, 0f3F800000, 0f41200000, %p30;
+ mul.f32 %f315, %f362, %f36;
+ mov.u32 %r67, 1065353216;
+ st.local.u32 [%rd2], %r67;
+ ld.global.u32 %r63, [root];
+ mov.u32 %r64, 1;
+ // inline asm
+ call _rt_trace_64, (%r63, %f33, %f34, %f35, %f312, %f313, %f314, %r64, %f315, %f316, %rd29, %r33);
+ // inline asm
+ ld.local.f32 %f363, [%rd2];
+ add.f32 %f1021, %f1021, %f363;
+ ld.global.u32 %r238, [samples];
+ add.s32 %r237, %r237, 1;
+ setp.lt.s32 %p31, %r237, %r238;
+ @%p31 bra BB0_87;
+
+BB0_18:
+ setp.eq.s32 %p32, %r238, 0;
+ @%p32 bra BB0_20;
+
+ cvt.rn.f32.s32 %f365, %r238;
+ div.rn.f32 %f1023, %f1021, %f365;
+
+BB0_20:
+ ld.global.u32 %r68, [ignoreNormal];
+ and.b32 %r69, %r242, 32;
+ or.b32 %r70, %r69, %r68;
+ setp.eq.s32 %p33, %r70, 0;
+ selp.f32 %f366, %f31, 0f3F800000, %p33;
+ cvt.sat.f32.f32 %f367, %f366;
+ mul.f32 %f368, %f32, %f367;
+ mul.f32 %f369, %f1023, %f368;
+ ld.global.f32 %f370, [lightColor];
+ mul.f32 %f45, %f370, %f369;
+ ld.global.f32 %f371, [lightColor+4];
+ mul.f32 %f46, %f371, %f369;
+ ld.global.f32 %f372, [lightColor+8];
+ mul.f32 %f47, %f369, %f372;
+ ld.global.u32 %r240, [imageEnabled];
+ and.b32 %r71, %r240, 8;
+ setp.eq.s32 %p34, %r71, 0;
+ @%p34 bra BB0_33;
+
+ mov.f32 %f981, 0fB5BFBE8E;
+ mov.f32 %f980, 0fBF317200;
+ mov.f32 %f979, 0f35BFBE8E;
+ mov.f32 %f978, 0f3F317200;
+ mov.f32 %f977, 0f3DAAAABD;
+ mov.f32 %f976, 0f3C4CAF63;
+ mov.f32 %f975, 0f3B18F0FE;
+ cvt.u64.u32 %rd33, %r2;
+ cvt.u64.u32 %rd34, %r3;
+ mov.u64 %rd37, image_Mask;
+ cvta.global.u64 %rd32, %rd37;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd32, %r32, %r32, %rd33, %rd34, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f375, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f376, %f375;
+ fma.rn.f32 %f377, %f376, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f48, %f377;
+ abs.f32 %f49, %f1023;
+ setp.lt.f32 %p35, %f49, 0f00800000;
+ mul.f32 %f378, %f49, 0f4B800000;
+ selp.f32 %f379, 0fC3170000, 0fC2FE0000, %p35;
+ selp.f32 %f380, %f378, %f49, %p35;
+ mov.b32 %r74, %f380;
+ and.b32 %r75, %r74, 8388607;
+ or.b32 %r76, %r75, 1065353216;
+ mov.b32 %f381, %r76;
+ shr.u32 %r77, %r74, 23;
+ cvt.rn.f32.u32 %f382, %r77;
+ add.f32 %f383, %f379, %f382;
+ setp.gt.f32 %p36, %f381, 0f3FB504F3;
+ mul.f32 %f384, %f381, 0f3F000000;
+ add.f32 %f385, %f383, 0f3F800000;
+ selp.f32 %f386, %f384, %f381, %p36;
+ selp.f32 %f387, %f385, %f383, %p36;
+ add.f32 %f388, %f386, 0fBF800000;
+ add.f32 %f374, %f386, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f373,%f374;
+ // inline asm
+ add.f32 %f389, %f388, %f388;
+ mul.f32 %f390, %f373, %f389;
+ mul.f32 %f391, %f390, %f390;
+ fma.rn.f32 %f394, %f975, %f391, %f976;
+ fma.rn.f32 %f396, %f394, %f391, %f977;
+ mul.rn.f32 %f397, %f396, %f391;
+ mul.rn.f32 %f398, %f397, %f390;
+ sub.f32 %f399, %f388, %f390;
+ neg.f32 %f400, %f390;
+ add.f32 %f401, %f399, %f399;
+ fma.rn.f32 %f402, %f400, %f388, %f401;
+ mul.rn.f32 %f403, %f373, %f402;
+ add.f32 %f404, %f398, %f390;
+ sub.f32 %f405, %f390, %f404;
+ add.f32 %f406, %f398, %f405;
+ add.f32 %f407, %f403, %f406;
+ add.f32 %f408, %f404, %f407;
+ sub.f32 %f409, %f404, %f408;
+ add.f32 %f410, %f407, %f409;
+ mul.rn.f32 %f412, %f387, %f978;
+ mul.rn.f32 %f414, %f387, %f979;
+ add.f32 %f415, %f412, %f408;
+ sub.f32 %f416, %f412, %f415;
+ add.f32 %f417, %f408, %f416;
+ add.f32 %f418, %f410, %f417;
+ add.f32 %f419, %f414, %f418;
+ add.f32 %f420, %f415, %f419;
+ sub.f32 %f421, %f415, %f420;
+ add.f32 %f422, %f419, %f421;
+ mov.f32 %f423, 0f3EE8BA2E;
+ mul.rn.f32 %f424, %f423, %f420;
+ neg.f32 %f425, %f424;
+ fma.rn.f32 %f426, %f423, %f420, %f425;
+ fma.rn.f32 %f427, %f423, %f422, %f426;
+ mov.f32 %f428, 0f00000000;
+ fma.rn.f32 %f429, %f428, %f420, %f427;
+ add.rn.f32 %f430, %f424, %f429;
+ neg.f32 %f431, %f430;
+ add.rn.f32 %f432, %f424, %f431;
+ add.rn.f32 %f433, %f432, %f429;
+ mov.b32 %r78, %f430;
+ setp.eq.s32 %p37, %r78, 1118925336;
+ add.s32 %r79, %r78, -1;
+ mov.b32 %f434, %r79;
+ add.f32 %f435, %f433, 0f37000000;
+ selp.f32 %f436, %f434, %f430, %p37;
+ selp.f32 %f50, %f435, %f433, %p37;
+ mul.f32 %f437, %f436, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f438, %f437;
+ fma.rn.f32 %f440, %f438, %f980, %f436;
+ fma.rn.f32 %f442, %f438, %f981, %f440;
+ mul.f32 %f443, %f442, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f444, %f443;
+ add.f32 %f445, %f438, 0f00000000;
+ ex2.approx.f32 %f446, %f445;
+ mul.f32 %f447, %f444, %f446;
+ setp.lt.f32 %p38, %f436, 0fC2D20000;
+ selp.f32 %f448, 0f00000000, %f447, %p38;
+ setp.gt.f32 %p39, %f436, 0f42D20000;
+ selp.f32 %f1024, 0f7F800000, %f448, %p39;
+ setp.eq.f32 %p40, %f1024, 0f7F800000;
+ @%p40 bra BB0_23;
+
+ fma.rn.f32 %f1024, %f1024, %f50, %f1024;
+
+BB0_23:
+ setp.lt.f32 %p41, %f1023, 0f00000000;
+ setp.eq.f32 %p42, %f48, 0f3F800000;
+ and.pred %p2, %p41, %p42;
+ mov.b32 %r80, %f1024;
+ xor.b32 %r81, %r80, -2147483648;
+ mov.b32 %f449, %r81;
+ selp.f32 %f1026, %f449, %f1024, %p2;
+ setp.eq.f32 %p43, %f1023, 0f00000000;
+ @%p43 bra BB0_26;
+ bra.uni BB0_24;
+
+BB0_26:
+ add.f32 %f452, %f1023, %f1023;
+ selp.f32 %f1026, %f452, 0f00000000, %p42;
+ bra.uni BB0_27;
+
+BB0_112:
+ mov.u64 %rd273, image_HDR;
+ cvta.global.u64 %rd268, %rd273;
+ mov.u32 %r214, 8;
+ // inline asm
+ call (%rd267), _rt_buffer_get_64, (%rd268, %r32, %r214, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f939, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs172, %f939;}
+
+ // inline asm
+ mov.u16 %rs173, 0;
+ st.v4.u16 [%rd267], {%rs172, %rs172, %rs172, %rs173};
+
+BB0_113:
+ ld.global.u32 %r215, [additive];
+ setp.eq.s32 %p125, %r215, 0;
+ @%p125 bra BB0_115;
+
+ mov.u64 %rd286, image_RNM0;
+ cvta.global.u64 %rd275, %rd286;
+ mov.u32 %r219, 8;
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd275, %r32, %r219, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs180, %rs181, %rs182, %rs183}, [%rd274];
+ // inline asm
+ { cvt.f32.f16 %f940, %rs180;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f941, %rs181;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f942, %rs182;}
+
+ // inline asm
+ // inline asm
+ call (%rd280), _rt_buffer_get_64, (%rd275, %r32, %r219, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ add.f32 %f943, %f940, 0f00000000;
+ add.f32 %f944, %f941, 0f00000000;
+ add.f32 %f945, %f942, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs179, %f945;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs178, %f944;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs177, %f943;}
+
+ // inline asm
+ mov.u16 %rs184, 0;
+ st.v4.u16 [%rd280], {%rs177, %rs178, %rs179, %rs184};
+ bra.uni BB0_116;
+
+BB0_115:
+ mov.u64 %rd293, image_RNM0;
+ cvta.global.u64 %rd288, %rd293;
+ mov.u32 %r221, 8;
+ // inline asm
+ call (%rd287), _rt_buffer_get_64, (%rd288, %r32, %r221, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f946, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs185, %f946;}
+
+ // inline asm
+ mov.u16 %rs186, 0;
+ st.v4.u16 [%rd287], {%rs185, %rs185, %rs185, %rs186};
+
+BB0_116:
+ ld.global.u32 %r222, [additive];
+ setp.eq.s32 %p126, %r222, 0;
+ @%p126 bra BB0_118;
+
+ mov.u64 %rd306, image_RNM1;
+ cvta.global.u64 %rd295, %rd306;
+ mov.u32 %r226, 8;
+ // inline asm
+ call (%rd294), _rt_buffer_get_64, (%rd295, %r32, %r226, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs193, %rs194, %rs195, %rs196}, [%rd294];
+ // inline asm
+ { cvt.f32.f16 %f947, %rs193;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f948, %rs194;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f949, %rs195;}
+
+ // inline asm
+ // inline asm
+ call (%rd300), _rt_buffer_get_64, (%rd295, %r32, %r226, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ add.f32 %f950, %f947, 0f00000000;
+ add.f32 %f951, %f948, 0f00000000;
+ add.f32 %f952, %f949, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs192, %f952;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs191, %f951;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs190, %f950;}
+
+ // inline asm
+ mov.u16 %rs197, 0;
+ st.v4.u16 [%rd300], {%rs190, %rs191, %rs192, %rs197};
+ bra.uni BB0_119;
+
+BB0_118:
+ mov.u64 %rd313, image_RNM1;
+ cvta.global.u64 %rd308, %rd313;
+ mov.u32 %r228, 8;
+ // inline asm
+ call (%rd307), _rt_buffer_get_64, (%rd308, %r32, %r228, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f953, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs198, %f953;}
+
+ // inline asm
+ mov.u16 %rs199, 0;
+ st.v4.u16 [%rd307], {%rs198, %rs198, %rs198, %rs199};
+
+BB0_119:
+ ld.global.u32 %r229, [additive];
+ setp.eq.s32 %p127, %r229, 0;
+ @%p127 bra BB0_121;
+
+ mov.u64 %rd326, image_RNM2;
+ cvta.global.u64 %rd315, %rd326;
+ mov.u32 %r233, 8;
+ // inline asm
+ call (%rd314), _rt_buffer_get_64, (%rd315, %r32, %r233, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs206, %rs207, %rs208, %rs209}, [%rd314];
+ // inline asm
+ { cvt.f32.f16 %f954, %rs206;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f955, %rs207;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f956, %rs208;}
+
+ // inline asm
+ // inline asm
+ call (%rd320), _rt_buffer_get_64, (%rd315, %r32, %r233, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ add.f32 %f957, %f954, 0f00000000;
+ add.f32 %f958, %f955, 0f00000000;
+ add.f32 %f959, %f956, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs205, %f959;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs204, %f958;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs203, %f957;}
+
+ // inline asm
+ mov.u16 %rs210, 0;
+ st.v4.u16 [%rd320], {%rs203, %rs204, %rs205, %rs210};
+ bra.uni BB0_122;
+
+BB0_121:
+ mov.u64 %rd333, image_RNM2;
+ cvta.global.u64 %rd328, %rd333;
+ mov.u32 %r235, 8;
+ // inline asm
+ call (%rd327), _rt_buffer_get_64, (%rd328, %r32, %r235, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f960, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs211, %f960;}
+
+ // inline asm
+ mov.u16 %rs212, 0;
+ st.v4.u16 [%rd327], {%rs211, %rs211, %rs211, %rs212};
+ bra.uni BB0_122;
+
+BB0_95:
+ mov.u64 %rd179, image_HDR;
+ cvta.global.u64 %rd174, %rd179;
+ mov.u32 %r178, 8;
+ // inline asm
+ call (%rd173), _rt_buffer_get_64, (%rd174, %r32, %r178, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f905, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f905;}
+
+ // inline asm
+ st.v4.u16 [%rd173], {%rs121, %rs121, %rs121, %rs110};
+
+BB0_96:
+ ld.global.u32 %r179, [additive];
+ setp.eq.s32 %p118, %r179, 0;
+ mov.f32 %f906, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f906;}
+
+ // inline asm
+ @%p118 bra BB0_98;
+
+ mov.u64 %rd192, image_RNM0;
+ cvta.global.u64 %rd181, %rd192;
+ mov.u32 %r183, 8;
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd181, %r32, %r183, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs129, %rs130, %rs131, %rs132}, [%rd180];
+ // inline asm
+ { cvt.f32.f16 %f907, %rs129;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f908, %rs130;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f909, %rs131;}
+
+ // inline asm
+ // inline asm
+ call (%rd186), _rt_buffer_get_64, (%rd181, %r32, %r183, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ add.f32 %f910, %f907, 0f00000000;
+ add.f32 %f911, %f908, 0f00000000;
+ add.f32 %f912, %f909, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs128, %f912;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs127, %f911;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs126, %f910;}
+
+ // inline asm
+ st.v4.u16 [%rd186], {%rs126, %rs127, %rs128, %rs122};
+ bra.uni BB0_99;
+
+BB0_98:
+ mov.u64 %rd199, image_RNM0;
+ cvta.global.u64 %rd194, %rd199;
+ mov.u32 %r185, 8;
+ // inline asm
+ call (%rd193), _rt_buffer_get_64, (%rd194, %r32, %r185, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f913, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f913;}
+
+ // inline asm
+ st.v4.u16 [%rd193], {%rs133, %rs133, %rs133, %rs122};
+
+BB0_99:
+ ld.global.u32 %r186, [additive];
+ setp.eq.s32 %p119, %r186, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f906;}
+
+ // inline asm
+ @%p119 bra BB0_101;
+
+ mov.u64 %rd212, image_RNM1;
+ cvta.global.u64 %rd201, %rd212;
+ mov.u32 %r190, 8;
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd201, %r32, %r190, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs141, %rs142, %rs143, %rs144}, [%rd200];
+ // inline asm
+ { cvt.f32.f16 %f915, %rs141;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f916, %rs142;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f917, %rs143;}
+
+ // inline asm
+ // inline asm
+ call (%rd206), _rt_buffer_get_64, (%rd201, %r32, %r190, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ add.f32 %f918, %f915, 0f00000000;
+ add.f32 %f919, %f916, 0f00000000;
+ add.f32 %f920, %f917, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f920;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs139, %f919;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs138, %f918;}
+
+ // inline asm
+ st.v4.u16 [%rd206], {%rs138, %rs139, %rs140, %rs134};
+ bra.uni BB0_102;
+
+BB0_101:
+ mov.u64 %rd219, image_RNM1;
+ cvta.global.u64 %rd214, %rd219;
+ mov.u32 %r192, 8;
+ // inline asm
+ call (%rd213), _rt_buffer_get_64, (%rd214, %r32, %r192, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f921, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f921;}
+
+ // inline asm
+ st.v4.u16 [%rd213], {%rs145, %rs145, %rs145, %rs134};
+
+BB0_102:
+ ld.global.u32 %r193, [additive];
+ setp.eq.s32 %p120, %r193, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f906;}
+
+ // inline asm
+ @%p120 bra BB0_104;
+
+ mov.u64 %rd232, image_RNM2;
+ cvta.global.u64 %rd221, %rd232;
+ mov.u32 %r197, 8;
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd221, %r32, %r197, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs153, %rs154, %rs155, %rs156}, [%rd220];
+ // inline asm
+ { cvt.f32.f16 %f923, %rs153;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f924, %rs154;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f925, %rs155;}
+
+ // inline asm
+ // inline asm
+ call (%rd226), _rt_buffer_get_64, (%rd221, %r32, %r197, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ add.f32 %f926, %f923, 0f00000000;
+ add.f32 %f927, %f924, 0f00000000;
+ add.f32 %f928, %f925, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f928;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs151, %f927;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f926;}
+
+ // inline asm
+ st.v4.u16 [%rd226], {%rs150, %rs151, %rs152, %rs146};
+ bra.uni BB0_122;
+
+BB0_104:
+ mov.u64 %rd239, image_RNM2;
+ cvta.global.u64 %rd234, %rd239;
+ mov.u32 %r199, 8;
+ // inline asm
+ call (%rd233), _rt_buffer_get_64, (%rd234, %r32, %r199, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f929, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs157, %f929;}
+
+ // inline asm
+ st.v4.u16 [%rd233], {%rs157, %rs157, %rs157, %rs146};
+ bra.uni BB0_122;
+
+BB0_24:
+ setp.geu.f32 %p44, %f1023, 0f00000000;
+ @%p44 bra BB0_27;
+
+ cvt.rzi.f32.f32 %f451, %f423;
+ setp.neu.f32 %p45, %f451, 0f3EE8BA2E;
+ selp.f32 %f1026, 0f7FFFFFFF, %f1026, %p45;
+
+BB0_27:
+ add.f32 %f453, %f49, 0f3EE8BA2E;
+ mov.b32 %r82, %f453;
+ setp.lt.s32 %p47, %r82, 2139095040;
+ @%p47 bra BB0_32;
+
+ setp.gtu.f32 %p48, %f49, 0f7F800000;
+ @%p48 bra BB0_31;
+ bra.uni BB0_29;
+
+BB0_31:
+ add.f32 %f1026, %f1023, 0f3EE8BA2E;
+ bra.uni BB0_32;
+
+BB0_29:
+ setp.neu.f32 %p49, %f49, 0f7F800000;
+ @%p49 bra BB0_32;
+
+ selp.f32 %f1026, 0fFF800000, 0f7F800000, %p2;
+
+BB0_32:
+ mul.f32 %f454, %f1026, 0f437F0000;
+ setp.eq.f32 %p50, %f1023, 0f3F800000;
+ selp.f32 %f455, 0f437F0000, %f454, %p50;
+ cvt.rzi.u32.f32 %r83, %f455;
+ cvt.u16.u32 %rs17, %r83;
+ mov.u16 %rs18, 255;
+ st.v2.u8 [%rd31], {%rs17, %rs18};
+ ld.global.u32 %r240, [imageEnabled];
+
+BB0_33:
+ and.b32 %r84, %r240, 1;
+ setp.eq.b32 %p51, %r84, 1;
+ @!%p51 bra BB0_68;
+ bra.uni BB0_34;
+
+BB0_34:
+ mov.f32 %f988, 0fB5BFBE8E;
+ mov.f32 %f987, 0fBF317200;
+ mov.f32 %f986, 0f35BFBE8E;
+ mov.f32 %f985, 0f3F317200;
+ mov.f32 %f984, 0f3DAAAABD;
+ mov.f32 %f983, 0f3C4CAF63;
+ mov.f32 %f982, 0f3B18F0FE;
+ mov.f32 %f458, 0f3E666666;
+ cvt.rzi.f32.f32 %f459, %f458;
+ fma.rn.f32 %f460, %f459, 0fC0000000, 0f3EE66666;
+ abs.f32 %f61, %f460;
+ abs.f32 %f62, %f45;
+ setp.lt.f32 %p52, %f62, 0f00800000;
+ mul.f32 %f461, %f62, 0f4B800000;
+ selp.f32 %f462, 0fC3170000, 0fC2FE0000, %p52;
+ selp.f32 %f463, %f461, %f62, %p52;
+ mov.b32 %r85, %f463;
+ and.b32 %r86, %r85, 8388607;
+ or.b32 %r87, %r86, 1065353216;
+ mov.b32 %f464, %r87;
+ shr.u32 %r88, %r85, 23;
+ cvt.rn.f32.u32 %f465, %r88;
+ add.f32 %f466, %f462, %f465;
+ setp.gt.f32 %p53, %f464, 0f3FB504F3;
+ mul.f32 %f467, %f464, 0f3F000000;
+ add.f32 %f468, %f466, 0f3F800000;
+ selp.f32 %f469, %f467, %f464, %p53;
+ selp.f32 %f470, %f468, %f466, %p53;
+ add.f32 %f471, %f469, 0fBF800000;
+ add.f32 %f457, %f469, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f456,%f457;
+ // inline asm
+ add.f32 %f472, %f471, %f471;
+ mul.f32 %f473, %f456, %f472;
+ mul.f32 %f474, %f473, %f473;
+ fma.rn.f32 %f477, %f982, %f474, %f983;
+ fma.rn.f32 %f479, %f477, %f474, %f984;
+ mul.rn.f32 %f480, %f479, %f474;
+ mul.rn.f32 %f481, %f480, %f473;
+ sub.f32 %f482, %f471, %f473;
+ neg.f32 %f483, %f473;
+ add.f32 %f484, %f482, %f482;
+ fma.rn.f32 %f485, %f483, %f471, %f484;
+ mul.rn.f32 %f486, %f456, %f485;
+ add.f32 %f487, %f481, %f473;
+ sub.f32 %f488, %f473, %f487;
+ add.f32 %f489, %f481, %f488;
+ add.f32 %f490, %f486, %f489;
+ add.f32 %f491, %f487, %f490;
+ sub.f32 %f492, %f487, %f491;
+ add.f32 %f493, %f490, %f492;
+ mul.rn.f32 %f495, %f470, %f985;
+ mul.rn.f32 %f497, %f470, %f986;
+ add.f32 %f498, %f495, %f491;
+ sub.f32 %f499, %f495, %f498;
+ add.f32 %f500, %f491, %f499;
+ add.f32 %f501, %f493, %f500;
+ add.f32 %f502, %f497, %f501;
+ add.f32 %f503, %f498, %f502;
+ sub.f32 %f504, %f498, %f503;
+ add.f32 %f505, %f502, %f504;
+ mov.f32 %f506, 0f3EE66666;
+ mul.rn.f32 %f507, %f506, %f503;
+ neg.f32 %f508, %f507;
+ fma.rn.f32 %f509, %f506, %f503, %f508;
+ fma.rn.f32 %f510, %f506, %f505, %f509;
+ mov.f32 %f511, 0f00000000;
+ fma.rn.f32 %f512, %f511, %f503, %f510;
+ add.rn.f32 %f513, %f507, %f512;
+ neg.f32 %f514, %f513;
+ add.rn.f32 %f515, %f507, %f514;
+ add.rn.f32 %f516, %f515, %f512;
+ mov.b32 %r89, %f513;
+ setp.eq.s32 %p54, %r89, 1118925336;
+ add.s32 %r90, %r89, -1;
+ mov.b32 %f517, %r90;
+ add.f32 %f518, %f516, 0f37000000;
+ selp.f32 %f519, %f517, %f513, %p54;
+ selp.f32 %f63, %f518, %f516, %p54;
+ mul.f32 %f520, %f519, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f521, %f520;
+ fma.rn.f32 %f523, %f521, %f987, %f519;
+ fma.rn.f32 %f525, %f521, %f988, %f523;
+ mul.f32 %f526, %f525, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f527, %f526;
+ add.f32 %f528, %f521, 0f00000000;
+ ex2.approx.f32 %f529, %f528;
+ mul.f32 %f530, %f527, %f529;
+ setp.lt.f32 %p55, %f519, 0fC2D20000;
+ selp.f32 %f531, 0f00000000, %f530, %p55;
+ setp.gt.f32 %p56, %f519, 0f42D20000;
+ selp.f32 %f1027, 0f7F800000, %f531, %p56;
+ setp.eq.f32 %p57, %f1027, 0f7F800000;
+ @%p57 bra BB0_36;
+
+ fma.rn.f32 %f1027, %f1027, %f63, %f1027;
+
+BB0_36:
+ setp.lt.f32 %p58, %f45, 0f00000000;
+ setp.eq.f32 %p59, %f61, 0f3F800000;
+ and.pred %p3, %p58, %p59;
+ mov.b32 %r91, %f1027;
+ xor.b32 %r92, %r91, -2147483648;
+ mov.b32 %f532, %r92;
+ selp.f32 %f1029, %f532, %f1027, %p3;
+ setp.eq.f32 %p60, %f45, 0f00000000;
+ @%p60 bra BB0_39;
+ bra.uni BB0_37;
+
+BB0_39:
+ add.f32 %f535, %f45, %f45;
+ selp.f32 %f1029, %f535, 0f00000000, %p59;
+ bra.uni BB0_40;
+
+BB0_37:
+ setp.geu.f32 %p61, %f45, 0f00000000;
+ @%p61 bra BB0_40;
+
+ cvt.rzi.f32.f32 %f534, %f506;
+ setp.neu.f32 %p62, %f534, 0f3EE66666;
+ selp.f32 %f1029, 0f7FFFFFFF, %f1029, %p62;
+
+BB0_40:
+ add.f32 %f536, %f62, 0f3EE66666;
+ mov.b32 %r93, %f536;
+ setp.lt.s32 %p64, %r93, 2139095040;
+ @%p64 bra BB0_45;
+
+ setp.gtu.f32 %p65, %f62, 0f7F800000;
+ @%p65 bra BB0_44;
+ bra.uni BB0_42;
+
+BB0_44:
+ add.f32 %f1029, %f45, 0f3EE66666;
+ bra.uni BB0_45;
+
+BB0_42:
+ setp.neu.f32 %p66, %f62, 0f7F800000;
+ @%p66 bra BB0_45;
+
+ selp.f32 %f1029, 0fFF800000, 0f7F800000, %p3;
+
+BB0_45:
+ mov.f32 %f995, 0fB5BFBE8E;
+ mov.f32 %f994, 0fBF317200;
+ mov.f32 %f993, 0f35BFBE8E;
+ mov.f32 %f992, 0f3F317200;
+ mov.f32 %f991, 0f3DAAAABD;
+ mov.f32 %f990, 0f3C4CAF63;
+ mov.f32 %f989, 0f3B18F0FE;
+ setp.eq.f32 %p67, %f45, 0f3F800000;
+ selp.f32 %f74, 0f3F800000, %f1029, %p67;
+ abs.f32 %f75, %f46;
+ setp.lt.f32 %p68, %f75, 0f00800000;
+ mul.f32 %f539, %f75, 0f4B800000;
+ selp.f32 %f540, 0fC3170000, 0fC2FE0000, %p68;
+ selp.f32 %f541, %f539, %f75, %p68;
+ mov.b32 %r94, %f541;
+ and.b32 %r95, %r94, 8388607;
+ or.b32 %r96, %r95, 1065353216;
+ mov.b32 %f542, %r96;
+ shr.u32 %r97, %r94, 23;
+ cvt.rn.f32.u32 %f543, %r97;
+ add.f32 %f544, %f540, %f543;
+ setp.gt.f32 %p69, %f542, 0f3FB504F3;
+ mul.f32 %f545, %f542, 0f3F000000;
+ add.f32 %f546, %f544, 0f3F800000;
+ selp.f32 %f547, %f545, %f542, %p69;
+ selp.f32 %f548, %f546, %f544, %p69;
+ add.f32 %f549, %f547, 0fBF800000;
+ add.f32 %f538, %f547, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f537,%f538;
+ // inline asm
+ add.f32 %f550, %f549, %f549;
+ mul.f32 %f551, %f537, %f550;
+ mul.f32 %f552, %f551, %f551;
+ fma.rn.f32 %f555, %f989, %f552, %f990;
+ fma.rn.f32 %f557, %f555, %f552, %f991;
+ mul.rn.f32 %f558, %f557, %f552;
+ mul.rn.f32 %f559, %f558, %f551;
+ sub.f32 %f560, %f549, %f551;
+ neg.f32 %f561, %f551;
+ add.f32 %f562, %f560, %f560;
+ fma.rn.f32 %f563, %f561, %f549, %f562;
+ mul.rn.f32 %f564, %f537, %f563;
+ add.f32 %f565, %f559, %f551;
+ sub.f32 %f566, %f551, %f565;
+ add.f32 %f567, %f559, %f566;
+ add.f32 %f568, %f564, %f567;
+ add.f32 %f569, %f565, %f568;
+ sub.f32 %f570, %f565, %f569;
+ add.f32 %f571, %f568, %f570;
+ mul.rn.f32 %f573, %f548, %f992;
+ mul.rn.f32 %f575, %f548, %f993;
+ add.f32 %f576, %f573, %f569;
+ sub.f32 %f577, %f573, %f576;
+ add.f32 %f578, %f569, %f577;
+ add.f32 %f579, %f571, %f578;
+ add.f32 %f580, %f575, %f579;
+ add.f32 %f581, %f576, %f580;
+ sub.f32 %f582, %f576, %f581;
+ add.f32 %f583, %f580, %f582;
+ mul.rn.f32 %f585, %f506, %f581;
+ neg.f32 %f586, %f585;
+ fma.rn.f32 %f587, %f506, %f581, %f586;
+ fma.rn.f32 %f588, %f506, %f583, %f587;
+ fma.rn.f32 %f590, %f511, %f581, %f588;
+ add.rn.f32 %f591, %f585, %f590;
+ neg.f32 %f592, %f591;
+ add.rn.f32 %f593, %f585, %f592;
+ add.rn.f32 %f594, %f593, %f590;
+ mov.b32 %r98, %f591;
+ setp.eq.s32 %p70, %r98, 1118925336;
+ add.s32 %r99, %r98, -1;
+ mov.b32 %f595, %r99;
+ add.f32 %f596, %f594, 0f37000000;
+ selp.f32 %f597, %f595, %f591, %p70;
+ selp.f32 %f76, %f596, %f594, %p70;
+ mul.f32 %f598, %f597, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f599, %f598;
+ fma.rn.f32 %f601, %f599, %f994, %f597;
+ fma.rn.f32 %f603, %f599, %f995, %f601;
+ mul.f32 %f604, %f603, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f605, %f604;
+ add.f32 %f606, %f599, 0f00000000;
+ ex2.approx.f32 %f607, %f606;
+ mul.f32 %f608, %f605, %f607;
+ setp.lt.f32 %p71, %f597, 0fC2D20000;
+ selp.f32 %f609, 0f00000000, %f608, %p71;
+ setp.gt.f32 %p72, %f597, 0f42D20000;
+ selp.f32 %f1030, 0f7F800000, %f609, %p72;
+ setp.eq.f32 %p73, %f1030, 0f7F800000;
+ @%p73 bra BB0_47;
+
+ fma.rn.f32 %f1030, %f1030, %f76, %f1030;
+
+BB0_47:
+ setp.lt.f32 %p74, %f46, 0f00000000;
+ and.pred %p4, %p74, %p59;
+ mov.b32 %r100, %f1030;
+ xor.b32 %r101, %r100, -2147483648;
+ mov.b32 %f610, %r101;
+ selp.f32 %f1032, %f610, %f1030, %p4;
+ setp.eq.f32 %p76, %f46, 0f00000000;
+ @%p76 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f613, %f46, %f46;
+ selp.f32 %f1032, %f613, 0f00000000, %p59;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p77, %f46, 0f00000000;
+ @%p77 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f612, %f506;
+ setp.neu.f32 %p78, %f612, 0f3EE66666;
+ selp.f32 %f1032, 0f7FFFFFFF, %f1032, %p78;
+
+BB0_51:
+ add.f32 %f614, %f75, 0f3EE66666;
+ mov.b32 %r102, %f614;
+ setp.lt.s32 %p80, %r102, 2139095040;
+ @%p80 bra BB0_56;
+
+ setp.gtu.f32 %p81, %f75, 0f7F800000;
+ @%p81 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f1032, %f46, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p82, %f75, 0f7F800000;
+ @%p82 bra BB0_56;
+
+ selp.f32 %f1032, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f1002, 0fB5BFBE8E;
+ mov.f32 %f1001, 0fBF317200;
+ mov.f32 %f1000, 0f35BFBE8E;
+ mov.f32 %f999, 0f3F317200;
+ mov.f32 %f998, 0f3DAAAABD;
+ mov.f32 %f997, 0f3C4CAF63;
+ mov.f32 %f996, 0f3B18F0FE;
+ setp.eq.f32 %p83, %f46, 0f3F800000;
+ selp.f32 %f87, 0f3F800000, %f1032, %p83;
+ abs.f32 %f88, %f47;
+ setp.lt.f32 %p84, %f88, 0f00800000;
+ mul.f32 %f617, %f88, 0f4B800000;
+ selp.f32 %f618, 0fC3170000, 0fC2FE0000, %p84;
+ selp.f32 %f619, %f617, %f88, %p84;
+ mov.b32 %r103, %f619;
+ and.b32 %r104, %r103, 8388607;
+ or.b32 %r105, %r104, 1065353216;
+ mov.b32 %f620, %r105;
+ shr.u32 %r106, %r103, 23;
+ cvt.rn.f32.u32 %f621, %r106;
+ add.f32 %f622, %f618, %f621;
+ setp.gt.f32 %p85, %f620, 0f3FB504F3;
+ mul.f32 %f623, %f620, 0f3F000000;
+ add.f32 %f624, %f622, 0f3F800000;
+ selp.f32 %f625, %f623, %f620, %p85;
+ selp.f32 %f626, %f624, %f622, %p85;
+ add.f32 %f627, %f625, 0fBF800000;
+ add.f32 %f616, %f625, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f615,%f616;
+ // inline asm
+ add.f32 %f628, %f627, %f627;
+ mul.f32 %f629, %f615, %f628;
+ mul.f32 %f630, %f629, %f629;
+ fma.rn.f32 %f633, %f996, %f630, %f997;
+ fma.rn.f32 %f635, %f633, %f630, %f998;
+ mul.rn.f32 %f636, %f635, %f630;
+ mul.rn.f32 %f637, %f636, %f629;
+ sub.f32 %f638, %f627, %f629;
+ neg.f32 %f639, %f629;
+ add.f32 %f640, %f638, %f638;
+ fma.rn.f32 %f641, %f639, %f627, %f640;
+ mul.rn.f32 %f642, %f615, %f641;
+ add.f32 %f643, %f637, %f629;
+ sub.f32 %f644, %f629, %f643;
+ add.f32 %f645, %f637, %f644;
+ add.f32 %f646, %f642, %f645;
+ add.f32 %f647, %f643, %f646;
+ sub.f32 %f648, %f643, %f647;
+ add.f32 %f649, %f646, %f648;
+ mul.rn.f32 %f651, %f626, %f999;
+ mul.rn.f32 %f653, %f626, %f1000;
+ add.f32 %f654, %f651, %f647;
+ sub.f32 %f655, %f651, %f654;
+ add.f32 %f656, %f647, %f655;
+ add.f32 %f657, %f649, %f656;
+ add.f32 %f658, %f653, %f657;
+ add.f32 %f659, %f654, %f658;
+ sub.f32 %f660, %f654, %f659;
+ add.f32 %f661, %f658, %f660;
+ mul.rn.f32 %f663, %f506, %f659;
+ neg.f32 %f664, %f663;
+ fma.rn.f32 %f665, %f506, %f659, %f664;
+ fma.rn.f32 %f666, %f506, %f661, %f665;
+ fma.rn.f32 %f668, %f511, %f659, %f666;
+ add.rn.f32 %f669, %f663, %f668;
+ neg.f32 %f670, %f669;
+ add.rn.f32 %f671, %f663, %f670;
+ add.rn.f32 %f672, %f671, %f668;
+ mov.b32 %r107, %f669;
+ setp.eq.s32 %p86, %r107, 1118925336;
+ add.s32 %r108, %r107, -1;
+ mov.b32 %f673, %r108;
+ add.f32 %f674, %f672, 0f37000000;
+ selp.f32 %f675, %f673, %f669, %p86;
+ selp.f32 %f89, %f674, %f672, %p86;
+ mul.f32 %f676, %f675, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f677, %f676;
+ fma.rn.f32 %f679, %f677, %f1001, %f675;
+ fma.rn.f32 %f681, %f677, %f1002, %f679;
+ mul.f32 %f682, %f681, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f683, %f682;
+ add.f32 %f684, %f677, 0f00000000;
+ ex2.approx.f32 %f685, %f684;
+ mul.f32 %f686, %f683, %f685;
+ setp.lt.f32 %p87, %f675, 0fC2D20000;
+ selp.f32 %f687, 0f00000000, %f686, %p87;
+ setp.gt.f32 %p88, %f675, 0f42D20000;
+ selp.f32 %f1033, 0f7F800000, %f687, %p88;
+ setp.eq.f32 %p89, %f1033, 0f7F800000;
+ @%p89 bra BB0_58;
+
+ fma.rn.f32 %f1033, %f1033, %f89, %f1033;
+
+BB0_58:
+ setp.lt.f32 %p90, %f47, 0f00000000;
+ and.pred %p5, %p90, %p59;
+ mov.b32 %r109, %f1033;
+ xor.b32 %r110, %r109, -2147483648;
+ mov.b32 %f688, %r110;
+ selp.f32 %f1035, %f688, %f1033, %p5;
+ setp.eq.f32 %p92, %f47, 0f00000000;
+ @%p92 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f691, %f47, %f47;
+ selp.f32 %f1035, %f691, 0f00000000, %p59;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p93, %f47, 0f00000000;
+ @%p93 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f690, %f506;
+ setp.neu.f32 %p94, %f690, 0f3EE66666;
+ selp.f32 %f1035, 0f7FFFFFFF, %f1035, %p94;
+
+BB0_62:
+ add.f32 %f692, %f88, 0f3EE66666;
+ mov.b32 %r111, %f692;
+ setp.lt.s32 %p96, %r111, 2139095040;
+ @%p96 bra BB0_67;
+
+ setp.gtu.f32 %p97, %f88, 0f7F800000;
+ @%p97 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f1035, %f47, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p98, %f88, 0f7F800000;
+ @%p98 bra BB0_67;
+
+ selp.f32 %f1035, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ setp.eq.f32 %p99, %f47, 0f3F800000;
+ selp.f32 %f693, 0f3F800000, %f1035, %p99;
+ cvt.u64.u32 %rd41, %r3;
+ cvt.u64.u32 %rd40, %r2;
+ mov.u64 %rd44, image;
+ cvta.global.u64 %rd39, %rd44;
+ // inline asm
+ call (%rd38), _rt_buffer_get_64, (%rd39, %r32, %r33, %rd40, %rd41, %rd20, %rd20);
+ // inline asm
+ cvt.sat.f32.f32 %f694, %f693;
+ mul.f32 %f695, %f694, 0f437FFD71;
+ cvt.rzi.u32.f32 %r114, %f695;
+ cvt.sat.f32.f32 %f696, %f87;
+ mul.f32 %f697, %f696, 0f437FFD71;
+ cvt.rzi.u32.f32 %r115, %f697;
+ cvt.sat.f32.f32 %f698, %f74;
+ mul.f32 %f699, %f698, 0f437FFD71;
+ cvt.rzi.u32.f32 %r116, %f699;
+ cvt.u16.u32 %rs19, %r114;
+ cvt.u16.u32 %rs20, %r116;
+ cvt.u16.u32 %rs21, %r115;
+ mov.u16 %rs22, 255;
+ st.v4.u8 [%rd38], {%rs19, %rs21, %rs20, %rs22};
+ ld.global.u32 %r240, [imageEnabled];
+
+BB0_68:
+ and.b32 %r117, %r240, 4;
+ setp.eq.s32 %p100, %r117, 0;
+ @%p100 bra BB0_72;
+
+ ld.global.u32 %r118, [additive];
+ setp.eq.s32 %p101, %r118, 0;
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ mov.f32 %f700, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f700;}
+
+ // inline asm
+ @%p101 bra BB0_71;
+
+ mov.u64 %rd57, image_HDR;
+ cvta.global.u64 %rd46, %rd57;
+ mov.u32 %r122, 8;
+ // inline asm
+ call (%rd45), _rt_buffer_get_64, (%rd46, %r32, %r122, %rd4, %rd5, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs30, %rs31, %rs32, %rs33}, [%rd45];
+ // inline asm
+ { cvt.f32.f16 %f701, %rs30;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f702, %rs31;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f703, %rs32;}
+
+ // inline asm
+ // inline asm
+ call (%rd51), _rt_buffer_get_64, (%rd46, %r32, %r122, %rd4, %rd5, %rd20, %rd20);
+ // inline asm
+ add.f32 %f704, %f45, %f701;
+ add.f32 %f705, %f46, %f702;
+ add.f32 %f706, %f47, %f703;
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f706;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f705;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f704;}
+
+ // inline asm
+ st.v4.u16 [%rd51], {%rs27, %rs28, %rs29, %rs23};
+ bra.uni BB0_72;
+
+BB0_71:
+ mov.u64 %rd64, image_HDR;
+ cvta.global.u64 %rd59, %rd64;
+ mov.u32 %r124, 8;
+ // inline asm
+ call (%rd58), _rt_buffer_get_64, (%rd59, %r32, %r124, %rd4, %rd5, %rd20, %rd20);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f47;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs35, %f46;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f45;}
+
+ // inline asm
+ st.v4.u16 [%rd58], {%rs34, %rs35, %rs36, %rs23};
+
+BB0_72:
+ mul.f32 %f713, %f32, %f1023;
+ ld.global.f32 %f714, [lightColor];
+ mul.f32 %f100, %f713, %f714;
+ ld.global.f32 %f715, [lightColor+4];
+ mul.f32 %f101, %f713, %f715;
+ ld.global.f32 %f716, [lightColor+8];
+ mul.f32 %f102, %f713, %f716;
+ ld.global.v2.u32 {%r127, %r128}, [pixelID];
+ cvt.u64.u32 %rd67, %r127;
+ cvt.u64.u32 %rd68, %r128;
+ mov.u64 %rd71, uvtangent;
+ cvta.global.u64 %rd66, %rd71;
+ // inline asm
+ call (%rd65), _rt_buffer_get_64, (%rd66, %r32, %r33, %rd67, %rd68, %rd20, %rd20);
+ // inline asm
+ ld.u32 %r16, [%rd65];
+ shr.u32 %r17, %r16, 16;
+ cvt.u16.u32 %rs37, %r17;
+ and.b16 %rs38, %rs37, 255;
+ cvt.u16.u32 %rs39, %r16;
+ or.b16 %rs40, %rs39, %rs38;
+ setp.eq.s16 %p102, %rs40, 0;
+ mov.f32 %f1042, 0f00000000;
+ mov.f32 %f1036, %f1042;
+ mov.f32 %f1037, %f1042;
+ mov.f32 %f1038, %f1042;
+ @%p102 bra BB0_74;
+
+ ld.u8 %rs41, [%rd65+1];
+ and.b16 %rs43, %rs39, 255;
+ cvt.rn.f32.u16 %f717, %rs43;
+ div.rn.f32 %f718, %f717, 0f437F0000;
+ fma.rn.f32 %f719, %f718, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f720, %rs41;
+ div.rn.f32 %f721, %f720, 0f437F0000;
+ fma.rn.f32 %f722, %f721, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f723, %rs38;
+ div.rn.f32 %f724, %f723, 0f437F0000;
+ fma.rn.f32 %f725, %f724, 0f40000000, 0fBF800000;
+ mul.f32 %f726, %f722, %f722;
+ fma.rn.f32 %f727, %f719, %f719, %f726;
+ fma.rn.f32 %f728, %f725, %f725, %f727;
+ sqrt.rn.f32 %f729, %f728;
+ rcp.rn.f32 %f730, %f729;
+ mul.f32 %f1036, %f719, %f730;
+ mul.f32 %f1037, %f722, %f730;
+ mul.f32 %f1038, %f725, %f730;
+
+BB0_74:
+ mul.f32 %f734, %f1014, %f1037;
+ mul.f32 %f735, %f1013, %f1038;
+ sub.f32 %f736, %f735, %f734;
+ mul.f32 %f737, %f1012, %f1038;
+ mul.f32 %f738, %f1014, %f1036;
+ sub.f32 %f739, %f738, %f737;
+ mul.f32 %f740, %f1013, %f1036;
+ mul.f32 %f741, %f1012, %f1037;
+ sub.f32 %f742, %f741, %f740;
+ setp.lt.u32 %p103, %r16, 16777216;
+ selp.f32 %f743, 0fBF800000, 0f3F800000, %p103;
+ mul.f32 %f744, %f736, %f743;
+ mul.f32 %f745, %f739, %f743;
+ mul.f32 %f746, %f742, %f743;
+ mul.f32 %f747, %f744, 0f00000000;
+ mul.f32 %f748, %f745, 0f00000000;
+ mul.f32 %f749, %f746, 0f00000000;
+ fma.rn.f32 %f750, %f1036, 0f3F5105EC, %f747;
+ fma.rn.f32 %f751, %f1037, 0f3F5105EC, %f748;
+ fma.rn.f32 %f752, %f1038, 0f3F5105EC, %f749;
+ mul.f32 %f109, %f1012, 0f3F13CD3A;
+ add.f32 %f110, %f109, %f750;
+ mul.f32 %f111, %f1013, 0f3F13CD3A;
+ add.f32 %f112, %f111, %f751;
+ mul.f32 %f113, %f1014, 0f3F13CD3A;
+ add.f32 %f114, %f113, %f752;
+ ld.global.v2.u32 {%r133, %r134}, [pixelID];
+ cvt.u64.u32 %rd74, %r133;
+ cvt.u64.u32 %rd75, %r134;
+ // inline asm
+ call (%rd72), _rt_buffer_get_64, (%rd66, %r32, %r33, %rd74, %rd75, %rd20, %rd20);
+ // inline asm
+ ld.u32 %r18, [%rd72];
+ shr.u32 %r19, %r18, 16;
+ cvt.u16.u32 %rs46, %r19;
+ and.b16 %rs47, %rs46, 255;
+ cvt.u16.u32 %rs48, %r18;
+ or.b16 %rs49, %rs48, %rs47;
+ setp.eq.s16 %p104, %rs49, 0;
+ mov.f32 %f1039, %f1042;
+ mov.f32 %f1040, %f1042;
+ mov.f32 %f1041, %f1042;
+ @%p104 bra BB0_76;
+
+ ld.u8 %rs50, [%rd72+1];
+ and.b16 %rs52, %rs48, 255;
+ cvt.rn.f32.u16 %f753, %rs52;
+ div.rn.f32 %f754, %f753, 0f437F0000;
+ fma.rn.f32 %f755, %f754, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f756, %rs50;
+ div.rn.f32 %f757, %f756, 0f437F0000;
+ fma.rn.f32 %f758, %f757, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f759, %rs47;
+ div.rn.f32 %f760, %f759, 0f437F0000;
+ fma.rn.f32 %f761, %f760, 0f40000000, 0fBF800000;
+ mul.f32 %f762, %f758, %f758;
+ fma.rn.f32 %f763, %f755, %f755, %f762;
+ fma.rn.f32 %f764, %f761, %f761, %f763;
+ sqrt.rn.f32 %f765, %f764;
+ rcp.rn.f32 %f766, %f765;
+ mul.f32 %f1039, %f755, %f766;
+ mul.f32 %f1040, %f758, %f766;
+ mul.f32 %f1041, %f761, %f766;
+
+BB0_76:
+ mul.f32 %f770, %f1014, %f1040;
+ mul.f32 %f771, %f1013, %f1041;
+ sub.f32 %f772, %f771, %f770;
+ mul.f32 %f773, %f1012, %f1041;
+ mul.f32 %f774, %f1014, %f1039;
+ sub.f32 %f775, %f774, %f773;
+ mul.f32 %f776, %f1013, %f1039;
+ mul.f32 %f777, %f1012, %f1040;
+ sub.f32 %f778, %f777, %f776;
+ setp.lt.u32 %p105, %r18, 16777216;
+ selp.f32 %f779, 0fBF800000, 0f3F800000, %p105;
+ mul.f32 %f780, %f772, %f779;
+ mul.f32 %f781, %f775, %f779;
+ mul.f32 %f782, %f778, %f779;
+ mul.f32 %f783, %f780, 0f3F3504F3;
+ mul.f32 %f784, %f781, 0f3F3504F3;
+ mul.f32 %f785, %f782, 0f3F3504F3;
+ fma.rn.f32 %f786, %f1039, 0fBED105EC, %f783;
+ fma.rn.f32 %f787, %f1040, 0fBED105EC, %f784;
+ fma.rn.f32 %f788, %f1041, 0fBED105EC, %f785;
+ add.f32 %f121, %f109, %f786;
+ add.f32 %f122, %f111, %f787;
+ add.f32 %f123, %f113, %f788;
+ ld.global.v2.u32 {%r139, %r140}, [pixelID];
+ cvt.u64.u32 %rd81, %r139;
+ cvt.u64.u32 %rd82, %r140;
+ // inline asm
+ call (%rd79), _rt_buffer_get_64, (%rd66, %r32, %r33, %rd81, %rd82, %rd20, %rd20);
+ // inline asm
+ ld.u32 %r20, [%rd79];
+ shr.u32 %r21, %r20, 16;
+ cvt.u16.u32 %rs55, %r21;
+ and.b16 %rs56, %rs55, 255;
+ cvt.u16.u32 %rs57, %r20;
+ or.b16 %rs58, %rs57, %rs56;
+ setp.eq.s16 %p106, %rs58, 0;
+ mov.f32 %f1043, %f1042;
+ mov.f32 %f1044, %f1042;
+ @%p106 bra BB0_78;
+
+ ld.u8 %rs59, [%rd79+1];
+ and.b16 %rs61, %rs57, 255;
+ cvt.rn.f32.u16 %f789, %rs61;
+ div.rn.f32 %f790, %f789, 0f437F0000;
+ fma.rn.f32 %f791, %f790, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f792, %rs59;
+ div.rn.f32 %f793, %f792, 0f437F0000;
+ fma.rn.f32 %f794, %f793, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f795, %rs56;
+ div.rn.f32 %f796, %f795, 0f437F0000;
+ fma.rn.f32 %f797, %f796, 0f40000000, 0fBF800000;
+ mul.f32 %f798, %f794, %f794;
+ fma.rn.f32 %f799, %f791, %f791, %f798;
+ fma.rn.f32 %f800, %f797, %f797, %f799;
+ sqrt.rn.f32 %f801, %f800;
+ rcp.rn.f32 %f802, %f801;
+ mul.f32 %f1042, %f791, %f802;
+ mul.f32 %f1043, %f794, %f802;
+ mul.f32 %f1044, %f797, %f802;
+
+BB0_78:
+ sub.f32 %f1008, %f11, %f12;
+ mul.f32 %f1007, %f1008, %f168;
+ sub.f32 %f1006, %f7, %f8;
+ mul.f32 %f1005, %f1006, %f168;
+ sub.f32 %f1004, %f9, %f10;
+ mul.f32 %f1003, %f1004, %f168;
+ mul.f32 %f804, %f1014, %f1043;
+ mul.f32 %f805, %f1013, %f1044;
+ sub.f32 %f806, %f805, %f804;
+ mul.f32 %f807, %f1012, %f1044;
+ mul.f32 %f808, %f1014, %f1042;
+ sub.f32 %f809, %f808, %f807;
+ mul.f32 %f810, %f1013, %f1042;
+ mul.f32 %f811, %f1012, %f1043;
+ sub.f32 %f812, %f811, %f810;
+ setp.lt.u32 %p107, %r20, 16777216;
+ selp.f32 %f813, 0fBF800000, 0f3F800000, %p107;
+ mul.f32 %f814, %f806, %f813;
+ mul.f32 %f815, %f809, %f813;
+ mul.f32 %f816, %f812, %f813;
+ mul.f32 %f817, %f814, 0fBF3504F3;
+ mul.f32 %f818, %f815, 0fBF3504F3;
+ mul.f32 %f819, %f816, 0fBF3504F3;
+ fma.rn.f32 %f820, %f1042, 0fBED105EC, %f817;
+ fma.rn.f32 %f821, %f1043, 0fBED105EC, %f818;
+ fma.rn.f32 %f822, %f1044, 0fBED105EC, %f819;
+ add.f32 %f823, %f109, %f820;
+ add.f32 %f824, %f111, %f821;
+ add.f32 %f825, %f113, %f822;
+ mul.f32 %f826, %f1003, %f112;
+ fma.rn.f32 %f827, %f1005, %f110, %f826;
+ fma.rn.f32 %f828, %f1007, %f114, %f827;
+ cvt.sat.f32.f32 %f829, %f828;
+ mul.f32 %f830, %f100, %f829;
+ mul.f32 %f831, %f101, %f829;
+ mul.f32 %f832, %f102, %f829;
+ mul.f32 %f833, %f1003, %f122;
+ fma.rn.f32 %f834, %f1005, %f121, %f833;
+ fma.rn.f32 %f835, %f1007, %f123, %f834;
+ cvt.sat.f32.f32 %f836, %f835;
+ mul.f32 %f837, %f100, %f836;
+ mul.f32 %f838, %f101, %f836;
+ mul.f32 %f839, %f102, %f836;
+ mul.f32 %f840, %f1003, %f824;
+ fma.rn.f32 %f841, %f1005, %f823, %f840;
+ fma.rn.f32 %f842, %f1007, %f825, %f841;
+ cvt.sat.f32.f32 %f843, %f842;
+ mul.f32 %f844, %f100, %f843;
+ mul.f32 %f845, %f101, %f843;
+ mul.f32 %f846, %f102, %f843;
+ cvt.sat.f32.f32 %f847, %f31;
+ mul.f32 %f848, %f100, %f847;
+ mul.f32 %f849, %f101, %f847;
+ mul.f32 %f850, %f102, %f847;
+ add.f32 %f851, %f830, %f837;
+ add.f32 %f852, %f831, %f838;
+ add.f32 %f853, %f832, %f839;
+ add.f32 %f854, %f851, %f844;
+ add.f32 %f855, %f852, %f845;
+ add.f32 %f856, %f853, %f846;
+ mul.f32 %f857, %f854, 0f3F13CD3A;
+ mul.f32 %f858, %f855, 0f3F13CD3A;
+ mul.f32 %f859, %f856, 0f3F13CD3A;
+ div.rn.f32 %f860, %f848, %f857;
+ div.rn.f32 %f861, %f849, %f858;
+ div.rn.f32 %f862, %f850, %f859;
+ setp.eq.f32 %p108, %f848, 0f00000000;
+ selp.f32 %f863, 0f00000000, %f860, %p108;
+ setp.eq.f32 %p109, %f849, 0f00000000;
+ selp.f32 %f864, 0f00000000, %f861, %p109;
+ setp.eq.f32 %p110, %f850, 0f00000000;
+ selp.f32 %f865, 0f00000000, %f862, %p110;
+ mul.f32 %f130, %f830, %f863;
+ mul.f32 %f131, %f831, %f864;
+ mul.f32 %f132, %f832, %f865;
+ mul.f32 %f133, %f837, %f863;
+ mul.f32 %f134, %f838, %f864;
+ mul.f32 %f135, %f839, %f865;
+ mul.f32 %f136, %f844, %f863;
+ mul.f32 %f137, %f845, %f864;
+ mul.f32 %f138, %f846, %f865;
+ ld.global.u32 %r143, [additive];
+ setp.eq.s32 %p111, %r143, 0;
+ cvt.u64.u32 %rd9, %r2;
+ cvt.u64.u32 %rd10, %r3;
+ mov.f32 %f803, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f803;}
+
+ // inline asm
+ @%p111 bra BB0_80;
+
+ mov.u64 %rd98, image_RNM0;
+ cvta.global.u64 %rd87, %rd98;
+ mov.u32 %r147, 8;
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd87, %r32, %r147, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs71, %rs72, %rs73, %rs74}, [%rd86];
+ // inline asm
+ { cvt.f32.f16 %f866, %rs71;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f867, %rs72;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f868, %rs73;}
+
+ // inline asm
+ // inline asm
+ call (%rd92), _rt_buffer_get_64, (%rd87, %r32, %r147, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ add.f32 %f869, %f130, %f866;
+ add.f32 %f870, %f131, %f867;
+ add.f32 %f871, %f132, %f868;
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f871;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f870;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs68, %f869;}
+
+ // inline asm
+ st.v4.u16 [%rd92], {%rs68, %rs69, %rs70, %rs64};
+ bra.uni BB0_81;
+
+BB0_80:
+ mov.u64 %rd105, image_RNM0;
+ cvta.global.u64 %rd100, %rd105;
+ mov.u32 %r149, 8;
+ // inline asm
+ call (%rd99), _rt_buffer_get_64, (%rd100, %r32, %r149, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f132;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f131;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs75, %f130;}
+
+ // inline asm
+ st.v4.u16 [%rd99], {%rs75, %rs76, %rs77, %rs64};
+
+BB0_81:
+ ld.global.u32 %r150, [additive];
+ setp.eq.s32 %p112, %r150, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f803;}
+
+ // inline asm
+ @%p112 bra BB0_83;
+
+ mov.u64 %rd118, image_RNM1;
+ cvta.global.u64 %rd107, %rd118;
+ mov.u32 %r154, 8;
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd107, %r32, %r154, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs85, %rs86, %rs87, %rs88}, [%rd106];
+ // inline asm
+ { cvt.f32.f16 %f876, %rs85;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f877, %rs86;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f878, %rs87;}
+
+ // inline asm
+ // inline asm
+ call (%rd112), _rt_buffer_get_64, (%rd107, %r32, %r154, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ add.f32 %f879, %f133, %f876;
+ add.f32 %f880, %f134, %f877;
+ add.f32 %f881, %f135, %f878;
+ // inline asm
+ { cvt.rn.f16.f32 %rs84, %f881;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f880;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f879;}
+
+ // inline asm
+ st.v4.u16 [%rd112], {%rs82, %rs83, %rs84, %rs78};
+ bra.uni BB0_84;
+
+BB0_83:
+ mov.u64 %rd125, image_RNM1;
+ cvta.global.u64 %rd120, %rd125;
+ mov.u32 %r156, 8;
+ // inline asm
+ call (%rd119), _rt_buffer_get_64, (%rd120, %r32, %r156, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f135;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f134;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs89, %f133;}
+
+ // inline asm
+ st.v4.u16 [%rd119], {%rs89, %rs90, %rs91, %rs78};
+
+BB0_84:
+ ld.global.u32 %r157, [additive];
+ setp.eq.s32 %p113, %r157, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f803;}
+
+ // inline asm
+ @%p113 bra BB0_86;
+
+ mov.u64 %rd138, image_RNM2;
+ cvta.global.u64 %rd127, %rd138;
+ mov.u32 %r161, 8;
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd127, %r32, %r161, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs99, %rs100, %rs101, %rs102}, [%rd126];
+ // inline asm
+ { cvt.f32.f16 %f886, %rs99;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f887, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f888, %rs101;}
+
+ // inline asm
+ // inline asm
+ call (%rd132), _rt_buffer_get_64, (%rd127, %r32, %r161, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ add.f32 %f889, %f136, %f886;
+ add.f32 %f890, %f137, %f887;
+ add.f32 %f891, %f138, %f888;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f891;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f890;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs96, %f889;}
+
+ // inline asm
+ st.v4.u16 [%rd132], {%rs96, %rs97, %rs98, %rs92};
+ bra.uni BB0_122;
+
+BB0_86:
+ mov.u64 %rd145, image_RNM2;
+ cvta.global.u64 %rd140, %rd145;
+ mov.u32 %r163, 8;
+ // inline asm
+ call (%rd139), _rt_buffer_get_64, (%rd140, %r32, %r163, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f138;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f137;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs103, %f136;}
+
+ // inline asm
+ st.v4.u16 [%rd139], {%rs103, %rs104, %rs105, %rs92};
+
+BB0_122:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightRNM.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightRNM.ptx.meta
new file mode 100644
index 00000000..58e3cf83
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightRNM.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3bbf2265029973c419a3bcb8fbcb2fc2
+timeCreated: 1558780075
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightSH.ptx
new file mode 100644
index 00000000..327578bf
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightSH.ptx
@@ -0,0 +1,2422 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .b8 lightConeDir[12];
+.global .align 8 .b8 lightCone[8];
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12lightConeDirE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9lightConeE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12lightConeDirE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9lightConeE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12lightConeDirE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9lightConeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12lightConeDirE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9lightConeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12lightConeDirE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9lightConeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<139>;
+ .reg .b16 %rs<221>;
+ .reg .f32 %f<984>;
+ .reg .b32 %r<251>;
+ .reg .b64 %rd<369>;
+
+
+ mov.u64 %rd368, __local_depot0;
+ cvta.local.u64 %SP, %rd368;
+ ld.global.v2.u32 {%r28, %r29}, [pixelID];
+ cvt.u64.u32 %rd12, %r28;
+ cvt.u64.u32 %rd13, %r29;
+ mov.u64 %rd16, uvnormal;
+ cvta.global.u64 %rd11, %rd16;
+ mov.u32 %r26, 2;
+ mov.u32 %r27, 4;
+ mov.u64 %rd15, 0;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r26, %r27, %rd12, %rd13, %rd15, %rd15);
+ // inline asm
+ ld.u32 %r1, [%rd10];
+ shr.u32 %r32, %r1, 16;
+ cvt.u16.u32 %rs1, %r32;
+ and.b16 %rs12, %rs1, 255;
+ cvt.u16.u32 %rs13, %r1;
+ or.b16 %rs14, %rs13, %rs12;
+ setp.eq.s16 %p7, %rs14, 0;
+ mov.f32 %f957, 0f00000000;
+ mov.f32 %f958, %f957;
+ mov.f32 %f959, %f957;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs15, [%rd10+1];
+ and.b16 %rs17, %rs13, 255;
+ cvt.rn.f32.u16 %f128, %rs17;
+ div.rn.f32 %f129, %f128, 0f437F0000;
+ fma.rn.f32 %f130, %f129, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f131, %rs15;
+ div.rn.f32 %f132, %f131, 0f437F0000;
+ fma.rn.f32 %f133, %f132, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f134, %rs12;
+ div.rn.f32 %f135, %f134, 0f437F0000;
+ fma.rn.f32 %f136, %f135, 0f40000000, 0fBF800000;
+ mul.f32 %f137, %f133, %f133;
+ fma.rn.f32 %f138, %f130, %f130, %f137;
+ fma.rn.f32 %f139, %f136, %f136, %f138;
+ sqrt.rn.f32 %f140, %f139;
+ rcp.rn.f32 %f141, %f140;
+ mul.f32 %f957, %f130, %f141;
+ mul.f32 %f958, %f133, %f141;
+ mul.f32 %f959, %f136, %f141;
+
+BB0_2:
+ ld.global.v2.u32 {%r33, %r34}, [pixelID];
+ ld.global.v2.u32 {%r36, %r37}, [tileInfo];
+ add.s32 %r2, %r33, %r36;
+ add.s32 %r3, %r34, %r37;
+ setp.eq.f32 %p8, %f958, 0f00000000;
+ setp.eq.f32 %p9, %f957, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f959, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_116;
+ bra.uni BB0_3;
+
+BB0_116:
+ ld.global.u32 %r250, [imageEnabled];
+ and.b32 %r199, %r250, 1;
+ setp.eq.b32 %p131, %r199, 1;
+ @!%p131 bra BB0_118;
+ bra.uni BB0_117;
+
+BB0_117:
+ cvt.u64.u32 %rd256, %r2;
+ cvt.u64.u32 %rd257, %r3;
+ mov.u64 %rd260, image;
+ cvta.global.u64 %rd255, %rd260;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r26, %r27, %rd256, %rd257, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs153, 0;
+ st.v4.u8 [%rd254], {%rs153, %rs153, %rs153, %rs153};
+ ld.global.u32 %r250, [imageEnabled];
+
+BB0_118:
+ and.b32 %r202, %r250, 8;
+ setp.eq.s32 %p132, %r202, 0;
+ @%p132 bra BB0_120;
+
+ cvt.u64.u32 %rd264, %r3;
+ cvt.u64.u32 %rd263, %r2;
+ mov.u64 %rd267, image_Mask;
+ cvta.global.u64 %rd262, %rd267;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r26, %r26, %rd263, %rd264, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f866, 0f00000000;
+ cvt.rzi.u32.f32 %r205, %f866;
+ cvt.u16.u32 %rs154, %r205;
+ mov.u16 %rs155, 0;
+ st.v2.u8 [%rd261], {%rs154, %rs155};
+ ld.global.u32 %r250, [imageEnabled];
+
+BB0_120:
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ and.b32 %r206, %r250, 4;
+ setp.eq.s32 %p133, %r206, 0;
+ @%p133 bra BB0_124;
+
+ ld.global.u32 %r207, [additive];
+ setp.eq.s32 %p134, %r207, 0;
+ @%p134 bra BB0_123;
+
+ mov.u64 %rd280, image_HDR;
+ cvta.global.u64 %rd269, %rd280;
+ mov.u32 %r211, 8;
+ // inline asm
+ call (%rd268), _rt_buffer_get_64, (%rd269, %r26, %r211, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs162, %rs163, %rs164, %rs165}, [%rd268];
+ // inline asm
+ { cvt.f32.f16 %f867, %rs162;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f868, %rs163;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f869, %rs164;}
+
+ // inline asm
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd269, %r26, %r211, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f870, %f867, 0f00000000;
+ add.f32 %f871, %f868, 0f00000000;
+ add.f32 %f872, %f869, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs161, %f872;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs160, %f871;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs159, %f870;}
+
+ // inline asm
+ mov.u16 %rs166, 0;
+ st.v4.u16 [%rd274], {%rs159, %rs160, %rs161, %rs166};
+ bra.uni BB0_124;
+
+BB0_3:
+ ld.global.v2.u32 {%r43, %r44}, [pixelID];
+ cvt.u64.u32 %rd19, %r43;
+ cvt.u64.u32 %rd20, %r44;
+ mov.u64 %rd23, uvpos;
+ cvta.global.u64 %rd18, %rd23;
+ mov.u32 %r42, 12;
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd18, %r26, %r42, %rd19, %rd20, %rd15, %rd15);
+ // inline asm
+ ld.global.f32 %f968, [lightPos];
+ ld.f32 %f12, [%rd17+8];
+ ld.f32 %f10, [%rd17+4];
+ ld.f32 %f8, [%rd17];
+ sub.f32 %f144, %f968, %f8;
+ ld.global.f32 %f967, [lightPos+4];
+ sub.f32 %f145, %f967, %f10;
+ ld.global.f32 %f966, [lightPos+8];
+ sub.f32 %f146, %f966, %f12;
+ mul.f32 %f147, %f145, %f145;
+ fma.rn.f32 %f148, %f144, %f144, %f147;
+ fma.rn.f32 %f149, %f146, %f146, %f148;
+ sqrt.rn.f32 %f150, %f149;
+ rcp.rn.f32 %f151, %f150;
+ mul.f32 %f13, %f144, %f151;
+ mul.f32 %f14, %f145, %f151;
+ mul.f32 %f15, %f146, %f151;
+ ld.global.f32 %f152, [lightFalloffFakeDistanceMult];
+ mul.f32 %f16, %f150, %f152;
+ ld.global.f32 %f153, [lightInvCutoff];
+ mul.f32 %f17, %f150, %f153;
+ mov.f32 %f157, 0f40800000;
+ abs.f32 %f19, %f17;
+ setp.lt.f32 %p13, %f19, 0f00800000;
+ mul.f32 %f159, %f19, 0f4B800000;
+ selp.f32 %f160, 0fC3170000, 0fC2FE0000, %p13;
+ selp.f32 %f161, %f159, %f19, %p13;
+ mov.b32 %r47, %f161;
+ and.b32 %r48, %r47, 8388607;
+ or.b32 %r49, %r48, 1065353216;
+ mov.b32 %f162, %r49;
+ shr.u32 %r50, %r47, 23;
+ cvt.rn.f32.u32 %f163, %r50;
+ add.f32 %f164, %f160, %f163;
+ setp.gt.f32 %p14, %f162, 0f3FB504F3;
+ mul.f32 %f165, %f162, 0f3F000000;
+ add.f32 %f166, %f164, 0f3F800000;
+ selp.f32 %f167, %f165, %f162, %p14;
+ selp.f32 %f168, %f166, %f164, %p14;
+ add.f32 %f169, %f167, 0fBF800000;
+ add.f32 %f143, %f167, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f142,%f143;
+ // inline asm
+ add.f32 %f170, %f169, %f169;
+ mul.f32 %f171, %f142, %f170;
+ mul.f32 %f172, %f171, %f171;
+ mov.f32 %f173, 0f3C4CAF63;
+ mov.f32 %f174, 0f3B18F0FE;
+ fma.rn.f32 %f175, %f174, %f172, %f173;
+ mov.f32 %f176, 0f3DAAAABD;
+ fma.rn.f32 %f177, %f175, %f172, %f176;
+ mul.rn.f32 %f178, %f177, %f172;
+ mul.rn.f32 %f179, %f178, %f171;
+ sub.f32 %f180, %f169, %f171;
+ neg.f32 %f181, %f171;
+ add.f32 %f182, %f180, %f180;
+ fma.rn.f32 %f183, %f181, %f169, %f182;
+ mul.rn.f32 %f184, %f142, %f183;
+ add.f32 %f185, %f179, %f171;
+ sub.f32 %f186, %f171, %f185;
+ add.f32 %f187, %f179, %f186;
+ add.f32 %f188, %f184, %f187;
+ add.f32 %f189, %f185, %f188;
+ sub.f32 %f190, %f185, %f189;
+ add.f32 %f191, %f188, %f190;
+ mov.f32 %f192, 0f3F317200;
+ mul.rn.f32 %f193, %f168, %f192;
+ mov.f32 %f194, 0f35BFBE8E;
+ mul.rn.f32 %f195, %f168, %f194;
+ add.f32 %f196, %f193, %f189;
+ sub.f32 %f197, %f193, %f196;
+ add.f32 %f198, %f189, %f197;
+ add.f32 %f199, %f191, %f198;
+ add.f32 %f200, %f195, %f199;
+ add.f32 %f201, %f196, %f200;
+ sub.f32 %f202, %f196, %f201;
+ add.f32 %f203, %f200, %f202;
+ mul.rn.f32 %f204, %f157, %f201;
+ neg.f32 %f205, %f204;
+ fma.rn.f32 %f206, %f157, %f201, %f205;
+ fma.rn.f32 %f207, %f157, %f203, %f206;
+ mov.f32 %f208, 0f00000000;
+ fma.rn.f32 %f209, %f208, %f201, %f207;
+ add.rn.f32 %f210, %f204, %f209;
+ neg.f32 %f211, %f210;
+ add.rn.f32 %f212, %f204, %f211;
+ add.rn.f32 %f213, %f212, %f209;
+ mov.b32 %r51, %f210;
+ setp.eq.s32 %p15, %r51, 1118925336;
+ add.s32 %r52, %r51, -1;
+ mov.b32 %f214, %r52;
+ add.f32 %f215, %f213, 0f37000000;
+ selp.f32 %f216, %f214, %f210, %p15;
+ selp.f32 %f20, %f215, %f213, %p15;
+ mul.f32 %f217, %f216, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f218, %f217;
+ mov.f32 %f219, 0fBF317200;
+ fma.rn.f32 %f220, %f218, %f219, %f216;
+ mov.f32 %f221, 0fB5BFBE8E;
+ fma.rn.f32 %f222, %f218, %f221, %f220;
+ mul.f32 %f223, %f222, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f224, %f223;
+ add.f32 %f225, %f218, 0f00000000;
+ ex2.approx.f32 %f226, %f225;
+ mul.f32 %f227, %f224, %f226;
+ setp.lt.f32 %p16, %f216, 0fC2D20000;
+ selp.f32 %f228, 0f00000000, %f227, %p16;
+ setp.gt.f32 %p17, %f216, 0f42D20000;
+ selp.f32 %f960, 0f7F800000, %f228, %p17;
+ setp.eq.f32 %p18, %f960, 0f7F800000;
+ @%p18 bra BB0_5;
+
+ fma.rn.f32 %f960, %f960, %f20, %f960;
+
+BB0_5:
+ mov.f32 %f907, 0f40000000;
+ cvt.rzi.f32.f32 %f906, %f907;
+ add.f32 %f905, %f906, %f906;
+ mov.f32 %f904, 0f40800000;
+ sub.f32 %f903, %f904, %f905;
+ abs.f32 %f902, %f903;
+ setp.lt.f32 %p19, %f17, 0f00000000;
+ setp.eq.f32 %p20, %f902, 0f3F800000;
+ and.pred %p1, %p19, %p20;
+ mov.b32 %r53, %f960;
+ xor.b32 %r54, %r53, -2147483648;
+ mov.b32 %f229, %r54;
+ selp.f32 %f962, %f229, %f960, %p1;
+ setp.eq.f32 %p21, %f17, 0f00000000;
+ @%p21 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f232, %f17, %f17;
+ selp.f32 %f962, %f232, 0f00000000, %p20;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p22, %f17, 0f00000000;
+ @%p22 bra BB0_9;
+
+ mov.f32 %f948, 0f40800000;
+ cvt.rzi.f32.f32 %f231, %f948;
+ setp.neu.f32 %p23, %f231, 0f40800000;
+ selp.f32 %f962, 0f7FFFFFFF, %f962, %p23;
+
+BB0_9:
+ abs.f32 %f908, %f17;
+ add.f32 %f233, %f908, 0f40800000;
+ mov.b32 %r55, %f233;
+ setp.lt.s32 %p25, %r55, 2139095040;
+ @%p25 bra BB0_14;
+
+ abs.f32 %f946, %f17;
+ setp.gtu.f32 %p26, %f946, 0f7F800000;
+ @%p26 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f962, %f17, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f947, %f17;
+ setp.neu.f32 %p27, %f947, 0f7F800000;
+ @%p27 bra BB0_14;
+
+ selp.f32 %f962, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ mov.f32 %f916, 0fB5BFBE8E;
+ mov.f32 %f915, 0fBF317200;
+ mov.f32 %f914, 0f00000000;
+ mov.f32 %f913, 0f35BFBE8E;
+ mov.f32 %f912, 0f3F317200;
+ mov.f32 %f911, 0f3DAAAABD;
+ mov.f32 %f910, 0f3C4CAF63;
+ mov.f32 %f909, 0f3B18F0FE;
+ mov.f32 %f236, 0f3F800000;
+ sub.f32 %f237, %f236, %f962;
+ setp.eq.f32 %p28, %f17, 0f3F800000;
+ selp.f32 %f238, 0f00000000, %f237, %p28;
+ cvt.sat.f32.f32 %f239, %f238;
+ ld.global.f32 %f240, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f241, %f16, %f16, %f240;
+ div.rn.f32 %f31, %f239, %f241;
+ mul.f32 %f242, %f958, %f14;
+ fma.rn.f32 %f243, %f957, %f13, %f242;
+ fma.rn.f32 %f244, %f959, %f15, %f243;
+ ld.global.u32 %r248, [imageEnabled];
+ and.b32 %r56, %r248, 32;
+ ld.global.u32 %r57, [ignoreNormal];
+ or.b32 %r58, %r56, %r57;
+ setp.eq.s32 %p29, %r58, 0;
+ selp.f32 %f32, %f244, 0f3F800000, %p29;
+ fma.rn.f32 %f245, %f32, 0f3F000000, 0f3F000000;
+ cvt.sat.f32.f32 %f246, %f245;
+ add.f32 %f33, %f246, %f246;
+ mov.f32 %f250, 0f41A00000;
+ abs.f32 %f35, %f33;
+ setp.lt.f32 %p30, %f35, 0f00800000;
+ mul.f32 %f252, %f35, 0f4B800000;
+ selp.f32 %f253, 0fC3170000, 0fC2FE0000, %p30;
+ selp.f32 %f254, %f252, %f35, %p30;
+ mov.b32 %r59, %f254;
+ and.b32 %r60, %r59, 8388607;
+ or.b32 %r61, %r60, 1065353216;
+ mov.b32 %f255, %r61;
+ shr.u32 %r62, %r59, 23;
+ cvt.rn.f32.u32 %f256, %r62;
+ add.f32 %f257, %f253, %f256;
+ setp.gt.f32 %p31, %f255, 0f3FB504F3;
+ mul.f32 %f258, %f255, 0f3F000000;
+ add.f32 %f259, %f257, 0f3F800000;
+ selp.f32 %f260, %f258, %f255, %p31;
+ selp.f32 %f261, %f259, %f257, %p31;
+ add.f32 %f262, %f260, 0fBF800000;
+ add.f32 %f235, %f260, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f234,%f235;
+ // inline asm
+ add.f32 %f263, %f262, %f262;
+ mul.f32 %f264, %f234, %f263;
+ mul.f32 %f265, %f264, %f264;
+ fma.rn.f32 %f268, %f909, %f265, %f910;
+ fma.rn.f32 %f270, %f268, %f265, %f911;
+ mul.rn.f32 %f271, %f270, %f265;
+ mul.rn.f32 %f272, %f271, %f264;
+ sub.f32 %f273, %f262, %f264;
+ neg.f32 %f274, %f264;
+ add.f32 %f275, %f273, %f273;
+ fma.rn.f32 %f276, %f274, %f262, %f275;
+ mul.rn.f32 %f277, %f234, %f276;
+ add.f32 %f278, %f272, %f264;
+ sub.f32 %f279, %f264, %f278;
+ add.f32 %f280, %f272, %f279;
+ add.f32 %f281, %f277, %f280;
+ add.f32 %f282, %f278, %f281;
+ sub.f32 %f283, %f278, %f282;
+ add.f32 %f284, %f281, %f283;
+ mul.rn.f32 %f286, %f261, %f912;
+ mul.rn.f32 %f288, %f261, %f913;
+ add.f32 %f289, %f286, %f282;
+ sub.f32 %f290, %f286, %f289;
+ add.f32 %f291, %f282, %f290;
+ add.f32 %f292, %f284, %f291;
+ add.f32 %f293, %f288, %f292;
+ add.f32 %f294, %f289, %f293;
+ sub.f32 %f295, %f289, %f294;
+ add.f32 %f296, %f293, %f295;
+ mul.rn.f32 %f297, %f250, %f294;
+ neg.f32 %f298, %f297;
+ fma.rn.f32 %f299, %f250, %f294, %f298;
+ fma.rn.f32 %f300, %f250, %f296, %f299;
+ fma.rn.f32 %f302, %f914, %f294, %f300;
+ add.rn.f32 %f303, %f297, %f302;
+ neg.f32 %f304, %f303;
+ add.rn.f32 %f305, %f297, %f304;
+ add.rn.f32 %f306, %f305, %f302;
+ mov.b32 %r63, %f303;
+ setp.eq.s32 %p32, %r63, 1118925336;
+ add.s32 %r64, %r63, -1;
+ mov.b32 %f307, %r64;
+ add.f32 %f308, %f306, 0f37000000;
+ selp.f32 %f309, %f307, %f303, %p32;
+ selp.f32 %f36, %f308, %f306, %p32;
+ mul.f32 %f310, %f309, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f311, %f310;
+ fma.rn.f32 %f313, %f311, %f915, %f309;
+ fma.rn.f32 %f315, %f311, %f916, %f313;
+ mul.f32 %f316, %f315, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f317, %f316;
+ add.f32 %f318, %f311, 0f00000000;
+ ex2.approx.f32 %f319, %f318;
+ mul.f32 %f320, %f317, %f319;
+ setp.lt.f32 %p33, %f309, 0fC2D20000;
+ selp.f32 %f321, 0f00000000, %f320, %p33;
+ setp.gt.f32 %p34, %f309, 0f42D20000;
+ selp.f32 %f963, 0f7F800000, %f321, %p34;
+ setp.eq.f32 %p35, %f963, 0f7F800000;
+ @%p35 bra BB0_16;
+
+ fma.rn.f32 %f963, %f963, %f36, %f963;
+
+BB0_16:
+ mov.f32 %f954, 0f41200000;
+ cvt.rzi.f32.f32 %f953, %f954;
+ add.f32 %f952, %f953, %f953;
+ mov.f32 %f951, 0f41A00000;
+ sub.f32 %f950, %f951, %f952;
+ abs.f32 %f949, %f950;
+ setp.lt.f32 %p36, %f33, 0f00000000;
+ setp.eq.f32 %p37, %f949, 0f3F800000;
+ and.pred %p2, %p36, %p37;
+ mov.b32 %r65, %f963;
+ xor.b32 %r66, %r65, -2147483648;
+ mov.b32 %f322, %r66;
+ selp.f32 %f965, %f322, %f963, %p2;
+ setp.eq.f32 %p38, %f33, 0f00000000;
+ @%p38 bra BB0_19;
+ bra.uni BB0_17;
+
+BB0_19:
+ add.f32 %f325, %f33, %f33;
+ selp.f32 %f965, %f325, 0f00000000, %p37;
+ bra.uni BB0_20;
+
+BB0_17:
+ setp.geu.f32 %p39, %f33, 0f00000000;
+ @%p39 bra BB0_20;
+
+ mov.f32 %f956, 0f41A00000;
+ cvt.rzi.f32.f32 %f324, %f956;
+ setp.neu.f32 %p40, %f324, 0f41A00000;
+ selp.f32 %f965, 0f7FFFFFFF, %f965, %p40;
+
+BB0_20:
+ add.f32 %f326, %f35, 0f41A00000;
+ mov.b32 %r67, %f326;
+ setp.lt.s32 %p42, %r67, 2139095040;
+ @%p42 bra BB0_25;
+
+ setp.gtu.f32 %p43, %f35, 0f7F800000;
+ @%p43 bra BB0_24;
+ bra.uni BB0_22;
+
+BB0_24:
+ add.f32 %f965, %f33, 0f41A00000;
+ bra.uni BB0_25;
+
+BB0_22:
+ setp.neu.f32 %p44, %f35, 0f7F800000;
+ @%p44 bra BB0_25;
+
+ selp.f32 %f965, 0fFF800000, 0f7F800000, %p2;
+
+BB0_25:
+ setp.eq.f32 %p45, %f33, 0f3F800000;
+ selp.f32 %f327, 0f3F800000, %f965, %p45;
+ cvt.sat.f32.f32 %f328, %f327;
+ mul.f32 %f329, %f31, %f328;
+ mul.f32 %f330, %f32, 0f40800000;
+ cvt.sat.f32.f32 %f47, %f330;
+ ld.global.f32 %f331, [lightConeDir];
+ mul.f32 %f332, %f13, %f331;
+ ld.global.f32 %f333, [lightConeDir+4];
+ mul.f32 %f334, %f14, %f333;
+ neg.f32 %f335, %f334;
+ sub.f32 %f336, %f335, %f332;
+ ld.global.f32 %f337, [lightConeDir+8];
+ mul.f32 %f338, %f15, %f337;
+ sub.f32 %f339, %f336, %f338;
+ ld.global.v2.f32 {%f340, %f341}, [lightCone];
+ fma.rn.f32 %f344, %f340, %f339, %f341;
+ cvt.sat.f32.f32 %f345, %f344;
+ mul.f32 %f346, %f345, %f345;
+ mul.f32 %f48, %f329, %f346;
+ mul.f32 %f347, %f47, %f48;
+ ld.global.f32 %f348, [lightColor+4];
+ ld.global.f32 %f349, [lightColor];
+ max.f32 %f350, %f349, %f348;
+ ld.global.f32 %f351, [lightColor+8];
+ max.f32 %f352, %f350, %f351;
+ mul.f32 %f353, %f347, %f352;
+ setp.lt.f32 %p46, %f353, 0f3727C5AC;
+ @%p46 bra BB0_96;
+ bra.uni BB0_26;
+
+BB0_96:
+ and.b32 %r156, %r248, 1;
+ setp.eq.b32 %p123, %r156, 1;
+ @!%p123 bra BB0_98;
+ bra.uni BB0_97;
+
+BB0_97:
+ cvt.u64.u32 %rd142, %r2;
+ cvt.u64.u32 %rd143, %r3;
+ mov.u64 %rd146, image;
+ cvta.global.u64 %rd141, %rd146;
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd141, %r26, %r27, %rd142, %rd143, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs89, 1;
+ mov.u16 %rs90, 0;
+ st.v4.u8 [%rd140], {%rs90, %rs90, %rs90, %rs89};
+ ld.global.u32 %r248, [imageEnabled];
+
+BB0_98:
+ and.b32 %r159, %r248, 8;
+ setp.eq.s32 %p124, %r159, 0;
+ @%p124 bra BB0_100;
+
+ cvt.u64.u32 %rd150, %r3;
+ cvt.u64.u32 %rd149, %r2;
+ mov.u64 %rd153, image_Mask;
+ cvta.global.u64 %rd148, %rd153;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r26, %r26, %rd149, %rd150, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f823, 0f00000000;
+ cvt.rzi.u32.f32 %r162, %f823;
+ cvt.u16.u32 %rs91, %r162;
+ mov.u16 %rs92, 255;
+ st.v2.u8 [%rd147], {%rs91, %rs92};
+ ld.global.u32 %r248, [imageEnabled];
+
+BB0_100:
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ and.b32 %r163, %r248, 4;
+ setp.eq.s32 %p125, %r163, 0;
+ @%p125 bra BB0_104;
+
+ ld.global.u32 %r164, [additive];
+ setp.eq.s32 %p126, %r164, 0;
+ mov.f32 %f824, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f824;}
+
+ // inline asm
+ @%p126 bra BB0_103;
+
+ mov.u64 %rd166, image_HDR;
+ cvta.global.u64 %rd155, %rd166;
+ mov.u32 %r168, 8;
+ // inline asm
+ call (%rd154), _rt_buffer_get_64, (%rd155, %r26, %r168, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs100, %rs101, %rs102, %rs103}, [%rd154];
+ // inline asm
+ { cvt.f32.f16 %f825, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f826, %rs101;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f827, %rs102;}
+
+ // inline asm
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd155, %r26, %r168, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f828, %f825, 0f00000000;
+ add.f32 %f829, %f826, 0f00000000;
+ add.f32 %f830, %f827, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f830;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f829;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f828;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs97, %rs98, %rs99, %rs93};
+ bra.uni BB0_104;
+
+BB0_26:
+ mov.f32 %f969, 0f00000000;
+ mul.f32 %f355, %f8, 0f3456BF95;
+ abs.f32 %f356, %f957;
+ div.rn.f32 %f357, %f355, %f356;
+ abs.f32 %f358, %f958;
+ mul.f32 %f359, %f10, 0f3456BF95;
+ div.rn.f32 %f360, %f359, %f358;
+ abs.f32 %f361, %f959;
+ mul.f32 %f362, %f12, 0f3456BF95;
+ div.rn.f32 %f363, %f362, %f361;
+ abs.f32 %f364, %f357;
+ abs.f32 %f365, %f360;
+ abs.f32 %f366, %f363;
+ mov.f32 %f367, 0f38D1B717;
+ max.f32 %f368, %f364, %f367;
+ max.f32 %f369, %f365, %f367;
+ max.f32 %f370, %f366, %f367;
+ fma.rn.f32 %f49, %f957, %f368, %f8;
+ fma.rn.f32 %f50, %f958, %f369, %f10;
+ fma.rn.f32 %f51, %f959, %f370, %f12;
+ ld.global.u32 %r244, [samples];
+ setp.lt.s32 %p47, %r244, 1;
+ @%p47 bra BB0_29;
+
+ mul.f32 %f372, %f49, 0f3456BF95;
+ abs.f32 %f373, %f372;
+ mul.f32 %f374, %f50, 0f3456BF95;
+ abs.f32 %f375, %f374;
+ mul.f32 %f376, %f51, 0f3456BF95;
+ abs.f32 %f377, %f376;
+ max.f32 %f378, %f373, %f375;
+ max.f32 %f379, %f378, %f377;
+ max.f32 %f52, %f379, %f367;
+ add.u64 %rd24, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd24;
+ mov.f32 %f969, 0f00000000;
+ mov.u32 %r243, 0;
+ bra.uni BB0_28;
+
+BB0_95:
+ ld.global.f32 %f968, [lightPos];
+ ld.global.f32 %f967, [lightPos+4];
+ ld.global.f32 %f966, [lightPos+8];
+ ld.global.u32 %r248, [imageEnabled];
+
+BB0_28:
+ cvt.rn.f32.s32 %f389, %r243;
+ mul.f32 %f390, %f389, 0f3DD32618;
+ cvt.rmi.f32.f32 %f391, %f390;
+ sub.f32 %f392, %f390, %f391;
+ mul.f32 %f393, %f389, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f394, %f393;
+ sub.f32 %f395, %f393, %f394;
+ mul.f32 %f396, %f389, 0f3DC74539;
+ cvt.rmi.f32.f32 %f397, %f396;
+ sub.f32 %f398, %f396, %f397;
+ add.f32 %f399, %f395, 0f4199851F;
+ add.f32 %f400, %f398, 0f4199851F;
+ add.f32 %f401, %f392, 0f4199851F;
+ mul.f32 %f402, %f395, %f400;
+ fma.rn.f32 %f403, %f392, %f399, %f402;
+ fma.rn.f32 %f404, %f401, %f398, %f403;
+ add.f32 %f405, %f392, %f404;
+ add.f32 %f406, %f395, %f404;
+ add.f32 %f407, %f398, %f404;
+ add.f32 %f408, %f405, %f406;
+ mul.f32 %f409, %f407, %f408;
+ cvt.rmi.f32.f32 %f410, %f409;
+ sub.f32 %f411, %f409, %f410;
+ add.f32 %f412, %f405, %f407;
+ mul.f32 %f413, %f406, %f412;
+ cvt.rmi.f32.f32 %f414, %f413;
+ sub.f32 %f415, %f413, %f414;
+ add.f32 %f416, %f406, %f407;
+ mul.f32 %f417, %f405, %f416;
+ cvt.rmi.f32.f32 %f418, %f417;
+ sub.f32 %f419, %f417, %f418;
+ fma.rn.f32 %f420, %f411, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f421, %f415, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f422, %f419, 0f40000000, 0fBF800000;
+ ld.global.f32 %f423, [lightRadius];
+ fma.rn.f32 %f424, %f423, %f420, %f968;
+ fma.rn.f32 %f425, %f423, %f421, %f967;
+ fma.rn.f32 %f426, %f423, %f422, %f966;
+ sub.f32 %f427, %f424, %f8;
+ sub.f32 %f428, %f425, %f10;
+ sub.f32 %f429, %f426, %f12;
+ mul.f32 %f430, %f428, %f428;
+ fma.rn.f32 %f431, %f427, %f427, %f430;
+ fma.rn.f32 %f432, %f429, %f429, %f431;
+ sqrt.rn.f32 %f388, %f432;
+ rcp.rn.f32 %f433, %f388;
+ mul.f32 %f384, %f433, %f427;
+ mul.f32 %f385, %f433, %f428;
+ mul.f32 %f386, %f433, %f429;
+ and.b32 %r72, %r248, 32;
+ setp.eq.s32 %p48, %r72, 0;
+ selp.f32 %f434, 0f3F800000, 0f41200000, %p48;
+ mul.f32 %f387, %f434, %f52;
+ mov.u32 %r73, 1065353216;
+ st.local.u32 [%rd2], %r73;
+ ld.global.u32 %r69, [root];
+ mov.u32 %r70, 1;
+ // inline asm
+ call _rt_trace_64, (%r69, %f49, %f50, %f51, %f384, %f385, %f386, %r70, %f387, %f388, %rd24, %r27);
+ // inline asm
+ ld.local.f32 %f435, [%rd2];
+ add.f32 %f969, %f969, %f435;
+ ld.global.u32 %r244, [samples];
+ add.s32 %r243, %r243, 1;
+ setp.lt.s32 %p49, %r243, %r244;
+ @%p49 bra BB0_95;
+
+BB0_29:
+ mov.f32 %f971, 0f3F800000;
+ setp.eq.s32 %p50, %r244, 0;
+ @%p50 bra BB0_31;
+
+ cvt.rn.f32.s32 %f437, %r244;
+ div.rn.f32 %f971, %f969, %f437;
+
+BB0_31:
+ cvt.sat.f32.f32 %f438, %f32;
+ mul.f32 %f439, %f48, %f438;
+ mul.f32 %f440, %f971, %f439;
+ ld.global.f32 %f441, [lightColor];
+ mul.f32 %f61, %f441, %f440;
+ ld.global.f32 %f442, [lightColor+4];
+ mul.f32 %f62, %f442, %f440;
+ ld.global.f32 %f443, [lightColor+8];
+ mul.f32 %f63, %f440, %f443;
+ ld.global.u32 %r246, [imageEnabled];
+ and.b32 %r74, %r246, 8;
+ setp.eq.s32 %p51, %r74, 0;
+ @%p51 bra BB0_44;
+
+ mov.f32 %f924, 0fB5BFBE8E;
+ mov.f32 %f923, 0fBF317200;
+ mov.f32 %f922, 0f35BFBE8E;
+ mov.f32 %f921, 0f3F317200;
+ mov.f32 %f920, 0f3DAAAABD;
+ mov.f32 %f919, 0f3C4CAF63;
+ mov.f32 %f918, 0f3B18F0FE;
+ cvt.u64.u32 %rd28, %r2;
+ cvt.u64.u32 %rd29, %r3;
+ mov.u64 %rd32, image_Mask;
+ cvta.global.u64 %rd27, %rd32;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r26, %r26, %rd28, %rd29, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f446, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f447, %f446;
+ fma.rn.f32 %f448, %f447, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f64, %f448;
+ abs.f32 %f65, %f971;
+ setp.lt.f32 %p52, %f65, 0f00800000;
+ mul.f32 %f449, %f65, 0f4B800000;
+ selp.f32 %f450, 0fC3170000, 0fC2FE0000, %p52;
+ selp.f32 %f451, %f449, %f65, %p52;
+ mov.b32 %r77, %f451;
+ and.b32 %r78, %r77, 8388607;
+ or.b32 %r79, %r78, 1065353216;
+ mov.b32 %f452, %r79;
+ shr.u32 %r80, %r77, 23;
+ cvt.rn.f32.u32 %f453, %r80;
+ add.f32 %f454, %f450, %f453;
+ setp.gt.f32 %p53, %f452, 0f3FB504F3;
+ mul.f32 %f455, %f452, 0f3F000000;
+ add.f32 %f456, %f454, 0f3F800000;
+ selp.f32 %f457, %f455, %f452, %p53;
+ selp.f32 %f458, %f456, %f454, %p53;
+ add.f32 %f459, %f457, 0fBF800000;
+ add.f32 %f445, %f457, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f444,%f445;
+ // inline asm
+ add.f32 %f460, %f459, %f459;
+ mul.f32 %f461, %f444, %f460;
+ mul.f32 %f462, %f461, %f461;
+ fma.rn.f32 %f465, %f918, %f462, %f919;
+ fma.rn.f32 %f467, %f465, %f462, %f920;
+ mul.rn.f32 %f468, %f467, %f462;
+ mul.rn.f32 %f469, %f468, %f461;
+ sub.f32 %f470, %f459, %f461;
+ neg.f32 %f471, %f461;
+ add.f32 %f472, %f470, %f470;
+ fma.rn.f32 %f473, %f471, %f459, %f472;
+ mul.rn.f32 %f474, %f444, %f473;
+ add.f32 %f475, %f469, %f461;
+ sub.f32 %f476, %f461, %f475;
+ add.f32 %f477, %f469, %f476;
+ add.f32 %f478, %f474, %f477;
+ add.f32 %f479, %f475, %f478;
+ sub.f32 %f480, %f475, %f479;
+ add.f32 %f481, %f478, %f480;
+ mul.rn.f32 %f483, %f458, %f921;
+ mul.rn.f32 %f485, %f458, %f922;
+ add.f32 %f486, %f483, %f479;
+ sub.f32 %f487, %f483, %f486;
+ add.f32 %f488, %f479, %f487;
+ add.f32 %f489, %f481, %f488;
+ add.f32 %f490, %f485, %f489;
+ add.f32 %f491, %f486, %f490;
+ sub.f32 %f492, %f486, %f491;
+ add.f32 %f493, %f490, %f492;
+ mov.f32 %f494, 0f3EE8BA2E;
+ mul.rn.f32 %f495, %f494, %f491;
+ neg.f32 %f496, %f495;
+ fma.rn.f32 %f497, %f494, %f491, %f496;
+ fma.rn.f32 %f498, %f494, %f493, %f497;
+ mov.f32 %f499, 0f00000000;
+ fma.rn.f32 %f500, %f499, %f491, %f498;
+ add.rn.f32 %f501, %f495, %f500;
+ neg.f32 %f502, %f501;
+ add.rn.f32 %f503, %f495, %f502;
+ add.rn.f32 %f504, %f503, %f500;
+ mov.b32 %r81, %f501;
+ setp.eq.s32 %p54, %r81, 1118925336;
+ add.s32 %r82, %r81, -1;
+ mov.b32 %f505, %r82;
+ add.f32 %f506, %f504, 0f37000000;
+ selp.f32 %f507, %f505, %f501, %p54;
+ selp.f32 %f66, %f506, %f504, %p54;
+ mul.f32 %f508, %f507, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f509, %f508;
+ fma.rn.f32 %f511, %f509, %f923, %f507;
+ fma.rn.f32 %f513, %f509, %f924, %f511;
+ mul.f32 %f514, %f513, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f515, %f514;
+ add.f32 %f516, %f509, 0f00000000;
+ ex2.approx.f32 %f517, %f516;
+ mul.f32 %f518, %f515, %f517;
+ setp.lt.f32 %p55, %f507, 0fC2D20000;
+ selp.f32 %f519, 0f00000000, %f518, %p55;
+ setp.gt.f32 %p56, %f507, 0f42D20000;
+ selp.f32 %f972, 0f7F800000, %f519, %p56;
+ setp.eq.f32 %p57, %f972, 0f7F800000;
+ @%p57 bra BB0_34;
+
+ fma.rn.f32 %f972, %f972, %f66, %f972;
+
+BB0_34:
+ setp.lt.f32 %p58, %f971, 0f00000000;
+ setp.eq.f32 %p59, %f64, 0f3F800000;
+ and.pred %p3, %p58, %p59;
+ mov.b32 %r83, %f972;
+ xor.b32 %r84, %r83, -2147483648;
+ mov.b32 %f520, %r84;
+ selp.f32 %f974, %f520, %f972, %p3;
+ setp.eq.f32 %p60, %f971, 0f00000000;
+ @%p60 bra BB0_37;
+ bra.uni BB0_35;
+
+BB0_37:
+ add.f32 %f523, %f971, %f971;
+ selp.f32 %f974, %f523, 0f00000000, %p59;
+ bra.uni BB0_38;
+
+BB0_123:
+ mov.u64 %rd287, image_HDR;
+ cvta.global.u64 %rd282, %rd287;
+ mov.u32 %r213, 8;
+ // inline asm
+ call (%rd281), _rt_buffer_get_64, (%rd282, %r26, %r213, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f873, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs167, %f873;}
+
+ // inline asm
+ mov.u16 %rs168, 0;
+ st.v4.u16 [%rd281], {%rs167, %rs167, %rs167, %rs168};
+
+BB0_124:
+ ld.global.u32 %r214, [additive];
+ setp.eq.s32 %p135, %r214, 0;
+ @%p135 bra BB0_126;
+
+ mov.u64 %rd300, image_RNM0;
+ cvta.global.u64 %rd289, %rd300;
+ mov.u32 %r218, 8;
+ // inline asm
+ call (%rd288), _rt_buffer_get_64, (%rd289, %r26, %r218, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs175, %rs176, %rs177, %rs178}, [%rd288];
+ // inline asm
+ { cvt.f32.f16 %f874, %rs175;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f875, %rs176;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f876, %rs177;}
+
+ // inline asm
+ // inline asm
+ call (%rd294), _rt_buffer_get_64, (%rd289, %r26, %r218, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f877, %f874, 0f00000000;
+ add.f32 %f878, %f875, 0f00000000;
+ add.f32 %f879, %f876, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs174, %f879;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs173, %f878;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs172, %f877;}
+
+ // inline asm
+ mov.u16 %rs179, 0;
+ st.v4.u16 [%rd294], {%rs172, %rs173, %rs174, %rs179};
+ bra.uni BB0_127;
+
+BB0_126:
+ mov.u64 %rd307, image_RNM0;
+ cvta.global.u64 %rd302, %rd307;
+ mov.u32 %r220, 8;
+ // inline asm
+ call (%rd301), _rt_buffer_get_64, (%rd302, %r26, %r220, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f880, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs180, %f880;}
+
+ // inline asm
+ mov.u16 %rs181, 0;
+ st.v4.u16 [%rd301], {%rs180, %rs180, %rs180, %rs181};
+
+BB0_127:
+ ld.global.u32 %r221, [additive];
+ setp.eq.s32 %p136, %r221, 0;
+ @%p136 bra BB0_129;
+
+ mov.u64 %rd320, image_RNM1;
+ cvta.global.u64 %rd309, %rd320;
+ mov.u32 %r225, 8;
+ // inline asm
+ call (%rd308), _rt_buffer_get_64, (%rd309, %r26, %r225, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs188, %rs189, %rs190, %rs191}, [%rd308];
+ // inline asm
+ { cvt.f32.f16 %f881, %rs188;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f882, %rs189;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f883, %rs190;}
+
+ // inline asm
+ // inline asm
+ call (%rd314), _rt_buffer_get_64, (%rd309, %r26, %r225, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f884, %f881, 0f00000000;
+ add.f32 %f885, %f882, 0f00000000;
+ add.f32 %f886, %f883, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs187, %f886;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs186, %f885;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs185, %f884;}
+
+ // inline asm
+ mov.u16 %rs192, 0;
+ st.v4.u16 [%rd314], {%rs185, %rs186, %rs187, %rs192};
+ bra.uni BB0_130;
+
+BB0_129:
+ mov.u64 %rd327, image_RNM1;
+ cvta.global.u64 %rd322, %rd327;
+ mov.u32 %r227, 8;
+ // inline asm
+ call (%rd321), _rt_buffer_get_64, (%rd322, %r26, %r227, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f887, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs193, %f887;}
+
+ // inline asm
+ mov.u16 %rs194, 0;
+ st.v4.u16 [%rd321], {%rs193, %rs193, %rs193, %rs194};
+
+BB0_130:
+ ld.global.u32 %r228, [additive];
+ setp.eq.s32 %p137, %r228, 0;
+ @%p137 bra BB0_132;
+
+ mov.u64 %rd340, image_RNM2;
+ cvta.global.u64 %rd329, %rd340;
+ mov.u32 %r232, 8;
+ // inline asm
+ call (%rd328), _rt_buffer_get_64, (%rd329, %r26, %r232, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs201, %rs202, %rs203, %rs204}, [%rd328];
+ // inline asm
+ { cvt.f32.f16 %f888, %rs201;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f889, %rs202;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f890, %rs203;}
+
+ // inline asm
+ // inline asm
+ call (%rd334), _rt_buffer_get_64, (%rd329, %r26, %r232, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f891, %f888, 0f00000000;
+ add.f32 %f892, %f889, 0f00000000;
+ add.f32 %f893, %f890, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs200, %f893;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs199, %f892;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs198, %f891;}
+
+ // inline asm
+ mov.u16 %rs205, 0;
+ st.v4.u16 [%rd334], {%rs198, %rs199, %rs200, %rs205};
+ bra.uni BB0_133;
+
+BB0_132:
+ mov.u64 %rd347, image_RNM2;
+ cvta.global.u64 %rd342, %rd347;
+ mov.u32 %r234, 8;
+ // inline asm
+ call (%rd341), _rt_buffer_get_64, (%rd342, %r26, %r234, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f894, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs206, %f894;}
+
+ // inline asm
+ mov.u16 %rs207, 0;
+ st.v4.u16 [%rd341], {%rs206, %rs206, %rs206, %rs207};
+
+BB0_133:
+ ld.global.u32 %r235, [additive];
+ setp.eq.s32 %p138, %r235, 0;
+ @%p138 bra BB0_135;
+
+ mov.u64 %rd360, image_RNM3;
+ cvta.global.u64 %rd349, %rd360;
+ mov.u32 %r239, 8;
+ // inline asm
+ call (%rd348), _rt_buffer_get_64, (%rd349, %r26, %r239, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs214, %rs215, %rs216, %rs217}, [%rd348];
+ // inline asm
+ { cvt.f32.f16 %f895, %rs214;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f896, %rs215;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f897, %rs216;}
+
+ // inline asm
+ // inline asm
+ call (%rd354), _rt_buffer_get_64, (%rd349, %r26, %r239, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f898, %f895, 0f00000000;
+ add.f32 %f899, %f896, 0f00000000;
+ add.f32 %f900, %f897, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs213, %f900;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs212, %f899;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs211, %f898;}
+
+ // inline asm
+ mov.u16 %rs218, 0;
+ st.v4.u16 [%rd354], {%rs211, %rs212, %rs213, %rs218};
+ bra.uni BB0_136;
+
+BB0_135:
+ mov.u64 %rd367, image_RNM3;
+ cvta.global.u64 %rd362, %rd367;
+ mov.u32 %r241, 8;
+ // inline asm
+ call (%rd361), _rt_buffer_get_64, (%rd362, %r26, %r241, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f901, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs219, %f901;}
+
+ // inline asm
+ mov.u16 %rs220, 0;
+ st.v4.u16 [%rd361], {%rs219, %rs219, %rs219, %rs220};
+ bra.uni BB0_136;
+
+BB0_103:
+ mov.u64 %rd173, image_HDR;
+ cvta.global.u64 %rd168, %rd173;
+ mov.u32 %r170, 8;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r26, %r170, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f831, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f831;}
+
+ // inline asm
+ st.v4.u16 [%rd167], {%rs104, %rs104, %rs104, %rs93};
+
+BB0_104:
+ ld.global.u32 %r171, [additive];
+ setp.eq.s32 %p127, %r171, 0;
+ mov.f32 %f832, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f832;}
+
+ // inline asm
+ @%p127 bra BB0_106;
+
+ mov.u64 %rd186, image_RNM0;
+ cvta.global.u64 %rd175, %rd186;
+ mov.u32 %r175, 8;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r26, %r175, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd174];
+ // inline asm
+ { cvt.f32.f16 %f833, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f834, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f835, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd175, %r26, %r175, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f836, %f833, 0f00000000;
+ add.f32 %f837, %f834, 0f00000000;
+ add.f32 %f838, %f835, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f838;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f837;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f836;}
+
+ // inline asm
+ st.v4.u16 [%rd180], {%rs109, %rs110, %rs111, %rs105};
+ bra.uni BB0_107;
+
+BB0_106:
+ mov.u64 %rd193, image_RNM0;
+ cvta.global.u64 %rd188, %rd193;
+ mov.u32 %r177, 8;
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd188, %r26, %r177, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f839, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f839;}
+
+ // inline asm
+ st.v4.u16 [%rd187], {%rs116, %rs116, %rs116, %rs105};
+
+BB0_107:
+ ld.global.u32 %r178, [additive];
+ setp.eq.s32 %p128, %r178, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f832;}
+
+ // inline asm
+ @%p128 bra BB0_109;
+
+ mov.u64 %rd206, image_RNM1;
+ cvta.global.u64 %rd195, %rd206;
+ mov.u32 %r182, 8;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r26, %r182, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd194];
+ // inline asm
+ { cvt.f32.f16 %f841, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f842, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f843, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd195, %r26, %r182, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f844, %f841, 0f00000000;
+ add.f32 %f845, %f842, 0f00000000;
+ add.f32 %f846, %f843, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f846;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f845;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f844;}
+
+ // inline asm
+ st.v4.u16 [%rd200], {%rs121, %rs122, %rs123, %rs117};
+ bra.uni BB0_110;
+
+BB0_109:
+ mov.u64 %rd213, image_RNM1;
+ cvta.global.u64 %rd208, %rd213;
+ mov.u32 %r184, 8;
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd208, %r26, %r184, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f847, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs128, %f847;}
+
+ // inline asm
+ st.v4.u16 [%rd207], {%rs128, %rs128, %rs128, %rs117};
+
+BB0_110:
+ ld.global.u32 %r185, [additive];
+ setp.eq.s32 %p129, %r185, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f832;}
+
+ // inline asm
+ @%p129 bra BB0_112;
+
+ mov.u64 %rd226, image_RNM2;
+ cvta.global.u64 %rd215, %rd226;
+ mov.u32 %r189, 8;
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd215, %r26, %r189, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs136, %rs137, %rs138, %rs139}, [%rd214];
+ // inline asm
+ { cvt.f32.f16 %f849, %rs136;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f850, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f851, %rs138;}
+
+ // inline asm
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd215, %r26, %r189, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f852, %f849, 0f00000000;
+ add.f32 %f853, %f850, 0f00000000;
+ add.f32 %f854, %f851, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f854;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f853;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f852;}
+
+ // inline asm
+ st.v4.u16 [%rd220], {%rs133, %rs134, %rs135, %rs129};
+ bra.uni BB0_113;
+
+BB0_112:
+ mov.u64 %rd233, image_RNM2;
+ cvta.global.u64 %rd228, %rd233;
+ mov.u32 %r191, 8;
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd228, %r26, %r191, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f855, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f855;}
+
+ // inline asm
+ st.v4.u16 [%rd227], {%rs140, %rs140, %rs140, %rs129};
+
+BB0_113:
+ ld.global.u32 %r192, [additive];
+ setp.eq.s32 %p130, %r192, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs141, %f832;}
+
+ // inline asm
+ @%p130 bra BB0_115;
+
+ mov.u64 %rd246, image_RNM3;
+ cvta.global.u64 %rd235, %rd246;
+ mov.u32 %r196, 8;
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd235, %r26, %r196, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs148, %rs149, %rs150, %rs151}, [%rd234];
+ // inline asm
+ { cvt.f32.f16 %f857, %rs148;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f858, %rs149;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f859, %rs150;}
+
+ // inline asm
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd235, %r26, %r196, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f860, %f857, 0f00000000;
+ add.f32 %f861, %f858, 0f00000000;
+ add.f32 %f862, %f859, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f862;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f861;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f860;}
+
+ // inline asm
+ st.v4.u16 [%rd240], {%rs145, %rs146, %rs147, %rs141};
+ bra.uni BB0_136;
+
+BB0_115:
+ mov.u64 %rd253, image_RNM3;
+ cvta.global.u64 %rd248, %rd253;
+ mov.u32 %r198, 8;
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd248, %r26, %r198, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f863, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f863;}
+
+ // inline asm
+ st.v4.u16 [%rd247], {%rs152, %rs152, %rs152, %rs141};
+ bra.uni BB0_136;
+
+BB0_35:
+ setp.geu.f32 %p61, %f971, 0f00000000;
+ @%p61 bra BB0_38;
+
+ cvt.rzi.f32.f32 %f522, %f494;
+ setp.neu.f32 %p62, %f522, 0f3EE8BA2E;
+ selp.f32 %f974, 0f7FFFFFFF, %f974, %p62;
+
+BB0_38:
+ add.f32 %f524, %f65, 0f3EE8BA2E;
+ mov.b32 %r85, %f524;
+ setp.lt.s32 %p64, %r85, 2139095040;
+ @%p64 bra BB0_43;
+
+ setp.gtu.f32 %p65, %f65, 0f7F800000;
+ @%p65 bra BB0_42;
+ bra.uni BB0_40;
+
+BB0_42:
+ add.f32 %f974, %f971, 0f3EE8BA2E;
+ bra.uni BB0_43;
+
+BB0_40:
+ setp.neu.f32 %p66, %f65, 0f7F800000;
+ @%p66 bra BB0_43;
+
+ selp.f32 %f974, 0fFF800000, 0f7F800000, %p3;
+
+BB0_43:
+ mul.f32 %f525, %f974, 0f437F0000;
+ setp.eq.f32 %p67, %f971, 0f3F800000;
+ selp.f32 %f526, 0f437F0000, %f525, %p67;
+ cvt.rzi.u32.f32 %r86, %f526;
+ cvt.u16.u32 %rs19, %r86;
+ mov.u16 %rs20, 255;
+ st.v2.u8 [%rd26], {%rs19, %rs20};
+ ld.global.u32 %r246, [imageEnabled];
+
+BB0_44:
+ and.b32 %r87, %r246, 1;
+ setp.eq.b32 %p68, %r87, 1;
+ @!%p68 bra BB0_79;
+ bra.uni BB0_45;
+
+BB0_45:
+ mov.f32 %f931, 0fB5BFBE8E;
+ mov.f32 %f930, 0fBF317200;
+ mov.f32 %f929, 0f35BFBE8E;
+ mov.f32 %f928, 0f3F317200;
+ mov.f32 %f927, 0f3DAAAABD;
+ mov.f32 %f926, 0f3C4CAF63;
+ mov.f32 %f925, 0f3B18F0FE;
+ mov.f32 %f529, 0f3E666666;
+ cvt.rzi.f32.f32 %f530, %f529;
+ fma.rn.f32 %f531, %f530, 0fC0000000, 0f3EE66666;
+ abs.f32 %f77, %f531;
+ abs.f32 %f78, %f61;
+ setp.lt.f32 %p69, %f78, 0f00800000;
+ mul.f32 %f532, %f78, 0f4B800000;
+ selp.f32 %f533, 0fC3170000, 0fC2FE0000, %p69;
+ selp.f32 %f534, %f532, %f78, %p69;
+ mov.b32 %r88, %f534;
+ and.b32 %r89, %r88, 8388607;
+ or.b32 %r90, %r89, 1065353216;
+ mov.b32 %f535, %r90;
+ shr.u32 %r91, %r88, 23;
+ cvt.rn.f32.u32 %f536, %r91;
+ add.f32 %f537, %f533, %f536;
+ setp.gt.f32 %p70, %f535, 0f3FB504F3;
+ mul.f32 %f538, %f535, 0f3F000000;
+ add.f32 %f539, %f537, 0f3F800000;
+ selp.f32 %f540, %f538, %f535, %p70;
+ selp.f32 %f541, %f539, %f537, %p70;
+ add.f32 %f542, %f540, 0fBF800000;
+ add.f32 %f528, %f540, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f527,%f528;
+ // inline asm
+ add.f32 %f543, %f542, %f542;
+ mul.f32 %f544, %f527, %f543;
+ mul.f32 %f545, %f544, %f544;
+ fma.rn.f32 %f548, %f925, %f545, %f926;
+ fma.rn.f32 %f550, %f548, %f545, %f927;
+ mul.rn.f32 %f551, %f550, %f545;
+ mul.rn.f32 %f552, %f551, %f544;
+ sub.f32 %f553, %f542, %f544;
+ neg.f32 %f554, %f544;
+ add.f32 %f555, %f553, %f553;
+ fma.rn.f32 %f556, %f554, %f542, %f555;
+ mul.rn.f32 %f557, %f527, %f556;
+ add.f32 %f558, %f552, %f544;
+ sub.f32 %f559, %f544, %f558;
+ add.f32 %f560, %f552, %f559;
+ add.f32 %f561, %f557, %f560;
+ add.f32 %f562, %f558, %f561;
+ sub.f32 %f563, %f558, %f562;
+ add.f32 %f564, %f561, %f563;
+ mul.rn.f32 %f566, %f541, %f928;
+ mul.rn.f32 %f568, %f541, %f929;
+ add.f32 %f569, %f566, %f562;
+ sub.f32 %f570, %f566, %f569;
+ add.f32 %f571, %f562, %f570;
+ add.f32 %f572, %f564, %f571;
+ add.f32 %f573, %f568, %f572;
+ add.f32 %f574, %f569, %f573;
+ sub.f32 %f575, %f569, %f574;
+ add.f32 %f576, %f573, %f575;
+ mov.f32 %f577, 0f3EE66666;
+ mul.rn.f32 %f578, %f577, %f574;
+ neg.f32 %f579, %f578;
+ fma.rn.f32 %f580, %f577, %f574, %f579;
+ fma.rn.f32 %f581, %f577, %f576, %f580;
+ mov.f32 %f582, 0f00000000;
+ fma.rn.f32 %f583, %f582, %f574, %f581;
+ add.rn.f32 %f584, %f578, %f583;
+ neg.f32 %f585, %f584;
+ add.rn.f32 %f586, %f578, %f585;
+ add.rn.f32 %f587, %f586, %f583;
+ mov.b32 %r92, %f584;
+ setp.eq.s32 %p71, %r92, 1118925336;
+ add.s32 %r93, %r92, -1;
+ mov.b32 %f588, %r93;
+ add.f32 %f589, %f587, 0f37000000;
+ selp.f32 %f590, %f588, %f584, %p71;
+ selp.f32 %f79, %f589, %f587, %p71;
+ mul.f32 %f591, %f590, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f592, %f591;
+ fma.rn.f32 %f594, %f592, %f930, %f590;
+ fma.rn.f32 %f596, %f592, %f931, %f594;
+ mul.f32 %f597, %f596, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f598, %f597;
+ add.f32 %f599, %f592, 0f00000000;
+ ex2.approx.f32 %f600, %f599;
+ mul.f32 %f601, %f598, %f600;
+ setp.lt.f32 %p72, %f590, 0fC2D20000;
+ selp.f32 %f602, 0f00000000, %f601, %p72;
+ setp.gt.f32 %p73, %f590, 0f42D20000;
+ selp.f32 %f975, 0f7F800000, %f602, %p73;
+ setp.eq.f32 %p74, %f975, 0f7F800000;
+ @%p74 bra BB0_47;
+
+ fma.rn.f32 %f975, %f975, %f79, %f975;
+
+BB0_47:
+ setp.lt.f32 %p75, %f61, 0f00000000;
+ setp.eq.f32 %p76, %f77, 0f3F800000;
+ and.pred %p4, %p75, %p76;
+ mov.b32 %r94, %f975;
+ xor.b32 %r95, %r94, -2147483648;
+ mov.b32 %f603, %r95;
+ selp.f32 %f977, %f603, %f975, %p4;
+ setp.eq.f32 %p77, %f61, 0f00000000;
+ @%p77 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f606, %f61, %f61;
+ selp.f32 %f977, %f606, 0f00000000, %p76;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p78, %f61, 0f00000000;
+ @%p78 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f605, %f577;
+ setp.neu.f32 %p79, %f605, 0f3EE66666;
+ selp.f32 %f977, 0f7FFFFFFF, %f977, %p79;
+
+BB0_51:
+ add.f32 %f607, %f78, 0f3EE66666;
+ mov.b32 %r96, %f607;
+ setp.lt.s32 %p81, %r96, 2139095040;
+ @%p81 bra BB0_56;
+
+ setp.gtu.f32 %p82, %f78, 0f7F800000;
+ @%p82 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f977, %f61, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p83, %f78, 0f7F800000;
+ @%p83 bra BB0_56;
+
+ selp.f32 %f977, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f938, 0fB5BFBE8E;
+ mov.f32 %f937, 0fBF317200;
+ mov.f32 %f936, 0f35BFBE8E;
+ mov.f32 %f935, 0f3F317200;
+ mov.f32 %f934, 0f3DAAAABD;
+ mov.f32 %f933, 0f3C4CAF63;
+ mov.f32 %f932, 0f3B18F0FE;
+ setp.eq.f32 %p84, %f61, 0f3F800000;
+ selp.f32 %f90, 0f3F800000, %f977, %p84;
+ abs.f32 %f91, %f62;
+ setp.lt.f32 %p85, %f91, 0f00800000;
+ mul.f32 %f610, %f91, 0f4B800000;
+ selp.f32 %f611, 0fC3170000, 0fC2FE0000, %p85;
+ selp.f32 %f612, %f610, %f91, %p85;
+ mov.b32 %r97, %f612;
+ and.b32 %r98, %r97, 8388607;
+ or.b32 %r99, %r98, 1065353216;
+ mov.b32 %f613, %r99;
+ shr.u32 %r100, %r97, 23;
+ cvt.rn.f32.u32 %f614, %r100;
+ add.f32 %f615, %f611, %f614;
+ setp.gt.f32 %p86, %f613, 0f3FB504F3;
+ mul.f32 %f616, %f613, 0f3F000000;
+ add.f32 %f617, %f615, 0f3F800000;
+ selp.f32 %f618, %f616, %f613, %p86;
+ selp.f32 %f619, %f617, %f615, %p86;
+ add.f32 %f620, %f618, 0fBF800000;
+ add.f32 %f609, %f618, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f608,%f609;
+ // inline asm
+ add.f32 %f621, %f620, %f620;
+ mul.f32 %f622, %f608, %f621;
+ mul.f32 %f623, %f622, %f622;
+ fma.rn.f32 %f626, %f932, %f623, %f933;
+ fma.rn.f32 %f628, %f626, %f623, %f934;
+ mul.rn.f32 %f629, %f628, %f623;
+ mul.rn.f32 %f630, %f629, %f622;
+ sub.f32 %f631, %f620, %f622;
+ neg.f32 %f632, %f622;
+ add.f32 %f633, %f631, %f631;
+ fma.rn.f32 %f634, %f632, %f620, %f633;
+ mul.rn.f32 %f635, %f608, %f634;
+ add.f32 %f636, %f630, %f622;
+ sub.f32 %f637, %f622, %f636;
+ add.f32 %f638, %f630, %f637;
+ add.f32 %f639, %f635, %f638;
+ add.f32 %f640, %f636, %f639;
+ sub.f32 %f641, %f636, %f640;
+ add.f32 %f642, %f639, %f641;
+ mul.rn.f32 %f644, %f619, %f935;
+ mul.rn.f32 %f646, %f619, %f936;
+ add.f32 %f647, %f644, %f640;
+ sub.f32 %f648, %f644, %f647;
+ add.f32 %f649, %f640, %f648;
+ add.f32 %f650, %f642, %f649;
+ add.f32 %f651, %f646, %f650;
+ add.f32 %f652, %f647, %f651;
+ sub.f32 %f653, %f647, %f652;
+ add.f32 %f654, %f651, %f653;
+ mul.rn.f32 %f656, %f577, %f652;
+ neg.f32 %f657, %f656;
+ fma.rn.f32 %f658, %f577, %f652, %f657;
+ fma.rn.f32 %f659, %f577, %f654, %f658;
+ fma.rn.f32 %f661, %f582, %f652, %f659;
+ add.rn.f32 %f662, %f656, %f661;
+ neg.f32 %f663, %f662;
+ add.rn.f32 %f664, %f656, %f663;
+ add.rn.f32 %f665, %f664, %f661;
+ mov.b32 %r101, %f662;
+ setp.eq.s32 %p87, %r101, 1118925336;
+ add.s32 %r102, %r101, -1;
+ mov.b32 %f666, %r102;
+ add.f32 %f667, %f665, 0f37000000;
+ selp.f32 %f668, %f666, %f662, %p87;
+ selp.f32 %f92, %f667, %f665, %p87;
+ mul.f32 %f669, %f668, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f670, %f669;
+ fma.rn.f32 %f672, %f670, %f937, %f668;
+ fma.rn.f32 %f674, %f670, %f938, %f672;
+ mul.f32 %f675, %f674, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f676, %f675;
+ add.f32 %f677, %f670, 0f00000000;
+ ex2.approx.f32 %f678, %f677;
+ mul.f32 %f679, %f676, %f678;
+ setp.lt.f32 %p88, %f668, 0fC2D20000;
+ selp.f32 %f680, 0f00000000, %f679, %p88;
+ setp.gt.f32 %p89, %f668, 0f42D20000;
+ selp.f32 %f978, 0f7F800000, %f680, %p89;
+ setp.eq.f32 %p90, %f978, 0f7F800000;
+ @%p90 bra BB0_58;
+
+ fma.rn.f32 %f978, %f978, %f92, %f978;
+
+BB0_58:
+ setp.lt.f32 %p91, %f62, 0f00000000;
+ and.pred %p5, %p91, %p76;
+ mov.b32 %r103, %f978;
+ xor.b32 %r104, %r103, -2147483648;
+ mov.b32 %f681, %r104;
+ selp.f32 %f980, %f681, %f978, %p5;
+ setp.eq.f32 %p93, %f62, 0f00000000;
+ @%p93 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f684, %f62, %f62;
+ selp.f32 %f980, %f684, 0f00000000, %p76;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p94, %f62, 0f00000000;
+ @%p94 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f683, %f577;
+ setp.neu.f32 %p95, %f683, 0f3EE66666;
+ selp.f32 %f980, 0f7FFFFFFF, %f980, %p95;
+
+BB0_62:
+ add.f32 %f685, %f91, 0f3EE66666;
+ mov.b32 %r105, %f685;
+ setp.lt.s32 %p97, %r105, 2139095040;
+ @%p97 bra BB0_67;
+
+ setp.gtu.f32 %p98, %f91, 0f7F800000;
+ @%p98 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f980, %f62, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p99, %f91, 0f7F800000;
+ @%p99 bra BB0_67;
+
+ selp.f32 %f980, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ mov.f32 %f945, 0fB5BFBE8E;
+ mov.f32 %f944, 0fBF317200;
+ mov.f32 %f943, 0f35BFBE8E;
+ mov.f32 %f942, 0f3F317200;
+ mov.f32 %f941, 0f3DAAAABD;
+ mov.f32 %f940, 0f3C4CAF63;
+ mov.f32 %f939, 0f3B18F0FE;
+ setp.eq.f32 %p100, %f62, 0f3F800000;
+ selp.f32 %f103, 0f3F800000, %f980, %p100;
+ abs.f32 %f104, %f63;
+ setp.lt.f32 %p101, %f104, 0f00800000;
+ mul.f32 %f688, %f104, 0f4B800000;
+ selp.f32 %f689, 0fC3170000, 0fC2FE0000, %p101;
+ selp.f32 %f690, %f688, %f104, %p101;
+ mov.b32 %r106, %f690;
+ and.b32 %r107, %r106, 8388607;
+ or.b32 %r108, %r107, 1065353216;
+ mov.b32 %f691, %r108;
+ shr.u32 %r109, %r106, 23;
+ cvt.rn.f32.u32 %f692, %r109;
+ add.f32 %f693, %f689, %f692;
+ setp.gt.f32 %p102, %f691, 0f3FB504F3;
+ mul.f32 %f694, %f691, 0f3F000000;
+ add.f32 %f695, %f693, 0f3F800000;
+ selp.f32 %f696, %f694, %f691, %p102;
+ selp.f32 %f697, %f695, %f693, %p102;
+ add.f32 %f698, %f696, 0fBF800000;
+ add.f32 %f687, %f696, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f686,%f687;
+ // inline asm
+ add.f32 %f699, %f698, %f698;
+ mul.f32 %f700, %f686, %f699;
+ mul.f32 %f701, %f700, %f700;
+ fma.rn.f32 %f704, %f939, %f701, %f940;
+ fma.rn.f32 %f706, %f704, %f701, %f941;
+ mul.rn.f32 %f707, %f706, %f701;
+ mul.rn.f32 %f708, %f707, %f700;
+ sub.f32 %f709, %f698, %f700;
+ neg.f32 %f710, %f700;
+ add.f32 %f711, %f709, %f709;
+ fma.rn.f32 %f712, %f710, %f698, %f711;
+ mul.rn.f32 %f713, %f686, %f712;
+ add.f32 %f714, %f708, %f700;
+ sub.f32 %f715, %f700, %f714;
+ add.f32 %f716, %f708, %f715;
+ add.f32 %f717, %f713, %f716;
+ add.f32 %f718, %f714, %f717;
+ sub.f32 %f719, %f714, %f718;
+ add.f32 %f720, %f717, %f719;
+ mul.rn.f32 %f722, %f697, %f942;
+ mul.rn.f32 %f724, %f697, %f943;
+ add.f32 %f725, %f722, %f718;
+ sub.f32 %f726, %f722, %f725;
+ add.f32 %f727, %f718, %f726;
+ add.f32 %f728, %f720, %f727;
+ add.f32 %f729, %f724, %f728;
+ add.f32 %f730, %f725, %f729;
+ sub.f32 %f731, %f725, %f730;
+ add.f32 %f732, %f729, %f731;
+ mul.rn.f32 %f734, %f577, %f730;
+ neg.f32 %f735, %f734;
+ fma.rn.f32 %f736, %f577, %f730, %f735;
+ fma.rn.f32 %f737, %f577, %f732, %f736;
+ fma.rn.f32 %f739, %f582, %f730, %f737;
+ add.rn.f32 %f740, %f734, %f739;
+ neg.f32 %f741, %f740;
+ add.rn.f32 %f742, %f734, %f741;
+ add.rn.f32 %f743, %f742, %f739;
+ mov.b32 %r110, %f740;
+ setp.eq.s32 %p103, %r110, 1118925336;
+ add.s32 %r111, %r110, -1;
+ mov.b32 %f744, %r111;
+ add.f32 %f745, %f743, 0f37000000;
+ selp.f32 %f746, %f744, %f740, %p103;
+ selp.f32 %f105, %f745, %f743, %p103;
+ mul.f32 %f747, %f746, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f748, %f747;
+ fma.rn.f32 %f750, %f748, %f944, %f746;
+ fma.rn.f32 %f752, %f748, %f945, %f750;
+ mul.f32 %f753, %f752, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f754, %f753;
+ add.f32 %f755, %f748, 0f00000000;
+ ex2.approx.f32 %f756, %f755;
+ mul.f32 %f757, %f754, %f756;
+ setp.lt.f32 %p104, %f746, 0fC2D20000;
+ selp.f32 %f758, 0f00000000, %f757, %p104;
+ setp.gt.f32 %p105, %f746, 0f42D20000;
+ selp.f32 %f981, 0f7F800000, %f758, %p105;
+ setp.eq.f32 %p106, %f981, 0f7F800000;
+ @%p106 bra BB0_69;
+
+ fma.rn.f32 %f981, %f981, %f105, %f981;
+
+BB0_69:
+ setp.lt.f32 %p107, %f63, 0f00000000;
+ and.pred %p6, %p107, %p76;
+ mov.b32 %r112, %f981;
+ xor.b32 %r113, %r112, -2147483648;
+ mov.b32 %f759, %r113;
+ selp.f32 %f983, %f759, %f981, %p6;
+ setp.eq.f32 %p109, %f63, 0f00000000;
+ @%p109 bra BB0_72;
+ bra.uni BB0_70;
+
+BB0_72:
+ add.f32 %f762, %f63, %f63;
+ selp.f32 %f983, %f762, 0f00000000, %p76;
+ bra.uni BB0_73;
+
+BB0_70:
+ setp.geu.f32 %p110, %f63, 0f00000000;
+ @%p110 bra BB0_73;
+
+ cvt.rzi.f32.f32 %f761, %f577;
+ setp.neu.f32 %p111, %f761, 0f3EE66666;
+ selp.f32 %f983, 0f7FFFFFFF, %f983, %p111;
+
+BB0_73:
+ add.f32 %f763, %f104, 0f3EE66666;
+ mov.b32 %r114, %f763;
+ setp.lt.s32 %p113, %r114, 2139095040;
+ @%p113 bra BB0_78;
+
+ setp.gtu.f32 %p114, %f104, 0f7F800000;
+ @%p114 bra BB0_77;
+ bra.uni BB0_75;
+
+BB0_77:
+ add.f32 %f983, %f63, 0f3EE66666;
+ bra.uni BB0_78;
+
+BB0_75:
+ setp.neu.f32 %p115, %f104, 0f7F800000;
+ @%p115 bra BB0_78;
+
+ selp.f32 %f983, 0fFF800000, 0f7F800000, %p6;
+
+BB0_78:
+ setp.eq.f32 %p116, %f63, 0f3F800000;
+ selp.f32 %f764, 0f3F800000, %f983, %p116;
+ cvt.u64.u32 %rd36, %r3;
+ cvt.u64.u32 %rd35, %r2;
+ mov.u64 %rd39, image;
+ cvta.global.u64 %rd34, %rd39;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r26, %r27, %rd35, %rd36, %rd15, %rd15);
+ // inline asm
+ cvt.sat.f32.f32 %f765, %f764;
+ mul.f32 %f766, %f765, 0f437FFD71;
+ cvt.rzi.u32.f32 %r117, %f766;
+ cvt.sat.f32.f32 %f767, %f103;
+ mul.f32 %f768, %f767, 0f437FFD71;
+ cvt.rzi.u32.f32 %r118, %f768;
+ cvt.sat.f32.f32 %f769, %f90;
+ mul.f32 %f770, %f769, 0f437FFD71;
+ cvt.rzi.u32.f32 %r119, %f770;
+ cvt.u16.u32 %rs21, %r117;
+ cvt.u16.u32 %rs22, %r119;
+ cvt.u16.u32 %rs23, %r118;
+ mov.u16 %rs24, 255;
+ st.v4.u8 [%rd33], {%rs21, %rs23, %rs22, %rs24};
+ ld.global.u32 %r246, [imageEnabled];
+
+BB0_79:
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ and.b32 %r120, %r246, 4;
+ setp.eq.s32 %p117, %r120, 0;
+ @%p117 bra BB0_83;
+
+ ld.global.u32 %r121, [additive];
+ setp.eq.s32 %p118, %r121, 0;
+ mov.f32 %f771, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f771;}
+
+ // inline asm
+ @%p118 bra BB0_82;
+
+ mov.u64 %rd52, image_HDR;
+ cvta.global.u64 %rd41, %rd52;
+ mov.u32 %r125, 8;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r26, %r125, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs32, %rs33, %rs34, %rs35}, [%rd40];
+ // inline asm
+ { cvt.f32.f16 %f772, %rs32;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f773, %rs33;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f774, %rs34;}
+
+ // inline asm
+ // inline asm
+ call (%rd46), _rt_buffer_get_64, (%rd41, %r26, %r125, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f775, %f61, %f772;
+ add.f32 %f776, %f62, %f773;
+ add.f32 %f777, %f63, %f774;
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f777;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f776;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f775;}
+
+ // inline asm
+ st.v4.u16 [%rd46], {%rs29, %rs30, %rs31, %rs25};
+ bra.uni BB0_83;
+
+BB0_82:
+ mov.u64 %rd59, image_HDR;
+ cvta.global.u64 %rd54, %rd59;
+ mov.u32 %r127, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r26, %r127, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f63;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f62;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f61;}
+
+ // inline asm
+ st.v4.u16 [%rd53], {%rs36, %rs37, %rs38, %rs25};
+
+BB0_83:
+ mul.f32 %f782, %f48, 0f3E800000;
+ mul.f32 %f783, %f782, %f971;
+ mul.f32 %f784, %f47, %f783;
+ ld.global.f32 %f785, [lightColor];
+ mul.f32 %f116, %f784, %f785;
+ ld.global.f32 %f786, [lightColor+4];
+ mul.f32 %f117, %f784, %f786;
+ ld.global.f32 %f787, [lightColor+8];
+ mul.f32 %f118, %f784, %f787;
+ ld.global.u32 %r128, [additive];
+ setp.eq.s32 %p119, %r128, 0;
+ mov.f32 %f781, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f781;}
+
+ // inline asm
+ @%p119 bra BB0_85;
+
+ mov.u64 %rd72, image_RNM0;
+ cvta.global.u64 %rd61, %rd72;
+ mov.u32 %r132, 8;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r26, %r132, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs46, %rs47, %rs48, %rs49}, [%rd60];
+ // inline asm
+ { cvt.f32.f16 %f788, %rs46;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f789, %rs47;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f790, %rs48;}
+
+ // inline asm
+ // inline asm
+ call (%rd66), _rt_buffer_get_64, (%rd61, %r26, %r132, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f791, %f116, %f788;
+ add.f32 %f792, %f117, %f789;
+ add.f32 %f793, %f118, %f790;
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f793;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f792;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f791;}
+
+ // inline asm
+ st.v4.u16 [%rd66], {%rs43, %rs44, %rs45, %rs39};
+ bra.uni BB0_86;
+
+BB0_85:
+ mov.u64 %rd79, image_RNM0;
+ cvta.global.u64 %rd74, %rd79;
+ mov.u32 %r134, 8;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r26, %r134, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f118;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f117;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f116;}
+
+ // inline asm
+ st.v4.u16 [%rd73], {%rs50, %rs51, %rs52, %rs39};
+
+BB0_86:
+ fma.rn.f32 %f119, %f13, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f120, %f14, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f121, %f15, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r135, [additive];
+ setp.eq.s32 %p120, %r135, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f781;}
+
+ // inline asm
+ @%p120 bra BB0_88;
+
+ mov.u64 %rd92, image_RNM1;
+ cvta.global.u64 %rd81, %rd92;
+ mov.u32 %r139, 8;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r26, %r139, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs60, %rs61, %rs62, %rs63}, [%rd80];
+ // inline asm
+ { cvt.f32.f16 %f798, %rs60;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f799, %rs61;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f800, %rs62;}
+
+ // inline asm
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd81, %r26, %r139, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f801, %f119, %f798;
+ add.f32 %f802, %f119, %f799;
+ add.f32 %f803, %f119, %f800;
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f803;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f802;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f801;}
+
+ // inline asm
+ st.v4.u16 [%rd86], {%rs57, %rs58, %rs59, %rs53};
+ bra.uni BB0_89;
+
+BB0_88:
+ mov.u64 %rd99, image_RNM1;
+ cvta.global.u64 %rd94, %rd99;
+ mov.u32 %r141, 8;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd94, %r26, %r141, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f119;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs64, %rs64, %rs64, %rs53};
+
+BB0_89:
+ ld.global.u32 %r142, [additive];
+ setp.eq.s32 %p121, %r142, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f781;}
+
+ // inline asm
+ @%p121 bra BB0_91;
+
+ mov.u64 %rd112, image_RNM2;
+ cvta.global.u64 %rd101, %rd112;
+ mov.u32 %r146, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r26, %r146, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs72, %rs73, %rs74, %rs75}, [%rd100];
+ // inline asm
+ { cvt.f32.f16 %f806, %rs72;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f807, %rs73;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f808, %rs74;}
+
+ // inline asm
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd101, %r26, %r146, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f809, %f120, %f806;
+ add.f32 %f810, %f120, %f807;
+ add.f32 %f811, %f120, %f808;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f811;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f810;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f809;}
+
+ // inline asm
+ st.v4.u16 [%rd106], {%rs69, %rs70, %rs71, %rs65};
+ bra.uni BB0_92;
+
+BB0_91:
+ mov.u64 %rd119, image_RNM2;
+ cvta.global.u64 %rd114, %rd119;
+ mov.u32 %r148, 8;
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd114, %r26, %r148, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f120;}
+
+ // inline asm
+ st.v4.u16 [%rd113], {%rs76, %rs76, %rs76, %rs65};
+
+BB0_92:
+ ld.global.u32 %r149, [additive];
+ setp.eq.s32 %p122, %r149, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f781;}
+
+ // inline asm
+ @%p122 bra BB0_94;
+
+ mov.u64 %rd132, image_RNM3;
+ cvta.global.u64 %rd121, %rd132;
+ mov.u32 %r153, 8;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd121, %r26, %r153, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs84, %rs85, %rs86, %rs87}, [%rd120];
+ // inline asm
+ { cvt.f32.f16 %f814, %rs84;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f815, %rs85;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f816, %rs86;}
+
+ // inline asm
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd121, %r26, %r153, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f817, %f121, %f814;
+ add.f32 %f818, %f121, %f815;
+ add.f32 %f819, %f121, %f816;
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f819;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f818;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f817;}
+
+ // inline asm
+ st.v4.u16 [%rd126], {%rs81, %rs82, %rs83, %rs77};
+ bra.uni BB0_136;
+
+BB0_94:
+ mov.u64 %rd139, image_RNM3;
+ cvta.global.u64 %rd134, %rd139;
+ mov.u32 %r155, 8;
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd134, %r26, %r155, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f121;}
+
+ // inline asm
+ st.v4.u16 [%rd133], {%rs88, %rs88, %rs88, %rs77};
+
+BB0_136:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightSH.ptx.meta
new file mode 100644
index 00000000..555dfd0c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmConeLightSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6fac4f019fbc6a1479adf2d12c596c5d
+timeCreated: 1558780075
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLight.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLight.ptx
new file mode 100644
index 00000000..ee99c667
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLight.ptx
@@ -0,0 +1,1590 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_Dir[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .u32 lightCookie;
+.global .align 4 .b8 lightMatrix[36];
+.global .align 4 .f32 lightFOV;
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightCookieE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightMatrixE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightFOVE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename11lightCookieE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename11lightMatrixE[10] = {77, 97, 116, 114, 105, 120, 51, 120, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightFOVE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightCookieE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightMatrixE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightFOVE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightCookieE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightMatrixE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightFOVE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightCookieE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightMatrixE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightFOVE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<114>;
+ .reg .b16 %rs<76>;
+ .reg .f32 %f<786>;
+ .reg .b32 %r<168>;
+ .reg .b64 %rd<150>;
+
+
+ mov.u64 %rd149, __local_depot0;
+ cvta.local.u64 %SP, %rd149;
+ ld.global.v2.u32 {%r26, %r27}, [pixelID];
+ cvt.u64.u32 %rd12, %r26;
+ cvt.u64.u32 %rd13, %r27;
+ mov.u64 %rd16, uvnormal;
+ cvta.global.u64 %rd11, %rd16;
+ mov.u32 %r24, 2;
+ mov.u32 %r25, 4;
+ mov.u64 %rd15, 0;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r24, %r25, %rd12, %rd13, %rd15, %rd15);
+ // inline asm
+ ld.u32 %r1, [%rd10];
+ shr.u32 %r30, %r1, 16;
+ cvt.u16.u32 %rs1, %r30;
+ and.b16 %rs4, %rs1, 255;
+ cvt.u16.u32 %rs5, %r1;
+ or.b16 %rs6, %rs5, %rs4;
+ setp.eq.s16 %p6, %rs6, 0;
+ mov.f32 %f765, 0f00000000;
+ mov.f32 %f766, %f765;
+ mov.f32 %f767, %f765;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs7, [%rd10+1];
+ and.b16 %rs9, %rs5, 255;
+ cvt.rn.f32.u16 %f99, %rs9;
+ div.rn.f32 %f100, %f99, 0f437F0000;
+ fma.rn.f32 %f101, %f100, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f102, %rs7;
+ div.rn.f32 %f103, %f102, 0f437F0000;
+ fma.rn.f32 %f104, %f103, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f105, %rs4;
+ div.rn.f32 %f106, %f105, 0f437F0000;
+ fma.rn.f32 %f107, %f106, 0f40000000, 0fBF800000;
+ mul.f32 %f108, %f104, %f104;
+ fma.rn.f32 %f109, %f101, %f101, %f108;
+ fma.rn.f32 %f110, %f107, %f107, %f109;
+ sqrt.rn.f32 %f111, %f110;
+ rcp.rn.f32 %f112, %f111;
+ mul.f32 %f765, %f101, %f112;
+ mul.f32 %f766, %f104, %f112;
+ mul.f32 %f767, %f107, %f112;
+
+BB0_2:
+ ld.global.v2.u32 {%r31, %r32}, [pixelID];
+ ld.global.v2.u32 {%r34, %r35}, [tileInfo];
+ add.s32 %r2, %r31, %r34;
+ add.s32 %r3, %r32, %r35;
+ setp.eq.f32 %p7, %f766, 0f00000000;
+ setp.eq.f32 %p8, %f765, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f767, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_84;
+ bra.uni BB0_3;
+
+BB0_84:
+ ld.global.u32 %r167, [imageEnabled];
+ and.b32 %r143, %r167, 1;
+ setp.eq.b32 %p109, %r143, 1;
+ @!%p109 bra BB0_86;
+ bra.uni BB0_85;
+
+BB0_85:
+ cvt.u64.u32 %rd110, %r2;
+ cvt.u64.u32 %rd111, %r3;
+ mov.u64 %rd114, image;
+ cvta.global.u64 %rd109, %rd114;
+ // inline asm
+ call (%rd108), _rt_buffer_get_64, (%rd109, %r24, %r25, %rd110, %rd111, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs57, 0;
+ st.v4.u8 [%rd108], {%rs57, %rs57, %rs57, %rs57};
+ ld.global.u32 %r167, [imageEnabled];
+
+BB0_86:
+ and.b32 %r146, %r167, 8;
+ setp.eq.s32 %p110, %r146, 0;
+ @%p110 bra BB0_88;
+
+ cvt.u64.u32 %rd117, %r2;
+ cvt.u64.u32 %rd118, %r3;
+ mov.u64 %rd121, image_Mask;
+ cvta.global.u64 %rd116, %rd121;
+ // inline asm
+ call (%rd115), _rt_buffer_get_64, (%rd116, %r24, %r24, %rd117, %rd118, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f717, 0f00000000;
+ cvt.rzi.u32.f32 %r149, %f717;
+ cvt.u16.u32 %rs58, %r149;
+ mov.u16 %rs59, 0;
+ st.v2.u8 [%rd115], {%rs58, %rs59};
+ ld.global.u32 %r167, [imageEnabled];
+
+BB0_88:
+ and.b32 %r150, %r167, 4;
+ setp.eq.s32 %p111, %r150, 0;
+ @%p111 bra BB0_92;
+
+ ld.global.u32 %r151, [additive];
+ setp.eq.s32 %p112, %r151, 0;
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ @%p112 bra BB0_91;
+
+ mov.u64 %rd134, image_HDR;
+ cvta.global.u64 %rd123, %rd134;
+ mov.u32 %r155, 8;
+ // inline asm
+ call (%rd122), _rt_buffer_get_64, (%rd123, %r24, %r155, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs66, %rs67, %rs68, %rs69}, [%rd122];
+ // inline asm
+ { cvt.f32.f16 %f718, %rs66;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f719, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f720, %rs68;}
+
+ // inline asm
+ // inline asm
+ call (%rd128), _rt_buffer_get_64, (%rd123, %r24, %r155, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f721, %f718, 0f00000000;
+ add.f32 %f722, %f719, 0f00000000;
+ add.f32 %f723, %f720, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f723;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f722;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs63, %f721;}
+
+ // inline asm
+ mov.u16 %rs70, 0;
+ st.v4.u16 [%rd128], {%rs63, %rs64, %rs65, %rs70};
+ bra.uni BB0_92;
+
+BB0_3:
+ ld.global.v2.u32 {%r41, %r42}, [pixelID];
+ cvt.u64.u32 %rd19, %r41;
+ cvt.u64.u32 %rd20, %r42;
+ mov.u64 %rd23, uvpos;
+ cvta.global.u64 %rd18, %rd23;
+ mov.u32 %r40, 12;
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd18, %r24, %r40, %rd19, %rd20, %rd15, %rd15);
+ // inline asm
+ ld.global.f32 %f115, [lightPos];
+ ld.f32 %f9, [%rd17+8];
+ ld.f32 %f8, [%rd17+4];
+ ld.f32 %f7, [%rd17];
+ sub.f32 %f116, %f115, %f7;
+ ld.global.f32 %f117, [lightPos+4];
+ sub.f32 %f118, %f117, %f8;
+ ld.global.f32 %f119, [lightPos+8];
+ sub.f32 %f120, %f119, %f9;
+ mul.f32 %f121, %f118, %f118;
+ fma.rn.f32 %f122, %f116, %f116, %f121;
+ fma.rn.f32 %f123, %f120, %f120, %f122;
+ sqrt.rn.f32 %f124, %f123;
+ rcp.rn.f32 %f125, %f124;
+ mul.f32 %f10, %f116, %f125;
+ mul.f32 %f11, %f118, %f125;
+ mul.f32 %f12, %f120, %f125;
+ ld.global.f32 %f126, [lightFalloffFakeDistanceMult];
+ mul.f32 %f13, %f124, %f126;
+ ld.global.f32 %f127, [lightInvCutoff];
+ mul.f32 %f14, %f124, %f127;
+ mov.f32 %f131, 0f40800000;
+ abs.f32 %f16, %f14;
+ setp.lt.f32 %p12, %f16, 0f00800000;
+ mul.f32 %f133, %f16, 0f4B800000;
+ selp.f32 %f134, 0fC3170000, 0fC2FE0000, %p12;
+ selp.f32 %f135, %f133, %f16, %p12;
+ mov.b32 %r45, %f135;
+ and.b32 %r46, %r45, 8388607;
+ or.b32 %r47, %r46, 1065353216;
+ mov.b32 %f136, %r47;
+ shr.u32 %r48, %r45, 23;
+ cvt.rn.f32.u32 %f137, %r48;
+ add.f32 %f138, %f134, %f137;
+ setp.gt.f32 %p13, %f136, 0f3FB504F3;
+ mul.f32 %f139, %f136, 0f3F000000;
+ add.f32 %f140, %f138, 0f3F800000;
+ selp.f32 %f141, %f139, %f136, %p13;
+ selp.f32 %f142, %f140, %f138, %p13;
+ add.f32 %f143, %f141, 0fBF800000;
+ add.f32 %f114, %f141, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f113,%f114;
+ // inline asm
+ add.f32 %f144, %f143, %f143;
+ mul.f32 %f145, %f113, %f144;
+ mul.f32 %f146, %f145, %f145;
+ mov.f32 %f147, 0f3C4CAF63;
+ mov.f32 %f148, 0f3B18F0FE;
+ fma.rn.f32 %f149, %f148, %f146, %f147;
+ mov.f32 %f150, 0f3DAAAABD;
+ fma.rn.f32 %f151, %f149, %f146, %f150;
+ mul.rn.f32 %f152, %f151, %f146;
+ mul.rn.f32 %f153, %f152, %f145;
+ sub.f32 %f154, %f143, %f145;
+ neg.f32 %f155, %f145;
+ add.f32 %f156, %f154, %f154;
+ fma.rn.f32 %f157, %f155, %f143, %f156;
+ mul.rn.f32 %f158, %f113, %f157;
+ add.f32 %f159, %f153, %f145;
+ sub.f32 %f160, %f145, %f159;
+ add.f32 %f161, %f153, %f160;
+ add.f32 %f162, %f158, %f161;
+ add.f32 %f163, %f159, %f162;
+ sub.f32 %f164, %f159, %f163;
+ add.f32 %f165, %f162, %f164;
+ mov.f32 %f166, 0f3F317200;
+ mul.rn.f32 %f167, %f142, %f166;
+ mov.f32 %f168, 0f35BFBE8E;
+ mul.rn.f32 %f169, %f142, %f168;
+ add.f32 %f170, %f167, %f163;
+ sub.f32 %f171, %f167, %f170;
+ add.f32 %f172, %f163, %f171;
+ add.f32 %f173, %f165, %f172;
+ add.f32 %f174, %f169, %f173;
+ add.f32 %f175, %f170, %f174;
+ sub.f32 %f176, %f170, %f175;
+ add.f32 %f177, %f174, %f176;
+ mul.rn.f32 %f178, %f131, %f175;
+ neg.f32 %f179, %f178;
+ fma.rn.f32 %f180, %f131, %f175, %f179;
+ fma.rn.f32 %f181, %f131, %f177, %f180;
+ mov.f32 %f182, 0f00000000;
+ fma.rn.f32 %f183, %f182, %f175, %f181;
+ add.rn.f32 %f184, %f178, %f183;
+ neg.f32 %f185, %f184;
+ add.rn.f32 %f186, %f178, %f185;
+ add.rn.f32 %f187, %f186, %f183;
+ mov.b32 %r49, %f184;
+ setp.eq.s32 %p14, %r49, 1118925336;
+ add.s32 %r50, %r49, -1;
+ mov.b32 %f188, %r50;
+ add.f32 %f189, %f187, 0f37000000;
+ selp.f32 %f190, %f188, %f184, %p14;
+ selp.f32 %f17, %f189, %f187, %p14;
+ mul.f32 %f191, %f190, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f192, %f191;
+ mov.f32 %f193, 0fBF317200;
+ fma.rn.f32 %f194, %f192, %f193, %f190;
+ mov.f32 %f195, 0fB5BFBE8E;
+ fma.rn.f32 %f196, %f192, %f195, %f194;
+ mul.f32 %f197, %f196, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f198, %f197;
+ add.f32 %f199, %f192, 0f00000000;
+ ex2.approx.f32 %f200, %f199;
+ mul.f32 %f201, %f198, %f200;
+ setp.lt.f32 %p15, %f190, 0fC2D20000;
+ selp.f32 %f202, 0f00000000, %f201, %p15;
+ setp.gt.f32 %p16, %f190, 0f42D20000;
+ selp.f32 %f768, 0f7F800000, %f202, %p16;
+ setp.eq.f32 %p17, %f768, 0f7F800000;
+ @%p17 bra BB0_5;
+
+ fma.rn.f32 %f768, %f768, %f17, %f768;
+
+BB0_5:
+ mov.f32 %f730, 0f40000000;
+ cvt.rzi.f32.f32 %f729, %f730;
+ add.f32 %f728, %f729, %f729;
+ mov.f32 %f727, 0f40800000;
+ sub.f32 %f726, %f727, %f728;
+ abs.f32 %f725, %f726;
+ setp.lt.f32 %p18, %f14, 0f00000000;
+ setp.eq.f32 %p19, %f725, 0f3F800000;
+ and.pred %p1, %p18, %p19;
+ mov.b32 %r51, %f768;
+ xor.b32 %r52, %r51, -2147483648;
+ mov.b32 %f203, %r52;
+ selp.f32 %f770, %f203, %f768, %p1;
+ setp.eq.f32 %p20, %f14, 0f00000000;
+ @%p20 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f206, %f14, %f14;
+ selp.f32 %f770, %f206, 0f00000000, %p19;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p21, %f14, 0f00000000;
+ @%p21 bra BB0_9;
+
+ mov.f32 %f764, 0f40800000;
+ cvt.rzi.f32.f32 %f205, %f764;
+ setp.neu.f32 %p22, %f205, 0f40800000;
+ selp.f32 %f770, 0f7FFFFFFF, %f770, %p22;
+
+BB0_9:
+ abs.f32 %f731, %f14;
+ add.f32 %f207, %f731, 0f40800000;
+ mov.b32 %r53, %f207;
+ setp.lt.s32 %p24, %r53, 2139095040;
+ @%p24 bra BB0_14;
+
+ abs.f32 %f762, %f14;
+ setp.gtu.f32 %p25, %f762, 0f7F800000;
+ @%p25 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f770, %f14, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f763, %f14;
+ setp.neu.f32 %p26, %f763, 0f7F800000;
+ @%p26 bra BB0_14;
+
+ selp.f32 %f770, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ mov.f32 %f732, 0f00000000;
+ mov.f32 %f773, 0f3F800000;
+ sub.f32 %f217, %f773, %f770;
+ setp.eq.f32 %p27, %f14, 0f3F800000;
+ selp.f32 %f218, 0f00000000, %f217, %p27;
+ cvt.sat.f32.f32 %f219, %f218;
+ ld.global.f32 %f220, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f221, %f13, %f13, %f220;
+ div.rn.f32 %f222, %f219, %f221;
+ mul.f32 %f223, %f766, %f11;
+ fma.rn.f32 %f224, %f765, %f10, %f223;
+ fma.rn.f32 %f225, %f767, %f12, %f224;
+ ld.global.u32 %r56, [imageEnabled];
+ and.b32 %r57, %r56, 32;
+ ld.global.u32 %r58, [ignoreNormal];
+ or.b32 %r59, %r57, %r58;
+ setp.eq.s32 %p28, %r59, 0;
+ selp.f32 %f226, %f225, 0f3F800000, %p28;
+ cvt.sat.f32.f32 %f227, %f226;
+ ld.global.f32 %f228, [lightMatrix+24];
+ mul.f32 %f229, %f10, %f228;
+ ld.global.f32 %f230, [lightMatrix+28];
+ mul.f32 %f231, %f11, %f230;
+ neg.f32 %f232, %f231;
+ sub.f32 %f233, %f232, %f229;
+ ld.global.f32 %f234, [lightMatrix+32];
+ mul.f32 %f235, %f12, %f234;
+ sub.f32 %f236, %f233, %f235;
+ setp.gt.f32 %p29, %f236, 0f00000000;
+ ld.global.f32 %f237, [lightMatrix];
+ mul.f32 %f238, %f237, %f10;
+ sub.f32 %f239, %f732, %f238;
+ ld.global.f32 %f240, [lightMatrix+4];
+ mul.f32 %f241, %f240, %f11;
+ sub.f32 %f242, %f239, %f241;
+ ld.global.f32 %f243, [lightMatrix+8];
+ mul.f32 %f244, %f243, %f12;
+ sub.f32 %f245, %f242, %f244;
+ selp.f32 %f246, 0f3F800000, 0f00000000, %p29;
+ ld.global.f32 %f247, [lightMatrix+12];
+ mul.f32 %f248, %f247, %f10;
+ sub.f32 %f249, %f732, %f248;
+ ld.global.f32 %f250, [lightMatrix+16];
+ mul.f32 %f251, %f250, %f11;
+ sub.f32 %f252, %f249, %f251;
+ ld.global.f32 %f253, [lightMatrix+20];
+ mul.f32 %f254, %f253, %f12;
+ sub.f32 %f255, %f252, %f254;
+ ld.global.u32 %r54, [lightCookie];
+ ld.global.f32 %f256, [lightFOV];
+ fma.rn.f32 %f212, %f245, %f256, 0f3F000000;
+ fma.rn.f32 %f213, %f255, %f256, 0f3F000000;
+ // inline asm
+ call (%f208, %f209, %f210, %f211), _rt_texture_get_f_id, (%r54, %r24, %f212, %f213, %f732, %f732);
+ // inline asm
+ max.f32 %f257, %f208, %f209;
+ max.f32 %f258, %f257, %f210;
+ mul.f32 %f259, %f246, %f258;
+ mul.f32 %f31, %f222, %f227;
+ mul.f32 %f260, %f31, %f259;
+ ld.global.f32 %f261, [lightColor+4];
+ ld.global.f32 %f262, [lightColor];
+ max.f32 %f263, %f262, %f261;
+ ld.global.f32 %f264, [lightColor+8];
+ max.f32 %f265, %f263, %f264;
+ mul.f32 %f266, %f260, %f265;
+ setp.lt.f32 %p30, %f266, 0f3727C5AC;
+ @%p30 bra BB0_74;
+ bra.uni BB0_15;
+
+BB0_74:
+ ld.global.u32 %r165, [imageEnabled];
+ and.b32 %r126, %r165, 1;
+ setp.eq.b32 %p104, %r126, 1;
+ @!%p104 bra BB0_76;
+ bra.uni BB0_75;
+
+BB0_75:
+ cvt.u64.u32 %rd69, %r2;
+ cvt.u64.u32 %rd70, %r3;
+ mov.u64 %rd73, image;
+ cvta.global.u64 %rd68, %rd73;
+ // inline asm
+ call (%rd67), _rt_buffer_get_64, (%rd68, %r24, %r25, %rd69, %rd70, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs37, 1;
+ mov.u16 %rs38, 0;
+ st.v4.u8 [%rd67], {%rs38, %rs38, %rs38, %rs37};
+ ld.global.u32 %r165, [imageEnabled];
+
+BB0_76:
+ and.b32 %r129, %r165, 8;
+ setp.eq.s32 %p105, %r129, 0;
+ @%p105 bra BB0_78;
+
+ cvt.u64.u32 %rd76, %r2;
+ cvt.u64.u32 %rd77, %r3;
+ mov.u64 %rd80, image_Mask;
+ cvta.global.u64 %rd75, %rd80;
+ // inline asm
+ call (%rd74), _rt_buffer_get_64, (%rd75, %r24, %r24, %rd76, %rd77, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f706, 0f00000000;
+ cvt.rzi.u32.f32 %r132, %f706;
+ cvt.u16.u32 %rs39, %r132;
+ mov.u16 %rs40, 255;
+ st.v2.u8 [%rd74], {%rs39, %rs40};
+ ld.global.u32 %r165, [imageEnabled];
+
+BB0_78:
+ and.b32 %r133, %r165, 4;
+ setp.eq.s32 %p106, %r133, 0;
+ @%p106 bra BB0_82;
+
+ ld.global.u32 %r134, [additive];
+ setp.eq.s32 %p107, %r134, 0;
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ mov.f32 %f707, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs41, %f707;}
+
+ // inline asm
+ @%p107 bra BB0_81;
+
+ mov.u64 %rd93, image_HDR;
+ cvta.global.u64 %rd82, %rd93;
+ mov.u32 %r138, 8;
+ // inline asm
+ call (%rd81), _rt_buffer_get_64, (%rd82, %r24, %r138, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs48, %rs49, %rs50, %rs51}, [%rd81];
+ // inline asm
+ { cvt.f32.f16 %f708, %rs48;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f709, %rs49;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f710, %rs50;}
+
+ // inline asm
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd82, %r24, %r138, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f711, %f708, 0f00000000;
+ add.f32 %f712, %f709, 0f00000000;
+ add.f32 %f713, %f710, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f713;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f712;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f711;}
+
+ // inline asm
+ st.v4.u16 [%rd87], {%rs45, %rs46, %rs47, %rs41};
+ bra.uni BB0_82;
+
+BB0_15:
+ mov.f32 %f772, 0f00000000;
+ mul.f32 %f268, %f7, 0f3456BF95;
+ abs.f32 %f269, %f765;
+ div.rn.f32 %f270, %f268, %f269;
+ abs.f32 %f271, %f766;
+ mul.f32 %f272, %f8, 0f3456BF95;
+ div.rn.f32 %f273, %f272, %f271;
+ abs.f32 %f274, %f767;
+ mul.f32 %f275, %f9, 0f3456BF95;
+ div.rn.f32 %f276, %f275, %f274;
+ abs.f32 %f277, %f270;
+ abs.f32 %f278, %f273;
+ abs.f32 %f279, %f276;
+ mov.f32 %f280, 0f38D1B717;
+ max.f32 %f281, %f277, %f280;
+ max.f32 %f282, %f278, %f280;
+ max.f32 %f283, %f279, %f280;
+ fma.rn.f32 %f32, %f765, %f281, %f7;
+ fma.rn.f32 %f33, %f766, %f282, %f8;
+ fma.rn.f32 %f34, %f767, %f283, %f9;
+ ld.global.u32 %r161, [samples];
+ setp.lt.s32 %p31, %r161, 1;
+ @%p31 bra BB0_18;
+
+ mul.f32 %f285, %f32, 0f3456BF95;
+ abs.f32 %f286, %f285;
+ mul.f32 %f287, %f33, 0f3456BF95;
+ abs.f32 %f288, %f287;
+ mul.f32 %f289, %f34, 0f3456BF95;
+ abs.f32 %f290, %f289;
+ max.f32 %f291, %f286, %f288;
+ max.f32 %f292, %f291, %f290;
+ max.f32 %f35, %f292, %f280;
+ add.u64 %rd24, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd24;
+ mov.f32 %f772, 0f00000000;
+ mov.u32 %r160, 0;
+
+BB0_17:
+ cvt.rn.f32.s32 %f302, %r160;
+ mul.f32 %f303, %f302, 0f3DD32618;
+ cvt.rmi.f32.f32 %f304, %f303;
+ sub.f32 %f305, %f303, %f304;
+ mul.f32 %f306, %f302, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f307, %f306;
+ sub.f32 %f308, %f306, %f307;
+ mul.f32 %f309, %f302, 0f3DC74539;
+ cvt.rmi.f32.f32 %f310, %f309;
+ sub.f32 %f311, %f309, %f310;
+ add.f32 %f312, %f308, 0f4199851F;
+ add.f32 %f313, %f311, 0f4199851F;
+ add.f32 %f314, %f305, 0f4199851F;
+ mul.f32 %f315, %f308, %f313;
+ fma.rn.f32 %f316, %f305, %f312, %f315;
+ fma.rn.f32 %f317, %f314, %f311, %f316;
+ add.f32 %f318, %f305, %f317;
+ add.f32 %f319, %f308, %f317;
+ add.f32 %f320, %f311, %f317;
+ add.f32 %f321, %f318, %f319;
+ mul.f32 %f322, %f320, %f321;
+ cvt.rmi.f32.f32 %f323, %f322;
+ sub.f32 %f324, %f322, %f323;
+ add.f32 %f325, %f318, %f320;
+ mul.f32 %f326, %f319, %f325;
+ cvt.rmi.f32.f32 %f327, %f326;
+ sub.f32 %f328, %f326, %f327;
+ add.f32 %f329, %f319, %f320;
+ mul.f32 %f330, %f318, %f329;
+ cvt.rmi.f32.f32 %f331, %f330;
+ sub.f32 %f332, %f330, %f331;
+ fma.rn.f32 %f333, %f324, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f334, %f328, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f335, %f332, 0f40000000, 0fBF800000;
+ ld.global.f32 %f336, [lightRadius];
+ ld.global.f32 %f337, [lightPos];
+ fma.rn.f32 %f338, %f336, %f333, %f337;
+ ld.global.f32 %f339, [lightPos+4];
+ fma.rn.f32 %f340, %f336, %f334, %f339;
+ ld.global.f32 %f341, [lightPos+8];
+ fma.rn.f32 %f342, %f336, %f335, %f341;
+ sub.f32 %f343, %f338, %f7;
+ sub.f32 %f344, %f340, %f8;
+ sub.f32 %f345, %f342, %f9;
+ mul.f32 %f346, %f344, %f344;
+ fma.rn.f32 %f347, %f343, %f343, %f346;
+ fma.rn.f32 %f348, %f345, %f345, %f347;
+ sqrt.rn.f32 %f301, %f348;
+ rcp.rn.f32 %f349, %f301;
+ mul.f32 %f297, %f349, %f343;
+ mul.f32 %f298, %f349, %f344;
+ mul.f32 %f299, %f349, %f345;
+ ld.global.u32 %r64, [imageEnabled];
+ and.b32 %r65, %r64, 32;
+ setp.eq.s32 %p32, %r65, 0;
+ selp.f32 %f350, 0f3F800000, 0f41200000, %p32;
+ mul.f32 %f300, %f350, %f35;
+ mov.u32 %r66, 1065353216;
+ st.local.u32 [%rd2], %r66;
+ ld.global.u32 %r61, [root];
+ mov.u32 %r62, 1;
+ // inline asm
+ call _rt_trace_64, (%r61, %f32, %f33, %f34, %f297, %f298, %f299, %r62, %f300, %f301, %rd24, %r25);
+ // inline asm
+ ld.local.f32 %f351, [%rd2];
+ add.f32 %f772, %f772, %f351;
+ ld.global.u32 %r161, [samples];
+ add.s32 %r160, %r160, 1;
+ setp.lt.s32 %p33, %r160, %r161;
+ @%p33 bra BB0_17;
+
+BB0_18:
+ setp.eq.s32 %p34, %r161, 0;
+ @%p34 bra BB0_20;
+
+ cvt.rn.f32.s32 %f353, %r161;
+ div.rn.f32 %f773, %f772, %f353;
+
+BB0_20:
+ ld.global.f32 %f354, [lightColor];
+ mul.f32 %f355, %f31, %f773;
+ mul.f32 %f356, %f354, %f355;
+ ld.global.f32 %f357, [lightColor+4];
+ mul.f32 %f358, %f355, %f357;
+ ld.global.f32 %f359, [lightColor+8];
+ mul.f32 %f360, %f355, %f359;
+ mul.f32 %f41, %f208, %f356;
+ mul.f32 %f42, %f209, %f358;
+ mul.f32 %f43, %f210, %f360;
+ ld.global.u32 %r163, [imageEnabled];
+ and.b32 %r67, %r163, 8;
+ setp.eq.s32 %p35, %r67, 0;
+ @%p35 bra BB0_33;
+
+ mov.f32 %f740, 0fB5BFBE8E;
+ mov.f32 %f739, 0fBF317200;
+ mov.f32 %f738, 0f35BFBE8E;
+ mov.f32 %f737, 0f3F317200;
+ mov.f32 %f736, 0f3DAAAABD;
+ mov.f32 %f735, 0f3C4CAF63;
+ mov.f32 %f734, 0f3B18F0FE;
+ cvt.u64.u32 %rd28, %r2;
+ cvt.u64.u32 %rd29, %r3;
+ mov.u64 %rd32, image_Mask;
+ cvta.global.u64 %rd27, %rd32;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r24, %r24, %rd28, %rd29, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f363, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f364, %f363;
+ fma.rn.f32 %f365, %f364, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f44, %f365;
+ abs.f32 %f45, %f773;
+ setp.lt.f32 %p36, %f45, 0f00800000;
+ mul.f32 %f366, %f45, 0f4B800000;
+ selp.f32 %f367, 0fC3170000, 0fC2FE0000, %p36;
+ selp.f32 %f368, %f366, %f45, %p36;
+ mov.b32 %r70, %f368;
+ and.b32 %r71, %r70, 8388607;
+ or.b32 %r72, %r71, 1065353216;
+ mov.b32 %f369, %r72;
+ shr.u32 %r73, %r70, 23;
+ cvt.rn.f32.u32 %f370, %r73;
+ add.f32 %f371, %f367, %f370;
+ setp.gt.f32 %p37, %f369, 0f3FB504F3;
+ mul.f32 %f372, %f369, 0f3F000000;
+ add.f32 %f373, %f371, 0f3F800000;
+ selp.f32 %f374, %f372, %f369, %p37;
+ selp.f32 %f375, %f373, %f371, %p37;
+ add.f32 %f376, %f374, 0fBF800000;
+ add.f32 %f362, %f374, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f361,%f362;
+ // inline asm
+ add.f32 %f377, %f376, %f376;
+ mul.f32 %f378, %f361, %f377;
+ mul.f32 %f379, %f378, %f378;
+ fma.rn.f32 %f382, %f734, %f379, %f735;
+ fma.rn.f32 %f384, %f382, %f379, %f736;
+ mul.rn.f32 %f385, %f384, %f379;
+ mul.rn.f32 %f386, %f385, %f378;
+ sub.f32 %f387, %f376, %f378;
+ neg.f32 %f388, %f378;
+ add.f32 %f389, %f387, %f387;
+ fma.rn.f32 %f390, %f388, %f376, %f389;
+ mul.rn.f32 %f391, %f361, %f390;
+ add.f32 %f392, %f386, %f378;
+ sub.f32 %f393, %f378, %f392;
+ add.f32 %f394, %f386, %f393;
+ add.f32 %f395, %f391, %f394;
+ add.f32 %f396, %f392, %f395;
+ sub.f32 %f397, %f392, %f396;
+ add.f32 %f398, %f395, %f397;
+ mul.rn.f32 %f400, %f375, %f737;
+ mul.rn.f32 %f402, %f375, %f738;
+ add.f32 %f403, %f400, %f396;
+ sub.f32 %f404, %f400, %f403;
+ add.f32 %f405, %f396, %f404;
+ add.f32 %f406, %f398, %f405;
+ add.f32 %f407, %f402, %f406;
+ add.f32 %f408, %f403, %f407;
+ sub.f32 %f409, %f403, %f408;
+ add.f32 %f410, %f407, %f409;
+ mov.f32 %f411, 0f3EE8BA2E;
+ mul.rn.f32 %f412, %f411, %f408;
+ neg.f32 %f413, %f412;
+ fma.rn.f32 %f414, %f411, %f408, %f413;
+ fma.rn.f32 %f415, %f411, %f410, %f414;
+ mov.f32 %f416, 0f00000000;
+ fma.rn.f32 %f417, %f416, %f408, %f415;
+ add.rn.f32 %f418, %f412, %f417;
+ neg.f32 %f419, %f418;
+ add.rn.f32 %f420, %f412, %f419;
+ add.rn.f32 %f421, %f420, %f417;
+ mov.b32 %r74, %f418;
+ setp.eq.s32 %p38, %r74, 1118925336;
+ add.s32 %r75, %r74, -1;
+ mov.b32 %f422, %r75;
+ add.f32 %f423, %f421, 0f37000000;
+ selp.f32 %f424, %f422, %f418, %p38;
+ selp.f32 %f46, %f423, %f421, %p38;
+ mul.f32 %f425, %f424, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f426, %f425;
+ fma.rn.f32 %f428, %f426, %f739, %f424;
+ fma.rn.f32 %f430, %f426, %f740, %f428;
+ mul.f32 %f431, %f430, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f432, %f431;
+ add.f32 %f433, %f426, 0f00000000;
+ ex2.approx.f32 %f434, %f433;
+ mul.f32 %f435, %f432, %f434;
+ setp.lt.f32 %p39, %f424, 0fC2D20000;
+ selp.f32 %f436, 0f00000000, %f435, %p39;
+ setp.gt.f32 %p40, %f424, 0f42D20000;
+ selp.f32 %f774, 0f7F800000, %f436, %p40;
+ setp.eq.f32 %p41, %f774, 0f7F800000;
+ @%p41 bra BB0_23;
+
+ fma.rn.f32 %f774, %f774, %f46, %f774;
+
+BB0_23:
+ setp.lt.f32 %p42, %f773, 0f00000000;
+ setp.eq.f32 %p43, %f44, 0f3F800000;
+ and.pred %p2, %p42, %p43;
+ mov.b32 %r76, %f774;
+ xor.b32 %r77, %r76, -2147483648;
+ mov.b32 %f437, %r77;
+ selp.f32 %f776, %f437, %f774, %p2;
+ setp.eq.f32 %p44, %f773, 0f00000000;
+ @%p44 bra BB0_26;
+ bra.uni BB0_24;
+
+BB0_26:
+ add.f32 %f440, %f773, %f773;
+ selp.f32 %f776, %f440, 0f00000000, %p43;
+ bra.uni BB0_27;
+
+BB0_91:
+ mov.u64 %rd141, image_HDR;
+ cvta.global.u64 %rd136, %rd141;
+ mov.u32 %r157, 8;
+ // inline asm
+ call (%rd135), _rt_buffer_get_64, (%rd136, %r24, %r157, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f724, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f724;}
+
+ // inline asm
+ mov.u16 %rs72, 0;
+ st.v4.u16 [%rd135], {%rs71, %rs71, %rs71, %rs72};
+
+BB0_92:
+ ld.global.u8 %rs73, [imageEnabled];
+ and.b16 %rs74, %rs73, 64;
+ setp.eq.s16 %p113, %rs74, 0;
+ @%p113 bra BB0_94;
+
+ cvt.u64.u32 %rd144, %r2;
+ cvt.u64.u32 %rd145, %r3;
+ mov.u64 %rd148, image_Dir;
+ cvta.global.u64 %rd143, %rd148;
+ // inline asm
+ call (%rd142), _rt_buffer_get_64, (%rd143, %r24, %r25, %rd144, %rd145, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs75, 0;
+ st.v4.u8 [%rd142], {%rs75, %rs75, %rs75, %rs75};
+ bra.uni BB0_94;
+
+BB0_81:
+ mov.u64 %rd100, image_HDR;
+ cvta.global.u64 %rd95, %rd100;
+ mov.u32 %r140, 8;
+ // inline asm
+ call (%rd94), _rt_buffer_get_64, (%rd95, %r24, %r140, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f714, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f714;}
+
+ // inline asm
+ st.v4.u16 [%rd94], {%rs52, %rs52, %rs52, %rs41};
+
+BB0_82:
+ ld.global.u8 %rs53, [imageEnabled];
+ and.b16 %rs54, %rs53, 64;
+ setp.eq.s16 %p108, %rs54, 0;
+ @%p108 bra BB0_94;
+
+ cvt.u64.u32 %rd103, %r2;
+ cvt.u64.u32 %rd104, %r3;
+ mov.u64 %rd107, image_Dir;
+ cvta.global.u64 %rd102, %rd107;
+ // inline asm
+ call (%rd101), _rt_buffer_get_64, (%rd102, %r24, %r25, %rd103, %rd104, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs55, 255;
+ mov.u16 %rs56, 0;
+ st.v4.u8 [%rd101], {%rs56, %rs56, %rs56, %rs55};
+ bra.uni BB0_94;
+
+BB0_24:
+ setp.geu.f32 %p45, %f773, 0f00000000;
+ @%p45 bra BB0_27;
+
+ cvt.rzi.f32.f32 %f439, %f411;
+ setp.neu.f32 %p46, %f439, 0f3EE8BA2E;
+ selp.f32 %f776, 0f7FFFFFFF, %f776, %p46;
+
+BB0_27:
+ add.f32 %f441, %f45, 0f3EE8BA2E;
+ mov.b32 %r78, %f441;
+ setp.lt.s32 %p48, %r78, 2139095040;
+ @%p48 bra BB0_32;
+
+ setp.gtu.f32 %p49, %f45, 0f7F800000;
+ @%p49 bra BB0_31;
+ bra.uni BB0_29;
+
+BB0_31:
+ add.f32 %f776, %f773, 0f3EE8BA2E;
+ bra.uni BB0_32;
+
+BB0_29:
+ setp.neu.f32 %p50, %f45, 0f7F800000;
+ @%p50 bra BB0_32;
+
+ selp.f32 %f776, 0fFF800000, 0f7F800000, %p2;
+
+BB0_32:
+ mul.f32 %f442, %f776, 0f437F0000;
+ setp.eq.f32 %p51, %f773, 0f3F800000;
+ selp.f32 %f443, 0f437F0000, %f442, %p51;
+ cvt.rzi.u32.f32 %r79, %f443;
+ cvt.u16.u32 %rs11, %r79;
+ mov.u16 %rs12, 255;
+ st.v2.u8 [%rd26], {%rs11, %rs12};
+ ld.global.u32 %r163, [imageEnabled];
+
+BB0_33:
+ and.b32 %r80, %r163, 1;
+ setp.eq.b32 %p52, %r80, 1;
+ @!%p52 bra BB0_68;
+ bra.uni BB0_34;
+
+BB0_34:
+ mov.f32 %f747, 0fB5BFBE8E;
+ mov.f32 %f746, 0fBF317200;
+ mov.f32 %f745, 0f35BFBE8E;
+ mov.f32 %f744, 0f3F317200;
+ mov.f32 %f743, 0f3DAAAABD;
+ mov.f32 %f742, 0f3C4CAF63;
+ mov.f32 %f741, 0f3B18F0FE;
+ mov.f32 %f446, 0f3E666666;
+ cvt.rzi.f32.f32 %f447, %f446;
+ fma.rn.f32 %f448, %f447, 0fC0000000, 0f3EE66666;
+ abs.f32 %f57, %f448;
+ abs.f32 %f58, %f41;
+ setp.lt.f32 %p53, %f58, 0f00800000;
+ mul.f32 %f449, %f58, 0f4B800000;
+ selp.f32 %f450, 0fC3170000, 0fC2FE0000, %p53;
+ selp.f32 %f451, %f449, %f58, %p53;
+ mov.b32 %r81, %f451;
+ and.b32 %r82, %r81, 8388607;
+ or.b32 %r83, %r82, 1065353216;
+ mov.b32 %f452, %r83;
+ shr.u32 %r84, %r81, 23;
+ cvt.rn.f32.u32 %f453, %r84;
+ add.f32 %f454, %f450, %f453;
+ setp.gt.f32 %p54, %f452, 0f3FB504F3;
+ mul.f32 %f455, %f452, 0f3F000000;
+ add.f32 %f456, %f454, 0f3F800000;
+ selp.f32 %f457, %f455, %f452, %p54;
+ selp.f32 %f458, %f456, %f454, %p54;
+ add.f32 %f459, %f457, 0fBF800000;
+ add.f32 %f445, %f457, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f444,%f445;
+ // inline asm
+ add.f32 %f460, %f459, %f459;
+ mul.f32 %f461, %f444, %f460;
+ mul.f32 %f462, %f461, %f461;
+ fma.rn.f32 %f465, %f741, %f462, %f742;
+ fma.rn.f32 %f467, %f465, %f462, %f743;
+ mul.rn.f32 %f468, %f467, %f462;
+ mul.rn.f32 %f469, %f468, %f461;
+ sub.f32 %f470, %f459, %f461;
+ neg.f32 %f471, %f461;
+ add.f32 %f472, %f470, %f470;
+ fma.rn.f32 %f473, %f471, %f459, %f472;
+ mul.rn.f32 %f474, %f444, %f473;
+ add.f32 %f475, %f469, %f461;
+ sub.f32 %f476, %f461, %f475;
+ add.f32 %f477, %f469, %f476;
+ add.f32 %f478, %f474, %f477;
+ add.f32 %f479, %f475, %f478;
+ sub.f32 %f480, %f475, %f479;
+ add.f32 %f481, %f478, %f480;
+ mul.rn.f32 %f483, %f458, %f744;
+ mul.rn.f32 %f485, %f458, %f745;
+ add.f32 %f486, %f483, %f479;
+ sub.f32 %f487, %f483, %f486;
+ add.f32 %f488, %f479, %f487;
+ add.f32 %f489, %f481, %f488;
+ add.f32 %f490, %f485, %f489;
+ add.f32 %f491, %f486, %f490;
+ sub.f32 %f492, %f486, %f491;
+ add.f32 %f493, %f490, %f492;
+ mov.f32 %f494, 0f3EE66666;
+ mul.rn.f32 %f495, %f494, %f491;
+ neg.f32 %f496, %f495;
+ fma.rn.f32 %f497, %f494, %f491, %f496;
+ fma.rn.f32 %f498, %f494, %f493, %f497;
+ mov.f32 %f499, 0f00000000;
+ fma.rn.f32 %f500, %f499, %f491, %f498;
+ add.rn.f32 %f501, %f495, %f500;
+ neg.f32 %f502, %f501;
+ add.rn.f32 %f503, %f495, %f502;
+ add.rn.f32 %f504, %f503, %f500;
+ mov.b32 %r85, %f501;
+ setp.eq.s32 %p55, %r85, 1118925336;
+ add.s32 %r86, %r85, -1;
+ mov.b32 %f505, %r86;
+ add.f32 %f506, %f504, 0f37000000;
+ selp.f32 %f507, %f505, %f501, %p55;
+ selp.f32 %f59, %f506, %f504, %p55;
+ mul.f32 %f508, %f507, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f509, %f508;
+ fma.rn.f32 %f511, %f509, %f746, %f507;
+ fma.rn.f32 %f513, %f509, %f747, %f511;
+ mul.f32 %f514, %f513, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f515, %f514;
+ add.f32 %f516, %f509, 0f00000000;
+ ex2.approx.f32 %f517, %f516;
+ mul.f32 %f518, %f515, %f517;
+ setp.lt.f32 %p56, %f507, 0fC2D20000;
+ selp.f32 %f519, 0f00000000, %f518, %p56;
+ setp.gt.f32 %p57, %f507, 0f42D20000;
+ selp.f32 %f777, 0f7F800000, %f519, %p57;
+ setp.eq.f32 %p58, %f777, 0f7F800000;
+ @%p58 bra BB0_36;
+
+ fma.rn.f32 %f777, %f777, %f59, %f777;
+
+BB0_36:
+ setp.lt.f32 %p59, %f41, 0f00000000;
+ setp.eq.f32 %p60, %f57, 0f3F800000;
+ and.pred %p3, %p59, %p60;
+ mov.b32 %r87, %f777;
+ xor.b32 %r88, %r87, -2147483648;
+ mov.b32 %f520, %r88;
+ selp.f32 %f779, %f520, %f777, %p3;
+ setp.eq.f32 %p61, %f41, 0f00000000;
+ @%p61 bra BB0_39;
+ bra.uni BB0_37;
+
+BB0_39:
+ add.f32 %f523, %f41, %f41;
+ selp.f32 %f779, %f523, 0f00000000, %p60;
+ bra.uni BB0_40;
+
+BB0_37:
+ setp.geu.f32 %p62, %f41, 0f00000000;
+ @%p62 bra BB0_40;
+
+ cvt.rzi.f32.f32 %f522, %f494;
+ setp.neu.f32 %p63, %f522, 0f3EE66666;
+ selp.f32 %f779, 0f7FFFFFFF, %f779, %p63;
+
+BB0_40:
+ add.f32 %f524, %f58, 0f3EE66666;
+ mov.b32 %r89, %f524;
+ setp.lt.s32 %p65, %r89, 2139095040;
+ @%p65 bra BB0_45;
+
+ setp.gtu.f32 %p66, %f58, 0f7F800000;
+ @%p66 bra BB0_44;
+ bra.uni BB0_42;
+
+BB0_44:
+ add.f32 %f779, %f41, 0f3EE66666;
+ bra.uni BB0_45;
+
+BB0_42:
+ setp.neu.f32 %p67, %f58, 0f7F800000;
+ @%p67 bra BB0_45;
+
+ selp.f32 %f779, 0fFF800000, 0f7F800000, %p3;
+
+BB0_45:
+ mov.f32 %f754, 0fB5BFBE8E;
+ mov.f32 %f753, 0fBF317200;
+ mov.f32 %f752, 0f35BFBE8E;
+ mov.f32 %f751, 0f3F317200;
+ mov.f32 %f750, 0f3DAAAABD;
+ mov.f32 %f749, 0f3C4CAF63;
+ mov.f32 %f748, 0f3B18F0FE;
+ setp.eq.f32 %p68, %f41, 0f3F800000;
+ selp.f32 %f70, 0f3F800000, %f779, %p68;
+ abs.f32 %f71, %f42;
+ setp.lt.f32 %p69, %f71, 0f00800000;
+ mul.f32 %f527, %f71, 0f4B800000;
+ selp.f32 %f528, 0fC3170000, 0fC2FE0000, %p69;
+ selp.f32 %f529, %f527, %f71, %p69;
+ mov.b32 %r90, %f529;
+ and.b32 %r91, %r90, 8388607;
+ or.b32 %r92, %r91, 1065353216;
+ mov.b32 %f530, %r92;
+ shr.u32 %r93, %r90, 23;
+ cvt.rn.f32.u32 %f531, %r93;
+ add.f32 %f532, %f528, %f531;
+ setp.gt.f32 %p70, %f530, 0f3FB504F3;
+ mul.f32 %f533, %f530, 0f3F000000;
+ add.f32 %f534, %f532, 0f3F800000;
+ selp.f32 %f535, %f533, %f530, %p70;
+ selp.f32 %f536, %f534, %f532, %p70;
+ add.f32 %f537, %f535, 0fBF800000;
+ add.f32 %f526, %f535, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f525,%f526;
+ // inline asm
+ add.f32 %f538, %f537, %f537;
+ mul.f32 %f539, %f525, %f538;
+ mul.f32 %f540, %f539, %f539;
+ fma.rn.f32 %f543, %f748, %f540, %f749;
+ fma.rn.f32 %f545, %f543, %f540, %f750;
+ mul.rn.f32 %f546, %f545, %f540;
+ mul.rn.f32 %f547, %f546, %f539;
+ sub.f32 %f548, %f537, %f539;
+ neg.f32 %f549, %f539;
+ add.f32 %f550, %f548, %f548;
+ fma.rn.f32 %f551, %f549, %f537, %f550;
+ mul.rn.f32 %f552, %f525, %f551;
+ add.f32 %f553, %f547, %f539;
+ sub.f32 %f554, %f539, %f553;
+ add.f32 %f555, %f547, %f554;
+ add.f32 %f556, %f552, %f555;
+ add.f32 %f557, %f553, %f556;
+ sub.f32 %f558, %f553, %f557;
+ add.f32 %f559, %f556, %f558;
+ mul.rn.f32 %f561, %f536, %f751;
+ mul.rn.f32 %f563, %f536, %f752;
+ add.f32 %f564, %f561, %f557;
+ sub.f32 %f565, %f561, %f564;
+ add.f32 %f566, %f557, %f565;
+ add.f32 %f567, %f559, %f566;
+ add.f32 %f568, %f563, %f567;
+ add.f32 %f569, %f564, %f568;
+ sub.f32 %f570, %f564, %f569;
+ add.f32 %f571, %f568, %f570;
+ mul.rn.f32 %f573, %f494, %f569;
+ neg.f32 %f574, %f573;
+ fma.rn.f32 %f575, %f494, %f569, %f574;
+ fma.rn.f32 %f576, %f494, %f571, %f575;
+ fma.rn.f32 %f578, %f499, %f569, %f576;
+ add.rn.f32 %f579, %f573, %f578;
+ neg.f32 %f580, %f579;
+ add.rn.f32 %f581, %f573, %f580;
+ add.rn.f32 %f582, %f581, %f578;
+ mov.b32 %r94, %f579;
+ setp.eq.s32 %p71, %r94, 1118925336;
+ add.s32 %r95, %r94, -1;
+ mov.b32 %f583, %r95;
+ add.f32 %f584, %f582, 0f37000000;
+ selp.f32 %f585, %f583, %f579, %p71;
+ selp.f32 %f72, %f584, %f582, %p71;
+ mul.f32 %f586, %f585, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f587, %f586;
+ fma.rn.f32 %f589, %f587, %f753, %f585;
+ fma.rn.f32 %f591, %f587, %f754, %f589;
+ mul.f32 %f592, %f591, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f593, %f592;
+ add.f32 %f594, %f587, 0f00000000;
+ ex2.approx.f32 %f595, %f594;
+ mul.f32 %f596, %f593, %f595;
+ setp.lt.f32 %p72, %f585, 0fC2D20000;
+ selp.f32 %f597, 0f00000000, %f596, %p72;
+ setp.gt.f32 %p73, %f585, 0f42D20000;
+ selp.f32 %f780, 0f7F800000, %f597, %p73;
+ setp.eq.f32 %p74, %f780, 0f7F800000;
+ @%p74 bra BB0_47;
+
+ fma.rn.f32 %f780, %f780, %f72, %f780;
+
+BB0_47:
+ setp.lt.f32 %p75, %f42, 0f00000000;
+ and.pred %p4, %p75, %p60;
+ mov.b32 %r96, %f780;
+ xor.b32 %r97, %r96, -2147483648;
+ mov.b32 %f598, %r97;
+ selp.f32 %f782, %f598, %f780, %p4;
+ setp.eq.f32 %p77, %f42, 0f00000000;
+ @%p77 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f601, %f42, %f42;
+ selp.f32 %f782, %f601, 0f00000000, %p60;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p78, %f42, 0f00000000;
+ @%p78 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f600, %f494;
+ setp.neu.f32 %p79, %f600, 0f3EE66666;
+ selp.f32 %f782, 0f7FFFFFFF, %f782, %p79;
+
+BB0_51:
+ add.f32 %f602, %f71, 0f3EE66666;
+ mov.b32 %r98, %f602;
+ setp.lt.s32 %p81, %r98, 2139095040;
+ @%p81 bra BB0_56;
+
+ setp.gtu.f32 %p82, %f71, 0f7F800000;
+ @%p82 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f782, %f42, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p83, %f71, 0f7F800000;
+ @%p83 bra BB0_56;
+
+ selp.f32 %f782, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f761, 0fB5BFBE8E;
+ mov.f32 %f760, 0fBF317200;
+ mov.f32 %f759, 0f35BFBE8E;
+ mov.f32 %f758, 0f3F317200;
+ mov.f32 %f757, 0f3DAAAABD;
+ mov.f32 %f756, 0f3C4CAF63;
+ mov.f32 %f755, 0f3B18F0FE;
+ setp.eq.f32 %p84, %f42, 0f3F800000;
+ selp.f32 %f83, 0f3F800000, %f782, %p84;
+ abs.f32 %f84, %f43;
+ setp.lt.f32 %p85, %f84, 0f00800000;
+ mul.f32 %f605, %f84, 0f4B800000;
+ selp.f32 %f606, 0fC3170000, 0fC2FE0000, %p85;
+ selp.f32 %f607, %f605, %f84, %p85;
+ mov.b32 %r99, %f607;
+ and.b32 %r100, %r99, 8388607;
+ or.b32 %r101, %r100, 1065353216;
+ mov.b32 %f608, %r101;
+ shr.u32 %r102, %r99, 23;
+ cvt.rn.f32.u32 %f609, %r102;
+ add.f32 %f610, %f606, %f609;
+ setp.gt.f32 %p86, %f608, 0f3FB504F3;
+ mul.f32 %f611, %f608, 0f3F000000;
+ add.f32 %f612, %f610, 0f3F800000;
+ selp.f32 %f613, %f611, %f608, %p86;
+ selp.f32 %f614, %f612, %f610, %p86;
+ add.f32 %f615, %f613, 0fBF800000;
+ add.f32 %f604, %f613, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f603,%f604;
+ // inline asm
+ add.f32 %f616, %f615, %f615;
+ mul.f32 %f617, %f603, %f616;
+ mul.f32 %f618, %f617, %f617;
+ fma.rn.f32 %f621, %f755, %f618, %f756;
+ fma.rn.f32 %f623, %f621, %f618, %f757;
+ mul.rn.f32 %f624, %f623, %f618;
+ mul.rn.f32 %f625, %f624, %f617;
+ sub.f32 %f626, %f615, %f617;
+ neg.f32 %f627, %f617;
+ add.f32 %f628, %f626, %f626;
+ fma.rn.f32 %f629, %f627, %f615, %f628;
+ mul.rn.f32 %f630, %f603, %f629;
+ add.f32 %f631, %f625, %f617;
+ sub.f32 %f632, %f617, %f631;
+ add.f32 %f633, %f625, %f632;
+ add.f32 %f634, %f630, %f633;
+ add.f32 %f635, %f631, %f634;
+ sub.f32 %f636, %f631, %f635;
+ add.f32 %f637, %f634, %f636;
+ mul.rn.f32 %f639, %f614, %f758;
+ mul.rn.f32 %f641, %f614, %f759;
+ add.f32 %f642, %f639, %f635;
+ sub.f32 %f643, %f639, %f642;
+ add.f32 %f644, %f635, %f643;
+ add.f32 %f645, %f637, %f644;
+ add.f32 %f646, %f641, %f645;
+ add.f32 %f647, %f642, %f646;
+ sub.f32 %f648, %f642, %f647;
+ add.f32 %f649, %f646, %f648;
+ mul.rn.f32 %f651, %f494, %f647;
+ neg.f32 %f652, %f651;
+ fma.rn.f32 %f653, %f494, %f647, %f652;
+ fma.rn.f32 %f654, %f494, %f649, %f653;
+ fma.rn.f32 %f656, %f499, %f647, %f654;
+ add.rn.f32 %f657, %f651, %f656;
+ neg.f32 %f658, %f657;
+ add.rn.f32 %f659, %f651, %f658;
+ add.rn.f32 %f660, %f659, %f656;
+ mov.b32 %r103, %f657;
+ setp.eq.s32 %p87, %r103, 1118925336;
+ add.s32 %r104, %r103, -1;
+ mov.b32 %f661, %r104;
+ add.f32 %f662, %f660, 0f37000000;
+ selp.f32 %f663, %f661, %f657, %p87;
+ selp.f32 %f85, %f662, %f660, %p87;
+ mul.f32 %f664, %f663, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f665, %f664;
+ fma.rn.f32 %f667, %f665, %f760, %f663;
+ fma.rn.f32 %f669, %f665, %f761, %f667;
+ mul.f32 %f670, %f669, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f671, %f670;
+ add.f32 %f672, %f665, 0f00000000;
+ ex2.approx.f32 %f673, %f672;
+ mul.f32 %f674, %f671, %f673;
+ setp.lt.f32 %p88, %f663, 0fC2D20000;
+ selp.f32 %f675, 0f00000000, %f674, %p88;
+ setp.gt.f32 %p89, %f663, 0f42D20000;
+ selp.f32 %f783, 0f7F800000, %f675, %p89;
+ setp.eq.f32 %p90, %f783, 0f7F800000;
+ @%p90 bra BB0_58;
+
+ fma.rn.f32 %f783, %f783, %f85, %f783;
+
+BB0_58:
+ setp.lt.f32 %p91, %f43, 0f00000000;
+ and.pred %p5, %p91, %p60;
+ mov.b32 %r105, %f783;
+ xor.b32 %r106, %r105, -2147483648;
+ mov.b32 %f676, %r106;
+ selp.f32 %f785, %f676, %f783, %p5;
+ setp.eq.f32 %p93, %f43, 0f00000000;
+ @%p93 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f679, %f43, %f43;
+ selp.f32 %f785, %f679, 0f00000000, %p60;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p94, %f43, 0f00000000;
+ @%p94 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f678, %f494;
+ setp.neu.f32 %p95, %f678, 0f3EE66666;
+ selp.f32 %f785, 0f7FFFFFFF, %f785, %p95;
+
+BB0_62:
+ add.f32 %f680, %f84, 0f3EE66666;
+ mov.b32 %r107, %f680;
+ setp.lt.s32 %p97, %r107, 2139095040;
+ @%p97 bra BB0_67;
+
+ setp.gtu.f32 %p98, %f84, 0f7F800000;
+ @%p98 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f785, %f43, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p99, %f84, 0f7F800000;
+ @%p99 bra BB0_67;
+
+ selp.f32 %f785, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ setp.eq.f32 %p100, %f43, 0f3F800000;
+ selp.f32 %f681, 0f3F800000, %f785, %p100;
+ cvt.u64.u32 %rd36, %r3;
+ cvt.u64.u32 %rd35, %r2;
+ mov.u64 %rd39, image;
+ cvta.global.u64 %rd34, %rd39;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r24, %r25, %rd35, %rd36, %rd15, %rd15);
+ // inline asm
+ cvt.sat.f32.f32 %f682, %f681;
+ mul.f32 %f683, %f682, 0f437FFD71;
+ cvt.rzi.u32.f32 %r110, %f683;
+ cvt.sat.f32.f32 %f684, %f83;
+ mul.f32 %f685, %f684, 0f437FFD71;
+ cvt.rzi.u32.f32 %r111, %f685;
+ cvt.sat.f32.f32 %f686, %f70;
+ mul.f32 %f687, %f686, 0f437FFD71;
+ cvt.rzi.u32.f32 %r112, %f687;
+ cvt.u16.u32 %rs13, %r110;
+ cvt.u16.u32 %rs14, %r112;
+ cvt.u16.u32 %rs15, %r111;
+ mov.u16 %rs16, 255;
+ st.v4.u8 [%rd33], {%rs13, %rs15, %rs14, %rs16};
+ ld.global.u32 %r163, [imageEnabled];
+
+BB0_68:
+ and.b32 %r113, %r163, 4;
+ setp.eq.s32 %p101, %r113, 0;
+ @%p101 bra BB0_72;
+
+ ld.global.u32 %r114, [additive];
+ setp.eq.s32 %p102, %r114, 0;
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ mov.f32 %f688, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs17, %f688;}
+
+ // inline asm
+ @%p102 bra BB0_71;
+
+ mov.u64 %rd52, image_HDR;
+ cvta.global.u64 %rd41, %rd52;
+ mov.u32 %r118, 8;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r24, %r118, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs24, %rs25, %rs26, %rs27}, [%rd40];
+ // inline asm
+ { cvt.f32.f16 %f689, %rs24;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f690, %rs25;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f691, %rs26;}
+
+ // inline asm
+ // inline asm
+ call (%rd46), _rt_buffer_get_64, (%rd41, %r24, %r118, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f692, %f41, %f689;
+ add.f32 %f693, %f42, %f690;
+ add.f32 %f694, %f43, %f691;
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f694;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f693;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs21, %f692;}
+
+ // inline asm
+ st.v4.u16 [%rd46], {%rs21, %rs22, %rs23, %rs17};
+ bra.uni BB0_72;
+
+BB0_71:
+ mov.u64 %rd59, image_HDR;
+ cvta.global.u64 %rd54, %rd59;
+ mov.u32 %r120, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r24, %r120, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f43;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f42;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f41;}
+
+ // inline asm
+ st.v4.u16 [%rd53], {%rs28, %rs29, %rs30, %rs17};
+
+BB0_72:
+ ld.global.u8 %rs31, [imageEnabled];
+ and.b16 %rs32, %rs31, 64;
+ setp.eq.s16 %p103, %rs32, 0;
+ @%p103 bra BB0_94;
+
+ cvt.u64.u32 %rd62, %r2;
+ cvt.u64.u32 %rd63, %r3;
+ mov.u64 %rd66, image_Dir;
+ cvta.global.u64 %rd61, %rd66;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r24, %r25, %rd62, %rd63, %rd15, %rd15);
+ // inline asm
+ fma.rn.f32 %f698, %f10, 0f3F000000, 0f3F000000;
+ mul.f32 %f699, %f698, 0f437F0000;
+ cvt.rzi.u32.f32 %r123, %f699;
+ fma.rn.f32 %f700, %f11, 0f3F000000, 0f3F000000;
+ mul.f32 %f701, %f700, 0f437F0000;
+ cvt.rzi.u32.f32 %r124, %f701;
+ fma.rn.f32 %f702, %f12, 0f3F000000, 0f3F000000;
+ mul.f32 %f703, %f702, 0f437F0000;
+ cvt.rzi.u32.f32 %r125, %f703;
+ cvt.u16.u32 %rs33, %r125;
+ cvt.u16.u32 %rs34, %r124;
+ cvt.u16.u32 %rs35, %r123;
+ mov.u16 %rs36, 255;
+ st.v4.u8 [%rd60], {%rs35, %rs34, %rs33, %rs36};
+
+BB0_94:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLight.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLight.ptx.meta
new file mode 100644
index 00000000..539f94be
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLight.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 592b07918f0531c4cb302248f921a07b
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightProbeSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightProbeSH.ptx
new file mode 100644
index 00000000..442d9b4f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightProbeSH.ptx
@@ -0,0 +1,2305 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .u32 lightCookie;
+.global .align 4 .b8 lightMatrix[36];
+.global .align 4 .f32 lightFOV;
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightCookieE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightMatrixE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightFOVE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename11lightCookieE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename11lightMatrixE[10] = {77, 97, 116, 114, 105, 120, 51, 120, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightFOVE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightCookieE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightMatrixE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightFOVE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightCookieE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightMatrixE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightFOVE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightCookieE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightMatrixE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightFOVE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<123>;
+ .reg .b16 %rs<221>;
+ .reg .f32 %f<896>;
+ .reg .b32 %r<244>;
+ .reg .b64 %rd<369>;
+
+
+ mov.u64 %rd368, __local_depot0;
+ cvta.local.u64 %SP, %rd368;
+ ld.global.v2.u32 {%r26, %r27}, [pixelID];
+ cvt.u64.u32 %rd12, %r26;
+ cvt.u64.u32 %rd13, %r27;
+ mov.u64 %rd16, uvnormal;
+ cvta.global.u64 %rd11, %rd16;
+ mov.u32 %r24, 2;
+ mov.u32 %r25, 4;
+ mov.u64 %rd15, 0;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r24, %r25, %rd12, %rd13, %rd15, %rd15);
+ // inline asm
+ ld.u32 %r1, [%rd10];
+ shr.u32 %r30, %r1, 16;
+ cvt.u16.u32 %rs1, %r30;
+ and.b16 %rs12, %rs1, 255;
+ cvt.u16.u32 %rs13, %r1;
+ or.b16 %rs14, %rs13, %rs12;
+ setp.eq.s16 %p6, %rs14, 0;
+ mov.f32 %f875, 0f00000000;
+ mov.f32 %f876, %f875;
+ mov.f32 %f877, %f875;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs15, [%rd10+1];
+ and.b16 %rs17, %rs13, 255;
+ cvt.rn.f32.u16 %f106, %rs17;
+ div.rn.f32 %f107, %f106, 0f437F0000;
+ fma.rn.f32 %f108, %f107, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f109, %rs15;
+ div.rn.f32 %f110, %f109, 0f437F0000;
+ fma.rn.f32 %f111, %f110, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f112, %rs12;
+ div.rn.f32 %f113, %f112, 0f437F0000;
+ fma.rn.f32 %f114, %f113, 0f40000000, 0fBF800000;
+ mul.f32 %f115, %f111, %f111;
+ fma.rn.f32 %f116, %f108, %f108, %f115;
+ fma.rn.f32 %f117, %f114, %f114, %f116;
+ sqrt.rn.f32 %f118, %f117;
+ rcp.rn.f32 %f119, %f118;
+ mul.f32 %f875, %f108, %f119;
+ mul.f32 %f876, %f111, %f119;
+ mul.f32 %f877, %f114, %f119;
+
+BB0_2:
+ ld.global.v2.u32 {%r31, %r32}, [pixelID];
+ ld.global.v2.u32 {%r34, %r35}, [tileInfo];
+ add.s32 %r2, %r31, %r34;
+ add.s32 %r3, %r32, %r35;
+ setp.eq.f32 %p7, %f876, 0f00000000;
+ setp.eq.f32 %p8, %f875, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f877, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_104;
+ bra.uni BB0_3;
+
+BB0_104:
+ ld.global.u32 %r243, [imageEnabled];
+ and.b32 %r192, %r243, 1;
+ setp.eq.b32 %p115, %r192, 1;
+ @!%p115 bra BB0_106;
+ bra.uni BB0_105;
+
+BB0_105:
+ cvt.u64.u32 %rd256, %r2;
+ cvt.u64.u32 %rd257, %r3;
+ mov.u64 %rd260, image;
+ cvta.global.u64 %rd255, %rd260;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r24, %r25, %rd256, %rd257, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs153, 0;
+ st.v4.u8 [%rd254], {%rs153, %rs153, %rs153, %rs153};
+ ld.global.u32 %r243, [imageEnabled];
+
+BB0_106:
+ and.b32 %r195, %r243, 8;
+ setp.eq.s32 %p116, %r195, 0;
+ @%p116 bra BB0_108;
+
+ cvt.u64.u32 %rd264, %r3;
+ cvt.u64.u32 %rd263, %r2;
+ mov.u64 %rd267, image_Mask;
+ cvta.global.u64 %rd262, %rd267;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r24, %r24, %rd263, %rd264, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f791, 0f00000000;
+ cvt.rzi.u32.f32 %r198, %f791;
+ cvt.u16.u32 %rs154, %r198;
+ mov.u16 %rs155, 0;
+ st.v2.u8 [%rd261], {%rs154, %rs155};
+ ld.global.u32 %r243, [imageEnabled];
+
+BB0_108:
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ and.b32 %r199, %r243, 4;
+ setp.eq.s32 %p117, %r199, 0;
+ @%p117 bra BB0_112;
+
+ ld.global.u32 %r200, [additive];
+ setp.eq.s32 %p118, %r200, 0;
+ @%p118 bra BB0_111;
+
+ mov.u64 %rd280, image_HDR;
+ cvta.global.u64 %rd269, %rd280;
+ mov.u32 %r204, 8;
+ // inline asm
+ call (%rd268), _rt_buffer_get_64, (%rd269, %r24, %r204, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs162, %rs163, %rs164, %rs165}, [%rd268];
+ // inline asm
+ { cvt.f32.f16 %f792, %rs162;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f793, %rs163;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f794, %rs164;}
+
+ // inline asm
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd269, %r24, %r204, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f795, %f792, 0f00000000;
+ add.f32 %f796, %f793, 0f00000000;
+ add.f32 %f797, %f794, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs161, %f797;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs160, %f796;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs159, %f795;}
+
+ // inline asm
+ mov.u16 %rs166, 0;
+ st.v4.u16 [%rd274], {%rs159, %rs160, %rs161, %rs166};
+ bra.uni BB0_112;
+
+BB0_3:
+ ld.global.v2.u32 {%r41, %r42}, [pixelID];
+ cvt.u64.u32 %rd19, %r41;
+ cvt.u64.u32 %rd20, %r42;
+ mov.u64 %rd23, uvpos;
+ cvta.global.u64 %rd18, %rd23;
+ mov.u32 %r40, 12;
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd18, %r24, %r40, %rd19, %rd20, %rd15, %rd15);
+ // inline asm
+ ld.global.f32 %f122, [lightPos];
+ ld.f32 %f9, [%rd17+8];
+ ld.f32 %f8, [%rd17+4];
+ ld.f32 %f7, [%rd17];
+ sub.f32 %f123, %f122, %f7;
+ ld.global.f32 %f124, [lightPos+4];
+ sub.f32 %f125, %f124, %f8;
+ ld.global.f32 %f126, [lightPos+8];
+ sub.f32 %f127, %f126, %f9;
+ mul.f32 %f128, %f125, %f125;
+ fma.rn.f32 %f129, %f123, %f123, %f128;
+ fma.rn.f32 %f130, %f127, %f127, %f129;
+ sqrt.rn.f32 %f131, %f130;
+ rcp.rn.f32 %f132, %f131;
+ mul.f32 %f10, %f123, %f132;
+ mul.f32 %f11, %f125, %f132;
+ mul.f32 %f12, %f127, %f132;
+ ld.global.f32 %f133, [lightFalloffFakeDistanceMult];
+ mul.f32 %f13, %f131, %f133;
+ ld.global.f32 %f134, [lightInvCutoff];
+ mul.f32 %f14, %f131, %f134;
+ mov.f32 %f138, 0f40800000;
+ abs.f32 %f16, %f14;
+ setp.lt.f32 %p12, %f16, 0f00800000;
+ mul.f32 %f140, %f16, 0f4B800000;
+ selp.f32 %f141, 0fC3170000, 0fC2FE0000, %p12;
+ selp.f32 %f142, %f140, %f16, %p12;
+ mov.b32 %r45, %f142;
+ and.b32 %r46, %r45, 8388607;
+ or.b32 %r47, %r46, 1065353216;
+ mov.b32 %f143, %r47;
+ shr.u32 %r48, %r45, 23;
+ cvt.rn.f32.u32 %f144, %r48;
+ add.f32 %f145, %f141, %f144;
+ setp.gt.f32 %p13, %f143, 0f3FB504F3;
+ mul.f32 %f146, %f143, 0f3F000000;
+ add.f32 %f147, %f145, 0f3F800000;
+ selp.f32 %f148, %f146, %f143, %p13;
+ selp.f32 %f149, %f147, %f145, %p13;
+ add.f32 %f150, %f148, 0fBF800000;
+ add.f32 %f121, %f148, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f120,%f121;
+ // inline asm
+ add.f32 %f151, %f150, %f150;
+ mul.f32 %f152, %f120, %f151;
+ mul.f32 %f153, %f152, %f152;
+ mov.f32 %f154, 0f3C4CAF63;
+ mov.f32 %f155, 0f3B18F0FE;
+ fma.rn.f32 %f156, %f155, %f153, %f154;
+ mov.f32 %f157, 0f3DAAAABD;
+ fma.rn.f32 %f158, %f156, %f153, %f157;
+ mul.rn.f32 %f159, %f158, %f153;
+ mul.rn.f32 %f160, %f159, %f152;
+ sub.f32 %f161, %f150, %f152;
+ neg.f32 %f162, %f152;
+ add.f32 %f163, %f161, %f161;
+ fma.rn.f32 %f164, %f162, %f150, %f163;
+ mul.rn.f32 %f165, %f120, %f164;
+ add.f32 %f166, %f160, %f152;
+ sub.f32 %f167, %f152, %f166;
+ add.f32 %f168, %f160, %f167;
+ add.f32 %f169, %f165, %f168;
+ add.f32 %f170, %f166, %f169;
+ sub.f32 %f171, %f166, %f170;
+ add.f32 %f172, %f169, %f171;
+ mov.f32 %f173, 0f3F317200;
+ mul.rn.f32 %f174, %f149, %f173;
+ mov.f32 %f175, 0f35BFBE8E;
+ mul.rn.f32 %f176, %f149, %f175;
+ add.f32 %f177, %f174, %f170;
+ sub.f32 %f178, %f174, %f177;
+ add.f32 %f179, %f170, %f178;
+ add.f32 %f180, %f172, %f179;
+ add.f32 %f181, %f176, %f180;
+ add.f32 %f182, %f177, %f181;
+ sub.f32 %f183, %f177, %f182;
+ add.f32 %f184, %f181, %f183;
+ mul.rn.f32 %f185, %f138, %f182;
+ neg.f32 %f186, %f185;
+ fma.rn.f32 %f187, %f138, %f182, %f186;
+ fma.rn.f32 %f188, %f138, %f184, %f187;
+ mov.f32 %f189, 0f00000000;
+ fma.rn.f32 %f190, %f189, %f182, %f188;
+ add.rn.f32 %f191, %f185, %f190;
+ neg.f32 %f192, %f191;
+ add.rn.f32 %f193, %f185, %f192;
+ add.rn.f32 %f194, %f193, %f190;
+ mov.b32 %r49, %f191;
+ setp.eq.s32 %p14, %r49, 1118925336;
+ add.s32 %r50, %r49, -1;
+ mov.b32 %f195, %r50;
+ add.f32 %f196, %f194, 0f37000000;
+ selp.f32 %f197, %f195, %f191, %p14;
+ selp.f32 %f17, %f196, %f194, %p14;
+ mul.f32 %f198, %f197, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f199, %f198;
+ mov.f32 %f200, 0fBF317200;
+ fma.rn.f32 %f201, %f199, %f200, %f197;
+ mov.f32 %f202, 0fB5BFBE8E;
+ fma.rn.f32 %f203, %f199, %f202, %f201;
+ mul.f32 %f204, %f203, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f205, %f204;
+ add.f32 %f206, %f199, 0f00000000;
+ ex2.approx.f32 %f207, %f206;
+ mul.f32 %f208, %f205, %f207;
+ setp.lt.f32 %p15, %f197, 0fC2D20000;
+ selp.f32 %f209, 0f00000000, %f208, %p15;
+ setp.gt.f32 %p16, %f197, 0f42D20000;
+ selp.f32 %f878, 0f7F800000, %f209, %p16;
+ setp.eq.f32 %p17, %f878, 0f7F800000;
+ @%p17 bra BB0_5;
+
+ fma.rn.f32 %f878, %f878, %f17, %f878;
+
+BB0_5:
+ mov.f32 %f832, 0f40000000;
+ cvt.rzi.f32.f32 %f831, %f832;
+ add.f32 %f830, %f831, %f831;
+ mov.f32 %f829, 0f40800000;
+ sub.f32 %f828, %f829, %f830;
+ abs.f32 %f827, %f828;
+ setp.lt.f32 %p18, %f14, 0f00000000;
+ setp.eq.f32 %p19, %f827, 0f3F800000;
+ and.pred %p1, %p18, %p19;
+ mov.b32 %r51, %f878;
+ xor.b32 %r52, %r51, -2147483648;
+ mov.b32 %f210, %r52;
+ selp.f32 %f880, %f210, %f878, %p1;
+ setp.eq.f32 %p20, %f14, 0f00000000;
+ @%p20 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f213, %f14, %f14;
+ selp.f32 %f880, %f213, 0f00000000, %p19;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p21, %f14, 0f00000000;
+ @%p21 bra BB0_9;
+
+ mov.f32 %f866, 0f40800000;
+ cvt.rzi.f32.f32 %f212, %f866;
+ setp.neu.f32 %p22, %f212, 0f40800000;
+ selp.f32 %f880, 0f7FFFFFFF, %f880, %p22;
+
+BB0_9:
+ abs.f32 %f833, %f14;
+ add.f32 %f214, %f833, 0f40800000;
+ mov.b32 %r53, %f214;
+ setp.lt.s32 %p24, %r53, 2139095040;
+ @%p24 bra BB0_14;
+
+ abs.f32 %f864, %f14;
+ setp.gtu.f32 %p25, %f864, 0f7F800000;
+ @%p25 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f880, %f14, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f865, %f14;
+ setp.neu.f32 %p26, %f865, 0f7F800000;
+ @%p26 bra BB0_14;
+
+ selp.f32 %f880, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ mov.f32 %f834, 0f00000000;
+ mov.f32 %f883, 0f3F800000;
+ sub.f32 %f224, %f883, %f880;
+ setp.eq.f32 %p27, %f14, 0f3F800000;
+ selp.f32 %f225, 0f00000000, %f224, %p27;
+ cvt.sat.f32.f32 %f226, %f225;
+ ld.global.f32 %f227, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f228, %f13, %f13, %f227;
+ div.rn.f32 %f28, %f226, %f228;
+ mul.f32 %f229, %f876, %f11;
+ fma.rn.f32 %f230, %f875, %f10, %f229;
+ fma.rn.f32 %f231, %f877, %f12, %f230;
+ ld.global.u32 %r56, [imageEnabled];
+ and.b32 %r57, %r56, 32;
+ ld.global.u32 %r58, [ignoreNormal];
+ or.b32 %r59, %r57, %r58;
+ setp.eq.s32 %p28, %r59, 0;
+ selp.f32 %f29, %f231, 0f3F800000, %p28;
+ ld.global.f32 %f232, [lightMatrix+24];
+ mul.f32 %f233, %f10, %f232;
+ ld.global.f32 %f234, [lightMatrix+28];
+ mul.f32 %f235, %f11, %f234;
+ neg.f32 %f236, %f235;
+ sub.f32 %f237, %f236, %f233;
+ ld.global.f32 %f238, [lightMatrix+32];
+ mul.f32 %f239, %f12, %f238;
+ sub.f32 %f240, %f237, %f239;
+ setp.gt.f32 %p29, %f240, 0f00000000;
+ ld.global.f32 %f241, [lightMatrix];
+ mul.f32 %f242, %f241, %f10;
+ sub.f32 %f243, %f834, %f242;
+ ld.global.f32 %f244, [lightMatrix+4];
+ mul.f32 %f245, %f244, %f11;
+ sub.f32 %f246, %f243, %f245;
+ ld.global.f32 %f247, [lightMatrix+8];
+ mul.f32 %f248, %f247, %f12;
+ sub.f32 %f249, %f246, %f248;
+ selp.f32 %f250, 0f3F800000, 0f00000000, %p29;
+ ld.global.f32 %f251, [lightMatrix+12];
+ mul.f32 %f252, %f251, %f10;
+ sub.f32 %f253, %f834, %f252;
+ ld.global.f32 %f254, [lightMatrix+16];
+ mul.f32 %f255, %f254, %f11;
+ sub.f32 %f256, %f253, %f255;
+ ld.global.f32 %f257, [lightMatrix+20];
+ mul.f32 %f258, %f257, %f12;
+ sub.f32 %f259, %f256, %f258;
+ ld.global.u32 %r54, [lightCookie];
+ ld.global.f32 %f260, [lightFOV];
+ fma.rn.f32 %f219, %f249, %f260, 0f3F000000;
+ fma.rn.f32 %f220, %f259, %f260, 0f3F000000;
+ // inline asm
+ call (%f215, %f216, %f217, %f218), _rt_texture_get_f_id, (%r54, %r24, %f219, %f220, %f834, %f834);
+ // inline asm
+ max.f32 %f261, %f215, %f216;
+ max.f32 %f262, %f261, %f217;
+ mul.f32 %f263, %f250, %f262;
+ mul.f32 %f264, %f28, %f263;
+ ld.global.f32 %f265, [lightColor+4];
+ ld.global.f32 %f266, [lightColor];
+ max.f32 %f267, %f266, %f265;
+ ld.global.f32 %f268, [lightColor+8];
+ max.f32 %f269, %f267, %f268;
+ mul.f32 %f270, %f264, %f269;
+ setp.lt.f32 %p30, %f270, 0f3727C5AC;
+ @%p30 bra BB0_84;
+ bra.uni BB0_15;
+
+BB0_84:
+ ld.global.u32 %r241, [imageEnabled];
+ and.b32 %r149, %r241, 1;
+ setp.eq.b32 %p107, %r149, 1;
+ @!%p107 bra BB0_86;
+ bra.uni BB0_85;
+
+BB0_85:
+ cvt.u64.u32 %rd142, %r2;
+ cvt.u64.u32 %rd143, %r3;
+ mov.u64 %rd146, image;
+ cvta.global.u64 %rd141, %rd146;
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd141, %r24, %r25, %rd142, %rd143, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs89, 1;
+ mov.u16 %rs90, 0;
+ st.v4.u8 [%rd140], {%rs90, %rs90, %rs90, %rs89};
+ ld.global.u32 %r241, [imageEnabled];
+
+BB0_86:
+ and.b32 %r152, %r241, 8;
+ setp.eq.s32 %p108, %r152, 0;
+ @%p108 bra BB0_88;
+
+ cvt.u64.u32 %rd150, %r3;
+ cvt.u64.u32 %rd149, %r2;
+ mov.u64 %rd153, image_Mask;
+ cvta.global.u64 %rd148, %rd153;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r24, %r24, %rd149, %rd150, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f748, 0f00000000;
+ cvt.rzi.u32.f32 %r155, %f748;
+ cvt.u16.u32 %rs91, %r155;
+ mov.u16 %rs92, 255;
+ st.v2.u8 [%rd147], {%rs91, %rs92};
+ ld.global.u32 %r241, [imageEnabled];
+
+BB0_88:
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ and.b32 %r156, %r241, 4;
+ setp.eq.s32 %p109, %r156, 0;
+ @%p109 bra BB0_92;
+
+ ld.global.u32 %r157, [additive];
+ setp.eq.s32 %p110, %r157, 0;
+ mov.f32 %f749, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f749;}
+
+ // inline asm
+ @%p110 bra BB0_91;
+
+ mov.u64 %rd166, image_HDR;
+ cvta.global.u64 %rd155, %rd166;
+ mov.u32 %r161, 8;
+ // inline asm
+ call (%rd154), _rt_buffer_get_64, (%rd155, %r24, %r161, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs100, %rs101, %rs102, %rs103}, [%rd154];
+ // inline asm
+ { cvt.f32.f16 %f750, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f751, %rs101;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f752, %rs102;}
+
+ // inline asm
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd155, %r24, %r161, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f753, %f750, 0f00000000;
+ add.f32 %f754, %f751, 0f00000000;
+ add.f32 %f755, %f752, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f755;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f754;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f753;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs97, %rs98, %rs99, %rs93};
+ bra.uni BB0_92;
+
+BB0_15:
+ mov.f32 %f882, 0f00000000;
+ mul.f32 %f272, %f7, 0f3456BF95;
+ abs.f32 %f273, %f875;
+ div.rn.f32 %f274, %f272, %f273;
+ abs.f32 %f275, %f876;
+ mul.f32 %f276, %f8, 0f3456BF95;
+ div.rn.f32 %f277, %f276, %f275;
+ abs.f32 %f278, %f877;
+ mul.f32 %f279, %f9, 0f3456BF95;
+ div.rn.f32 %f280, %f279, %f278;
+ abs.f32 %f281, %f274;
+ abs.f32 %f282, %f277;
+ abs.f32 %f283, %f280;
+ mov.f32 %f284, 0f38D1B717;
+ max.f32 %f285, %f281, %f284;
+ max.f32 %f286, %f282, %f284;
+ max.f32 %f287, %f283, %f284;
+ fma.rn.f32 %f33, %f875, %f285, %f7;
+ fma.rn.f32 %f34, %f876, %f286, %f8;
+ fma.rn.f32 %f35, %f877, %f287, %f9;
+ ld.global.u32 %r237, [samples];
+ setp.lt.s32 %p31, %r237, 1;
+ @%p31 bra BB0_18;
+
+ mul.f32 %f289, %f33, 0f3456BF95;
+ abs.f32 %f290, %f289;
+ mul.f32 %f291, %f34, 0f3456BF95;
+ abs.f32 %f292, %f291;
+ mul.f32 %f293, %f35, 0f3456BF95;
+ abs.f32 %f294, %f293;
+ max.f32 %f295, %f290, %f292;
+ max.f32 %f296, %f295, %f294;
+ max.f32 %f36, %f296, %f284;
+ add.u64 %rd24, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd24;
+ mov.f32 %f882, 0f00000000;
+ mov.u32 %r236, 0;
+
+BB0_17:
+ cvt.rn.f32.s32 %f306, %r236;
+ mul.f32 %f307, %f306, 0f3DD32618;
+ cvt.rmi.f32.f32 %f308, %f307;
+ sub.f32 %f309, %f307, %f308;
+ mul.f32 %f310, %f306, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f311, %f310;
+ sub.f32 %f312, %f310, %f311;
+ mul.f32 %f313, %f306, 0f3DC74539;
+ cvt.rmi.f32.f32 %f314, %f313;
+ sub.f32 %f315, %f313, %f314;
+ add.f32 %f316, %f312, 0f4199851F;
+ add.f32 %f317, %f315, 0f4199851F;
+ add.f32 %f318, %f309, 0f4199851F;
+ mul.f32 %f319, %f312, %f317;
+ fma.rn.f32 %f320, %f309, %f316, %f319;
+ fma.rn.f32 %f321, %f318, %f315, %f320;
+ add.f32 %f322, %f309, %f321;
+ add.f32 %f323, %f312, %f321;
+ add.f32 %f324, %f315, %f321;
+ add.f32 %f325, %f322, %f323;
+ mul.f32 %f326, %f324, %f325;
+ cvt.rmi.f32.f32 %f327, %f326;
+ sub.f32 %f328, %f326, %f327;
+ add.f32 %f329, %f322, %f324;
+ mul.f32 %f330, %f323, %f329;
+ cvt.rmi.f32.f32 %f331, %f330;
+ sub.f32 %f332, %f330, %f331;
+ add.f32 %f333, %f323, %f324;
+ mul.f32 %f334, %f322, %f333;
+ cvt.rmi.f32.f32 %f335, %f334;
+ sub.f32 %f336, %f334, %f335;
+ fma.rn.f32 %f337, %f328, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f338, %f332, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f339, %f336, 0f40000000, 0fBF800000;
+ ld.global.f32 %f340, [lightRadius];
+ ld.global.f32 %f341, [lightPos];
+ fma.rn.f32 %f342, %f340, %f337, %f341;
+ ld.global.f32 %f343, [lightPos+4];
+ fma.rn.f32 %f344, %f340, %f338, %f343;
+ ld.global.f32 %f345, [lightPos+8];
+ fma.rn.f32 %f346, %f340, %f339, %f345;
+ sub.f32 %f347, %f342, %f7;
+ sub.f32 %f348, %f344, %f8;
+ sub.f32 %f349, %f346, %f9;
+ mul.f32 %f350, %f348, %f348;
+ fma.rn.f32 %f351, %f347, %f347, %f350;
+ fma.rn.f32 %f352, %f349, %f349, %f351;
+ sqrt.rn.f32 %f305, %f352;
+ rcp.rn.f32 %f353, %f305;
+ mul.f32 %f301, %f353, %f347;
+ mul.f32 %f302, %f353, %f348;
+ mul.f32 %f303, %f353, %f349;
+ ld.global.u32 %r64, [imageEnabled];
+ and.b32 %r65, %r64, 32;
+ setp.eq.s32 %p32, %r65, 0;
+ selp.f32 %f354, 0f3F800000, 0f41200000, %p32;
+ mul.f32 %f304, %f354, %f36;
+ mov.u32 %r66, 1065353216;
+ st.local.u32 [%rd2], %r66;
+ ld.global.u32 %r61, [root];
+ mov.u32 %r62, 1;
+ // inline asm
+ call _rt_trace_64, (%r61, %f33, %f34, %f35, %f301, %f302, %f303, %r62, %f304, %f305, %rd24, %r25);
+ // inline asm
+ ld.local.f32 %f355, [%rd2];
+ add.f32 %f882, %f882, %f355;
+ ld.global.u32 %r237, [samples];
+ add.s32 %r236, %r236, 1;
+ setp.lt.s32 %p33, %r236, %r237;
+ @%p33 bra BB0_17;
+
+BB0_18:
+ setp.eq.s32 %p34, %r237, 0;
+ @%p34 bra BB0_20;
+
+ cvt.rn.f32.s32 %f357, %r237;
+ div.rn.f32 %f883, %f882, %f357;
+
+BB0_20:
+ cvt.sat.f32.f32 %f358, %f29;
+ mul.f32 %f359, %f28, %f358;
+ mul.f32 %f360, %f883, %f359;
+ ld.global.f32 %f361, [lightColor];
+ mul.f32 %f362, %f361, %f360;
+ ld.global.f32 %f363, [lightColor+4];
+ mul.f32 %f364, %f363, %f360;
+ ld.global.f32 %f365, [lightColor+8];
+ mul.f32 %f366, %f360, %f365;
+ mul.f32 %f42, %f215, %f362;
+ mul.f32 %f43, %f216, %f364;
+ mul.f32 %f44, %f217, %f366;
+ ld.global.u32 %r239, [imageEnabled];
+ and.b32 %r67, %r239, 8;
+ setp.eq.s32 %p35, %r67, 0;
+ @%p35 bra BB0_33;
+
+ mov.f32 %f842, 0fB5BFBE8E;
+ mov.f32 %f841, 0fBF317200;
+ mov.f32 %f840, 0f35BFBE8E;
+ mov.f32 %f839, 0f3F317200;
+ mov.f32 %f838, 0f3DAAAABD;
+ mov.f32 %f837, 0f3C4CAF63;
+ mov.f32 %f836, 0f3B18F0FE;
+ cvt.u64.u32 %rd28, %r2;
+ cvt.u64.u32 %rd29, %r3;
+ mov.u64 %rd32, image_Mask;
+ cvta.global.u64 %rd27, %rd32;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r24, %r24, %rd28, %rd29, %rd15, %rd15);
+ // inline asm
+ abs.f32 %f46, %f883;
+ setp.lt.f32 %p36, %f46, 0f00800000;
+ mul.f32 %f372, %f46, 0f4B800000;
+ selp.f32 %f373, 0fC3170000, 0fC2FE0000, %p36;
+ selp.f32 %f374, %f372, %f46, %p36;
+ mov.b32 %r70, %f374;
+ and.b32 %r71, %r70, 8388607;
+ or.b32 %r72, %r71, 1065353216;
+ mov.b32 %f375, %r72;
+ shr.u32 %r73, %r70, 23;
+ cvt.rn.f32.u32 %f376, %r73;
+ add.f32 %f377, %f373, %f376;
+ setp.gt.f32 %p37, %f375, 0f3FB504F3;
+ mul.f32 %f378, %f375, 0f3F000000;
+ add.f32 %f379, %f377, 0f3F800000;
+ selp.f32 %f380, %f378, %f375, %p37;
+ selp.f32 %f381, %f379, %f377, %p37;
+ add.f32 %f382, %f380, 0fBF800000;
+ add.f32 %f368, %f380, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f367,%f368;
+ // inline asm
+ add.f32 %f383, %f382, %f382;
+ mul.f32 %f384, %f367, %f383;
+ mul.f32 %f385, %f384, %f384;
+ fma.rn.f32 %f388, %f836, %f385, %f837;
+ fma.rn.f32 %f390, %f388, %f385, %f838;
+ mul.rn.f32 %f391, %f390, %f385;
+ mul.rn.f32 %f392, %f391, %f384;
+ sub.f32 %f393, %f382, %f384;
+ neg.f32 %f394, %f384;
+ add.f32 %f395, %f393, %f393;
+ fma.rn.f32 %f396, %f394, %f382, %f395;
+ mul.rn.f32 %f397, %f367, %f396;
+ add.f32 %f398, %f392, %f384;
+ sub.f32 %f399, %f384, %f398;
+ add.f32 %f400, %f392, %f399;
+ add.f32 %f401, %f397, %f400;
+ add.f32 %f402, %f398, %f401;
+ sub.f32 %f403, %f398, %f402;
+ add.f32 %f404, %f401, %f403;
+ mul.rn.f32 %f406, %f381, %f839;
+ mul.rn.f32 %f408, %f381, %f840;
+ add.f32 %f409, %f406, %f402;
+ sub.f32 %f410, %f406, %f409;
+ add.f32 %f411, %f402, %f410;
+ add.f32 %f412, %f404, %f411;
+ add.f32 %f413, %f408, %f412;
+ add.f32 %f414, %f409, %f413;
+ sub.f32 %f415, %f409, %f414;
+ add.f32 %f416, %f413, %f415;
+ mov.f32 %f417, 0f3EE8BA2E;
+ mul.rn.f32 %f418, %f417, %f414;
+ neg.f32 %f419, %f418;
+ fma.rn.f32 %f420, %f417, %f414, %f419;
+ fma.rn.f32 %f421, %f417, %f416, %f420;
+ mov.f32 %f422, 0f00000000;
+ fma.rn.f32 %f423, %f422, %f414, %f421;
+ add.rn.f32 %f424, %f418, %f423;
+ neg.f32 %f425, %f424;
+ add.rn.f32 %f426, %f418, %f425;
+ add.rn.f32 %f427, %f426, %f423;
+ mov.b32 %r74, %f424;
+ setp.eq.s32 %p38, %r74, 1118925336;
+ add.s32 %r75, %r74, -1;
+ mov.b32 %f428, %r75;
+ add.f32 %f429, %f427, 0f37000000;
+ selp.f32 %f430, %f428, %f424, %p38;
+ selp.f32 %f47, %f429, %f427, %p38;
+ mul.f32 %f431, %f430, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f432, %f431;
+ fma.rn.f32 %f434, %f432, %f841, %f430;
+ fma.rn.f32 %f436, %f432, %f842, %f434;
+ mul.f32 %f437, %f436, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f438, %f437;
+ add.f32 %f439, %f432, 0f00000000;
+ ex2.approx.f32 %f440, %f439;
+ mul.f32 %f441, %f438, %f440;
+ setp.lt.f32 %p39, %f430, 0fC2D20000;
+ selp.f32 %f442, 0f00000000, %f441, %p39;
+ setp.gt.f32 %p40, %f430, 0f42D20000;
+ selp.f32 %f884, 0f7F800000, %f442, %p40;
+ setp.eq.f32 %p41, %f884, 0f7F800000;
+ @%p41 bra BB0_23;
+
+ fma.rn.f32 %f884, %f884, %f47, %f884;
+
+BB0_23:
+ mov.f32 %f870, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f869, %f870;
+ fma.rn.f32 %f868, %f869, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f867, %f868;
+ setp.lt.f32 %p42, %f883, 0f00000000;
+ setp.eq.f32 %p43, %f867, 0f3F800000;
+ and.pred %p2, %p42, %p43;
+ mov.b32 %r76, %f884;
+ xor.b32 %r77, %r76, -2147483648;
+ mov.b32 %f443, %r77;
+ selp.f32 %f886, %f443, %f884, %p2;
+ setp.eq.f32 %p44, %f883, 0f00000000;
+ @%p44 bra BB0_26;
+ bra.uni BB0_24;
+
+BB0_26:
+ add.f32 %f446, %f883, %f883;
+ selp.f32 %f886, %f446, 0f00000000, %p43;
+ bra.uni BB0_27;
+
+BB0_111:
+ mov.u64 %rd287, image_HDR;
+ cvta.global.u64 %rd282, %rd287;
+ mov.u32 %r206, 8;
+ // inline asm
+ call (%rd281), _rt_buffer_get_64, (%rd282, %r24, %r206, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f798, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs167, %f798;}
+
+ // inline asm
+ mov.u16 %rs168, 0;
+ st.v4.u16 [%rd281], {%rs167, %rs167, %rs167, %rs168};
+
+BB0_112:
+ ld.global.u32 %r207, [additive];
+ setp.eq.s32 %p119, %r207, 0;
+ @%p119 bra BB0_114;
+
+ mov.u64 %rd300, image_RNM0;
+ cvta.global.u64 %rd289, %rd300;
+ mov.u32 %r211, 8;
+ // inline asm
+ call (%rd288), _rt_buffer_get_64, (%rd289, %r24, %r211, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs175, %rs176, %rs177, %rs178}, [%rd288];
+ // inline asm
+ { cvt.f32.f16 %f799, %rs175;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f800, %rs176;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f801, %rs177;}
+
+ // inline asm
+ // inline asm
+ call (%rd294), _rt_buffer_get_64, (%rd289, %r24, %r211, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f802, %f799, 0f00000000;
+ add.f32 %f803, %f800, 0f00000000;
+ add.f32 %f804, %f801, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs174, %f804;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs173, %f803;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs172, %f802;}
+
+ // inline asm
+ mov.u16 %rs179, 0;
+ st.v4.u16 [%rd294], {%rs172, %rs173, %rs174, %rs179};
+ bra.uni BB0_115;
+
+BB0_114:
+ mov.u64 %rd307, image_RNM0;
+ cvta.global.u64 %rd302, %rd307;
+ mov.u32 %r213, 8;
+ // inline asm
+ call (%rd301), _rt_buffer_get_64, (%rd302, %r24, %r213, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f805, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs180, %f805;}
+
+ // inline asm
+ mov.u16 %rs181, 0;
+ st.v4.u16 [%rd301], {%rs180, %rs180, %rs180, %rs181};
+
+BB0_115:
+ ld.global.u32 %r214, [additive];
+ setp.eq.s32 %p120, %r214, 0;
+ @%p120 bra BB0_117;
+
+ mov.u64 %rd320, image_RNM1;
+ cvta.global.u64 %rd309, %rd320;
+ mov.u32 %r218, 8;
+ // inline asm
+ call (%rd308), _rt_buffer_get_64, (%rd309, %r24, %r218, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs188, %rs189, %rs190, %rs191}, [%rd308];
+ // inline asm
+ { cvt.f32.f16 %f806, %rs188;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f807, %rs189;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f808, %rs190;}
+
+ // inline asm
+ // inline asm
+ call (%rd314), _rt_buffer_get_64, (%rd309, %r24, %r218, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f809, %f806, 0f00000000;
+ add.f32 %f810, %f807, 0f00000000;
+ add.f32 %f811, %f808, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs187, %f811;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs186, %f810;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs185, %f809;}
+
+ // inline asm
+ mov.u16 %rs192, 0;
+ st.v4.u16 [%rd314], {%rs185, %rs186, %rs187, %rs192};
+ bra.uni BB0_118;
+
+BB0_117:
+ mov.u64 %rd327, image_RNM1;
+ cvta.global.u64 %rd322, %rd327;
+ mov.u32 %r220, 8;
+ // inline asm
+ call (%rd321), _rt_buffer_get_64, (%rd322, %r24, %r220, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f812, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs193, %f812;}
+
+ // inline asm
+ mov.u16 %rs194, 0;
+ st.v4.u16 [%rd321], {%rs193, %rs193, %rs193, %rs194};
+
+BB0_118:
+ ld.global.u32 %r221, [additive];
+ setp.eq.s32 %p121, %r221, 0;
+ @%p121 bra BB0_120;
+
+ mov.u64 %rd340, image_RNM2;
+ cvta.global.u64 %rd329, %rd340;
+ mov.u32 %r225, 8;
+ // inline asm
+ call (%rd328), _rt_buffer_get_64, (%rd329, %r24, %r225, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs201, %rs202, %rs203, %rs204}, [%rd328];
+ // inline asm
+ { cvt.f32.f16 %f813, %rs201;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f814, %rs202;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f815, %rs203;}
+
+ // inline asm
+ // inline asm
+ call (%rd334), _rt_buffer_get_64, (%rd329, %r24, %r225, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f816, %f813, 0f00000000;
+ add.f32 %f817, %f814, 0f00000000;
+ add.f32 %f818, %f815, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs200, %f818;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs199, %f817;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs198, %f816;}
+
+ // inline asm
+ mov.u16 %rs205, 0;
+ st.v4.u16 [%rd334], {%rs198, %rs199, %rs200, %rs205};
+ bra.uni BB0_121;
+
+BB0_120:
+ mov.u64 %rd347, image_RNM2;
+ cvta.global.u64 %rd342, %rd347;
+ mov.u32 %r227, 8;
+ // inline asm
+ call (%rd341), _rt_buffer_get_64, (%rd342, %r24, %r227, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f819, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs206, %f819;}
+
+ // inline asm
+ mov.u16 %rs207, 0;
+ st.v4.u16 [%rd341], {%rs206, %rs206, %rs206, %rs207};
+
+BB0_121:
+ ld.global.u32 %r228, [additive];
+ setp.eq.s32 %p122, %r228, 0;
+ @%p122 bra BB0_123;
+
+ mov.u64 %rd360, image_RNM3;
+ cvta.global.u64 %rd349, %rd360;
+ mov.u32 %r232, 8;
+ // inline asm
+ call (%rd348), _rt_buffer_get_64, (%rd349, %r24, %r232, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs214, %rs215, %rs216, %rs217}, [%rd348];
+ // inline asm
+ { cvt.f32.f16 %f820, %rs214;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f821, %rs215;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f822, %rs216;}
+
+ // inline asm
+ // inline asm
+ call (%rd354), _rt_buffer_get_64, (%rd349, %r24, %r232, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f823, %f820, 0f00000000;
+ add.f32 %f824, %f821, 0f00000000;
+ add.f32 %f825, %f822, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs213, %f825;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs212, %f824;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs211, %f823;}
+
+ // inline asm
+ mov.u16 %rs218, 0;
+ st.v4.u16 [%rd354], {%rs211, %rs212, %rs213, %rs218};
+ bra.uni BB0_124;
+
+BB0_123:
+ mov.u64 %rd367, image_RNM3;
+ cvta.global.u64 %rd362, %rd367;
+ mov.u32 %r234, 8;
+ // inline asm
+ call (%rd361), _rt_buffer_get_64, (%rd362, %r24, %r234, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f826, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs219, %f826;}
+
+ // inline asm
+ mov.u16 %rs220, 0;
+ st.v4.u16 [%rd361], {%rs219, %rs219, %rs219, %rs220};
+ bra.uni BB0_124;
+
+BB0_91:
+ mov.u64 %rd173, image_HDR;
+ cvta.global.u64 %rd168, %rd173;
+ mov.u32 %r163, 8;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r24, %r163, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f756, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f756;}
+
+ // inline asm
+ st.v4.u16 [%rd167], {%rs104, %rs104, %rs104, %rs93};
+
+BB0_92:
+ ld.global.u32 %r164, [additive];
+ setp.eq.s32 %p111, %r164, 0;
+ mov.f32 %f757, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f757;}
+
+ // inline asm
+ @%p111 bra BB0_94;
+
+ mov.u64 %rd186, image_RNM0;
+ cvta.global.u64 %rd175, %rd186;
+ mov.u32 %r168, 8;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r24, %r168, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd174];
+ // inline asm
+ { cvt.f32.f16 %f758, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f759, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f760, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd175, %r24, %r168, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f761, %f758, 0f00000000;
+ add.f32 %f762, %f759, 0f00000000;
+ add.f32 %f763, %f760, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f763;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f762;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f761;}
+
+ // inline asm
+ st.v4.u16 [%rd180], {%rs109, %rs110, %rs111, %rs105};
+ bra.uni BB0_95;
+
+BB0_94:
+ mov.u64 %rd193, image_RNM0;
+ cvta.global.u64 %rd188, %rd193;
+ mov.u32 %r170, 8;
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd188, %r24, %r170, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f764, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f764;}
+
+ // inline asm
+ st.v4.u16 [%rd187], {%rs116, %rs116, %rs116, %rs105};
+
+BB0_95:
+ ld.global.u32 %r171, [additive];
+ setp.eq.s32 %p112, %r171, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f757;}
+
+ // inline asm
+ @%p112 bra BB0_97;
+
+ mov.u64 %rd206, image_RNM1;
+ cvta.global.u64 %rd195, %rd206;
+ mov.u32 %r175, 8;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r24, %r175, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd194];
+ // inline asm
+ { cvt.f32.f16 %f766, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f767, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f768, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd195, %r24, %r175, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f769, %f766, 0f00000000;
+ add.f32 %f770, %f767, 0f00000000;
+ add.f32 %f771, %f768, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f771;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f770;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f769;}
+
+ // inline asm
+ st.v4.u16 [%rd200], {%rs121, %rs122, %rs123, %rs117};
+ bra.uni BB0_98;
+
+BB0_97:
+ mov.u64 %rd213, image_RNM1;
+ cvta.global.u64 %rd208, %rd213;
+ mov.u32 %r177, 8;
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd208, %r24, %r177, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f772, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs128, %f772;}
+
+ // inline asm
+ st.v4.u16 [%rd207], {%rs128, %rs128, %rs128, %rs117};
+
+BB0_98:
+ ld.global.u32 %r178, [additive];
+ setp.eq.s32 %p113, %r178, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f757;}
+
+ // inline asm
+ @%p113 bra BB0_100;
+
+ mov.u64 %rd226, image_RNM2;
+ cvta.global.u64 %rd215, %rd226;
+ mov.u32 %r182, 8;
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd215, %r24, %r182, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs136, %rs137, %rs138, %rs139}, [%rd214];
+ // inline asm
+ { cvt.f32.f16 %f774, %rs136;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f775, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f776, %rs138;}
+
+ // inline asm
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd215, %r24, %r182, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f777, %f774, 0f00000000;
+ add.f32 %f778, %f775, 0f00000000;
+ add.f32 %f779, %f776, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f779;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f778;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f777;}
+
+ // inline asm
+ st.v4.u16 [%rd220], {%rs133, %rs134, %rs135, %rs129};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd233, image_RNM2;
+ cvta.global.u64 %rd228, %rd233;
+ mov.u32 %r184, 8;
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd228, %r24, %r184, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f780, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f780;}
+
+ // inline asm
+ st.v4.u16 [%rd227], {%rs140, %rs140, %rs140, %rs129};
+
+BB0_101:
+ ld.global.u32 %r185, [additive];
+ setp.eq.s32 %p114, %r185, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs141, %f757;}
+
+ // inline asm
+ @%p114 bra BB0_103;
+
+ mov.u64 %rd246, image_RNM3;
+ cvta.global.u64 %rd235, %rd246;
+ mov.u32 %r189, 8;
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd235, %r24, %r189, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs148, %rs149, %rs150, %rs151}, [%rd234];
+ // inline asm
+ { cvt.f32.f16 %f782, %rs148;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f783, %rs149;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f784, %rs150;}
+
+ // inline asm
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd235, %r24, %r189, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f785, %f782, 0f00000000;
+ add.f32 %f786, %f783, 0f00000000;
+ add.f32 %f787, %f784, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f787;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f786;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f785;}
+
+ // inline asm
+ st.v4.u16 [%rd240], {%rs145, %rs146, %rs147, %rs141};
+ bra.uni BB0_124;
+
+BB0_103:
+ mov.u64 %rd253, image_RNM3;
+ cvta.global.u64 %rd248, %rd253;
+ mov.u32 %r191, 8;
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd248, %r24, %r191, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f788, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f788;}
+
+ // inline asm
+ st.v4.u16 [%rd247], {%rs152, %rs152, %rs152, %rs141};
+ bra.uni BB0_124;
+
+BB0_24:
+ setp.geu.f32 %p45, %f883, 0f00000000;
+ @%p45 bra BB0_27;
+
+ mov.f32 %f874, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f445, %f874;
+ setp.neu.f32 %p46, %f445, 0f3EE8BA2E;
+ selp.f32 %f886, 0f7FFFFFFF, %f886, %p46;
+
+BB0_27:
+ abs.f32 %f871, %f883;
+ add.f32 %f447, %f871, 0f3EE8BA2E;
+ mov.b32 %r78, %f447;
+ setp.lt.s32 %p48, %r78, 2139095040;
+ @%p48 bra BB0_32;
+
+ abs.f32 %f872, %f883;
+ setp.gtu.f32 %p49, %f872, 0f7F800000;
+ @%p49 bra BB0_31;
+ bra.uni BB0_29;
+
+BB0_31:
+ add.f32 %f886, %f883, 0f3EE8BA2E;
+ bra.uni BB0_32;
+
+BB0_29:
+ abs.f32 %f873, %f883;
+ setp.neu.f32 %p50, %f873, 0f7F800000;
+ @%p50 bra BB0_32;
+
+ selp.f32 %f886, 0fFF800000, 0f7F800000, %p2;
+
+BB0_32:
+ mul.f32 %f448, %f886, 0f437F0000;
+ setp.eq.f32 %p51, %f883, 0f3F800000;
+ selp.f32 %f449, 0f437F0000, %f448, %p51;
+ cvt.rzi.u32.f32 %r79, %f449;
+ cvt.u16.u32 %rs19, %r79;
+ mov.u16 %rs20, 255;
+ st.v2.u8 [%rd26], {%rs19, %rs20};
+ ld.global.u32 %r239, [imageEnabled];
+
+BB0_33:
+ and.b32 %r80, %r239, 1;
+ setp.eq.b32 %p52, %r80, 1;
+ @!%p52 bra BB0_68;
+ bra.uni BB0_34;
+
+BB0_34:
+ mov.f32 %f849, 0fB5BFBE8E;
+ mov.f32 %f848, 0fBF317200;
+ mov.f32 %f847, 0f35BFBE8E;
+ mov.f32 %f846, 0f3F317200;
+ mov.f32 %f845, 0f3DAAAABD;
+ mov.f32 %f844, 0f3C4CAF63;
+ mov.f32 %f843, 0f3B18F0FE;
+ mov.f32 %f452, 0f3E666666;
+ cvt.rzi.f32.f32 %f453, %f452;
+ fma.rn.f32 %f454, %f453, 0fC0000000, 0f3EE66666;
+ abs.f32 %f58, %f454;
+ abs.f32 %f59, %f42;
+ setp.lt.f32 %p53, %f59, 0f00800000;
+ mul.f32 %f455, %f59, 0f4B800000;
+ selp.f32 %f456, 0fC3170000, 0fC2FE0000, %p53;
+ selp.f32 %f457, %f455, %f59, %p53;
+ mov.b32 %r81, %f457;
+ and.b32 %r82, %r81, 8388607;
+ or.b32 %r83, %r82, 1065353216;
+ mov.b32 %f458, %r83;
+ shr.u32 %r84, %r81, 23;
+ cvt.rn.f32.u32 %f459, %r84;
+ add.f32 %f460, %f456, %f459;
+ setp.gt.f32 %p54, %f458, 0f3FB504F3;
+ mul.f32 %f461, %f458, 0f3F000000;
+ add.f32 %f462, %f460, 0f3F800000;
+ selp.f32 %f463, %f461, %f458, %p54;
+ selp.f32 %f464, %f462, %f460, %p54;
+ add.f32 %f465, %f463, 0fBF800000;
+ add.f32 %f451, %f463, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f450,%f451;
+ // inline asm
+ add.f32 %f466, %f465, %f465;
+ mul.f32 %f467, %f450, %f466;
+ mul.f32 %f468, %f467, %f467;
+ fma.rn.f32 %f471, %f843, %f468, %f844;
+ fma.rn.f32 %f473, %f471, %f468, %f845;
+ mul.rn.f32 %f474, %f473, %f468;
+ mul.rn.f32 %f475, %f474, %f467;
+ sub.f32 %f476, %f465, %f467;
+ neg.f32 %f477, %f467;
+ add.f32 %f478, %f476, %f476;
+ fma.rn.f32 %f479, %f477, %f465, %f478;
+ mul.rn.f32 %f480, %f450, %f479;
+ add.f32 %f481, %f475, %f467;
+ sub.f32 %f482, %f467, %f481;
+ add.f32 %f483, %f475, %f482;
+ add.f32 %f484, %f480, %f483;
+ add.f32 %f485, %f481, %f484;
+ sub.f32 %f486, %f481, %f485;
+ add.f32 %f487, %f484, %f486;
+ mul.rn.f32 %f489, %f464, %f846;
+ mul.rn.f32 %f491, %f464, %f847;
+ add.f32 %f492, %f489, %f485;
+ sub.f32 %f493, %f489, %f492;
+ add.f32 %f494, %f485, %f493;
+ add.f32 %f495, %f487, %f494;
+ add.f32 %f496, %f491, %f495;
+ add.f32 %f497, %f492, %f496;
+ sub.f32 %f498, %f492, %f497;
+ add.f32 %f499, %f496, %f498;
+ mov.f32 %f500, 0f3EE66666;
+ mul.rn.f32 %f501, %f500, %f497;
+ neg.f32 %f502, %f501;
+ fma.rn.f32 %f503, %f500, %f497, %f502;
+ fma.rn.f32 %f504, %f500, %f499, %f503;
+ mov.f32 %f505, 0f00000000;
+ fma.rn.f32 %f506, %f505, %f497, %f504;
+ add.rn.f32 %f507, %f501, %f506;
+ neg.f32 %f508, %f507;
+ add.rn.f32 %f509, %f501, %f508;
+ add.rn.f32 %f510, %f509, %f506;
+ mov.b32 %r85, %f507;
+ setp.eq.s32 %p55, %r85, 1118925336;
+ add.s32 %r86, %r85, -1;
+ mov.b32 %f511, %r86;
+ add.f32 %f512, %f510, 0f37000000;
+ selp.f32 %f513, %f511, %f507, %p55;
+ selp.f32 %f60, %f512, %f510, %p55;
+ mul.f32 %f514, %f513, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f515, %f514;
+ fma.rn.f32 %f517, %f515, %f848, %f513;
+ fma.rn.f32 %f519, %f515, %f849, %f517;
+ mul.f32 %f520, %f519, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f521, %f520;
+ add.f32 %f522, %f515, 0f00000000;
+ ex2.approx.f32 %f523, %f522;
+ mul.f32 %f524, %f521, %f523;
+ setp.lt.f32 %p56, %f513, 0fC2D20000;
+ selp.f32 %f525, 0f00000000, %f524, %p56;
+ setp.gt.f32 %p57, %f513, 0f42D20000;
+ selp.f32 %f887, 0f7F800000, %f525, %p57;
+ setp.eq.f32 %p58, %f887, 0f7F800000;
+ @%p58 bra BB0_36;
+
+ fma.rn.f32 %f887, %f887, %f60, %f887;
+
+BB0_36:
+ setp.lt.f32 %p59, %f42, 0f00000000;
+ setp.eq.f32 %p60, %f58, 0f3F800000;
+ and.pred %p3, %p59, %p60;
+ mov.b32 %r87, %f887;
+ xor.b32 %r88, %r87, -2147483648;
+ mov.b32 %f526, %r88;
+ selp.f32 %f889, %f526, %f887, %p3;
+ setp.eq.f32 %p61, %f42, 0f00000000;
+ @%p61 bra BB0_39;
+ bra.uni BB0_37;
+
+BB0_39:
+ add.f32 %f529, %f42, %f42;
+ selp.f32 %f889, %f529, 0f00000000, %p60;
+ bra.uni BB0_40;
+
+BB0_37:
+ setp.geu.f32 %p62, %f42, 0f00000000;
+ @%p62 bra BB0_40;
+
+ cvt.rzi.f32.f32 %f528, %f500;
+ setp.neu.f32 %p63, %f528, 0f3EE66666;
+ selp.f32 %f889, 0f7FFFFFFF, %f889, %p63;
+
+BB0_40:
+ add.f32 %f530, %f59, 0f3EE66666;
+ mov.b32 %r89, %f530;
+ setp.lt.s32 %p65, %r89, 2139095040;
+ @%p65 bra BB0_45;
+
+ setp.gtu.f32 %p66, %f59, 0f7F800000;
+ @%p66 bra BB0_44;
+ bra.uni BB0_42;
+
+BB0_44:
+ add.f32 %f889, %f42, 0f3EE66666;
+ bra.uni BB0_45;
+
+BB0_42:
+ setp.neu.f32 %p67, %f59, 0f7F800000;
+ @%p67 bra BB0_45;
+
+ selp.f32 %f889, 0fFF800000, 0f7F800000, %p3;
+
+BB0_45:
+ mov.f32 %f856, 0fB5BFBE8E;
+ mov.f32 %f855, 0fBF317200;
+ mov.f32 %f854, 0f35BFBE8E;
+ mov.f32 %f853, 0f3F317200;
+ mov.f32 %f852, 0f3DAAAABD;
+ mov.f32 %f851, 0f3C4CAF63;
+ mov.f32 %f850, 0f3B18F0FE;
+ setp.eq.f32 %p68, %f42, 0f3F800000;
+ selp.f32 %f71, 0f3F800000, %f889, %p68;
+ abs.f32 %f72, %f43;
+ setp.lt.f32 %p69, %f72, 0f00800000;
+ mul.f32 %f533, %f72, 0f4B800000;
+ selp.f32 %f534, 0fC3170000, 0fC2FE0000, %p69;
+ selp.f32 %f535, %f533, %f72, %p69;
+ mov.b32 %r90, %f535;
+ and.b32 %r91, %r90, 8388607;
+ or.b32 %r92, %r91, 1065353216;
+ mov.b32 %f536, %r92;
+ shr.u32 %r93, %r90, 23;
+ cvt.rn.f32.u32 %f537, %r93;
+ add.f32 %f538, %f534, %f537;
+ setp.gt.f32 %p70, %f536, 0f3FB504F3;
+ mul.f32 %f539, %f536, 0f3F000000;
+ add.f32 %f540, %f538, 0f3F800000;
+ selp.f32 %f541, %f539, %f536, %p70;
+ selp.f32 %f542, %f540, %f538, %p70;
+ add.f32 %f543, %f541, 0fBF800000;
+ add.f32 %f532, %f541, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f531,%f532;
+ // inline asm
+ add.f32 %f544, %f543, %f543;
+ mul.f32 %f545, %f531, %f544;
+ mul.f32 %f546, %f545, %f545;
+ fma.rn.f32 %f549, %f850, %f546, %f851;
+ fma.rn.f32 %f551, %f549, %f546, %f852;
+ mul.rn.f32 %f552, %f551, %f546;
+ mul.rn.f32 %f553, %f552, %f545;
+ sub.f32 %f554, %f543, %f545;
+ neg.f32 %f555, %f545;
+ add.f32 %f556, %f554, %f554;
+ fma.rn.f32 %f557, %f555, %f543, %f556;
+ mul.rn.f32 %f558, %f531, %f557;
+ add.f32 %f559, %f553, %f545;
+ sub.f32 %f560, %f545, %f559;
+ add.f32 %f561, %f553, %f560;
+ add.f32 %f562, %f558, %f561;
+ add.f32 %f563, %f559, %f562;
+ sub.f32 %f564, %f559, %f563;
+ add.f32 %f565, %f562, %f564;
+ mul.rn.f32 %f567, %f542, %f853;
+ mul.rn.f32 %f569, %f542, %f854;
+ add.f32 %f570, %f567, %f563;
+ sub.f32 %f571, %f567, %f570;
+ add.f32 %f572, %f563, %f571;
+ add.f32 %f573, %f565, %f572;
+ add.f32 %f574, %f569, %f573;
+ add.f32 %f575, %f570, %f574;
+ sub.f32 %f576, %f570, %f575;
+ add.f32 %f577, %f574, %f576;
+ mul.rn.f32 %f579, %f500, %f575;
+ neg.f32 %f580, %f579;
+ fma.rn.f32 %f581, %f500, %f575, %f580;
+ fma.rn.f32 %f582, %f500, %f577, %f581;
+ fma.rn.f32 %f584, %f505, %f575, %f582;
+ add.rn.f32 %f585, %f579, %f584;
+ neg.f32 %f586, %f585;
+ add.rn.f32 %f587, %f579, %f586;
+ add.rn.f32 %f588, %f587, %f584;
+ mov.b32 %r94, %f585;
+ setp.eq.s32 %p71, %r94, 1118925336;
+ add.s32 %r95, %r94, -1;
+ mov.b32 %f589, %r95;
+ add.f32 %f590, %f588, 0f37000000;
+ selp.f32 %f591, %f589, %f585, %p71;
+ selp.f32 %f73, %f590, %f588, %p71;
+ mul.f32 %f592, %f591, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f593, %f592;
+ fma.rn.f32 %f595, %f593, %f855, %f591;
+ fma.rn.f32 %f597, %f593, %f856, %f595;
+ mul.f32 %f598, %f597, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f599, %f598;
+ add.f32 %f600, %f593, 0f00000000;
+ ex2.approx.f32 %f601, %f600;
+ mul.f32 %f602, %f599, %f601;
+ setp.lt.f32 %p72, %f591, 0fC2D20000;
+ selp.f32 %f603, 0f00000000, %f602, %p72;
+ setp.gt.f32 %p73, %f591, 0f42D20000;
+ selp.f32 %f890, 0f7F800000, %f603, %p73;
+ setp.eq.f32 %p74, %f890, 0f7F800000;
+ @%p74 bra BB0_47;
+
+ fma.rn.f32 %f890, %f890, %f73, %f890;
+
+BB0_47:
+ setp.lt.f32 %p75, %f43, 0f00000000;
+ and.pred %p4, %p75, %p60;
+ mov.b32 %r96, %f890;
+ xor.b32 %r97, %r96, -2147483648;
+ mov.b32 %f604, %r97;
+ selp.f32 %f892, %f604, %f890, %p4;
+ setp.eq.f32 %p77, %f43, 0f00000000;
+ @%p77 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f607, %f43, %f43;
+ selp.f32 %f892, %f607, 0f00000000, %p60;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p78, %f43, 0f00000000;
+ @%p78 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f606, %f500;
+ setp.neu.f32 %p79, %f606, 0f3EE66666;
+ selp.f32 %f892, 0f7FFFFFFF, %f892, %p79;
+
+BB0_51:
+ add.f32 %f608, %f72, 0f3EE66666;
+ mov.b32 %r98, %f608;
+ setp.lt.s32 %p81, %r98, 2139095040;
+ @%p81 bra BB0_56;
+
+ setp.gtu.f32 %p82, %f72, 0f7F800000;
+ @%p82 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f892, %f43, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p83, %f72, 0f7F800000;
+ @%p83 bra BB0_56;
+
+ selp.f32 %f892, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f863, 0fB5BFBE8E;
+ mov.f32 %f862, 0fBF317200;
+ mov.f32 %f861, 0f35BFBE8E;
+ mov.f32 %f860, 0f3F317200;
+ mov.f32 %f859, 0f3DAAAABD;
+ mov.f32 %f858, 0f3C4CAF63;
+ mov.f32 %f857, 0f3B18F0FE;
+ setp.eq.f32 %p84, %f43, 0f3F800000;
+ selp.f32 %f84, 0f3F800000, %f892, %p84;
+ abs.f32 %f85, %f44;
+ setp.lt.f32 %p85, %f85, 0f00800000;
+ mul.f32 %f611, %f85, 0f4B800000;
+ selp.f32 %f612, 0fC3170000, 0fC2FE0000, %p85;
+ selp.f32 %f613, %f611, %f85, %p85;
+ mov.b32 %r99, %f613;
+ and.b32 %r100, %r99, 8388607;
+ or.b32 %r101, %r100, 1065353216;
+ mov.b32 %f614, %r101;
+ shr.u32 %r102, %r99, 23;
+ cvt.rn.f32.u32 %f615, %r102;
+ add.f32 %f616, %f612, %f615;
+ setp.gt.f32 %p86, %f614, 0f3FB504F3;
+ mul.f32 %f617, %f614, 0f3F000000;
+ add.f32 %f618, %f616, 0f3F800000;
+ selp.f32 %f619, %f617, %f614, %p86;
+ selp.f32 %f620, %f618, %f616, %p86;
+ add.f32 %f621, %f619, 0fBF800000;
+ add.f32 %f610, %f619, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f609,%f610;
+ // inline asm
+ add.f32 %f622, %f621, %f621;
+ mul.f32 %f623, %f609, %f622;
+ mul.f32 %f624, %f623, %f623;
+ fma.rn.f32 %f627, %f857, %f624, %f858;
+ fma.rn.f32 %f629, %f627, %f624, %f859;
+ mul.rn.f32 %f630, %f629, %f624;
+ mul.rn.f32 %f631, %f630, %f623;
+ sub.f32 %f632, %f621, %f623;
+ neg.f32 %f633, %f623;
+ add.f32 %f634, %f632, %f632;
+ fma.rn.f32 %f635, %f633, %f621, %f634;
+ mul.rn.f32 %f636, %f609, %f635;
+ add.f32 %f637, %f631, %f623;
+ sub.f32 %f638, %f623, %f637;
+ add.f32 %f639, %f631, %f638;
+ add.f32 %f640, %f636, %f639;
+ add.f32 %f641, %f637, %f640;
+ sub.f32 %f642, %f637, %f641;
+ add.f32 %f643, %f640, %f642;
+ mul.rn.f32 %f645, %f620, %f860;
+ mul.rn.f32 %f647, %f620, %f861;
+ add.f32 %f648, %f645, %f641;
+ sub.f32 %f649, %f645, %f648;
+ add.f32 %f650, %f641, %f649;
+ add.f32 %f651, %f643, %f650;
+ add.f32 %f652, %f647, %f651;
+ add.f32 %f653, %f648, %f652;
+ sub.f32 %f654, %f648, %f653;
+ add.f32 %f655, %f652, %f654;
+ mul.rn.f32 %f657, %f500, %f653;
+ neg.f32 %f658, %f657;
+ fma.rn.f32 %f659, %f500, %f653, %f658;
+ fma.rn.f32 %f660, %f500, %f655, %f659;
+ fma.rn.f32 %f662, %f505, %f653, %f660;
+ add.rn.f32 %f663, %f657, %f662;
+ neg.f32 %f664, %f663;
+ add.rn.f32 %f665, %f657, %f664;
+ add.rn.f32 %f666, %f665, %f662;
+ mov.b32 %r103, %f663;
+ setp.eq.s32 %p87, %r103, 1118925336;
+ add.s32 %r104, %r103, -1;
+ mov.b32 %f667, %r104;
+ add.f32 %f668, %f666, 0f37000000;
+ selp.f32 %f669, %f667, %f663, %p87;
+ selp.f32 %f86, %f668, %f666, %p87;
+ mul.f32 %f670, %f669, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f671, %f670;
+ fma.rn.f32 %f673, %f671, %f862, %f669;
+ fma.rn.f32 %f675, %f671, %f863, %f673;
+ mul.f32 %f676, %f675, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f677, %f676;
+ add.f32 %f678, %f671, 0f00000000;
+ ex2.approx.f32 %f679, %f678;
+ mul.f32 %f680, %f677, %f679;
+ setp.lt.f32 %p88, %f669, 0fC2D20000;
+ selp.f32 %f681, 0f00000000, %f680, %p88;
+ setp.gt.f32 %p89, %f669, 0f42D20000;
+ selp.f32 %f893, 0f7F800000, %f681, %p89;
+ setp.eq.f32 %p90, %f893, 0f7F800000;
+ @%p90 bra BB0_58;
+
+ fma.rn.f32 %f893, %f893, %f86, %f893;
+
+BB0_58:
+ setp.lt.f32 %p91, %f44, 0f00000000;
+ and.pred %p5, %p91, %p60;
+ mov.b32 %r105, %f893;
+ xor.b32 %r106, %r105, -2147483648;
+ mov.b32 %f682, %r106;
+ selp.f32 %f895, %f682, %f893, %p5;
+ setp.eq.f32 %p93, %f44, 0f00000000;
+ @%p93 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f685, %f44, %f44;
+ selp.f32 %f895, %f685, 0f00000000, %p60;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p94, %f44, 0f00000000;
+ @%p94 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f684, %f500;
+ setp.neu.f32 %p95, %f684, 0f3EE66666;
+ selp.f32 %f895, 0f7FFFFFFF, %f895, %p95;
+
+BB0_62:
+ add.f32 %f686, %f85, 0f3EE66666;
+ mov.b32 %r107, %f686;
+ setp.lt.s32 %p97, %r107, 2139095040;
+ @%p97 bra BB0_67;
+
+ setp.gtu.f32 %p98, %f85, 0f7F800000;
+ @%p98 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f895, %f44, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p99, %f85, 0f7F800000;
+ @%p99 bra BB0_67;
+
+ selp.f32 %f895, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ mov.u32 %r235, 4;
+ setp.eq.f32 %p100, %f44, 0f3F800000;
+ selp.f32 %f687, 0f3F800000, %f895, %p100;
+ cvt.u64.u32 %rd36, %r3;
+ cvt.u64.u32 %rd35, %r2;
+ mov.u64 %rd39, image;
+ cvta.global.u64 %rd34, %rd39;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r24, %r235, %rd35, %rd36, %rd15, %rd15);
+ // inline asm
+ cvt.sat.f32.f32 %f688, %f687;
+ mul.f32 %f689, %f688, 0f437FFD71;
+ cvt.rzi.u32.f32 %r110, %f689;
+ cvt.sat.f32.f32 %f690, %f84;
+ mul.f32 %f691, %f690, 0f437FFD71;
+ cvt.rzi.u32.f32 %r111, %f691;
+ cvt.sat.f32.f32 %f692, %f71;
+ mul.f32 %f693, %f692, 0f437FFD71;
+ cvt.rzi.u32.f32 %r112, %f693;
+ cvt.u16.u32 %rs21, %r110;
+ cvt.u16.u32 %rs22, %r112;
+ cvt.u16.u32 %rs23, %r111;
+ mov.u16 %rs24, 255;
+ st.v4.u8 [%rd33], {%rs21, %rs23, %rs22, %rs24};
+ ld.global.u32 %r239, [imageEnabled];
+
+BB0_68:
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ and.b32 %r113, %r239, 4;
+ setp.eq.s32 %p101, %r113, 0;
+ @%p101 bra BB0_72;
+
+ ld.global.u32 %r114, [additive];
+ setp.eq.s32 %p102, %r114, 0;
+ mov.f32 %f694, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f694;}
+
+ // inline asm
+ @%p102 bra BB0_71;
+
+ mov.u64 %rd52, image_HDR;
+ cvta.global.u64 %rd41, %rd52;
+ mov.u32 %r118, 8;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r24, %r118, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs32, %rs33, %rs34, %rs35}, [%rd40];
+ // inline asm
+ { cvt.f32.f16 %f695, %rs32;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f696, %rs33;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f697, %rs34;}
+
+ // inline asm
+ // inline asm
+ call (%rd46), _rt_buffer_get_64, (%rd41, %r24, %r118, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f698, %f42, %f695;
+ add.f32 %f699, %f43, %f696;
+ add.f32 %f700, %f44, %f697;
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f700;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f699;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f698;}
+
+ // inline asm
+ st.v4.u16 [%rd46], {%rs29, %rs30, %rs31, %rs25};
+ bra.uni BB0_72;
+
+BB0_71:
+ mov.u64 %rd59, image_HDR;
+ cvta.global.u64 %rd54, %rd59;
+ mov.u32 %r120, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r24, %r120, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f44;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f43;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f42;}
+
+ // inline asm
+ st.v4.u16 [%rd53], {%rs36, %rs37, %rs38, %rs25};
+
+BB0_72:
+ mul.f32 %f705, %f28, 0f3E800000;
+ mul.f32 %f706, %f705, %f883;
+ ld.global.f32 %f707, [lightColor];
+ mul.f32 %f708, %f706, %f707;
+ ld.global.f32 %f709, [lightColor+4];
+ mul.f32 %f710, %f706, %f709;
+ ld.global.f32 %f711, [lightColor+8];
+ mul.f32 %f712, %f706, %f711;
+ mul.f32 %f97, %f215, %f708;
+ mul.f32 %f98, %f216, %f710;
+ mul.f32 %f99, %f217, %f712;
+ ld.global.u32 %r121, [additive];
+ setp.eq.s32 %p103, %r121, 0;
+ mov.f32 %f704, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f704;}
+
+ // inline asm
+ @%p103 bra BB0_74;
+
+ mov.u64 %rd72, image_RNM0;
+ cvta.global.u64 %rd61, %rd72;
+ mov.u32 %r125, 8;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r24, %r125, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs46, %rs47, %rs48, %rs49}, [%rd60];
+ // inline asm
+ { cvt.f32.f16 %f713, %rs46;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f714, %rs47;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f715, %rs48;}
+
+ // inline asm
+ // inline asm
+ call (%rd66), _rt_buffer_get_64, (%rd61, %r24, %r125, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f716, %f97, %f713;
+ add.f32 %f717, %f98, %f714;
+ add.f32 %f718, %f99, %f715;
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f718;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f717;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f716;}
+
+ // inline asm
+ st.v4.u16 [%rd66], {%rs43, %rs44, %rs45, %rs39};
+ bra.uni BB0_75;
+
+BB0_74:
+ mov.u64 %rd79, image_RNM0;
+ cvta.global.u64 %rd74, %rd79;
+ mov.u32 %r127, 8;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r24, %r127, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f99;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f98;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f97;}
+
+ // inline asm
+ st.v4.u16 [%rd73], {%rs50, %rs51, %rs52, %rs39};
+
+BB0_75:
+ fma.rn.f32 %f100, %f10, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f101, %f11, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f102, %f12, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r128, [additive];
+ setp.eq.s32 %p104, %r128, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f704;}
+
+ // inline asm
+ @%p104 bra BB0_77;
+
+ mov.u64 %rd92, image_RNM1;
+ cvta.global.u64 %rd81, %rd92;
+ mov.u32 %r132, 8;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r24, %r132, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs60, %rs61, %rs62, %rs63}, [%rd80];
+ // inline asm
+ { cvt.f32.f16 %f723, %rs60;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f724, %rs61;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f725, %rs62;}
+
+ // inline asm
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd81, %r24, %r132, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f726, %f100, %f723;
+ add.f32 %f727, %f100, %f724;
+ add.f32 %f728, %f100, %f725;
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f728;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f727;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f726;}
+
+ // inline asm
+ st.v4.u16 [%rd86], {%rs57, %rs58, %rs59, %rs53};
+ bra.uni BB0_78;
+
+BB0_77:
+ mov.u64 %rd99, image_RNM1;
+ cvta.global.u64 %rd94, %rd99;
+ mov.u32 %r134, 8;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd94, %r24, %r134, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f100;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs64, %rs64, %rs64, %rs53};
+
+BB0_78:
+ ld.global.u32 %r135, [additive];
+ setp.eq.s32 %p105, %r135, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f704;}
+
+ // inline asm
+ @%p105 bra BB0_80;
+
+ mov.u64 %rd112, image_RNM2;
+ cvta.global.u64 %rd101, %rd112;
+ mov.u32 %r139, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r24, %r139, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs72, %rs73, %rs74, %rs75}, [%rd100];
+ // inline asm
+ { cvt.f32.f16 %f731, %rs72;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f732, %rs73;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f733, %rs74;}
+
+ // inline asm
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd101, %r24, %r139, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f734, %f101, %f731;
+ add.f32 %f735, %f101, %f732;
+ add.f32 %f736, %f101, %f733;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f736;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f735;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f734;}
+
+ // inline asm
+ st.v4.u16 [%rd106], {%rs69, %rs70, %rs71, %rs65};
+ bra.uni BB0_81;
+
+BB0_80:
+ mov.u64 %rd119, image_RNM2;
+ cvta.global.u64 %rd114, %rd119;
+ mov.u32 %r141, 8;
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd114, %r24, %r141, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f101;}
+
+ // inline asm
+ st.v4.u16 [%rd113], {%rs76, %rs76, %rs76, %rs65};
+
+BB0_81:
+ ld.global.u32 %r142, [additive];
+ setp.eq.s32 %p106, %r142, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f704;}
+
+ // inline asm
+ @%p106 bra BB0_83;
+
+ mov.u64 %rd132, image_RNM3;
+ cvta.global.u64 %rd121, %rd132;
+ mov.u32 %r146, 8;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd121, %r24, %r146, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs84, %rs85, %rs86, %rs87}, [%rd120];
+ // inline asm
+ { cvt.f32.f16 %f739, %rs84;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f740, %rs85;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f741, %rs86;}
+
+ // inline asm
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd121, %r24, %r146, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f742, %f102, %f739;
+ add.f32 %f743, %f102, %f740;
+ add.f32 %f744, %f102, %f741;
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f744;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f743;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f742;}
+
+ // inline asm
+ st.v4.u16 [%rd126], {%rs81, %rs82, %rs83, %rs77};
+ bra.uni BB0_124;
+
+BB0_83:
+ mov.u64 %rd139, image_RNM3;
+ cvta.global.u64 %rd134, %rd139;
+ mov.u32 %r148, 8;
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd134, %r24, %r148, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f102;}
+
+ // inline asm
+ st.v4.u16 [%rd133], {%rs88, %rs88, %rs88, %rs77};
+
+BB0_124:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightProbeSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightProbeSH.ptx.meta
new file mode 100644
index 00000000..3abfb216
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightProbeSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e214785e314e8e244ac6d20d077408fd
+timeCreated: 1551525094
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightRNM.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightRNM.ptx
new file mode 100644
index 00000000..c5b361e6
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightRNM.ptx
@@ -0,0 +1,2395 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 uvtangent[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .u32 lightCookie;
+.global .align 4 .b8 lightMatrix[36];
+.global .align 4 .f32 lightFOV;
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightCookieE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightMatrixE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightFOVE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename11lightCookieE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename11lightMatrixE[10] = {77, 97, 116, 114, 105, 120, 51, 120, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightFOVE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightCookieE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightMatrixE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightFOVE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightCookieE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightMatrixE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightFOVE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightCookieE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightMatrixE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightFOVE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<129>;
+ .reg .b16 %rs<213>;
+ .reg .f32 %f<1089>;
+ .reg .b32 %r<250>;
+ .reg .b64 %rd<334>;
+
+
+ mov.u64 %rd333, __local_depot0;
+ cvta.local.u64 %SP, %rd333;
+ ld.global.v2.u32 {%r33, %r34}, [pixelID];
+ cvt.u64.u32 %rd16, %r33;
+ cvt.u64.u32 %rd17, %r34;
+ mov.u64 %rd20, uvnormal;
+ cvta.global.u64 %rd15, %rd20;
+ mov.u32 %r31, 2;
+ mov.u32 %r32, 4;
+ mov.u64 %rd19, 0;
+ // inline asm
+ call (%rd14), _rt_buffer_get_64, (%rd15, %r31, %r32, %rd16, %rd17, %rd19, %rd19);
+ // inline asm
+ ld.u32 %r1, [%rd14];
+ shr.u32 %r37, %r1, 16;
+ cvt.u16.u32 %rs1, %r37;
+ and.b16 %rs10, %rs1, 255;
+ cvt.u16.u32 %rs11, %r1;
+ or.b16 %rs12, %rs11, %rs10;
+ setp.eq.s16 %p6, %rs12, 0;
+ mov.f32 %f1059, 0f00000000;
+ mov.f32 %f1060, %f1059;
+ mov.f32 %f1061, %f1059;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs13, [%rd14+1];
+ and.b16 %rs15, %rs11, 255;
+ cvt.rn.f32.u16 %f139, %rs15;
+ div.rn.f32 %f140, %f139, 0f437F0000;
+ fma.rn.f32 %f141, %f140, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f142, %rs13;
+ div.rn.f32 %f143, %f142, 0f437F0000;
+ fma.rn.f32 %f144, %f143, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f145, %rs10;
+ div.rn.f32 %f146, %f145, 0f437F0000;
+ fma.rn.f32 %f147, %f146, 0f40000000, 0fBF800000;
+ mul.f32 %f148, %f144, %f144;
+ fma.rn.f32 %f149, %f141, %f141, %f148;
+ fma.rn.f32 %f150, %f147, %f147, %f149;
+ sqrt.rn.f32 %f151, %f150;
+ rcp.rn.f32 %f152, %f151;
+ mul.f32 %f1059, %f141, %f152;
+ mul.f32 %f1060, %f144, %f152;
+ mul.f32 %f1061, %f147, %f152;
+
+BB0_2:
+ ld.global.v2.u32 {%r38, %r39}, [pixelID];
+ ld.global.v2.u32 {%r41, %r42}, [tileInfo];
+ add.s32 %r2, %r38, %r41;
+ add.s32 %r3, %r39, %r42;
+ setp.eq.f32 %p7, %f1060, 0f00000000;
+ setp.eq.f32 %p8, %f1059, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f1061, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_104;
+ bra.uni BB0_3;
+
+BB0_104:
+ ld.global.u32 %r249, [imageEnabled];
+ and.b32 %r202, %r249, 1;
+ setp.eq.b32 %p122, %r202, 1;
+ @!%p122 bra BB0_106;
+ bra.uni BB0_105;
+
+BB0_105:
+ cvt.u64.u32 %rd241, %r2;
+ cvt.u64.u32 %rd242, %r3;
+ mov.u64 %rd245, image;
+ cvta.global.u64 %rd240, %rd245;
+ // inline asm
+ call (%rd239), _rt_buffer_get_64, (%rd240, %r31, %r32, %rd241, %rd242, %rd19, %rd19);
+ // inline asm
+ mov.u16 %rs158, 0;
+ st.v4.u8 [%rd239], {%rs158, %rs158, %rs158, %rs158};
+ ld.global.u32 %r249, [imageEnabled];
+
+BB0_106:
+ and.b32 %r205, %r249, 8;
+ setp.eq.s32 %p123, %r205, 0;
+ @%p123 bra BB0_108;
+
+ cvt.u64.u32 %rd249, %r3;
+ cvt.u64.u32 %rd248, %r2;
+ mov.u64 %rd252, image_Mask;
+ cvta.global.u64 %rd247, %rd252;
+ // inline asm
+ call (%rd246), _rt_buffer_get_64, (%rd247, %r31, %r31, %rd248, %rd249, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f962, 0f00000000;
+ cvt.rzi.u32.f32 %r208, %f962;
+ cvt.u16.u32 %rs159, %r208;
+ mov.u16 %rs160, 0;
+ st.v2.u8 [%rd246], {%rs159, %rs160};
+ ld.global.u32 %r249, [imageEnabled];
+
+BB0_108:
+ cvt.u64.u32 %rd12, %r2;
+ cvt.u64.u32 %rd13, %r3;
+ and.b32 %r209, %r249, 4;
+ setp.eq.s32 %p124, %r209, 0;
+ @%p124 bra BB0_112;
+
+ ld.global.u32 %r210, [additive];
+ setp.eq.s32 %p125, %r210, 0;
+ @%p125 bra BB0_111;
+
+ mov.u64 %rd265, image_HDR;
+ cvta.global.u64 %rd254, %rd265;
+ mov.u32 %r214, 8;
+ // inline asm
+ call (%rd253), _rt_buffer_get_64, (%rd254, %r31, %r214, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs167, %rs168, %rs169, %rs170}, [%rd253];
+ // inline asm
+ { cvt.f32.f16 %f963, %rs167;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f964, %rs168;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f965, %rs169;}
+
+ // inline asm
+ // inline asm
+ call (%rd259), _rt_buffer_get_64, (%rd254, %r31, %r214, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ add.f32 %f966, %f963, 0f00000000;
+ add.f32 %f967, %f964, 0f00000000;
+ add.f32 %f968, %f965, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs166, %f968;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs165, %f967;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs164, %f966;}
+
+ // inline asm
+ mov.u16 %rs171, 0;
+ st.v4.u16 [%rd259], {%rs164, %rs165, %rs166, %rs171};
+ bra.uni BB0_112;
+
+BB0_3:
+ ld.global.v2.u32 {%r48, %r49}, [pixelID];
+ cvt.u64.u32 %rd23, %r48;
+ cvt.u64.u32 %rd24, %r49;
+ mov.u64 %rd27, uvpos;
+ cvta.global.u64 %rd22, %rd27;
+ mov.u32 %r47, 12;
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd22, %r31, %r47, %rd23, %rd24, %rd19, %rd19);
+ // inline asm
+ ld.global.f32 %f155, [lightPos];
+ ld.f32 %f9, [%rd21+8];
+ ld.f32 %f8, [%rd21+4];
+ ld.f32 %f7, [%rd21];
+ sub.f32 %f156, %f155, %f7;
+ ld.global.f32 %f157, [lightPos+4];
+ sub.f32 %f158, %f157, %f8;
+ ld.global.f32 %f159, [lightPos+8];
+ sub.f32 %f160, %f159, %f9;
+ mul.f32 %f161, %f158, %f158;
+ fma.rn.f32 %f162, %f156, %f156, %f161;
+ fma.rn.f32 %f163, %f160, %f160, %f162;
+ sqrt.rn.f32 %f164, %f163;
+ rcp.rn.f32 %f165, %f164;
+ mul.f32 %f10, %f156, %f165;
+ mul.f32 %f11, %f158, %f165;
+ mul.f32 %f12, %f160, %f165;
+ ld.global.f32 %f166, [lightFalloffFakeDistanceMult];
+ mul.f32 %f13, %f164, %f166;
+ ld.global.f32 %f167, [lightInvCutoff];
+ mul.f32 %f14, %f164, %f167;
+ mov.f32 %f171, 0f40800000;
+ abs.f32 %f16, %f14;
+ setp.lt.f32 %p12, %f16, 0f00800000;
+ mul.f32 %f173, %f16, 0f4B800000;
+ selp.f32 %f174, 0fC3170000, 0fC2FE0000, %p12;
+ selp.f32 %f175, %f173, %f16, %p12;
+ mov.b32 %r52, %f175;
+ and.b32 %r53, %r52, 8388607;
+ or.b32 %r54, %r53, 1065353216;
+ mov.b32 %f176, %r54;
+ shr.u32 %r55, %r52, 23;
+ cvt.rn.f32.u32 %f177, %r55;
+ add.f32 %f178, %f174, %f177;
+ setp.gt.f32 %p13, %f176, 0f3FB504F3;
+ mul.f32 %f179, %f176, 0f3F000000;
+ add.f32 %f180, %f178, 0f3F800000;
+ selp.f32 %f181, %f179, %f176, %p13;
+ selp.f32 %f182, %f180, %f178, %p13;
+ add.f32 %f183, %f181, 0fBF800000;
+ add.f32 %f154, %f181, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f153,%f154;
+ // inline asm
+ add.f32 %f184, %f183, %f183;
+ mul.f32 %f185, %f153, %f184;
+ mul.f32 %f186, %f185, %f185;
+ mov.f32 %f187, 0f3C4CAF63;
+ mov.f32 %f188, 0f3B18F0FE;
+ fma.rn.f32 %f189, %f188, %f186, %f187;
+ mov.f32 %f190, 0f3DAAAABD;
+ fma.rn.f32 %f191, %f189, %f186, %f190;
+ mul.rn.f32 %f192, %f191, %f186;
+ mul.rn.f32 %f193, %f192, %f185;
+ sub.f32 %f194, %f183, %f185;
+ neg.f32 %f195, %f185;
+ add.f32 %f196, %f194, %f194;
+ fma.rn.f32 %f197, %f195, %f183, %f196;
+ mul.rn.f32 %f198, %f153, %f197;
+ add.f32 %f199, %f193, %f185;
+ sub.f32 %f200, %f185, %f199;
+ add.f32 %f201, %f193, %f200;
+ add.f32 %f202, %f198, %f201;
+ add.f32 %f203, %f199, %f202;
+ sub.f32 %f204, %f199, %f203;
+ add.f32 %f205, %f202, %f204;
+ mov.f32 %f206, 0f3F317200;
+ mul.rn.f32 %f207, %f182, %f206;
+ mov.f32 %f208, 0f35BFBE8E;
+ mul.rn.f32 %f209, %f182, %f208;
+ add.f32 %f210, %f207, %f203;
+ sub.f32 %f211, %f207, %f210;
+ add.f32 %f212, %f203, %f211;
+ add.f32 %f213, %f205, %f212;
+ add.f32 %f214, %f209, %f213;
+ add.f32 %f215, %f210, %f214;
+ sub.f32 %f216, %f210, %f215;
+ add.f32 %f217, %f214, %f216;
+ mul.rn.f32 %f218, %f171, %f215;
+ neg.f32 %f219, %f218;
+ fma.rn.f32 %f220, %f171, %f215, %f219;
+ fma.rn.f32 %f221, %f171, %f217, %f220;
+ mov.f32 %f222, 0f00000000;
+ fma.rn.f32 %f223, %f222, %f215, %f221;
+ add.rn.f32 %f224, %f218, %f223;
+ neg.f32 %f225, %f224;
+ add.rn.f32 %f226, %f218, %f225;
+ add.rn.f32 %f227, %f226, %f223;
+ mov.b32 %r56, %f224;
+ setp.eq.s32 %p14, %r56, 1118925336;
+ add.s32 %r57, %r56, -1;
+ mov.b32 %f228, %r57;
+ add.f32 %f229, %f227, 0f37000000;
+ selp.f32 %f230, %f228, %f224, %p14;
+ selp.f32 %f17, %f229, %f227, %p14;
+ mul.f32 %f231, %f230, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f232, %f231;
+ mov.f32 %f233, 0fBF317200;
+ fma.rn.f32 %f234, %f232, %f233, %f230;
+ mov.f32 %f235, 0fB5BFBE8E;
+ fma.rn.f32 %f236, %f232, %f235, %f234;
+ mul.f32 %f237, %f236, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f238, %f237;
+ add.f32 %f239, %f232, 0f00000000;
+ ex2.approx.f32 %f240, %f239;
+ mul.f32 %f241, %f238, %f240;
+ setp.lt.f32 %p15, %f230, 0fC2D20000;
+ selp.f32 %f242, 0f00000000, %f241, %p15;
+ setp.gt.f32 %p16, %f230, 0f42D20000;
+ selp.f32 %f1062, 0f7F800000, %f242, %p16;
+ setp.eq.f32 %p17, %f1062, 0f7F800000;
+ @%p17 bra BB0_5;
+
+ fma.rn.f32 %f1062, %f1062, %f17, %f1062;
+
+BB0_5:
+ mov.f32 %f996, 0f40000000;
+ cvt.rzi.f32.f32 %f995, %f996;
+ add.f32 %f994, %f995, %f995;
+ mov.f32 %f993, 0f40800000;
+ sub.f32 %f992, %f993, %f994;
+ abs.f32 %f991, %f992;
+ setp.lt.f32 %p18, %f14, 0f00000000;
+ setp.eq.f32 %p19, %f991, 0f3F800000;
+ and.pred %p1, %p18, %p19;
+ mov.b32 %r58, %f1062;
+ xor.b32 %r59, %r58, -2147483648;
+ mov.b32 %f243, %r59;
+ selp.f32 %f1064, %f243, %f1062, %p1;
+ setp.eq.f32 %p20, %f14, 0f00000000;
+ @%p20 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f246, %f14, %f14;
+ selp.f32 %f1064, %f246, 0f00000000, %p19;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p21, %f14, 0f00000000;
+ @%p21 bra BB0_9;
+
+ mov.f32 %f1030, 0f40800000;
+ cvt.rzi.f32.f32 %f245, %f1030;
+ setp.neu.f32 %p22, %f245, 0f40800000;
+ selp.f32 %f1064, 0f7FFFFFFF, %f1064, %p22;
+
+BB0_9:
+ abs.f32 %f997, %f14;
+ add.f32 %f247, %f997, 0f40800000;
+ mov.b32 %r60, %f247;
+ setp.lt.s32 %p24, %r60, 2139095040;
+ @%p24 bra BB0_14;
+
+ abs.f32 %f1028, %f14;
+ setp.gtu.f32 %p25, %f1028, 0f7F800000;
+ @%p25 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f1064, %f14, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f1029, %f14;
+ setp.neu.f32 %p26, %f1029, 0f7F800000;
+ @%p26 bra BB0_14;
+
+ selp.f32 %f1064, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ mov.f32 %f998, 0f00000000;
+ mov.f32 %f1067, 0f3F800000;
+ sub.f32 %f257, %f1067, %f1064;
+ setp.eq.f32 %p27, %f14, 0f3F800000;
+ selp.f32 %f258, 0f00000000, %f257, %p27;
+ cvt.sat.f32.f32 %f259, %f258;
+ ld.global.f32 %f260, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f261, %f13, %f13, %f260;
+ div.rn.f32 %f28, %f259, %f261;
+ mul.f32 %f262, %f1060, %f11;
+ fma.rn.f32 %f263, %f1059, %f10, %f262;
+ fma.rn.f32 %f29, %f1061, %f12, %f263;
+ ld.global.u32 %r63, [imageEnabled];
+ and.b32 %r64, %r63, 32;
+ ld.global.u32 %r65, [ignoreNormal];
+ or.b32 %r4, %r64, %r65;
+ ld.global.f32 %f264, [lightMatrix+24];
+ mul.f32 %f265, %f10, %f264;
+ ld.global.f32 %f266, [lightMatrix+28];
+ mul.f32 %f267, %f11, %f266;
+ neg.f32 %f268, %f267;
+ sub.f32 %f269, %f268, %f265;
+ ld.global.f32 %f270, [lightMatrix+32];
+ mul.f32 %f271, %f12, %f270;
+ sub.f32 %f272, %f269, %f271;
+ setp.gt.f32 %p28, %f272, 0f00000000;
+ ld.global.f32 %f273, [lightMatrix];
+ mul.f32 %f274, %f273, %f10;
+ sub.f32 %f275, %f998, %f274;
+ ld.global.f32 %f276, [lightMatrix+4];
+ mul.f32 %f277, %f276, %f11;
+ sub.f32 %f278, %f275, %f277;
+ ld.global.f32 %f279, [lightMatrix+8];
+ mul.f32 %f280, %f279, %f12;
+ sub.f32 %f281, %f278, %f280;
+ selp.f32 %f282, 0f3F800000, 0f00000000, %p28;
+ ld.global.f32 %f283, [lightMatrix+12];
+ mul.f32 %f284, %f283, %f10;
+ sub.f32 %f285, %f998, %f284;
+ ld.global.f32 %f286, [lightMatrix+16];
+ mul.f32 %f287, %f286, %f11;
+ sub.f32 %f288, %f285, %f287;
+ ld.global.f32 %f289, [lightMatrix+20];
+ mul.f32 %f290, %f289, %f12;
+ sub.f32 %f291, %f288, %f290;
+ ld.global.u32 %r61, [lightCookie];
+ ld.global.f32 %f292, [lightFOV];
+ fma.rn.f32 %f252, %f281, %f292, 0f3F000000;
+ fma.rn.f32 %f253, %f291, %f292, 0f3F000000;
+ // inline asm
+ call (%f248, %f249, %f250, %f251), _rt_texture_get_f_id, (%r61, %r31, %f252, %f253, %f998, %f998);
+ // inline asm
+ max.f32 %f293, %f248, %f249;
+ max.f32 %f294, %f293, %f250;
+ mul.f32 %f295, %f282, %f294;
+ mul.f32 %f296, %f28, %f295;
+ ld.global.f32 %f297, [lightColor+4];
+ ld.global.f32 %f298, [lightColor];
+ max.f32 %f299, %f298, %f297;
+ ld.global.f32 %f300, [lightColor+8];
+ max.f32 %f301, %f299, %f300;
+ mul.f32 %f302, %f296, %f301;
+ setp.lt.f32 %p29, %f302, 0f3727C5AC;
+ @%p29 bra BB0_87;
+ bra.uni BB0_15;
+
+BB0_87:
+ ld.global.u32 %r247, [imageEnabled];
+ and.b32 %r166, %r247, 1;
+ setp.eq.b32 %p115, %r166, 1;
+ @!%p115 bra BB0_89;
+ bra.uni BB0_88;
+
+BB0_88:
+ cvt.u64.u32 %rd147, %r2;
+ cvt.u64.u32 %rd148, %r3;
+ mov.u64 %rd151, image;
+ cvta.global.u64 %rd146, %rd151;
+ // inline asm
+ call (%rd145), _rt_buffer_get_64, (%rd146, %r31, %r32, %rd147, %rd148, %rd19, %rd19);
+ // inline asm
+ mov.u16 %rs106, 1;
+ mov.u16 %rs107, 0;
+ st.v4.u8 [%rd145], {%rs107, %rs107, %rs107, %rs106};
+ ld.global.u32 %r247, [imageEnabled];
+
+BB0_89:
+ and.b32 %r169, %r247, 8;
+ setp.eq.s32 %p116, %r169, 0;
+ @%p116 bra BB0_91;
+
+ cvt.u64.u32 %rd155, %r3;
+ cvt.u64.u32 %rd154, %r2;
+ mov.u64 %rd158, image_Mask;
+ cvta.global.u64 %rd153, %rd158;
+ // inline asm
+ call (%rd152), _rt_buffer_get_64, (%rd153, %r31, %r31, %rd154, %rd155, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f927, 0f00000000;
+ cvt.rzi.u32.f32 %r172, %f927;
+ cvt.u16.u32 %rs108, %r172;
+ mov.u16 %rs109, 255;
+ st.v2.u8 [%rd152], {%rs108, %rs109};
+ ld.global.u32 %r247, [imageEnabled];
+
+BB0_91:
+ cvt.u64.u32 %rd10, %r2;
+ cvt.u64.u32 %rd11, %r3;
+ and.b32 %r173, %r247, 4;
+ setp.eq.s32 %p117, %r173, 0;
+ @%p117 bra BB0_95;
+
+ ld.global.u32 %r174, [additive];
+ setp.eq.s32 %p118, %r174, 0;
+ mov.f32 %f928, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f928;}
+
+ // inline asm
+ @%p118 bra BB0_94;
+
+ mov.u64 %rd171, image_HDR;
+ cvta.global.u64 %rd160, %rd171;
+ mov.u32 %r178, 8;
+ // inline asm
+ call (%rd159), _rt_buffer_get_64, (%rd160, %r31, %r178, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs117, %rs118, %rs119, %rs120}, [%rd159];
+ // inline asm
+ { cvt.f32.f16 %f929, %rs117;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f930, %rs118;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f931, %rs119;}
+
+ // inline asm
+ // inline asm
+ call (%rd165), _rt_buffer_get_64, (%rd160, %r31, %r178, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ add.f32 %f932, %f929, 0f00000000;
+ add.f32 %f933, %f930, 0f00000000;
+ add.f32 %f934, %f931, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f934;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs115, %f933;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs114, %f932;}
+
+ // inline asm
+ st.v4.u16 [%rd165], {%rs114, %rs115, %rs116, %rs110};
+ bra.uni BB0_95;
+
+BB0_15:
+ mov.f32 %f1066, 0f00000000;
+ mul.f32 %f304, %f7, 0f3456BF95;
+ abs.f32 %f305, %f1059;
+ div.rn.f32 %f306, %f304, %f305;
+ abs.f32 %f307, %f1060;
+ mul.f32 %f308, %f8, 0f3456BF95;
+ div.rn.f32 %f309, %f308, %f307;
+ abs.f32 %f310, %f1061;
+ mul.f32 %f311, %f9, 0f3456BF95;
+ div.rn.f32 %f312, %f311, %f310;
+ abs.f32 %f313, %f306;
+ abs.f32 %f314, %f309;
+ abs.f32 %f315, %f312;
+ mov.f32 %f316, 0f38D1B717;
+ max.f32 %f317, %f313, %f316;
+ max.f32 %f318, %f314, %f316;
+ max.f32 %f319, %f315, %f316;
+ fma.rn.f32 %f33, %f1059, %f317, %f7;
+ fma.rn.f32 %f34, %f1060, %f318, %f8;
+ fma.rn.f32 %f35, %f1061, %f319, %f9;
+ ld.global.u32 %r243, [samples];
+ setp.lt.s32 %p30, %r243, 1;
+ @%p30 bra BB0_18;
+
+ mul.f32 %f321, %f33, 0f3456BF95;
+ abs.f32 %f322, %f321;
+ mul.f32 %f323, %f34, 0f3456BF95;
+ abs.f32 %f324, %f323;
+ mul.f32 %f325, %f35, 0f3456BF95;
+ abs.f32 %f326, %f325;
+ max.f32 %f327, %f322, %f324;
+ max.f32 %f328, %f327, %f326;
+ max.f32 %f36, %f328, %f316;
+ mov.f32 %f1066, 0f00000000;
+ mov.u32 %r242, 0;
+
+BB0_17:
+ add.u64 %rd28, %SP, 0;
+ cvta.to.local.u64 %rd29, %rd28;
+ cvt.rn.f32.s32 %f338, %r242;
+ mul.f32 %f339, %f338, 0f3DD32618;
+ cvt.rmi.f32.f32 %f340, %f339;
+ sub.f32 %f341, %f339, %f340;
+ mul.f32 %f342, %f338, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f343, %f342;
+ sub.f32 %f344, %f342, %f343;
+ mul.f32 %f345, %f338, 0f3DC74539;
+ cvt.rmi.f32.f32 %f346, %f345;
+ sub.f32 %f347, %f345, %f346;
+ add.f32 %f348, %f344, 0f4199851F;
+ add.f32 %f349, %f347, 0f4199851F;
+ add.f32 %f350, %f341, 0f4199851F;
+ mul.f32 %f351, %f344, %f349;
+ fma.rn.f32 %f352, %f341, %f348, %f351;
+ fma.rn.f32 %f353, %f350, %f347, %f352;
+ add.f32 %f354, %f341, %f353;
+ add.f32 %f355, %f344, %f353;
+ add.f32 %f356, %f347, %f353;
+ add.f32 %f357, %f354, %f355;
+ mul.f32 %f358, %f356, %f357;
+ cvt.rmi.f32.f32 %f359, %f358;
+ sub.f32 %f360, %f358, %f359;
+ add.f32 %f361, %f354, %f356;
+ mul.f32 %f362, %f355, %f361;
+ cvt.rmi.f32.f32 %f363, %f362;
+ sub.f32 %f364, %f362, %f363;
+ add.f32 %f365, %f355, %f356;
+ mul.f32 %f366, %f354, %f365;
+ cvt.rmi.f32.f32 %f367, %f366;
+ sub.f32 %f368, %f366, %f367;
+ fma.rn.f32 %f369, %f360, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f370, %f364, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f371, %f368, 0f40000000, 0fBF800000;
+ ld.global.f32 %f372, [lightRadius];
+ ld.global.f32 %f373, [lightPos];
+ fma.rn.f32 %f374, %f372, %f369, %f373;
+ ld.global.f32 %f375, [lightPos+4];
+ fma.rn.f32 %f376, %f372, %f370, %f375;
+ ld.global.f32 %f377, [lightPos+8];
+ fma.rn.f32 %f378, %f372, %f371, %f377;
+ sub.f32 %f379, %f374, %f7;
+ sub.f32 %f380, %f376, %f8;
+ sub.f32 %f381, %f378, %f9;
+ mul.f32 %f382, %f380, %f380;
+ fma.rn.f32 %f383, %f379, %f379, %f382;
+ fma.rn.f32 %f384, %f381, %f381, %f383;
+ sqrt.rn.f32 %f337, %f384;
+ rcp.rn.f32 %f385, %f337;
+ mul.f32 %f333, %f385, %f379;
+ mul.f32 %f334, %f385, %f380;
+ mul.f32 %f335, %f385, %f381;
+ ld.global.u32 %r70, [imageEnabled];
+ and.b32 %r71, %r70, 32;
+ setp.eq.s32 %p31, %r71, 0;
+ selp.f32 %f386, 0f3F800000, 0f41200000, %p31;
+ mul.f32 %f336, %f386, %f36;
+ mov.u32 %r72, 1065353216;
+ st.local.u32 [%rd29], %r72;
+ ld.global.u32 %r67, [root];
+ mov.u32 %r68, 1;
+ // inline asm
+ call _rt_trace_64, (%r67, %f33, %f34, %f35, %f333, %f334, %f335, %r68, %f336, %f337, %rd28, %r32);
+ // inline asm
+ ld.local.f32 %f387, [%rd29];
+ add.f32 %f1066, %f1066, %f387;
+ ld.global.u32 %r243, [samples];
+ add.s32 %r242, %r242, 1;
+ setp.lt.s32 %p32, %r242, %r243;
+ @%p32 bra BB0_17;
+
+BB0_18:
+ setp.eq.s32 %p33, %r243, 0;
+ @%p33 bra BB0_20;
+
+ cvt.rn.f32.s32 %f389, %r243;
+ div.rn.f32 %f1067, %f1066, %f389;
+
+BB0_20:
+ setp.eq.s32 %p34, %r4, 0;
+ selp.f32 %f390, %f29, 0f3F800000, %p34;
+ cvt.sat.f32.f32 %f391, %f390;
+ mul.f32 %f392, %f28, %f391;
+ mul.f32 %f393, %f1067, %f392;
+ ld.global.f32 %f394, [lightColor];
+ mul.f32 %f395, %f394, %f393;
+ ld.global.f32 %f396, [lightColor+4];
+ mul.f32 %f397, %f396, %f393;
+ ld.global.f32 %f398, [lightColor+8];
+ mul.f32 %f399, %f393, %f398;
+ mul.f32 %f42, %f248, %f395;
+ mul.f32 %f43, %f249, %f397;
+ mul.f32 %f44, %f250, %f399;
+ ld.global.u32 %r245, [imageEnabled];
+ and.b32 %r73, %r245, 8;
+ setp.eq.s32 %p35, %r73, 0;
+ @%p35 bra BB0_33;
+
+ mov.f32 %f1006, 0fB5BFBE8E;
+ mov.f32 %f1005, 0fBF317200;
+ mov.f32 %f1004, 0f35BFBE8E;
+ mov.f32 %f1003, 0f3F317200;
+ mov.f32 %f1002, 0f3DAAAABD;
+ mov.f32 %f1001, 0f3C4CAF63;
+ mov.f32 %f1000, 0f3B18F0FE;
+ cvt.u64.u32 %rd32, %r2;
+ cvt.u64.u32 %rd33, %r3;
+ mov.u64 %rd36, image_Mask;
+ cvta.global.u64 %rd31, %rd36;
+ // inline asm
+ call (%rd30), _rt_buffer_get_64, (%rd31, %r31, %r31, %rd32, %rd33, %rd19, %rd19);
+ // inline asm
+ abs.f32 %f46, %f1067;
+ setp.lt.f32 %p36, %f46, 0f00800000;
+ mul.f32 %f405, %f46, 0f4B800000;
+ selp.f32 %f406, 0fC3170000, 0fC2FE0000, %p36;
+ selp.f32 %f407, %f405, %f46, %p36;
+ mov.b32 %r76, %f407;
+ and.b32 %r77, %r76, 8388607;
+ or.b32 %r78, %r77, 1065353216;
+ mov.b32 %f408, %r78;
+ shr.u32 %r79, %r76, 23;
+ cvt.rn.f32.u32 %f409, %r79;
+ add.f32 %f410, %f406, %f409;
+ setp.gt.f32 %p37, %f408, 0f3FB504F3;
+ mul.f32 %f411, %f408, 0f3F000000;
+ add.f32 %f412, %f410, 0f3F800000;
+ selp.f32 %f413, %f411, %f408, %p37;
+ selp.f32 %f414, %f412, %f410, %p37;
+ add.f32 %f415, %f413, 0fBF800000;
+ add.f32 %f401, %f413, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f400,%f401;
+ // inline asm
+ add.f32 %f416, %f415, %f415;
+ mul.f32 %f417, %f400, %f416;
+ mul.f32 %f418, %f417, %f417;
+ fma.rn.f32 %f421, %f1000, %f418, %f1001;
+ fma.rn.f32 %f423, %f421, %f418, %f1002;
+ mul.rn.f32 %f424, %f423, %f418;
+ mul.rn.f32 %f425, %f424, %f417;
+ sub.f32 %f426, %f415, %f417;
+ neg.f32 %f427, %f417;
+ add.f32 %f428, %f426, %f426;
+ fma.rn.f32 %f429, %f427, %f415, %f428;
+ mul.rn.f32 %f430, %f400, %f429;
+ add.f32 %f431, %f425, %f417;
+ sub.f32 %f432, %f417, %f431;
+ add.f32 %f433, %f425, %f432;
+ add.f32 %f434, %f430, %f433;
+ add.f32 %f435, %f431, %f434;
+ sub.f32 %f436, %f431, %f435;
+ add.f32 %f437, %f434, %f436;
+ mul.rn.f32 %f439, %f414, %f1003;
+ mul.rn.f32 %f441, %f414, %f1004;
+ add.f32 %f442, %f439, %f435;
+ sub.f32 %f443, %f439, %f442;
+ add.f32 %f444, %f435, %f443;
+ add.f32 %f445, %f437, %f444;
+ add.f32 %f446, %f441, %f445;
+ add.f32 %f447, %f442, %f446;
+ sub.f32 %f448, %f442, %f447;
+ add.f32 %f449, %f446, %f448;
+ mov.f32 %f450, 0f3EE8BA2E;
+ mul.rn.f32 %f451, %f450, %f447;
+ neg.f32 %f452, %f451;
+ fma.rn.f32 %f453, %f450, %f447, %f452;
+ fma.rn.f32 %f454, %f450, %f449, %f453;
+ mov.f32 %f455, 0f00000000;
+ fma.rn.f32 %f456, %f455, %f447, %f454;
+ add.rn.f32 %f457, %f451, %f456;
+ neg.f32 %f458, %f457;
+ add.rn.f32 %f459, %f451, %f458;
+ add.rn.f32 %f460, %f459, %f456;
+ mov.b32 %r80, %f457;
+ setp.eq.s32 %p38, %r80, 1118925336;
+ add.s32 %r81, %r80, -1;
+ mov.b32 %f461, %r81;
+ add.f32 %f462, %f460, 0f37000000;
+ selp.f32 %f463, %f461, %f457, %p38;
+ selp.f32 %f47, %f462, %f460, %p38;
+ mul.f32 %f464, %f463, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f465, %f464;
+ fma.rn.f32 %f467, %f465, %f1005, %f463;
+ fma.rn.f32 %f469, %f465, %f1006, %f467;
+ mul.f32 %f470, %f469, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f471, %f470;
+ add.f32 %f472, %f465, 0f00000000;
+ ex2.approx.f32 %f473, %f472;
+ mul.f32 %f474, %f471, %f473;
+ setp.lt.f32 %p39, %f463, 0fC2D20000;
+ selp.f32 %f475, 0f00000000, %f474, %p39;
+ setp.gt.f32 %p40, %f463, 0f42D20000;
+ selp.f32 %f1068, 0f7F800000, %f475, %p40;
+ setp.eq.f32 %p41, %f1068, 0f7F800000;
+ @%p41 bra BB0_23;
+
+ fma.rn.f32 %f1068, %f1068, %f47, %f1068;
+
+BB0_23:
+ mov.f32 %f1034, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f1033, %f1034;
+ fma.rn.f32 %f1032, %f1033, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f1031, %f1032;
+ setp.lt.f32 %p42, %f1067, 0f00000000;
+ setp.eq.f32 %p43, %f1031, 0f3F800000;
+ and.pred %p2, %p42, %p43;
+ mov.b32 %r82, %f1068;
+ xor.b32 %r83, %r82, -2147483648;
+ mov.b32 %f476, %r83;
+ selp.f32 %f1070, %f476, %f1068, %p2;
+ setp.eq.f32 %p44, %f1067, 0f00000000;
+ @%p44 bra BB0_26;
+ bra.uni BB0_24;
+
+BB0_26:
+ add.f32 %f479, %f1067, %f1067;
+ selp.f32 %f1070, %f479, 0f00000000, %p43;
+ bra.uni BB0_27;
+
+BB0_111:
+ mov.u64 %rd272, image_HDR;
+ cvta.global.u64 %rd267, %rd272;
+ mov.u32 %r216, 8;
+ // inline asm
+ call (%rd266), _rt_buffer_get_64, (%rd267, %r31, %r216, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f969, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs172, %f969;}
+
+ // inline asm
+ mov.u16 %rs173, 0;
+ st.v4.u16 [%rd266], {%rs172, %rs172, %rs172, %rs173};
+
+BB0_112:
+ ld.global.u32 %r217, [additive];
+ setp.eq.s32 %p126, %r217, 0;
+ @%p126 bra BB0_114;
+
+ mov.u64 %rd285, image_RNM0;
+ cvta.global.u64 %rd274, %rd285;
+ mov.u32 %r221, 8;
+ // inline asm
+ call (%rd273), _rt_buffer_get_64, (%rd274, %r31, %r221, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs180, %rs181, %rs182, %rs183}, [%rd273];
+ // inline asm
+ { cvt.f32.f16 %f970, %rs180;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f971, %rs181;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f972, %rs182;}
+
+ // inline asm
+ // inline asm
+ call (%rd279), _rt_buffer_get_64, (%rd274, %r31, %r221, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ add.f32 %f973, %f970, 0f00000000;
+ add.f32 %f974, %f971, 0f00000000;
+ add.f32 %f975, %f972, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs179, %f975;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs178, %f974;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs177, %f973;}
+
+ // inline asm
+ mov.u16 %rs184, 0;
+ st.v4.u16 [%rd279], {%rs177, %rs178, %rs179, %rs184};
+ bra.uni BB0_115;
+
+BB0_114:
+ mov.u64 %rd292, image_RNM0;
+ cvta.global.u64 %rd287, %rd292;
+ mov.u32 %r223, 8;
+ // inline asm
+ call (%rd286), _rt_buffer_get_64, (%rd287, %r31, %r223, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f976, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs185, %f976;}
+
+ // inline asm
+ mov.u16 %rs186, 0;
+ st.v4.u16 [%rd286], {%rs185, %rs185, %rs185, %rs186};
+
+BB0_115:
+ ld.global.u32 %r224, [additive];
+ setp.eq.s32 %p127, %r224, 0;
+ @%p127 bra BB0_117;
+
+ mov.u64 %rd305, image_RNM1;
+ cvta.global.u64 %rd294, %rd305;
+ mov.u32 %r228, 8;
+ // inline asm
+ call (%rd293), _rt_buffer_get_64, (%rd294, %r31, %r228, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs193, %rs194, %rs195, %rs196}, [%rd293];
+ // inline asm
+ { cvt.f32.f16 %f977, %rs193;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f978, %rs194;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f979, %rs195;}
+
+ // inline asm
+ // inline asm
+ call (%rd299), _rt_buffer_get_64, (%rd294, %r31, %r228, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ add.f32 %f980, %f977, 0f00000000;
+ add.f32 %f981, %f978, 0f00000000;
+ add.f32 %f982, %f979, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs192, %f982;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs191, %f981;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs190, %f980;}
+
+ // inline asm
+ mov.u16 %rs197, 0;
+ st.v4.u16 [%rd299], {%rs190, %rs191, %rs192, %rs197};
+ bra.uni BB0_118;
+
+BB0_117:
+ mov.u64 %rd312, image_RNM1;
+ cvta.global.u64 %rd307, %rd312;
+ mov.u32 %r230, 8;
+ // inline asm
+ call (%rd306), _rt_buffer_get_64, (%rd307, %r31, %r230, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f983, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs198, %f983;}
+
+ // inline asm
+ mov.u16 %rs199, 0;
+ st.v4.u16 [%rd306], {%rs198, %rs198, %rs198, %rs199};
+
+BB0_118:
+ ld.global.u32 %r231, [additive];
+ setp.eq.s32 %p128, %r231, 0;
+ @%p128 bra BB0_120;
+
+ mov.u64 %rd325, image_RNM2;
+ cvta.global.u64 %rd314, %rd325;
+ mov.u32 %r235, 8;
+ // inline asm
+ call (%rd313), _rt_buffer_get_64, (%rd314, %r31, %r235, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs206, %rs207, %rs208, %rs209}, [%rd313];
+ // inline asm
+ { cvt.f32.f16 %f984, %rs206;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f985, %rs207;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f986, %rs208;}
+
+ // inline asm
+ // inline asm
+ call (%rd319), _rt_buffer_get_64, (%rd314, %r31, %r235, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ add.f32 %f987, %f984, 0f00000000;
+ add.f32 %f988, %f985, 0f00000000;
+ add.f32 %f989, %f986, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs205, %f989;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs204, %f988;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs203, %f987;}
+
+ // inline asm
+ mov.u16 %rs210, 0;
+ st.v4.u16 [%rd319], {%rs203, %rs204, %rs205, %rs210};
+ bra.uni BB0_121;
+
+BB0_120:
+ mov.u64 %rd332, image_RNM2;
+ cvta.global.u64 %rd327, %rd332;
+ mov.u32 %r237, 8;
+ // inline asm
+ call (%rd326), _rt_buffer_get_64, (%rd327, %r31, %r237, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f990, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs211, %f990;}
+
+ // inline asm
+ mov.u16 %rs212, 0;
+ st.v4.u16 [%rd326], {%rs211, %rs211, %rs211, %rs212};
+ bra.uni BB0_121;
+
+BB0_94:
+ mov.u64 %rd178, image_HDR;
+ cvta.global.u64 %rd173, %rd178;
+ mov.u32 %r180, 8;
+ // inline asm
+ call (%rd172), _rt_buffer_get_64, (%rd173, %r31, %r180, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f935, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f935;}
+
+ // inline asm
+ st.v4.u16 [%rd172], {%rs121, %rs121, %rs121, %rs110};
+
+BB0_95:
+ ld.global.u32 %r181, [additive];
+ setp.eq.s32 %p119, %r181, 0;
+ mov.f32 %f936, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f936;}
+
+ // inline asm
+ @%p119 bra BB0_97;
+
+ mov.u64 %rd191, image_RNM0;
+ cvta.global.u64 %rd180, %rd191;
+ mov.u32 %r185, 8;
+ // inline asm
+ call (%rd179), _rt_buffer_get_64, (%rd180, %r31, %r185, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs129, %rs130, %rs131, %rs132}, [%rd179];
+ // inline asm
+ { cvt.f32.f16 %f937, %rs129;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f938, %rs130;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f939, %rs131;}
+
+ // inline asm
+ // inline asm
+ call (%rd185), _rt_buffer_get_64, (%rd180, %r31, %r185, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ add.f32 %f940, %f937, 0f00000000;
+ add.f32 %f941, %f938, 0f00000000;
+ add.f32 %f942, %f939, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs128, %f942;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs127, %f941;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs126, %f940;}
+
+ // inline asm
+ st.v4.u16 [%rd185], {%rs126, %rs127, %rs128, %rs122};
+ bra.uni BB0_98;
+
+BB0_97:
+ mov.u64 %rd198, image_RNM0;
+ cvta.global.u64 %rd193, %rd198;
+ mov.u32 %r187, 8;
+ // inline asm
+ call (%rd192), _rt_buffer_get_64, (%rd193, %r31, %r187, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f943, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f943;}
+
+ // inline asm
+ st.v4.u16 [%rd192], {%rs133, %rs133, %rs133, %rs122};
+
+BB0_98:
+ ld.global.u32 %r188, [additive];
+ setp.eq.s32 %p120, %r188, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f936;}
+
+ // inline asm
+ @%p120 bra BB0_100;
+
+ mov.u64 %rd211, image_RNM1;
+ cvta.global.u64 %rd200, %rd211;
+ mov.u32 %r192, 8;
+ // inline asm
+ call (%rd199), _rt_buffer_get_64, (%rd200, %r31, %r192, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs141, %rs142, %rs143, %rs144}, [%rd199];
+ // inline asm
+ { cvt.f32.f16 %f945, %rs141;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f946, %rs142;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f947, %rs143;}
+
+ // inline asm
+ // inline asm
+ call (%rd205), _rt_buffer_get_64, (%rd200, %r31, %r192, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ add.f32 %f948, %f945, 0f00000000;
+ add.f32 %f949, %f946, 0f00000000;
+ add.f32 %f950, %f947, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f950;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs139, %f949;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs138, %f948;}
+
+ // inline asm
+ st.v4.u16 [%rd205], {%rs138, %rs139, %rs140, %rs134};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd218, image_RNM1;
+ cvta.global.u64 %rd213, %rd218;
+ mov.u32 %r194, 8;
+ // inline asm
+ call (%rd212), _rt_buffer_get_64, (%rd213, %r31, %r194, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f951, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f951;}
+
+ // inline asm
+ st.v4.u16 [%rd212], {%rs145, %rs145, %rs145, %rs134};
+
+BB0_101:
+ ld.global.u32 %r195, [additive];
+ setp.eq.s32 %p121, %r195, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f936;}
+
+ // inline asm
+ @%p121 bra BB0_103;
+
+ mov.u64 %rd231, image_RNM2;
+ cvta.global.u64 %rd220, %rd231;
+ mov.u32 %r199, 8;
+ // inline asm
+ call (%rd219), _rt_buffer_get_64, (%rd220, %r31, %r199, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs153, %rs154, %rs155, %rs156}, [%rd219];
+ // inline asm
+ { cvt.f32.f16 %f953, %rs153;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f954, %rs154;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f955, %rs155;}
+
+ // inline asm
+ // inline asm
+ call (%rd225), _rt_buffer_get_64, (%rd220, %r31, %r199, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ add.f32 %f956, %f953, 0f00000000;
+ add.f32 %f957, %f954, 0f00000000;
+ add.f32 %f958, %f955, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f958;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs151, %f957;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f956;}
+
+ // inline asm
+ st.v4.u16 [%rd225], {%rs150, %rs151, %rs152, %rs146};
+ bra.uni BB0_121;
+
+BB0_103:
+ mov.u64 %rd238, image_RNM2;
+ cvta.global.u64 %rd233, %rd238;
+ mov.u32 %r201, 8;
+ // inline asm
+ call (%rd232), _rt_buffer_get_64, (%rd233, %r31, %r201, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f959, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs157, %f959;}
+
+ // inline asm
+ st.v4.u16 [%rd232], {%rs157, %rs157, %rs157, %rs146};
+ bra.uni BB0_121;
+
+BB0_24:
+ setp.geu.f32 %p45, %f1067, 0f00000000;
+ @%p45 bra BB0_27;
+
+ mov.f32 %f1038, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f478, %f1038;
+ setp.neu.f32 %p46, %f478, 0f3EE8BA2E;
+ selp.f32 %f1070, 0f7FFFFFFF, %f1070, %p46;
+
+BB0_27:
+ abs.f32 %f1035, %f1067;
+ add.f32 %f480, %f1035, 0f3EE8BA2E;
+ mov.b32 %r84, %f480;
+ setp.lt.s32 %p48, %r84, 2139095040;
+ @%p48 bra BB0_32;
+
+ abs.f32 %f1036, %f1067;
+ setp.gtu.f32 %p49, %f1036, 0f7F800000;
+ @%p49 bra BB0_31;
+ bra.uni BB0_29;
+
+BB0_31:
+ add.f32 %f1070, %f1067, 0f3EE8BA2E;
+ bra.uni BB0_32;
+
+BB0_29:
+ abs.f32 %f1037, %f1067;
+ setp.neu.f32 %p50, %f1037, 0f7F800000;
+ @%p50 bra BB0_32;
+
+ selp.f32 %f1070, 0fFF800000, 0f7F800000, %p2;
+
+BB0_32:
+ mul.f32 %f481, %f1070, 0f437F0000;
+ setp.eq.f32 %p51, %f1067, 0f3F800000;
+ selp.f32 %f482, 0f437F0000, %f481, %p51;
+ cvt.rzi.u32.f32 %r85, %f482;
+ cvt.u16.u32 %rs17, %r85;
+ mov.u16 %rs18, 255;
+ st.v2.u8 [%rd30], {%rs17, %rs18};
+ ld.global.u32 %r245, [imageEnabled];
+
+BB0_33:
+ and.b32 %r86, %r245, 1;
+ setp.eq.b32 %p52, %r86, 1;
+ @!%p52 bra BB0_68;
+ bra.uni BB0_34;
+
+BB0_34:
+ mov.f32 %f1013, 0fB5BFBE8E;
+ mov.f32 %f1012, 0fBF317200;
+ mov.f32 %f1011, 0f35BFBE8E;
+ mov.f32 %f1010, 0f3F317200;
+ mov.f32 %f1009, 0f3DAAAABD;
+ mov.f32 %f1008, 0f3C4CAF63;
+ mov.f32 %f1007, 0f3B18F0FE;
+ abs.f32 %f59, %f42;
+ setp.lt.f32 %p53, %f59, 0f00800000;
+ mul.f32 %f488, %f59, 0f4B800000;
+ selp.f32 %f489, 0fC3170000, 0fC2FE0000, %p53;
+ selp.f32 %f490, %f488, %f59, %p53;
+ mov.b32 %r87, %f490;
+ and.b32 %r88, %r87, 8388607;
+ or.b32 %r89, %r88, 1065353216;
+ mov.b32 %f491, %r89;
+ shr.u32 %r90, %r87, 23;
+ cvt.rn.f32.u32 %f492, %r90;
+ add.f32 %f493, %f489, %f492;
+ setp.gt.f32 %p54, %f491, 0f3FB504F3;
+ mul.f32 %f494, %f491, 0f3F000000;
+ add.f32 %f495, %f493, 0f3F800000;
+ selp.f32 %f496, %f494, %f491, %p54;
+ selp.f32 %f497, %f495, %f493, %p54;
+ add.f32 %f498, %f496, 0fBF800000;
+ add.f32 %f484, %f496, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f483,%f484;
+ // inline asm
+ add.f32 %f499, %f498, %f498;
+ mul.f32 %f500, %f483, %f499;
+ mul.f32 %f501, %f500, %f500;
+ fma.rn.f32 %f504, %f1007, %f501, %f1008;
+ fma.rn.f32 %f506, %f504, %f501, %f1009;
+ mul.rn.f32 %f507, %f506, %f501;
+ mul.rn.f32 %f508, %f507, %f500;
+ sub.f32 %f509, %f498, %f500;
+ neg.f32 %f510, %f500;
+ add.f32 %f511, %f509, %f509;
+ fma.rn.f32 %f512, %f510, %f498, %f511;
+ mul.rn.f32 %f513, %f483, %f512;
+ add.f32 %f514, %f508, %f500;
+ sub.f32 %f515, %f500, %f514;
+ add.f32 %f516, %f508, %f515;
+ add.f32 %f517, %f513, %f516;
+ add.f32 %f518, %f514, %f517;
+ sub.f32 %f519, %f514, %f518;
+ add.f32 %f520, %f517, %f519;
+ mul.rn.f32 %f522, %f497, %f1010;
+ mul.rn.f32 %f524, %f497, %f1011;
+ add.f32 %f525, %f522, %f518;
+ sub.f32 %f526, %f522, %f525;
+ add.f32 %f527, %f518, %f526;
+ add.f32 %f528, %f520, %f527;
+ add.f32 %f529, %f524, %f528;
+ add.f32 %f530, %f525, %f529;
+ sub.f32 %f531, %f525, %f530;
+ add.f32 %f532, %f529, %f531;
+ mov.f32 %f533, 0f3EE66666;
+ mul.rn.f32 %f534, %f533, %f530;
+ neg.f32 %f535, %f534;
+ fma.rn.f32 %f536, %f533, %f530, %f535;
+ fma.rn.f32 %f537, %f533, %f532, %f536;
+ mov.f32 %f538, 0f00000000;
+ fma.rn.f32 %f539, %f538, %f530, %f537;
+ add.rn.f32 %f540, %f534, %f539;
+ neg.f32 %f541, %f540;
+ add.rn.f32 %f542, %f534, %f541;
+ add.rn.f32 %f543, %f542, %f539;
+ mov.b32 %r91, %f540;
+ setp.eq.s32 %p55, %r91, 1118925336;
+ add.s32 %r92, %r91, -1;
+ mov.b32 %f544, %r92;
+ add.f32 %f545, %f543, 0f37000000;
+ selp.f32 %f546, %f544, %f540, %p55;
+ selp.f32 %f60, %f545, %f543, %p55;
+ mul.f32 %f547, %f546, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f548, %f547;
+ fma.rn.f32 %f550, %f548, %f1012, %f546;
+ fma.rn.f32 %f552, %f548, %f1013, %f550;
+ mul.f32 %f553, %f552, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f554, %f553;
+ add.f32 %f555, %f548, 0f00000000;
+ ex2.approx.f32 %f556, %f555;
+ mul.f32 %f557, %f554, %f556;
+ setp.lt.f32 %p56, %f546, 0fC2D20000;
+ selp.f32 %f558, 0f00000000, %f557, %p56;
+ setp.gt.f32 %p57, %f546, 0f42D20000;
+ selp.f32 %f1071, 0f7F800000, %f558, %p57;
+ setp.eq.f32 %p58, %f1071, 0f7F800000;
+ @%p58 bra BB0_36;
+
+ fma.rn.f32 %f1071, %f1071, %f60, %f1071;
+
+BB0_36:
+ mov.f32 %f1042, 0f3E666666;
+ cvt.rzi.f32.f32 %f1041, %f1042;
+ fma.rn.f32 %f1040, %f1041, 0fC0000000, 0f3EE66666;
+ abs.f32 %f1039, %f1040;
+ setp.lt.f32 %p59, %f42, 0f00000000;
+ setp.eq.f32 %p60, %f1039, 0f3F800000;
+ and.pred %p3, %p59, %p60;
+ mov.b32 %r93, %f1071;
+ xor.b32 %r94, %r93, -2147483648;
+ mov.b32 %f559, %r94;
+ selp.f32 %f1073, %f559, %f1071, %p3;
+ setp.eq.f32 %p61, %f42, 0f00000000;
+ @%p61 bra BB0_39;
+ bra.uni BB0_37;
+
+BB0_39:
+ add.f32 %f562, %f42, %f42;
+ selp.f32 %f1073, %f562, 0f00000000, %p60;
+ bra.uni BB0_40;
+
+BB0_37:
+ setp.geu.f32 %p62, %f42, 0f00000000;
+ @%p62 bra BB0_40;
+
+ mov.f32 %f1052, 0f3EE66666;
+ cvt.rzi.f32.f32 %f561, %f1052;
+ setp.neu.f32 %p63, %f561, 0f3EE66666;
+ selp.f32 %f1073, 0f7FFFFFFF, %f1073, %p63;
+
+BB0_40:
+ abs.f32 %f1043, %f42;
+ add.f32 %f563, %f1043, 0f3EE66666;
+ mov.b32 %r95, %f563;
+ setp.lt.s32 %p65, %r95, 2139095040;
+ @%p65 bra BB0_45;
+
+ abs.f32 %f1050, %f42;
+ setp.gtu.f32 %p66, %f1050, 0f7F800000;
+ @%p66 bra BB0_44;
+ bra.uni BB0_42;
+
+BB0_44:
+ add.f32 %f1073, %f42, 0f3EE66666;
+ bra.uni BB0_45;
+
+BB0_42:
+ abs.f32 %f1051, %f42;
+ setp.neu.f32 %p67, %f1051, 0f7F800000;
+ @%p67 bra BB0_45;
+
+ selp.f32 %f1073, 0fFF800000, 0f7F800000, %p3;
+
+BB0_45:
+ mov.f32 %f1045, 0f00000000;
+ mov.f32 %f1044, 0f3EE66666;
+ mov.f32 %f1020, 0fB5BFBE8E;
+ mov.f32 %f1019, 0fBF317200;
+ mov.f32 %f1018, 0f35BFBE8E;
+ mov.f32 %f1017, 0f3F317200;
+ mov.f32 %f1016, 0f3DAAAABD;
+ mov.f32 %f1015, 0f3C4CAF63;
+ mov.f32 %f1014, 0f3B18F0FE;
+ setp.eq.f32 %p68, %f42, 0f3F800000;
+ selp.f32 %f71, 0f3F800000, %f1073, %p68;
+ abs.f32 %f72, %f43;
+ setp.lt.f32 %p69, %f72, 0f00800000;
+ mul.f32 %f566, %f72, 0f4B800000;
+ selp.f32 %f567, 0fC3170000, 0fC2FE0000, %p69;
+ selp.f32 %f568, %f566, %f72, %p69;
+ mov.b32 %r96, %f568;
+ and.b32 %r97, %r96, 8388607;
+ or.b32 %r98, %r97, 1065353216;
+ mov.b32 %f569, %r98;
+ shr.u32 %r99, %r96, 23;
+ cvt.rn.f32.u32 %f570, %r99;
+ add.f32 %f571, %f567, %f570;
+ setp.gt.f32 %p70, %f569, 0f3FB504F3;
+ mul.f32 %f572, %f569, 0f3F000000;
+ add.f32 %f573, %f571, 0f3F800000;
+ selp.f32 %f574, %f572, %f569, %p70;
+ selp.f32 %f575, %f573, %f571, %p70;
+ add.f32 %f576, %f574, 0fBF800000;
+ add.f32 %f565, %f574, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f564,%f565;
+ // inline asm
+ add.f32 %f577, %f576, %f576;
+ mul.f32 %f578, %f564, %f577;
+ mul.f32 %f579, %f578, %f578;
+ fma.rn.f32 %f582, %f1014, %f579, %f1015;
+ fma.rn.f32 %f584, %f582, %f579, %f1016;
+ mul.rn.f32 %f585, %f584, %f579;
+ mul.rn.f32 %f586, %f585, %f578;
+ sub.f32 %f587, %f576, %f578;
+ neg.f32 %f588, %f578;
+ add.f32 %f589, %f587, %f587;
+ fma.rn.f32 %f590, %f588, %f576, %f589;
+ mul.rn.f32 %f591, %f564, %f590;
+ add.f32 %f592, %f586, %f578;
+ sub.f32 %f593, %f578, %f592;
+ add.f32 %f594, %f586, %f593;
+ add.f32 %f595, %f591, %f594;
+ add.f32 %f596, %f592, %f595;
+ sub.f32 %f597, %f592, %f596;
+ add.f32 %f598, %f595, %f597;
+ mul.rn.f32 %f600, %f575, %f1017;
+ mul.rn.f32 %f602, %f575, %f1018;
+ add.f32 %f603, %f600, %f596;
+ sub.f32 %f604, %f600, %f603;
+ add.f32 %f605, %f596, %f604;
+ add.f32 %f606, %f598, %f605;
+ add.f32 %f607, %f602, %f606;
+ add.f32 %f608, %f603, %f607;
+ sub.f32 %f609, %f603, %f608;
+ add.f32 %f610, %f607, %f609;
+ mul.rn.f32 %f612, %f1044, %f608;
+ neg.f32 %f613, %f612;
+ fma.rn.f32 %f614, %f1044, %f608, %f613;
+ fma.rn.f32 %f615, %f1044, %f610, %f614;
+ fma.rn.f32 %f617, %f1045, %f608, %f615;
+ add.rn.f32 %f618, %f612, %f617;
+ neg.f32 %f619, %f618;
+ add.rn.f32 %f620, %f612, %f619;
+ add.rn.f32 %f621, %f620, %f617;
+ mov.b32 %r100, %f618;
+ setp.eq.s32 %p71, %r100, 1118925336;
+ add.s32 %r101, %r100, -1;
+ mov.b32 %f622, %r101;
+ add.f32 %f623, %f621, 0f37000000;
+ selp.f32 %f624, %f622, %f618, %p71;
+ selp.f32 %f73, %f623, %f621, %p71;
+ mul.f32 %f625, %f624, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f626, %f625;
+ fma.rn.f32 %f628, %f626, %f1019, %f624;
+ fma.rn.f32 %f630, %f626, %f1020, %f628;
+ mul.f32 %f631, %f630, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f632, %f631;
+ add.f32 %f633, %f626, 0f00000000;
+ ex2.approx.f32 %f634, %f633;
+ mul.f32 %f635, %f632, %f634;
+ setp.lt.f32 %p72, %f624, 0fC2D20000;
+ selp.f32 %f636, 0f00000000, %f635, %p72;
+ setp.gt.f32 %p73, %f624, 0f42D20000;
+ selp.f32 %f1074, 0f7F800000, %f636, %p73;
+ setp.eq.f32 %p74, %f1074, 0f7F800000;
+ @%p74 bra BB0_47;
+
+ fma.rn.f32 %f1074, %f1074, %f73, %f1074;
+
+BB0_47:
+ setp.lt.f32 %p75, %f43, 0f00000000;
+ and.pred %p4, %p75, %p60;
+ mov.b32 %r102, %f1074;
+ xor.b32 %r103, %r102, -2147483648;
+ mov.b32 %f637, %r103;
+ selp.f32 %f1076, %f637, %f1074, %p4;
+ setp.eq.f32 %p77, %f43, 0f00000000;
+ @%p77 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f640, %f43, %f43;
+ selp.f32 %f1076, %f640, 0f00000000, %p60;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p78, %f43, 0f00000000;
+ @%p78 bra BB0_51;
+
+ mov.f32 %f1049, 0f3EE66666;
+ cvt.rzi.f32.f32 %f639, %f1049;
+ setp.neu.f32 %p79, %f639, 0f3EE66666;
+ selp.f32 %f1076, 0f7FFFFFFF, %f1076, %p79;
+
+BB0_51:
+ abs.f32 %f1053, %f43;
+ add.f32 %f641, %f1053, 0f3EE66666;
+ mov.b32 %r104, %f641;
+ setp.lt.s32 %p81, %r104, 2139095040;
+ @%p81 bra BB0_56;
+
+ abs.f32 %f1054, %f43;
+ setp.gtu.f32 %p82, %f1054, 0f7F800000;
+ @%p82 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f1076, %f43, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ abs.f32 %f1055, %f43;
+ setp.neu.f32 %p83, %f1055, 0f7F800000;
+ @%p83 bra BB0_56;
+
+ selp.f32 %f1076, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f1047, 0f00000000;
+ mov.f32 %f1046, 0f3EE66666;
+ mov.f32 %f1027, 0fB5BFBE8E;
+ mov.f32 %f1026, 0fBF317200;
+ mov.f32 %f1025, 0f35BFBE8E;
+ mov.f32 %f1024, 0f3F317200;
+ mov.f32 %f1023, 0f3DAAAABD;
+ mov.f32 %f1022, 0f3C4CAF63;
+ mov.f32 %f1021, 0f3B18F0FE;
+ setp.eq.f32 %p84, %f43, 0f3F800000;
+ selp.f32 %f84, 0f3F800000, %f1076, %p84;
+ abs.f32 %f85, %f44;
+ setp.lt.f32 %p85, %f85, 0f00800000;
+ mul.f32 %f644, %f85, 0f4B800000;
+ selp.f32 %f645, 0fC3170000, 0fC2FE0000, %p85;
+ selp.f32 %f646, %f644, %f85, %p85;
+ mov.b32 %r105, %f646;
+ and.b32 %r106, %r105, 8388607;
+ or.b32 %r107, %r106, 1065353216;
+ mov.b32 %f647, %r107;
+ shr.u32 %r108, %r105, 23;
+ cvt.rn.f32.u32 %f648, %r108;
+ add.f32 %f649, %f645, %f648;
+ setp.gt.f32 %p86, %f647, 0f3FB504F3;
+ mul.f32 %f650, %f647, 0f3F000000;
+ add.f32 %f651, %f649, 0f3F800000;
+ selp.f32 %f652, %f650, %f647, %p86;
+ selp.f32 %f653, %f651, %f649, %p86;
+ add.f32 %f654, %f652, 0fBF800000;
+ add.f32 %f643, %f652, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f642,%f643;
+ // inline asm
+ add.f32 %f655, %f654, %f654;
+ mul.f32 %f656, %f642, %f655;
+ mul.f32 %f657, %f656, %f656;
+ fma.rn.f32 %f660, %f1021, %f657, %f1022;
+ fma.rn.f32 %f662, %f660, %f657, %f1023;
+ mul.rn.f32 %f663, %f662, %f657;
+ mul.rn.f32 %f664, %f663, %f656;
+ sub.f32 %f665, %f654, %f656;
+ neg.f32 %f666, %f656;
+ add.f32 %f667, %f665, %f665;
+ fma.rn.f32 %f668, %f666, %f654, %f667;
+ mul.rn.f32 %f669, %f642, %f668;
+ add.f32 %f670, %f664, %f656;
+ sub.f32 %f671, %f656, %f670;
+ add.f32 %f672, %f664, %f671;
+ add.f32 %f673, %f669, %f672;
+ add.f32 %f674, %f670, %f673;
+ sub.f32 %f675, %f670, %f674;
+ add.f32 %f676, %f673, %f675;
+ mul.rn.f32 %f678, %f653, %f1024;
+ mul.rn.f32 %f680, %f653, %f1025;
+ add.f32 %f681, %f678, %f674;
+ sub.f32 %f682, %f678, %f681;
+ add.f32 %f683, %f674, %f682;
+ add.f32 %f684, %f676, %f683;
+ add.f32 %f685, %f680, %f684;
+ add.f32 %f686, %f681, %f685;
+ sub.f32 %f687, %f681, %f686;
+ add.f32 %f688, %f685, %f687;
+ mul.rn.f32 %f690, %f1046, %f686;
+ neg.f32 %f691, %f690;
+ fma.rn.f32 %f692, %f1046, %f686, %f691;
+ fma.rn.f32 %f693, %f1046, %f688, %f692;
+ fma.rn.f32 %f695, %f1047, %f686, %f693;
+ add.rn.f32 %f696, %f690, %f695;
+ neg.f32 %f697, %f696;
+ add.rn.f32 %f698, %f690, %f697;
+ add.rn.f32 %f699, %f698, %f695;
+ mov.b32 %r109, %f696;
+ setp.eq.s32 %p87, %r109, 1118925336;
+ add.s32 %r110, %r109, -1;
+ mov.b32 %f700, %r110;
+ add.f32 %f701, %f699, 0f37000000;
+ selp.f32 %f702, %f700, %f696, %p87;
+ selp.f32 %f86, %f701, %f699, %p87;
+ mul.f32 %f703, %f702, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f704, %f703;
+ fma.rn.f32 %f706, %f704, %f1026, %f702;
+ fma.rn.f32 %f708, %f704, %f1027, %f706;
+ mul.f32 %f709, %f708, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f710, %f709;
+ add.f32 %f711, %f704, 0f00000000;
+ ex2.approx.f32 %f712, %f711;
+ mul.f32 %f713, %f710, %f712;
+ setp.lt.f32 %p88, %f702, 0fC2D20000;
+ selp.f32 %f714, 0f00000000, %f713, %p88;
+ setp.gt.f32 %p89, %f702, 0f42D20000;
+ selp.f32 %f1077, 0f7F800000, %f714, %p89;
+ setp.eq.f32 %p90, %f1077, 0f7F800000;
+ @%p90 bra BB0_58;
+
+ fma.rn.f32 %f1077, %f1077, %f86, %f1077;
+
+BB0_58:
+ setp.lt.f32 %p91, %f44, 0f00000000;
+ and.pred %p5, %p91, %p60;
+ mov.b32 %r111, %f1077;
+ xor.b32 %r112, %r111, -2147483648;
+ mov.b32 %f715, %r112;
+ selp.f32 %f1079, %f715, %f1077, %p5;
+ setp.eq.f32 %p93, %f44, 0f00000000;
+ @%p93 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f718, %f44, %f44;
+ selp.f32 %f1079, %f718, 0f00000000, %p60;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p94, %f44, 0f00000000;
+ @%p94 bra BB0_62;
+
+ mov.f32 %f1048, 0f3EE66666;
+ cvt.rzi.f32.f32 %f717, %f1048;
+ setp.neu.f32 %p95, %f717, 0f3EE66666;
+ selp.f32 %f1079, 0f7FFFFFFF, %f1079, %p95;
+
+BB0_62:
+ abs.f32 %f1056, %f44;
+ add.f32 %f719, %f1056, 0f3EE66666;
+ mov.b32 %r113, %f719;
+ setp.lt.s32 %p97, %r113, 2139095040;
+ @%p97 bra BB0_67;
+
+ abs.f32 %f1057, %f44;
+ setp.gtu.f32 %p98, %f1057, 0f7F800000;
+ @%p98 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f1079, %f44, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ abs.f32 %f1058, %f44;
+ setp.neu.f32 %p99, %f1058, 0f7F800000;
+ @%p99 bra BB0_67;
+
+ selp.f32 %f1079, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ mov.u32 %r238, 4;
+ setp.eq.f32 %p100, %f44, 0f3F800000;
+ selp.f32 %f720, 0f3F800000, %f1079, %p100;
+ cvt.u64.u32 %rd40, %r3;
+ cvt.u64.u32 %rd39, %r2;
+ mov.u64 %rd43, image;
+ cvta.global.u64 %rd38, %rd43;
+ // inline asm
+ call (%rd37), _rt_buffer_get_64, (%rd38, %r31, %r238, %rd39, %rd40, %rd19, %rd19);
+ // inline asm
+ cvt.sat.f32.f32 %f721, %f720;
+ mul.f32 %f722, %f721, 0f437FFD71;
+ cvt.rzi.u32.f32 %r116, %f722;
+ cvt.sat.f32.f32 %f723, %f84;
+ mul.f32 %f724, %f723, 0f437FFD71;
+ cvt.rzi.u32.f32 %r117, %f724;
+ cvt.sat.f32.f32 %f725, %f71;
+ mul.f32 %f726, %f725, 0f437FFD71;
+ cvt.rzi.u32.f32 %r118, %f726;
+ cvt.u16.u32 %rs19, %r116;
+ cvt.u16.u32 %rs20, %r118;
+ cvt.u16.u32 %rs21, %r117;
+ mov.u16 %rs22, 255;
+ st.v4.u8 [%rd37], {%rs19, %rs21, %rs20, %rs22};
+ ld.global.u32 %r245, [imageEnabled];
+
+BB0_68:
+ and.b32 %r119, %r245, 4;
+ setp.eq.s32 %p101, %r119, 0;
+ @%p101 bra BB0_72;
+
+ ld.global.u32 %r120, [additive];
+ setp.eq.s32 %p102, %r120, 0;
+ cvt.u64.u32 %rd3, %r2;
+ cvt.u64.u32 %rd4, %r3;
+ mov.f32 %f727, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f727;}
+
+ // inline asm
+ @%p102 bra BB0_71;
+
+ mov.u64 %rd56, image_HDR;
+ cvta.global.u64 %rd45, %rd56;
+ mov.u32 %r124, 8;
+ // inline asm
+ call (%rd44), _rt_buffer_get_64, (%rd45, %r31, %r124, %rd3, %rd4, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs30, %rs31, %rs32, %rs33}, [%rd44];
+ // inline asm
+ { cvt.f32.f16 %f728, %rs30;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f729, %rs31;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f730, %rs32;}
+
+ // inline asm
+ // inline asm
+ call (%rd50), _rt_buffer_get_64, (%rd45, %r31, %r124, %rd3, %rd4, %rd19, %rd19);
+ // inline asm
+ add.f32 %f731, %f42, %f728;
+ add.f32 %f732, %f43, %f729;
+ add.f32 %f733, %f44, %f730;
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f733;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f732;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f731;}
+
+ // inline asm
+ st.v4.u16 [%rd50], {%rs27, %rs28, %rs29, %rs23};
+ bra.uni BB0_72;
+
+BB0_71:
+ mov.u64 %rd63, image_HDR;
+ cvta.global.u64 %rd58, %rd63;
+ mov.u32 %r126, 8;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd58, %r31, %r126, %rd3, %rd4, %rd19, %rd19);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f44;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs35, %f43;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f42;}
+
+ // inline asm
+ st.v4.u16 [%rd57], {%rs34, %rs35, %rs36, %rs23};
+
+BB0_72:
+ mov.u32 %r239, 4;
+ mul.f32 %f740, %f28, %f1067;
+ ld.global.f32 %f741, [lightColor];
+ mul.f32 %f742, %f740, %f741;
+ ld.global.f32 %f743, [lightColor+4];
+ mul.f32 %f744, %f740, %f743;
+ ld.global.f32 %f745, [lightColor+8];
+ mul.f32 %f746, %f740, %f745;
+ mul.f32 %f97, %f248, %f742;
+ mul.f32 %f98, %f249, %f744;
+ mul.f32 %f99, %f250, %f746;
+ ld.global.v2.u32 {%r129, %r130}, [pixelID];
+ cvt.u64.u32 %rd66, %r129;
+ cvt.u64.u32 %rd67, %r130;
+ mov.u64 %rd70, uvtangent;
+ cvta.global.u64 %rd65, %rd70;
+ // inline asm
+ call (%rd64), _rt_buffer_get_64, (%rd65, %r31, %r239, %rd66, %rd67, %rd19, %rd19);
+ // inline asm
+ ld.u32 %r15, [%rd64];
+ shr.u32 %r16, %r15, 16;
+ cvt.u16.u32 %rs37, %r16;
+ and.b16 %rs38, %rs37, 255;
+ cvt.u16.u32 %rs39, %r15;
+ or.b16 %rs40, %rs39, %rs38;
+ setp.eq.s16 %p103, %rs40, 0;
+ mov.f32 %f1086, 0f00000000;
+ mov.f32 %f1080, %f1086;
+ mov.f32 %f1081, %f1086;
+ mov.f32 %f1082, %f1086;
+ @%p103 bra BB0_74;
+
+ ld.u8 %rs41, [%rd64+1];
+ and.b16 %rs43, %rs39, 255;
+ cvt.rn.f32.u16 %f747, %rs43;
+ div.rn.f32 %f748, %f747, 0f437F0000;
+ fma.rn.f32 %f749, %f748, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f750, %rs41;
+ div.rn.f32 %f751, %f750, 0f437F0000;
+ fma.rn.f32 %f752, %f751, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f753, %rs38;
+ div.rn.f32 %f754, %f753, 0f437F0000;
+ fma.rn.f32 %f755, %f754, 0f40000000, 0fBF800000;
+ mul.f32 %f756, %f752, %f752;
+ fma.rn.f32 %f757, %f749, %f749, %f756;
+ fma.rn.f32 %f758, %f755, %f755, %f757;
+ sqrt.rn.f32 %f759, %f758;
+ rcp.rn.f32 %f760, %f759;
+ mul.f32 %f1080, %f749, %f760;
+ mul.f32 %f1081, %f752, %f760;
+ mul.f32 %f1082, %f755, %f760;
+
+BB0_74:
+ mov.u32 %r240, 4;
+ mul.f32 %f764, %f1061, %f1081;
+ mul.f32 %f765, %f1060, %f1082;
+ sub.f32 %f766, %f765, %f764;
+ mul.f32 %f767, %f1059, %f1082;
+ mul.f32 %f768, %f1061, %f1080;
+ sub.f32 %f769, %f768, %f767;
+ mul.f32 %f770, %f1060, %f1080;
+ mul.f32 %f771, %f1059, %f1081;
+ sub.f32 %f772, %f771, %f770;
+ setp.lt.u32 %p104, %r15, 16777216;
+ selp.f32 %f773, 0fBF800000, 0f3F800000, %p104;
+ mul.f32 %f774, %f766, %f773;
+ mul.f32 %f775, %f769, %f773;
+ mul.f32 %f776, %f772, %f773;
+ mul.f32 %f777, %f774, 0f00000000;
+ mul.f32 %f778, %f775, 0f00000000;
+ mul.f32 %f779, %f776, 0f00000000;
+ fma.rn.f32 %f780, %f1080, 0f3F5105EC, %f777;
+ fma.rn.f32 %f781, %f1081, 0f3F5105EC, %f778;
+ fma.rn.f32 %f782, %f1082, 0f3F5105EC, %f779;
+ mul.f32 %f106, %f1059, 0f3F13CD3A;
+ add.f32 %f107, %f106, %f780;
+ mul.f32 %f108, %f1060, 0f3F13CD3A;
+ add.f32 %f109, %f108, %f781;
+ mul.f32 %f110, %f1061, 0f3F13CD3A;
+ add.f32 %f111, %f110, %f782;
+ ld.global.v2.u32 {%r135, %r136}, [pixelID];
+ cvt.u64.u32 %rd73, %r135;
+ cvt.u64.u32 %rd74, %r136;
+ // inline asm
+ call (%rd71), _rt_buffer_get_64, (%rd65, %r31, %r240, %rd73, %rd74, %rd19, %rd19);
+ // inline asm
+ ld.u32 %r17, [%rd71];
+ shr.u32 %r18, %r17, 16;
+ cvt.u16.u32 %rs46, %r18;
+ and.b16 %rs47, %rs46, 255;
+ cvt.u16.u32 %rs48, %r17;
+ or.b16 %rs49, %rs48, %rs47;
+ setp.eq.s16 %p105, %rs49, 0;
+ mov.f32 %f1083, %f1086;
+ mov.f32 %f1084, %f1086;
+ mov.f32 %f1085, %f1086;
+ @%p105 bra BB0_76;
+
+ ld.u8 %rs50, [%rd71+1];
+ and.b16 %rs52, %rs48, 255;
+ cvt.rn.f32.u16 %f783, %rs52;
+ div.rn.f32 %f784, %f783, 0f437F0000;
+ fma.rn.f32 %f785, %f784, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f786, %rs50;
+ div.rn.f32 %f787, %f786, 0f437F0000;
+ fma.rn.f32 %f788, %f787, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f789, %rs47;
+ div.rn.f32 %f790, %f789, 0f437F0000;
+ fma.rn.f32 %f791, %f790, 0f40000000, 0fBF800000;
+ mul.f32 %f792, %f788, %f788;
+ fma.rn.f32 %f793, %f785, %f785, %f792;
+ fma.rn.f32 %f794, %f791, %f791, %f793;
+ sqrt.rn.f32 %f795, %f794;
+ rcp.rn.f32 %f796, %f795;
+ mul.f32 %f1083, %f785, %f796;
+ mul.f32 %f1084, %f788, %f796;
+ mul.f32 %f1085, %f791, %f796;
+
+BB0_76:
+ mov.u32 %r241, 4;
+ mul.f32 %f800, %f1061, %f1084;
+ mul.f32 %f801, %f1060, %f1085;
+ sub.f32 %f802, %f801, %f800;
+ mul.f32 %f803, %f1059, %f1085;
+ mul.f32 %f804, %f1061, %f1083;
+ sub.f32 %f805, %f804, %f803;
+ mul.f32 %f806, %f1060, %f1083;
+ mul.f32 %f807, %f1059, %f1084;
+ sub.f32 %f808, %f807, %f806;
+ setp.lt.u32 %p106, %r17, 16777216;
+ selp.f32 %f809, 0fBF800000, 0f3F800000, %p106;
+ mul.f32 %f810, %f802, %f809;
+ mul.f32 %f811, %f805, %f809;
+ mul.f32 %f812, %f808, %f809;
+ mul.f32 %f813, %f810, 0f3F3504F3;
+ mul.f32 %f814, %f811, 0f3F3504F3;
+ mul.f32 %f815, %f812, 0f3F3504F3;
+ fma.rn.f32 %f816, %f1083, 0fBED105EC, %f813;
+ fma.rn.f32 %f817, %f1084, 0fBED105EC, %f814;
+ fma.rn.f32 %f818, %f1085, 0fBED105EC, %f815;
+ add.f32 %f118, %f106, %f816;
+ add.f32 %f119, %f108, %f817;
+ add.f32 %f120, %f110, %f818;
+ ld.global.v2.u32 {%r141, %r142}, [pixelID];
+ cvt.u64.u32 %rd80, %r141;
+ cvt.u64.u32 %rd81, %r142;
+ // inline asm
+ call (%rd78), _rt_buffer_get_64, (%rd65, %r31, %r241, %rd80, %rd81, %rd19, %rd19);
+ // inline asm
+ ld.u32 %r19, [%rd78];
+ shr.u32 %r20, %r19, 16;
+ cvt.u16.u32 %rs55, %r20;
+ and.b16 %rs56, %rs55, 255;
+ cvt.u16.u32 %rs57, %r19;
+ or.b16 %rs58, %rs57, %rs56;
+ setp.eq.s16 %p107, %rs58, 0;
+ mov.f32 %f1087, %f1086;
+ mov.f32 %f1088, %f1086;
+ @%p107 bra BB0_78;
+
+ ld.u8 %rs59, [%rd78+1];
+ and.b16 %rs61, %rs57, 255;
+ cvt.rn.f32.u16 %f819, %rs61;
+ div.rn.f32 %f820, %f819, 0f437F0000;
+ fma.rn.f32 %f821, %f820, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f822, %rs59;
+ div.rn.f32 %f823, %f822, 0f437F0000;
+ fma.rn.f32 %f824, %f823, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f825, %rs56;
+ div.rn.f32 %f826, %f825, 0f437F0000;
+ fma.rn.f32 %f827, %f826, 0f40000000, 0fBF800000;
+ mul.f32 %f828, %f824, %f824;
+ fma.rn.f32 %f829, %f821, %f821, %f828;
+ fma.rn.f32 %f830, %f827, %f827, %f829;
+ sqrt.rn.f32 %f831, %f830;
+ rcp.rn.f32 %f832, %f831;
+ mul.f32 %f1086, %f821, %f832;
+ mul.f32 %f1087, %f824, %f832;
+ mul.f32 %f1088, %f827, %f832;
+
+BB0_78:
+ mul.f32 %f834, %f1061, %f1087;
+ mul.f32 %f835, %f1060, %f1088;
+ sub.f32 %f836, %f835, %f834;
+ mul.f32 %f837, %f1059, %f1088;
+ mul.f32 %f838, %f1061, %f1086;
+ sub.f32 %f839, %f838, %f837;
+ mul.f32 %f840, %f1060, %f1086;
+ mul.f32 %f841, %f1059, %f1087;
+ sub.f32 %f842, %f841, %f840;
+ setp.lt.u32 %p108, %r19, 16777216;
+ selp.f32 %f843, 0fBF800000, 0f3F800000, %p108;
+ mul.f32 %f844, %f836, %f843;
+ mul.f32 %f845, %f839, %f843;
+ mul.f32 %f846, %f842, %f843;
+ mul.f32 %f847, %f844, 0fBF3504F3;
+ mul.f32 %f848, %f845, 0fBF3504F3;
+ mul.f32 %f849, %f846, 0fBF3504F3;
+ fma.rn.f32 %f850, %f1086, 0fBED105EC, %f847;
+ fma.rn.f32 %f851, %f1087, 0fBED105EC, %f848;
+ fma.rn.f32 %f852, %f1088, 0fBED105EC, %f849;
+ add.f32 %f853, %f106, %f850;
+ add.f32 %f854, %f108, %f851;
+ add.f32 %f855, %f110, %f852;
+ mul.f32 %f856, %f11, %f109;
+ fma.rn.f32 %f857, %f10, %f107, %f856;
+ fma.rn.f32 %f858, %f12, %f111, %f857;
+ cvt.sat.f32.f32 %f859, %f858;
+ mul.f32 %f860, %f97, %f859;
+ mul.f32 %f861, %f98, %f859;
+ mul.f32 %f862, %f99, %f859;
+ mul.f32 %f863, %f11, %f119;
+ fma.rn.f32 %f864, %f10, %f118, %f863;
+ fma.rn.f32 %f865, %f12, %f120, %f864;
+ cvt.sat.f32.f32 %f866, %f865;
+ mul.f32 %f867, %f97, %f866;
+ mul.f32 %f868, %f98, %f866;
+ mul.f32 %f869, %f99, %f866;
+ mul.f32 %f870, %f11, %f854;
+ fma.rn.f32 %f871, %f10, %f853, %f870;
+ fma.rn.f32 %f872, %f12, %f855, %f871;
+ cvt.sat.f32.f32 %f873, %f872;
+ mul.f32 %f874, %f97, %f873;
+ mul.f32 %f875, %f98, %f873;
+ mul.f32 %f876, %f99, %f873;
+ cvt.sat.f32.f32 %f877, %f29;
+ mul.f32 %f878, %f97, %f877;
+ mul.f32 %f879, %f98, %f877;
+ mul.f32 %f880, %f99, %f877;
+ add.f32 %f881, %f860, %f867;
+ add.f32 %f882, %f861, %f868;
+ add.f32 %f883, %f862, %f869;
+ add.f32 %f884, %f881, %f874;
+ add.f32 %f885, %f882, %f875;
+ add.f32 %f886, %f883, %f876;
+ mul.f32 %f887, %f884, 0f3F13CD3A;
+ mul.f32 %f888, %f885, 0f3F13CD3A;
+ mul.f32 %f889, %f886, 0f3F13CD3A;
+ div.rn.f32 %f890, %f878, %f887;
+ div.rn.f32 %f891, %f879, %f888;
+ div.rn.f32 %f892, %f880, %f889;
+ setp.eq.f32 %p109, %f878, 0f00000000;
+ selp.f32 %f893, 0f00000000, %f890, %p109;
+ setp.eq.f32 %p110, %f879, 0f00000000;
+ selp.f32 %f894, 0f00000000, %f891, %p110;
+ setp.eq.f32 %p111, %f880, 0f00000000;
+ selp.f32 %f895, 0f00000000, %f892, %p111;
+ mul.f32 %f127, %f860, %f893;
+ mul.f32 %f128, %f861, %f894;
+ mul.f32 %f129, %f862, %f895;
+ mul.f32 %f130, %f867, %f893;
+ mul.f32 %f131, %f868, %f894;
+ mul.f32 %f132, %f869, %f895;
+ mul.f32 %f133, %f874, %f893;
+ mul.f32 %f134, %f875, %f894;
+ mul.f32 %f135, %f876, %f895;
+ ld.global.u32 %r145, [additive];
+ setp.eq.s32 %p112, %r145, 0;
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ mov.f32 %f833, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f833;}
+
+ // inline asm
+ @%p112 bra BB0_80;
+
+ mov.u64 %rd97, image_RNM0;
+ cvta.global.u64 %rd86, %rd97;
+ mov.u32 %r149, 8;
+ // inline asm
+ call (%rd85), _rt_buffer_get_64, (%rd86, %r31, %r149, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs71, %rs72, %rs73, %rs74}, [%rd85];
+ // inline asm
+ { cvt.f32.f16 %f896, %rs71;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f897, %rs72;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f898, %rs73;}
+
+ // inline asm
+ // inline asm
+ call (%rd91), _rt_buffer_get_64, (%rd86, %r31, %r149, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ add.f32 %f899, %f127, %f896;
+ add.f32 %f900, %f128, %f897;
+ add.f32 %f901, %f129, %f898;
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f901;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f900;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs68, %f899;}
+
+ // inline asm
+ st.v4.u16 [%rd91], {%rs68, %rs69, %rs70, %rs64};
+ bra.uni BB0_81;
+
+BB0_80:
+ mov.u64 %rd104, image_RNM0;
+ cvta.global.u64 %rd99, %rd104;
+ mov.u32 %r151, 8;
+ // inline asm
+ call (%rd98), _rt_buffer_get_64, (%rd99, %r31, %r151, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f129;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f128;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs75, %f127;}
+
+ // inline asm
+ st.v4.u16 [%rd98], {%rs75, %rs76, %rs77, %rs64};
+
+BB0_81:
+ ld.global.u32 %r152, [additive];
+ setp.eq.s32 %p113, %r152, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f833;}
+
+ // inline asm
+ @%p113 bra BB0_83;
+
+ mov.u64 %rd117, image_RNM1;
+ cvta.global.u64 %rd106, %rd117;
+ mov.u32 %r156, 8;
+ // inline asm
+ call (%rd105), _rt_buffer_get_64, (%rd106, %r31, %r156, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs85, %rs86, %rs87, %rs88}, [%rd105];
+ // inline asm
+ { cvt.f32.f16 %f906, %rs85;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f907, %rs86;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f908, %rs87;}
+
+ // inline asm
+ // inline asm
+ call (%rd111), _rt_buffer_get_64, (%rd106, %r31, %r156, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ add.f32 %f909, %f130, %f906;
+ add.f32 %f910, %f131, %f907;
+ add.f32 %f911, %f132, %f908;
+ // inline asm
+ { cvt.rn.f16.f32 %rs84, %f911;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f910;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f909;}
+
+ // inline asm
+ st.v4.u16 [%rd111], {%rs82, %rs83, %rs84, %rs78};
+ bra.uni BB0_84;
+
+BB0_83:
+ mov.u64 %rd124, image_RNM1;
+ cvta.global.u64 %rd119, %rd124;
+ mov.u32 %r158, 8;
+ // inline asm
+ call (%rd118), _rt_buffer_get_64, (%rd119, %r31, %r158, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f132;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f131;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs89, %f130;}
+
+ // inline asm
+ st.v4.u16 [%rd118], {%rs89, %rs90, %rs91, %rs78};
+
+BB0_84:
+ ld.global.u32 %r159, [additive];
+ setp.eq.s32 %p114, %r159, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f833;}
+
+ // inline asm
+ @%p114 bra BB0_86;
+
+ mov.u64 %rd137, image_RNM2;
+ cvta.global.u64 %rd126, %rd137;
+ mov.u32 %r163, 8;
+ // inline asm
+ call (%rd125), _rt_buffer_get_64, (%rd126, %r31, %r163, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs99, %rs100, %rs101, %rs102}, [%rd125];
+ // inline asm
+ { cvt.f32.f16 %f916, %rs99;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f917, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f918, %rs101;}
+
+ // inline asm
+ // inline asm
+ call (%rd131), _rt_buffer_get_64, (%rd126, %r31, %r163, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ add.f32 %f919, %f133, %f916;
+ add.f32 %f920, %f134, %f917;
+ add.f32 %f921, %f135, %f918;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f921;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f920;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs96, %f919;}
+
+ // inline asm
+ st.v4.u16 [%rd131], {%rs96, %rs97, %rs98, %rs92};
+ bra.uni BB0_121;
+
+BB0_86:
+ mov.u64 %rd144, image_RNM2;
+ cvta.global.u64 %rd139, %rd144;
+ mov.u32 %r165, 8;
+ // inline asm
+ call (%rd138), _rt_buffer_get_64, (%rd139, %r31, %r165, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f135;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f134;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs103, %f133;}
+
+ // inline asm
+ st.v4.u16 [%rd138], {%rs103, %rs104, %rs105, %rs92};
+
+BB0_121:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightRNM.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightRNM.ptx.meta
new file mode 100644
index 00000000..16ee4f78
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightRNM.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 711084be1ed7b1e4d9bd10a50c9d541d
+timeCreated: 1537523975
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightSH.ptx
new file mode 100644
index 00000000..e0649864
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightSH.ptx
@@ -0,0 +1,2464 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .u32 lightCookie;
+.global .align 4 .b8 lightMatrix[36];
+.global .align 4 .f32 lightFOV;
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightCookieE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightMatrixE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightFOVE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename11lightCookieE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename11lightMatrixE[10] = {77, 97, 116, 114, 105, 120, 51, 120, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightFOVE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightCookieE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightMatrixE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightFOVE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightCookieE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightMatrixE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightFOVE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightCookieE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightMatrixE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightFOVE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<140>;
+ .reg .b16 %rs<221>;
+ .reg .f32 %f<1020>;
+ .reg .b32 %r<253>;
+ .reg .b64 %rd<369>;
+
+
+ mov.u64 %rd368, __local_depot0;
+ cvta.local.u64 %SP, %rd368;
+ ld.global.v2.u32 {%r26, %r27}, [pixelID];
+ cvt.u64.u32 %rd12, %r26;
+ cvt.u64.u32 %rd13, %r27;
+ mov.u64 %rd16, uvnormal;
+ cvta.global.u64 %rd11, %rd16;
+ mov.u32 %r24, 2;
+ mov.u32 %r25, 4;
+ mov.u64 %rd15, 0;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r24, %r25, %rd12, %rd13, %rd15, %rd15);
+ // inline asm
+ ld.u32 %r1, [%rd10];
+ shr.u32 %r30, %r1, 16;
+ cvt.u16.u32 %rs1, %r30;
+ and.b16 %rs12, %rs1, 255;
+ cvt.u16.u32 %rs13, %r1;
+ or.b16 %rs14, %rs13, %rs12;
+ setp.eq.s16 %p7, %rs14, 0;
+ mov.f32 %f996, 0f00000000;
+ mov.f32 %f997, %f996;
+ mov.f32 %f998, %f996;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs15, [%rd10+1];
+ and.b16 %rs17, %rs13, 255;
+ cvt.rn.f32.u16 %f122, %rs17;
+ div.rn.f32 %f123, %f122, 0f437F0000;
+ fma.rn.f32 %f124, %f123, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f125, %rs15;
+ div.rn.f32 %f126, %f125, 0f437F0000;
+ fma.rn.f32 %f127, %f126, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f128, %rs12;
+ div.rn.f32 %f129, %f128, 0f437F0000;
+ fma.rn.f32 %f130, %f129, 0f40000000, 0fBF800000;
+ mul.f32 %f131, %f127, %f127;
+ fma.rn.f32 %f132, %f124, %f124, %f131;
+ fma.rn.f32 %f133, %f130, %f130, %f132;
+ sqrt.rn.f32 %f134, %f133;
+ rcp.rn.f32 %f135, %f134;
+ mul.f32 %f996, %f124, %f135;
+ mul.f32 %f997, %f127, %f135;
+ mul.f32 %f998, %f130, %f135;
+
+BB0_2:
+ ld.global.v2.u32 {%r31, %r32}, [pixelID];
+ ld.global.v2.u32 {%r34, %r35}, [tileInfo];
+ add.s32 %r2, %r31, %r34;
+ add.s32 %r3, %r32, %r35;
+ setp.eq.f32 %p8, %f997, 0f00000000;
+ setp.eq.f32 %p9, %f996, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f998, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_115;
+ bra.uni BB0_3;
+
+BB0_115:
+ ld.global.u32 %r252, [imageEnabled];
+ and.b32 %r201, %r252, 1;
+ setp.eq.b32 %p132, %r201, 1;
+ @!%p132 bra BB0_117;
+ bra.uni BB0_116;
+
+BB0_116:
+ cvt.u64.u32 %rd256, %r2;
+ cvt.u64.u32 %rd257, %r3;
+ mov.u64 %rd260, image;
+ cvta.global.u64 %rd255, %rd260;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r24, %r25, %rd256, %rd257, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs153, 0;
+ st.v4.u8 [%rd254], {%rs153, %rs153, %rs153, %rs153};
+ ld.global.u32 %r252, [imageEnabled];
+
+BB0_117:
+ and.b32 %r204, %r252, 8;
+ setp.eq.s32 %p133, %r204, 0;
+ @%p133 bra BB0_119;
+
+ cvt.u64.u32 %rd264, %r3;
+ cvt.u64.u32 %rd263, %r2;
+ mov.u64 %rd267, image_Mask;
+ cvta.global.u64 %rd262, %rd267;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r24, %r24, %rd263, %rd264, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f896, 0f00000000;
+ cvt.rzi.u32.f32 %r207, %f896;
+ cvt.u16.u32 %rs154, %r207;
+ mov.u16 %rs155, 0;
+ st.v2.u8 [%rd261], {%rs154, %rs155};
+ ld.global.u32 %r252, [imageEnabled];
+
+BB0_119:
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ and.b32 %r208, %r252, 4;
+ setp.eq.s32 %p134, %r208, 0;
+ @%p134 bra BB0_123;
+
+ ld.global.u32 %r209, [additive];
+ setp.eq.s32 %p135, %r209, 0;
+ @%p135 bra BB0_122;
+
+ mov.u64 %rd280, image_HDR;
+ cvta.global.u64 %rd269, %rd280;
+ mov.u32 %r213, 8;
+ // inline asm
+ call (%rd268), _rt_buffer_get_64, (%rd269, %r24, %r213, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs162, %rs163, %rs164, %rs165}, [%rd268];
+ // inline asm
+ { cvt.f32.f16 %f897, %rs162;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f898, %rs163;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f899, %rs164;}
+
+ // inline asm
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd269, %r24, %r213, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f900, %f897, 0f00000000;
+ add.f32 %f901, %f898, 0f00000000;
+ add.f32 %f902, %f899, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs161, %f902;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs160, %f901;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs159, %f900;}
+
+ // inline asm
+ mov.u16 %rs166, 0;
+ st.v4.u16 [%rd274], {%rs159, %rs160, %rs161, %rs166};
+ bra.uni BB0_123;
+
+BB0_3:
+ ld.global.v2.u32 {%r41, %r42}, [pixelID];
+ cvt.u64.u32 %rd19, %r41;
+ cvt.u64.u32 %rd20, %r42;
+ mov.u64 %rd23, uvpos;
+ cvta.global.u64 %rd18, %rd23;
+ mov.u32 %r40, 12;
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd18, %r24, %r40, %rd19, %rd20, %rd15, %rd15);
+ // inline asm
+ ld.global.f32 %f138, [lightPos];
+ ld.f32 %f9, [%rd17+8];
+ ld.f32 %f8, [%rd17+4];
+ ld.f32 %f7, [%rd17];
+ sub.f32 %f139, %f138, %f7;
+ ld.global.f32 %f140, [lightPos+4];
+ sub.f32 %f141, %f140, %f8;
+ ld.global.f32 %f142, [lightPos+8];
+ sub.f32 %f143, %f142, %f9;
+ mul.f32 %f144, %f141, %f141;
+ fma.rn.f32 %f145, %f139, %f139, %f144;
+ fma.rn.f32 %f146, %f143, %f143, %f145;
+ sqrt.rn.f32 %f147, %f146;
+ rcp.rn.f32 %f148, %f147;
+ mul.f32 %f10, %f139, %f148;
+ mul.f32 %f11, %f141, %f148;
+ mul.f32 %f12, %f143, %f148;
+ ld.global.f32 %f149, [lightFalloffFakeDistanceMult];
+ mul.f32 %f13, %f147, %f149;
+ ld.global.f32 %f150, [lightInvCutoff];
+ mul.f32 %f14, %f147, %f150;
+ mov.f32 %f154, 0f40800000;
+ abs.f32 %f16, %f14;
+ setp.lt.f32 %p13, %f16, 0f00800000;
+ mul.f32 %f156, %f16, 0f4B800000;
+ selp.f32 %f157, 0fC3170000, 0fC2FE0000, %p13;
+ selp.f32 %f158, %f156, %f16, %p13;
+ mov.b32 %r45, %f158;
+ and.b32 %r46, %r45, 8388607;
+ or.b32 %r47, %r46, 1065353216;
+ mov.b32 %f159, %r47;
+ shr.u32 %r48, %r45, 23;
+ cvt.rn.f32.u32 %f160, %r48;
+ add.f32 %f161, %f157, %f160;
+ setp.gt.f32 %p14, %f159, 0f3FB504F3;
+ mul.f32 %f162, %f159, 0f3F000000;
+ add.f32 %f163, %f161, 0f3F800000;
+ selp.f32 %f164, %f162, %f159, %p14;
+ selp.f32 %f165, %f163, %f161, %p14;
+ add.f32 %f166, %f164, 0fBF800000;
+ add.f32 %f137, %f164, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f136,%f137;
+ // inline asm
+ add.f32 %f167, %f166, %f166;
+ mul.f32 %f168, %f136, %f167;
+ mul.f32 %f169, %f168, %f168;
+ mov.f32 %f170, 0f3C4CAF63;
+ mov.f32 %f171, 0f3B18F0FE;
+ fma.rn.f32 %f172, %f171, %f169, %f170;
+ mov.f32 %f173, 0f3DAAAABD;
+ fma.rn.f32 %f174, %f172, %f169, %f173;
+ mul.rn.f32 %f175, %f174, %f169;
+ mul.rn.f32 %f176, %f175, %f168;
+ sub.f32 %f177, %f166, %f168;
+ neg.f32 %f178, %f168;
+ add.f32 %f179, %f177, %f177;
+ fma.rn.f32 %f180, %f178, %f166, %f179;
+ mul.rn.f32 %f181, %f136, %f180;
+ add.f32 %f182, %f176, %f168;
+ sub.f32 %f183, %f168, %f182;
+ add.f32 %f184, %f176, %f183;
+ add.f32 %f185, %f181, %f184;
+ add.f32 %f186, %f182, %f185;
+ sub.f32 %f187, %f182, %f186;
+ add.f32 %f188, %f185, %f187;
+ mov.f32 %f189, 0f3F317200;
+ mul.rn.f32 %f190, %f165, %f189;
+ mov.f32 %f191, 0f35BFBE8E;
+ mul.rn.f32 %f192, %f165, %f191;
+ add.f32 %f193, %f190, %f186;
+ sub.f32 %f194, %f190, %f193;
+ add.f32 %f195, %f186, %f194;
+ add.f32 %f196, %f188, %f195;
+ add.f32 %f197, %f192, %f196;
+ add.f32 %f198, %f193, %f197;
+ sub.f32 %f199, %f193, %f198;
+ add.f32 %f200, %f197, %f199;
+ mul.rn.f32 %f201, %f154, %f198;
+ neg.f32 %f202, %f201;
+ fma.rn.f32 %f203, %f154, %f198, %f202;
+ fma.rn.f32 %f204, %f154, %f200, %f203;
+ mov.f32 %f205, 0f00000000;
+ fma.rn.f32 %f206, %f205, %f198, %f204;
+ add.rn.f32 %f207, %f201, %f206;
+ neg.f32 %f208, %f207;
+ add.rn.f32 %f209, %f201, %f208;
+ add.rn.f32 %f210, %f209, %f206;
+ mov.b32 %r49, %f207;
+ setp.eq.s32 %p15, %r49, 1118925336;
+ add.s32 %r50, %r49, -1;
+ mov.b32 %f211, %r50;
+ add.f32 %f212, %f210, 0f37000000;
+ selp.f32 %f213, %f211, %f207, %p15;
+ selp.f32 %f17, %f212, %f210, %p15;
+ mul.f32 %f214, %f213, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f215, %f214;
+ mov.f32 %f216, 0fBF317200;
+ fma.rn.f32 %f217, %f215, %f216, %f213;
+ mov.f32 %f218, 0fB5BFBE8E;
+ fma.rn.f32 %f219, %f215, %f218, %f217;
+ mul.f32 %f220, %f219, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f221, %f220;
+ add.f32 %f222, %f215, 0f00000000;
+ ex2.approx.f32 %f223, %f222;
+ mul.f32 %f224, %f221, %f223;
+ setp.lt.f32 %p16, %f213, 0fC2D20000;
+ selp.f32 %f225, 0f00000000, %f224, %p16;
+ setp.gt.f32 %p17, %f213, 0f42D20000;
+ selp.f32 %f999, 0f7F800000, %f225, %p17;
+ setp.eq.f32 %p18, %f999, 0f7F800000;
+ @%p18 bra BB0_5;
+
+ fma.rn.f32 %f999, %f999, %f17, %f999;
+
+BB0_5:
+ mov.f32 %f937, 0f40000000;
+ cvt.rzi.f32.f32 %f936, %f937;
+ add.f32 %f935, %f936, %f936;
+ mov.f32 %f934, 0f40800000;
+ sub.f32 %f933, %f934, %f935;
+ abs.f32 %f932, %f933;
+ setp.lt.f32 %p19, %f14, 0f00000000;
+ setp.eq.f32 %p20, %f932, 0f3F800000;
+ and.pred %p1, %p19, %p20;
+ mov.b32 %r51, %f999;
+ xor.b32 %r52, %r51, -2147483648;
+ mov.b32 %f226, %r52;
+ selp.f32 %f1001, %f226, %f999, %p1;
+ setp.eq.f32 %p21, %f14, 0f00000000;
+ @%p21 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f229, %f14, %f14;
+ selp.f32 %f1001, %f229, 0f00000000, %p20;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p22, %f14, 0f00000000;
+ @%p22 bra BB0_9;
+
+ mov.f32 %f979, 0f40800000;
+ cvt.rzi.f32.f32 %f228, %f979;
+ setp.neu.f32 %p23, %f228, 0f40800000;
+ selp.f32 %f1001, 0f7FFFFFFF, %f1001, %p23;
+
+BB0_9:
+ abs.f32 %f938, %f14;
+ add.f32 %f230, %f938, 0f40800000;
+ mov.b32 %r53, %f230;
+ setp.lt.s32 %p25, %r53, 2139095040;
+ @%p25 bra BB0_14;
+
+ abs.f32 %f977, %f14;
+ setp.gtu.f32 %p26, %f977, 0f7F800000;
+ @%p26 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f1001, %f14, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f978, %f14;
+ setp.neu.f32 %p27, %f978, 0f7F800000;
+ @%p27 bra BB0_14;
+
+ selp.f32 %f1001, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ mov.f32 %f946, 0fB5BFBE8E;
+ mov.f32 %f945, 0fBF317200;
+ mov.f32 %f944, 0f00000000;
+ mov.f32 %f943, 0f35BFBE8E;
+ mov.f32 %f942, 0f3F317200;
+ mov.f32 %f941, 0f3DAAAABD;
+ mov.f32 %f940, 0f3C4CAF63;
+ mov.f32 %f939, 0f3B18F0FE;
+ mov.f32 %f233, 0f3F800000;
+ sub.f32 %f234, %f233, %f1001;
+ setp.eq.f32 %p28, %f14, 0f3F800000;
+ selp.f32 %f235, 0f00000000, %f234, %p28;
+ cvt.sat.f32.f32 %f236, %f235;
+ ld.global.f32 %f237, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f238, %f13, %f13, %f237;
+ div.rn.f32 %f28, %f236, %f238;
+ mul.f32 %f239, %f997, %f11;
+ fma.rn.f32 %f240, %f996, %f10, %f239;
+ fma.rn.f32 %f241, %f998, %f12, %f240;
+ ld.global.u32 %r54, [imageEnabled];
+ and.b32 %r55, %r54, 32;
+ ld.global.u32 %r56, [ignoreNormal];
+ or.b32 %r57, %r55, %r56;
+ setp.eq.s32 %p29, %r57, 0;
+ selp.f32 %f29, %f241, 0f3F800000, %p29;
+ fma.rn.f32 %f242, %f29, 0f3F000000, 0f3F000000;
+ cvt.sat.f32.f32 %f243, %f242;
+ add.f32 %f30, %f243, %f243;
+ mov.f32 %f247, 0f41A00000;
+ abs.f32 %f32, %f30;
+ setp.lt.f32 %p30, %f32, 0f00800000;
+ mul.f32 %f249, %f32, 0f4B800000;
+ selp.f32 %f250, 0fC3170000, 0fC2FE0000, %p30;
+ selp.f32 %f251, %f249, %f32, %p30;
+ mov.b32 %r58, %f251;
+ and.b32 %r59, %r58, 8388607;
+ or.b32 %r60, %r59, 1065353216;
+ mov.b32 %f252, %r60;
+ shr.u32 %r61, %r58, 23;
+ cvt.rn.f32.u32 %f253, %r61;
+ add.f32 %f254, %f250, %f253;
+ setp.gt.f32 %p31, %f252, 0f3FB504F3;
+ mul.f32 %f255, %f252, 0f3F000000;
+ add.f32 %f256, %f254, 0f3F800000;
+ selp.f32 %f257, %f255, %f252, %p31;
+ selp.f32 %f258, %f256, %f254, %p31;
+ add.f32 %f259, %f257, 0fBF800000;
+ add.f32 %f232, %f257, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f231,%f232;
+ // inline asm
+ add.f32 %f260, %f259, %f259;
+ mul.f32 %f261, %f231, %f260;
+ mul.f32 %f262, %f261, %f261;
+ fma.rn.f32 %f265, %f939, %f262, %f940;
+ fma.rn.f32 %f267, %f265, %f262, %f941;
+ mul.rn.f32 %f268, %f267, %f262;
+ mul.rn.f32 %f269, %f268, %f261;
+ sub.f32 %f270, %f259, %f261;
+ neg.f32 %f271, %f261;
+ add.f32 %f272, %f270, %f270;
+ fma.rn.f32 %f273, %f271, %f259, %f272;
+ mul.rn.f32 %f274, %f231, %f273;
+ add.f32 %f275, %f269, %f261;
+ sub.f32 %f276, %f261, %f275;
+ add.f32 %f277, %f269, %f276;
+ add.f32 %f278, %f274, %f277;
+ add.f32 %f279, %f275, %f278;
+ sub.f32 %f280, %f275, %f279;
+ add.f32 %f281, %f278, %f280;
+ mul.rn.f32 %f283, %f258, %f942;
+ mul.rn.f32 %f285, %f258, %f943;
+ add.f32 %f286, %f283, %f279;
+ sub.f32 %f287, %f283, %f286;
+ add.f32 %f288, %f279, %f287;
+ add.f32 %f289, %f281, %f288;
+ add.f32 %f290, %f285, %f289;
+ add.f32 %f291, %f286, %f290;
+ sub.f32 %f292, %f286, %f291;
+ add.f32 %f293, %f290, %f292;
+ mul.rn.f32 %f294, %f247, %f291;
+ neg.f32 %f295, %f294;
+ fma.rn.f32 %f296, %f247, %f291, %f295;
+ fma.rn.f32 %f297, %f247, %f293, %f296;
+ fma.rn.f32 %f299, %f944, %f291, %f297;
+ add.rn.f32 %f300, %f294, %f299;
+ neg.f32 %f301, %f300;
+ add.rn.f32 %f302, %f294, %f301;
+ add.rn.f32 %f303, %f302, %f299;
+ mov.b32 %r62, %f300;
+ setp.eq.s32 %p32, %r62, 1118925336;
+ add.s32 %r63, %r62, -1;
+ mov.b32 %f304, %r63;
+ add.f32 %f305, %f303, 0f37000000;
+ selp.f32 %f306, %f304, %f300, %p32;
+ selp.f32 %f33, %f305, %f303, %p32;
+ mul.f32 %f307, %f306, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f308, %f307;
+ fma.rn.f32 %f310, %f308, %f945, %f306;
+ fma.rn.f32 %f312, %f308, %f946, %f310;
+ mul.f32 %f313, %f312, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f314, %f313;
+ add.f32 %f315, %f308, 0f00000000;
+ ex2.approx.f32 %f316, %f315;
+ mul.f32 %f317, %f314, %f316;
+ setp.lt.f32 %p33, %f306, 0fC2D20000;
+ selp.f32 %f318, 0f00000000, %f317, %p33;
+ setp.gt.f32 %p34, %f306, 0f42D20000;
+ selp.f32 %f1002, 0f7F800000, %f318, %p34;
+ setp.eq.f32 %p35, %f1002, 0f7F800000;
+ @%p35 bra BB0_16;
+
+ fma.rn.f32 %f1002, %f1002, %f33, %f1002;
+
+BB0_16:
+ mov.f32 %f985, 0f41200000;
+ cvt.rzi.f32.f32 %f984, %f985;
+ add.f32 %f983, %f984, %f984;
+ mov.f32 %f982, 0f41A00000;
+ sub.f32 %f981, %f982, %f983;
+ abs.f32 %f980, %f981;
+ setp.lt.f32 %p36, %f30, 0f00000000;
+ setp.eq.f32 %p37, %f980, 0f3F800000;
+ and.pred %p2, %p36, %p37;
+ mov.b32 %r64, %f1002;
+ xor.b32 %r65, %r64, -2147483648;
+ mov.b32 %f319, %r65;
+ selp.f32 %f1004, %f319, %f1002, %p2;
+ setp.eq.f32 %p38, %f30, 0f00000000;
+ @%p38 bra BB0_19;
+ bra.uni BB0_17;
+
+BB0_19:
+ add.f32 %f322, %f30, %f30;
+ selp.f32 %f1004, %f322, 0f00000000, %p37;
+ bra.uni BB0_20;
+
+BB0_17:
+ setp.geu.f32 %p39, %f30, 0f00000000;
+ @%p39 bra BB0_20;
+
+ mov.f32 %f987, 0f41A00000;
+ cvt.rzi.f32.f32 %f321, %f987;
+ setp.neu.f32 %p40, %f321, 0f41A00000;
+ selp.f32 %f1004, 0f7FFFFFFF, %f1004, %p40;
+
+BB0_20:
+ add.f32 %f323, %f32, 0f41A00000;
+ mov.b32 %r66, %f323;
+ setp.lt.s32 %p42, %r66, 2139095040;
+ @%p42 bra BB0_25;
+
+ setp.gtu.f32 %p43, %f32, 0f7F800000;
+ @%p43 bra BB0_24;
+ bra.uni BB0_22;
+
+BB0_24:
+ add.f32 %f1004, %f30, 0f41A00000;
+ bra.uni BB0_25;
+
+BB0_22:
+ setp.neu.f32 %p44, %f32, 0f7F800000;
+ @%p44 bra BB0_25;
+
+ selp.f32 %f1004, 0fFF800000, 0f7F800000, %p2;
+
+BB0_25:
+ mov.f32 %f947, 0f00000000;
+ setp.eq.f32 %p45, %f30, 0f3F800000;
+ selp.f32 %f332, 0f3F800000, %f1004, %p45;
+ cvt.sat.f32.f32 %f333, %f332;
+ mul.f32 %f44, %f28, %f333;
+ mul.f32 %f334, %f29, 0f40800000;
+ cvt.sat.f32.f32 %f45, %f334;
+ ld.global.f32 %f335, [lightMatrix+24];
+ mul.f32 %f336, %f10, %f335;
+ ld.global.f32 %f337, [lightMatrix+28];
+ mul.f32 %f338, %f11, %f337;
+ neg.f32 %f339, %f338;
+ sub.f32 %f340, %f339, %f336;
+ ld.global.f32 %f341, [lightMatrix+32];
+ mul.f32 %f342, %f12, %f341;
+ sub.f32 %f343, %f340, %f342;
+ setp.gt.f32 %p46, %f343, 0f00000000;
+ ld.global.f32 %f344, [lightMatrix];
+ mul.f32 %f345, %f344, %f10;
+ sub.f32 %f346, %f947, %f345;
+ ld.global.f32 %f347, [lightMatrix+4];
+ mul.f32 %f348, %f347, %f11;
+ sub.f32 %f349, %f346, %f348;
+ ld.global.f32 %f350, [lightMatrix+8];
+ mul.f32 %f351, %f350, %f12;
+ sub.f32 %f352, %f349, %f351;
+ selp.f32 %f353, 0f3F800000, 0f00000000, %p46;
+ ld.global.f32 %f354, [lightMatrix+12];
+ mul.f32 %f355, %f354, %f10;
+ sub.f32 %f356, %f947, %f355;
+ ld.global.f32 %f357, [lightMatrix+16];
+ mul.f32 %f358, %f357, %f11;
+ sub.f32 %f359, %f356, %f358;
+ ld.global.f32 %f360, [lightMatrix+20];
+ mul.f32 %f361, %f360, %f12;
+ sub.f32 %f362, %f359, %f361;
+ ld.global.u32 %r67, [lightCookie];
+ ld.global.f32 %f363, [lightFOV];
+ fma.rn.f32 %f328, %f352, %f363, 0f3F000000;
+ fma.rn.f32 %f329, %f362, %f363, 0f3F000000;
+ // inline asm
+ call (%f324, %f325, %f326, %f327), _rt_texture_get_f_id, (%r67, %r24, %f328, %f329, %f947, %f947);
+ // inline asm
+ max.f32 %f364, %f324, %f325;
+ max.f32 %f365, %f364, %f326;
+ mul.f32 %f366, %f353, %f365;
+ mul.f32 %f367, %f44, %f45;
+ mul.f32 %f368, %f367, %f366;
+ ld.global.f32 %f369, [lightColor+4];
+ ld.global.f32 %f370, [lightColor];
+ max.f32 %f371, %f370, %f369;
+ ld.global.f32 %f372, [lightColor+8];
+ max.f32 %f373, %f371, %f372;
+ mul.f32 %f374, %f368, %f373;
+ setp.lt.f32 %p47, %f374, 0f3727C5AC;
+ @%p47 bra BB0_95;
+ bra.uni BB0_26;
+
+BB0_95:
+ ld.global.u32 %r250, [imageEnabled];
+ and.b32 %r158, %r250, 1;
+ setp.eq.b32 %p124, %r158, 1;
+ @!%p124 bra BB0_97;
+ bra.uni BB0_96;
+
+BB0_96:
+ cvt.u64.u32 %rd142, %r2;
+ cvt.u64.u32 %rd143, %r3;
+ mov.u64 %rd146, image;
+ cvta.global.u64 %rd141, %rd146;
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd141, %r24, %r25, %rd142, %rd143, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs89, 1;
+ mov.u16 %rs90, 0;
+ st.v4.u8 [%rd140], {%rs90, %rs90, %rs90, %rs89};
+ ld.global.u32 %r250, [imageEnabled];
+
+BB0_97:
+ and.b32 %r161, %r250, 8;
+ setp.eq.s32 %p125, %r161, 0;
+ @%p125 bra BB0_99;
+
+ cvt.u64.u32 %rd150, %r3;
+ cvt.u64.u32 %rd149, %r2;
+ mov.u64 %rd153, image_Mask;
+ cvta.global.u64 %rd148, %rd153;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r24, %r24, %rd149, %rd150, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f853, 0f00000000;
+ cvt.rzi.u32.f32 %r164, %f853;
+ cvt.u16.u32 %rs91, %r164;
+ mov.u16 %rs92, 255;
+ st.v2.u8 [%rd147], {%rs91, %rs92};
+ ld.global.u32 %r250, [imageEnabled];
+
+BB0_99:
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ and.b32 %r165, %r250, 4;
+ setp.eq.s32 %p126, %r165, 0;
+ @%p126 bra BB0_103;
+
+ ld.global.u32 %r166, [additive];
+ setp.eq.s32 %p127, %r166, 0;
+ mov.f32 %f854, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f854;}
+
+ // inline asm
+ @%p127 bra BB0_102;
+
+ mov.u64 %rd166, image_HDR;
+ cvta.global.u64 %rd155, %rd166;
+ mov.u32 %r170, 8;
+ // inline asm
+ call (%rd154), _rt_buffer_get_64, (%rd155, %r24, %r170, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs100, %rs101, %rs102, %rs103}, [%rd154];
+ // inline asm
+ { cvt.f32.f16 %f855, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f856, %rs101;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f857, %rs102;}
+
+ // inline asm
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd155, %r24, %r170, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f858, %f855, 0f00000000;
+ add.f32 %f859, %f856, 0f00000000;
+ add.f32 %f860, %f857, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f860;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f859;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f858;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs97, %rs98, %rs99, %rs93};
+ bra.uni BB0_103;
+
+BB0_26:
+ mov.f32 %f1006, 0f00000000;
+ mul.f32 %f376, %f7, 0f3456BF95;
+ abs.f32 %f377, %f996;
+ div.rn.f32 %f378, %f376, %f377;
+ abs.f32 %f379, %f997;
+ mul.f32 %f380, %f8, 0f3456BF95;
+ div.rn.f32 %f381, %f380, %f379;
+ abs.f32 %f382, %f998;
+ mul.f32 %f383, %f9, 0f3456BF95;
+ div.rn.f32 %f384, %f383, %f382;
+ abs.f32 %f385, %f378;
+ abs.f32 %f386, %f381;
+ abs.f32 %f387, %f384;
+ mov.f32 %f388, 0f38D1B717;
+ max.f32 %f389, %f385, %f388;
+ max.f32 %f390, %f386, %f388;
+ max.f32 %f391, %f387, %f388;
+ fma.rn.f32 %f49, %f996, %f389, %f7;
+ fma.rn.f32 %f50, %f997, %f390, %f8;
+ fma.rn.f32 %f51, %f998, %f391, %f9;
+ ld.global.u32 %r246, [samples];
+ setp.lt.s32 %p48, %r246, 1;
+ @%p48 bra BB0_29;
+
+ mul.f32 %f393, %f49, 0f3456BF95;
+ abs.f32 %f394, %f393;
+ mul.f32 %f395, %f50, 0f3456BF95;
+ abs.f32 %f396, %f395;
+ mul.f32 %f397, %f51, 0f3456BF95;
+ abs.f32 %f398, %f397;
+ max.f32 %f399, %f394, %f396;
+ max.f32 %f400, %f399, %f398;
+ max.f32 %f52, %f400, %f388;
+ add.u64 %rd24, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd24;
+ mov.f32 %f1006, 0f00000000;
+ mov.u32 %r245, 0;
+
+BB0_28:
+ cvt.rn.f32.s32 %f410, %r245;
+ mul.f32 %f411, %f410, 0f3DD32618;
+ cvt.rmi.f32.f32 %f412, %f411;
+ sub.f32 %f413, %f411, %f412;
+ mul.f32 %f414, %f410, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f415, %f414;
+ sub.f32 %f416, %f414, %f415;
+ mul.f32 %f417, %f410, 0f3DC74539;
+ cvt.rmi.f32.f32 %f418, %f417;
+ sub.f32 %f419, %f417, %f418;
+ add.f32 %f420, %f416, 0f4199851F;
+ add.f32 %f421, %f419, 0f4199851F;
+ add.f32 %f422, %f413, 0f4199851F;
+ mul.f32 %f423, %f416, %f421;
+ fma.rn.f32 %f424, %f413, %f420, %f423;
+ fma.rn.f32 %f425, %f422, %f419, %f424;
+ add.f32 %f426, %f413, %f425;
+ add.f32 %f427, %f416, %f425;
+ add.f32 %f428, %f419, %f425;
+ add.f32 %f429, %f426, %f427;
+ mul.f32 %f430, %f428, %f429;
+ cvt.rmi.f32.f32 %f431, %f430;
+ sub.f32 %f432, %f430, %f431;
+ add.f32 %f433, %f426, %f428;
+ mul.f32 %f434, %f427, %f433;
+ cvt.rmi.f32.f32 %f435, %f434;
+ sub.f32 %f436, %f434, %f435;
+ add.f32 %f437, %f427, %f428;
+ mul.f32 %f438, %f426, %f437;
+ cvt.rmi.f32.f32 %f439, %f438;
+ sub.f32 %f440, %f438, %f439;
+ fma.rn.f32 %f441, %f432, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f442, %f436, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f443, %f440, 0f40000000, 0fBF800000;
+ ld.global.f32 %f444, [lightRadius];
+ ld.global.f32 %f445, [lightPos];
+ fma.rn.f32 %f446, %f444, %f441, %f445;
+ ld.global.f32 %f447, [lightPos+4];
+ fma.rn.f32 %f448, %f444, %f442, %f447;
+ ld.global.f32 %f449, [lightPos+8];
+ fma.rn.f32 %f450, %f444, %f443, %f449;
+ sub.f32 %f451, %f446, %f7;
+ sub.f32 %f452, %f448, %f8;
+ sub.f32 %f453, %f450, %f9;
+ mul.f32 %f454, %f452, %f452;
+ fma.rn.f32 %f455, %f451, %f451, %f454;
+ fma.rn.f32 %f456, %f453, %f453, %f455;
+ sqrt.rn.f32 %f409, %f456;
+ rcp.rn.f32 %f457, %f409;
+ mul.f32 %f405, %f457, %f451;
+ mul.f32 %f406, %f457, %f452;
+ mul.f32 %f407, %f457, %f453;
+ ld.global.u32 %r73, [imageEnabled];
+ and.b32 %r74, %r73, 32;
+ setp.eq.s32 %p49, %r74, 0;
+ selp.f32 %f458, 0f3F800000, 0f41200000, %p49;
+ mul.f32 %f408, %f458, %f52;
+ mov.u32 %r75, 1065353216;
+ st.local.u32 [%rd2], %r75;
+ ld.global.u32 %r70, [root];
+ mov.u32 %r71, 1;
+ // inline asm
+ call _rt_trace_64, (%r70, %f49, %f50, %f51, %f405, %f406, %f407, %r71, %f408, %f409, %rd24, %r25);
+ // inline asm
+ ld.local.f32 %f459, [%rd2];
+ add.f32 %f1006, %f1006, %f459;
+ ld.global.u32 %r246, [samples];
+ add.s32 %r245, %r245, 1;
+ setp.lt.s32 %p50, %r245, %r246;
+ @%p50 bra BB0_28;
+
+BB0_29:
+ mov.f32 %f1007, 0f3F800000;
+ setp.eq.s32 %p51, %r246, 0;
+ @%p51 bra BB0_31;
+
+ cvt.rn.f32.s32 %f461, %r246;
+ div.rn.f32 %f1007, %f1006, %f461;
+
+BB0_31:
+ cvt.sat.f32.f32 %f462, %f29;
+ mul.f32 %f463, %f44, %f462;
+ mul.f32 %f464, %f1007, %f463;
+ ld.global.f32 %f465, [lightColor];
+ mul.f32 %f466, %f465, %f464;
+ ld.global.f32 %f467, [lightColor+4];
+ mul.f32 %f468, %f467, %f464;
+ ld.global.f32 %f469, [lightColor+8];
+ mul.f32 %f470, %f464, %f469;
+ mul.f32 %f58, %f324, %f466;
+ mul.f32 %f59, %f325, %f468;
+ mul.f32 %f60, %f326, %f470;
+ ld.global.u32 %r248, [imageEnabled];
+ and.b32 %r76, %r248, 8;
+ setp.eq.s32 %p52, %r76, 0;
+ @%p52 bra BB0_44;
+
+ mov.f32 %f955, 0fB5BFBE8E;
+ mov.f32 %f954, 0fBF317200;
+ mov.f32 %f953, 0f35BFBE8E;
+ mov.f32 %f952, 0f3F317200;
+ mov.f32 %f951, 0f3DAAAABD;
+ mov.f32 %f950, 0f3C4CAF63;
+ mov.f32 %f949, 0f3B18F0FE;
+ cvt.u64.u32 %rd28, %r2;
+ cvt.u64.u32 %rd29, %r3;
+ mov.u64 %rd32, image_Mask;
+ cvta.global.u64 %rd27, %rd32;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r24, %r24, %rd28, %rd29, %rd15, %rd15);
+ // inline asm
+ abs.f32 %f62, %f1007;
+ setp.lt.f32 %p53, %f62, 0f00800000;
+ mul.f32 %f476, %f62, 0f4B800000;
+ selp.f32 %f477, 0fC3170000, 0fC2FE0000, %p53;
+ selp.f32 %f478, %f476, %f62, %p53;
+ mov.b32 %r79, %f478;
+ and.b32 %r80, %r79, 8388607;
+ or.b32 %r81, %r80, 1065353216;
+ mov.b32 %f479, %r81;
+ shr.u32 %r82, %r79, 23;
+ cvt.rn.f32.u32 %f480, %r82;
+ add.f32 %f481, %f477, %f480;
+ setp.gt.f32 %p54, %f479, 0f3FB504F3;
+ mul.f32 %f482, %f479, 0f3F000000;
+ add.f32 %f483, %f481, 0f3F800000;
+ selp.f32 %f484, %f482, %f479, %p54;
+ selp.f32 %f485, %f483, %f481, %p54;
+ add.f32 %f486, %f484, 0fBF800000;
+ add.f32 %f472, %f484, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f471,%f472;
+ // inline asm
+ add.f32 %f487, %f486, %f486;
+ mul.f32 %f488, %f471, %f487;
+ mul.f32 %f489, %f488, %f488;
+ fma.rn.f32 %f492, %f949, %f489, %f950;
+ fma.rn.f32 %f494, %f492, %f489, %f951;
+ mul.rn.f32 %f495, %f494, %f489;
+ mul.rn.f32 %f496, %f495, %f488;
+ sub.f32 %f497, %f486, %f488;
+ neg.f32 %f498, %f488;
+ add.f32 %f499, %f497, %f497;
+ fma.rn.f32 %f500, %f498, %f486, %f499;
+ mul.rn.f32 %f501, %f471, %f500;
+ add.f32 %f502, %f496, %f488;
+ sub.f32 %f503, %f488, %f502;
+ add.f32 %f504, %f496, %f503;
+ add.f32 %f505, %f501, %f504;
+ add.f32 %f506, %f502, %f505;
+ sub.f32 %f507, %f502, %f506;
+ add.f32 %f508, %f505, %f507;
+ mul.rn.f32 %f510, %f485, %f952;
+ mul.rn.f32 %f512, %f485, %f953;
+ add.f32 %f513, %f510, %f506;
+ sub.f32 %f514, %f510, %f513;
+ add.f32 %f515, %f506, %f514;
+ add.f32 %f516, %f508, %f515;
+ add.f32 %f517, %f512, %f516;
+ add.f32 %f518, %f513, %f517;
+ sub.f32 %f519, %f513, %f518;
+ add.f32 %f520, %f517, %f519;
+ mov.f32 %f521, 0f3EE8BA2E;
+ mul.rn.f32 %f522, %f521, %f518;
+ neg.f32 %f523, %f522;
+ fma.rn.f32 %f524, %f521, %f518, %f523;
+ fma.rn.f32 %f525, %f521, %f520, %f524;
+ mov.f32 %f526, 0f00000000;
+ fma.rn.f32 %f527, %f526, %f518, %f525;
+ add.rn.f32 %f528, %f522, %f527;
+ neg.f32 %f529, %f528;
+ add.rn.f32 %f530, %f522, %f529;
+ add.rn.f32 %f531, %f530, %f527;
+ mov.b32 %r83, %f528;
+ setp.eq.s32 %p55, %r83, 1118925336;
+ add.s32 %r84, %r83, -1;
+ mov.b32 %f532, %r84;
+ add.f32 %f533, %f531, 0f37000000;
+ selp.f32 %f534, %f532, %f528, %p55;
+ selp.f32 %f63, %f533, %f531, %p55;
+ mul.f32 %f535, %f534, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f536, %f535;
+ fma.rn.f32 %f538, %f536, %f954, %f534;
+ fma.rn.f32 %f540, %f536, %f955, %f538;
+ mul.f32 %f541, %f540, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f542, %f541;
+ add.f32 %f543, %f536, 0f00000000;
+ ex2.approx.f32 %f544, %f543;
+ mul.f32 %f545, %f542, %f544;
+ setp.lt.f32 %p56, %f534, 0fC2D20000;
+ selp.f32 %f546, 0f00000000, %f545, %p56;
+ setp.gt.f32 %p57, %f534, 0f42D20000;
+ selp.f32 %f1008, 0f7F800000, %f546, %p57;
+ setp.eq.f32 %p58, %f1008, 0f7F800000;
+ @%p58 bra BB0_34;
+
+ fma.rn.f32 %f1008, %f1008, %f63, %f1008;
+
+BB0_34:
+ mov.f32 %f991, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f990, %f991;
+ fma.rn.f32 %f989, %f990, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f988, %f989;
+ setp.lt.f32 %p59, %f1007, 0f00000000;
+ setp.eq.f32 %p60, %f988, 0f3F800000;
+ and.pred %p3, %p59, %p60;
+ mov.b32 %r85, %f1008;
+ xor.b32 %r86, %r85, -2147483648;
+ mov.b32 %f547, %r86;
+ selp.f32 %f1010, %f547, %f1008, %p3;
+ setp.eq.f32 %p61, %f1007, 0f00000000;
+ @%p61 bra BB0_37;
+ bra.uni BB0_35;
+
+BB0_37:
+ add.f32 %f550, %f1007, %f1007;
+ selp.f32 %f1010, %f550, 0f00000000, %p60;
+ bra.uni BB0_38;
+
+BB0_122:
+ mov.u64 %rd287, image_HDR;
+ cvta.global.u64 %rd282, %rd287;
+ mov.u32 %r215, 8;
+ // inline asm
+ call (%rd281), _rt_buffer_get_64, (%rd282, %r24, %r215, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f903, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs167, %f903;}
+
+ // inline asm
+ mov.u16 %rs168, 0;
+ st.v4.u16 [%rd281], {%rs167, %rs167, %rs167, %rs168};
+
+BB0_123:
+ ld.global.u32 %r216, [additive];
+ setp.eq.s32 %p136, %r216, 0;
+ @%p136 bra BB0_125;
+
+ mov.u64 %rd300, image_RNM0;
+ cvta.global.u64 %rd289, %rd300;
+ mov.u32 %r220, 8;
+ // inline asm
+ call (%rd288), _rt_buffer_get_64, (%rd289, %r24, %r220, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs175, %rs176, %rs177, %rs178}, [%rd288];
+ // inline asm
+ { cvt.f32.f16 %f904, %rs175;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f905, %rs176;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f906, %rs177;}
+
+ // inline asm
+ // inline asm
+ call (%rd294), _rt_buffer_get_64, (%rd289, %r24, %r220, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f907, %f904, 0f00000000;
+ add.f32 %f908, %f905, 0f00000000;
+ add.f32 %f909, %f906, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs174, %f909;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs173, %f908;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs172, %f907;}
+
+ // inline asm
+ mov.u16 %rs179, 0;
+ st.v4.u16 [%rd294], {%rs172, %rs173, %rs174, %rs179};
+ bra.uni BB0_126;
+
+BB0_125:
+ mov.u64 %rd307, image_RNM0;
+ cvta.global.u64 %rd302, %rd307;
+ mov.u32 %r222, 8;
+ // inline asm
+ call (%rd301), _rt_buffer_get_64, (%rd302, %r24, %r222, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f910, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs180, %f910;}
+
+ // inline asm
+ mov.u16 %rs181, 0;
+ st.v4.u16 [%rd301], {%rs180, %rs180, %rs180, %rs181};
+
+BB0_126:
+ ld.global.u32 %r223, [additive];
+ setp.eq.s32 %p137, %r223, 0;
+ @%p137 bra BB0_128;
+
+ mov.u64 %rd320, image_RNM1;
+ cvta.global.u64 %rd309, %rd320;
+ mov.u32 %r227, 8;
+ // inline asm
+ call (%rd308), _rt_buffer_get_64, (%rd309, %r24, %r227, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs188, %rs189, %rs190, %rs191}, [%rd308];
+ // inline asm
+ { cvt.f32.f16 %f911, %rs188;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f912, %rs189;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f913, %rs190;}
+
+ // inline asm
+ // inline asm
+ call (%rd314), _rt_buffer_get_64, (%rd309, %r24, %r227, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f914, %f911, 0f00000000;
+ add.f32 %f915, %f912, 0f00000000;
+ add.f32 %f916, %f913, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs187, %f916;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs186, %f915;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs185, %f914;}
+
+ // inline asm
+ mov.u16 %rs192, 0;
+ st.v4.u16 [%rd314], {%rs185, %rs186, %rs187, %rs192};
+ bra.uni BB0_129;
+
+BB0_128:
+ mov.u64 %rd327, image_RNM1;
+ cvta.global.u64 %rd322, %rd327;
+ mov.u32 %r229, 8;
+ // inline asm
+ call (%rd321), _rt_buffer_get_64, (%rd322, %r24, %r229, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f917, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs193, %f917;}
+
+ // inline asm
+ mov.u16 %rs194, 0;
+ st.v4.u16 [%rd321], {%rs193, %rs193, %rs193, %rs194};
+
+BB0_129:
+ ld.global.u32 %r230, [additive];
+ setp.eq.s32 %p138, %r230, 0;
+ @%p138 bra BB0_131;
+
+ mov.u64 %rd340, image_RNM2;
+ cvta.global.u64 %rd329, %rd340;
+ mov.u32 %r234, 8;
+ // inline asm
+ call (%rd328), _rt_buffer_get_64, (%rd329, %r24, %r234, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs201, %rs202, %rs203, %rs204}, [%rd328];
+ // inline asm
+ { cvt.f32.f16 %f918, %rs201;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f919, %rs202;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f920, %rs203;}
+
+ // inline asm
+ // inline asm
+ call (%rd334), _rt_buffer_get_64, (%rd329, %r24, %r234, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f921, %f918, 0f00000000;
+ add.f32 %f922, %f919, 0f00000000;
+ add.f32 %f923, %f920, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs200, %f923;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs199, %f922;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs198, %f921;}
+
+ // inline asm
+ mov.u16 %rs205, 0;
+ st.v4.u16 [%rd334], {%rs198, %rs199, %rs200, %rs205};
+ bra.uni BB0_132;
+
+BB0_131:
+ mov.u64 %rd347, image_RNM2;
+ cvta.global.u64 %rd342, %rd347;
+ mov.u32 %r236, 8;
+ // inline asm
+ call (%rd341), _rt_buffer_get_64, (%rd342, %r24, %r236, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f924, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs206, %f924;}
+
+ // inline asm
+ mov.u16 %rs207, 0;
+ st.v4.u16 [%rd341], {%rs206, %rs206, %rs206, %rs207};
+
+BB0_132:
+ ld.global.u32 %r237, [additive];
+ setp.eq.s32 %p139, %r237, 0;
+ @%p139 bra BB0_134;
+
+ mov.u64 %rd360, image_RNM3;
+ cvta.global.u64 %rd349, %rd360;
+ mov.u32 %r241, 8;
+ // inline asm
+ call (%rd348), _rt_buffer_get_64, (%rd349, %r24, %r241, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs214, %rs215, %rs216, %rs217}, [%rd348];
+ // inline asm
+ { cvt.f32.f16 %f925, %rs214;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f926, %rs215;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f927, %rs216;}
+
+ // inline asm
+ // inline asm
+ call (%rd354), _rt_buffer_get_64, (%rd349, %r24, %r241, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f928, %f925, 0f00000000;
+ add.f32 %f929, %f926, 0f00000000;
+ add.f32 %f930, %f927, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs213, %f930;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs212, %f929;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs211, %f928;}
+
+ // inline asm
+ mov.u16 %rs218, 0;
+ st.v4.u16 [%rd354], {%rs211, %rs212, %rs213, %rs218};
+ bra.uni BB0_135;
+
+BB0_134:
+ mov.u64 %rd367, image_RNM3;
+ cvta.global.u64 %rd362, %rd367;
+ mov.u32 %r243, 8;
+ // inline asm
+ call (%rd361), _rt_buffer_get_64, (%rd362, %r24, %r243, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f931, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs219, %f931;}
+
+ // inline asm
+ mov.u16 %rs220, 0;
+ st.v4.u16 [%rd361], {%rs219, %rs219, %rs219, %rs220};
+ bra.uni BB0_135;
+
+BB0_102:
+ mov.u64 %rd173, image_HDR;
+ cvta.global.u64 %rd168, %rd173;
+ mov.u32 %r172, 8;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r24, %r172, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f861, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f861;}
+
+ // inline asm
+ st.v4.u16 [%rd167], {%rs104, %rs104, %rs104, %rs93};
+
+BB0_103:
+ ld.global.u32 %r173, [additive];
+ setp.eq.s32 %p128, %r173, 0;
+ mov.f32 %f862, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f862;}
+
+ // inline asm
+ @%p128 bra BB0_105;
+
+ mov.u64 %rd186, image_RNM0;
+ cvta.global.u64 %rd175, %rd186;
+ mov.u32 %r177, 8;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r24, %r177, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd174];
+ // inline asm
+ { cvt.f32.f16 %f863, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f864, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f865, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd175, %r24, %r177, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f866, %f863, 0f00000000;
+ add.f32 %f867, %f864, 0f00000000;
+ add.f32 %f868, %f865, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f868;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f867;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f866;}
+
+ // inline asm
+ st.v4.u16 [%rd180], {%rs109, %rs110, %rs111, %rs105};
+ bra.uni BB0_106;
+
+BB0_105:
+ mov.u64 %rd193, image_RNM0;
+ cvta.global.u64 %rd188, %rd193;
+ mov.u32 %r179, 8;
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd188, %r24, %r179, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f869, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f869;}
+
+ // inline asm
+ st.v4.u16 [%rd187], {%rs116, %rs116, %rs116, %rs105};
+
+BB0_106:
+ ld.global.u32 %r180, [additive];
+ setp.eq.s32 %p129, %r180, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f862;}
+
+ // inline asm
+ @%p129 bra BB0_108;
+
+ mov.u64 %rd206, image_RNM1;
+ cvta.global.u64 %rd195, %rd206;
+ mov.u32 %r184, 8;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r24, %r184, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd194];
+ // inline asm
+ { cvt.f32.f16 %f871, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f872, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f873, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd195, %r24, %r184, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f874, %f871, 0f00000000;
+ add.f32 %f875, %f872, 0f00000000;
+ add.f32 %f876, %f873, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f876;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f875;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f874;}
+
+ // inline asm
+ st.v4.u16 [%rd200], {%rs121, %rs122, %rs123, %rs117};
+ bra.uni BB0_109;
+
+BB0_108:
+ mov.u64 %rd213, image_RNM1;
+ cvta.global.u64 %rd208, %rd213;
+ mov.u32 %r186, 8;
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd208, %r24, %r186, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f877, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs128, %f877;}
+
+ // inline asm
+ st.v4.u16 [%rd207], {%rs128, %rs128, %rs128, %rs117};
+
+BB0_109:
+ ld.global.u32 %r187, [additive];
+ setp.eq.s32 %p130, %r187, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f862;}
+
+ // inline asm
+ @%p130 bra BB0_111;
+
+ mov.u64 %rd226, image_RNM2;
+ cvta.global.u64 %rd215, %rd226;
+ mov.u32 %r191, 8;
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd215, %r24, %r191, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs136, %rs137, %rs138, %rs139}, [%rd214];
+ // inline asm
+ { cvt.f32.f16 %f879, %rs136;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f880, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f881, %rs138;}
+
+ // inline asm
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd215, %r24, %r191, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f882, %f879, 0f00000000;
+ add.f32 %f883, %f880, 0f00000000;
+ add.f32 %f884, %f881, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f884;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f883;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f882;}
+
+ // inline asm
+ st.v4.u16 [%rd220], {%rs133, %rs134, %rs135, %rs129};
+ bra.uni BB0_112;
+
+BB0_111:
+ mov.u64 %rd233, image_RNM2;
+ cvta.global.u64 %rd228, %rd233;
+ mov.u32 %r193, 8;
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd228, %r24, %r193, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f885, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f885;}
+
+ // inline asm
+ st.v4.u16 [%rd227], {%rs140, %rs140, %rs140, %rs129};
+
+BB0_112:
+ ld.global.u32 %r194, [additive];
+ setp.eq.s32 %p131, %r194, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs141, %f862;}
+
+ // inline asm
+ @%p131 bra BB0_114;
+
+ mov.u64 %rd246, image_RNM3;
+ cvta.global.u64 %rd235, %rd246;
+ mov.u32 %r198, 8;
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd235, %r24, %r198, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs148, %rs149, %rs150, %rs151}, [%rd234];
+ // inline asm
+ { cvt.f32.f16 %f887, %rs148;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f888, %rs149;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f889, %rs150;}
+
+ // inline asm
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd235, %r24, %r198, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f890, %f887, 0f00000000;
+ add.f32 %f891, %f888, 0f00000000;
+ add.f32 %f892, %f889, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f892;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f891;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f890;}
+
+ // inline asm
+ st.v4.u16 [%rd240], {%rs145, %rs146, %rs147, %rs141};
+ bra.uni BB0_135;
+
+BB0_114:
+ mov.u64 %rd253, image_RNM3;
+ cvta.global.u64 %rd248, %rd253;
+ mov.u32 %r200, 8;
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd248, %r24, %r200, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f893, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f893;}
+
+ // inline asm
+ st.v4.u16 [%rd247], {%rs152, %rs152, %rs152, %rs141};
+ bra.uni BB0_135;
+
+BB0_35:
+ setp.geu.f32 %p62, %f1007, 0f00000000;
+ @%p62 bra BB0_38;
+
+ mov.f32 %f995, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f549, %f995;
+ setp.neu.f32 %p63, %f549, 0f3EE8BA2E;
+ selp.f32 %f1010, 0f7FFFFFFF, %f1010, %p63;
+
+BB0_38:
+ abs.f32 %f992, %f1007;
+ add.f32 %f551, %f992, 0f3EE8BA2E;
+ mov.b32 %r87, %f551;
+ setp.lt.s32 %p65, %r87, 2139095040;
+ @%p65 bra BB0_43;
+
+ abs.f32 %f993, %f1007;
+ setp.gtu.f32 %p66, %f993, 0f7F800000;
+ @%p66 bra BB0_42;
+ bra.uni BB0_40;
+
+BB0_42:
+ add.f32 %f1010, %f1007, 0f3EE8BA2E;
+ bra.uni BB0_43;
+
+BB0_40:
+ abs.f32 %f994, %f1007;
+ setp.neu.f32 %p67, %f994, 0f7F800000;
+ @%p67 bra BB0_43;
+
+ selp.f32 %f1010, 0fFF800000, 0f7F800000, %p3;
+
+BB0_43:
+ mul.f32 %f552, %f1010, 0f437F0000;
+ setp.eq.f32 %p68, %f1007, 0f3F800000;
+ selp.f32 %f553, 0f437F0000, %f552, %p68;
+ cvt.rzi.u32.f32 %r88, %f553;
+ cvt.u16.u32 %rs19, %r88;
+ mov.u16 %rs20, 255;
+ st.v2.u8 [%rd26], {%rs19, %rs20};
+ ld.global.u32 %r248, [imageEnabled];
+
+BB0_44:
+ and.b32 %r89, %r248, 1;
+ setp.eq.b32 %p69, %r89, 1;
+ @!%p69 bra BB0_79;
+ bra.uni BB0_45;
+
+BB0_45:
+ mov.f32 %f962, 0fB5BFBE8E;
+ mov.f32 %f961, 0fBF317200;
+ mov.f32 %f960, 0f35BFBE8E;
+ mov.f32 %f959, 0f3F317200;
+ mov.f32 %f958, 0f3DAAAABD;
+ mov.f32 %f957, 0f3C4CAF63;
+ mov.f32 %f956, 0f3B18F0FE;
+ mov.f32 %f556, 0f3E666666;
+ cvt.rzi.f32.f32 %f557, %f556;
+ fma.rn.f32 %f558, %f557, 0fC0000000, 0f3EE66666;
+ abs.f32 %f74, %f558;
+ abs.f32 %f75, %f58;
+ setp.lt.f32 %p70, %f75, 0f00800000;
+ mul.f32 %f559, %f75, 0f4B800000;
+ selp.f32 %f560, 0fC3170000, 0fC2FE0000, %p70;
+ selp.f32 %f561, %f559, %f75, %p70;
+ mov.b32 %r90, %f561;
+ and.b32 %r91, %r90, 8388607;
+ or.b32 %r92, %r91, 1065353216;
+ mov.b32 %f562, %r92;
+ shr.u32 %r93, %r90, 23;
+ cvt.rn.f32.u32 %f563, %r93;
+ add.f32 %f564, %f560, %f563;
+ setp.gt.f32 %p71, %f562, 0f3FB504F3;
+ mul.f32 %f565, %f562, 0f3F000000;
+ add.f32 %f566, %f564, 0f3F800000;
+ selp.f32 %f567, %f565, %f562, %p71;
+ selp.f32 %f568, %f566, %f564, %p71;
+ add.f32 %f569, %f567, 0fBF800000;
+ add.f32 %f555, %f567, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f554,%f555;
+ // inline asm
+ add.f32 %f570, %f569, %f569;
+ mul.f32 %f571, %f554, %f570;
+ mul.f32 %f572, %f571, %f571;
+ fma.rn.f32 %f575, %f956, %f572, %f957;
+ fma.rn.f32 %f577, %f575, %f572, %f958;
+ mul.rn.f32 %f578, %f577, %f572;
+ mul.rn.f32 %f579, %f578, %f571;
+ sub.f32 %f580, %f569, %f571;
+ neg.f32 %f581, %f571;
+ add.f32 %f582, %f580, %f580;
+ fma.rn.f32 %f583, %f581, %f569, %f582;
+ mul.rn.f32 %f584, %f554, %f583;
+ add.f32 %f585, %f579, %f571;
+ sub.f32 %f586, %f571, %f585;
+ add.f32 %f587, %f579, %f586;
+ add.f32 %f588, %f584, %f587;
+ add.f32 %f589, %f585, %f588;
+ sub.f32 %f590, %f585, %f589;
+ add.f32 %f591, %f588, %f590;
+ mul.rn.f32 %f593, %f568, %f959;
+ mul.rn.f32 %f595, %f568, %f960;
+ add.f32 %f596, %f593, %f589;
+ sub.f32 %f597, %f593, %f596;
+ add.f32 %f598, %f589, %f597;
+ add.f32 %f599, %f591, %f598;
+ add.f32 %f600, %f595, %f599;
+ add.f32 %f601, %f596, %f600;
+ sub.f32 %f602, %f596, %f601;
+ add.f32 %f603, %f600, %f602;
+ mov.f32 %f604, 0f3EE66666;
+ mul.rn.f32 %f605, %f604, %f601;
+ neg.f32 %f606, %f605;
+ fma.rn.f32 %f607, %f604, %f601, %f606;
+ fma.rn.f32 %f608, %f604, %f603, %f607;
+ mov.f32 %f609, 0f00000000;
+ fma.rn.f32 %f610, %f609, %f601, %f608;
+ add.rn.f32 %f611, %f605, %f610;
+ neg.f32 %f612, %f611;
+ add.rn.f32 %f613, %f605, %f612;
+ add.rn.f32 %f614, %f613, %f610;
+ mov.b32 %r94, %f611;
+ setp.eq.s32 %p72, %r94, 1118925336;
+ add.s32 %r95, %r94, -1;
+ mov.b32 %f615, %r95;
+ add.f32 %f616, %f614, 0f37000000;
+ selp.f32 %f617, %f615, %f611, %p72;
+ selp.f32 %f76, %f616, %f614, %p72;
+ mul.f32 %f618, %f617, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f619, %f618;
+ fma.rn.f32 %f621, %f619, %f961, %f617;
+ fma.rn.f32 %f623, %f619, %f962, %f621;
+ mul.f32 %f624, %f623, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f625, %f624;
+ add.f32 %f626, %f619, 0f00000000;
+ ex2.approx.f32 %f627, %f626;
+ mul.f32 %f628, %f625, %f627;
+ setp.lt.f32 %p73, %f617, 0fC2D20000;
+ selp.f32 %f629, 0f00000000, %f628, %p73;
+ setp.gt.f32 %p74, %f617, 0f42D20000;
+ selp.f32 %f1011, 0f7F800000, %f629, %p74;
+ setp.eq.f32 %p75, %f1011, 0f7F800000;
+ @%p75 bra BB0_47;
+
+ fma.rn.f32 %f1011, %f1011, %f76, %f1011;
+
+BB0_47:
+ setp.lt.f32 %p76, %f58, 0f00000000;
+ setp.eq.f32 %p77, %f74, 0f3F800000;
+ and.pred %p4, %p76, %p77;
+ mov.b32 %r96, %f1011;
+ xor.b32 %r97, %r96, -2147483648;
+ mov.b32 %f630, %r97;
+ selp.f32 %f1013, %f630, %f1011, %p4;
+ setp.eq.f32 %p78, %f58, 0f00000000;
+ @%p78 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f633, %f58, %f58;
+ selp.f32 %f1013, %f633, 0f00000000, %p77;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p79, %f58, 0f00000000;
+ @%p79 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f632, %f604;
+ setp.neu.f32 %p80, %f632, 0f3EE66666;
+ selp.f32 %f1013, 0f7FFFFFFF, %f1013, %p80;
+
+BB0_51:
+ add.f32 %f634, %f75, 0f3EE66666;
+ mov.b32 %r98, %f634;
+ setp.lt.s32 %p82, %r98, 2139095040;
+ @%p82 bra BB0_56;
+
+ setp.gtu.f32 %p83, %f75, 0f7F800000;
+ @%p83 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f1013, %f58, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p84, %f75, 0f7F800000;
+ @%p84 bra BB0_56;
+
+ selp.f32 %f1013, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f969, 0fB5BFBE8E;
+ mov.f32 %f968, 0fBF317200;
+ mov.f32 %f967, 0f35BFBE8E;
+ mov.f32 %f966, 0f3F317200;
+ mov.f32 %f965, 0f3DAAAABD;
+ mov.f32 %f964, 0f3C4CAF63;
+ mov.f32 %f963, 0f3B18F0FE;
+ setp.eq.f32 %p85, %f58, 0f3F800000;
+ selp.f32 %f87, 0f3F800000, %f1013, %p85;
+ abs.f32 %f88, %f59;
+ setp.lt.f32 %p86, %f88, 0f00800000;
+ mul.f32 %f637, %f88, 0f4B800000;
+ selp.f32 %f638, 0fC3170000, 0fC2FE0000, %p86;
+ selp.f32 %f639, %f637, %f88, %p86;
+ mov.b32 %r99, %f639;
+ and.b32 %r100, %r99, 8388607;
+ or.b32 %r101, %r100, 1065353216;
+ mov.b32 %f640, %r101;
+ shr.u32 %r102, %r99, 23;
+ cvt.rn.f32.u32 %f641, %r102;
+ add.f32 %f642, %f638, %f641;
+ setp.gt.f32 %p87, %f640, 0f3FB504F3;
+ mul.f32 %f643, %f640, 0f3F000000;
+ add.f32 %f644, %f642, 0f3F800000;
+ selp.f32 %f645, %f643, %f640, %p87;
+ selp.f32 %f646, %f644, %f642, %p87;
+ add.f32 %f647, %f645, 0fBF800000;
+ add.f32 %f636, %f645, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f635,%f636;
+ // inline asm
+ add.f32 %f648, %f647, %f647;
+ mul.f32 %f649, %f635, %f648;
+ mul.f32 %f650, %f649, %f649;
+ fma.rn.f32 %f653, %f963, %f650, %f964;
+ fma.rn.f32 %f655, %f653, %f650, %f965;
+ mul.rn.f32 %f656, %f655, %f650;
+ mul.rn.f32 %f657, %f656, %f649;
+ sub.f32 %f658, %f647, %f649;
+ neg.f32 %f659, %f649;
+ add.f32 %f660, %f658, %f658;
+ fma.rn.f32 %f661, %f659, %f647, %f660;
+ mul.rn.f32 %f662, %f635, %f661;
+ add.f32 %f663, %f657, %f649;
+ sub.f32 %f664, %f649, %f663;
+ add.f32 %f665, %f657, %f664;
+ add.f32 %f666, %f662, %f665;
+ add.f32 %f667, %f663, %f666;
+ sub.f32 %f668, %f663, %f667;
+ add.f32 %f669, %f666, %f668;
+ mul.rn.f32 %f671, %f646, %f966;
+ mul.rn.f32 %f673, %f646, %f967;
+ add.f32 %f674, %f671, %f667;
+ sub.f32 %f675, %f671, %f674;
+ add.f32 %f676, %f667, %f675;
+ add.f32 %f677, %f669, %f676;
+ add.f32 %f678, %f673, %f677;
+ add.f32 %f679, %f674, %f678;
+ sub.f32 %f680, %f674, %f679;
+ add.f32 %f681, %f678, %f680;
+ mul.rn.f32 %f683, %f604, %f679;
+ neg.f32 %f684, %f683;
+ fma.rn.f32 %f685, %f604, %f679, %f684;
+ fma.rn.f32 %f686, %f604, %f681, %f685;
+ fma.rn.f32 %f688, %f609, %f679, %f686;
+ add.rn.f32 %f689, %f683, %f688;
+ neg.f32 %f690, %f689;
+ add.rn.f32 %f691, %f683, %f690;
+ add.rn.f32 %f692, %f691, %f688;
+ mov.b32 %r103, %f689;
+ setp.eq.s32 %p88, %r103, 1118925336;
+ add.s32 %r104, %r103, -1;
+ mov.b32 %f693, %r104;
+ add.f32 %f694, %f692, 0f37000000;
+ selp.f32 %f695, %f693, %f689, %p88;
+ selp.f32 %f89, %f694, %f692, %p88;
+ mul.f32 %f696, %f695, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f697, %f696;
+ fma.rn.f32 %f699, %f697, %f968, %f695;
+ fma.rn.f32 %f701, %f697, %f969, %f699;
+ mul.f32 %f702, %f701, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f703, %f702;
+ add.f32 %f704, %f697, 0f00000000;
+ ex2.approx.f32 %f705, %f704;
+ mul.f32 %f706, %f703, %f705;
+ setp.lt.f32 %p89, %f695, 0fC2D20000;
+ selp.f32 %f707, 0f00000000, %f706, %p89;
+ setp.gt.f32 %p90, %f695, 0f42D20000;
+ selp.f32 %f1014, 0f7F800000, %f707, %p90;
+ setp.eq.f32 %p91, %f1014, 0f7F800000;
+ @%p91 bra BB0_58;
+
+ fma.rn.f32 %f1014, %f1014, %f89, %f1014;
+
+BB0_58:
+ setp.lt.f32 %p92, %f59, 0f00000000;
+ and.pred %p5, %p92, %p77;
+ mov.b32 %r105, %f1014;
+ xor.b32 %r106, %r105, -2147483648;
+ mov.b32 %f708, %r106;
+ selp.f32 %f1016, %f708, %f1014, %p5;
+ setp.eq.f32 %p94, %f59, 0f00000000;
+ @%p94 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f711, %f59, %f59;
+ selp.f32 %f1016, %f711, 0f00000000, %p77;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p95, %f59, 0f00000000;
+ @%p95 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f710, %f604;
+ setp.neu.f32 %p96, %f710, 0f3EE66666;
+ selp.f32 %f1016, 0f7FFFFFFF, %f1016, %p96;
+
+BB0_62:
+ add.f32 %f712, %f88, 0f3EE66666;
+ mov.b32 %r107, %f712;
+ setp.lt.s32 %p98, %r107, 2139095040;
+ @%p98 bra BB0_67;
+
+ setp.gtu.f32 %p99, %f88, 0f7F800000;
+ @%p99 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f1016, %f59, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p100, %f88, 0f7F800000;
+ @%p100 bra BB0_67;
+
+ selp.f32 %f1016, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ mov.f32 %f976, 0fB5BFBE8E;
+ mov.f32 %f975, 0fBF317200;
+ mov.f32 %f974, 0f35BFBE8E;
+ mov.f32 %f973, 0f3F317200;
+ mov.f32 %f972, 0f3DAAAABD;
+ mov.f32 %f971, 0f3C4CAF63;
+ mov.f32 %f970, 0f3B18F0FE;
+ setp.eq.f32 %p101, %f59, 0f3F800000;
+ selp.f32 %f100, 0f3F800000, %f1016, %p101;
+ abs.f32 %f101, %f60;
+ setp.lt.f32 %p102, %f101, 0f00800000;
+ mul.f32 %f715, %f101, 0f4B800000;
+ selp.f32 %f716, 0fC3170000, 0fC2FE0000, %p102;
+ selp.f32 %f717, %f715, %f101, %p102;
+ mov.b32 %r108, %f717;
+ and.b32 %r109, %r108, 8388607;
+ or.b32 %r110, %r109, 1065353216;
+ mov.b32 %f718, %r110;
+ shr.u32 %r111, %r108, 23;
+ cvt.rn.f32.u32 %f719, %r111;
+ add.f32 %f720, %f716, %f719;
+ setp.gt.f32 %p103, %f718, 0f3FB504F3;
+ mul.f32 %f721, %f718, 0f3F000000;
+ add.f32 %f722, %f720, 0f3F800000;
+ selp.f32 %f723, %f721, %f718, %p103;
+ selp.f32 %f724, %f722, %f720, %p103;
+ add.f32 %f725, %f723, 0fBF800000;
+ add.f32 %f714, %f723, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f713,%f714;
+ // inline asm
+ add.f32 %f726, %f725, %f725;
+ mul.f32 %f727, %f713, %f726;
+ mul.f32 %f728, %f727, %f727;
+ fma.rn.f32 %f731, %f970, %f728, %f971;
+ fma.rn.f32 %f733, %f731, %f728, %f972;
+ mul.rn.f32 %f734, %f733, %f728;
+ mul.rn.f32 %f735, %f734, %f727;
+ sub.f32 %f736, %f725, %f727;
+ neg.f32 %f737, %f727;
+ add.f32 %f738, %f736, %f736;
+ fma.rn.f32 %f739, %f737, %f725, %f738;
+ mul.rn.f32 %f740, %f713, %f739;
+ add.f32 %f741, %f735, %f727;
+ sub.f32 %f742, %f727, %f741;
+ add.f32 %f743, %f735, %f742;
+ add.f32 %f744, %f740, %f743;
+ add.f32 %f745, %f741, %f744;
+ sub.f32 %f746, %f741, %f745;
+ add.f32 %f747, %f744, %f746;
+ mul.rn.f32 %f749, %f724, %f973;
+ mul.rn.f32 %f751, %f724, %f974;
+ add.f32 %f752, %f749, %f745;
+ sub.f32 %f753, %f749, %f752;
+ add.f32 %f754, %f745, %f753;
+ add.f32 %f755, %f747, %f754;
+ add.f32 %f756, %f751, %f755;
+ add.f32 %f757, %f752, %f756;
+ sub.f32 %f758, %f752, %f757;
+ add.f32 %f759, %f756, %f758;
+ mul.rn.f32 %f761, %f604, %f757;
+ neg.f32 %f762, %f761;
+ fma.rn.f32 %f763, %f604, %f757, %f762;
+ fma.rn.f32 %f764, %f604, %f759, %f763;
+ fma.rn.f32 %f766, %f609, %f757, %f764;
+ add.rn.f32 %f767, %f761, %f766;
+ neg.f32 %f768, %f767;
+ add.rn.f32 %f769, %f761, %f768;
+ add.rn.f32 %f770, %f769, %f766;
+ mov.b32 %r112, %f767;
+ setp.eq.s32 %p104, %r112, 1118925336;
+ add.s32 %r113, %r112, -1;
+ mov.b32 %f771, %r113;
+ add.f32 %f772, %f770, 0f37000000;
+ selp.f32 %f773, %f771, %f767, %p104;
+ selp.f32 %f102, %f772, %f770, %p104;
+ mul.f32 %f774, %f773, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f775, %f774;
+ fma.rn.f32 %f777, %f775, %f975, %f773;
+ fma.rn.f32 %f779, %f775, %f976, %f777;
+ mul.f32 %f780, %f779, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f781, %f780;
+ add.f32 %f782, %f775, 0f00000000;
+ ex2.approx.f32 %f783, %f782;
+ mul.f32 %f784, %f781, %f783;
+ setp.lt.f32 %p105, %f773, 0fC2D20000;
+ selp.f32 %f785, 0f00000000, %f784, %p105;
+ setp.gt.f32 %p106, %f773, 0f42D20000;
+ selp.f32 %f1017, 0f7F800000, %f785, %p106;
+ setp.eq.f32 %p107, %f1017, 0f7F800000;
+ @%p107 bra BB0_69;
+
+ fma.rn.f32 %f1017, %f1017, %f102, %f1017;
+
+BB0_69:
+ setp.lt.f32 %p108, %f60, 0f00000000;
+ and.pred %p6, %p108, %p77;
+ mov.b32 %r114, %f1017;
+ xor.b32 %r115, %r114, -2147483648;
+ mov.b32 %f786, %r115;
+ selp.f32 %f1019, %f786, %f1017, %p6;
+ setp.eq.f32 %p110, %f60, 0f00000000;
+ @%p110 bra BB0_72;
+ bra.uni BB0_70;
+
+BB0_72:
+ add.f32 %f789, %f60, %f60;
+ selp.f32 %f1019, %f789, 0f00000000, %p77;
+ bra.uni BB0_73;
+
+BB0_70:
+ setp.geu.f32 %p111, %f60, 0f00000000;
+ @%p111 bra BB0_73;
+
+ cvt.rzi.f32.f32 %f788, %f604;
+ setp.neu.f32 %p112, %f788, 0f3EE66666;
+ selp.f32 %f1019, 0f7FFFFFFF, %f1019, %p112;
+
+BB0_73:
+ add.f32 %f790, %f101, 0f3EE66666;
+ mov.b32 %r116, %f790;
+ setp.lt.s32 %p114, %r116, 2139095040;
+ @%p114 bra BB0_78;
+
+ setp.gtu.f32 %p115, %f101, 0f7F800000;
+ @%p115 bra BB0_77;
+ bra.uni BB0_75;
+
+BB0_77:
+ add.f32 %f1019, %f60, 0f3EE66666;
+ bra.uni BB0_78;
+
+BB0_75:
+ setp.neu.f32 %p116, %f101, 0f7F800000;
+ @%p116 bra BB0_78;
+
+ selp.f32 %f1019, 0fFF800000, 0f7F800000, %p6;
+
+BB0_78:
+ mov.u32 %r244, 4;
+ setp.eq.f32 %p117, %f60, 0f3F800000;
+ selp.f32 %f791, 0f3F800000, %f1019, %p117;
+ cvt.u64.u32 %rd36, %r3;
+ cvt.u64.u32 %rd35, %r2;
+ mov.u64 %rd39, image;
+ cvta.global.u64 %rd34, %rd39;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r24, %r244, %rd35, %rd36, %rd15, %rd15);
+ // inline asm
+ cvt.sat.f32.f32 %f792, %f791;
+ mul.f32 %f793, %f792, 0f437FFD71;
+ cvt.rzi.u32.f32 %r119, %f793;
+ cvt.sat.f32.f32 %f794, %f100;
+ mul.f32 %f795, %f794, 0f437FFD71;
+ cvt.rzi.u32.f32 %r120, %f795;
+ cvt.sat.f32.f32 %f796, %f87;
+ mul.f32 %f797, %f796, 0f437FFD71;
+ cvt.rzi.u32.f32 %r121, %f797;
+ cvt.u16.u32 %rs21, %r119;
+ cvt.u16.u32 %rs22, %r121;
+ cvt.u16.u32 %rs23, %r120;
+ mov.u16 %rs24, 255;
+ st.v4.u8 [%rd33], {%rs21, %rs23, %rs22, %rs24};
+ ld.global.u32 %r248, [imageEnabled];
+
+BB0_79:
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ and.b32 %r122, %r248, 4;
+ setp.eq.s32 %p118, %r122, 0;
+ @%p118 bra BB0_83;
+
+ ld.global.u32 %r123, [additive];
+ setp.eq.s32 %p119, %r123, 0;
+ mov.f32 %f798, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f798;}
+
+ // inline asm
+ @%p119 bra BB0_82;
+
+ mov.u64 %rd52, image_HDR;
+ cvta.global.u64 %rd41, %rd52;
+ mov.u32 %r127, 8;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r24, %r127, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs32, %rs33, %rs34, %rs35}, [%rd40];
+ // inline asm
+ { cvt.f32.f16 %f799, %rs32;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f800, %rs33;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f801, %rs34;}
+
+ // inline asm
+ // inline asm
+ call (%rd46), _rt_buffer_get_64, (%rd41, %r24, %r127, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f802, %f58, %f799;
+ add.f32 %f803, %f59, %f800;
+ add.f32 %f804, %f60, %f801;
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f804;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f803;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f802;}
+
+ // inline asm
+ st.v4.u16 [%rd46], {%rs29, %rs30, %rs31, %rs25};
+ bra.uni BB0_83;
+
+BB0_82:
+ mov.u64 %rd59, image_HDR;
+ cvta.global.u64 %rd54, %rd59;
+ mov.u32 %r129, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r24, %r129, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f60;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f59;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f58;}
+
+ // inline asm
+ st.v4.u16 [%rd53], {%rs36, %rs37, %rs38, %rs25};
+
+BB0_83:
+ mul.f32 %f809, %f44, 0f3E800000;
+ mul.f32 %f810, %f809, %f1007;
+ mul.f32 %f811, %f45, %f810;
+ ld.global.f32 %f812, [lightColor];
+ mul.f32 %f813, %f811, %f812;
+ ld.global.f32 %f814, [lightColor+4];
+ mul.f32 %f815, %f811, %f814;
+ ld.global.f32 %f816, [lightColor+8];
+ mul.f32 %f817, %f811, %f816;
+ mul.f32 %f113, %f324, %f813;
+ mul.f32 %f114, %f325, %f815;
+ mul.f32 %f115, %f326, %f817;
+ ld.global.u32 %r130, [additive];
+ setp.eq.s32 %p120, %r130, 0;
+ mov.f32 %f808, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f808;}
+
+ // inline asm
+ @%p120 bra BB0_85;
+
+ mov.u64 %rd72, image_RNM0;
+ cvta.global.u64 %rd61, %rd72;
+ mov.u32 %r134, 8;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r24, %r134, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs46, %rs47, %rs48, %rs49}, [%rd60];
+ // inline asm
+ { cvt.f32.f16 %f818, %rs46;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f819, %rs47;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f820, %rs48;}
+
+ // inline asm
+ // inline asm
+ call (%rd66), _rt_buffer_get_64, (%rd61, %r24, %r134, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f821, %f113, %f818;
+ add.f32 %f822, %f114, %f819;
+ add.f32 %f823, %f115, %f820;
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f823;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f822;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f821;}
+
+ // inline asm
+ st.v4.u16 [%rd66], {%rs43, %rs44, %rs45, %rs39};
+ bra.uni BB0_86;
+
+BB0_85:
+ mov.u64 %rd79, image_RNM0;
+ cvta.global.u64 %rd74, %rd79;
+ mov.u32 %r136, 8;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r24, %r136, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f115;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f114;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f113;}
+
+ // inline asm
+ st.v4.u16 [%rd73], {%rs50, %rs51, %rs52, %rs39};
+
+BB0_86:
+ fma.rn.f32 %f116, %f10, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f117, %f11, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f118, %f12, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r137, [additive];
+ setp.eq.s32 %p121, %r137, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f808;}
+
+ // inline asm
+ @%p121 bra BB0_88;
+
+ mov.u64 %rd92, image_RNM1;
+ cvta.global.u64 %rd81, %rd92;
+ mov.u32 %r141, 8;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r24, %r141, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs60, %rs61, %rs62, %rs63}, [%rd80];
+ // inline asm
+ { cvt.f32.f16 %f828, %rs60;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f829, %rs61;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f830, %rs62;}
+
+ // inline asm
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd81, %r24, %r141, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f831, %f116, %f828;
+ add.f32 %f832, %f116, %f829;
+ add.f32 %f833, %f116, %f830;
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f833;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f832;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f831;}
+
+ // inline asm
+ st.v4.u16 [%rd86], {%rs57, %rs58, %rs59, %rs53};
+ bra.uni BB0_89;
+
+BB0_88:
+ mov.u64 %rd99, image_RNM1;
+ cvta.global.u64 %rd94, %rd99;
+ mov.u32 %r143, 8;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd94, %r24, %r143, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f116;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs64, %rs64, %rs64, %rs53};
+
+BB0_89:
+ ld.global.u32 %r144, [additive];
+ setp.eq.s32 %p122, %r144, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f808;}
+
+ // inline asm
+ @%p122 bra BB0_91;
+
+ mov.u64 %rd112, image_RNM2;
+ cvta.global.u64 %rd101, %rd112;
+ mov.u32 %r148, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r24, %r148, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs72, %rs73, %rs74, %rs75}, [%rd100];
+ // inline asm
+ { cvt.f32.f16 %f836, %rs72;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f837, %rs73;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f838, %rs74;}
+
+ // inline asm
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd101, %r24, %r148, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f839, %f117, %f836;
+ add.f32 %f840, %f117, %f837;
+ add.f32 %f841, %f117, %f838;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f841;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f840;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f839;}
+
+ // inline asm
+ st.v4.u16 [%rd106], {%rs69, %rs70, %rs71, %rs65};
+ bra.uni BB0_92;
+
+BB0_91:
+ mov.u64 %rd119, image_RNM2;
+ cvta.global.u64 %rd114, %rd119;
+ mov.u32 %r150, 8;
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd114, %r24, %r150, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f117;}
+
+ // inline asm
+ st.v4.u16 [%rd113], {%rs76, %rs76, %rs76, %rs65};
+
+BB0_92:
+ ld.global.u32 %r151, [additive];
+ setp.eq.s32 %p123, %r151, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f808;}
+
+ // inline asm
+ @%p123 bra BB0_94;
+
+ mov.u64 %rd132, image_RNM3;
+ cvta.global.u64 %rd121, %rd132;
+ mov.u32 %r155, 8;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd121, %r24, %r155, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs84, %rs85, %rs86, %rs87}, [%rd120];
+ // inline asm
+ { cvt.f32.f16 %f844, %rs84;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f845, %rs85;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f846, %rs86;}
+
+ // inline asm
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd121, %r24, %r155, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f847, %f118, %f844;
+ add.f32 %f848, %f118, %f845;
+ add.f32 %f849, %f118, %f846;
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f849;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f848;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f847;}
+
+ // inline asm
+ st.v4.u16 [%rd126], {%rs81, %rs82, %rs83, %rs77};
+ bra.uni BB0_135;
+
+BB0_94:
+ mov.u64 %rd139, image_RNM3;
+ cvta.global.u64 %rd134, %rd139;
+ mov.u32 %r157, 8;
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd134, %r24, %r157, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f118;}
+
+ // inline asm
+ st.v4.u16 [%rd133], {%rs88, %rs88, %rs88, %rs77};
+
+BB0_135:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightSH.ptx.meta
new file mode 100644
index 00000000..426b3b7e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCookieLightSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e65c11674cb367f479c518d362e91279
+timeCreated: 1537814797
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLight.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLight.ptx
new file mode 100644
index 00000000..529a9bdb
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLight.ptx
@@ -0,0 +1,1569 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_Dir[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .u32 lightCubemap;
+.global .align 4 .b8 lightMatrix[36];
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12lightCubemapE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightMatrixE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12lightCubemapE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename11lightMatrixE[10] = {77, 97, 116, 114, 105, 120, 51, 120, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12lightCubemapE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightMatrixE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12lightCubemapE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightMatrixE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12lightCubemapE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightMatrixE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<113>;
+ .reg .b16 %rs<76>;
+ .reg .f32 %f<769>;
+ .reg .b32 %r<169>;
+ .reg .b64 %rd<150>;
+
+
+ mov.u64 %rd149, __local_depot0;
+ cvta.local.u64 %SP, %rd149;
+ ld.global.v2.u32 {%r26, %r27}, [pixelID];
+ cvt.u64.u32 %rd12, %r26;
+ cvt.u64.u32 %rd13, %r27;
+ mov.u64 %rd16, uvnormal;
+ cvta.global.u64 %rd11, %rd16;
+ mov.u32 %r24, 2;
+ mov.u32 %r25, 4;
+ mov.u64 %rd15, 0;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r24, %r25, %rd12, %rd13, %rd15, %rd15);
+ // inline asm
+ ld.u32 %r1, [%rd10];
+ shr.u32 %r30, %r1, 16;
+ cvt.u16.u32 %rs1, %r30;
+ and.b16 %rs4, %rs1, 255;
+ cvt.u16.u32 %rs5, %r1;
+ or.b16 %rs6, %rs5, %rs4;
+ setp.eq.s16 %p6, %rs6, 0;
+ mov.f32 %f748, 0f00000000;
+ mov.f32 %f749, %f748;
+ mov.f32 %f750, %f748;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs7, [%rd10+1];
+ and.b16 %rs9, %rs5, 255;
+ cvt.rn.f32.u16 %f99, %rs9;
+ div.rn.f32 %f100, %f99, 0f437F0000;
+ fma.rn.f32 %f101, %f100, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f102, %rs7;
+ div.rn.f32 %f103, %f102, 0f437F0000;
+ fma.rn.f32 %f104, %f103, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f105, %rs4;
+ div.rn.f32 %f106, %f105, 0f437F0000;
+ fma.rn.f32 %f107, %f106, 0f40000000, 0fBF800000;
+ mul.f32 %f108, %f104, %f104;
+ fma.rn.f32 %f109, %f101, %f101, %f108;
+ fma.rn.f32 %f110, %f107, %f107, %f109;
+ sqrt.rn.f32 %f111, %f110;
+ rcp.rn.f32 %f112, %f111;
+ mul.f32 %f748, %f101, %f112;
+ mul.f32 %f749, %f104, %f112;
+ mul.f32 %f750, %f107, %f112;
+
+BB0_2:
+ ld.global.v2.u32 {%r31, %r32}, [pixelID];
+ ld.global.v2.u32 {%r34, %r35}, [tileInfo];
+ add.s32 %r2, %r31, %r34;
+ add.s32 %r3, %r32, %r35;
+ setp.eq.f32 %p7, %f749, 0f00000000;
+ setp.eq.f32 %p8, %f748, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f750, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_84;
+ bra.uni BB0_3;
+
+BB0_84:
+ ld.global.u32 %r168, [imageEnabled];
+ and.b32 %r144, %r168, 1;
+ setp.eq.b32 %p108, %r144, 1;
+ @!%p108 bra BB0_86;
+ bra.uni BB0_85;
+
+BB0_85:
+ cvt.u64.u32 %rd110, %r2;
+ cvt.u64.u32 %rd111, %r3;
+ mov.u64 %rd114, image;
+ cvta.global.u64 %rd109, %rd114;
+ // inline asm
+ call (%rd108), _rt_buffer_get_64, (%rd109, %r24, %r25, %rd110, %rd111, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs57, 0;
+ st.v4.u8 [%rd108], {%rs57, %rs57, %rs57, %rs57};
+ ld.global.u32 %r168, [imageEnabled];
+
+BB0_86:
+ and.b32 %r147, %r168, 8;
+ setp.eq.s32 %p109, %r147, 0;
+ @%p109 bra BB0_88;
+
+ cvt.u64.u32 %rd117, %r2;
+ cvt.u64.u32 %rd118, %r3;
+ mov.u64 %rd121, image_Mask;
+ cvta.global.u64 %rd116, %rd121;
+ // inline asm
+ call (%rd115), _rt_buffer_get_64, (%rd116, %r24, %r24, %rd117, %rd118, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f701, 0f00000000;
+ cvt.rzi.u32.f32 %r150, %f701;
+ cvt.u16.u32 %rs58, %r150;
+ mov.u16 %rs59, 0;
+ st.v2.u8 [%rd115], {%rs58, %rs59};
+ ld.global.u32 %r168, [imageEnabled];
+
+BB0_88:
+ and.b32 %r151, %r168, 4;
+ setp.eq.s32 %p110, %r151, 0;
+ @%p110 bra BB0_92;
+
+ ld.global.u32 %r152, [additive];
+ setp.eq.s32 %p111, %r152, 0;
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ @%p111 bra BB0_91;
+
+ mov.u64 %rd134, image_HDR;
+ cvta.global.u64 %rd123, %rd134;
+ mov.u32 %r156, 8;
+ // inline asm
+ call (%rd122), _rt_buffer_get_64, (%rd123, %r24, %r156, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs66, %rs67, %rs68, %rs69}, [%rd122];
+ // inline asm
+ { cvt.f32.f16 %f702, %rs66;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f703, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f704, %rs68;}
+
+ // inline asm
+ // inline asm
+ call (%rd128), _rt_buffer_get_64, (%rd123, %r24, %r156, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f705, %f702, 0f00000000;
+ add.f32 %f706, %f703, 0f00000000;
+ add.f32 %f707, %f704, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f707;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f706;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs63, %f705;}
+
+ // inline asm
+ mov.u16 %rs70, 0;
+ st.v4.u16 [%rd128], {%rs63, %rs64, %rs65, %rs70};
+ bra.uni BB0_92;
+
+BB0_3:
+ ld.global.v2.u32 {%r41, %r42}, [pixelID];
+ cvt.u64.u32 %rd19, %r41;
+ cvt.u64.u32 %rd20, %r42;
+ mov.u64 %rd23, uvpos;
+ cvta.global.u64 %rd18, %rd23;
+ mov.u32 %r40, 12;
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd18, %r24, %r40, %rd19, %rd20, %rd15, %rd15);
+ // inline asm
+ ld.global.f32 %f115, [lightPos];
+ ld.f32 %f9, [%rd17+8];
+ ld.f32 %f8, [%rd17+4];
+ ld.f32 %f7, [%rd17];
+ sub.f32 %f116, %f115, %f7;
+ ld.global.f32 %f117, [lightPos+4];
+ sub.f32 %f118, %f117, %f8;
+ ld.global.f32 %f119, [lightPos+8];
+ sub.f32 %f120, %f119, %f9;
+ mul.f32 %f121, %f118, %f118;
+ fma.rn.f32 %f122, %f116, %f116, %f121;
+ fma.rn.f32 %f123, %f120, %f120, %f122;
+ sqrt.rn.f32 %f124, %f123;
+ rcp.rn.f32 %f125, %f124;
+ mul.f32 %f10, %f116, %f125;
+ mul.f32 %f11, %f118, %f125;
+ mul.f32 %f12, %f120, %f125;
+ ld.global.f32 %f126, [lightFalloffFakeDistanceMult];
+ mul.f32 %f13, %f124, %f126;
+ ld.global.f32 %f127, [lightInvCutoff];
+ mul.f32 %f14, %f124, %f127;
+ mov.f32 %f131, 0f40800000;
+ abs.f32 %f16, %f14;
+ setp.lt.f32 %p12, %f16, 0f00800000;
+ mul.f32 %f133, %f16, 0f4B800000;
+ selp.f32 %f134, 0fC3170000, 0fC2FE0000, %p12;
+ selp.f32 %f135, %f133, %f16, %p12;
+ mov.b32 %r45, %f135;
+ and.b32 %r46, %r45, 8388607;
+ or.b32 %r47, %r46, 1065353216;
+ mov.b32 %f136, %r47;
+ shr.u32 %r48, %r45, 23;
+ cvt.rn.f32.u32 %f137, %r48;
+ add.f32 %f138, %f134, %f137;
+ setp.gt.f32 %p13, %f136, 0f3FB504F3;
+ mul.f32 %f139, %f136, 0f3F000000;
+ add.f32 %f140, %f138, 0f3F800000;
+ selp.f32 %f141, %f139, %f136, %p13;
+ selp.f32 %f142, %f140, %f138, %p13;
+ add.f32 %f143, %f141, 0fBF800000;
+ add.f32 %f114, %f141, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f113,%f114;
+ // inline asm
+ add.f32 %f144, %f143, %f143;
+ mul.f32 %f145, %f113, %f144;
+ mul.f32 %f146, %f145, %f145;
+ mov.f32 %f147, 0f3C4CAF63;
+ mov.f32 %f148, 0f3B18F0FE;
+ fma.rn.f32 %f149, %f148, %f146, %f147;
+ mov.f32 %f150, 0f3DAAAABD;
+ fma.rn.f32 %f151, %f149, %f146, %f150;
+ mul.rn.f32 %f152, %f151, %f146;
+ mul.rn.f32 %f153, %f152, %f145;
+ sub.f32 %f154, %f143, %f145;
+ neg.f32 %f155, %f145;
+ add.f32 %f156, %f154, %f154;
+ fma.rn.f32 %f157, %f155, %f143, %f156;
+ mul.rn.f32 %f158, %f113, %f157;
+ add.f32 %f159, %f153, %f145;
+ sub.f32 %f160, %f145, %f159;
+ add.f32 %f161, %f153, %f160;
+ add.f32 %f162, %f158, %f161;
+ add.f32 %f163, %f159, %f162;
+ sub.f32 %f164, %f159, %f163;
+ add.f32 %f165, %f162, %f164;
+ mov.f32 %f166, 0f3F317200;
+ mul.rn.f32 %f167, %f142, %f166;
+ mov.f32 %f168, 0f35BFBE8E;
+ mul.rn.f32 %f169, %f142, %f168;
+ add.f32 %f170, %f167, %f163;
+ sub.f32 %f171, %f167, %f170;
+ add.f32 %f172, %f163, %f171;
+ add.f32 %f173, %f165, %f172;
+ add.f32 %f174, %f169, %f173;
+ add.f32 %f175, %f170, %f174;
+ sub.f32 %f176, %f170, %f175;
+ add.f32 %f177, %f174, %f176;
+ mul.rn.f32 %f178, %f131, %f175;
+ neg.f32 %f179, %f178;
+ fma.rn.f32 %f180, %f131, %f175, %f179;
+ fma.rn.f32 %f181, %f131, %f177, %f180;
+ mov.f32 %f182, 0f00000000;
+ fma.rn.f32 %f183, %f182, %f175, %f181;
+ add.rn.f32 %f184, %f178, %f183;
+ neg.f32 %f185, %f184;
+ add.rn.f32 %f186, %f178, %f185;
+ add.rn.f32 %f187, %f186, %f183;
+ mov.b32 %r49, %f184;
+ setp.eq.s32 %p14, %r49, 1118925336;
+ add.s32 %r50, %r49, -1;
+ mov.b32 %f188, %r50;
+ add.f32 %f189, %f187, 0f37000000;
+ selp.f32 %f190, %f188, %f184, %p14;
+ selp.f32 %f17, %f189, %f187, %p14;
+ mul.f32 %f191, %f190, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f192, %f191;
+ mov.f32 %f193, 0fBF317200;
+ fma.rn.f32 %f194, %f192, %f193, %f190;
+ mov.f32 %f195, 0fB5BFBE8E;
+ fma.rn.f32 %f196, %f192, %f195, %f194;
+ mul.f32 %f197, %f196, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f198, %f197;
+ add.f32 %f199, %f192, 0f00000000;
+ ex2.approx.f32 %f200, %f199;
+ mul.f32 %f201, %f198, %f200;
+ setp.lt.f32 %p15, %f190, 0fC2D20000;
+ selp.f32 %f202, 0f00000000, %f201, %p15;
+ setp.gt.f32 %p16, %f190, 0f42D20000;
+ selp.f32 %f751, 0f7F800000, %f202, %p16;
+ setp.eq.f32 %p17, %f751, 0f7F800000;
+ @%p17 bra BB0_5;
+
+ fma.rn.f32 %f751, %f751, %f17, %f751;
+
+BB0_5:
+ mov.f32 %f714, 0f40000000;
+ cvt.rzi.f32.f32 %f713, %f714;
+ add.f32 %f712, %f713, %f713;
+ mov.f32 %f711, 0f40800000;
+ sub.f32 %f710, %f711, %f712;
+ abs.f32 %f709, %f710;
+ setp.lt.f32 %p18, %f14, 0f00000000;
+ setp.eq.f32 %p19, %f709, 0f3F800000;
+ and.pred %p1, %p18, %p19;
+ mov.b32 %r51, %f751;
+ xor.b32 %r52, %r51, -2147483648;
+ mov.b32 %f203, %r52;
+ selp.f32 %f753, %f203, %f751, %p1;
+ setp.eq.f32 %p20, %f14, 0f00000000;
+ @%p20 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f206, %f14, %f14;
+ selp.f32 %f753, %f206, 0f00000000, %p19;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p21, %f14, 0f00000000;
+ @%p21 bra BB0_9;
+
+ mov.f32 %f747, 0f40800000;
+ cvt.rzi.f32.f32 %f205, %f747;
+ setp.neu.f32 %p22, %f205, 0f40800000;
+ selp.f32 %f753, 0f7FFFFFFF, %f753, %p22;
+
+BB0_9:
+ abs.f32 %f715, %f14;
+ add.f32 %f207, %f715, 0f40800000;
+ mov.b32 %r53, %f207;
+ setp.lt.s32 %p24, %r53, 2139095040;
+ @%p24 bra BB0_14;
+
+ abs.f32 %f745, %f14;
+ setp.gtu.f32 %p25, %f745, 0f7F800000;
+ @%p25 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f753, %f14, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f746, %f14;
+ setp.neu.f32 %p26, %f746, 0f7F800000;
+ @%p26 bra BB0_14;
+
+ selp.f32 %f753, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ mov.f32 %f756, 0f3F800000;
+ sub.f32 %f216, %f756, %f753;
+ setp.eq.f32 %p27, %f14, 0f3F800000;
+ selp.f32 %f217, 0f00000000, %f216, %p27;
+ cvt.sat.f32.f32 %f218, %f217;
+ ld.global.f32 %f219, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f220, %f13, %f13, %f219;
+ div.rn.f32 %f221, %f218, %f220;
+ mul.f32 %f222, %f749, %f11;
+ fma.rn.f32 %f223, %f748, %f10, %f222;
+ fma.rn.f32 %f224, %f750, %f12, %f223;
+ ld.global.u32 %r57, [imageEnabled];
+ and.b32 %r58, %r57, 32;
+ ld.global.u32 %r59, [ignoreNormal];
+ or.b32 %r60, %r58, %r59;
+ setp.eq.s32 %p28, %r60, 0;
+ selp.f32 %f225, %f224, 0f3F800000, %p28;
+ ld.global.f32 %f226, [lightMatrix];
+ fma.rn.f32 %f227, %f226, %f10, 0f00000000;
+ ld.global.f32 %f228, [lightMatrix+4];
+ fma.rn.f32 %f229, %f228, %f11, %f227;
+ ld.global.f32 %f230, [lightMatrix+8];
+ fma.rn.f32 %f214, %f230, %f12, %f229;
+ cvt.sat.f32.f32 %f231, %f225;
+ ld.global.f32 %f232, [lightMatrix+12];
+ fma.rn.f32 %f233, %f232, %f10, 0f00000000;
+ ld.global.f32 %f234, [lightMatrix+16];
+ fma.rn.f32 %f235, %f234, %f11, %f233;
+ ld.global.f32 %f236, [lightMatrix+20];
+ fma.rn.f32 %f213, %f236, %f12, %f235;
+ ld.global.f32 %f237, [lightMatrix+24];
+ fma.rn.f32 %f238, %f237, %f10, 0f00000000;
+ ld.global.f32 %f239, [lightMatrix+28];
+ fma.rn.f32 %f240, %f239, %f11, %f238;
+ ld.global.f32 %f241, [lightMatrix+32];
+ fma.rn.f32 %f212, %f241, %f12, %f240;
+ ld.global.u32 %r54, [lightCubemap];
+ mov.u32 %r55, 6;
+ mov.u32 %r161, 0;
+ // inline asm
+ call (%f208, %f209, %f210, %f211), _rt_texture_get_base_id, (%r54, %r55, %f212, %f213, %f214, %r161);
+ // inline asm
+ max.f32 %f242, %f208, %f209;
+ max.f32 %f243, %f242, %f210;
+ mul.f32 %f31, %f221, %f231;
+ mul.f32 %f244, %f31, %f243;
+ ld.global.f32 %f245, [lightColor+4];
+ ld.global.f32 %f246, [lightColor];
+ max.f32 %f247, %f246, %f245;
+ ld.global.f32 %f248, [lightColor+8];
+ max.f32 %f249, %f247, %f248;
+ mul.f32 %f250, %f244, %f249;
+ setp.lt.f32 %p29, %f250, 0f3727C5AC;
+ @%p29 bra BB0_74;
+ bra.uni BB0_15;
+
+BB0_74:
+ ld.global.u32 %r166, [imageEnabled];
+ and.b32 %r127, %r166, 1;
+ setp.eq.b32 %p103, %r127, 1;
+ @!%p103 bra BB0_76;
+ bra.uni BB0_75;
+
+BB0_75:
+ cvt.u64.u32 %rd69, %r2;
+ cvt.u64.u32 %rd70, %r3;
+ mov.u64 %rd73, image;
+ cvta.global.u64 %rd68, %rd73;
+ // inline asm
+ call (%rd67), _rt_buffer_get_64, (%rd68, %r24, %r25, %rd69, %rd70, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs37, 1;
+ mov.u16 %rs38, 0;
+ st.v4.u8 [%rd67], {%rs38, %rs38, %rs38, %rs37};
+ ld.global.u32 %r166, [imageEnabled];
+
+BB0_76:
+ and.b32 %r130, %r166, 8;
+ setp.eq.s32 %p104, %r130, 0;
+ @%p104 bra BB0_78;
+
+ cvt.u64.u32 %rd76, %r2;
+ cvt.u64.u32 %rd77, %r3;
+ mov.u64 %rd80, image_Mask;
+ cvta.global.u64 %rd75, %rd80;
+ // inline asm
+ call (%rd74), _rt_buffer_get_64, (%rd75, %r24, %r24, %rd76, %rd77, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f690, 0f00000000;
+ cvt.rzi.u32.f32 %r133, %f690;
+ cvt.u16.u32 %rs39, %r133;
+ mov.u16 %rs40, 255;
+ st.v2.u8 [%rd74], {%rs39, %rs40};
+ ld.global.u32 %r166, [imageEnabled];
+
+BB0_78:
+ and.b32 %r134, %r166, 4;
+ setp.eq.s32 %p105, %r134, 0;
+ @%p105 bra BB0_82;
+
+ ld.global.u32 %r135, [additive];
+ setp.eq.s32 %p106, %r135, 0;
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ mov.f32 %f691, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs41, %f691;}
+
+ // inline asm
+ @%p106 bra BB0_81;
+
+ mov.u64 %rd93, image_HDR;
+ cvta.global.u64 %rd82, %rd93;
+ mov.u32 %r139, 8;
+ // inline asm
+ call (%rd81), _rt_buffer_get_64, (%rd82, %r24, %r139, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs48, %rs49, %rs50, %rs51}, [%rd81];
+ // inline asm
+ { cvt.f32.f16 %f692, %rs48;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f693, %rs49;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f694, %rs50;}
+
+ // inline asm
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd82, %r24, %r139, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f695, %f692, 0f00000000;
+ add.f32 %f696, %f693, 0f00000000;
+ add.f32 %f697, %f694, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f697;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f696;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f695;}
+
+ // inline asm
+ st.v4.u16 [%rd87], {%rs45, %rs46, %rs47, %rs41};
+ bra.uni BB0_82;
+
+BB0_15:
+ mov.f32 %f755, 0f00000000;
+ mul.f32 %f252, %f7, 0f3456BF95;
+ abs.f32 %f253, %f748;
+ div.rn.f32 %f254, %f252, %f253;
+ abs.f32 %f255, %f749;
+ mul.f32 %f256, %f8, 0f3456BF95;
+ div.rn.f32 %f257, %f256, %f255;
+ abs.f32 %f258, %f750;
+ mul.f32 %f259, %f9, 0f3456BF95;
+ div.rn.f32 %f260, %f259, %f258;
+ abs.f32 %f261, %f254;
+ abs.f32 %f262, %f257;
+ abs.f32 %f263, %f260;
+ mov.f32 %f264, 0f38D1B717;
+ max.f32 %f265, %f261, %f264;
+ max.f32 %f266, %f262, %f264;
+ max.f32 %f267, %f263, %f264;
+ fma.rn.f32 %f32, %f748, %f265, %f7;
+ fma.rn.f32 %f33, %f749, %f266, %f8;
+ fma.rn.f32 %f34, %f750, %f267, %f9;
+ ld.global.u32 %r162, [samples];
+ setp.lt.s32 %p30, %r162, 1;
+ @%p30 bra BB0_18;
+
+ mul.f32 %f269, %f32, 0f3456BF95;
+ abs.f32 %f270, %f269;
+ mul.f32 %f271, %f33, 0f3456BF95;
+ abs.f32 %f272, %f271;
+ mul.f32 %f273, %f34, 0f3456BF95;
+ abs.f32 %f274, %f273;
+ max.f32 %f275, %f270, %f272;
+ max.f32 %f276, %f275, %f274;
+ max.f32 %f35, %f276, %f264;
+ add.u64 %rd24, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd24;
+ mov.f32 %f755, 0f00000000;
+
+BB0_17:
+ cvt.rn.f32.s32 %f286, %r161;
+ mul.f32 %f287, %f286, 0f3DD32618;
+ cvt.rmi.f32.f32 %f288, %f287;
+ sub.f32 %f289, %f287, %f288;
+ mul.f32 %f290, %f286, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f291, %f290;
+ sub.f32 %f292, %f290, %f291;
+ mul.f32 %f293, %f286, 0f3DC74539;
+ cvt.rmi.f32.f32 %f294, %f293;
+ sub.f32 %f295, %f293, %f294;
+ add.f32 %f296, %f292, 0f4199851F;
+ add.f32 %f297, %f295, 0f4199851F;
+ add.f32 %f298, %f289, 0f4199851F;
+ mul.f32 %f299, %f292, %f297;
+ fma.rn.f32 %f300, %f289, %f296, %f299;
+ fma.rn.f32 %f301, %f298, %f295, %f300;
+ add.f32 %f302, %f289, %f301;
+ add.f32 %f303, %f292, %f301;
+ add.f32 %f304, %f295, %f301;
+ add.f32 %f305, %f302, %f303;
+ mul.f32 %f306, %f304, %f305;
+ cvt.rmi.f32.f32 %f307, %f306;
+ sub.f32 %f308, %f306, %f307;
+ add.f32 %f309, %f302, %f304;
+ mul.f32 %f310, %f303, %f309;
+ cvt.rmi.f32.f32 %f311, %f310;
+ sub.f32 %f312, %f310, %f311;
+ add.f32 %f313, %f303, %f304;
+ mul.f32 %f314, %f302, %f313;
+ cvt.rmi.f32.f32 %f315, %f314;
+ sub.f32 %f316, %f314, %f315;
+ fma.rn.f32 %f317, %f308, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f318, %f312, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f319, %f316, 0f40000000, 0fBF800000;
+ ld.global.f32 %f320, [lightRadius];
+ ld.global.f32 %f321, [lightPos];
+ fma.rn.f32 %f322, %f320, %f317, %f321;
+ ld.global.f32 %f323, [lightPos+4];
+ fma.rn.f32 %f324, %f320, %f318, %f323;
+ ld.global.f32 %f325, [lightPos+8];
+ fma.rn.f32 %f326, %f320, %f319, %f325;
+ sub.f32 %f327, %f322, %f7;
+ sub.f32 %f328, %f324, %f8;
+ sub.f32 %f329, %f326, %f9;
+ mul.f32 %f330, %f328, %f328;
+ fma.rn.f32 %f331, %f327, %f327, %f330;
+ fma.rn.f32 %f332, %f329, %f329, %f331;
+ sqrt.rn.f32 %f285, %f332;
+ rcp.rn.f32 %f333, %f285;
+ mul.f32 %f281, %f333, %f327;
+ mul.f32 %f282, %f333, %f328;
+ mul.f32 %f283, %f333, %f329;
+ ld.global.u32 %r65, [imageEnabled];
+ and.b32 %r66, %r65, 32;
+ setp.eq.s32 %p31, %r66, 0;
+ selp.f32 %f334, 0f3F800000, 0f41200000, %p31;
+ mul.f32 %f284, %f334, %f35;
+ mov.u32 %r67, 1065353216;
+ st.local.u32 [%rd2], %r67;
+ ld.global.u32 %r62, [root];
+ mov.u32 %r63, 1;
+ // inline asm
+ call _rt_trace_64, (%r62, %f32, %f33, %f34, %f281, %f282, %f283, %r63, %f284, %f285, %rd24, %r25);
+ // inline asm
+ ld.local.f32 %f335, [%rd2];
+ add.f32 %f755, %f755, %f335;
+ ld.global.u32 %r162, [samples];
+ add.s32 %r161, %r161, 1;
+ setp.lt.s32 %p32, %r161, %r162;
+ @%p32 bra BB0_17;
+
+BB0_18:
+ setp.eq.s32 %p33, %r162, 0;
+ @%p33 bra BB0_20;
+
+ cvt.rn.f32.s32 %f337, %r162;
+ div.rn.f32 %f756, %f755, %f337;
+
+BB0_20:
+ ld.global.f32 %f338, [lightColor];
+ mul.f32 %f339, %f31, %f756;
+ mul.f32 %f340, %f338, %f339;
+ ld.global.f32 %f341, [lightColor+4];
+ mul.f32 %f342, %f339, %f341;
+ ld.global.f32 %f343, [lightColor+8];
+ mul.f32 %f344, %f339, %f343;
+ mul.f32 %f41, %f208, %f340;
+ mul.f32 %f42, %f209, %f342;
+ mul.f32 %f43, %f210, %f344;
+ ld.global.u32 %r164, [imageEnabled];
+ and.b32 %r68, %r164, 8;
+ setp.eq.s32 %p34, %r68, 0;
+ @%p34 bra BB0_33;
+
+ mov.f32 %f723, 0fB5BFBE8E;
+ mov.f32 %f722, 0fBF317200;
+ mov.f32 %f721, 0f35BFBE8E;
+ mov.f32 %f720, 0f3F317200;
+ mov.f32 %f719, 0f3DAAAABD;
+ mov.f32 %f718, 0f3C4CAF63;
+ mov.f32 %f717, 0f3B18F0FE;
+ cvt.u64.u32 %rd28, %r2;
+ cvt.u64.u32 %rd29, %r3;
+ mov.u64 %rd32, image_Mask;
+ cvta.global.u64 %rd27, %rd32;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r24, %r24, %rd28, %rd29, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f347, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f348, %f347;
+ fma.rn.f32 %f349, %f348, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f44, %f349;
+ abs.f32 %f45, %f756;
+ setp.lt.f32 %p35, %f45, 0f00800000;
+ mul.f32 %f350, %f45, 0f4B800000;
+ selp.f32 %f351, 0fC3170000, 0fC2FE0000, %p35;
+ selp.f32 %f352, %f350, %f45, %p35;
+ mov.b32 %r71, %f352;
+ and.b32 %r72, %r71, 8388607;
+ or.b32 %r73, %r72, 1065353216;
+ mov.b32 %f353, %r73;
+ shr.u32 %r74, %r71, 23;
+ cvt.rn.f32.u32 %f354, %r74;
+ add.f32 %f355, %f351, %f354;
+ setp.gt.f32 %p36, %f353, 0f3FB504F3;
+ mul.f32 %f356, %f353, 0f3F000000;
+ add.f32 %f357, %f355, 0f3F800000;
+ selp.f32 %f358, %f356, %f353, %p36;
+ selp.f32 %f359, %f357, %f355, %p36;
+ add.f32 %f360, %f358, 0fBF800000;
+ add.f32 %f346, %f358, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f345,%f346;
+ // inline asm
+ add.f32 %f361, %f360, %f360;
+ mul.f32 %f362, %f345, %f361;
+ mul.f32 %f363, %f362, %f362;
+ fma.rn.f32 %f366, %f717, %f363, %f718;
+ fma.rn.f32 %f368, %f366, %f363, %f719;
+ mul.rn.f32 %f369, %f368, %f363;
+ mul.rn.f32 %f370, %f369, %f362;
+ sub.f32 %f371, %f360, %f362;
+ neg.f32 %f372, %f362;
+ add.f32 %f373, %f371, %f371;
+ fma.rn.f32 %f374, %f372, %f360, %f373;
+ mul.rn.f32 %f375, %f345, %f374;
+ add.f32 %f376, %f370, %f362;
+ sub.f32 %f377, %f362, %f376;
+ add.f32 %f378, %f370, %f377;
+ add.f32 %f379, %f375, %f378;
+ add.f32 %f380, %f376, %f379;
+ sub.f32 %f381, %f376, %f380;
+ add.f32 %f382, %f379, %f381;
+ mul.rn.f32 %f384, %f359, %f720;
+ mul.rn.f32 %f386, %f359, %f721;
+ add.f32 %f387, %f384, %f380;
+ sub.f32 %f388, %f384, %f387;
+ add.f32 %f389, %f380, %f388;
+ add.f32 %f390, %f382, %f389;
+ add.f32 %f391, %f386, %f390;
+ add.f32 %f392, %f387, %f391;
+ sub.f32 %f393, %f387, %f392;
+ add.f32 %f394, %f391, %f393;
+ mov.f32 %f395, 0f3EE8BA2E;
+ mul.rn.f32 %f396, %f395, %f392;
+ neg.f32 %f397, %f396;
+ fma.rn.f32 %f398, %f395, %f392, %f397;
+ fma.rn.f32 %f399, %f395, %f394, %f398;
+ mov.f32 %f400, 0f00000000;
+ fma.rn.f32 %f401, %f400, %f392, %f399;
+ add.rn.f32 %f402, %f396, %f401;
+ neg.f32 %f403, %f402;
+ add.rn.f32 %f404, %f396, %f403;
+ add.rn.f32 %f405, %f404, %f401;
+ mov.b32 %r75, %f402;
+ setp.eq.s32 %p37, %r75, 1118925336;
+ add.s32 %r76, %r75, -1;
+ mov.b32 %f406, %r76;
+ add.f32 %f407, %f405, 0f37000000;
+ selp.f32 %f408, %f406, %f402, %p37;
+ selp.f32 %f46, %f407, %f405, %p37;
+ mul.f32 %f409, %f408, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f410, %f409;
+ fma.rn.f32 %f412, %f410, %f722, %f408;
+ fma.rn.f32 %f414, %f410, %f723, %f412;
+ mul.f32 %f415, %f414, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f416, %f415;
+ add.f32 %f417, %f410, 0f00000000;
+ ex2.approx.f32 %f418, %f417;
+ mul.f32 %f419, %f416, %f418;
+ setp.lt.f32 %p38, %f408, 0fC2D20000;
+ selp.f32 %f420, 0f00000000, %f419, %p38;
+ setp.gt.f32 %p39, %f408, 0f42D20000;
+ selp.f32 %f757, 0f7F800000, %f420, %p39;
+ setp.eq.f32 %p40, %f757, 0f7F800000;
+ @%p40 bra BB0_23;
+
+ fma.rn.f32 %f757, %f757, %f46, %f757;
+
+BB0_23:
+ setp.lt.f32 %p41, %f756, 0f00000000;
+ setp.eq.f32 %p42, %f44, 0f3F800000;
+ and.pred %p2, %p41, %p42;
+ mov.b32 %r77, %f757;
+ xor.b32 %r78, %r77, -2147483648;
+ mov.b32 %f421, %r78;
+ selp.f32 %f759, %f421, %f757, %p2;
+ setp.eq.f32 %p43, %f756, 0f00000000;
+ @%p43 bra BB0_26;
+ bra.uni BB0_24;
+
+BB0_26:
+ add.f32 %f424, %f756, %f756;
+ selp.f32 %f759, %f424, 0f00000000, %p42;
+ bra.uni BB0_27;
+
+BB0_91:
+ mov.u64 %rd141, image_HDR;
+ cvta.global.u64 %rd136, %rd141;
+ mov.u32 %r158, 8;
+ // inline asm
+ call (%rd135), _rt_buffer_get_64, (%rd136, %r24, %r158, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f708, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f708;}
+
+ // inline asm
+ mov.u16 %rs72, 0;
+ st.v4.u16 [%rd135], {%rs71, %rs71, %rs71, %rs72};
+
+BB0_92:
+ ld.global.u8 %rs73, [imageEnabled];
+ and.b16 %rs74, %rs73, 64;
+ setp.eq.s16 %p112, %rs74, 0;
+ @%p112 bra BB0_94;
+
+ cvt.u64.u32 %rd144, %r2;
+ cvt.u64.u32 %rd145, %r3;
+ mov.u64 %rd148, image_Dir;
+ cvta.global.u64 %rd143, %rd148;
+ // inline asm
+ call (%rd142), _rt_buffer_get_64, (%rd143, %r24, %r25, %rd144, %rd145, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs75, 0;
+ st.v4.u8 [%rd142], {%rs75, %rs75, %rs75, %rs75};
+ bra.uni BB0_94;
+
+BB0_81:
+ mov.u64 %rd100, image_HDR;
+ cvta.global.u64 %rd95, %rd100;
+ mov.u32 %r141, 8;
+ // inline asm
+ call (%rd94), _rt_buffer_get_64, (%rd95, %r24, %r141, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f698, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f698;}
+
+ // inline asm
+ st.v4.u16 [%rd94], {%rs52, %rs52, %rs52, %rs41};
+
+BB0_82:
+ ld.global.u8 %rs53, [imageEnabled];
+ and.b16 %rs54, %rs53, 64;
+ setp.eq.s16 %p107, %rs54, 0;
+ @%p107 bra BB0_94;
+
+ cvt.u64.u32 %rd103, %r2;
+ cvt.u64.u32 %rd104, %r3;
+ mov.u64 %rd107, image_Dir;
+ cvta.global.u64 %rd102, %rd107;
+ // inline asm
+ call (%rd101), _rt_buffer_get_64, (%rd102, %r24, %r25, %rd103, %rd104, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs55, 255;
+ mov.u16 %rs56, 0;
+ st.v4.u8 [%rd101], {%rs56, %rs56, %rs56, %rs55};
+ bra.uni BB0_94;
+
+BB0_24:
+ setp.geu.f32 %p44, %f756, 0f00000000;
+ @%p44 bra BB0_27;
+
+ cvt.rzi.f32.f32 %f423, %f395;
+ setp.neu.f32 %p45, %f423, 0f3EE8BA2E;
+ selp.f32 %f759, 0f7FFFFFFF, %f759, %p45;
+
+BB0_27:
+ add.f32 %f425, %f45, 0f3EE8BA2E;
+ mov.b32 %r79, %f425;
+ setp.lt.s32 %p47, %r79, 2139095040;
+ @%p47 bra BB0_32;
+
+ setp.gtu.f32 %p48, %f45, 0f7F800000;
+ @%p48 bra BB0_31;
+ bra.uni BB0_29;
+
+BB0_31:
+ add.f32 %f759, %f756, 0f3EE8BA2E;
+ bra.uni BB0_32;
+
+BB0_29:
+ setp.neu.f32 %p49, %f45, 0f7F800000;
+ @%p49 bra BB0_32;
+
+ selp.f32 %f759, 0fFF800000, 0f7F800000, %p2;
+
+BB0_32:
+ mul.f32 %f426, %f759, 0f437F0000;
+ setp.eq.f32 %p50, %f756, 0f3F800000;
+ selp.f32 %f427, 0f437F0000, %f426, %p50;
+ cvt.rzi.u32.f32 %r80, %f427;
+ cvt.u16.u32 %rs11, %r80;
+ mov.u16 %rs12, 255;
+ st.v2.u8 [%rd26], {%rs11, %rs12};
+ ld.global.u32 %r164, [imageEnabled];
+
+BB0_33:
+ and.b32 %r81, %r164, 1;
+ setp.eq.b32 %p51, %r81, 1;
+ @!%p51 bra BB0_68;
+ bra.uni BB0_34;
+
+BB0_34:
+ mov.f32 %f730, 0fB5BFBE8E;
+ mov.f32 %f729, 0fBF317200;
+ mov.f32 %f728, 0f35BFBE8E;
+ mov.f32 %f727, 0f3F317200;
+ mov.f32 %f726, 0f3DAAAABD;
+ mov.f32 %f725, 0f3C4CAF63;
+ mov.f32 %f724, 0f3B18F0FE;
+ mov.f32 %f430, 0f3E666666;
+ cvt.rzi.f32.f32 %f431, %f430;
+ fma.rn.f32 %f432, %f431, 0fC0000000, 0f3EE66666;
+ abs.f32 %f57, %f432;
+ abs.f32 %f58, %f41;
+ setp.lt.f32 %p52, %f58, 0f00800000;
+ mul.f32 %f433, %f58, 0f4B800000;
+ selp.f32 %f434, 0fC3170000, 0fC2FE0000, %p52;
+ selp.f32 %f435, %f433, %f58, %p52;
+ mov.b32 %r82, %f435;
+ and.b32 %r83, %r82, 8388607;
+ or.b32 %r84, %r83, 1065353216;
+ mov.b32 %f436, %r84;
+ shr.u32 %r85, %r82, 23;
+ cvt.rn.f32.u32 %f437, %r85;
+ add.f32 %f438, %f434, %f437;
+ setp.gt.f32 %p53, %f436, 0f3FB504F3;
+ mul.f32 %f439, %f436, 0f3F000000;
+ add.f32 %f440, %f438, 0f3F800000;
+ selp.f32 %f441, %f439, %f436, %p53;
+ selp.f32 %f442, %f440, %f438, %p53;
+ add.f32 %f443, %f441, 0fBF800000;
+ add.f32 %f429, %f441, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f428,%f429;
+ // inline asm
+ add.f32 %f444, %f443, %f443;
+ mul.f32 %f445, %f428, %f444;
+ mul.f32 %f446, %f445, %f445;
+ fma.rn.f32 %f449, %f724, %f446, %f725;
+ fma.rn.f32 %f451, %f449, %f446, %f726;
+ mul.rn.f32 %f452, %f451, %f446;
+ mul.rn.f32 %f453, %f452, %f445;
+ sub.f32 %f454, %f443, %f445;
+ neg.f32 %f455, %f445;
+ add.f32 %f456, %f454, %f454;
+ fma.rn.f32 %f457, %f455, %f443, %f456;
+ mul.rn.f32 %f458, %f428, %f457;
+ add.f32 %f459, %f453, %f445;
+ sub.f32 %f460, %f445, %f459;
+ add.f32 %f461, %f453, %f460;
+ add.f32 %f462, %f458, %f461;
+ add.f32 %f463, %f459, %f462;
+ sub.f32 %f464, %f459, %f463;
+ add.f32 %f465, %f462, %f464;
+ mul.rn.f32 %f467, %f442, %f727;
+ mul.rn.f32 %f469, %f442, %f728;
+ add.f32 %f470, %f467, %f463;
+ sub.f32 %f471, %f467, %f470;
+ add.f32 %f472, %f463, %f471;
+ add.f32 %f473, %f465, %f472;
+ add.f32 %f474, %f469, %f473;
+ add.f32 %f475, %f470, %f474;
+ sub.f32 %f476, %f470, %f475;
+ add.f32 %f477, %f474, %f476;
+ mov.f32 %f478, 0f3EE66666;
+ mul.rn.f32 %f479, %f478, %f475;
+ neg.f32 %f480, %f479;
+ fma.rn.f32 %f481, %f478, %f475, %f480;
+ fma.rn.f32 %f482, %f478, %f477, %f481;
+ mov.f32 %f483, 0f00000000;
+ fma.rn.f32 %f484, %f483, %f475, %f482;
+ add.rn.f32 %f485, %f479, %f484;
+ neg.f32 %f486, %f485;
+ add.rn.f32 %f487, %f479, %f486;
+ add.rn.f32 %f488, %f487, %f484;
+ mov.b32 %r86, %f485;
+ setp.eq.s32 %p54, %r86, 1118925336;
+ add.s32 %r87, %r86, -1;
+ mov.b32 %f489, %r87;
+ add.f32 %f490, %f488, 0f37000000;
+ selp.f32 %f491, %f489, %f485, %p54;
+ selp.f32 %f59, %f490, %f488, %p54;
+ mul.f32 %f492, %f491, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f493, %f492;
+ fma.rn.f32 %f495, %f493, %f729, %f491;
+ fma.rn.f32 %f497, %f493, %f730, %f495;
+ mul.f32 %f498, %f497, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f499, %f498;
+ add.f32 %f500, %f493, 0f00000000;
+ ex2.approx.f32 %f501, %f500;
+ mul.f32 %f502, %f499, %f501;
+ setp.lt.f32 %p55, %f491, 0fC2D20000;
+ selp.f32 %f503, 0f00000000, %f502, %p55;
+ setp.gt.f32 %p56, %f491, 0f42D20000;
+ selp.f32 %f760, 0f7F800000, %f503, %p56;
+ setp.eq.f32 %p57, %f760, 0f7F800000;
+ @%p57 bra BB0_36;
+
+ fma.rn.f32 %f760, %f760, %f59, %f760;
+
+BB0_36:
+ setp.lt.f32 %p58, %f41, 0f00000000;
+ setp.eq.f32 %p59, %f57, 0f3F800000;
+ and.pred %p3, %p58, %p59;
+ mov.b32 %r88, %f760;
+ xor.b32 %r89, %r88, -2147483648;
+ mov.b32 %f504, %r89;
+ selp.f32 %f762, %f504, %f760, %p3;
+ setp.eq.f32 %p60, %f41, 0f00000000;
+ @%p60 bra BB0_39;
+ bra.uni BB0_37;
+
+BB0_39:
+ add.f32 %f507, %f41, %f41;
+ selp.f32 %f762, %f507, 0f00000000, %p59;
+ bra.uni BB0_40;
+
+BB0_37:
+ setp.geu.f32 %p61, %f41, 0f00000000;
+ @%p61 bra BB0_40;
+
+ cvt.rzi.f32.f32 %f506, %f478;
+ setp.neu.f32 %p62, %f506, 0f3EE66666;
+ selp.f32 %f762, 0f7FFFFFFF, %f762, %p62;
+
+BB0_40:
+ add.f32 %f508, %f58, 0f3EE66666;
+ mov.b32 %r90, %f508;
+ setp.lt.s32 %p64, %r90, 2139095040;
+ @%p64 bra BB0_45;
+
+ setp.gtu.f32 %p65, %f58, 0f7F800000;
+ @%p65 bra BB0_44;
+ bra.uni BB0_42;
+
+BB0_44:
+ add.f32 %f762, %f41, 0f3EE66666;
+ bra.uni BB0_45;
+
+BB0_42:
+ setp.neu.f32 %p66, %f58, 0f7F800000;
+ @%p66 bra BB0_45;
+
+ selp.f32 %f762, 0fFF800000, 0f7F800000, %p3;
+
+BB0_45:
+ mov.f32 %f737, 0fB5BFBE8E;
+ mov.f32 %f736, 0fBF317200;
+ mov.f32 %f735, 0f35BFBE8E;
+ mov.f32 %f734, 0f3F317200;
+ mov.f32 %f733, 0f3DAAAABD;
+ mov.f32 %f732, 0f3C4CAF63;
+ mov.f32 %f731, 0f3B18F0FE;
+ setp.eq.f32 %p67, %f41, 0f3F800000;
+ selp.f32 %f70, 0f3F800000, %f762, %p67;
+ abs.f32 %f71, %f42;
+ setp.lt.f32 %p68, %f71, 0f00800000;
+ mul.f32 %f511, %f71, 0f4B800000;
+ selp.f32 %f512, 0fC3170000, 0fC2FE0000, %p68;
+ selp.f32 %f513, %f511, %f71, %p68;
+ mov.b32 %r91, %f513;
+ and.b32 %r92, %r91, 8388607;
+ or.b32 %r93, %r92, 1065353216;
+ mov.b32 %f514, %r93;
+ shr.u32 %r94, %r91, 23;
+ cvt.rn.f32.u32 %f515, %r94;
+ add.f32 %f516, %f512, %f515;
+ setp.gt.f32 %p69, %f514, 0f3FB504F3;
+ mul.f32 %f517, %f514, 0f3F000000;
+ add.f32 %f518, %f516, 0f3F800000;
+ selp.f32 %f519, %f517, %f514, %p69;
+ selp.f32 %f520, %f518, %f516, %p69;
+ add.f32 %f521, %f519, 0fBF800000;
+ add.f32 %f510, %f519, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f509,%f510;
+ // inline asm
+ add.f32 %f522, %f521, %f521;
+ mul.f32 %f523, %f509, %f522;
+ mul.f32 %f524, %f523, %f523;
+ fma.rn.f32 %f527, %f731, %f524, %f732;
+ fma.rn.f32 %f529, %f527, %f524, %f733;
+ mul.rn.f32 %f530, %f529, %f524;
+ mul.rn.f32 %f531, %f530, %f523;
+ sub.f32 %f532, %f521, %f523;
+ neg.f32 %f533, %f523;
+ add.f32 %f534, %f532, %f532;
+ fma.rn.f32 %f535, %f533, %f521, %f534;
+ mul.rn.f32 %f536, %f509, %f535;
+ add.f32 %f537, %f531, %f523;
+ sub.f32 %f538, %f523, %f537;
+ add.f32 %f539, %f531, %f538;
+ add.f32 %f540, %f536, %f539;
+ add.f32 %f541, %f537, %f540;
+ sub.f32 %f542, %f537, %f541;
+ add.f32 %f543, %f540, %f542;
+ mul.rn.f32 %f545, %f520, %f734;
+ mul.rn.f32 %f547, %f520, %f735;
+ add.f32 %f548, %f545, %f541;
+ sub.f32 %f549, %f545, %f548;
+ add.f32 %f550, %f541, %f549;
+ add.f32 %f551, %f543, %f550;
+ add.f32 %f552, %f547, %f551;
+ add.f32 %f553, %f548, %f552;
+ sub.f32 %f554, %f548, %f553;
+ add.f32 %f555, %f552, %f554;
+ mul.rn.f32 %f557, %f478, %f553;
+ neg.f32 %f558, %f557;
+ fma.rn.f32 %f559, %f478, %f553, %f558;
+ fma.rn.f32 %f560, %f478, %f555, %f559;
+ fma.rn.f32 %f562, %f483, %f553, %f560;
+ add.rn.f32 %f563, %f557, %f562;
+ neg.f32 %f564, %f563;
+ add.rn.f32 %f565, %f557, %f564;
+ add.rn.f32 %f566, %f565, %f562;
+ mov.b32 %r95, %f563;
+ setp.eq.s32 %p70, %r95, 1118925336;
+ add.s32 %r96, %r95, -1;
+ mov.b32 %f567, %r96;
+ add.f32 %f568, %f566, 0f37000000;
+ selp.f32 %f569, %f567, %f563, %p70;
+ selp.f32 %f72, %f568, %f566, %p70;
+ mul.f32 %f570, %f569, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f571, %f570;
+ fma.rn.f32 %f573, %f571, %f736, %f569;
+ fma.rn.f32 %f575, %f571, %f737, %f573;
+ mul.f32 %f576, %f575, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f577, %f576;
+ add.f32 %f578, %f571, 0f00000000;
+ ex2.approx.f32 %f579, %f578;
+ mul.f32 %f580, %f577, %f579;
+ setp.lt.f32 %p71, %f569, 0fC2D20000;
+ selp.f32 %f581, 0f00000000, %f580, %p71;
+ setp.gt.f32 %p72, %f569, 0f42D20000;
+ selp.f32 %f763, 0f7F800000, %f581, %p72;
+ setp.eq.f32 %p73, %f763, 0f7F800000;
+ @%p73 bra BB0_47;
+
+ fma.rn.f32 %f763, %f763, %f72, %f763;
+
+BB0_47:
+ setp.lt.f32 %p74, %f42, 0f00000000;
+ and.pred %p4, %p74, %p59;
+ mov.b32 %r97, %f763;
+ xor.b32 %r98, %r97, -2147483648;
+ mov.b32 %f582, %r98;
+ selp.f32 %f765, %f582, %f763, %p4;
+ setp.eq.f32 %p76, %f42, 0f00000000;
+ @%p76 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f585, %f42, %f42;
+ selp.f32 %f765, %f585, 0f00000000, %p59;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p77, %f42, 0f00000000;
+ @%p77 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f584, %f478;
+ setp.neu.f32 %p78, %f584, 0f3EE66666;
+ selp.f32 %f765, 0f7FFFFFFF, %f765, %p78;
+
+BB0_51:
+ add.f32 %f586, %f71, 0f3EE66666;
+ mov.b32 %r99, %f586;
+ setp.lt.s32 %p80, %r99, 2139095040;
+ @%p80 bra BB0_56;
+
+ setp.gtu.f32 %p81, %f71, 0f7F800000;
+ @%p81 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f765, %f42, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p82, %f71, 0f7F800000;
+ @%p82 bra BB0_56;
+
+ selp.f32 %f765, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f744, 0fB5BFBE8E;
+ mov.f32 %f743, 0fBF317200;
+ mov.f32 %f742, 0f35BFBE8E;
+ mov.f32 %f741, 0f3F317200;
+ mov.f32 %f740, 0f3DAAAABD;
+ mov.f32 %f739, 0f3C4CAF63;
+ mov.f32 %f738, 0f3B18F0FE;
+ setp.eq.f32 %p83, %f42, 0f3F800000;
+ selp.f32 %f83, 0f3F800000, %f765, %p83;
+ abs.f32 %f84, %f43;
+ setp.lt.f32 %p84, %f84, 0f00800000;
+ mul.f32 %f589, %f84, 0f4B800000;
+ selp.f32 %f590, 0fC3170000, 0fC2FE0000, %p84;
+ selp.f32 %f591, %f589, %f84, %p84;
+ mov.b32 %r100, %f591;
+ and.b32 %r101, %r100, 8388607;
+ or.b32 %r102, %r101, 1065353216;
+ mov.b32 %f592, %r102;
+ shr.u32 %r103, %r100, 23;
+ cvt.rn.f32.u32 %f593, %r103;
+ add.f32 %f594, %f590, %f593;
+ setp.gt.f32 %p85, %f592, 0f3FB504F3;
+ mul.f32 %f595, %f592, 0f3F000000;
+ add.f32 %f596, %f594, 0f3F800000;
+ selp.f32 %f597, %f595, %f592, %p85;
+ selp.f32 %f598, %f596, %f594, %p85;
+ add.f32 %f599, %f597, 0fBF800000;
+ add.f32 %f588, %f597, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f587,%f588;
+ // inline asm
+ add.f32 %f600, %f599, %f599;
+ mul.f32 %f601, %f587, %f600;
+ mul.f32 %f602, %f601, %f601;
+ fma.rn.f32 %f605, %f738, %f602, %f739;
+ fma.rn.f32 %f607, %f605, %f602, %f740;
+ mul.rn.f32 %f608, %f607, %f602;
+ mul.rn.f32 %f609, %f608, %f601;
+ sub.f32 %f610, %f599, %f601;
+ neg.f32 %f611, %f601;
+ add.f32 %f612, %f610, %f610;
+ fma.rn.f32 %f613, %f611, %f599, %f612;
+ mul.rn.f32 %f614, %f587, %f613;
+ add.f32 %f615, %f609, %f601;
+ sub.f32 %f616, %f601, %f615;
+ add.f32 %f617, %f609, %f616;
+ add.f32 %f618, %f614, %f617;
+ add.f32 %f619, %f615, %f618;
+ sub.f32 %f620, %f615, %f619;
+ add.f32 %f621, %f618, %f620;
+ mul.rn.f32 %f623, %f598, %f741;
+ mul.rn.f32 %f625, %f598, %f742;
+ add.f32 %f626, %f623, %f619;
+ sub.f32 %f627, %f623, %f626;
+ add.f32 %f628, %f619, %f627;
+ add.f32 %f629, %f621, %f628;
+ add.f32 %f630, %f625, %f629;
+ add.f32 %f631, %f626, %f630;
+ sub.f32 %f632, %f626, %f631;
+ add.f32 %f633, %f630, %f632;
+ mul.rn.f32 %f635, %f478, %f631;
+ neg.f32 %f636, %f635;
+ fma.rn.f32 %f637, %f478, %f631, %f636;
+ fma.rn.f32 %f638, %f478, %f633, %f637;
+ fma.rn.f32 %f640, %f483, %f631, %f638;
+ add.rn.f32 %f641, %f635, %f640;
+ neg.f32 %f642, %f641;
+ add.rn.f32 %f643, %f635, %f642;
+ add.rn.f32 %f644, %f643, %f640;
+ mov.b32 %r104, %f641;
+ setp.eq.s32 %p86, %r104, 1118925336;
+ add.s32 %r105, %r104, -1;
+ mov.b32 %f645, %r105;
+ add.f32 %f646, %f644, 0f37000000;
+ selp.f32 %f647, %f645, %f641, %p86;
+ selp.f32 %f85, %f646, %f644, %p86;
+ mul.f32 %f648, %f647, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f649, %f648;
+ fma.rn.f32 %f651, %f649, %f743, %f647;
+ fma.rn.f32 %f653, %f649, %f744, %f651;
+ mul.f32 %f654, %f653, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f655, %f654;
+ add.f32 %f656, %f649, 0f00000000;
+ ex2.approx.f32 %f657, %f656;
+ mul.f32 %f658, %f655, %f657;
+ setp.lt.f32 %p87, %f647, 0fC2D20000;
+ selp.f32 %f659, 0f00000000, %f658, %p87;
+ setp.gt.f32 %p88, %f647, 0f42D20000;
+ selp.f32 %f766, 0f7F800000, %f659, %p88;
+ setp.eq.f32 %p89, %f766, 0f7F800000;
+ @%p89 bra BB0_58;
+
+ fma.rn.f32 %f766, %f766, %f85, %f766;
+
+BB0_58:
+ setp.lt.f32 %p90, %f43, 0f00000000;
+ and.pred %p5, %p90, %p59;
+ mov.b32 %r106, %f766;
+ xor.b32 %r107, %r106, -2147483648;
+ mov.b32 %f660, %r107;
+ selp.f32 %f768, %f660, %f766, %p5;
+ setp.eq.f32 %p92, %f43, 0f00000000;
+ @%p92 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f663, %f43, %f43;
+ selp.f32 %f768, %f663, 0f00000000, %p59;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p93, %f43, 0f00000000;
+ @%p93 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f662, %f478;
+ setp.neu.f32 %p94, %f662, 0f3EE66666;
+ selp.f32 %f768, 0f7FFFFFFF, %f768, %p94;
+
+BB0_62:
+ add.f32 %f664, %f84, 0f3EE66666;
+ mov.b32 %r108, %f664;
+ setp.lt.s32 %p96, %r108, 2139095040;
+ @%p96 bra BB0_67;
+
+ setp.gtu.f32 %p97, %f84, 0f7F800000;
+ @%p97 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f768, %f43, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p98, %f84, 0f7F800000;
+ @%p98 bra BB0_67;
+
+ selp.f32 %f768, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ setp.eq.f32 %p99, %f43, 0f3F800000;
+ selp.f32 %f665, 0f3F800000, %f768, %p99;
+ cvt.u64.u32 %rd36, %r3;
+ cvt.u64.u32 %rd35, %r2;
+ mov.u64 %rd39, image;
+ cvta.global.u64 %rd34, %rd39;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r24, %r25, %rd35, %rd36, %rd15, %rd15);
+ // inline asm
+ cvt.sat.f32.f32 %f666, %f665;
+ mul.f32 %f667, %f666, 0f437FFD71;
+ cvt.rzi.u32.f32 %r111, %f667;
+ cvt.sat.f32.f32 %f668, %f83;
+ mul.f32 %f669, %f668, 0f437FFD71;
+ cvt.rzi.u32.f32 %r112, %f669;
+ cvt.sat.f32.f32 %f670, %f70;
+ mul.f32 %f671, %f670, 0f437FFD71;
+ cvt.rzi.u32.f32 %r113, %f671;
+ cvt.u16.u32 %rs13, %r111;
+ cvt.u16.u32 %rs14, %r113;
+ cvt.u16.u32 %rs15, %r112;
+ mov.u16 %rs16, 255;
+ st.v4.u8 [%rd33], {%rs13, %rs15, %rs14, %rs16};
+ ld.global.u32 %r164, [imageEnabled];
+
+BB0_68:
+ and.b32 %r114, %r164, 4;
+ setp.eq.s32 %p100, %r114, 0;
+ @%p100 bra BB0_72;
+
+ ld.global.u32 %r115, [additive];
+ setp.eq.s32 %p101, %r115, 0;
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ mov.f32 %f672, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs17, %f672;}
+
+ // inline asm
+ @%p101 bra BB0_71;
+
+ mov.u64 %rd52, image_HDR;
+ cvta.global.u64 %rd41, %rd52;
+ mov.u32 %r119, 8;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r24, %r119, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs24, %rs25, %rs26, %rs27}, [%rd40];
+ // inline asm
+ { cvt.f32.f16 %f673, %rs24;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f674, %rs25;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f675, %rs26;}
+
+ // inline asm
+ // inline asm
+ call (%rd46), _rt_buffer_get_64, (%rd41, %r24, %r119, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f676, %f41, %f673;
+ add.f32 %f677, %f42, %f674;
+ add.f32 %f678, %f43, %f675;
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f678;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f677;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs21, %f676;}
+
+ // inline asm
+ st.v4.u16 [%rd46], {%rs21, %rs22, %rs23, %rs17};
+ bra.uni BB0_72;
+
+BB0_71:
+ mov.u64 %rd59, image_HDR;
+ cvta.global.u64 %rd54, %rd59;
+ mov.u32 %r121, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r24, %r121, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f43;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f42;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f41;}
+
+ // inline asm
+ st.v4.u16 [%rd53], {%rs28, %rs29, %rs30, %rs17};
+
+BB0_72:
+ ld.global.u8 %rs31, [imageEnabled];
+ and.b16 %rs32, %rs31, 64;
+ setp.eq.s16 %p102, %rs32, 0;
+ @%p102 bra BB0_94;
+
+ cvt.u64.u32 %rd62, %r2;
+ cvt.u64.u32 %rd63, %r3;
+ mov.u64 %rd66, image_Dir;
+ cvta.global.u64 %rd61, %rd66;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r24, %r25, %rd62, %rd63, %rd15, %rd15);
+ // inline asm
+ fma.rn.f32 %f682, %f10, 0f3F000000, 0f3F000000;
+ mul.f32 %f683, %f682, 0f437F0000;
+ cvt.rzi.u32.f32 %r124, %f683;
+ fma.rn.f32 %f684, %f11, 0f3F000000, 0f3F000000;
+ mul.f32 %f685, %f684, 0f437F0000;
+ cvt.rzi.u32.f32 %r125, %f685;
+ fma.rn.f32 %f686, %f12, 0f3F000000, 0f3F000000;
+ mul.f32 %f687, %f686, 0f437F0000;
+ cvt.rzi.u32.f32 %r126, %f687;
+ cvt.u16.u32 %rs33, %r126;
+ cvt.u16.u32 %rs34, %r125;
+ cvt.u16.u32 %rs35, %r124;
+ mov.u16 %rs36, 255;
+ st.v4.u8 [%rd60], {%rs35, %rs34, %rs33, %rs36};
+
+BB0_94:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLight.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLight.ptx.meta
new file mode 100644
index 00000000..6ef374fb
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLight.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e698fa21410b7d843b1a6d05f61ae35c
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightProbeSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightProbeSH.ptx
new file mode 100644
index 00000000..4e98185e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightProbeSH.ptx
@@ -0,0 +1,2284 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .u32 lightCubemap;
+.global .align 4 .b8 lightMatrix[36];
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12lightCubemapE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightMatrixE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12lightCubemapE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename11lightMatrixE[10] = {77, 97, 116, 114, 105, 120, 51, 120, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12lightCubemapE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightMatrixE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12lightCubemapE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightMatrixE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12lightCubemapE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightMatrixE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<122>;
+ .reg .b16 %rs<221>;
+ .reg .f32 %f<879>;
+ .reg .b32 %r<245>;
+ .reg .b64 %rd<369>;
+
+
+ mov.u64 %rd368, __local_depot0;
+ cvta.local.u64 %SP, %rd368;
+ ld.global.v2.u32 {%r26, %r27}, [pixelID];
+ cvt.u64.u32 %rd12, %r26;
+ cvt.u64.u32 %rd13, %r27;
+ mov.u64 %rd16, uvnormal;
+ cvta.global.u64 %rd11, %rd16;
+ mov.u32 %r24, 2;
+ mov.u32 %r25, 4;
+ mov.u64 %rd15, 0;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r24, %r25, %rd12, %rd13, %rd15, %rd15);
+ // inline asm
+ ld.u32 %r1, [%rd10];
+ shr.u32 %r30, %r1, 16;
+ cvt.u16.u32 %rs1, %r30;
+ and.b16 %rs12, %rs1, 255;
+ cvt.u16.u32 %rs13, %r1;
+ or.b16 %rs14, %rs13, %rs12;
+ setp.eq.s16 %p6, %rs14, 0;
+ mov.f32 %f858, 0f00000000;
+ mov.f32 %f859, %f858;
+ mov.f32 %f860, %f858;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs15, [%rd10+1];
+ and.b16 %rs17, %rs13, 255;
+ cvt.rn.f32.u16 %f106, %rs17;
+ div.rn.f32 %f107, %f106, 0f437F0000;
+ fma.rn.f32 %f108, %f107, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f109, %rs15;
+ div.rn.f32 %f110, %f109, 0f437F0000;
+ fma.rn.f32 %f111, %f110, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f112, %rs12;
+ div.rn.f32 %f113, %f112, 0f437F0000;
+ fma.rn.f32 %f114, %f113, 0f40000000, 0fBF800000;
+ mul.f32 %f115, %f111, %f111;
+ fma.rn.f32 %f116, %f108, %f108, %f115;
+ fma.rn.f32 %f117, %f114, %f114, %f116;
+ sqrt.rn.f32 %f118, %f117;
+ rcp.rn.f32 %f119, %f118;
+ mul.f32 %f858, %f108, %f119;
+ mul.f32 %f859, %f111, %f119;
+ mul.f32 %f860, %f114, %f119;
+
+BB0_2:
+ ld.global.v2.u32 {%r31, %r32}, [pixelID];
+ ld.global.v2.u32 {%r34, %r35}, [tileInfo];
+ add.s32 %r2, %r31, %r34;
+ add.s32 %r3, %r32, %r35;
+ setp.eq.f32 %p7, %f859, 0f00000000;
+ setp.eq.f32 %p8, %f858, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f860, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_104;
+ bra.uni BB0_3;
+
+BB0_104:
+ ld.global.u32 %r244, [imageEnabled];
+ and.b32 %r193, %r244, 1;
+ setp.eq.b32 %p114, %r193, 1;
+ @!%p114 bra BB0_106;
+ bra.uni BB0_105;
+
+BB0_105:
+ cvt.u64.u32 %rd256, %r2;
+ cvt.u64.u32 %rd257, %r3;
+ mov.u64 %rd260, image;
+ cvta.global.u64 %rd255, %rd260;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r24, %r25, %rd256, %rd257, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs153, 0;
+ st.v4.u8 [%rd254], {%rs153, %rs153, %rs153, %rs153};
+ ld.global.u32 %r244, [imageEnabled];
+
+BB0_106:
+ and.b32 %r196, %r244, 8;
+ setp.eq.s32 %p115, %r196, 0;
+ @%p115 bra BB0_108;
+
+ cvt.u64.u32 %rd264, %r3;
+ cvt.u64.u32 %rd263, %r2;
+ mov.u64 %rd267, image_Mask;
+ cvta.global.u64 %rd262, %rd267;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r24, %r24, %rd263, %rd264, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f775, 0f00000000;
+ cvt.rzi.u32.f32 %r199, %f775;
+ cvt.u16.u32 %rs154, %r199;
+ mov.u16 %rs155, 0;
+ st.v2.u8 [%rd261], {%rs154, %rs155};
+ ld.global.u32 %r244, [imageEnabled];
+
+BB0_108:
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ and.b32 %r200, %r244, 4;
+ setp.eq.s32 %p116, %r200, 0;
+ @%p116 bra BB0_112;
+
+ ld.global.u32 %r201, [additive];
+ setp.eq.s32 %p117, %r201, 0;
+ @%p117 bra BB0_111;
+
+ mov.u64 %rd280, image_HDR;
+ cvta.global.u64 %rd269, %rd280;
+ mov.u32 %r205, 8;
+ // inline asm
+ call (%rd268), _rt_buffer_get_64, (%rd269, %r24, %r205, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs162, %rs163, %rs164, %rs165}, [%rd268];
+ // inline asm
+ { cvt.f32.f16 %f776, %rs162;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f777, %rs163;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f778, %rs164;}
+
+ // inline asm
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd269, %r24, %r205, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f779, %f776, 0f00000000;
+ add.f32 %f780, %f777, 0f00000000;
+ add.f32 %f781, %f778, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs161, %f781;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs160, %f780;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs159, %f779;}
+
+ // inline asm
+ mov.u16 %rs166, 0;
+ st.v4.u16 [%rd274], {%rs159, %rs160, %rs161, %rs166};
+ bra.uni BB0_112;
+
+BB0_3:
+ ld.global.v2.u32 {%r41, %r42}, [pixelID];
+ cvt.u64.u32 %rd19, %r41;
+ cvt.u64.u32 %rd20, %r42;
+ mov.u64 %rd23, uvpos;
+ cvta.global.u64 %rd18, %rd23;
+ mov.u32 %r40, 12;
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd18, %r24, %r40, %rd19, %rd20, %rd15, %rd15);
+ // inline asm
+ ld.global.f32 %f122, [lightPos];
+ ld.f32 %f9, [%rd17+8];
+ ld.f32 %f8, [%rd17+4];
+ ld.f32 %f7, [%rd17];
+ sub.f32 %f123, %f122, %f7;
+ ld.global.f32 %f124, [lightPos+4];
+ sub.f32 %f125, %f124, %f8;
+ ld.global.f32 %f126, [lightPos+8];
+ sub.f32 %f127, %f126, %f9;
+ mul.f32 %f128, %f125, %f125;
+ fma.rn.f32 %f129, %f123, %f123, %f128;
+ fma.rn.f32 %f130, %f127, %f127, %f129;
+ sqrt.rn.f32 %f131, %f130;
+ rcp.rn.f32 %f132, %f131;
+ mul.f32 %f10, %f123, %f132;
+ mul.f32 %f11, %f125, %f132;
+ mul.f32 %f12, %f127, %f132;
+ ld.global.f32 %f133, [lightFalloffFakeDistanceMult];
+ mul.f32 %f13, %f131, %f133;
+ ld.global.f32 %f134, [lightInvCutoff];
+ mul.f32 %f14, %f131, %f134;
+ mov.f32 %f138, 0f40800000;
+ abs.f32 %f16, %f14;
+ setp.lt.f32 %p12, %f16, 0f00800000;
+ mul.f32 %f140, %f16, 0f4B800000;
+ selp.f32 %f141, 0fC3170000, 0fC2FE0000, %p12;
+ selp.f32 %f142, %f140, %f16, %p12;
+ mov.b32 %r45, %f142;
+ and.b32 %r46, %r45, 8388607;
+ or.b32 %r47, %r46, 1065353216;
+ mov.b32 %f143, %r47;
+ shr.u32 %r48, %r45, 23;
+ cvt.rn.f32.u32 %f144, %r48;
+ add.f32 %f145, %f141, %f144;
+ setp.gt.f32 %p13, %f143, 0f3FB504F3;
+ mul.f32 %f146, %f143, 0f3F000000;
+ add.f32 %f147, %f145, 0f3F800000;
+ selp.f32 %f148, %f146, %f143, %p13;
+ selp.f32 %f149, %f147, %f145, %p13;
+ add.f32 %f150, %f148, 0fBF800000;
+ add.f32 %f121, %f148, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f120,%f121;
+ // inline asm
+ add.f32 %f151, %f150, %f150;
+ mul.f32 %f152, %f120, %f151;
+ mul.f32 %f153, %f152, %f152;
+ mov.f32 %f154, 0f3C4CAF63;
+ mov.f32 %f155, 0f3B18F0FE;
+ fma.rn.f32 %f156, %f155, %f153, %f154;
+ mov.f32 %f157, 0f3DAAAABD;
+ fma.rn.f32 %f158, %f156, %f153, %f157;
+ mul.rn.f32 %f159, %f158, %f153;
+ mul.rn.f32 %f160, %f159, %f152;
+ sub.f32 %f161, %f150, %f152;
+ neg.f32 %f162, %f152;
+ add.f32 %f163, %f161, %f161;
+ fma.rn.f32 %f164, %f162, %f150, %f163;
+ mul.rn.f32 %f165, %f120, %f164;
+ add.f32 %f166, %f160, %f152;
+ sub.f32 %f167, %f152, %f166;
+ add.f32 %f168, %f160, %f167;
+ add.f32 %f169, %f165, %f168;
+ add.f32 %f170, %f166, %f169;
+ sub.f32 %f171, %f166, %f170;
+ add.f32 %f172, %f169, %f171;
+ mov.f32 %f173, 0f3F317200;
+ mul.rn.f32 %f174, %f149, %f173;
+ mov.f32 %f175, 0f35BFBE8E;
+ mul.rn.f32 %f176, %f149, %f175;
+ add.f32 %f177, %f174, %f170;
+ sub.f32 %f178, %f174, %f177;
+ add.f32 %f179, %f170, %f178;
+ add.f32 %f180, %f172, %f179;
+ add.f32 %f181, %f176, %f180;
+ add.f32 %f182, %f177, %f181;
+ sub.f32 %f183, %f177, %f182;
+ add.f32 %f184, %f181, %f183;
+ mul.rn.f32 %f185, %f138, %f182;
+ neg.f32 %f186, %f185;
+ fma.rn.f32 %f187, %f138, %f182, %f186;
+ fma.rn.f32 %f188, %f138, %f184, %f187;
+ mov.f32 %f189, 0f00000000;
+ fma.rn.f32 %f190, %f189, %f182, %f188;
+ add.rn.f32 %f191, %f185, %f190;
+ neg.f32 %f192, %f191;
+ add.rn.f32 %f193, %f185, %f192;
+ add.rn.f32 %f194, %f193, %f190;
+ mov.b32 %r49, %f191;
+ setp.eq.s32 %p14, %r49, 1118925336;
+ add.s32 %r50, %r49, -1;
+ mov.b32 %f195, %r50;
+ add.f32 %f196, %f194, 0f37000000;
+ selp.f32 %f197, %f195, %f191, %p14;
+ selp.f32 %f17, %f196, %f194, %p14;
+ mul.f32 %f198, %f197, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f199, %f198;
+ mov.f32 %f200, 0fBF317200;
+ fma.rn.f32 %f201, %f199, %f200, %f197;
+ mov.f32 %f202, 0fB5BFBE8E;
+ fma.rn.f32 %f203, %f199, %f202, %f201;
+ mul.f32 %f204, %f203, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f205, %f204;
+ add.f32 %f206, %f199, 0f00000000;
+ ex2.approx.f32 %f207, %f206;
+ mul.f32 %f208, %f205, %f207;
+ setp.lt.f32 %p15, %f197, 0fC2D20000;
+ selp.f32 %f209, 0f00000000, %f208, %p15;
+ setp.gt.f32 %p16, %f197, 0f42D20000;
+ selp.f32 %f861, 0f7F800000, %f209, %p16;
+ setp.eq.f32 %p17, %f861, 0f7F800000;
+ @%p17 bra BB0_5;
+
+ fma.rn.f32 %f861, %f861, %f17, %f861;
+
+BB0_5:
+ mov.f32 %f816, 0f40000000;
+ cvt.rzi.f32.f32 %f815, %f816;
+ add.f32 %f814, %f815, %f815;
+ mov.f32 %f813, 0f40800000;
+ sub.f32 %f812, %f813, %f814;
+ abs.f32 %f811, %f812;
+ setp.lt.f32 %p18, %f14, 0f00000000;
+ setp.eq.f32 %p19, %f811, 0f3F800000;
+ and.pred %p1, %p18, %p19;
+ mov.b32 %r51, %f861;
+ xor.b32 %r52, %r51, -2147483648;
+ mov.b32 %f210, %r52;
+ selp.f32 %f863, %f210, %f861, %p1;
+ setp.eq.f32 %p20, %f14, 0f00000000;
+ @%p20 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f213, %f14, %f14;
+ selp.f32 %f863, %f213, 0f00000000, %p19;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p21, %f14, 0f00000000;
+ @%p21 bra BB0_9;
+
+ mov.f32 %f849, 0f40800000;
+ cvt.rzi.f32.f32 %f212, %f849;
+ setp.neu.f32 %p22, %f212, 0f40800000;
+ selp.f32 %f863, 0f7FFFFFFF, %f863, %p22;
+
+BB0_9:
+ abs.f32 %f817, %f14;
+ add.f32 %f214, %f817, 0f40800000;
+ mov.b32 %r53, %f214;
+ setp.lt.s32 %p24, %r53, 2139095040;
+ @%p24 bra BB0_14;
+
+ abs.f32 %f847, %f14;
+ setp.gtu.f32 %p25, %f847, 0f7F800000;
+ @%p25 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f863, %f14, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f848, %f14;
+ setp.neu.f32 %p26, %f848, 0f7F800000;
+ @%p26 bra BB0_14;
+
+ selp.f32 %f863, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ mov.f32 %f866, 0f3F800000;
+ sub.f32 %f223, %f866, %f863;
+ setp.eq.f32 %p27, %f14, 0f3F800000;
+ selp.f32 %f224, 0f00000000, %f223, %p27;
+ cvt.sat.f32.f32 %f225, %f224;
+ ld.global.f32 %f226, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f227, %f13, %f13, %f226;
+ div.rn.f32 %f28, %f225, %f227;
+ mul.f32 %f228, %f859, %f11;
+ fma.rn.f32 %f229, %f858, %f10, %f228;
+ fma.rn.f32 %f230, %f860, %f12, %f229;
+ ld.global.u32 %r57, [imageEnabled];
+ and.b32 %r58, %r57, 32;
+ ld.global.u32 %r59, [ignoreNormal];
+ or.b32 %r60, %r58, %r59;
+ setp.eq.s32 %p28, %r60, 0;
+ selp.f32 %f29, %f230, 0f3F800000, %p28;
+ ld.global.f32 %f231, [lightMatrix];
+ fma.rn.f32 %f232, %f231, %f10, 0f00000000;
+ ld.global.f32 %f233, [lightMatrix+4];
+ fma.rn.f32 %f234, %f233, %f11, %f232;
+ ld.global.f32 %f235, [lightMatrix+8];
+ fma.rn.f32 %f221, %f235, %f12, %f234;
+ ld.global.f32 %f236, [lightMatrix+12];
+ fma.rn.f32 %f237, %f236, %f10, 0f00000000;
+ ld.global.f32 %f238, [lightMatrix+16];
+ fma.rn.f32 %f239, %f238, %f11, %f237;
+ ld.global.f32 %f240, [lightMatrix+20];
+ fma.rn.f32 %f220, %f240, %f12, %f239;
+ ld.global.f32 %f241, [lightMatrix+24];
+ fma.rn.f32 %f242, %f241, %f10, 0f00000000;
+ ld.global.f32 %f243, [lightMatrix+28];
+ fma.rn.f32 %f244, %f243, %f11, %f242;
+ ld.global.f32 %f245, [lightMatrix+32];
+ fma.rn.f32 %f219, %f245, %f12, %f244;
+ ld.global.u32 %r54, [lightCubemap];
+ mov.u32 %r55, 6;
+ mov.u32 %r237, 0;
+ // inline asm
+ call (%f215, %f216, %f217, %f218), _rt_texture_get_base_id, (%r54, %r55, %f219, %f220, %f221, %r237);
+ // inline asm
+ max.f32 %f246, %f215, %f216;
+ max.f32 %f247, %f246, %f217;
+ mul.f32 %f248, %f28, %f247;
+ ld.global.f32 %f249, [lightColor+4];
+ ld.global.f32 %f250, [lightColor];
+ max.f32 %f251, %f250, %f249;
+ ld.global.f32 %f252, [lightColor+8];
+ max.f32 %f253, %f251, %f252;
+ mul.f32 %f254, %f248, %f253;
+ setp.lt.f32 %p29, %f254, 0f3727C5AC;
+ @%p29 bra BB0_84;
+ bra.uni BB0_15;
+
+BB0_84:
+ ld.global.u32 %r242, [imageEnabled];
+ and.b32 %r150, %r242, 1;
+ setp.eq.b32 %p106, %r150, 1;
+ @!%p106 bra BB0_86;
+ bra.uni BB0_85;
+
+BB0_85:
+ cvt.u64.u32 %rd142, %r2;
+ cvt.u64.u32 %rd143, %r3;
+ mov.u64 %rd146, image;
+ cvta.global.u64 %rd141, %rd146;
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd141, %r24, %r25, %rd142, %rd143, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs89, 1;
+ mov.u16 %rs90, 0;
+ st.v4.u8 [%rd140], {%rs90, %rs90, %rs90, %rs89};
+ ld.global.u32 %r242, [imageEnabled];
+
+BB0_86:
+ and.b32 %r153, %r242, 8;
+ setp.eq.s32 %p107, %r153, 0;
+ @%p107 bra BB0_88;
+
+ cvt.u64.u32 %rd150, %r3;
+ cvt.u64.u32 %rd149, %r2;
+ mov.u64 %rd153, image_Mask;
+ cvta.global.u64 %rd148, %rd153;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r24, %r24, %rd149, %rd150, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f732, 0f00000000;
+ cvt.rzi.u32.f32 %r156, %f732;
+ cvt.u16.u32 %rs91, %r156;
+ mov.u16 %rs92, 255;
+ st.v2.u8 [%rd147], {%rs91, %rs92};
+ ld.global.u32 %r242, [imageEnabled];
+
+BB0_88:
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ and.b32 %r157, %r242, 4;
+ setp.eq.s32 %p108, %r157, 0;
+ @%p108 bra BB0_92;
+
+ ld.global.u32 %r158, [additive];
+ setp.eq.s32 %p109, %r158, 0;
+ mov.f32 %f733, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f733;}
+
+ // inline asm
+ @%p109 bra BB0_91;
+
+ mov.u64 %rd166, image_HDR;
+ cvta.global.u64 %rd155, %rd166;
+ mov.u32 %r162, 8;
+ // inline asm
+ call (%rd154), _rt_buffer_get_64, (%rd155, %r24, %r162, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs100, %rs101, %rs102, %rs103}, [%rd154];
+ // inline asm
+ { cvt.f32.f16 %f734, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f735, %rs101;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f736, %rs102;}
+
+ // inline asm
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd155, %r24, %r162, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f737, %f734, 0f00000000;
+ add.f32 %f738, %f735, 0f00000000;
+ add.f32 %f739, %f736, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f739;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f738;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f737;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs97, %rs98, %rs99, %rs93};
+ bra.uni BB0_92;
+
+BB0_15:
+ mov.f32 %f865, 0f00000000;
+ mul.f32 %f256, %f7, 0f3456BF95;
+ abs.f32 %f257, %f858;
+ div.rn.f32 %f258, %f256, %f257;
+ abs.f32 %f259, %f859;
+ mul.f32 %f260, %f8, 0f3456BF95;
+ div.rn.f32 %f261, %f260, %f259;
+ abs.f32 %f262, %f860;
+ mul.f32 %f263, %f9, 0f3456BF95;
+ div.rn.f32 %f264, %f263, %f262;
+ abs.f32 %f265, %f258;
+ abs.f32 %f266, %f261;
+ abs.f32 %f267, %f264;
+ mov.f32 %f268, 0f38D1B717;
+ max.f32 %f269, %f265, %f268;
+ max.f32 %f270, %f266, %f268;
+ max.f32 %f271, %f267, %f268;
+ fma.rn.f32 %f33, %f858, %f269, %f7;
+ fma.rn.f32 %f34, %f859, %f270, %f8;
+ fma.rn.f32 %f35, %f860, %f271, %f9;
+ ld.global.u32 %r238, [samples];
+ setp.lt.s32 %p30, %r238, 1;
+ @%p30 bra BB0_18;
+
+ mul.f32 %f273, %f33, 0f3456BF95;
+ abs.f32 %f274, %f273;
+ mul.f32 %f275, %f34, 0f3456BF95;
+ abs.f32 %f276, %f275;
+ mul.f32 %f277, %f35, 0f3456BF95;
+ abs.f32 %f278, %f277;
+ max.f32 %f279, %f274, %f276;
+ max.f32 %f280, %f279, %f278;
+ max.f32 %f36, %f280, %f268;
+ add.u64 %rd24, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd24;
+ mov.f32 %f865, 0f00000000;
+
+BB0_17:
+ cvt.rn.f32.s32 %f290, %r237;
+ mul.f32 %f291, %f290, 0f3DD32618;
+ cvt.rmi.f32.f32 %f292, %f291;
+ sub.f32 %f293, %f291, %f292;
+ mul.f32 %f294, %f290, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f295, %f294;
+ sub.f32 %f296, %f294, %f295;
+ mul.f32 %f297, %f290, 0f3DC74539;
+ cvt.rmi.f32.f32 %f298, %f297;
+ sub.f32 %f299, %f297, %f298;
+ add.f32 %f300, %f296, 0f4199851F;
+ add.f32 %f301, %f299, 0f4199851F;
+ add.f32 %f302, %f293, 0f4199851F;
+ mul.f32 %f303, %f296, %f301;
+ fma.rn.f32 %f304, %f293, %f300, %f303;
+ fma.rn.f32 %f305, %f302, %f299, %f304;
+ add.f32 %f306, %f293, %f305;
+ add.f32 %f307, %f296, %f305;
+ add.f32 %f308, %f299, %f305;
+ add.f32 %f309, %f306, %f307;
+ mul.f32 %f310, %f308, %f309;
+ cvt.rmi.f32.f32 %f311, %f310;
+ sub.f32 %f312, %f310, %f311;
+ add.f32 %f313, %f306, %f308;
+ mul.f32 %f314, %f307, %f313;
+ cvt.rmi.f32.f32 %f315, %f314;
+ sub.f32 %f316, %f314, %f315;
+ add.f32 %f317, %f307, %f308;
+ mul.f32 %f318, %f306, %f317;
+ cvt.rmi.f32.f32 %f319, %f318;
+ sub.f32 %f320, %f318, %f319;
+ fma.rn.f32 %f321, %f312, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f322, %f316, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f323, %f320, 0f40000000, 0fBF800000;
+ ld.global.f32 %f324, [lightRadius];
+ ld.global.f32 %f325, [lightPos];
+ fma.rn.f32 %f326, %f324, %f321, %f325;
+ ld.global.f32 %f327, [lightPos+4];
+ fma.rn.f32 %f328, %f324, %f322, %f327;
+ ld.global.f32 %f329, [lightPos+8];
+ fma.rn.f32 %f330, %f324, %f323, %f329;
+ sub.f32 %f331, %f326, %f7;
+ sub.f32 %f332, %f328, %f8;
+ sub.f32 %f333, %f330, %f9;
+ mul.f32 %f334, %f332, %f332;
+ fma.rn.f32 %f335, %f331, %f331, %f334;
+ fma.rn.f32 %f336, %f333, %f333, %f335;
+ sqrt.rn.f32 %f289, %f336;
+ rcp.rn.f32 %f337, %f289;
+ mul.f32 %f285, %f337, %f331;
+ mul.f32 %f286, %f337, %f332;
+ mul.f32 %f287, %f337, %f333;
+ ld.global.u32 %r65, [imageEnabled];
+ and.b32 %r66, %r65, 32;
+ setp.eq.s32 %p31, %r66, 0;
+ selp.f32 %f338, 0f3F800000, 0f41200000, %p31;
+ mul.f32 %f288, %f338, %f36;
+ mov.u32 %r67, 1065353216;
+ st.local.u32 [%rd2], %r67;
+ ld.global.u32 %r62, [root];
+ mov.u32 %r63, 1;
+ // inline asm
+ call _rt_trace_64, (%r62, %f33, %f34, %f35, %f285, %f286, %f287, %r63, %f288, %f289, %rd24, %r25);
+ // inline asm
+ ld.local.f32 %f339, [%rd2];
+ add.f32 %f865, %f865, %f339;
+ ld.global.u32 %r238, [samples];
+ add.s32 %r237, %r237, 1;
+ setp.lt.s32 %p32, %r237, %r238;
+ @%p32 bra BB0_17;
+
+BB0_18:
+ setp.eq.s32 %p33, %r238, 0;
+ @%p33 bra BB0_20;
+
+ cvt.rn.f32.s32 %f341, %r238;
+ div.rn.f32 %f866, %f865, %f341;
+
+BB0_20:
+ cvt.sat.f32.f32 %f342, %f29;
+ mul.f32 %f343, %f28, %f342;
+ mul.f32 %f344, %f866, %f343;
+ ld.global.f32 %f345, [lightColor];
+ mul.f32 %f346, %f345, %f344;
+ ld.global.f32 %f347, [lightColor+4];
+ mul.f32 %f348, %f347, %f344;
+ ld.global.f32 %f349, [lightColor+8];
+ mul.f32 %f350, %f344, %f349;
+ mul.f32 %f42, %f215, %f346;
+ mul.f32 %f43, %f216, %f348;
+ mul.f32 %f44, %f217, %f350;
+ ld.global.u32 %r240, [imageEnabled];
+ and.b32 %r68, %r240, 8;
+ setp.eq.s32 %p34, %r68, 0;
+ @%p34 bra BB0_33;
+
+ mov.f32 %f825, 0fB5BFBE8E;
+ mov.f32 %f824, 0fBF317200;
+ mov.f32 %f823, 0f35BFBE8E;
+ mov.f32 %f822, 0f3F317200;
+ mov.f32 %f821, 0f3DAAAABD;
+ mov.f32 %f820, 0f3C4CAF63;
+ mov.f32 %f819, 0f3B18F0FE;
+ cvt.u64.u32 %rd28, %r2;
+ cvt.u64.u32 %rd29, %r3;
+ mov.u64 %rd32, image_Mask;
+ cvta.global.u64 %rd27, %rd32;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r24, %r24, %rd28, %rd29, %rd15, %rd15);
+ // inline asm
+ abs.f32 %f46, %f866;
+ setp.lt.f32 %p35, %f46, 0f00800000;
+ mul.f32 %f356, %f46, 0f4B800000;
+ selp.f32 %f357, 0fC3170000, 0fC2FE0000, %p35;
+ selp.f32 %f358, %f356, %f46, %p35;
+ mov.b32 %r71, %f358;
+ and.b32 %r72, %r71, 8388607;
+ or.b32 %r73, %r72, 1065353216;
+ mov.b32 %f359, %r73;
+ shr.u32 %r74, %r71, 23;
+ cvt.rn.f32.u32 %f360, %r74;
+ add.f32 %f361, %f357, %f360;
+ setp.gt.f32 %p36, %f359, 0f3FB504F3;
+ mul.f32 %f362, %f359, 0f3F000000;
+ add.f32 %f363, %f361, 0f3F800000;
+ selp.f32 %f364, %f362, %f359, %p36;
+ selp.f32 %f365, %f363, %f361, %p36;
+ add.f32 %f366, %f364, 0fBF800000;
+ add.f32 %f352, %f364, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f351,%f352;
+ // inline asm
+ add.f32 %f367, %f366, %f366;
+ mul.f32 %f368, %f351, %f367;
+ mul.f32 %f369, %f368, %f368;
+ fma.rn.f32 %f372, %f819, %f369, %f820;
+ fma.rn.f32 %f374, %f372, %f369, %f821;
+ mul.rn.f32 %f375, %f374, %f369;
+ mul.rn.f32 %f376, %f375, %f368;
+ sub.f32 %f377, %f366, %f368;
+ neg.f32 %f378, %f368;
+ add.f32 %f379, %f377, %f377;
+ fma.rn.f32 %f380, %f378, %f366, %f379;
+ mul.rn.f32 %f381, %f351, %f380;
+ add.f32 %f382, %f376, %f368;
+ sub.f32 %f383, %f368, %f382;
+ add.f32 %f384, %f376, %f383;
+ add.f32 %f385, %f381, %f384;
+ add.f32 %f386, %f382, %f385;
+ sub.f32 %f387, %f382, %f386;
+ add.f32 %f388, %f385, %f387;
+ mul.rn.f32 %f390, %f365, %f822;
+ mul.rn.f32 %f392, %f365, %f823;
+ add.f32 %f393, %f390, %f386;
+ sub.f32 %f394, %f390, %f393;
+ add.f32 %f395, %f386, %f394;
+ add.f32 %f396, %f388, %f395;
+ add.f32 %f397, %f392, %f396;
+ add.f32 %f398, %f393, %f397;
+ sub.f32 %f399, %f393, %f398;
+ add.f32 %f400, %f397, %f399;
+ mov.f32 %f401, 0f3EE8BA2E;
+ mul.rn.f32 %f402, %f401, %f398;
+ neg.f32 %f403, %f402;
+ fma.rn.f32 %f404, %f401, %f398, %f403;
+ fma.rn.f32 %f405, %f401, %f400, %f404;
+ mov.f32 %f406, 0f00000000;
+ fma.rn.f32 %f407, %f406, %f398, %f405;
+ add.rn.f32 %f408, %f402, %f407;
+ neg.f32 %f409, %f408;
+ add.rn.f32 %f410, %f402, %f409;
+ add.rn.f32 %f411, %f410, %f407;
+ mov.b32 %r75, %f408;
+ setp.eq.s32 %p37, %r75, 1118925336;
+ add.s32 %r76, %r75, -1;
+ mov.b32 %f412, %r76;
+ add.f32 %f413, %f411, 0f37000000;
+ selp.f32 %f414, %f412, %f408, %p37;
+ selp.f32 %f47, %f413, %f411, %p37;
+ mul.f32 %f415, %f414, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f416, %f415;
+ fma.rn.f32 %f418, %f416, %f824, %f414;
+ fma.rn.f32 %f420, %f416, %f825, %f418;
+ mul.f32 %f421, %f420, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f422, %f421;
+ add.f32 %f423, %f416, 0f00000000;
+ ex2.approx.f32 %f424, %f423;
+ mul.f32 %f425, %f422, %f424;
+ setp.lt.f32 %p38, %f414, 0fC2D20000;
+ selp.f32 %f426, 0f00000000, %f425, %p38;
+ setp.gt.f32 %p39, %f414, 0f42D20000;
+ selp.f32 %f867, 0f7F800000, %f426, %p39;
+ setp.eq.f32 %p40, %f867, 0f7F800000;
+ @%p40 bra BB0_23;
+
+ fma.rn.f32 %f867, %f867, %f47, %f867;
+
+BB0_23:
+ mov.f32 %f853, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f852, %f853;
+ fma.rn.f32 %f851, %f852, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f850, %f851;
+ setp.lt.f32 %p41, %f866, 0f00000000;
+ setp.eq.f32 %p42, %f850, 0f3F800000;
+ and.pred %p2, %p41, %p42;
+ mov.b32 %r77, %f867;
+ xor.b32 %r78, %r77, -2147483648;
+ mov.b32 %f427, %r78;
+ selp.f32 %f869, %f427, %f867, %p2;
+ setp.eq.f32 %p43, %f866, 0f00000000;
+ @%p43 bra BB0_26;
+ bra.uni BB0_24;
+
+BB0_26:
+ add.f32 %f430, %f866, %f866;
+ selp.f32 %f869, %f430, 0f00000000, %p42;
+ bra.uni BB0_27;
+
+BB0_111:
+ mov.u64 %rd287, image_HDR;
+ cvta.global.u64 %rd282, %rd287;
+ mov.u32 %r207, 8;
+ // inline asm
+ call (%rd281), _rt_buffer_get_64, (%rd282, %r24, %r207, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f782, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs167, %f782;}
+
+ // inline asm
+ mov.u16 %rs168, 0;
+ st.v4.u16 [%rd281], {%rs167, %rs167, %rs167, %rs168};
+
+BB0_112:
+ ld.global.u32 %r208, [additive];
+ setp.eq.s32 %p118, %r208, 0;
+ @%p118 bra BB0_114;
+
+ mov.u64 %rd300, image_RNM0;
+ cvta.global.u64 %rd289, %rd300;
+ mov.u32 %r212, 8;
+ // inline asm
+ call (%rd288), _rt_buffer_get_64, (%rd289, %r24, %r212, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs175, %rs176, %rs177, %rs178}, [%rd288];
+ // inline asm
+ { cvt.f32.f16 %f783, %rs175;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f784, %rs176;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f785, %rs177;}
+
+ // inline asm
+ // inline asm
+ call (%rd294), _rt_buffer_get_64, (%rd289, %r24, %r212, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f786, %f783, 0f00000000;
+ add.f32 %f787, %f784, 0f00000000;
+ add.f32 %f788, %f785, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs174, %f788;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs173, %f787;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs172, %f786;}
+
+ // inline asm
+ mov.u16 %rs179, 0;
+ st.v4.u16 [%rd294], {%rs172, %rs173, %rs174, %rs179};
+ bra.uni BB0_115;
+
+BB0_114:
+ mov.u64 %rd307, image_RNM0;
+ cvta.global.u64 %rd302, %rd307;
+ mov.u32 %r214, 8;
+ // inline asm
+ call (%rd301), _rt_buffer_get_64, (%rd302, %r24, %r214, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f789, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs180, %f789;}
+
+ // inline asm
+ mov.u16 %rs181, 0;
+ st.v4.u16 [%rd301], {%rs180, %rs180, %rs180, %rs181};
+
+BB0_115:
+ ld.global.u32 %r215, [additive];
+ setp.eq.s32 %p119, %r215, 0;
+ @%p119 bra BB0_117;
+
+ mov.u64 %rd320, image_RNM1;
+ cvta.global.u64 %rd309, %rd320;
+ mov.u32 %r219, 8;
+ // inline asm
+ call (%rd308), _rt_buffer_get_64, (%rd309, %r24, %r219, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs188, %rs189, %rs190, %rs191}, [%rd308];
+ // inline asm
+ { cvt.f32.f16 %f790, %rs188;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f791, %rs189;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f792, %rs190;}
+
+ // inline asm
+ // inline asm
+ call (%rd314), _rt_buffer_get_64, (%rd309, %r24, %r219, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f793, %f790, 0f00000000;
+ add.f32 %f794, %f791, 0f00000000;
+ add.f32 %f795, %f792, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs187, %f795;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs186, %f794;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs185, %f793;}
+
+ // inline asm
+ mov.u16 %rs192, 0;
+ st.v4.u16 [%rd314], {%rs185, %rs186, %rs187, %rs192};
+ bra.uni BB0_118;
+
+BB0_117:
+ mov.u64 %rd327, image_RNM1;
+ cvta.global.u64 %rd322, %rd327;
+ mov.u32 %r221, 8;
+ // inline asm
+ call (%rd321), _rt_buffer_get_64, (%rd322, %r24, %r221, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f796, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs193, %f796;}
+
+ // inline asm
+ mov.u16 %rs194, 0;
+ st.v4.u16 [%rd321], {%rs193, %rs193, %rs193, %rs194};
+
+BB0_118:
+ ld.global.u32 %r222, [additive];
+ setp.eq.s32 %p120, %r222, 0;
+ @%p120 bra BB0_120;
+
+ mov.u64 %rd340, image_RNM2;
+ cvta.global.u64 %rd329, %rd340;
+ mov.u32 %r226, 8;
+ // inline asm
+ call (%rd328), _rt_buffer_get_64, (%rd329, %r24, %r226, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs201, %rs202, %rs203, %rs204}, [%rd328];
+ // inline asm
+ { cvt.f32.f16 %f797, %rs201;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f798, %rs202;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f799, %rs203;}
+
+ // inline asm
+ // inline asm
+ call (%rd334), _rt_buffer_get_64, (%rd329, %r24, %r226, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f800, %f797, 0f00000000;
+ add.f32 %f801, %f798, 0f00000000;
+ add.f32 %f802, %f799, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs200, %f802;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs199, %f801;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs198, %f800;}
+
+ // inline asm
+ mov.u16 %rs205, 0;
+ st.v4.u16 [%rd334], {%rs198, %rs199, %rs200, %rs205};
+ bra.uni BB0_121;
+
+BB0_120:
+ mov.u64 %rd347, image_RNM2;
+ cvta.global.u64 %rd342, %rd347;
+ mov.u32 %r228, 8;
+ // inline asm
+ call (%rd341), _rt_buffer_get_64, (%rd342, %r24, %r228, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f803, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs206, %f803;}
+
+ // inline asm
+ mov.u16 %rs207, 0;
+ st.v4.u16 [%rd341], {%rs206, %rs206, %rs206, %rs207};
+
+BB0_121:
+ ld.global.u32 %r229, [additive];
+ setp.eq.s32 %p121, %r229, 0;
+ @%p121 bra BB0_123;
+
+ mov.u64 %rd360, image_RNM3;
+ cvta.global.u64 %rd349, %rd360;
+ mov.u32 %r233, 8;
+ // inline asm
+ call (%rd348), _rt_buffer_get_64, (%rd349, %r24, %r233, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs214, %rs215, %rs216, %rs217}, [%rd348];
+ // inline asm
+ { cvt.f32.f16 %f804, %rs214;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f805, %rs215;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f806, %rs216;}
+
+ // inline asm
+ // inline asm
+ call (%rd354), _rt_buffer_get_64, (%rd349, %r24, %r233, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f807, %f804, 0f00000000;
+ add.f32 %f808, %f805, 0f00000000;
+ add.f32 %f809, %f806, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs213, %f809;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs212, %f808;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs211, %f807;}
+
+ // inline asm
+ mov.u16 %rs218, 0;
+ st.v4.u16 [%rd354], {%rs211, %rs212, %rs213, %rs218};
+ bra.uni BB0_124;
+
+BB0_123:
+ mov.u64 %rd367, image_RNM3;
+ cvta.global.u64 %rd362, %rd367;
+ mov.u32 %r235, 8;
+ // inline asm
+ call (%rd361), _rt_buffer_get_64, (%rd362, %r24, %r235, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f810, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs219, %f810;}
+
+ // inline asm
+ mov.u16 %rs220, 0;
+ st.v4.u16 [%rd361], {%rs219, %rs219, %rs219, %rs220};
+ bra.uni BB0_124;
+
+BB0_91:
+ mov.u64 %rd173, image_HDR;
+ cvta.global.u64 %rd168, %rd173;
+ mov.u32 %r164, 8;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r24, %r164, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f740, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f740;}
+
+ // inline asm
+ st.v4.u16 [%rd167], {%rs104, %rs104, %rs104, %rs93};
+
+BB0_92:
+ ld.global.u32 %r165, [additive];
+ setp.eq.s32 %p110, %r165, 0;
+ mov.f32 %f741, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f741;}
+
+ // inline asm
+ @%p110 bra BB0_94;
+
+ mov.u64 %rd186, image_RNM0;
+ cvta.global.u64 %rd175, %rd186;
+ mov.u32 %r169, 8;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r24, %r169, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd174];
+ // inline asm
+ { cvt.f32.f16 %f742, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f743, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f744, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd175, %r24, %r169, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f745, %f742, 0f00000000;
+ add.f32 %f746, %f743, 0f00000000;
+ add.f32 %f747, %f744, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f747;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f746;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f745;}
+
+ // inline asm
+ st.v4.u16 [%rd180], {%rs109, %rs110, %rs111, %rs105};
+ bra.uni BB0_95;
+
+BB0_94:
+ mov.u64 %rd193, image_RNM0;
+ cvta.global.u64 %rd188, %rd193;
+ mov.u32 %r171, 8;
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd188, %r24, %r171, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f748, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f748;}
+
+ // inline asm
+ st.v4.u16 [%rd187], {%rs116, %rs116, %rs116, %rs105};
+
+BB0_95:
+ ld.global.u32 %r172, [additive];
+ setp.eq.s32 %p111, %r172, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f741;}
+
+ // inline asm
+ @%p111 bra BB0_97;
+
+ mov.u64 %rd206, image_RNM1;
+ cvta.global.u64 %rd195, %rd206;
+ mov.u32 %r176, 8;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r24, %r176, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd194];
+ // inline asm
+ { cvt.f32.f16 %f750, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f751, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f752, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd195, %r24, %r176, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f753, %f750, 0f00000000;
+ add.f32 %f754, %f751, 0f00000000;
+ add.f32 %f755, %f752, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f755;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f754;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f753;}
+
+ // inline asm
+ st.v4.u16 [%rd200], {%rs121, %rs122, %rs123, %rs117};
+ bra.uni BB0_98;
+
+BB0_97:
+ mov.u64 %rd213, image_RNM1;
+ cvta.global.u64 %rd208, %rd213;
+ mov.u32 %r178, 8;
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd208, %r24, %r178, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f756, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs128, %f756;}
+
+ // inline asm
+ st.v4.u16 [%rd207], {%rs128, %rs128, %rs128, %rs117};
+
+BB0_98:
+ ld.global.u32 %r179, [additive];
+ setp.eq.s32 %p112, %r179, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f741;}
+
+ // inline asm
+ @%p112 bra BB0_100;
+
+ mov.u64 %rd226, image_RNM2;
+ cvta.global.u64 %rd215, %rd226;
+ mov.u32 %r183, 8;
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd215, %r24, %r183, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs136, %rs137, %rs138, %rs139}, [%rd214];
+ // inline asm
+ { cvt.f32.f16 %f758, %rs136;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f759, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f760, %rs138;}
+
+ // inline asm
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd215, %r24, %r183, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f761, %f758, 0f00000000;
+ add.f32 %f762, %f759, 0f00000000;
+ add.f32 %f763, %f760, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f763;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f762;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f761;}
+
+ // inline asm
+ st.v4.u16 [%rd220], {%rs133, %rs134, %rs135, %rs129};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd233, image_RNM2;
+ cvta.global.u64 %rd228, %rd233;
+ mov.u32 %r185, 8;
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd228, %r24, %r185, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f764, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f764;}
+
+ // inline asm
+ st.v4.u16 [%rd227], {%rs140, %rs140, %rs140, %rs129};
+
+BB0_101:
+ ld.global.u32 %r186, [additive];
+ setp.eq.s32 %p113, %r186, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs141, %f741;}
+
+ // inline asm
+ @%p113 bra BB0_103;
+
+ mov.u64 %rd246, image_RNM3;
+ cvta.global.u64 %rd235, %rd246;
+ mov.u32 %r190, 8;
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd235, %r24, %r190, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs148, %rs149, %rs150, %rs151}, [%rd234];
+ // inline asm
+ { cvt.f32.f16 %f766, %rs148;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f767, %rs149;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f768, %rs150;}
+
+ // inline asm
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd235, %r24, %r190, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f769, %f766, 0f00000000;
+ add.f32 %f770, %f767, 0f00000000;
+ add.f32 %f771, %f768, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f771;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f770;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f769;}
+
+ // inline asm
+ st.v4.u16 [%rd240], {%rs145, %rs146, %rs147, %rs141};
+ bra.uni BB0_124;
+
+BB0_103:
+ mov.u64 %rd253, image_RNM3;
+ cvta.global.u64 %rd248, %rd253;
+ mov.u32 %r192, 8;
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd248, %r24, %r192, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f772, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f772;}
+
+ // inline asm
+ st.v4.u16 [%rd247], {%rs152, %rs152, %rs152, %rs141};
+ bra.uni BB0_124;
+
+BB0_24:
+ setp.geu.f32 %p44, %f866, 0f00000000;
+ @%p44 bra BB0_27;
+
+ mov.f32 %f857, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f429, %f857;
+ setp.neu.f32 %p45, %f429, 0f3EE8BA2E;
+ selp.f32 %f869, 0f7FFFFFFF, %f869, %p45;
+
+BB0_27:
+ abs.f32 %f854, %f866;
+ add.f32 %f431, %f854, 0f3EE8BA2E;
+ mov.b32 %r79, %f431;
+ setp.lt.s32 %p47, %r79, 2139095040;
+ @%p47 bra BB0_32;
+
+ abs.f32 %f855, %f866;
+ setp.gtu.f32 %p48, %f855, 0f7F800000;
+ @%p48 bra BB0_31;
+ bra.uni BB0_29;
+
+BB0_31:
+ add.f32 %f869, %f866, 0f3EE8BA2E;
+ bra.uni BB0_32;
+
+BB0_29:
+ abs.f32 %f856, %f866;
+ setp.neu.f32 %p49, %f856, 0f7F800000;
+ @%p49 bra BB0_32;
+
+ selp.f32 %f869, 0fFF800000, 0f7F800000, %p2;
+
+BB0_32:
+ mul.f32 %f432, %f869, 0f437F0000;
+ setp.eq.f32 %p50, %f866, 0f3F800000;
+ selp.f32 %f433, 0f437F0000, %f432, %p50;
+ cvt.rzi.u32.f32 %r80, %f433;
+ cvt.u16.u32 %rs19, %r80;
+ mov.u16 %rs20, 255;
+ st.v2.u8 [%rd26], {%rs19, %rs20};
+ ld.global.u32 %r240, [imageEnabled];
+
+BB0_33:
+ and.b32 %r81, %r240, 1;
+ setp.eq.b32 %p51, %r81, 1;
+ @!%p51 bra BB0_68;
+ bra.uni BB0_34;
+
+BB0_34:
+ mov.f32 %f832, 0fB5BFBE8E;
+ mov.f32 %f831, 0fBF317200;
+ mov.f32 %f830, 0f35BFBE8E;
+ mov.f32 %f829, 0f3F317200;
+ mov.f32 %f828, 0f3DAAAABD;
+ mov.f32 %f827, 0f3C4CAF63;
+ mov.f32 %f826, 0f3B18F0FE;
+ mov.f32 %f436, 0f3E666666;
+ cvt.rzi.f32.f32 %f437, %f436;
+ fma.rn.f32 %f438, %f437, 0fC0000000, 0f3EE66666;
+ abs.f32 %f58, %f438;
+ abs.f32 %f59, %f42;
+ setp.lt.f32 %p52, %f59, 0f00800000;
+ mul.f32 %f439, %f59, 0f4B800000;
+ selp.f32 %f440, 0fC3170000, 0fC2FE0000, %p52;
+ selp.f32 %f441, %f439, %f59, %p52;
+ mov.b32 %r82, %f441;
+ and.b32 %r83, %r82, 8388607;
+ or.b32 %r84, %r83, 1065353216;
+ mov.b32 %f442, %r84;
+ shr.u32 %r85, %r82, 23;
+ cvt.rn.f32.u32 %f443, %r85;
+ add.f32 %f444, %f440, %f443;
+ setp.gt.f32 %p53, %f442, 0f3FB504F3;
+ mul.f32 %f445, %f442, 0f3F000000;
+ add.f32 %f446, %f444, 0f3F800000;
+ selp.f32 %f447, %f445, %f442, %p53;
+ selp.f32 %f448, %f446, %f444, %p53;
+ add.f32 %f449, %f447, 0fBF800000;
+ add.f32 %f435, %f447, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f434,%f435;
+ // inline asm
+ add.f32 %f450, %f449, %f449;
+ mul.f32 %f451, %f434, %f450;
+ mul.f32 %f452, %f451, %f451;
+ fma.rn.f32 %f455, %f826, %f452, %f827;
+ fma.rn.f32 %f457, %f455, %f452, %f828;
+ mul.rn.f32 %f458, %f457, %f452;
+ mul.rn.f32 %f459, %f458, %f451;
+ sub.f32 %f460, %f449, %f451;
+ neg.f32 %f461, %f451;
+ add.f32 %f462, %f460, %f460;
+ fma.rn.f32 %f463, %f461, %f449, %f462;
+ mul.rn.f32 %f464, %f434, %f463;
+ add.f32 %f465, %f459, %f451;
+ sub.f32 %f466, %f451, %f465;
+ add.f32 %f467, %f459, %f466;
+ add.f32 %f468, %f464, %f467;
+ add.f32 %f469, %f465, %f468;
+ sub.f32 %f470, %f465, %f469;
+ add.f32 %f471, %f468, %f470;
+ mul.rn.f32 %f473, %f448, %f829;
+ mul.rn.f32 %f475, %f448, %f830;
+ add.f32 %f476, %f473, %f469;
+ sub.f32 %f477, %f473, %f476;
+ add.f32 %f478, %f469, %f477;
+ add.f32 %f479, %f471, %f478;
+ add.f32 %f480, %f475, %f479;
+ add.f32 %f481, %f476, %f480;
+ sub.f32 %f482, %f476, %f481;
+ add.f32 %f483, %f480, %f482;
+ mov.f32 %f484, 0f3EE66666;
+ mul.rn.f32 %f485, %f484, %f481;
+ neg.f32 %f486, %f485;
+ fma.rn.f32 %f487, %f484, %f481, %f486;
+ fma.rn.f32 %f488, %f484, %f483, %f487;
+ mov.f32 %f489, 0f00000000;
+ fma.rn.f32 %f490, %f489, %f481, %f488;
+ add.rn.f32 %f491, %f485, %f490;
+ neg.f32 %f492, %f491;
+ add.rn.f32 %f493, %f485, %f492;
+ add.rn.f32 %f494, %f493, %f490;
+ mov.b32 %r86, %f491;
+ setp.eq.s32 %p54, %r86, 1118925336;
+ add.s32 %r87, %r86, -1;
+ mov.b32 %f495, %r87;
+ add.f32 %f496, %f494, 0f37000000;
+ selp.f32 %f497, %f495, %f491, %p54;
+ selp.f32 %f60, %f496, %f494, %p54;
+ mul.f32 %f498, %f497, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f499, %f498;
+ fma.rn.f32 %f501, %f499, %f831, %f497;
+ fma.rn.f32 %f503, %f499, %f832, %f501;
+ mul.f32 %f504, %f503, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f505, %f504;
+ add.f32 %f506, %f499, 0f00000000;
+ ex2.approx.f32 %f507, %f506;
+ mul.f32 %f508, %f505, %f507;
+ setp.lt.f32 %p55, %f497, 0fC2D20000;
+ selp.f32 %f509, 0f00000000, %f508, %p55;
+ setp.gt.f32 %p56, %f497, 0f42D20000;
+ selp.f32 %f870, 0f7F800000, %f509, %p56;
+ setp.eq.f32 %p57, %f870, 0f7F800000;
+ @%p57 bra BB0_36;
+
+ fma.rn.f32 %f870, %f870, %f60, %f870;
+
+BB0_36:
+ setp.lt.f32 %p58, %f42, 0f00000000;
+ setp.eq.f32 %p59, %f58, 0f3F800000;
+ and.pred %p3, %p58, %p59;
+ mov.b32 %r88, %f870;
+ xor.b32 %r89, %r88, -2147483648;
+ mov.b32 %f510, %r89;
+ selp.f32 %f872, %f510, %f870, %p3;
+ setp.eq.f32 %p60, %f42, 0f00000000;
+ @%p60 bra BB0_39;
+ bra.uni BB0_37;
+
+BB0_39:
+ add.f32 %f513, %f42, %f42;
+ selp.f32 %f872, %f513, 0f00000000, %p59;
+ bra.uni BB0_40;
+
+BB0_37:
+ setp.geu.f32 %p61, %f42, 0f00000000;
+ @%p61 bra BB0_40;
+
+ cvt.rzi.f32.f32 %f512, %f484;
+ setp.neu.f32 %p62, %f512, 0f3EE66666;
+ selp.f32 %f872, 0f7FFFFFFF, %f872, %p62;
+
+BB0_40:
+ add.f32 %f514, %f59, 0f3EE66666;
+ mov.b32 %r90, %f514;
+ setp.lt.s32 %p64, %r90, 2139095040;
+ @%p64 bra BB0_45;
+
+ setp.gtu.f32 %p65, %f59, 0f7F800000;
+ @%p65 bra BB0_44;
+ bra.uni BB0_42;
+
+BB0_44:
+ add.f32 %f872, %f42, 0f3EE66666;
+ bra.uni BB0_45;
+
+BB0_42:
+ setp.neu.f32 %p66, %f59, 0f7F800000;
+ @%p66 bra BB0_45;
+
+ selp.f32 %f872, 0fFF800000, 0f7F800000, %p3;
+
+BB0_45:
+ mov.f32 %f839, 0fB5BFBE8E;
+ mov.f32 %f838, 0fBF317200;
+ mov.f32 %f837, 0f35BFBE8E;
+ mov.f32 %f836, 0f3F317200;
+ mov.f32 %f835, 0f3DAAAABD;
+ mov.f32 %f834, 0f3C4CAF63;
+ mov.f32 %f833, 0f3B18F0FE;
+ setp.eq.f32 %p67, %f42, 0f3F800000;
+ selp.f32 %f71, 0f3F800000, %f872, %p67;
+ abs.f32 %f72, %f43;
+ setp.lt.f32 %p68, %f72, 0f00800000;
+ mul.f32 %f517, %f72, 0f4B800000;
+ selp.f32 %f518, 0fC3170000, 0fC2FE0000, %p68;
+ selp.f32 %f519, %f517, %f72, %p68;
+ mov.b32 %r91, %f519;
+ and.b32 %r92, %r91, 8388607;
+ or.b32 %r93, %r92, 1065353216;
+ mov.b32 %f520, %r93;
+ shr.u32 %r94, %r91, 23;
+ cvt.rn.f32.u32 %f521, %r94;
+ add.f32 %f522, %f518, %f521;
+ setp.gt.f32 %p69, %f520, 0f3FB504F3;
+ mul.f32 %f523, %f520, 0f3F000000;
+ add.f32 %f524, %f522, 0f3F800000;
+ selp.f32 %f525, %f523, %f520, %p69;
+ selp.f32 %f526, %f524, %f522, %p69;
+ add.f32 %f527, %f525, 0fBF800000;
+ add.f32 %f516, %f525, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f515,%f516;
+ // inline asm
+ add.f32 %f528, %f527, %f527;
+ mul.f32 %f529, %f515, %f528;
+ mul.f32 %f530, %f529, %f529;
+ fma.rn.f32 %f533, %f833, %f530, %f834;
+ fma.rn.f32 %f535, %f533, %f530, %f835;
+ mul.rn.f32 %f536, %f535, %f530;
+ mul.rn.f32 %f537, %f536, %f529;
+ sub.f32 %f538, %f527, %f529;
+ neg.f32 %f539, %f529;
+ add.f32 %f540, %f538, %f538;
+ fma.rn.f32 %f541, %f539, %f527, %f540;
+ mul.rn.f32 %f542, %f515, %f541;
+ add.f32 %f543, %f537, %f529;
+ sub.f32 %f544, %f529, %f543;
+ add.f32 %f545, %f537, %f544;
+ add.f32 %f546, %f542, %f545;
+ add.f32 %f547, %f543, %f546;
+ sub.f32 %f548, %f543, %f547;
+ add.f32 %f549, %f546, %f548;
+ mul.rn.f32 %f551, %f526, %f836;
+ mul.rn.f32 %f553, %f526, %f837;
+ add.f32 %f554, %f551, %f547;
+ sub.f32 %f555, %f551, %f554;
+ add.f32 %f556, %f547, %f555;
+ add.f32 %f557, %f549, %f556;
+ add.f32 %f558, %f553, %f557;
+ add.f32 %f559, %f554, %f558;
+ sub.f32 %f560, %f554, %f559;
+ add.f32 %f561, %f558, %f560;
+ mul.rn.f32 %f563, %f484, %f559;
+ neg.f32 %f564, %f563;
+ fma.rn.f32 %f565, %f484, %f559, %f564;
+ fma.rn.f32 %f566, %f484, %f561, %f565;
+ fma.rn.f32 %f568, %f489, %f559, %f566;
+ add.rn.f32 %f569, %f563, %f568;
+ neg.f32 %f570, %f569;
+ add.rn.f32 %f571, %f563, %f570;
+ add.rn.f32 %f572, %f571, %f568;
+ mov.b32 %r95, %f569;
+ setp.eq.s32 %p70, %r95, 1118925336;
+ add.s32 %r96, %r95, -1;
+ mov.b32 %f573, %r96;
+ add.f32 %f574, %f572, 0f37000000;
+ selp.f32 %f575, %f573, %f569, %p70;
+ selp.f32 %f73, %f574, %f572, %p70;
+ mul.f32 %f576, %f575, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f577, %f576;
+ fma.rn.f32 %f579, %f577, %f838, %f575;
+ fma.rn.f32 %f581, %f577, %f839, %f579;
+ mul.f32 %f582, %f581, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f583, %f582;
+ add.f32 %f584, %f577, 0f00000000;
+ ex2.approx.f32 %f585, %f584;
+ mul.f32 %f586, %f583, %f585;
+ setp.lt.f32 %p71, %f575, 0fC2D20000;
+ selp.f32 %f587, 0f00000000, %f586, %p71;
+ setp.gt.f32 %p72, %f575, 0f42D20000;
+ selp.f32 %f873, 0f7F800000, %f587, %p72;
+ setp.eq.f32 %p73, %f873, 0f7F800000;
+ @%p73 bra BB0_47;
+
+ fma.rn.f32 %f873, %f873, %f73, %f873;
+
+BB0_47:
+ setp.lt.f32 %p74, %f43, 0f00000000;
+ and.pred %p4, %p74, %p59;
+ mov.b32 %r97, %f873;
+ xor.b32 %r98, %r97, -2147483648;
+ mov.b32 %f588, %r98;
+ selp.f32 %f875, %f588, %f873, %p4;
+ setp.eq.f32 %p76, %f43, 0f00000000;
+ @%p76 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f591, %f43, %f43;
+ selp.f32 %f875, %f591, 0f00000000, %p59;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p77, %f43, 0f00000000;
+ @%p77 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f590, %f484;
+ setp.neu.f32 %p78, %f590, 0f3EE66666;
+ selp.f32 %f875, 0f7FFFFFFF, %f875, %p78;
+
+BB0_51:
+ add.f32 %f592, %f72, 0f3EE66666;
+ mov.b32 %r99, %f592;
+ setp.lt.s32 %p80, %r99, 2139095040;
+ @%p80 bra BB0_56;
+
+ setp.gtu.f32 %p81, %f72, 0f7F800000;
+ @%p81 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f875, %f43, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p82, %f72, 0f7F800000;
+ @%p82 bra BB0_56;
+
+ selp.f32 %f875, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f846, 0fB5BFBE8E;
+ mov.f32 %f845, 0fBF317200;
+ mov.f32 %f844, 0f35BFBE8E;
+ mov.f32 %f843, 0f3F317200;
+ mov.f32 %f842, 0f3DAAAABD;
+ mov.f32 %f841, 0f3C4CAF63;
+ mov.f32 %f840, 0f3B18F0FE;
+ setp.eq.f32 %p83, %f43, 0f3F800000;
+ selp.f32 %f84, 0f3F800000, %f875, %p83;
+ abs.f32 %f85, %f44;
+ setp.lt.f32 %p84, %f85, 0f00800000;
+ mul.f32 %f595, %f85, 0f4B800000;
+ selp.f32 %f596, 0fC3170000, 0fC2FE0000, %p84;
+ selp.f32 %f597, %f595, %f85, %p84;
+ mov.b32 %r100, %f597;
+ and.b32 %r101, %r100, 8388607;
+ or.b32 %r102, %r101, 1065353216;
+ mov.b32 %f598, %r102;
+ shr.u32 %r103, %r100, 23;
+ cvt.rn.f32.u32 %f599, %r103;
+ add.f32 %f600, %f596, %f599;
+ setp.gt.f32 %p85, %f598, 0f3FB504F3;
+ mul.f32 %f601, %f598, 0f3F000000;
+ add.f32 %f602, %f600, 0f3F800000;
+ selp.f32 %f603, %f601, %f598, %p85;
+ selp.f32 %f604, %f602, %f600, %p85;
+ add.f32 %f605, %f603, 0fBF800000;
+ add.f32 %f594, %f603, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f593,%f594;
+ // inline asm
+ add.f32 %f606, %f605, %f605;
+ mul.f32 %f607, %f593, %f606;
+ mul.f32 %f608, %f607, %f607;
+ fma.rn.f32 %f611, %f840, %f608, %f841;
+ fma.rn.f32 %f613, %f611, %f608, %f842;
+ mul.rn.f32 %f614, %f613, %f608;
+ mul.rn.f32 %f615, %f614, %f607;
+ sub.f32 %f616, %f605, %f607;
+ neg.f32 %f617, %f607;
+ add.f32 %f618, %f616, %f616;
+ fma.rn.f32 %f619, %f617, %f605, %f618;
+ mul.rn.f32 %f620, %f593, %f619;
+ add.f32 %f621, %f615, %f607;
+ sub.f32 %f622, %f607, %f621;
+ add.f32 %f623, %f615, %f622;
+ add.f32 %f624, %f620, %f623;
+ add.f32 %f625, %f621, %f624;
+ sub.f32 %f626, %f621, %f625;
+ add.f32 %f627, %f624, %f626;
+ mul.rn.f32 %f629, %f604, %f843;
+ mul.rn.f32 %f631, %f604, %f844;
+ add.f32 %f632, %f629, %f625;
+ sub.f32 %f633, %f629, %f632;
+ add.f32 %f634, %f625, %f633;
+ add.f32 %f635, %f627, %f634;
+ add.f32 %f636, %f631, %f635;
+ add.f32 %f637, %f632, %f636;
+ sub.f32 %f638, %f632, %f637;
+ add.f32 %f639, %f636, %f638;
+ mul.rn.f32 %f641, %f484, %f637;
+ neg.f32 %f642, %f641;
+ fma.rn.f32 %f643, %f484, %f637, %f642;
+ fma.rn.f32 %f644, %f484, %f639, %f643;
+ fma.rn.f32 %f646, %f489, %f637, %f644;
+ add.rn.f32 %f647, %f641, %f646;
+ neg.f32 %f648, %f647;
+ add.rn.f32 %f649, %f641, %f648;
+ add.rn.f32 %f650, %f649, %f646;
+ mov.b32 %r104, %f647;
+ setp.eq.s32 %p86, %r104, 1118925336;
+ add.s32 %r105, %r104, -1;
+ mov.b32 %f651, %r105;
+ add.f32 %f652, %f650, 0f37000000;
+ selp.f32 %f653, %f651, %f647, %p86;
+ selp.f32 %f86, %f652, %f650, %p86;
+ mul.f32 %f654, %f653, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f655, %f654;
+ fma.rn.f32 %f657, %f655, %f845, %f653;
+ fma.rn.f32 %f659, %f655, %f846, %f657;
+ mul.f32 %f660, %f659, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f661, %f660;
+ add.f32 %f662, %f655, 0f00000000;
+ ex2.approx.f32 %f663, %f662;
+ mul.f32 %f664, %f661, %f663;
+ setp.lt.f32 %p87, %f653, 0fC2D20000;
+ selp.f32 %f665, 0f00000000, %f664, %p87;
+ setp.gt.f32 %p88, %f653, 0f42D20000;
+ selp.f32 %f876, 0f7F800000, %f665, %p88;
+ setp.eq.f32 %p89, %f876, 0f7F800000;
+ @%p89 bra BB0_58;
+
+ fma.rn.f32 %f876, %f876, %f86, %f876;
+
+BB0_58:
+ setp.lt.f32 %p90, %f44, 0f00000000;
+ and.pred %p5, %p90, %p59;
+ mov.b32 %r106, %f876;
+ xor.b32 %r107, %r106, -2147483648;
+ mov.b32 %f666, %r107;
+ selp.f32 %f878, %f666, %f876, %p5;
+ setp.eq.f32 %p92, %f44, 0f00000000;
+ @%p92 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f669, %f44, %f44;
+ selp.f32 %f878, %f669, 0f00000000, %p59;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p93, %f44, 0f00000000;
+ @%p93 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f668, %f484;
+ setp.neu.f32 %p94, %f668, 0f3EE66666;
+ selp.f32 %f878, 0f7FFFFFFF, %f878, %p94;
+
+BB0_62:
+ add.f32 %f670, %f85, 0f3EE66666;
+ mov.b32 %r108, %f670;
+ setp.lt.s32 %p96, %r108, 2139095040;
+ @%p96 bra BB0_67;
+
+ setp.gtu.f32 %p97, %f85, 0f7F800000;
+ @%p97 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f878, %f44, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p98, %f85, 0f7F800000;
+ @%p98 bra BB0_67;
+
+ selp.f32 %f878, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ mov.u32 %r236, 4;
+ setp.eq.f32 %p99, %f44, 0f3F800000;
+ selp.f32 %f671, 0f3F800000, %f878, %p99;
+ cvt.u64.u32 %rd36, %r3;
+ cvt.u64.u32 %rd35, %r2;
+ mov.u64 %rd39, image;
+ cvta.global.u64 %rd34, %rd39;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r24, %r236, %rd35, %rd36, %rd15, %rd15);
+ // inline asm
+ cvt.sat.f32.f32 %f672, %f671;
+ mul.f32 %f673, %f672, 0f437FFD71;
+ cvt.rzi.u32.f32 %r111, %f673;
+ cvt.sat.f32.f32 %f674, %f84;
+ mul.f32 %f675, %f674, 0f437FFD71;
+ cvt.rzi.u32.f32 %r112, %f675;
+ cvt.sat.f32.f32 %f676, %f71;
+ mul.f32 %f677, %f676, 0f437FFD71;
+ cvt.rzi.u32.f32 %r113, %f677;
+ cvt.u16.u32 %rs21, %r111;
+ cvt.u16.u32 %rs22, %r113;
+ cvt.u16.u32 %rs23, %r112;
+ mov.u16 %rs24, 255;
+ st.v4.u8 [%rd33], {%rs21, %rs23, %rs22, %rs24};
+ ld.global.u32 %r240, [imageEnabled];
+
+BB0_68:
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ and.b32 %r114, %r240, 4;
+ setp.eq.s32 %p100, %r114, 0;
+ @%p100 bra BB0_72;
+
+ ld.global.u32 %r115, [additive];
+ setp.eq.s32 %p101, %r115, 0;
+ mov.f32 %f678, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f678;}
+
+ // inline asm
+ @%p101 bra BB0_71;
+
+ mov.u64 %rd52, image_HDR;
+ cvta.global.u64 %rd41, %rd52;
+ mov.u32 %r119, 8;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r24, %r119, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs32, %rs33, %rs34, %rs35}, [%rd40];
+ // inline asm
+ { cvt.f32.f16 %f679, %rs32;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f680, %rs33;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f681, %rs34;}
+
+ // inline asm
+ // inline asm
+ call (%rd46), _rt_buffer_get_64, (%rd41, %r24, %r119, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f682, %f42, %f679;
+ add.f32 %f683, %f43, %f680;
+ add.f32 %f684, %f44, %f681;
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f684;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f683;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f682;}
+
+ // inline asm
+ st.v4.u16 [%rd46], {%rs29, %rs30, %rs31, %rs25};
+ bra.uni BB0_72;
+
+BB0_71:
+ mov.u64 %rd59, image_HDR;
+ cvta.global.u64 %rd54, %rd59;
+ mov.u32 %r121, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r24, %r121, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f44;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f43;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f42;}
+
+ // inline asm
+ st.v4.u16 [%rd53], {%rs36, %rs37, %rs38, %rs25};
+
+BB0_72:
+ mul.f32 %f689, %f28, 0f3E800000;
+ mul.f32 %f690, %f689, %f866;
+ ld.global.f32 %f691, [lightColor];
+ mul.f32 %f692, %f690, %f691;
+ ld.global.f32 %f693, [lightColor+4];
+ mul.f32 %f694, %f690, %f693;
+ ld.global.f32 %f695, [lightColor+8];
+ mul.f32 %f696, %f690, %f695;
+ mul.f32 %f97, %f215, %f692;
+ mul.f32 %f98, %f216, %f694;
+ mul.f32 %f99, %f217, %f696;
+ ld.global.u32 %r122, [additive];
+ setp.eq.s32 %p102, %r122, 0;
+ mov.f32 %f688, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f688;}
+
+ // inline asm
+ @%p102 bra BB0_74;
+
+ mov.u64 %rd72, image_RNM0;
+ cvta.global.u64 %rd61, %rd72;
+ mov.u32 %r126, 8;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r24, %r126, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs46, %rs47, %rs48, %rs49}, [%rd60];
+ // inline asm
+ { cvt.f32.f16 %f697, %rs46;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f698, %rs47;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f699, %rs48;}
+
+ // inline asm
+ // inline asm
+ call (%rd66), _rt_buffer_get_64, (%rd61, %r24, %r126, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f700, %f97, %f697;
+ add.f32 %f701, %f98, %f698;
+ add.f32 %f702, %f99, %f699;
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f702;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f701;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f700;}
+
+ // inline asm
+ st.v4.u16 [%rd66], {%rs43, %rs44, %rs45, %rs39};
+ bra.uni BB0_75;
+
+BB0_74:
+ mov.u64 %rd79, image_RNM0;
+ cvta.global.u64 %rd74, %rd79;
+ mov.u32 %r128, 8;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r24, %r128, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f99;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f98;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f97;}
+
+ // inline asm
+ st.v4.u16 [%rd73], {%rs50, %rs51, %rs52, %rs39};
+
+BB0_75:
+ fma.rn.f32 %f100, %f10, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f101, %f11, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f102, %f12, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r129, [additive];
+ setp.eq.s32 %p103, %r129, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f688;}
+
+ // inline asm
+ @%p103 bra BB0_77;
+
+ mov.u64 %rd92, image_RNM1;
+ cvta.global.u64 %rd81, %rd92;
+ mov.u32 %r133, 8;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r24, %r133, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs60, %rs61, %rs62, %rs63}, [%rd80];
+ // inline asm
+ { cvt.f32.f16 %f707, %rs60;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f708, %rs61;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f709, %rs62;}
+
+ // inline asm
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd81, %r24, %r133, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f710, %f100, %f707;
+ add.f32 %f711, %f100, %f708;
+ add.f32 %f712, %f100, %f709;
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f712;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f711;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f710;}
+
+ // inline asm
+ st.v4.u16 [%rd86], {%rs57, %rs58, %rs59, %rs53};
+ bra.uni BB0_78;
+
+BB0_77:
+ mov.u64 %rd99, image_RNM1;
+ cvta.global.u64 %rd94, %rd99;
+ mov.u32 %r135, 8;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd94, %r24, %r135, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f100;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs64, %rs64, %rs64, %rs53};
+
+BB0_78:
+ ld.global.u32 %r136, [additive];
+ setp.eq.s32 %p104, %r136, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f688;}
+
+ // inline asm
+ @%p104 bra BB0_80;
+
+ mov.u64 %rd112, image_RNM2;
+ cvta.global.u64 %rd101, %rd112;
+ mov.u32 %r140, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r24, %r140, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs72, %rs73, %rs74, %rs75}, [%rd100];
+ // inline asm
+ { cvt.f32.f16 %f715, %rs72;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f716, %rs73;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f717, %rs74;}
+
+ // inline asm
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd101, %r24, %r140, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f718, %f101, %f715;
+ add.f32 %f719, %f101, %f716;
+ add.f32 %f720, %f101, %f717;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f720;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f719;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f718;}
+
+ // inline asm
+ st.v4.u16 [%rd106], {%rs69, %rs70, %rs71, %rs65};
+ bra.uni BB0_81;
+
+BB0_80:
+ mov.u64 %rd119, image_RNM2;
+ cvta.global.u64 %rd114, %rd119;
+ mov.u32 %r142, 8;
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd114, %r24, %r142, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f101;}
+
+ // inline asm
+ st.v4.u16 [%rd113], {%rs76, %rs76, %rs76, %rs65};
+
+BB0_81:
+ ld.global.u32 %r143, [additive];
+ setp.eq.s32 %p105, %r143, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f688;}
+
+ // inline asm
+ @%p105 bra BB0_83;
+
+ mov.u64 %rd132, image_RNM3;
+ cvta.global.u64 %rd121, %rd132;
+ mov.u32 %r147, 8;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd121, %r24, %r147, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs84, %rs85, %rs86, %rs87}, [%rd120];
+ // inline asm
+ { cvt.f32.f16 %f723, %rs84;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f724, %rs85;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f725, %rs86;}
+
+ // inline asm
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd121, %r24, %r147, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f726, %f102, %f723;
+ add.f32 %f727, %f102, %f724;
+ add.f32 %f728, %f102, %f725;
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f728;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f727;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f726;}
+
+ // inline asm
+ st.v4.u16 [%rd126], {%rs81, %rs82, %rs83, %rs77};
+ bra.uni BB0_124;
+
+BB0_83:
+ mov.u64 %rd139, image_RNM3;
+ cvta.global.u64 %rd134, %rd139;
+ mov.u32 %r149, 8;
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd134, %r24, %r149, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f102;}
+
+ // inline asm
+ st.v4.u16 [%rd133], {%rs88, %rs88, %rs88, %rs77};
+
+BB0_124:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightProbeSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightProbeSH.ptx.meta
new file mode 100644
index 00000000..03b82f85
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightProbeSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 191b96419a3effe42b6fde96d15370b5
+timeCreated: 1551525094
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightRNM.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightRNM.ptx
new file mode 100644
index 00000000..cde3bc7e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightRNM.ptx
@@ -0,0 +1,2374 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 uvtangent[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .u32 lightCubemap;
+.global .align 4 .b8 lightMatrix[36];
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12lightCubemapE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightMatrixE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12lightCubemapE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename11lightMatrixE[10] = {77, 97, 116, 114, 105, 120, 51, 120, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12lightCubemapE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightMatrixE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12lightCubemapE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightMatrixE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12lightCubemapE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightMatrixE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<128>;
+ .reg .b16 %rs<213>;
+ .reg .f32 %f<1072>;
+ .reg .b32 %r<251>;
+ .reg .b64 %rd<334>;
+
+
+ mov.u64 %rd333, __local_depot0;
+ cvta.local.u64 %SP, %rd333;
+ ld.global.v2.u32 {%r33, %r34}, [pixelID];
+ cvt.u64.u32 %rd16, %r33;
+ cvt.u64.u32 %rd17, %r34;
+ mov.u64 %rd20, uvnormal;
+ cvta.global.u64 %rd15, %rd20;
+ mov.u32 %r31, 2;
+ mov.u32 %r32, 4;
+ mov.u64 %rd19, 0;
+ // inline asm
+ call (%rd14), _rt_buffer_get_64, (%rd15, %r31, %r32, %rd16, %rd17, %rd19, %rd19);
+ // inline asm
+ ld.u32 %r1, [%rd14];
+ shr.u32 %r37, %r1, 16;
+ cvt.u16.u32 %rs1, %r37;
+ and.b16 %rs10, %rs1, 255;
+ cvt.u16.u32 %rs11, %r1;
+ or.b16 %rs12, %rs11, %rs10;
+ setp.eq.s16 %p6, %rs12, 0;
+ mov.f32 %f1042, 0f00000000;
+ mov.f32 %f1043, %f1042;
+ mov.f32 %f1044, %f1042;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs13, [%rd14+1];
+ and.b16 %rs15, %rs11, 255;
+ cvt.rn.f32.u16 %f139, %rs15;
+ div.rn.f32 %f140, %f139, 0f437F0000;
+ fma.rn.f32 %f141, %f140, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f142, %rs13;
+ div.rn.f32 %f143, %f142, 0f437F0000;
+ fma.rn.f32 %f144, %f143, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f145, %rs10;
+ div.rn.f32 %f146, %f145, 0f437F0000;
+ fma.rn.f32 %f147, %f146, 0f40000000, 0fBF800000;
+ mul.f32 %f148, %f144, %f144;
+ fma.rn.f32 %f149, %f141, %f141, %f148;
+ fma.rn.f32 %f150, %f147, %f147, %f149;
+ sqrt.rn.f32 %f151, %f150;
+ rcp.rn.f32 %f152, %f151;
+ mul.f32 %f1042, %f141, %f152;
+ mul.f32 %f1043, %f144, %f152;
+ mul.f32 %f1044, %f147, %f152;
+
+BB0_2:
+ ld.global.v2.u32 {%r38, %r39}, [pixelID];
+ ld.global.v2.u32 {%r41, %r42}, [tileInfo];
+ add.s32 %r2, %r38, %r41;
+ add.s32 %r3, %r39, %r42;
+ setp.eq.f32 %p7, %f1043, 0f00000000;
+ setp.eq.f32 %p8, %f1042, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f1044, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_104;
+ bra.uni BB0_3;
+
+BB0_104:
+ ld.global.u32 %r250, [imageEnabled];
+ and.b32 %r203, %r250, 1;
+ setp.eq.b32 %p121, %r203, 1;
+ @!%p121 bra BB0_106;
+ bra.uni BB0_105;
+
+BB0_105:
+ cvt.u64.u32 %rd241, %r2;
+ cvt.u64.u32 %rd242, %r3;
+ mov.u64 %rd245, image;
+ cvta.global.u64 %rd240, %rd245;
+ // inline asm
+ call (%rd239), _rt_buffer_get_64, (%rd240, %r31, %r32, %rd241, %rd242, %rd19, %rd19);
+ // inline asm
+ mov.u16 %rs158, 0;
+ st.v4.u8 [%rd239], {%rs158, %rs158, %rs158, %rs158};
+ ld.global.u32 %r250, [imageEnabled];
+
+BB0_106:
+ and.b32 %r206, %r250, 8;
+ setp.eq.s32 %p122, %r206, 0;
+ @%p122 bra BB0_108;
+
+ cvt.u64.u32 %rd249, %r3;
+ cvt.u64.u32 %rd248, %r2;
+ mov.u64 %rd252, image_Mask;
+ cvta.global.u64 %rd247, %rd252;
+ // inline asm
+ call (%rd246), _rt_buffer_get_64, (%rd247, %r31, %r31, %rd248, %rd249, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f946, 0f00000000;
+ cvt.rzi.u32.f32 %r209, %f946;
+ cvt.u16.u32 %rs159, %r209;
+ mov.u16 %rs160, 0;
+ st.v2.u8 [%rd246], {%rs159, %rs160};
+ ld.global.u32 %r250, [imageEnabled];
+
+BB0_108:
+ cvt.u64.u32 %rd12, %r2;
+ cvt.u64.u32 %rd13, %r3;
+ and.b32 %r210, %r250, 4;
+ setp.eq.s32 %p123, %r210, 0;
+ @%p123 bra BB0_112;
+
+ ld.global.u32 %r211, [additive];
+ setp.eq.s32 %p124, %r211, 0;
+ @%p124 bra BB0_111;
+
+ mov.u64 %rd265, image_HDR;
+ cvta.global.u64 %rd254, %rd265;
+ mov.u32 %r215, 8;
+ // inline asm
+ call (%rd253), _rt_buffer_get_64, (%rd254, %r31, %r215, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs167, %rs168, %rs169, %rs170}, [%rd253];
+ // inline asm
+ { cvt.f32.f16 %f947, %rs167;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f948, %rs168;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f949, %rs169;}
+
+ // inline asm
+ // inline asm
+ call (%rd259), _rt_buffer_get_64, (%rd254, %r31, %r215, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ add.f32 %f950, %f947, 0f00000000;
+ add.f32 %f951, %f948, 0f00000000;
+ add.f32 %f952, %f949, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs166, %f952;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs165, %f951;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs164, %f950;}
+
+ // inline asm
+ mov.u16 %rs171, 0;
+ st.v4.u16 [%rd259], {%rs164, %rs165, %rs166, %rs171};
+ bra.uni BB0_112;
+
+BB0_3:
+ ld.global.v2.u32 {%r48, %r49}, [pixelID];
+ cvt.u64.u32 %rd23, %r48;
+ cvt.u64.u32 %rd24, %r49;
+ mov.u64 %rd27, uvpos;
+ cvta.global.u64 %rd22, %rd27;
+ mov.u32 %r47, 12;
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd22, %r31, %r47, %rd23, %rd24, %rd19, %rd19);
+ // inline asm
+ ld.global.f32 %f155, [lightPos];
+ ld.f32 %f9, [%rd21+8];
+ ld.f32 %f8, [%rd21+4];
+ ld.f32 %f7, [%rd21];
+ sub.f32 %f156, %f155, %f7;
+ ld.global.f32 %f157, [lightPos+4];
+ sub.f32 %f158, %f157, %f8;
+ ld.global.f32 %f159, [lightPos+8];
+ sub.f32 %f160, %f159, %f9;
+ mul.f32 %f161, %f158, %f158;
+ fma.rn.f32 %f162, %f156, %f156, %f161;
+ fma.rn.f32 %f163, %f160, %f160, %f162;
+ sqrt.rn.f32 %f164, %f163;
+ rcp.rn.f32 %f165, %f164;
+ mul.f32 %f10, %f156, %f165;
+ mul.f32 %f11, %f158, %f165;
+ mul.f32 %f12, %f160, %f165;
+ ld.global.f32 %f166, [lightFalloffFakeDistanceMult];
+ mul.f32 %f13, %f164, %f166;
+ ld.global.f32 %f167, [lightInvCutoff];
+ mul.f32 %f14, %f164, %f167;
+ mov.f32 %f171, 0f40800000;
+ abs.f32 %f16, %f14;
+ setp.lt.f32 %p12, %f16, 0f00800000;
+ mul.f32 %f173, %f16, 0f4B800000;
+ selp.f32 %f174, 0fC3170000, 0fC2FE0000, %p12;
+ selp.f32 %f175, %f173, %f16, %p12;
+ mov.b32 %r52, %f175;
+ and.b32 %r53, %r52, 8388607;
+ or.b32 %r54, %r53, 1065353216;
+ mov.b32 %f176, %r54;
+ shr.u32 %r55, %r52, 23;
+ cvt.rn.f32.u32 %f177, %r55;
+ add.f32 %f178, %f174, %f177;
+ setp.gt.f32 %p13, %f176, 0f3FB504F3;
+ mul.f32 %f179, %f176, 0f3F000000;
+ add.f32 %f180, %f178, 0f3F800000;
+ selp.f32 %f181, %f179, %f176, %p13;
+ selp.f32 %f182, %f180, %f178, %p13;
+ add.f32 %f183, %f181, 0fBF800000;
+ add.f32 %f154, %f181, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f153,%f154;
+ // inline asm
+ add.f32 %f184, %f183, %f183;
+ mul.f32 %f185, %f153, %f184;
+ mul.f32 %f186, %f185, %f185;
+ mov.f32 %f187, 0f3C4CAF63;
+ mov.f32 %f188, 0f3B18F0FE;
+ fma.rn.f32 %f189, %f188, %f186, %f187;
+ mov.f32 %f190, 0f3DAAAABD;
+ fma.rn.f32 %f191, %f189, %f186, %f190;
+ mul.rn.f32 %f192, %f191, %f186;
+ mul.rn.f32 %f193, %f192, %f185;
+ sub.f32 %f194, %f183, %f185;
+ neg.f32 %f195, %f185;
+ add.f32 %f196, %f194, %f194;
+ fma.rn.f32 %f197, %f195, %f183, %f196;
+ mul.rn.f32 %f198, %f153, %f197;
+ add.f32 %f199, %f193, %f185;
+ sub.f32 %f200, %f185, %f199;
+ add.f32 %f201, %f193, %f200;
+ add.f32 %f202, %f198, %f201;
+ add.f32 %f203, %f199, %f202;
+ sub.f32 %f204, %f199, %f203;
+ add.f32 %f205, %f202, %f204;
+ mov.f32 %f206, 0f3F317200;
+ mul.rn.f32 %f207, %f182, %f206;
+ mov.f32 %f208, 0f35BFBE8E;
+ mul.rn.f32 %f209, %f182, %f208;
+ add.f32 %f210, %f207, %f203;
+ sub.f32 %f211, %f207, %f210;
+ add.f32 %f212, %f203, %f211;
+ add.f32 %f213, %f205, %f212;
+ add.f32 %f214, %f209, %f213;
+ add.f32 %f215, %f210, %f214;
+ sub.f32 %f216, %f210, %f215;
+ add.f32 %f217, %f214, %f216;
+ mul.rn.f32 %f218, %f171, %f215;
+ neg.f32 %f219, %f218;
+ fma.rn.f32 %f220, %f171, %f215, %f219;
+ fma.rn.f32 %f221, %f171, %f217, %f220;
+ mov.f32 %f222, 0f00000000;
+ fma.rn.f32 %f223, %f222, %f215, %f221;
+ add.rn.f32 %f224, %f218, %f223;
+ neg.f32 %f225, %f224;
+ add.rn.f32 %f226, %f218, %f225;
+ add.rn.f32 %f227, %f226, %f223;
+ mov.b32 %r56, %f224;
+ setp.eq.s32 %p14, %r56, 1118925336;
+ add.s32 %r57, %r56, -1;
+ mov.b32 %f228, %r57;
+ add.f32 %f229, %f227, 0f37000000;
+ selp.f32 %f230, %f228, %f224, %p14;
+ selp.f32 %f17, %f229, %f227, %p14;
+ mul.f32 %f231, %f230, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f232, %f231;
+ mov.f32 %f233, 0fBF317200;
+ fma.rn.f32 %f234, %f232, %f233, %f230;
+ mov.f32 %f235, 0fB5BFBE8E;
+ fma.rn.f32 %f236, %f232, %f235, %f234;
+ mul.f32 %f237, %f236, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f238, %f237;
+ add.f32 %f239, %f232, 0f00000000;
+ ex2.approx.f32 %f240, %f239;
+ mul.f32 %f241, %f238, %f240;
+ setp.lt.f32 %p15, %f230, 0fC2D20000;
+ selp.f32 %f242, 0f00000000, %f241, %p15;
+ setp.gt.f32 %p16, %f230, 0f42D20000;
+ selp.f32 %f1045, 0f7F800000, %f242, %p16;
+ setp.eq.f32 %p17, %f1045, 0f7F800000;
+ @%p17 bra BB0_5;
+
+ fma.rn.f32 %f1045, %f1045, %f17, %f1045;
+
+BB0_5:
+ mov.f32 %f980, 0f40000000;
+ cvt.rzi.f32.f32 %f979, %f980;
+ add.f32 %f978, %f979, %f979;
+ mov.f32 %f977, 0f40800000;
+ sub.f32 %f976, %f977, %f978;
+ abs.f32 %f975, %f976;
+ setp.lt.f32 %p18, %f14, 0f00000000;
+ setp.eq.f32 %p19, %f975, 0f3F800000;
+ and.pred %p1, %p18, %p19;
+ mov.b32 %r58, %f1045;
+ xor.b32 %r59, %r58, -2147483648;
+ mov.b32 %f243, %r59;
+ selp.f32 %f1047, %f243, %f1045, %p1;
+ setp.eq.f32 %p20, %f14, 0f00000000;
+ @%p20 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f246, %f14, %f14;
+ selp.f32 %f1047, %f246, 0f00000000, %p19;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p21, %f14, 0f00000000;
+ @%p21 bra BB0_9;
+
+ mov.f32 %f1013, 0f40800000;
+ cvt.rzi.f32.f32 %f245, %f1013;
+ setp.neu.f32 %p22, %f245, 0f40800000;
+ selp.f32 %f1047, 0f7FFFFFFF, %f1047, %p22;
+
+BB0_9:
+ abs.f32 %f981, %f14;
+ add.f32 %f247, %f981, 0f40800000;
+ mov.b32 %r60, %f247;
+ setp.lt.s32 %p24, %r60, 2139095040;
+ @%p24 bra BB0_14;
+
+ abs.f32 %f1011, %f14;
+ setp.gtu.f32 %p25, %f1011, 0f7F800000;
+ @%p25 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f1047, %f14, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f1012, %f14;
+ setp.neu.f32 %p26, %f1012, 0f7F800000;
+ @%p26 bra BB0_14;
+
+ selp.f32 %f1047, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ mov.f32 %f1050, 0f3F800000;
+ sub.f32 %f256, %f1050, %f1047;
+ setp.eq.f32 %p27, %f14, 0f3F800000;
+ selp.f32 %f257, 0f00000000, %f256, %p27;
+ cvt.sat.f32.f32 %f258, %f257;
+ ld.global.f32 %f259, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f260, %f13, %f13, %f259;
+ div.rn.f32 %f28, %f258, %f260;
+ mul.f32 %f261, %f1043, %f11;
+ fma.rn.f32 %f262, %f1042, %f10, %f261;
+ fma.rn.f32 %f29, %f1044, %f12, %f262;
+ ld.global.u32 %r64, [imageEnabled];
+ and.b32 %r65, %r64, 32;
+ ld.global.u32 %r66, [ignoreNormal];
+ or.b32 %r4, %r65, %r66;
+ ld.global.f32 %f263, [lightMatrix];
+ fma.rn.f32 %f264, %f263, %f10, 0f00000000;
+ ld.global.f32 %f265, [lightMatrix+4];
+ fma.rn.f32 %f266, %f265, %f11, %f264;
+ ld.global.f32 %f267, [lightMatrix+8];
+ fma.rn.f32 %f254, %f267, %f12, %f266;
+ ld.global.f32 %f268, [lightMatrix+12];
+ fma.rn.f32 %f269, %f268, %f10, 0f00000000;
+ ld.global.f32 %f270, [lightMatrix+16];
+ fma.rn.f32 %f271, %f270, %f11, %f269;
+ ld.global.f32 %f272, [lightMatrix+20];
+ fma.rn.f32 %f253, %f272, %f12, %f271;
+ ld.global.f32 %f273, [lightMatrix+24];
+ fma.rn.f32 %f274, %f273, %f10, 0f00000000;
+ ld.global.f32 %f275, [lightMatrix+28];
+ fma.rn.f32 %f276, %f275, %f11, %f274;
+ ld.global.f32 %f277, [lightMatrix+32];
+ fma.rn.f32 %f252, %f277, %f12, %f276;
+ ld.global.u32 %r61, [lightCubemap];
+ mov.u32 %r62, 6;
+ mov.u32 %r243, 0;
+ // inline asm
+ call (%f248, %f249, %f250, %f251), _rt_texture_get_base_id, (%r61, %r62, %f252, %f253, %f254, %r243);
+ // inline asm
+ max.f32 %f278, %f248, %f249;
+ max.f32 %f279, %f278, %f250;
+ mul.f32 %f280, %f28, %f279;
+ ld.global.f32 %f281, [lightColor+4];
+ ld.global.f32 %f282, [lightColor];
+ max.f32 %f283, %f282, %f281;
+ ld.global.f32 %f284, [lightColor+8];
+ max.f32 %f285, %f283, %f284;
+ mul.f32 %f286, %f280, %f285;
+ setp.lt.f32 %p28, %f286, 0f3727C5AC;
+ @%p28 bra BB0_87;
+ bra.uni BB0_15;
+
+BB0_87:
+ ld.global.u32 %r248, [imageEnabled];
+ and.b32 %r167, %r248, 1;
+ setp.eq.b32 %p114, %r167, 1;
+ @!%p114 bra BB0_89;
+ bra.uni BB0_88;
+
+BB0_88:
+ cvt.u64.u32 %rd147, %r2;
+ cvt.u64.u32 %rd148, %r3;
+ mov.u64 %rd151, image;
+ cvta.global.u64 %rd146, %rd151;
+ // inline asm
+ call (%rd145), _rt_buffer_get_64, (%rd146, %r31, %r32, %rd147, %rd148, %rd19, %rd19);
+ // inline asm
+ mov.u16 %rs106, 1;
+ mov.u16 %rs107, 0;
+ st.v4.u8 [%rd145], {%rs107, %rs107, %rs107, %rs106};
+ ld.global.u32 %r248, [imageEnabled];
+
+BB0_89:
+ and.b32 %r170, %r248, 8;
+ setp.eq.s32 %p115, %r170, 0;
+ @%p115 bra BB0_91;
+
+ cvt.u64.u32 %rd155, %r3;
+ cvt.u64.u32 %rd154, %r2;
+ mov.u64 %rd158, image_Mask;
+ cvta.global.u64 %rd153, %rd158;
+ // inline asm
+ call (%rd152), _rt_buffer_get_64, (%rd153, %r31, %r31, %rd154, %rd155, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f911, 0f00000000;
+ cvt.rzi.u32.f32 %r173, %f911;
+ cvt.u16.u32 %rs108, %r173;
+ mov.u16 %rs109, 255;
+ st.v2.u8 [%rd152], {%rs108, %rs109};
+ ld.global.u32 %r248, [imageEnabled];
+
+BB0_91:
+ cvt.u64.u32 %rd10, %r2;
+ cvt.u64.u32 %rd11, %r3;
+ and.b32 %r174, %r248, 4;
+ setp.eq.s32 %p116, %r174, 0;
+ @%p116 bra BB0_95;
+
+ ld.global.u32 %r175, [additive];
+ setp.eq.s32 %p117, %r175, 0;
+ mov.f32 %f912, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f912;}
+
+ // inline asm
+ @%p117 bra BB0_94;
+
+ mov.u64 %rd171, image_HDR;
+ cvta.global.u64 %rd160, %rd171;
+ mov.u32 %r179, 8;
+ // inline asm
+ call (%rd159), _rt_buffer_get_64, (%rd160, %r31, %r179, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs117, %rs118, %rs119, %rs120}, [%rd159];
+ // inline asm
+ { cvt.f32.f16 %f913, %rs117;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f914, %rs118;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f915, %rs119;}
+
+ // inline asm
+ // inline asm
+ call (%rd165), _rt_buffer_get_64, (%rd160, %r31, %r179, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ add.f32 %f916, %f913, 0f00000000;
+ add.f32 %f917, %f914, 0f00000000;
+ add.f32 %f918, %f915, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f918;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs115, %f917;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs114, %f916;}
+
+ // inline asm
+ st.v4.u16 [%rd165], {%rs114, %rs115, %rs116, %rs110};
+ bra.uni BB0_95;
+
+BB0_15:
+ mov.f32 %f1049, 0f00000000;
+ mul.f32 %f288, %f7, 0f3456BF95;
+ abs.f32 %f289, %f1042;
+ div.rn.f32 %f290, %f288, %f289;
+ abs.f32 %f291, %f1043;
+ mul.f32 %f292, %f8, 0f3456BF95;
+ div.rn.f32 %f293, %f292, %f291;
+ abs.f32 %f294, %f1044;
+ mul.f32 %f295, %f9, 0f3456BF95;
+ div.rn.f32 %f296, %f295, %f294;
+ abs.f32 %f297, %f290;
+ abs.f32 %f298, %f293;
+ abs.f32 %f299, %f296;
+ mov.f32 %f300, 0f38D1B717;
+ max.f32 %f301, %f297, %f300;
+ max.f32 %f302, %f298, %f300;
+ max.f32 %f303, %f299, %f300;
+ fma.rn.f32 %f33, %f1042, %f301, %f7;
+ fma.rn.f32 %f34, %f1043, %f302, %f8;
+ fma.rn.f32 %f35, %f1044, %f303, %f9;
+ ld.global.u32 %r244, [samples];
+ setp.lt.s32 %p29, %r244, 1;
+ @%p29 bra BB0_18;
+
+ mul.f32 %f305, %f33, 0f3456BF95;
+ abs.f32 %f306, %f305;
+ mul.f32 %f307, %f34, 0f3456BF95;
+ abs.f32 %f308, %f307;
+ mul.f32 %f309, %f35, 0f3456BF95;
+ abs.f32 %f310, %f309;
+ max.f32 %f311, %f306, %f308;
+ max.f32 %f312, %f311, %f310;
+ max.f32 %f36, %f312, %f300;
+ mov.f32 %f1049, 0f00000000;
+
+BB0_17:
+ add.u64 %rd28, %SP, 0;
+ cvta.to.local.u64 %rd29, %rd28;
+ cvt.rn.f32.s32 %f322, %r243;
+ mul.f32 %f323, %f322, 0f3DD32618;
+ cvt.rmi.f32.f32 %f324, %f323;
+ sub.f32 %f325, %f323, %f324;
+ mul.f32 %f326, %f322, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f327, %f326;
+ sub.f32 %f328, %f326, %f327;
+ mul.f32 %f329, %f322, 0f3DC74539;
+ cvt.rmi.f32.f32 %f330, %f329;
+ sub.f32 %f331, %f329, %f330;
+ add.f32 %f332, %f328, 0f4199851F;
+ add.f32 %f333, %f331, 0f4199851F;
+ add.f32 %f334, %f325, 0f4199851F;
+ mul.f32 %f335, %f328, %f333;
+ fma.rn.f32 %f336, %f325, %f332, %f335;
+ fma.rn.f32 %f337, %f334, %f331, %f336;
+ add.f32 %f338, %f325, %f337;
+ add.f32 %f339, %f328, %f337;
+ add.f32 %f340, %f331, %f337;
+ add.f32 %f341, %f338, %f339;
+ mul.f32 %f342, %f340, %f341;
+ cvt.rmi.f32.f32 %f343, %f342;
+ sub.f32 %f344, %f342, %f343;
+ add.f32 %f345, %f338, %f340;
+ mul.f32 %f346, %f339, %f345;
+ cvt.rmi.f32.f32 %f347, %f346;
+ sub.f32 %f348, %f346, %f347;
+ add.f32 %f349, %f339, %f340;
+ mul.f32 %f350, %f338, %f349;
+ cvt.rmi.f32.f32 %f351, %f350;
+ sub.f32 %f352, %f350, %f351;
+ fma.rn.f32 %f353, %f344, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f354, %f348, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f355, %f352, 0f40000000, 0fBF800000;
+ ld.global.f32 %f356, [lightRadius];
+ ld.global.f32 %f357, [lightPos];
+ fma.rn.f32 %f358, %f356, %f353, %f357;
+ ld.global.f32 %f359, [lightPos+4];
+ fma.rn.f32 %f360, %f356, %f354, %f359;
+ ld.global.f32 %f361, [lightPos+8];
+ fma.rn.f32 %f362, %f356, %f355, %f361;
+ sub.f32 %f363, %f358, %f7;
+ sub.f32 %f364, %f360, %f8;
+ sub.f32 %f365, %f362, %f9;
+ mul.f32 %f366, %f364, %f364;
+ fma.rn.f32 %f367, %f363, %f363, %f366;
+ fma.rn.f32 %f368, %f365, %f365, %f367;
+ sqrt.rn.f32 %f321, %f368;
+ rcp.rn.f32 %f369, %f321;
+ mul.f32 %f317, %f369, %f363;
+ mul.f32 %f318, %f369, %f364;
+ mul.f32 %f319, %f369, %f365;
+ ld.global.u32 %r71, [imageEnabled];
+ and.b32 %r72, %r71, 32;
+ setp.eq.s32 %p30, %r72, 0;
+ selp.f32 %f370, 0f3F800000, 0f41200000, %p30;
+ mul.f32 %f320, %f370, %f36;
+ mov.u32 %r73, 1065353216;
+ st.local.u32 [%rd29], %r73;
+ ld.global.u32 %r68, [root];
+ mov.u32 %r69, 1;
+ // inline asm
+ call _rt_trace_64, (%r68, %f33, %f34, %f35, %f317, %f318, %f319, %r69, %f320, %f321, %rd28, %r32);
+ // inline asm
+ ld.local.f32 %f371, [%rd29];
+ add.f32 %f1049, %f1049, %f371;
+ ld.global.u32 %r244, [samples];
+ add.s32 %r243, %r243, 1;
+ setp.lt.s32 %p31, %r243, %r244;
+ @%p31 bra BB0_17;
+
+BB0_18:
+ setp.eq.s32 %p32, %r244, 0;
+ @%p32 bra BB0_20;
+
+ cvt.rn.f32.s32 %f373, %r244;
+ div.rn.f32 %f1050, %f1049, %f373;
+
+BB0_20:
+ setp.eq.s32 %p33, %r4, 0;
+ selp.f32 %f374, %f29, 0f3F800000, %p33;
+ cvt.sat.f32.f32 %f375, %f374;
+ mul.f32 %f376, %f28, %f375;
+ mul.f32 %f377, %f1050, %f376;
+ ld.global.f32 %f378, [lightColor];
+ mul.f32 %f379, %f378, %f377;
+ ld.global.f32 %f380, [lightColor+4];
+ mul.f32 %f381, %f380, %f377;
+ ld.global.f32 %f382, [lightColor+8];
+ mul.f32 %f383, %f377, %f382;
+ mul.f32 %f42, %f248, %f379;
+ mul.f32 %f43, %f249, %f381;
+ mul.f32 %f44, %f250, %f383;
+ ld.global.u32 %r246, [imageEnabled];
+ and.b32 %r74, %r246, 8;
+ setp.eq.s32 %p34, %r74, 0;
+ @%p34 bra BB0_33;
+
+ mov.f32 %f989, 0fB5BFBE8E;
+ mov.f32 %f988, 0fBF317200;
+ mov.f32 %f987, 0f35BFBE8E;
+ mov.f32 %f986, 0f3F317200;
+ mov.f32 %f985, 0f3DAAAABD;
+ mov.f32 %f984, 0f3C4CAF63;
+ mov.f32 %f983, 0f3B18F0FE;
+ cvt.u64.u32 %rd32, %r2;
+ cvt.u64.u32 %rd33, %r3;
+ mov.u64 %rd36, image_Mask;
+ cvta.global.u64 %rd31, %rd36;
+ // inline asm
+ call (%rd30), _rt_buffer_get_64, (%rd31, %r31, %r31, %rd32, %rd33, %rd19, %rd19);
+ // inline asm
+ abs.f32 %f46, %f1050;
+ setp.lt.f32 %p35, %f46, 0f00800000;
+ mul.f32 %f389, %f46, 0f4B800000;
+ selp.f32 %f390, 0fC3170000, 0fC2FE0000, %p35;
+ selp.f32 %f391, %f389, %f46, %p35;
+ mov.b32 %r77, %f391;
+ and.b32 %r78, %r77, 8388607;
+ or.b32 %r79, %r78, 1065353216;
+ mov.b32 %f392, %r79;
+ shr.u32 %r80, %r77, 23;
+ cvt.rn.f32.u32 %f393, %r80;
+ add.f32 %f394, %f390, %f393;
+ setp.gt.f32 %p36, %f392, 0f3FB504F3;
+ mul.f32 %f395, %f392, 0f3F000000;
+ add.f32 %f396, %f394, 0f3F800000;
+ selp.f32 %f397, %f395, %f392, %p36;
+ selp.f32 %f398, %f396, %f394, %p36;
+ add.f32 %f399, %f397, 0fBF800000;
+ add.f32 %f385, %f397, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f384,%f385;
+ // inline asm
+ add.f32 %f400, %f399, %f399;
+ mul.f32 %f401, %f384, %f400;
+ mul.f32 %f402, %f401, %f401;
+ fma.rn.f32 %f405, %f983, %f402, %f984;
+ fma.rn.f32 %f407, %f405, %f402, %f985;
+ mul.rn.f32 %f408, %f407, %f402;
+ mul.rn.f32 %f409, %f408, %f401;
+ sub.f32 %f410, %f399, %f401;
+ neg.f32 %f411, %f401;
+ add.f32 %f412, %f410, %f410;
+ fma.rn.f32 %f413, %f411, %f399, %f412;
+ mul.rn.f32 %f414, %f384, %f413;
+ add.f32 %f415, %f409, %f401;
+ sub.f32 %f416, %f401, %f415;
+ add.f32 %f417, %f409, %f416;
+ add.f32 %f418, %f414, %f417;
+ add.f32 %f419, %f415, %f418;
+ sub.f32 %f420, %f415, %f419;
+ add.f32 %f421, %f418, %f420;
+ mul.rn.f32 %f423, %f398, %f986;
+ mul.rn.f32 %f425, %f398, %f987;
+ add.f32 %f426, %f423, %f419;
+ sub.f32 %f427, %f423, %f426;
+ add.f32 %f428, %f419, %f427;
+ add.f32 %f429, %f421, %f428;
+ add.f32 %f430, %f425, %f429;
+ add.f32 %f431, %f426, %f430;
+ sub.f32 %f432, %f426, %f431;
+ add.f32 %f433, %f430, %f432;
+ mov.f32 %f434, 0f3EE8BA2E;
+ mul.rn.f32 %f435, %f434, %f431;
+ neg.f32 %f436, %f435;
+ fma.rn.f32 %f437, %f434, %f431, %f436;
+ fma.rn.f32 %f438, %f434, %f433, %f437;
+ mov.f32 %f439, 0f00000000;
+ fma.rn.f32 %f440, %f439, %f431, %f438;
+ add.rn.f32 %f441, %f435, %f440;
+ neg.f32 %f442, %f441;
+ add.rn.f32 %f443, %f435, %f442;
+ add.rn.f32 %f444, %f443, %f440;
+ mov.b32 %r81, %f441;
+ setp.eq.s32 %p37, %r81, 1118925336;
+ add.s32 %r82, %r81, -1;
+ mov.b32 %f445, %r82;
+ add.f32 %f446, %f444, 0f37000000;
+ selp.f32 %f447, %f445, %f441, %p37;
+ selp.f32 %f47, %f446, %f444, %p37;
+ mul.f32 %f448, %f447, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f449, %f448;
+ fma.rn.f32 %f451, %f449, %f988, %f447;
+ fma.rn.f32 %f453, %f449, %f989, %f451;
+ mul.f32 %f454, %f453, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f455, %f454;
+ add.f32 %f456, %f449, 0f00000000;
+ ex2.approx.f32 %f457, %f456;
+ mul.f32 %f458, %f455, %f457;
+ setp.lt.f32 %p38, %f447, 0fC2D20000;
+ selp.f32 %f459, 0f00000000, %f458, %p38;
+ setp.gt.f32 %p39, %f447, 0f42D20000;
+ selp.f32 %f1051, 0f7F800000, %f459, %p39;
+ setp.eq.f32 %p40, %f1051, 0f7F800000;
+ @%p40 bra BB0_23;
+
+ fma.rn.f32 %f1051, %f1051, %f47, %f1051;
+
+BB0_23:
+ mov.f32 %f1017, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f1016, %f1017;
+ fma.rn.f32 %f1015, %f1016, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f1014, %f1015;
+ setp.lt.f32 %p41, %f1050, 0f00000000;
+ setp.eq.f32 %p42, %f1014, 0f3F800000;
+ and.pred %p2, %p41, %p42;
+ mov.b32 %r83, %f1051;
+ xor.b32 %r84, %r83, -2147483648;
+ mov.b32 %f460, %r84;
+ selp.f32 %f1053, %f460, %f1051, %p2;
+ setp.eq.f32 %p43, %f1050, 0f00000000;
+ @%p43 bra BB0_26;
+ bra.uni BB0_24;
+
+BB0_26:
+ add.f32 %f463, %f1050, %f1050;
+ selp.f32 %f1053, %f463, 0f00000000, %p42;
+ bra.uni BB0_27;
+
+BB0_111:
+ mov.u64 %rd272, image_HDR;
+ cvta.global.u64 %rd267, %rd272;
+ mov.u32 %r217, 8;
+ // inline asm
+ call (%rd266), _rt_buffer_get_64, (%rd267, %r31, %r217, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f953, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs172, %f953;}
+
+ // inline asm
+ mov.u16 %rs173, 0;
+ st.v4.u16 [%rd266], {%rs172, %rs172, %rs172, %rs173};
+
+BB0_112:
+ ld.global.u32 %r218, [additive];
+ setp.eq.s32 %p125, %r218, 0;
+ @%p125 bra BB0_114;
+
+ mov.u64 %rd285, image_RNM0;
+ cvta.global.u64 %rd274, %rd285;
+ mov.u32 %r222, 8;
+ // inline asm
+ call (%rd273), _rt_buffer_get_64, (%rd274, %r31, %r222, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs180, %rs181, %rs182, %rs183}, [%rd273];
+ // inline asm
+ { cvt.f32.f16 %f954, %rs180;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f955, %rs181;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f956, %rs182;}
+
+ // inline asm
+ // inline asm
+ call (%rd279), _rt_buffer_get_64, (%rd274, %r31, %r222, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ add.f32 %f957, %f954, 0f00000000;
+ add.f32 %f958, %f955, 0f00000000;
+ add.f32 %f959, %f956, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs179, %f959;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs178, %f958;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs177, %f957;}
+
+ // inline asm
+ mov.u16 %rs184, 0;
+ st.v4.u16 [%rd279], {%rs177, %rs178, %rs179, %rs184};
+ bra.uni BB0_115;
+
+BB0_114:
+ mov.u64 %rd292, image_RNM0;
+ cvta.global.u64 %rd287, %rd292;
+ mov.u32 %r224, 8;
+ // inline asm
+ call (%rd286), _rt_buffer_get_64, (%rd287, %r31, %r224, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f960, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs185, %f960;}
+
+ // inline asm
+ mov.u16 %rs186, 0;
+ st.v4.u16 [%rd286], {%rs185, %rs185, %rs185, %rs186};
+
+BB0_115:
+ ld.global.u32 %r225, [additive];
+ setp.eq.s32 %p126, %r225, 0;
+ @%p126 bra BB0_117;
+
+ mov.u64 %rd305, image_RNM1;
+ cvta.global.u64 %rd294, %rd305;
+ mov.u32 %r229, 8;
+ // inline asm
+ call (%rd293), _rt_buffer_get_64, (%rd294, %r31, %r229, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs193, %rs194, %rs195, %rs196}, [%rd293];
+ // inline asm
+ { cvt.f32.f16 %f961, %rs193;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f962, %rs194;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f963, %rs195;}
+
+ // inline asm
+ // inline asm
+ call (%rd299), _rt_buffer_get_64, (%rd294, %r31, %r229, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ add.f32 %f964, %f961, 0f00000000;
+ add.f32 %f965, %f962, 0f00000000;
+ add.f32 %f966, %f963, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs192, %f966;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs191, %f965;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs190, %f964;}
+
+ // inline asm
+ mov.u16 %rs197, 0;
+ st.v4.u16 [%rd299], {%rs190, %rs191, %rs192, %rs197};
+ bra.uni BB0_118;
+
+BB0_117:
+ mov.u64 %rd312, image_RNM1;
+ cvta.global.u64 %rd307, %rd312;
+ mov.u32 %r231, 8;
+ // inline asm
+ call (%rd306), _rt_buffer_get_64, (%rd307, %r31, %r231, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f967, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs198, %f967;}
+
+ // inline asm
+ mov.u16 %rs199, 0;
+ st.v4.u16 [%rd306], {%rs198, %rs198, %rs198, %rs199};
+
+BB0_118:
+ ld.global.u32 %r232, [additive];
+ setp.eq.s32 %p127, %r232, 0;
+ @%p127 bra BB0_120;
+
+ mov.u64 %rd325, image_RNM2;
+ cvta.global.u64 %rd314, %rd325;
+ mov.u32 %r236, 8;
+ // inline asm
+ call (%rd313), _rt_buffer_get_64, (%rd314, %r31, %r236, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs206, %rs207, %rs208, %rs209}, [%rd313];
+ // inline asm
+ { cvt.f32.f16 %f968, %rs206;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f969, %rs207;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f970, %rs208;}
+
+ // inline asm
+ // inline asm
+ call (%rd319), _rt_buffer_get_64, (%rd314, %r31, %r236, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ add.f32 %f971, %f968, 0f00000000;
+ add.f32 %f972, %f969, 0f00000000;
+ add.f32 %f973, %f970, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs205, %f973;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs204, %f972;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs203, %f971;}
+
+ // inline asm
+ mov.u16 %rs210, 0;
+ st.v4.u16 [%rd319], {%rs203, %rs204, %rs205, %rs210};
+ bra.uni BB0_121;
+
+BB0_120:
+ mov.u64 %rd332, image_RNM2;
+ cvta.global.u64 %rd327, %rd332;
+ mov.u32 %r238, 8;
+ // inline asm
+ call (%rd326), _rt_buffer_get_64, (%rd327, %r31, %r238, %rd12, %rd13, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f974, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs211, %f974;}
+
+ // inline asm
+ mov.u16 %rs212, 0;
+ st.v4.u16 [%rd326], {%rs211, %rs211, %rs211, %rs212};
+ bra.uni BB0_121;
+
+BB0_94:
+ mov.u64 %rd178, image_HDR;
+ cvta.global.u64 %rd173, %rd178;
+ mov.u32 %r181, 8;
+ // inline asm
+ call (%rd172), _rt_buffer_get_64, (%rd173, %r31, %r181, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f919, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f919;}
+
+ // inline asm
+ st.v4.u16 [%rd172], {%rs121, %rs121, %rs121, %rs110};
+
+BB0_95:
+ ld.global.u32 %r182, [additive];
+ setp.eq.s32 %p118, %r182, 0;
+ mov.f32 %f920, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f920;}
+
+ // inline asm
+ @%p118 bra BB0_97;
+
+ mov.u64 %rd191, image_RNM0;
+ cvta.global.u64 %rd180, %rd191;
+ mov.u32 %r186, 8;
+ // inline asm
+ call (%rd179), _rt_buffer_get_64, (%rd180, %r31, %r186, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs129, %rs130, %rs131, %rs132}, [%rd179];
+ // inline asm
+ { cvt.f32.f16 %f921, %rs129;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f922, %rs130;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f923, %rs131;}
+
+ // inline asm
+ // inline asm
+ call (%rd185), _rt_buffer_get_64, (%rd180, %r31, %r186, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ add.f32 %f924, %f921, 0f00000000;
+ add.f32 %f925, %f922, 0f00000000;
+ add.f32 %f926, %f923, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs128, %f926;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs127, %f925;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs126, %f924;}
+
+ // inline asm
+ st.v4.u16 [%rd185], {%rs126, %rs127, %rs128, %rs122};
+ bra.uni BB0_98;
+
+BB0_97:
+ mov.u64 %rd198, image_RNM0;
+ cvta.global.u64 %rd193, %rd198;
+ mov.u32 %r188, 8;
+ // inline asm
+ call (%rd192), _rt_buffer_get_64, (%rd193, %r31, %r188, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f927, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f927;}
+
+ // inline asm
+ st.v4.u16 [%rd192], {%rs133, %rs133, %rs133, %rs122};
+
+BB0_98:
+ ld.global.u32 %r189, [additive];
+ setp.eq.s32 %p119, %r189, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f920;}
+
+ // inline asm
+ @%p119 bra BB0_100;
+
+ mov.u64 %rd211, image_RNM1;
+ cvta.global.u64 %rd200, %rd211;
+ mov.u32 %r193, 8;
+ // inline asm
+ call (%rd199), _rt_buffer_get_64, (%rd200, %r31, %r193, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs141, %rs142, %rs143, %rs144}, [%rd199];
+ // inline asm
+ { cvt.f32.f16 %f929, %rs141;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f930, %rs142;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f931, %rs143;}
+
+ // inline asm
+ // inline asm
+ call (%rd205), _rt_buffer_get_64, (%rd200, %r31, %r193, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ add.f32 %f932, %f929, 0f00000000;
+ add.f32 %f933, %f930, 0f00000000;
+ add.f32 %f934, %f931, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f934;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs139, %f933;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs138, %f932;}
+
+ // inline asm
+ st.v4.u16 [%rd205], {%rs138, %rs139, %rs140, %rs134};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd218, image_RNM1;
+ cvta.global.u64 %rd213, %rd218;
+ mov.u32 %r195, 8;
+ // inline asm
+ call (%rd212), _rt_buffer_get_64, (%rd213, %r31, %r195, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f935, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f935;}
+
+ // inline asm
+ st.v4.u16 [%rd212], {%rs145, %rs145, %rs145, %rs134};
+
+BB0_101:
+ ld.global.u32 %r196, [additive];
+ setp.eq.s32 %p120, %r196, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f920;}
+
+ // inline asm
+ @%p120 bra BB0_103;
+
+ mov.u64 %rd231, image_RNM2;
+ cvta.global.u64 %rd220, %rd231;
+ mov.u32 %r200, 8;
+ // inline asm
+ call (%rd219), _rt_buffer_get_64, (%rd220, %r31, %r200, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs153, %rs154, %rs155, %rs156}, [%rd219];
+ // inline asm
+ { cvt.f32.f16 %f937, %rs153;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f938, %rs154;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f939, %rs155;}
+
+ // inline asm
+ // inline asm
+ call (%rd225), _rt_buffer_get_64, (%rd220, %r31, %r200, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ add.f32 %f940, %f937, 0f00000000;
+ add.f32 %f941, %f938, 0f00000000;
+ add.f32 %f942, %f939, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f942;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs151, %f941;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f940;}
+
+ // inline asm
+ st.v4.u16 [%rd225], {%rs150, %rs151, %rs152, %rs146};
+ bra.uni BB0_121;
+
+BB0_103:
+ mov.u64 %rd238, image_RNM2;
+ cvta.global.u64 %rd233, %rd238;
+ mov.u32 %r202, 8;
+ // inline asm
+ call (%rd232), _rt_buffer_get_64, (%rd233, %r31, %r202, %rd10, %rd11, %rd19, %rd19);
+ // inline asm
+ mov.f32 %f943, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs157, %f943;}
+
+ // inline asm
+ st.v4.u16 [%rd232], {%rs157, %rs157, %rs157, %rs146};
+ bra.uni BB0_121;
+
+BB0_24:
+ setp.geu.f32 %p44, %f1050, 0f00000000;
+ @%p44 bra BB0_27;
+
+ mov.f32 %f1021, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f462, %f1021;
+ setp.neu.f32 %p45, %f462, 0f3EE8BA2E;
+ selp.f32 %f1053, 0f7FFFFFFF, %f1053, %p45;
+
+BB0_27:
+ abs.f32 %f1018, %f1050;
+ add.f32 %f464, %f1018, 0f3EE8BA2E;
+ mov.b32 %r85, %f464;
+ setp.lt.s32 %p47, %r85, 2139095040;
+ @%p47 bra BB0_32;
+
+ abs.f32 %f1019, %f1050;
+ setp.gtu.f32 %p48, %f1019, 0f7F800000;
+ @%p48 bra BB0_31;
+ bra.uni BB0_29;
+
+BB0_31:
+ add.f32 %f1053, %f1050, 0f3EE8BA2E;
+ bra.uni BB0_32;
+
+BB0_29:
+ abs.f32 %f1020, %f1050;
+ setp.neu.f32 %p49, %f1020, 0f7F800000;
+ @%p49 bra BB0_32;
+
+ selp.f32 %f1053, 0fFF800000, 0f7F800000, %p2;
+
+BB0_32:
+ mul.f32 %f465, %f1053, 0f437F0000;
+ setp.eq.f32 %p50, %f1050, 0f3F800000;
+ selp.f32 %f466, 0f437F0000, %f465, %p50;
+ cvt.rzi.u32.f32 %r86, %f466;
+ cvt.u16.u32 %rs17, %r86;
+ mov.u16 %rs18, 255;
+ st.v2.u8 [%rd30], {%rs17, %rs18};
+ ld.global.u32 %r246, [imageEnabled];
+
+BB0_33:
+ and.b32 %r87, %r246, 1;
+ setp.eq.b32 %p51, %r87, 1;
+ @!%p51 bra BB0_68;
+ bra.uni BB0_34;
+
+BB0_34:
+ mov.f32 %f996, 0fB5BFBE8E;
+ mov.f32 %f995, 0fBF317200;
+ mov.f32 %f994, 0f35BFBE8E;
+ mov.f32 %f993, 0f3F317200;
+ mov.f32 %f992, 0f3DAAAABD;
+ mov.f32 %f991, 0f3C4CAF63;
+ mov.f32 %f990, 0f3B18F0FE;
+ abs.f32 %f59, %f42;
+ setp.lt.f32 %p52, %f59, 0f00800000;
+ mul.f32 %f472, %f59, 0f4B800000;
+ selp.f32 %f473, 0fC3170000, 0fC2FE0000, %p52;
+ selp.f32 %f474, %f472, %f59, %p52;
+ mov.b32 %r88, %f474;
+ and.b32 %r89, %r88, 8388607;
+ or.b32 %r90, %r89, 1065353216;
+ mov.b32 %f475, %r90;
+ shr.u32 %r91, %r88, 23;
+ cvt.rn.f32.u32 %f476, %r91;
+ add.f32 %f477, %f473, %f476;
+ setp.gt.f32 %p53, %f475, 0f3FB504F3;
+ mul.f32 %f478, %f475, 0f3F000000;
+ add.f32 %f479, %f477, 0f3F800000;
+ selp.f32 %f480, %f478, %f475, %p53;
+ selp.f32 %f481, %f479, %f477, %p53;
+ add.f32 %f482, %f480, 0fBF800000;
+ add.f32 %f468, %f480, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f467,%f468;
+ // inline asm
+ add.f32 %f483, %f482, %f482;
+ mul.f32 %f484, %f467, %f483;
+ mul.f32 %f485, %f484, %f484;
+ fma.rn.f32 %f488, %f990, %f485, %f991;
+ fma.rn.f32 %f490, %f488, %f485, %f992;
+ mul.rn.f32 %f491, %f490, %f485;
+ mul.rn.f32 %f492, %f491, %f484;
+ sub.f32 %f493, %f482, %f484;
+ neg.f32 %f494, %f484;
+ add.f32 %f495, %f493, %f493;
+ fma.rn.f32 %f496, %f494, %f482, %f495;
+ mul.rn.f32 %f497, %f467, %f496;
+ add.f32 %f498, %f492, %f484;
+ sub.f32 %f499, %f484, %f498;
+ add.f32 %f500, %f492, %f499;
+ add.f32 %f501, %f497, %f500;
+ add.f32 %f502, %f498, %f501;
+ sub.f32 %f503, %f498, %f502;
+ add.f32 %f504, %f501, %f503;
+ mul.rn.f32 %f506, %f481, %f993;
+ mul.rn.f32 %f508, %f481, %f994;
+ add.f32 %f509, %f506, %f502;
+ sub.f32 %f510, %f506, %f509;
+ add.f32 %f511, %f502, %f510;
+ add.f32 %f512, %f504, %f511;
+ add.f32 %f513, %f508, %f512;
+ add.f32 %f514, %f509, %f513;
+ sub.f32 %f515, %f509, %f514;
+ add.f32 %f516, %f513, %f515;
+ mov.f32 %f517, 0f3EE66666;
+ mul.rn.f32 %f518, %f517, %f514;
+ neg.f32 %f519, %f518;
+ fma.rn.f32 %f520, %f517, %f514, %f519;
+ fma.rn.f32 %f521, %f517, %f516, %f520;
+ mov.f32 %f522, 0f00000000;
+ fma.rn.f32 %f523, %f522, %f514, %f521;
+ add.rn.f32 %f524, %f518, %f523;
+ neg.f32 %f525, %f524;
+ add.rn.f32 %f526, %f518, %f525;
+ add.rn.f32 %f527, %f526, %f523;
+ mov.b32 %r92, %f524;
+ setp.eq.s32 %p54, %r92, 1118925336;
+ add.s32 %r93, %r92, -1;
+ mov.b32 %f528, %r93;
+ add.f32 %f529, %f527, 0f37000000;
+ selp.f32 %f530, %f528, %f524, %p54;
+ selp.f32 %f60, %f529, %f527, %p54;
+ mul.f32 %f531, %f530, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f532, %f531;
+ fma.rn.f32 %f534, %f532, %f995, %f530;
+ fma.rn.f32 %f536, %f532, %f996, %f534;
+ mul.f32 %f537, %f536, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f538, %f537;
+ add.f32 %f539, %f532, 0f00000000;
+ ex2.approx.f32 %f540, %f539;
+ mul.f32 %f541, %f538, %f540;
+ setp.lt.f32 %p55, %f530, 0fC2D20000;
+ selp.f32 %f542, 0f00000000, %f541, %p55;
+ setp.gt.f32 %p56, %f530, 0f42D20000;
+ selp.f32 %f1054, 0f7F800000, %f542, %p56;
+ setp.eq.f32 %p57, %f1054, 0f7F800000;
+ @%p57 bra BB0_36;
+
+ fma.rn.f32 %f1054, %f1054, %f60, %f1054;
+
+BB0_36:
+ mov.f32 %f1025, 0f3E666666;
+ cvt.rzi.f32.f32 %f1024, %f1025;
+ fma.rn.f32 %f1023, %f1024, 0fC0000000, 0f3EE66666;
+ abs.f32 %f1022, %f1023;
+ setp.lt.f32 %p58, %f42, 0f00000000;
+ setp.eq.f32 %p59, %f1022, 0f3F800000;
+ and.pred %p3, %p58, %p59;
+ mov.b32 %r94, %f1054;
+ xor.b32 %r95, %r94, -2147483648;
+ mov.b32 %f543, %r95;
+ selp.f32 %f1056, %f543, %f1054, %p3;
+ setp.eq.f32 %p60, %f42, 0f00000000;
+ @%p60 bra BB0_39;
+ bra.uni BB0_37;
+
+BB0_39:
+ add.f32 %f546, %f42, %f42;
+ selp.f32 %f1056, %f546, 0f00000000, %p59;
+ bra.uni BB0_40;
+
+BB0_37:
+ setp.geu.f32 %p61, %f42, 0f00000000;
+ @%p61 bra BB0_40;
+
+ mov.f32 %f1035, 0f3EE66666;
+ cvt.rzi.f32.f32 %f545, %f1035;
+ setp.neu.f32 %p62, %f545, 0f3EE66666;
+ selp.f32 %f1056, 0f7FFFFFFF, %f1056, %p62;
+
+BB0_40:
+ abs.f32 %f1026, %f42;
+ add.f32 %f547, %f1026, 0f3EE66666;
+ mov.b32 %r96, %f547;
+ setp.lt.s32 %p64, %r96, 2139095040;
+ @%p64 bra BB0_45;
+
+ abs.f32 %f1033, %f42;
+ setp.gtu.f32 %p65, %f1033, 0f7F800000;
+ @%p65 bra BB0_44;
+ bra.uni BB0_42;
+
+BB0_44:
+ add.f32 %f1056, %f42, 0f3EE66666;
+ bra.uni BB0_45;
+
+BB0_42:
+ abs.f32 %f1034, %f42;
+ setp.neu.f32 %p66, %f1034, 0f7F800000;
+ @%p66 bra BB0_45;
+
+ selp.f32 %f1056, 0fFF800000, 0f7F800000, %p3;
+
+BB0_45:
+ mov.f32 %f1028, 0f00000000;
+ mov.f32 %f1027, 0f3EE66666;
+ mov.f32 %f1003, 0fB5BFBE8E;
+ mov.f32 %f1002, 0fBF317200;
+ mov.f32 %f1001, 0f35BFBE8E;
+ mov.f32 %f1000, 0f3F317200;
+ mov.f32 %f999, 0f3DAAAABD;
+ mov.f32 %f998, 0f3C4CAF63;
+ mov.f32 %f997, 0f3B18F0FE;
+ setp.eq.f32 %p67, %f42, 0f3F800000;
+ selp.f32 %f71, 0f3F800000, %f1056, %p67;
+ abs.f32 %f72, %f43;
+ setp.lt.f32 %p68, %f72, 0f00800000;
+ mul.f32 %f550, %f72, 0f4B800000;
+ selp.f32 %f551, 0fC3170000, 0fC2FE0000, %p68;
+ selp.f32 %f552, %f550, %f72, %p68;
+ mov.b32 %r97, %f552;
+ and.b32 %r98, %r97, 8388607;
+ or.b32 %r99, %r98, 1065353216;
+ mov.b32 %f553, %r99;
+ shr.u32 %r100, %r97, 23;
+ cvt.rn.f32.u32 %f554, %r100;
+ add.f32 %f555, %f551, %f554;
+ setp.gt.f32 %p69, %f553, 0f3FB504F3;
+ mul.f32 %f556, %f553, 0f3F000000;
+ add.f32 %f557, %f555, 0f3F800000;
+ selp.f32 %f558, %f556, %f553, %p69;
+ selp.f32 %f559, %f557, %f555, %p69;
+ add.f32 %f560, %f558, 0fBF800000;
+ add.f32 %f549, %f558, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f548,%f549;
+ // inline asm
+ add.f32 %f561, %f560, %f560;
+ mul.f32 %f562, %f548, %f561;
+ mul.f32 %f563, %f562, %f562;
+ fma.rn.f32 %f566, %f997, %f563, %f998;
+ fma.rn.f32 %f568, %f566, %f563, %f999;
+ mul.rn.f32 %f569, %f568, %f563;
+ mul.rn.f32 %f570, %f569, %f562;
+ sub.f32 %f571, %f560, %f562;
+ neg.f32 %f572, %f562;
+ add.f32 %f573, %f571, %f571;
+ fma.rn.f32 %f574, %f572, %f560, %f573;
+ mul.rn.f32 %f575, %f548, %f574;
+ add.f32 %f576, %f570, %f562;
+ sub.f32 %f577, %f562, %f576;
+ add.f32 %f578, %f570, %f577;
+ add.f32 %f579, %f575, %f578;
+ add.f32 %f580, %f576, %f579;
+ sub.f32 %f581, %f576, %f580;
+ add.f32 %f582, %f579, %f581;
+ mul.rn.f32 %f584, %f559, %f1000;
+ mul.rn.f32 %f586, %f559, %f1001;
+ add.f32 %f587, %f584, %f580;
+ sub.f32 %f588, %f584, %f587;
+ add.f32 %f589, %f580, %f588;
+ add.f32 %f590, %f582, %f589;
+ add.f32 %f591, %f586, %f590;
+ add.f32 %f592, %f587, %f591;
+ sub.f32 %f593, %f587, %f592;
+ add.f32 %f594, %f591, %f593;
+ mul.rn.f32 %f596, %f1027, %f592;
+ neg.f32 %f597, %f596;
+ fma.rn.f32 %f598, %f1027, %f592, %f597;
+ fma.rn.f32 %f599, %f1027, %f594, %f598;
+ fma.rn.f32 %f601, %f1028, %f592, %f599;
+ add.rn.f32 %f602, %f596, %f601;
+ neg.f32 %f603, %f602;
+ add.rn.f32 %f604, %f596, %f603;
+ add.rn.f32 %f605, %f604, %f601;
+ mov.b32 %r101, %f602;
+ setp.eq.s32 %p70, %r101, 1118925336;
+ add.s32 %r102, %r101, -1;
+ mov.b32 %f606, %r102;
+ add.f32 %f607, %f605, 0f37000000;
+ selp.f32 %f608, %f606, %f602, %p70;
+ selp.f32 %f73, %f607, %f605, %p70;
+ mul.f32 %f609, %f608, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f610, %f609;
+ fma.rn.f32 %f612, %f610, %f1002, %f608;
+ fma.rn.f32 %f614, %f610, %f1003, %f612;
+ mul.f32 %f615, %f614, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f616, %f615;
+ add.f32 %f617, %f610, 0f00000000;
+ ex2.approx.f32 %f618, %f617;
+ mul.f32 %f619, %f616, %f618;
+ setp.lt.f32 %p71, %f608, 0fC2D20000;
+ selp.f32 %f620, 0f00000000, %f619, %p71;
+ setp.gt.f32 %p72, %f608, 0f42D20000;
+ selp.f32 %f1057, 0f7F800000, %f620, %p72;
+ setp.eq.f32 %p73, %f1057, 0f7F800000;
+ @%p73 bra BB0_47;
+
+ fma.rn.f32 %f1057, %f1057, %f73, %f1057;
+
+BB0_47:
+ setp.lt.f32 %p74, %f43, 0f00000000;
+ and.pred %p4, %p74, %p59;
+ mov.b32 %r103, %f1057;
+ xor.b32 %r104, %r103, -2147483648;
+ mov.b32 %f621, %r104;
+ selp.f32 %f1059, %f621, %f1057, %p4;
+ setp.eq.f32 %p76, %f43, 0f00000000;
+ @%p76 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f624, %f43, %f43;
+ selp.f32 %f1059, %f624, 0f00000000, %p59;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p77, %f43, 0f00000000;
+ @%p77 bra BB0_51;
+
+ mov.f32 %f1032, 0f3EE66666;
+ cvt.rzi.f32.f32 %f623, %f1032;
+ setp.neu.f32 %p78, %f623, 0f3EE66666;
+ selp.f32 %f1059, 0f7FFFFFFF, %f1059, %p78;
+
+BB0_51:
+ abs.f32 %f1036, %f43;
+ add.f32 %f625, %f1036, 0f3EE66666;
+ mov.b32 %r105, %f625;
+ setp.lt.s32 %p80, %r105, 2139095040;
+ @%p80 bra BB0_56;
+
+ abs.f32 %f1037, %f43;
+ setp.gtu.f32 %p81, %f1037, 0f7F800000;
+ @%p81 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f1059, %f43, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ abs.f32 %f1038, %f43;
+ setp.neu.f32 %p82, %f1038, 0f7F800000;
+ @%p82 bra BB0_56;
+
+ selp.f32 %f1059, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f1030, 0f00000000;
+ mov.f32 %f1029, 0f3EE66666;
+ mov.f32 %f1010, 0fB5BFBE8E;
+ mov.f32 %f1009, 0fBF317200;
+ mov.f32 %f1008, 0f35BFBE8E;
+ mov.f32 %f1007, 0f3F317200;
+ mov.f32 %f1006, 0f3DAAAABD;
+ mov.f32 %f1005, 0f3C4CAF63;
+ mov.f32 %f1004, 0f3B18F0FE;
+ setp.eq.f32 %p83, %f43, 0f3F800000;
+ selp.f32 %f84, 0f3F800000, %f1059, %p83;
+ abs.f32 %f85, %f44;
+ setp.lt.f32 %p84, %f85, 0f00800000;
+ mul.f32 %f628, %f85, 0f4B800000;
+ selp.f32 %f629, 0fC3170000, 0fC2FE0000, %p84;
+ selp.f32 %f630, %f628, %f85, %p84;
+ mov.b32 %r106, %f630;
+ and.b32 %r107, %r106, 8388607;
+ or.b32 %r108, %r107, 1065353216;
+ mov.b32 %f631, %r108;
+ shr.u32 %r109, %r106, 23;
+ cvt.rn.f32.u32 %f632, %r109;
+ add.f32 %f633, %f629, %f632;
+ setp.gt.f32 %p85, %f631, 0f3FB504F3;
+ mul.f32 %f634, %f631, 0f3F000000;
+ add.f32 %f635, %f633, 0f3F800000;
+ selp.f32 %f636, %f634, %f631, %p85;
+ selp.f32 %f637, %f635, %f633, %p85;
+ add.f32 %f638, %f636, 0fBF800000;
+ add.f32 %f627, %f636, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f626,%f627;
+ // inline asm
+ add.f32 %f639, %f638, %f638;
+ mul.f32 %f640, %f626, %f639;
+ mul.f32 %f641, %f640, %f640;
+ fma.rn.f32 %f644, %f1004, %f641, %f1005;
+ fma.rn.f32 %f646, %f644, %f641, %f1006;
+ mul.rn.f32 %f647, %f646, %f641;
+ mul.rn.f32 %f648, %f647, %f640;
+ sub.f32 %f649, %f638, %f640;
+ neg.f32 %f650, %f640;
+ add.f32 %f651, %f649, %f649;
+ fma.rn.f32 %f652, %f650, %f638, %f651;
+ mul.rn.f32 %f653, %f626, %f652;
+ add.f32 %f654, %f648, %f640;
+ sub.f32 %f655, %f640, %f654;
+ add.f32 %f656, %f648, %f655;
+ add.f32 %f657, %f653, %f656;
+ add.f32 %f658, %f654, %f657;
+ sub.f32 %f659, %f654, %f658;
+ add.f32 %f660, %f657, %f659;
+ mul.rn.f32 %f662, %f637, %f1007;
+ mul.rn.f32 %f664, %f637, %f1008;
+ add.f32 %f665, %f662, %f658;
+ sub.f32 %f666, %f662, %f665;
+ add.f32 %f667, %f658, %f666;
+ add.f32 %f668, %f660, %f667;
+ add.f32 %f669, %f664, %f668;
+ add.f32 %f670, %f665, %f669;
+ sub.f32 %f671, %f665, %f670;
+ add.f32 %f672, %f669, %f671;
+ mul.rn.f32 %f674, %f1029, %f670;
+ neg.f32 %f675, %f674;
+ fma.rn.f32 %f676, %f1029, %f670, %f675;
+ fma.rn.f32 %f677, %f1029, %f672, %f676;
+ fma.rn.f32 %f679, %f1030, %f670, %f677;
+ add.rn.f32 %f680, %f674, %f679;
+ neg.f32 %f681, %f680;
+ add.rn.f32 %f682, %f674, %f681;
+ add.rn.f32 %f683, %f682, %f679;
+ mov.b32 %r110, %f680;
+ setp.eq.s32 %p86, %r110, 1118925336;
+ add.s32 %r111, %r110, -1;
+ mov.b32 %f684, %r111;
+ add.f32 %f685, %f683, 0f37000000;
+ selp.f32 %f686, %f684, %f680, %p86;
+ selp.f32 %f86, %f685, %f683, %p86;
+ mul.f32 %f687, %f686, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f688, %f687;
+ fma.rn.f32 %f690, %f688, %f1009, %f686;
+ fma.rn.f32 %f692, %f688, %f1010, %f690;
+ mul.f32 %f693, %f692, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f694, %f693;
+ add.f32 %f695, %f688, 0f00000000;
+ ex2.approx.f32 %f696, %f695;
+ mul.f32 %f697, %f694, %f696;
+ setp.lt.f32 %p87, %f686, 0fC2D20000;
+ selp.f32 %f698, 0f00000000, %f697, %p87;
+ setp.gt.f32 %p88, %f686, 0f42D20000;
+ selp.f32 %f1060, 0f7F800000, %f698, %p88;
+ setp.eq.f32 %p89, %f1060, 0f7F800000;
+ @%p89 bra BB0_58;
+
+ fma.rn.f32 %f1060, %f1060, %f86, %f1060;
+
+BB0_58:
+ setp.lt.f32 %p90, %f44, 0f00000000;
+ and.pred %p5, %p90, %p59;
+ mov.b32 %r112, %f1060;
+ xor.b32 %r113, %r112, -2147483648;
+ mov.b32 %f699, %r113;
+ selp.f32 %f1062, %f699, %f1060, %p5;
+ setp.eq.f32 %p92, %f44, 0f00000000;
+ @%p92 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f702, %f44, %f44;
+ selp.f32 %f1062, %f702, 0f00000000, %p59;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p93, %f44, 0f00000000;
+ @%p93 bra BB0_62;
+
+ mov.f32 %f1031, 0f3EE66666;
+ cvt.rzi.f32.f32 %f701, %f1031;
+ setp.neu.f32 %p94, %f701, 0f3EE66666;
+ selp.f32 %f1062, 0f7FFFFFFF, %f1062, %p94;
+
+BB0_62:
+ abs.f32 %f1039, %f44;
+ add.f32 %f703, %f1039, 0f3EE66666;
+ mov.b32 %r114, %f703;
+ setp.lt.s32 %p96, %r114, 2139095040;
+ @%p96 bra BB0_67;
+
+ abs.f32 %f1040, %f44;
+ setp.gtu.f32 %p97, %f1040, 0f7F800000;
+ @%p97 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f1062, %f44, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ abs.f32 %f1041, %f44;
+ setp.neu.f32 %p98, %f1041, 0f7F800000;
+ @%p98 bra BB0_67;
+
+ selp.f32 %f1062, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ mov.u32 %r239, 4;
+ setp.eq.f32 %p99, %f44, 0f3F800000;
+ selp.f32 %f704, 0f3F800000, %f1062, %p99;
+ cvt.u64.u32 %rd40, %r3;
+ cvt.u64.u32 %rd39, %r2;
+ mov.u64 %rd43, image;
+ cvta.global.u64 %rd38, %rd43;
+ // inline asm
+ call (%rd37), _rt_buffer_get_64, (%rd38, %r31, %r239, %rd39, %rd40, %rd19, %rd19);
+ // inline asm
+ cvt.sat.f32.f32 %f705, %f704;
+ mul.f32 %f706, %f705, 0f437FFD71;
+ cvt.rzi.u32.f32 %r117, %f706;
+ cvt.sat.f32.f32 %f707, %f84;
+ mul.f32 %f708, %f707, 0f437FFD71;
+ cvt.rzi.u32.f32 %r118, %f708;
+ cvt.sat.f32.f32 %f709, %f71;
+ mul.f32 %f710, %f709, 0f437FFD71;
+ cvt.rzi.u32.f32 %r119, %f710;
+ cvt.u16.u32 %rs19, %r117;
+ cvt.u16.u32 %rs20, %r119;
+ cvt.u16.u32 %rs21, %r118;
+ mov.u16 %rs22, 255;
+ st.v4.u8 [%rd37], {%rs19, %rs21, %rs20, %rs22};
+ ld.global.u32 %r246, [imageEnabled];
+
+BB0_68:
+ and.b32 %r120, %r246, 4;
+ setp.eq.s32 %p100, %r120, 0;
+ @%p100 bra BB0_72;
+
+ ld.global.u32 %r121, [additive];
+ setp.eq.s32 %p101, %r121, 0;
+ cvt.u64.u32 %rd3, %r2;
+ cvt.u64.u32 %rd4, %r3;
+ mov.f32 %f711, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f711;}
+
+ // inline asm
+ @%p101 bra BB0_71;
+
+ mov.u64 %rd56, image_HDR;
+ cvta.global.u64 %rd45, %rd56;
+ mov.u32 %r125, 8;
+ // inline asm
+ call (%rd44), _rt_buffer_get_64, (%rd45, %r31, %r125, %rd3, %rd4, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs30, %rs31, %rs32, %rs33}, [%rd44];
+ // inline asm
+ { cvt.f32.f16 %f712, %rs30;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f713, %rs31;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f714, %rs32;}
+
+ // inline asm
+ // inline asm
+ call (%rd50), _rt_buffer_get_64, (%rd45, %r31, %r125, %rd3, %rd4, %rd19, %rd19);
+ // inline asm
+ add.f32 %f715, %f42, %f712;
+ add.f32 %f716, %f43, %f713;
+ add.f32 %f717, %f44, %f714;
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f717;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f716;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f715;}
+
+ // inline asm
+ st.v4.u16 [%rd50], {%rs27, %rs28, %rs29, %rs23};
+ bra.uni BB0_72;
+
+BB0_71:
+ mov.u64 %rd63, image_HDR;
+ cvta.global.u64 %rd58, %rd63;
+ mov.u32 %r127, 8;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd58, %r31, %r127, %rd3, %rd4, %rd19, %rd19);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f44;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs35, %f43;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f42;}
+
+ // inline asm
+ st.v4.u16 [%rd57], {%rs34, %rs35, %rs36, %rs23};
+
+BB0_72:
+ mov.u32 %r240, 4;
+ mul.f32 %f724, %f28, %f1050;
+ ld.global.f32 %f725, [lightColor];
+ mul.f32 %f726, %f724, %f725;
+ ld.global.f32 %f727, [lightColor+4];
+ mul.f32 %f728, %f724, %f727;
+ ld.global.f32 %f729, [lightColor+8];
+ mul.f32 %f730, %f724, %f729;
+ mul.f32 %f97, %f248, %f726;
+ mul.f32 %f98, %f249, %f728;
+ mul.f32 %f99, %f250, %f730;
+ ld.global.v2.u32 {%r130, %r131}, [pixelID];
+ cvt.u64.u32 %rd66, %r130;
+ cvt.u64.u32 %rd67, %r131;
+ mov.u64 %rd70, uvtangent;
+ cvta.global.u64 %rd65, %rd70;
+ // inline asm
+ call (%rd64), _rt_buffer_get_64, (%rd65, %r31, %r240, %rd66, %rd67, %rd19, %rd19);
+ // inline asm
+ ld.u32 %r15, [%rd64];
+ shr.u32 %r16, %r15, 16;
+ cvt.u16.u32 %rs37, %r16;
+ and.b16 %rs38, %rs37, 255;
+ cvt.u16.u32 %rs39, %r15;
+ or.b16 %rs40, %rs39, %rs38;
+ setp.eq.s16 %p102, %rs40, 0;
+ mov.f32 %f1069, 0f00000000;
+ mov.f32 %f1063, %f1069;
+ mov.f32 %f1064, %f1069;
+ mov.f32 %f1065, %f1069;
+ @%p102 bra BB0_74;
+
+ ld.u8 %rs41, [%rd64+1];
+ and.b16 %rs43, %rs39, 255;
+ cvt.rn.f32.u16 %f731, %rs43;
+ div.rn.f32 %f732, %f731, 0f437F0000;
+ fma.rn.f32 %f733, %f732, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f734, %rs41;
+ div.rn.f32 %f735, %f734, 0f437F0000;
+ fma.rn.f32 %f736, %f735, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f737, %rs38;
+ div.rn.f32 %f738, %f737, 0f437F0000;
+ fma.rn.f32 %f739, %f738, 0f40000000, 0fBF800000;
+ mul.f32 %f740, %f736, %f736;
+ fma.rn.f32 %f741, %f733, %f733, %f740;
+ fma.rn.f32 %f742, %f739, %f739, %f741;
+ sqrt.rn.f32 %f743, %f742;
+ rcp.rn.f32 %f744, %f743;
+ mul.f32 %f1063, %f733, %f744;
+ mul.f32 %f1064, %f736, %f744;
+ mul.f32 %f1065, %f739, %f744;
+
+BB0_74:
+ mov.u32 %r241, 4;
+ mul.f32 %f748, %f1044, %f1064;
+ mul.f32 %f749, %f1043, %f1065;
+ sub.f32 %f750, %f749, %f748;
+ mul.f32 %f751, %f1042, %f1065;
+ mul.f32 %f752, %f1044, %f1063;
+ sub.f32 %f753, %f752, %f751;
+ mul.f32 %f754, %f1043, %f1063;
+ mul.f32 %f755, %f1042, %f1064;
+ sub.f32 %f756, %f755, %f754;
+ setp.lt.u32 %p103, %r15, 16777216;
+ selp.f32 %f757, 0fBF800000, 0f3F800000, %p103;
+ mul.f32 %f758, %f750, %f757;
+ mul.f32 %f759, %f753, %f757;
+ mul.f32 %f760, %f756, %f757;
+ mul.f32 %f761, %f758, 0f00000000;
+ mul.f32 %f762, %f759, 0f00000000;
+ mul.f32 %f763, %f760, 0f00000000;
+ fma.rn.f32 %f764, %f1063, 0f3F5105EC, %f761;
+ fma.rn.f32 %f765, %f1064, 0f3F5105EC, %f762;
+ fma.rn.f32 %f766, %f1065, 0f3F5105EC, %f763;
+ mul.f32 %f106, %f1042, 0f3F13CD3A;
+ add.f32 %f107, %f106, %f764;
+ mul.f32 %f108, %f1043, 0f3F13CD3A;
+ add.f32 %f109, %f108, %f765;
+ mul.f32 %f110, %f1044, 0f3F13CD3A;
+ add.f32 %f111, %f110, %f766;
+ ld.global.v2.u32 {%r136, %r137}, [pixelID];
+ cvt.u64.u32 %rd73, %r136;
+ cvt.u64.u32 %rd74, %r137;
+ // inline asm
+ call (%rd71), _rt_buffer_get_64, (%rd65, %r31, %r241, %rd73, %rd74, %rd19, %rd19);
+ // inline asm
+ ld.u32 %r17, [%rd71];
+ shr.u32 %r18, %r17, 16;
+ cvt.u16.u32 %rs46, %r18;
+ and.b16 %rs47, %rs46, 255;
+ cvt.u16.u32 %rs48, %r17;
+ or.b16 %rs49, %rs48, %rs47;
+ setp.eq.s16 %p104, %rs49, 0;
+ mov.f32 %f1066, %f1069;
+ mov.f32 %f1067, %f1069;
+ mov.f32 %f1068, %f1069;
+ @%p104 bra BB0_76;
+
+ ld.u8 %rs50, [%rd71+1];
+ and.b16 %rs52, %rs48, 255;
+ cvt.rn.f32.u16 %f767, %rs52;
+ div.rn.f32 %f768, %f767, 0f437F0000;
+ fma.rn.f32 %f769, %f768, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f770, %rs50;
+ div.rn.f32 %f771, %f770, 0f437F0000;
+ fma.rn.f32 %f772, %f771, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f773, %rs47;
+ div.rn.f32 %f774, %f773, 0f437F0000;
+ fma.rn.f32 %f775, %f774, 0f40000000, 0fBF800000;
+ mul.f32 %f776, %f772, %f772;
+ fma.rn.f32 %f777, %f769, %f769, %f776;
+ fma.rn.f32 %f778, %f775, %f775, %f777;
+ sqrt.rn.f32 %f779, %f778;
+ rcp.rn.f32 %f780, %f779;
+ mul.f32 %f1066, %f769, %f780;
+ mul.f32 %f1067, %f772, %f780;
+ mul.f32 %f1068, %f775, %f780;
+
+BB0_76:
+ mov.u32 %r242, 4;
+ mul.f32 %f784, %f1044, %f1067;
+ mul.f32 %f785, %f1043, %f1068;
+ sub.f32 %f786, %f785, %f784;
+ mul.f32 %f787, %f1042, %f1068;
+ mul.f32 %f788, %f1044, %f1066;
+ sub.f32 %f789, %f788, %f787;
+ mul.f32 %f790, %f1043, %f1066;
+ mul.f32 %f791, %f1042, %f1067;
+ sub.f32 %f792, %f791, %f790;
+ setp.lt.u32 %p105, %r17, 16777216;
+ selp.f32 %f793, 0fBF800000, 0f3F800000, %p105;
+ mul.f32 %f794, %f786, %f793;
+ mul.f32 %f795, %f789, %f793;
+ mul.f32 %f796, %f792, %f793;
+ mul.f32 %f797, %f794, 0f3F3504F3;
+ mul.f32 %f798, %f795, 0f3F3504F3;
+ mul.f32 %f799, %f796, 0f3F3504F3;
+ fma.rn.f32 %f800, %f1066, 0fBED105EC, %f797;
+ fma.rn.f32 %f801, %f1067, 0fBED105EC, %f798;
+ fma.rn.f32 %f802, %f1068, 0fBED105EC, %f799;
+ add.f32 %f118, %f106, %f800;
+ add.f32 %f119, %f108, %f801;
+ add.f32 %f120, %f110, %f802;
+ ld.global.v2.u32 {%r142, %r143}, [pixelID];
+ cvt.u64.u32 %rd80, %r142;
+ cvt.u64.u32 %rd81, %r143;
+ // inline asm
+ call (%rd78), _rt_buffer_get_64, (%rd65, %r31, %r242, %rd80, %rd81, %rd19, %rd19);
+ // inline asm
+ ld.u32 %r19, [%rd78];
+ shr.u32 %r20, %r19, 16;
+ cvt.u16.u32 %rs55, %r20;
+ and.b16 %rs56, %rs55, 255;
+ cvt.u16.u32 %rs57, %r19;
+ or.b16 %rs58, %rs57, %rs56;
+ setp.eq.s16 %p106, %rs58, 0;
+ mov.f32 %f1070, %f1069;
+ mov.f32 %f1071, %f1069;
+ @%p106 bra BB0_78;
+
+ ld.u8 %rs59, [%rd78+1];
+ and.b16 %rs61, %rs57, 255;
+ cvt.rn.f32.u16 %f803, %rs61;
+ div.rn.f32 %f804, %f803, 0f437F0000;
+ fma.rn.f32 %f805, %f804, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f806, %rs59;
+ div.rn.f32 %f807, %f806, 0f437F0000;
+ fma.rn.f32 %f808, %f807, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f809, %rs56;
+ div.rn.f32 %f810, %f809, 0f437F0000;
+ fma.rn.f32 %f811, %f810, 0f40000000, 0fBF800000;
+ mul.f32 %f812, %f808, %f808;
+ fma.rn.f32 %f813, %f805, %f805, %f812;
+ fma.rn.f32 %f814, %f811, %f811, %f813;
+ sqrt.rn.f32 %f815, %f814;
+ rcp.rn.f32 %f816, %f815;
+ mul.f32 %f1069, %f805, %f816;
+ mul.f32 %f1070, %f808, %f816;
+ mul.f32 %f1071, %f811, %f816;
+
+BB0_78:
+ mul.f32 %f818, %f1044, %f1070;
+ mul.f32 %f819, %f1043, %f1071;
+ sub.f32 %f820, %f819, %f818;
+ mul.f32 %f821, %f1042, %f1071;
+ mul.f32 %f822, %f1044, %f1069;
+ sub.f32 %f823, %f822, %f821;
+ mul.f32 %f824, %f1043, %f1069;
+ mul.f32 %f825, %f1042, %f1070;
+ sub.f32 %f826, %f825, %f824;
+ setp.lt.u32 %p107, %r19, 16777216;
+ selp.f32 %f827, 0fBF800000, 0f3F800000, %p107;
+ mul.f32 %f828, %f820, %f827;
+ mul.f32 %f829, %f823, %f827;
+ mul.f32 %f830, %f826, %f827;
+ mul.f32 %f831, %f828, 0fBF3504F3;
+ mul.f32 %f832, %f829, 0fBF3504F3;
+ mul.f32 %f833, %f830, 0fBF3504F3;
+ fma.rn.f32 %f834, %f1069, 0fBED105EC, %f831;
+ fma.rn.f32 %f835, %f1070, 0fBED105EC, %f832;
+ fma.rn.f32 %f836, %f1071, 0fBED105EC, %f833;
+ add.f32 %f837, %f106, %f834;
+ add.f32 %f838, %f108, %f835;
+ add.f32 %f839, %f110, %f836;
+ mul.f32 %f840, %f109, %f11;
+ fma.rn.f32 %f841, %f107, %f10, %f840;
+ fma.rn.f32 %f842, %f111, %f12, %f841;
+ cvt.sat.f32.f32 %f843, %f842;
+ mul.f32 %f844, %f97, %f843;
+ mul.f32 %f845, %f98, %f843;
+ mul.f32 %f846, %f99, %f843;
+ mul.f32 %f847, %f119, %f11;
+ fma.rn.f32 %f848, %f118, %f10, %f847;
+ fma.rn.f32 %f849, %f120, %f12, %f848;
+ cvt.sat.f32.f32 %f850, %f849;
+ mul.f32 %f851, %f97, %f850;
+ mul.f32 %f852, %f98, %f850;
+ mul.f32 %f853, %f99, %f850;
+ mul.f32 %f854, %f838, %f11;
+ fma.rn.f32 %f855, %f837, %f10, %f854;
+ fma.rn.f32 %f856, %f839, %f12, %f855;
+ cvt.sat.f32.f32 %f857, %f856;
+ mul.f32 %f858, %f97, %f857;
+ mul.f32 %f859, %f98, %f857;
+ mul.f32 %f860, %f99, %f857;
+ cvt.sat.f32.f32 %f861, %f29;
+ mul.f32 %f862, %f97, %f861;
+ mul.f32 %f863, %f98, %f861;
+ mul.f32 %f864, %f99, %f861;
+ add.f32 %f865, %f844, %f851;
+ add.f32 %f866, %f845, %f852;
+ add.f32 %f867, %f846, %f853;
+ add.f32 %f868, %f865, %f858;
+ add.f32 %f869, %f866, %f859;
+ add.f32 %f870, %f867, %f860;
+ mul.f32 %f871, %f868, 0f3F13CD3A;
+ mul.f32 %f872, %f869, 0f3F13CD3A;
+ mul.f32 %f873, %f870, 0f3F13CD3A;
+ div.rn.f32 %f874, %f862, %f871;
+ div.rn.f32 %f875, %f863, %f872;
+ div.rn.f32 %f876, %f864, %f873;
+ setp.eq.f32 %p108, %f862, 0f00000000;
+ selp.f32 %f877, 0f00000000, %f874, %p108;
+ setp.eq.f32 %p109, %f863, 0f00000000;
+ selp.f32 %f878, 0f00000000, %f875, %p109;
+ setp.eq.f32 %p110, %f864, 0f00000000;
+ selp.f32 %f879, 0f00000000, %f876, %p110;
+ mul.f32 %f127, %f844, %f877;
+ mul.f32 %f128, %f845, %f878;
+ mul.f32 %f129, %f846, %f879;
+ mul.f32 %f130, %f851, %f877;
+ mul.f32 %f131, %f852, %f878;
+ mul.f32 %f132, %f853, %f879;
+ mul.f32 %f133, %f858, %f877;
+ mul.f32 %f134, %f859, %f878;
+ mul.f32 %f135, %f860, %f879;
+ ld.global.u32 %r146, [additive];
+ setp.eq.s32 %p111, %r146, 0;
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ mov.f32 %f817, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f817;}
+
+ // inline asm
+ @%p111 bra BB0_80;
+
+ mov.u64 %rd97, image_RNM0;
+ cvta.global.u64 %rd86, %rd97;
+ mov.u32 %r150, 8;
+ // inline asm
+ call (%rd85), _rt_buffer_get_64, (%rd86, %r31, %r150, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs71, %rs72, %rs73, %rs74}, [%rd85];
+ // inline asm
+ { cvt.f32.f16 %f880, %rs71;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f881, %rs72;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f882, %rs73;}
+
+ // inline asm
+ // inline asm
+ call (%rd91), _rt_buffer_get_64, (%rd86, %r31, %r150, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ add.f32 %f883, %f127, %f880;
+ add.f32 %f884, %f128, %f881;
+ add.f32 %f885, %f129, %f882;
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f885;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f884;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs68, %f883;}
+
+ // inline asm
+ st.v4.u16 [%rd91], {%rs68, %rs69, %rs70, %rs64};
+ bra.uni BB0_81;
+
+BB0_80:
+ mov.u64 %rd104, image_RNM0;
+ cvta.global.u64 %rd99, %rd104;
+ mov.u32 %r152, 8;
+ // inline asm
+ call (%rd98), _rt_buffer_get_64, (%rd99, %r31, %r152, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f129;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f128;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs75, %f127;}
+
+ // inline asm
+ st.v4.u16 [%rd98], {%rs75, %rs76, %rs77, %rs64};
+
+BB0_81:
+ ld.global.u32 %r153, [additive];
+ setp.eq.s32 %p112, %r153, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f817;}
+
+ // inline asm
+ @%p112 bra BB0_83;
+
+ mov.u64 %rd117, image_RNM1;
+ cvta.global.u64 %rd106, %rd117;
+ mov.u32 %r157, 8;
+ // inline asm
+ call (%rd105), _rt_buffer_get_64, (%rd106, %r31, %r157, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs85, %rs86, %rs87, %rs88}, [%rd105];
+ // inline asm
+ { cvt.f32.f16 %f890, %rs85;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f891, %rs86;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f892, %rs87;}
+
+ // inline asm
+ // inline asm
+ call (%rd111), _rt_buffer_get_64, (%rd106, %r31, %r157, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ add.f32 %f893, %f130, %f890;
+ add.f32 %f894, %f131, %f891;
+ add.f32 %f895, %f132, %f892;
+ // inline asm
+ { cvt.rn.f16.f32 %rs84, %f895;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f894;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f893;}
+
+ // inline asm
+ st.v4.u16 [%rd111], {%rs82, %rs83, %rs84, %rs78};
+ bra.uni BB0_84;
+
+BB0_83:
+ mov.u64 %rd124, image_RNM1;
+ cvta.global.u64 %rd119, %rd124;
+ mov.u32 %r159, 8;
+ // inline asm
+ call (%rd118), _rt_buffer_get_64, (%rd119, %r31, %r159, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f132;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f131;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs89, %f130;}
+
+ // inline asm
+ st.v4.u16 [%rd118], {%rs89, %rs90, %rs91, %rs78};
+
+BB0_84:
+ ld.global.u32 %r160, [additive];
+ setp.eq.s32 %p113, %r160, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f817;}
+
+ // inline asm
+ @%p113 bra BB0_86;
+
+ mov.u64 %rd137, image_RNM2;
+ cvta.global.u64 %rd126, %rd137;
+ mov.u32 %r164, 8;
+ // inline asm
+ call (%rd125), _rt_buffer_get_64, (%rd126, %r31, %r164, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ ld.v4.u16 {%rs99, %rs100, %rs101, %rs102}, [%rd125];
+ // inline asm
+ { cvt.f32.f16 %f900, %rs99;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f901, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f902, %rs101;}
+
+ // inline asm
+ // inline asm
+ call (%rd131), _rt_buffer_get_64, (%rd126, %r31, %r164, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ add.f32 %f903, %f133, %f900;
+ add.f32 %f904, %f134, %f901;
+ add.f32 %f905, %f135, %f902;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f905;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f904;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs96, %f903;}
+
+ // inline asm
+ st.v4.u16 [%rd131], {%rs96, %rs97, %rs98, %rs92};
+ bra.uni BB0_121;
+
+BB0_86:
+ mov.u64 %rd144, image_RNM2;
+ cvta.global.u64 %rd139, %rd144;
+ mov.u32 %r166, 8;
+ // inline asm
+ call (%rd138), _rt_buffer_get_64, (%rd139, %r31, %r166, %rd8, %rd9, %rd19, %rd19);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f135;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f134;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs103, %f133;}
+
+ // inline asm
+ st.v4.u16 [%rd138], {%rs103, %rs104, %rs105, %rs92};
+
+BB0_121:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightRNM.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightRNM.ptx.meta
new file mode 100644
index 00000000..ec960e97
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightRNM.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d59396145b1b7884da48f1a05ae07517
+timeCreated: 1537523975
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightSH.ptx
new file mode 100644
index 00000000..2de1fa6a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightSH.ptx
@@ -0,0 +1,2443 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .u32 lightCubemap;
+.global .align 4 .b8 lightMatrix[36];
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12lightCubemapE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightMatrixE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12lightCubemapE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename11lightMatrixE[10] = {77, 97, 116, 114, 105, 120, 51, 120, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12lightCubemapE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightMatrixE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12lightCubemapE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightMatrixE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12lightCubemapE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightMatrixE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<139>;
+ .reg .b16 %rs<221>;
+ .reg .f32 %f<1003>;
+ .reg .b32 %r<254>;
+ .reg .b64 %rd<369>;
+
+
+ mov.u64 %rd368, __local_depot0;
+ cvta.local.u64 %SP, %rd368;
+ ld.global.v2.u32 {%r26, %r27}, [pixelID];
+ cvt.u64.u32 %rd12, %r26;
+ cvt.u64.u32 %rd13, %r27;
+ mov.u64 %rd16, uvnormal;
+ cvta.global.u64 %rd11, %rd16;
+ mov.u32 %r24, 2;
+ mov.u32 %r25, 4;
+ mov.u64 %rd15, 0;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r24, %r25, %rd12, %rd13, %rd15, %rd15);
+ // inline asm
+ ld.u32 %r1, [%rd10];
+ shr.u32 %r30, %r1, 16;
+ cvt.u16.u32 %rs1, %r30;
+ and.b16 %rs12, %rs1, 255;
+ cvt.u16.u32 %rs13, %r1;
+ or.b16 %rs14, %rs13, %rs12;
+ setp.eq.s16 %p7, %rs14, 0;
+ mov.f32 %f979, 0f00000000;
+ mov.f32 %f980, %f979;
+ mov.f32 %f981, %f979;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs15, [%rd10+1];
+ and.b16 %rs17, %rs13, 255;
+ cvt.rn.f32.u16 %f122, %rs17;
+ div.rn.f32 %f123, %f122, 0f437F0000;
+ fma.rn.f32 %f124, %f123, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f125, %rs15;
+ div.rn.f32 %f126, %f125, 0f437F0000;
+ fma.rn.f32 %f127, %f126, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f128, %rs12;
+ div.rn.f32 %f129, %f128, 0f437F0000;
+ fma.rn.f32 %f130, %f129, 0f40000000, 0fBF800000;
+ mul.f32 %f131, %f127, %f127;
+ fma.rn.f32 %f132, %f124, %f124, %f131;
+ fma.rn.f32 %f133, %f130, %f130, %f132;
+ sqrt.rn.f32 %f134, %f133;
+ rcp.rn.f32 %f135, %f134;
+ mul.f32 %f979, %f124, %f135;
+ mul.f32 %f980, %f127, %f135;
+ mul.f32 %f981, %f130, %f135;
+
+BB0_2:
+ ld.global.v2.u32 {%r31, %r32}, [pixelID];
+ ld.global.v2.u32 {%r34, %r35}, [tileInfo];
+ add.s32 %r2, %r31, %r34;
+ add.s32 %r3, %r32, %r35;
+ setp.eq.f32 %p8, %f980, 0f00000000;
+ setp.eq.f32 %p9, %f979, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f981, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_115;
+ bra.uni BB0_3;
+
+BB0_115:
+ ld.global.u32 %r253, [imageEnabled];
+ and.b32 %r202, %r253, 1;
+ setp.eq.b32 %p131, %r202, 1;
+ @!%p131 bra BB0_117;
+ bra.uni BB0_116;
+
+BB0_116:
+ cvt.u64.u32 %rd256, %r2;
+ cvt.u64.u32 %rd257, %r3;
+ mov.u64 %rd260, image;
+ cvta.global.u64 %rd255, %rd260;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r24, %r25, %rd256, %rd257, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs153, 0;
+ st.v4.u8 [%rd254], {%rs153, %rs153, %rs153, %rs153};
+ ld.global.u32 %r253, [imageEnabled];
+
+BB0_117:
+ and.b32 %r205, %r253, 8;
+ setp.eq.s32 %p132, %r205, 0;
+ @%p132 bra BB0_119;
+
+ cvt.u64.u32 %rd264, %r3;
+ cvt.u64.u32 %rd263, %r2;
+ mov.u64 %rd267, image_Mask;
+ cvta.global.u64 %rd262, %rd267;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r24, %r24, %rd263, %rd264, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f880, 0f00000000;
+ cvt.rzi.u32.f32 %r208, %f880;
+ cvt.u16.u32 %rs154, %r208;
+ mov.u16 %rs155, 0;
+ st.v2.u8 [%rd261], {%rs154, %rs155};
+ ld.global.u32 %r253, [imageEnabled];
+
+BB0_119:
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ and.b32 %r209, %r253, 4;
+ setp.eq.s32 %p133, %r209, 0;
+ @%p133 bra BB0_123;
+
+ ld.global.u32 %r210, [additive];
+ setp.eq.s32 %p134, %r210, 0;
+ @%p134 bra BB0_122;
+
+ mov.u64 %rd280, image_HDR;
+ cvta.global.u64 %rd269, %rd280;
+ mov.u32 %r214, 8;
+ // inline asm
+ call (%rd268), _rt_buffer_get_64, (%rd269, %r24, %r214, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs162, %rs163, %rs164, %rs165}, [%rd268];
+ // inline asm
+ { cvt.f32.f16 %f881, %rs162;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f882, %rs163;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f883, %rs164;}
+
+ // inline asm
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd269, %r24, %r214, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f884, %f881, 0f00000000;
+ add.f32 %f885, %f882, 0f00000000;
+ add.f32 %f886, %f883, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs161, %f886;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs160, %f885;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs159, %f884;}
+
+ // inline asm
+ mov.u16 %rs166, 0;
+ st.v4.u16 [%rd274], {%rs159, %rs160, %rs161, %rs166};
+ bra.uni BB0_123;
+
+BB0_3:
+ ld.global.v2.u32 {%r41, %r42}, [pixelID];
+ cvt.u64.u32 %rd19, %r41;
+ cvt.u64.u32 %rd20, %r42;
+ mov.u64 %rd23, uvpos;
+ cvta.global.u64 %rd18, %rd23;
+ mov.u32 %r40, 12;
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd18, %r24, %r40, %rd19, %rd20, %rd15, %rd15);
+ // inline asm
+ ld.global.f32 %f138, [lightPos];
+ ld.f32 %f9, [%rd17+8];
+ ld.f32 %f8, [%rd17+4];
+ ld.f32 %f7, [%rd17];
+ sub.f32 %f139, %f138, %f7;
+ ld.global.f32 %f140, [lightPos+4];
+ sub.f32 %f141, %f140, %f8;
+ ld.global.f32 %f142, [lightPos+8];
+ sub.f32 %f143, %f142, %f9;
+ mul.f32 %f144, %f141, %f141;
+ fma.rn.f32 %f145, %f139, %f139, %f144;
+ fma.rn.f32 %f146, %f143, %f143, %f145;
+ sqrt.rn.f32 %f147, %f146;
+ rcp.rn.f32 %f148, %f147;
+ mul.f32 %f10, %f139, %f148;
+ mul.f32 %f11, %f141, %f148;
+ mul.f32 %f12, %f143, %f148;
+ ld.global.f32 %f149, [lightFalloffFakeDistanceMult];
+ mul.f32 %f13, %f147, %f149;
+ ld.global.f32 %f150, [lightInvCutoff];
+ mul.f32 %f14, %f147, %f150;
+ mov.f32 %f154, 0f40800000;
+ abs.f32 %f16, %f14;
+ setp.lt.f32 %p13, %f16, 0f00800000;
+ mul.f32 %f156, %f16, 0f4B800000;
+ selp.f32 %f157, 0fC3170000, 0fC2FE0000, %p13;
+ selp.f32 %f158, %f156, %f16, %p13;
+ mov.b32 %r45, %f158;
+ and.b32 %r46, %r45, 8388607;
+ or.b32 %r47, %r46, 1065353216;
+ mov.b32 %f159, %r47;
+ shr.u32 %r48, %r45, 23;
+ cvt.rn.f32.u32 %f160, %r48;
+ add.f32 %f161, %f157, %f160;
+ setp.gt.f32 %p14, %f159, 0f3FB504F3;
+ mul.f32 %f162, %f159, 0f3F000000;
+ add.f32 %f163, %f161, 0f3F800000;
+ selp.f32 %f164, %f162, %f159, %p14;
+ selp.f32 %f165, %f163, %f161, %p14;
+ add.f32 %f166, %f164, 0fBF800000;
+ add.f32 %f137, %f164, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f136,%f137;
+ // inline asm
+ add.f32 %f167, %f166, %f166;
+ mul.f32 %f168, %f136, %f167;
+ mul.f32 %f169, %f168, %f168;
+ mov.f32 %f170, 0f3C4CAF63;
+ mov.f32 %f171, 0f3B18F0FE;
+ fma.rn.f32 %f172, %f171, %f169, %f170;
+ mov.f32 %f173, 0f3DAAAABD;
+ fma.rn.f32 %f174, %f172, %f169, %f173;
+ mul.rn.f32 %f175, %f174, %f169;
+ mul.rn.f32 %f176, %f175, %f168;
+ sub.f32 %f177, %f166, %f168;
+ neg.f32 %f178, %f168;
+ add.f32 %f179, %f177, %f177;
+ fma.rn.f32 %f180, %f178, %f166, %f179;
+ mul.rn.f32 %f181, %f136, %f180;
+ add.f32 %f182, %f176, %f168;
+ sub.f32 %f183, %f168, %f182;
+ add.f32 %f184, %f176, %f183;
+ add.f32 %f185, %f181, %f184;
+ add.f32 %f186, %f182, %f185;
+ sub.f32 %f187, %f182, %f186;
+ add.f32 %f188, %f185, %f187;
+ mov.f32 %f189, 0f3F317200;
+ mul.rn.f32 %f190, %f165, %f189;
+ mov.f32 %f191, 0f35BFBE8E;
+ mul.rn.f32 %f192, %f165, %f191;
+ add.f32 %f193, %f190, %f186;
+ sub.f32 %f194, %f190, %f193;
+ add.f32 %f195, %f186, %f194;
+ add.f32 %f196, %f188, %f195;
+ add.f32 %f197, %f192, %f196;
+ add.f32 %f198, %f193, %f197;
+ sub.f32 %f199, %f193, %f198;
+ add.f32 %f200, %f197, %f199;
+ mul.rn.f32 %f201, %f154, %f198;
+ neg.f32 %f202, %f201;
+ fma.rn.f32 %f203, %f154, %f198, %f202;
+ fma.rn.f32 %f204, %f154, %f200, %f203;
+ mov.f32 %f205, 0f00000000;
+ fma.rn.f32 %f206, %f205, %f198, %f204;
+ add.rn.f32 %f207, %f201, %f206;
+ neg.f32 %f208, %f207;
+ add.rn.f32 %f209, %f201, %f208;
+ add.rn.f32 %f210, %f209, %f206;
+ mov.b32 %r49, %f207;
+ setp.eq.s32 %p15, %r49, 1118925336;
+ add.s32 %r50, %r49, -1;
+ mov.b32 %f211, %r50;
+ add.f32 %f212, %f210, 0f37000000;
+ selp.f32 %f213, %f211, %f207, %p15;
+ selp.f32 %f17, %f212, %f210, %p15;
+ mul.f32 %f214, %f213, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f215, %f214;
+ mov.f32 %f216, 0fBF317200;
+ fma.rn.f32 %f217, %f215, %f216, %f213;
+ mov.f32 %f218, 0fB5BFBE8E;
+ fma.rn.f32 %f219, %f215, %f218, %f217;
+ mul.f32 %f220, %f219, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f221, %f220;
+ add.f32 %f222, %f215, 0f00000000;
+ ex2.approx.f32 %f223, %f222;
+ mul.f32 %f224, %f221, %f223;
+ setp.lt.f32 %p16, %f213, 0fC2D20000;
+ selp.f32 %f225, 0f00000000, %f224, %p16;
+ setp.gt.f32 %p17, %f213, 0f42D20000;
+ selp.f32 %f982, 0f7F800000, %f225, %p17;
+ setp.eq.f32 %p18, %f982, 0f7F800000;
+ @%p18 bra BB0_5;
+
+ fma.rn.f32 %f982, %f982, %f17, %f982;
+
+BB0_5:
+ mov.f32 %f921, 0f40000000;
+ cvt.rzi.f32.f32 %f920, %f921;
+ add.f32 %f919, %f920, %f920;
+ mov.f32 %f918, 0f40800000;
+ sub.f32 %f917, %f918, %f919;
+ abs.f32 %f916, %f917;
+ setp.lt.f32 %p19, %f14, 0f00000000;
+ setp.eq.f32 %p20, %f916, 0f3F800000;
+ and.pred %p1, %p19, %p20;
+ mov.b32 %r51, %f982;
+ xor.b32 %r52, %r51, -2147483648;
+ mov.b32 %f226, %r52;
+ selp.f32 %f984, %f226, %f982, %p1;
+ setp.eq.f32 %p21, %f14, 0f00000000;
+ @%p21 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f229, %f14, %f14;
+ selp.f32 %f984, %f229, 0f00000000, %p20;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p22, %f14, 0f00000000;
+ @%p22 bra BB0_9;
+
+ mov.f32 %f962, 0f40800000;
+ cvt.rzi.f32.f32 %f228, %f962;
+ setp.neu.f32 %p23, %f228, 0f40800000;
+ selp.f32 %f984, 0f7FFFFFFF, %f984, %p23;
+
+BB0_9:
+ abs.f32 %f922, %f14;
+ add.f32 %f230, %f922, 0f40800000;
+ mov.b32 %r53, %f230;
+ setp.lt.s32 %p25, %r53, 2139095040;
+ @%p25 bra BB0_14;
+
+ abs.f32 %f960, %f14;
+ setp.gtu.f32 %p26, %f960, 0f7F800000;
+ @%p26 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f984, %f14, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f961, %f14;
+ setp.neu.f32 %p27, %f961, 0f7F800000;
+ @%p27 bra BB0_14;
+
+ selp.f32 %f984, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ mov.f32 %f930, 0fB5BFBE8E;
+ mov.f32 %f929, 0fBF317200;
+ mov.f32 %f928, 0f00000000;
+ mov.f32 %f927, 0f35BFBE8E;
+ mov.f32 %f926, 0f3F317200;
+ mov.f32 %f925, 0f3DAAAABD;
+ mov.f32 %f924, 0f3C4CAF63;
+ mov.f32 %f923, 0f3B18F0FE;
+ mov.f32 %f233, 0f3F800000;
+ sub.f32 %f234, %f233, %f984;
+ setp.eq.f32 %p28, %f14, 0f3F800000;
+ selp.f32 %f235, 0f00000000, %f234, %p28;
+ cvt.sat.f32.f32 %f236, %f235;
+ ld.global.f32 %f237, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f238, %f13, %f13, %f237;
+ div.rn.f32 %f28, %f236, %f238;
+ mul.f32 %f239, %f980, %f11;
+ fma.rn.f32 %f240, %f979, %f10, %f239;
+ fma.rn.f32 %f241, %f981, %f12, %f240;
+ ld.global.u32 %r54, [imageEnabled];
+ and.b32 %r55, %r54, 32;
+ ld.global.u32 %r56, [ignoreNormal];
+ or.b32 %r57, %r55, %r56;
+ setp.eq.s32 %p29, %r57, 0;
+ selp.f32 %f29, %f241, 0f3F800000, %p29;
+ fma.rn.f32 %f242, %f29, 0f3F000000, 0f3F000000;
+ cvt.sat.f32.f32 %f243, %f242;
+ add.f32 %f30, %f243, %f243;
+ mov.f32 %f247, 0f41A00000;
+ abs.f32 %f32, %f30;
+ setp.lt.f32 %p30, %f32, 0f00800000;
+ mul.f32 %f249, %f32, 0f4B800000;
+ selp.f32 %f250, 0fC3170000, 0fC2FE0000, %p30;
+ selp.f32 %f251, %f249, %f32, %p30;
+ mov.b32 %r58, %f251;
+ and.b32 %r59, %r58, 8388607;
+ or.b32 %r60, %r59, 1065353216;
+ mov.b32 %f252, %r60;
+ shr.u32 %r61, %r58, 23;
+ cvt.rn.f32.u32 %f253, %r61;
+ add.f32 %f254, %f250, %f253;
+ setp.gt.f32 %p31, %f252, 0f3FB504F3;
+ mul.f32 %f255, %f252, 0f3F000000;
+ add.f32 %f256, %f254, 0f3F800000;
+ selp.f32 %f257, %f255, %f252, %p31;
+ selp.f32 %f258, %f256, %f254, %p31;
+ add.f32 %f259, %f257, 0fBF800000;
+ add.f32 %f232, %f257, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f231,%f232;
+ // inline asm
+ add.f32 %f260, %f259, %f259;
+ mul.f32 %f261, %f231, %f260;
+ mul.f32 %f262, %f261, %f261;
+ fma.rn.f32 %f265, %f923, %f262, %f924;
+ fma.rn.f32 %f267, %f265, %f262, %f925;
+ mul.rn.f32 %f268, %f267, %f262;
+ mul.rn.f32 %f269, %f268, %f261;
+ sub.f32 %f270, %f259, %f261;
+ neg.f32 %f271, %f261;
+ add.f32 %f272, %f270, %f270;
+ fma.rn.f32 %f273, %f271, %f259, %f272;
+ mul.rn.f32 %f274, %f231, %f273;
+ add.f32 %f275, %f269, %f261;
+ sub.f32 %f276, %f261, %f275;
+ add.f32 %f277, %f269, %f276;
+ add.f32 %f278, %f274, %f277;
+ add.f32 %f279, %f275, %f278;
+ sub.f32 %f280, %f275, %f279;
+ add.f32 %f281, %f278, %f280;
+ mul.rn.f32 %f283, %f258, %f926;
+ mul.rn.f32 %f285, %f258, %f927;
+ add.f32 %f286, %f283, %f279;
+ sub.f32 %f287, %f283, %f286;
+ add.f32 %f288, %f279, %f287;
+ add.f32 %f289, %f281, %f288;
+ add.f32 %f290, %f285, %f289;
+ add.f32 %f291, %f286, %f290;
+ sub.f32 %f292, %f286, %f291;
+ add.f32 %f293, %f290, %f292;
+ mul.rn.f32 %f294, %f247, %f291;
+ neg.f32 %f295, %f294;
+ fma.rn.f32 %f296, %f247, %f291, %f295;
+ fma.rn.f32 %f297, %f247, %f293, %f296;
+ fma.rn.f32 %f299, %f928, %f291, %f297;
+ add.rn.f32 %f300, %f294, %f299;
+ neg.f32 %f301, %f300;
+ add.rn.f32 %f302, %f294, %f301;
+ add.rn.f32 %f303, %f302, %f299;
+ mov.b32 %r62, %f300;
+ setp.eq.s32 %p32, %r62, 1118925336;
+ add.s32 %r63, %r62, -1;
+ mov.b32 %f304, %r63;
+ add.f32 %f305, %f303, 0f37000000;
+ selp.f32 %f306, %f304, %f300, %p32;
+ selp.f32 %f33, %f305, %f303, %p32;
+ mul.f32 %f307, %f306, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f308, %f307;
+ fma.rn.f32 %f310, %f308, %f929, %f306;
+ fma.rn.f32 %f312, %f308, %f930, %f310;
+ mul.f32 %f313, %f312, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f314, %f313;
+ add.f32 %f315, %f308, 0f00000000;
+ ex2.approx.f32 %f316, %f315;
+ mul.f32 %f317, %f314, %f316;
+ setp.lt.f32 %p33, %f306, 0fC2D20000;
+ selp.f32 %f318, 0f00000000, %f317, %p33;
+ setp.gt.f32 %p34, %f306, 0f42D20000;
+ selp.f32 %f985, 0f7F800000, %f318, %p34;
+ setp.eq.f32 %p35, %f985, 0f7F800000;
+ @%p35 bra BB0_16;
+
+ fma.rn.f32 %f985, %f985, %f33, %f985;
+
+BB0_16:
+ mov.f32 %f968, 0f41200000;
+ cvt.rzi.f32.f32 %f967, %f968;
+ add.f32 %f966, %f967, %f967;
+ mov.f32 %f965, 0f41A00000;
+ sub.f32 %f964, %f965, %f966;
+ abs.f32 %f963, %f964;
+ setp.lt.f32 %p36, %f30, 0f00000000;
+ setp.eq.f32 %p37, %f963, 0f3F800000;
+ and.pred %p2, %p36, %p37;
+ mov.b32 %r64, %f985;
+ xor.b32 %r65, %r64, -2147483648;
+ mov.b32 %f319, %r65;
+ selp.f32 %f987, %f319, %f985, %p2;
+ setp.eq.f32 %p38, %f30, 0f00000000;
+ @%p38 bra BB0_19;
+ bra.uni BB0_17;
+
+BB0_19:
+ add.f32 %f322, %f30, %f30;
+ selp.f32 %f987, %f322, 0f00000000, %p37;
+ bra.uni BB0_20;
+
+BB0_17:
+ setp.geu.f32 %p39, %f30, 0f00000000;
+ @%p39 bra BB0_20;
+
+ mov.f32 %f970, 0f41A00000;
+ cvt.rzi.f32.f32 %f321, %f970;
+ setp.neu.f32 %p40, %f321, 0f41A00000;
+ selp.f32 %f987, 0f7FFFFFFF, %f987, %p40;
+
+BB0_20:
+ add.f32 %f323, %f32, 0f41A00000;
+ mov.b32 %r66, %f323;
+ setp.lt.s32 %p42, %r66, 2139095040;
+ @%p42 bra BB0_25;
+
+ setp.gtu.f32 %p43, %f32, 0f7F800000;
+ @%p43 bra BB0_24;
+ bra.uni BB0_22;
+
+BB0_24:
+ add.f32 %f987, %f30, 0f41A00000;
+ bra.uni BB0_25;
+
+BB0_22:
+ setp.neu.f32 %p44, %f32, 0f7F800000;
+ @%p44 bra BB0_25;
+
+ selp.f32 %f987, 0fFF800000, 0f7F800000, %p2;
+
+BB0_25:
+ setp.eq.f32 %p45, %f30, 0f3F800000;
+ selp.f32 %f331, 0f3F800000, %f987, %p45;
+ cvt.sat.f32.f32 %f332, %f331;
+ mul.f32 %f44, %f28, %f332;
+ ld.global.f32 %f333, [lightMatrix];
+ fma.rn.f32 %f334, %f333, %f10, 0f00000000;
+ ld.global.f32 %f335, [lightMatrix+4];
+ fma.rn.f32 %f336, %f335, %f11, %f334;
+ ld.global.f32 %f337, [lightMatrix+8];
+ fma.rn.f32 %f330, %f337, %f12, %f336;
+ mul.f32 %f338, %f29, 0f40800000;
+ cvt.sat.f32.f32 %f45, %f338;
+ ld.global.f32 %f339, [lightMatrix+12];
+ fma.rn.f32 %f340, %f339, %f10, 0f00000000;
+ ld.global.f32 %f341, [lightMatrix+16];
+ fma.rn.f32 %f342, %f341, %f11, %f340;
+ ld.global.f32 %f343, [lightMatrix+20];
+ fma.rn.f32 %f329, %f343, %f12, %f342;
+ ld.global.f32 %f344, [lightMatrix+24];
+ fma.rn.f32 %f345, %f344, %f10, 0f00000000;
+ ld.global.f32 %f346, [lightMatrix+28];
+ fma.rn.f32 %f347, %f346, %f11, %f345;
+ ld.global.f32 %f348, [lightMatrix+32];
+ fma.rn.f32 %f328, %f348, %f12, %f347;
+ ld.global.u32 %r67, [lightCubemap];
+ mov.u32 %r68, 6;
+ mov.u32 %r246, 0;
+ // inline asm
+ call (%f324, %f325, %f326, %f327), _rt_texture_get_base_id, (%r67, %r68, %f328, %f329, %f330, %r246);
+ // inline asm
+ max.f32 %f349, %f324, %f325;
+ max.f32 %f350, %f349, %f326;
+ mul.f32 %f351, %f44, %f45;
+ mul.f32 %f352, %f351, %f350;
+ ld.global.f32 %f353, [lightColor+4];
+ ld.global.f32 %f354, [lightColor];
+ max.f32 %f355, %f354, %f353;
+ ld.global.f32 %f356, [lightColor+8];
+ max.f32 %f357, %f355, %f356;
+ mul.f32 %f358, %f352, %f357;
+ setp.lt.f32 %p46, %f358, 0f3727C5AC;
+ @%p46 bra BB0_95;
+ bra.uni BB0_26;
+
+BB0_95:
+ ld.global.u32 %r251, [imageEnabled];
+ and.b32 %r159, %r251, 1;
+ setp.eq.b32 %p123, %r159, 1;
+ @!%p123 bra BB0_97;
+ bra.uni BB0_96;
+
+BB0_96:
+ cvt.u64.u32 %rd142, %r2;
+ cvt.u64.u32 %rd143, %r3;
+ mov.u64 %rd146, image;
+ cvta.global.u64 %rd141, %rd146;
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd141, %r24, %r25, %rd142, %rd143, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs89, 1;
+ mov.u16 %rs90, 0;
+ st.v4.u8 [%rd140], {%rs90, %rs90, %rs90, %rs89};
+ ld.global.u32 %r251, [imageEnabled];
+
+BB0_97:
+ and.b32 %r162, %r251, 8;
+ setp.eq.s32 %p124, %r162, 0;
+ @%p124 bra BB0_99;
+
+ cvt.u64.u32 %rd150, %r3;
+ cvt.u64.u32 %rd149, %r2;
+ mov.u64 %rd153, image_Mask;
+ cvta.global.u64 %rd148, %rd153;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r24, %r24, %rd149, %rd150, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f837, 0f00000000;
+ cvt.rzi.u32.f32 %r165, %f837;
+ cvt.u16.u32 %rs91, %r165;
+ mov.u16 %rs92, 255;
+ st.v2.u8 [%rd147], {%rs91, %rs92};
+ ld.global.u32 %r251, [imageEnabled];
+
+BB0_99:
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ and.b32 %r166, %r251, 4;
+ setp.eq.s32 %p125, %r166, 0;
+ @%p125 bra BB0_103;
+
+ ld.global.u32 %r167, [additive];
+ setp.eq.s32 %p126, %r167, 0;
+ mov.f32 %f838, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f838;}
+
+ // inline asm
+ @%p126 bra BB0_102;
+
+ mov.u64 %rd166, image_HDR;
+ cvta.global.u64 %rd155, %rd166;
+ mov.u32 %r171, 8;
+ // inline asm
+ call (%rd154), _rt_buffer_get_64, (%rd155, %r24, %r171, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs100, %rs101, %rs102, %rs103}, [%rd154];
+ // inline asm
+ { cvt.f32.f16 %f839, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f840, %rs101;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f841, %rs102;}
+
+ // inline asm
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd155, %r24, %r171, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f842, %f839, 0f00000000;
+ add.f32 %f843, %f840, 0f00000000;
+ add.f32 %f844, %f841, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f844;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f843;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f842;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs97, %rs98, %rs99, %rs93};
+ bra.uni BB0_103;
+
+BB0_26:
+ mov.f32 %f989, 0f00000000;
+ mul.f32 %f360, %f7, 0f3456BF95;
+ abs.f32 %f361, %f979;
+ div.rn.f32 %f362, %f360, %f361;
+ abs.f32 %f363, %f980;
+ mul.f32 %f364, %f8, 0f3456BF95;
+ div.rn.f32 %f365, %f364, %f363;
+ abs.f32 %f366, %f981;
+ mul.f32 %f367, %f9, 0f3456BF95;
+ div.rn.f32 %f368, %f367, %f366;
+ abs.f32 %f369, %f362;
+ abs.f32 %f370, %f365;
+ abs.f32 %f371, %f368;
+ mov.f32 %f372, 0f38D1B717;
+ max.f32 %f373, %f369, %f372;
+ max.f32 %f374, %f370, %f372;
+ max.f32 %f375, %f371, %f372;
+ fma.rn.f32 %f49, %f979, %f373, %f7;
+ fma.rn.f32 %f50, %f980, %f374, %f8;
+ fma.rn.f32 %f51, %f981, %f375, %f9;
+ ld.global.u32 %r247, [samples];
+ setp.lt.s32 %p47, %r247, 1;
+ @%p47 bra BB0_29;
+
+ mul.f32 %f377, %f49, 0f3456BF95;
+ abs.f32 %f378, %f377;
+ mul.f32 %f379, %f50, 0f3456BF95;
+ abs.f32 %f380, %f379;
+ mul.f32 %f381, %f51, 0f3456BF95;
+ abs.f32 %f382, %f381;
+ max.f32 %f383, %f378, %f380;
+ max.f32 %f384, %f383, %f382;
+ max.f32 %f52, %f384, %f372;
+ add.u64 %rd24, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd24;
+ mov.f32 %f989, 0f00000000;
+
+BB0_28:
+ cvt.rn.f32.s32 %f394, %r246;
+ mul.f32 %f395, %f394, 0f3DD32618;
+ cvt.rmi.f32.f32 %f396, %f395;
+ sub.f32 %f397, %f395, %f396;
+ mul.f32 %f398, %f394, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f399, %f398;
+ sub.f32 %f400, %f398, %f399;
+ mul.f32 %f401, %f394, 0f3DC74539;
+ cvt.rmi.f32.f32 %f402, %f401;
+ sub.f32 %f403, %f401, %f402;
+ add.f32 %f404, %f400, 0f4199851F;
+ add.f32 %f405, %f403, 0f4199851F;
+ add.f32 %f406, %f397, 0f4199851F;
+ mul.f32 %f407, %f400, %f405;
+ fma.rn.f32 %f408, %f397, %f404, %f407;
+ fma.rn.f32 %f409, %f406, %f403, %f408;
+ add.f32 %f410, %f397, %f409;
+ add.f32 %f411, %f400, %f409;
+ add.f32 %f412, %f403, %f409;
+ add.f32 %f413, %f410, %f411;
+ mul.f32 %f414, %f412, %f413;
+ cvt.rmi.f32.f32 %f415, %f414;
+ sub.f32 %f416, %f414, %f415;
+ add.f32 %f417, %f410, %f412;
+ mul.f32 %f418, %f411, %f417;
+ cvt.rmi.f32.f32 %f419, %f418;
+ sub.f32 %f420, %f418, %f419;
+ add.f32 %f421, %f411, %f412;
+ mul.f32 %f422, %f410, %f421;
+ cvt.rmi.f32.f32 %f423, %f422;
+ sub.f32 %f424, %f422, %f423;
+ fma.rn.f32 %f425, %f416, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f426, %f420, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f427, %f424, 0f40000000, 0fBF800000;
+ ld.global.f32 %f428, [lightRadius];
+ ld.global.f32 %f429, [lightPos];
+ fma.rn.f32 %f430, %f428, %f425, %f429;
+ ld.global.f32 %f431, [lightPos+4];
+ fma.rn.f32 %f432, %f428, %f426, %f431;
+ ld.global.f32 %f433, [lightPos+8];
+ fma.rn.f32 %f434, %f428, %f427, %f433;
+ sub.f32 %f435, %f430, %f7;
+ sub.f32 %f436, %f432, %f8;
+ sub.f32 %f437, %f434, %f9;
+ mul.f32 %f438, %f436, %f436;
+ fma.rn.f32 %f439, %f435, %f435, %f438;
+ fma.rn.f32 %f440, %f437, %f437, %f439;
+ sqrt.rn.f32 %f393, %f440;
+ rcp.rn.f32 %f441, %f393;
+ mul.f32 %f389, %f441, %f435;
+ mul.f32 %f390, %f441, %f436;
+ mul.f32 %f391, %f441, %f437;
+ ld.global.u32 %r74, [imageEnabled];
+ and.b32 %r75, %r74, 32;
+ setp.eq.s32 %p48, %r75, 0;
+ selp.f32 %f442, 0f3F800000, 0f41200000, %p48;
+ mul.f32 %f392, %f442, %f52;
+ mov.u32 %r76, 1065353216;
+ st.local.u32 [%rd2], %r76;
+ ld.global.u32 %r71, [root];
+ mov.u32 %r72, 1;
+ // inline asm
+ call _rt_trace_64, (%r71, %f49, %f50, %f51, %f389, %f390, %f391, %r72, %f392, %f393, %rd24, %r25);
+ // inline asm
+ ld.local.f32 %f443, [%rd2];
+ add.f32 %f989, %f989, %f443;
+ ld.global.u32 %r247, [samples];
+ add.s32 %r246, %r246, 1;
+ setp.lt.s32 %p49, %r246, %r247;
+ @%p49 bra BB0_28;
+
+BB0_29:
+ mov.f32 %f990, 0f3F800000;
+ setp.eq.s32 %p50, %r247, 0;
+ @%p50 bra BB0_31;
+
+ cvt.rn.f32.s32 %f445, %r247;
+ div.rn.f32 %f990, %f989, %f445;
+
+BB0_31:
+ cvt.sat.f32.f32 %f446, %f29;
+ mul.f32 %f447, %f44, %f446;
+ mul.f32 %f448, %f990, %f447;
+ ld.global.f32 %f449, [lightColor];
+ mul.f32 %f450, %f449, %f448;
+ ld.global.f32 %f451, [lightColor+4];
+ mul.f32 %f452, %f451, %f448;
+ ld.global.f32 %f453, [lightColor+8];
+ mul.f32 %f454, %f448, %f453;
+ mul.f32 %f58, %f324, %f450;
+ mul.f32 %f59, %f325, %f452;
+ mul.f32 %f60, %f326, %f454;
+ ld.global.u32 %r249, [imageEnabled];
+ and.b32 %r77, %r249, 8;
+ setp.eq.s32 %p51, %r77, 0;
+ @%p51 bra BB0_44;
+
+ mov.f32 %f938, 0fB5BFBE8E;
+ mov.f32 %f937, 0fBF317200;
+ mov.f32 %f936, 0f35BFBE8E;
+ mov.f32 %f935, 0f3F317200;
+ mov.f32 %f934, 0f3DAAAABD;
+ mov.f32 %f933, 0f3C4CAF63;
+ mov.f32 %f932, 0f3B18F0FE;
+ cvt.u64.u32 %rd28, %r2;
+ cvt.u64.u32 %rd29, %r3;
+ mov.u64 %rd32, image_Mask;
+ cvta.global.u64 %rd27, %rd32;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r24, %r24, %rd28, %rd29, %rd15, %rd15);
+ // inline asm
+ abs.f32 %f62, %f990;
+ setp.lt.f32 %p52, %f62, 0f00800000;
+ mul.f32 %f460, %f62, 0f4B800000;
+ selp.f32 %f461, 0fC3170000, 0fC2FE0000, %p52;
+ selp.f32 %f462, %f460, %f62, %p52;
+ mov.b32 %r80, %f462;
+ and.b32 %r81, %r80, 8388607;
+ or.b32 %r82, %r81, 1065353216;
+ mov.b32 %f463, %r82;
+ shr.u32 %r83, %r80, 23;
+ cvt.rn.f32.u32 %f464, %r83;
+ add.f32 %f465, %f461, %f464;
+ setp.gt.f32 %p53, %f463, 0f3FB504F3;
+ mul.f32 %f466, %f463, 0f3F000000;
+ add.f32 %f467, %f465, 0f3F800000;
+ selp.f32 %f468, %f466, %f463, %p53;
+ selp.f32 %f469, %f467, %f465, %p53;
+ add.f32 %f470, %f468, 0fBF800000;
+ add.f32 %f456, %f468, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f455,%f456;
+ // inline asm
+ add.f32 %f471, %f470, %f470;
+ mul.f32 %f472, %f455, %f471;
+ mul.f32 %f473, %f472, %f472;
+ fma.rn.f32 %f476, %f932, %f473, %f933;
+ fma.rn.f32 %f478, %f476, %f473, %f934;
+ mul.rn.f32 %f479, %f478, %f473;
+ mul.rn.f32 %f480, %f479, %f472;
+ sub.f32 %f481, %f470, %f472;
+ neg.f32 %f482, %f472;
+ add.f32 %f483, %f481, %f481;
+ fma.rn.f32 %f484, %f482, %f470, %f483;
+ mul.rn.f32 %f485, %f455, %f484;
+ add.f32 %f486, %f480, %f472;
+ sub.f32 %f487, %f472, %f486;
+ add.f32 %f488, %f480, %f487;
+ add.f32 %f489, %f485, %f488;
+ add.f32 %f490, %f486, %f489;
+ sub.f32 %f491, %f486, %f490;
+ add.f32 %f492, %f489, %f491;
+ mul.rn.f32 %f494, %f469, %f935;
+ mul.rn.f32 %f496, %f469, %f936;
+ add.f32 %f497, %f494, %f490;
+ sub.f32 %f498, %f494, %f497;
+ add.f32 %f499, %f490, %f498;
+ add.f32 %f500, %f492, %f499;
+ add.f32 %f501, %f496, %f500;
+ add.f32 %f502, %f497, %f501;
+ sub.f32 %f503, %f497, %f502;
+ add.f32 %f504, %f501, %f503;
+ mov.f32 %f505, 0f3EE8BA2E;
+ mul.rn.f32 %f506, %f505, %f502;
+ neg.f32 %f507, %f506;
+ fma.rn.f32 %f508, %f505, %f502, %f507;
+ fma.rn.f32 %f509, %f505, %f504, %f508;
+ mov.f32 %f510, 0f00000000;
+ fma.rn.f32 %f511, %f510, %f502, %f509;
+ add.rn.f32 %f512, %f506, %f511;
+ neg.f32 %f513, %f512;
+ add.rn.f32 %f514, %f506, %f513;
+ add.rn.f32 %f515, %f514, %f511;
+ mov.b32 %r84, %f512;
+ setp.eq.s32 %p54, %r84, 1118925336;
+ add.s32 %r85, %r84, -1;
+ mov.b32 %f516, %r85;
+ add.f32 %f517, %f515, 0f37000000;
+ selp.f32 %f518, %f516, %f512, %p54;
+ selp.f32 %f63, %f517, %f515, %p54;
+ mul.f32 %f519, %f518, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f520, %f519;
+ fma.rn.f32 %f522, %f520, %f937, %f518;
+ fma.rn.f32 %f524, %f520, %f938, %f522;
+ mul.f32 %f525, %f524, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f526, %f525;
+ add.f32 %f527, %f520, 0f00000000;
+ ex2.approx.f32 %f528, %f527;
+ mul.f32 %f529, %f526, %f528;
+ setp.lt.f32 %p55, %f518, 0fC2D20000;
+ selp.f32 %f530, 0f00000000, %f529, %p55;
+ setp.gt.f32 %p56, %f518, 0f42D20000;
+ selp.f32 %f991, 0f7F800000, %f530, %p56;
+ setp.eq.f32 %p57, %f991, 0f7F800000;
+ @%p57 bra BB0_34;
+
+ fma.rn.f32 %f991, %f991, %f63, %f991;
+
+BB0_34:
+ mov.f32 %f974, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f973, %f974;
+ fma.rn.f32 %f972, %f973, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f971, %f972;
+ setp.lt.f32 %p58, %f990, 0f00000000;
+ setp.eq.f32 %p59, %f971, 0f3F800000;
+ and.pred %p3, %p58, %p59;
+ mov.b32 %r86, %f991;
+ xor.b32 %r87, %r86, -2147483648;
+ mov.b32 %f531, %r87;
+ selp.f32 %f993, %f531, %f991, %p3;
+ setp.eq.f32 %p60, %f990, 0f00000000;
+ @%p60 bra BB0_37;
+ bra.uni BB0_35;
+
+BB0_37:
+ add.f32 %f534, %f990, %f990;
+ selp.f32 %f993, %f534, 0f00000000, %p59;
+ bra.uni BB0_38;
+
+BB0_122:
+ mov.u64 %rd287, image_HDR;
+ cvta.global.u64 %rd282, %rd287;
+ mov.u32 %r216, 8;
+ // inline asm
+ call (%rd281), _rt_buffer_get_64, (%rd282, %r24, %r216, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f887, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs167, %f887;}
+
+ // inline asm
+ mov.u16 %rs168, 0;
+ st.v4.u16 [%rd281], {%rs167, %rs167, %rs167, %rs168};
+
+BB0_123:
+ ld.global.u32 %r217, [additive];
+ setp.eq.s32 %p135, %r217, 0;
+ @%p135 bra BB0_125;
+
+ mov.u64 %rd300, image_RNM0;
+ cvta.global.u64 %rd289, %rd300;
+ mov.u32 %r221, 8;
+ // inline asm
+ call (%rd288), _rt_buffer_get_64, (%rd289, %r24, %r221, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs175, %rs176, %rs177, %rs178}, [%rd288];
+ // inline asm
+ { cvt.f32.f16 %f888, %rs175;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f889, %rs176;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f890, %rs177;}
+
+ // inline asm
+ // inline asm
+ call (%rd294), _rt_buffer_get_64, (%rd289, %r24, %r221, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f891, %f888, 0f00000000;
+ add.f32 %f892, %f889, 0f00000000;
+ add.f32 %f893, %f890, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs174, %f893;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs173, %f892;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs172, %f891;}
+
+ // inline asm
+ mov.u16 %rs179, 0;
+ st.v4.u16 [%rd294], {%rs172, %rs173, %rs174, %rs179};
+ bra.uni BB0_126;
+
+BB0_125:
+ mov.u64 %rd307, image_RNM0;
+ cvta.global.u64 %rd302, %rd307;
+ mov.u32 %r223, 8;
+ // inline asm
+ call (%rd301), _rt_buffer_get_64, (%rd302, %r24, %r223, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f894, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs180, %f894;}
+
+ // inline asm
+ mov.u16 %rs181, 0;
+ st.v4.u16 [%rd301], {%rs180, %rs180, %rs180, %rs181};
+
+BB0_126:
+ ld.global.u32 %r224, [additive];
+ setp.eq.s32 %p136, %r224, 0;
+ @%p136 bra BB0_128;
+
+ mov.u64 %rd320, image_RNM1;
+ cvta.global.u64 %rd309, %rd320;
+ mov.u32 %r228, 8;
+ // inline asm
+ call (%rd308), _rt_buffer_get_64, (%rd309, %r24, %r228, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs188, %rs189, %rs190, %rs191}, [%rd308];
+ // inline asm
+ { cvt.f32.f16 %f895, %rs188;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f896, %rs189;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f897, %rs190;}
+
+ // inline asm
+ // inline asm
+ call (%rd314), _rt_buffer_get_64, (%rd309, %r24, %r228, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f898, %f895, 0f00000000;
+ add.f32 %f899, %f896, 0f00000000;
+ add.f32 %f900, %f897, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs187, %f900;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs186, %f899;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs185, %f898;}
+
+ // inline asm
+ mov.u16 %rs192, 0;
+ st.v4.u16 [%rd314], {%rs185, %rs186, %rs187, %rs192};
+ bra.uni BB0_129;
+
+BB0_128:
+ mov.u64 %rd327, image_RNM1;
+ cvta.global.u64 %rd322, %rd327;
+ mov.u32 %r230, 8;
+ // inline asm
+ call (%rd321), _rt_buffer_get_64, (%rd322, %r24, %r230, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f901, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs193, %f901;}
+
+ // inline asm
+ mov.u16 %rs194, 0;
+ st.v4.u16 [%rd321], {%rs193, %rs193, %rs193, %rs194};
+
+BB0_129:
+ ld.global.u32 %r231, [additive];
+ setp.eq.s32 %p137, %r231, 0;
+ @%p137 bra BB0_131;
+
+ mov.u64 %rd340, image_RNM2;
+ cvta.global.u64 %rd329, %rd340;
+ mov.u32 %r235, 8;
+ // inline asm
+ call (%rd328), _rt_buffer_get_64, (%rd329, %r24, %r235, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs201, %rs202, %rs203, %rs204}, [%rd328];
+ // inline asm
+ { cvt.f32.f16 %f902, %rs201;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f903, %rs202;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f904, %rs203;}
+
+ // inline asm
+ // inline asm
+ call (%rd334), _rt_buffer_get_64, (%rd329, %r24, %r235, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f905, %f902, 0f00000000;
+ add.f32 %f906, %f903, 0f00000000;
+ add.f32 %f907, %f904, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs200, %f907;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs199, %f906;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs198, %f905;}
+
+ // inline asm
+ mov.u16 %rs205, 0;
+ st.v4.u16 [%rd334], {%rs198, %rs199, %rs200, %rs205};
+ bra.uni BB0_132;
+
+BB0_131:
+ mov.u64 %rd347, image_RNM2;
+ cvta.global.u64 %rd342, %rd347;
+ mov.u32 %r237, 8;
+ // inline asm
+ call (%rd341), _rt_buffer_get_64, (%rd342, %r24, %r237, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f908, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs206, %f908;}
+
+ // inline asm
+ mov.u16 %rs207, 0;
+ st.v4.u16 [%rd341], {%rs206, %rs206, %rs206, %rs207};
+
+BB0_132:
+ ld.global.u32 %r238, [additive];
+ setp.eq.s32 %p138, %r238, 0;
+ @%p138 bra BB0_134;
+
+ mov.u64 %rd360, image_RNM3;
+ cvta.global.u64 %rd349, %rd360;
+ mov.u32 %r242, 8;
+ // inline asm
+ call (%rd348), _rt_buffer_get_64, (%rd349, %r24, %r242, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs214, %rs215, %rs216, %rs217}, [%rd348];
+ // inline asm
+ { cvt.f32.f16 %f909, %rs214;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f910, %rs215;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f911, %rs216;}
+
+ // inline asm
+ // inline asm
+ call (%rd354), _rt_buffer_get_64, (%rd349, %r24, %r242, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f912, %f909, 0f00000000;
+ add.f32 %f913, %f910, 0f00000000;
+ add.f32 %f914, %f911, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs213, %f914;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs212, %f913;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs211, %f912;}
+
+ // inline asm
+ mov.u16 %rs218, 0;
+ st.v4.u16 [%rd354], {%rs211, %rs212, %rs213, %rs218};
+ bra.uni BB0_135;
+
+BB0_134:
+ mov.u64 %rd367, image_RNM3;
+ cvta.global.u64 %rd362, %rd367;
+ mov.u32 %r244, 8;
+ // inline asm
+ call (%rd361), _rt_buffer_get_64, (%rd362, %r24, %r244, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f915, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs219, %f915;}
+
+ // inline asm
+ mov.u16 %rs220, 0;
+ st.v4.u16 [%rd361], {%rs219, %rs219, %rs219, %rs220};
+ bra.uni BB0_135;
+
+BB0_102:
+ mov.u64 %rd173, image_HDR;
+ cvta.global.u64 %rd168, %rd173;
+ mov.u32 %r173, 8;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r24, %r173, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f845, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f845;}
+
+ // inline asm
+ st.v4.u16 [%rd167], {%rs104, %rs104, %rs104, %rs93};
+
+BB0_103:
+ ld.global.u32 %r174, [additive];
+ setp.eq.s32 %p127, %r174, 0;
+ mov.f32 %f846, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f846;}
+
+ // inline asm
+ @%p127 bra BB0_105;
+
+ mov.u64 %rd186, image_RNM0;
+ cvta.global.u64 %rd175, %rd186;
+ mov.u32 %r178, 8;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r24, %r178, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd174];
+ // inline asm
+ { cvt.f32.f16 %f847, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f848, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f849, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd175, %r24, %r178, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f850, %f847, 0f00000000;
+ add.f32 %f851, %f848, 0f00000000;
+ add.f32 %f852, %f849, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f852;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f851;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f850;}
+
+ // inline asm
+ st.v4.u16 [%rd180], {%rs109, %rs110, %rs111, %rs105};
+ bra.uni BB0_106;
+
+BB0_105:
+ mov.u64 %rd193, image_RNM0;
+ cvta.global.u64 %rd188, %rd193;
+ mov.u32 %r180, 8;
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd188, %r24, %r180, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f853, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f853;}
+
+ // inline asm
+ st.v4.u16 [%rd187], {%rs116, %rs116, %rs116, %rs105};
+
+BB0_106:
+ ld.global.u32 %r181, [additive];
+ setp.eq.s32 %p128, %r181, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f846;}
+
+ // inline asm
+ @%p128 bra BB0_108;
+
+ mov.u64 %rd206, image_RNM1;
+ cvta.global.u64 %rd195, %rd206;
+ mov.u32 %r185, 8;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r24, %r185, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd194];
+ // inline asm
+ { cvt.f32.f16 %f855, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f856, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f857, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd195, %r24, %r185, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f858, %f855, 0f00000000;
+ add.f32 %f859, %f856, 0f00000000;
+ add.f32 %f860, %f857, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f860;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f859;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f858;}
+
+ // inline asm
+ st.v4.u16 [%rd200], {%rs121, %rs122, %rs123, %rs117};
+ bra.uni BB0_109;
+
+BB0_108:
+ mov.u64 %rd213, image_RNM1;
+ cvta.global.u64 %rd208, %rd213;
+ mov.u32 %r187, 8;
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd208, %r24, %r187, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f861, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs128, %f861;}
+
+ // inline asm
+ st.v4.u16 [%rd207], {%rs128, %rs128, %rs128, %rs117};
+
+BB0_109:
+ ld.global.u32 %r188, [additive];
+ setp.eq.s32 %p129, %r188, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f846;}
+
+ // inline asm
+ @%p129 bra BB0_111;
+
+ mov.u64 %rd226, image_RNM2;
+ cvta.global.u64 %rd215, %rd226;
+ mov.u32 %r192, 8;
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd215, %r24, %r192, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs136, %rs137, %rs138, %rs139}, [%rd214];
+ // inline asm
+ { cvt.f32.f16 %f863, %rs136;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f864, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f865, %rs138;}
+
+ // inline asm
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd215, %r24, %r192, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f866, %f863, 0f00000000;
+ add.f32 %f867, %f864, 0f00000000;
+ add.f32 %f868, %f865, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f868;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f867;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f866;}
+
+ // inline asm
+ st.v4.u16 [%rd220], {%rs133, %rs134, %rs135, %rs129};
+ bra.uni BB0_112;
+
+BB0_111:
+ mov.u64 %rd233, image_RNM2;
+ cvta.global.u64 %rd228, %rd233;
+ mov.u32 %r194, 8;
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd228, %r24, %r194, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f869, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f869;}
+
+ // inline asm
+ st.v4.u16 [%rd227], {%rs140, %rs140, %rs140, %rs129};
+
+BB0_112:
+ ld.global.u32 %r195, [additive];
+ setp.eq.s32 %p130, %r195, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs141, %f846;}
+
+ // inline asm
+ @%p130 bra BB0_114;
+
+ mov.u64 %rd246, image_RNM3;
+ cvta.global.u64 %rd235, %rd246;
+ mov.u32 %r199, 8;
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd235, %r24, %r199, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs148, %rs149, %rs150, %rs151}, [%rd234];
+ // inline asm
+ { cvt.f32.f16 %f871, %rs148;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f872, %rs149;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f873, %rs150;}
+
+ // inline asm
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd235, %r24, %r199, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f874, %f871, 0f00000000;
+ add.f32 %f875, %f872, 0f00000000;
+ add.f32 %f876, %f873, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f876;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f875;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f874;}
+
+ // inline asm
+ st.v4.u16 [%rd240], {%rs145, %rs146, %rs147, %rs141};
+ bra.uni BB0_135;
+
+BB0_114:
+ mov.u64 %rd253, image_RNM3;
+ cvta.global.u64 %rd248, %rd253;
+ mov.u32 %r201, 8;
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd248, %r24, %r201, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f877, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f877;}
+
+ // inline asm
+ st.v4.u16 [%rd247], {%rs152, %rs152, %rs152, %rs141};
+ bra.uni BB0_135;
+
+BB0_35:
+ setp.geu.f32 %p61, %f990, 0f00000000;
+ @%p61 bra BB0_38;
+
+ mov.f32 %f978, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f533, %f978;
+ setp.neu.f32 %p62, %f533, 0f3EE8BA2E;
+ selp.f32 %f993, 0f7FFFFFFF, %f993, %p62;
+
+BB0_38:
+ abs.f32 %f975, %f990;
+ add.f32 %f535, %f975, 0f3EE8BA2E;
+ mov.b32 %r88, %f535;
+ setp.lt.s32 %p64, %r88, 2139095040;
+ @%p64 bra BB0_43;
+
+ abs.f32 %f976, %f990;
+ setp.gtu.f32 %p65, %f976, 0f7F800000;
+ @%p65 bra BB0_42;
+ bra.uni BB0_40;
+
+BB0_42:
+ add.f32 %f993, %f990, 0f3EE8BA2E;
+ bra.uni BB0_43;
+
+BB0_40:
+ abs.f32 %f977, %f990;
+ setp.neu.f32 %p66, %f977, 0f7F800000;
+ @%p66 bra BB0_43;
+
+ selp.f32 %f993, 0fFF800000, 0f7F800000, %p3;
+
+BB0_43:
+ mul.f32 %f536, %f993, 0f437F0000;
+ setp.eq.f32 %p67, %f990, 0f3F800000;
+ selp.f32 %f537, 0f437F0000, %f536, %p67;
+ cvt.rzi.u32.f32 %r89, %f537;
+ cvt.u16.u32 %rs19, %r89;
+ mov.u16 %rs20, 255;
+ st.v2.u8 [%rd26], {%rs19, %rs20};
+ ld.global.u32 %r249, [imageEnabled];
+
+BB0_44:
+ and.b32 %r90, %r249, 1;
+ setp.eq.b32 %p68, %r90, 1;
+ @!%p68 bra BB0_79;
+ bra.uni BB0_45;
+
+BB0_45:
+ mov.f32 %f945, 0fB5BFBE8E;
+ mov.f32 %f944, 0fBF317200;
+ mov.f32 %f943, 0f35BFBE8E;
+ mov.f32 %f942, 0f3F317200;
+ mov.f32 %f941, 0f3DAAAABD;
+ mov.f32 %f940, 0f3C4CAF63;
+ mov.f32 %f939, 0f3B18F0FE;
+ mov.f32 %f540, 0f3E666666;
+ cvt.rzi.f32.f32 %f541, %f540;
+ fma.rn.f32 %f542, %f541, 0fC0000000, 0f3EE66666;
+ abs.f32 %f74, %f542;
+ abs.f32 %f75, %f58;
+ setp.lt.f32 %p69, %f75, 0f00800000;
+ mul.f32 %f543, %f75, 0f4B800000;
+ selp.f32 %f544, 0fC3170000, 0fC2FE0000, %p69;
+ selp.f32 %f545, %f543, %f75, %p69;
+ mov.b32 %r91, %f545;
+ and.b32 %r92, %r91, 8388607;
+ or.b32 %r93, %r92, 1065353216;
+ mov.b32 %f546, %r93;
+ shr.u32 %r94, %r91, 23;
+ cvt.rn.f32.u32 %f547, %r94;
+ add.f32 %f548, %f544, %f547;
+ setp.gt.f32 %p70, %f546, 0f3FB504F3;
+ mul.f32 %f549, %f546, 0f3F000000;
+ add.f32 %f550, %f548, 0f3F800000;
+ selp.f32 %f551, %f549, %f546, %p70;
+ selp.f32 %f552, %f550, %f548, %p70;
+ add.f32 %f553, %f551, 0fBF800000;
+ add.f32 %f539, %f551, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f538,%f539;
+ // inline asm
+ add.f32 %f554, %f553, %f553;
+ mul.f32 %f555, %f538, %f554;
+ mul.f32 %f556, %f555, %f555;
+ fma.rn.f32 %f559, %f939, %f556, %f940;
+ fma.rn.f32 %f561, %f559, %f556, %f941;
+ mul.rn.f32 %f562, %f561, %f556;
+ mul.rn.f32 %f563, %f562, %f555;
+ sub.f32 %f564, %f553, %f555;
+ neg.f32 %f565, %f555;
+ add.f32 %f566, %f564, %f564;
+ fma.rn.f32 %f567, %f565, %f553, %f566;
+ mul.rn.f32 %f568, %f538, %f567;
+ add.f32 %f569, %f563, %f555;
+ sub.f32 %f570, %f555, %f569;
+ add.f32 %f571, %f563, %f570;
+ add.f32 %f572, %f568, %f571;
+ add.f32 %f573, %f569, %f572;
+ sub.f32 %f574, %f569, %f573;
+ add.f32 %f575, %f572, %f574;
+ mul.rn.f32 %f577, %f552, %f942;
+ mul.rn.f32 %f579, %f552, %f943;
+ add.f32 %f580, %f577, %f573;
+ sub.f32 %f581, %f577, %f580;
+ add.f32 %f582, %f573, %f581;
+ add.f32 %f583, %f575, %f582;
+ add.f32 %f584, %f579, %f583;
+ add.f32 %f585, %f580, %f584;
+ sub.f32 %f586, %f580, %f585;
+ add.f32 %f587, %f584, %f586;
+ mov.f32 %f588, 0f3EE66666;
+ mul.rn.f32 %f589, %f588, %f585;
+ neg.f32 %f590, %f589;
+ fma.rn.f32 %f591, %f588, %f585, %f590;
+ fma.rn.f32 %f592, %f588, %f587, %f591;
+ mov.f32 %f593, 0f00000000;
+ fma.rn.f32 %f594, %f593, %f585, %f592;
+ add.rn.f32 %f595, %f589, %f594;
+ neg.f32 %f596, %f595;
+ add.rn.f32 %f597, %f589, %f596;
+ add.rn.f32 %f598, %f597, %f594;
+ mov.b32 %r95, %f595;
+ setp.eq.s32 %p71, %r95, 1118925336;
+ add.s32 %r96, %r95, -1;
+ mov.b32 %f599, %r96;
+ add.f32 %f600, %f598, 0f37000000;
+ selp.f32 %f601, %f599, %f595, %p71;
+ selp.f32 %f76, %f600, %f598, %p71;
+ mul.f32 %f602, %f601, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f603, %f602;
+ fma.rn.f32 %f605, %f603, %f944, %f601;
+ fma.rn.f32 %f607, %f603, %f945, %f605;
+ mul.f32 %f608, %f607, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f609, %f608;
+ add.f32 %f610, %f603, 0f00000000;
+ ex2.approx.f32 %f611, %f610;
+ mul.f32 %f612, %f609, %f611;
+ setp.lt.f32 %p72, %f601, 0fC2D20000;
+ selp.f32 %f613, 0f00000000, %f612, %p72;
+ setp.gt.f32 %p73, %f601, 0f42D20000;
+ selp.f32 %f994, 0f7F800000, %f613, %p73;
+ setp.eq.f32 %p74, %f994, 0f7F800000;
+ @%p74 bra BB0_47;
+
+ fma.rn.f32 %f994, %f994, %f76, %f994;
+
+BB0_47:
+ setp.lt.f32 %p75, %f58, 0f00000000;
+ setp.eq.f32 %p76, %f74, 0f3F800000;
+ and.pred %p4, %p75, %p76;
+ mov.b32 %r97, %f994;
+ xor.b32 %r98, %r97, -2147483648;
+ mov.b32 %f614, %r98;
+ selp.f32 %f996, %f614, %f994, %p4;
+ setp.eq.f32 %p77, %f58, 0f00000000;
+ @%p77 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f617, %f58, %f58;
+ selp.f32 %f996, %f617, 0f00000000, %p76;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p78, %f58, 0f00000000;
+ @%p78 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f616, %f588;
+ setp.neu.f32 %p79, %f616, 0f3EE66666;
+ selp.f32 %f996, 0f7FFFFFFF, %f996, %p79;
+
+BB0_51:
+ add.f32 %f618, %f75, 0f3EE66666;
+ mov.b32 %r99, %f618;
+ setp.lt.s32 %p81, %r99, 2139095040;
+ @%p81 bra BB0_56;
+
+ setp.gtu.f32 %p82, %f75, 0f7F800000;
+ @%p82 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f996, %f58, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p83, %f75, 0f7F800000;
+ @%p83 bra BB0_56;
+
+ selp.f32 %f996, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f952, 0fB5BFBE8E;
+ mov.f32 %f951, 0fBF317200;
+ mov.f32 %f950, 0f35BFBE8E;
+ mov.f32 %f949, 0f3F317200;
+ mov.f32 %f948, 0f3DAAAABD;
+ mov.f32 %f947, 0f3C4CAF63;
+ mov.f32 %f946, 0f3B18F0FE;
+ setp.eq.f32 %p84, %f58, 0f3F800000;
+ selp.f32 %f87, 0f3F800000, %f996, %p84;
+ abs.f32 %f88, %f59;
+ setp.lt.f32 %p85, %f88, 0f00800000;
+ mul.f32 %f621, %f88, 0f4B800000;
+ selp.f32 %f622, 0fC3170000, 0fC2FE0000, %p85;
+ selp.f32 %f623, %f621, %f88, %p85;
+ mov.b32 %r100, %f623;
+ and.b32 %r101, %r100, 8388607;
+ or.b32 %r102, %r101, 1065353216;
+ mov.b32 %f624, %r102;
+ shr.u32 %r103, %r100, 23;
+ cvt.rn.f32.u32 %f625, %r103;
+ add.f32 %f626, %f622, %f625;
+ setp.gt.f32 %p86, %f624, 0f3FB504F3;
+ mul.f32 %f627, %f624, 0f3F000000;
+ add.f32 %f628, %f626, 0f3F800000;
+ selp.f32 %f629, %f627, %f624, %p86;
+ selp.f32 %f630, %f628, %f626, %p86;
+ add.f32 %f631, %f629, 0fBF800000;
+ add.f32 %f620, %f629, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f619,%f620;
+ // inline asm
+ add.f32 %f632, %f631, %f631;
+ mul.f32 %f633, %f619, %f632;
+ mul.f32 %f634, %f633, %f633;
+ fma.rn.f32 %f637, %f946, %f634, %f947;
+ fma.rn.f32 %f639, %f637, %f634, %f948;
+ mul.rn.f32 %f640, %f639, %f634;
+ mul.rn.f32 %f641, %f640, %f633;
+ sub.f32 %f642, %f631, %f633;
+ neg.f32 %f643, %f633;
+ add.f32 %f644, %f642, %f642;
+ fma.rn.f32 %f645, %f643, %f631, %f644;
+ mul.rn.f32 %f646, %f619, %f645;
+ add.f32 %f647, %f641, %f633;
+ sub.f32 %f648, %f633, %f647;
+ add.f32 %f649, %f641, %f648;
+ add.f32 %f650, %f646, %f649;
+ add.f32 %f651, %f647, %f650;
+ sub.f32 %f652, %f647, %f651;
+ add.f32 %f653, %f650, %f652;
+ mul.rn.f32 %f655, %f630, %f949;
+ mul.rn.f32 %f657, %f630, %f950;
+ add.f32 %f658, %f655, %f651;
+ sub.f32 %f659, %f655, %f658;
+ add.f32 %f660, %f651, %f659;
+ add.f32 %f661, %f653, %f660;
+ add.f32 %f662, %f657, %f661;
+ add.f32 %f663, %f658, %f662;
+ sub.f32 %f664, %f658, %f663;
+ add.f32 %f665, %f662, %f664;
+ mul.rn.f32 %f667, %f588, %f663;
+ neg.f32 %f668, %f667;
+ fma.rn.f32 %f669, %f588, %f663, %f668;
+ fma.rn.f32 %f670, %f588, %f665, %f669;
+ fma.rn.f32 %f672, %f593, %f663, %f670;
+ add.rn.f32 %f673, %f667, %f672;
+ neg.f32 %f674, %f673;
+ add.rn.f32 %f675, %f667, %f674;
+ add.rn.f32 %f676, %f675, %f672;
+ mov.b32 %r104, %f673;
+ setp.eq.s32 %p87, %r104, 1118925336;
+ add.s32 %r105, %r104, -1;
+ mov.b32 %f677, %r105;
+ add.f32 %f678, %f676, 0f37000000;
+ selp.f32 %f679, %f677, %f673, %p87;
+ selp.f32 %f89, %f678, %f676, %p87;
+ mul.f32 %f680, %f679, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f681, %f680;
+ fma.rn.f32 %f683, %f681, %f951, %f679;
+ fma.rn.f32 %f685, %f681, %f952, %f683;
+ mul.f32 %f686, %f685, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f687, %f686;
+ add.f32 %f688, %f681, 0f00000000;
+ ex2.approx.f32 %f689, %f688;
+ mul.f32 %f690, %f687, %f689;
+ setp.lt.f32 %p88, %f679, 0fC2D20000;
+ selp.f32 %f691, 0f00000000, %f690, %p88;
+ setp.gt.f32 %p89, %f679, 0f42D20000;
+ selp.f32 %f997, 0f7F800000, %f691, %p89;
+ setp.eq.f32 %p90, %f997, 0f7F800000;
+ @%p90 bra BB0_58;
+
+ fma.rn.f32 %f997, %f997, %f89, %f997;
+
+BB0_58:
+ setp.lt.f32 %p91, %f59, 0f00000000;
+ and.pred %p5, %p91, %p76;
+ mov.b32 %r106, %f997;
+ xor.b32 %r107, %r106, -2147483648;
+ mov.b32 %f692, %r107;
+ selp.f32 %f999, %f692, %f997, %p5;
+ setp.eq.f32 %p93, %f59, 0f00000000;
+ @%p93 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f695, %f59, %f59;
+ selp.f32 %f999, %f695, 0f00000000, %p76;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p94, %f59, 0f00000000;
+ @%p94 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f694, %f588;
+ setp.neu.f32 %p95, %f694, 0f3EE66666;
+ selp.f32 %f999, 0f7FFFFFFF, %f999, %p95;
+
+BB0_62:
+ add.f32 %f696, %f88, 0f3EE66666;
+ mov.b32 %r108, %f696;
+ setp.lt.s32 %p97, %r108, 2139095040;
+ @%p97 bra BB0_67;
+
+ setp.gtu.f32 %p98, %f88, 0f7F800000;
+ @%p98 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f999, %f59, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p99, %f88, 0f7F800000;
+ @%p99 bra BB0_67;
+
+ selp.f32 %f999, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ mov.f32 %f959, 0fB5BFBE8E;
+ mov.f32 %f958, 0fBF317200;
+ mov.f32 %f957, 0f35BFBE8E;
+ mov.f32 %f956, 0f3F317200;
+ mov.f32 %f955, 0f3DAAAABD;
+ mov.f32 %f954, 0f3C4CAF63;
+ mov.f32 %f953, 0f3B18F0FE;
+ setp.eq.f32 %p100, %f59, 0f3F800000;
+ selp.f32 %f100, 0f3F800000, %f999, %p100;
+ abs.f32 %f101, %f60;
+ setp.lt.f32 %p101, %f101, 0f00800000;
+ mul.f32 %f699, %f101, 0f4B800000;
+ selp.f32 %f700, 0fC3170000, 0fC2FE0000, %p101;
+ selp.f32 %f701, %f699, %f101, %p101;
+ mov.b32 %r109, %f701;
+ and.b32 %r110, %r109, 8388607;
+ or.b32 %r111, %r110, 1065353216;
+ mov.b32 %f702, %r111;
+ shr.u32 %r112, %r109, 23;
+ cvt.rn.f32.u32 %f703, %r112;
+ add.f32 %f704, %f700, %f703;
+ setp.gt.f32 %p102, %f702, 0f3FB504F3;
+ mul.f32 %f705, %f702, 0f3F000000;
+ add.f32 %f706, %f704, 0f3F800000;
+ selp.f32 %f707, %f705, %f702, %p102;
+ selp.f32 %f708, %f706, %f704, %p102;
+ add.f32 %f709, %f707, 0fBF800000;
+ add.f32 %f698, %f707, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f697,%f698;
+ // inline asm
+ add.f32 %f710, %f709, %f709;
+ mul.f32 %f711, %f697, %f710;
+ mul.f32 %f712, %f711, %f711;
+ fma.rn.f32 %f715, %f953, %f712, %f954;
+ fma.rn.f32 %f717, %f715, %f712, %f955;
+ mul.rn.f32 %f718, %f717, %f712;
+ mul.rn.f32 %f719, %f718, %f711;
+ sub.f32 %f720, %f709, %f711;
+ neg.f32 %f721, %f711;
+ add.f32 %f722, %f720, %f720;
+ fma.rn.f32 %f723, %f721, %f709, %f722;
+ mul.rn.f32 %f724, %f697, %f723;
+ add.f32 %f725, %f719, %f711;
+ sub.f32 %f726, %f711, %f725;
+ add.f32 %f727, %f719, %f726;
+ add.f32 %f728, %f724, %f727;
+ add.f32 %f729, %f725, %f728;
+ sub.f32 %f730, %f725, %f729;
+ add.f32 %f731, %f728, %f730;
+ mul.rn.f32 %f733, %f708, %f956;
+ mul.rn.f32 %f735, %f708, %f957;
+ add.f32 %f736, %f733, %f729;
+ sub.f32 %f737, %f733, %f736;
+ add.f32 %f738, %f729, %f737;
+ add.f32 %f739, %f731, %f738;
+ add.f32 %f740, %f735, %f739;
+ add.f32 %f741, %f736, %f740;
+ sub.f32 %f742, %f736, %f741;
+ add.f32 %f743, %f740, %f742;
+ mul.rn.f32 %f745, %f588, %f741;
+ neg.f32 %f746, %f745;
+ fma.rn.f32 %f747, %f588, %f741, %f746;
+ fma.rn.f32 %f748, %f588, %f743, %f747;
+ fma.rn.f32 %f750, %f593, %f741, %f748;
+ add.rn.f32 %f751, %f745, %f750;
+ neg.f32 %f752, %f751;
+ add.rn.f32 %f753, %f745, %f752;
+ add.rn.f32 %f754, %f753, %f750;
+ mov.b32 %r113, %f751;
+ setp.eq.s32 %p103, %r113, 1118925336;
+ add.s32 %r114, %r113, -1;
+ mov.b32 %f755, %r114;
+ add.f32 %f756, %f754, 0f37000000;
+ selp.f32 %f757, %f755, %f751, %p103;
+ selp.f32 %f102, %f756, %f754, %p103;
+ mul.f32 %f758, %f757, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f759, %f758;
+ fma.rn.f32 %f761, %f759, %f958, %f757;
+ fma.rn.f32 %f763, %f759, %f959, %f761;
+ mul.f32 %f764, %f763, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f765, %f764;
+ add.f32 %f766, %f759, 0f00000000;
+ ex2.approx.f32 %f767, %f766;
+ mul.f32 %f768, %f765, %f767;
+ setp.lt.f32 %p104, %f757, 0fC2D20000;
+ selp.f32 %f769, 0f00000000, %f768, %p104;
+ setp.gt.f32 %p105, %f757, 0f42D20000;
+ selp.f32 %f1000, 0f7F800000, %f769, %p105;
+ setp.eq.f32 %p106, %f1000, 0f7F800000;
+ @%p106 bra BB0_69;
+
+ fma.rn.f32 %f1000, %f1000, %f102, %f1000;
+
+BB0_69:
+ setp.lt.f32 %p107, %f60, 0f00000000;
+ and.pred %p6, %p107, %p76;
+ mov.b32 %r115, %f1000;
+ xor.b32 %r116, %r115, -2147483648;
+ mov.b32 %f770, %r116;
+ selp.f32 %f1002, %f770, %f1000, %p6;
+ setp.eq.f32 %p109, %f60, 0f00000000;
+ @%p109 bra BB0_72;
+ bra.uni BB0_70;
+
+BB0_72:
+ add.f32 %f773, %f60, %f60;
+ selp.f32 %f1002, %f773, 0f00000000, %p76;
+ bra.uni BB0_73;
+
+BB0_70:
+ setp.geu.f32 %p110, %f60, 0f00000000;
+ @%p110 bra BB0_73;
+
+ cvt.rzi.f32.f32 %f772, %f588;
+ setp.neu.f32 %p111, %f772, 0f3EE66666;
+ selp.f32 %f1002, 0f7FFFFFFF, %f1002, %p111;
+
+BB0_73:
+ add.f32 %f774, %f101, 0f3EE66666;
+ mov.b32 %r117, %f774;
+ setp.lt.s32 %p113, %r117, 2139095040;
+ @%p113 bra BB0_78;
+
+ setp.gtu.f32 %p114, %f101, 0f7F800000;
+ @%p114 bra BB0_77;
+ bra.uni BB0_75;
+
+BB0_77:
+ add.f32 %f1002, %f60, 0f3EE66666;
+ bra.uni BB0_78;
+
+BB0_75:
+ setp.neu.f32 %p115, %f101, 0f7F800000;
+ @%p115 bra BB0_78;
+
+ selp.f32 %f1002, 0fFF800000, 0f7F800000, %p6;
+
+BB0_78:
+ mov.u32 %r245, 4;
+ setp.eq.f32 %p116, %f60, 0f3F800000;
+ selp.f32 %f775, 0f3F800000, %f1002, %p116;
+ cvt.u64.u32 %rd36, %r3;
+ cvt.u64.u32 %rd35, %r2;
+ mov.u64 %rd39, image;
+ cvta.global.u64 %rd34, %rd39;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r24, %r245, %rd35, %rd36, %rd15, %rd15);
+ // inline asm
+ cvt.sat.f32.f32 %f776, %f775;
+ mul.f32 %f777, %f776, 0f437FFD71;
+ cvt.rzi.u32.f32 %r120, %f777;
+ cvt.sat.f32.f32 %f778, %f100;
+ mul.f32 %f779, %f778, 0f437FFD71;
+ cvt.rzi.u32.f32 %r121, %f779;
+ cvt.sat.f32.f32 %f780, %f87;
+ mul.f32 %f781, %f780, 0f437FFD71;
+ cvt.rzi.u32.f32 %r122, %f781;
+ cvt.u16.u32 %rs21, %r120;
+ cvt.u16.u32 %rs22, %r122;
+ cvt.u16.u32 %rs23, %r121;
+ mov.u16 %rs24, 255;
+ st.v4.u8 [%rd33], {%rs21, %rs23, %rs22, %rs24};
+ ld.global.u32 %r249, [imageEnabled];
+
+BB0_79:
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ and.b32 %r123, %r249, 4;
+ setp.eq.s32 %p117, %r123, 0;
+ @%p117 bra BB0_83;
+
+ ld.global.u32 %r124, [additive];
+ setp.eq.s32 %p118, %r124, 0;
+ mov.f32 %f782, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f782;}
+
+ // inline asm
+ @%p118 bra BB0_82;
+
+ mov.u64 %rd52, image_HDR;
+ cvta.global.u64 %rd41, %rd52;
+ mov.u32 %r128, 8;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r24, %r128, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs32, %rs33, %rs34, %rs35}, [%rd40];
+ // inline asm
+ { cvt.f32.f16 %f783, %rs32;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f784, %rs33;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f785, %rs34;}
+
+ // inline asm
+ // inline asm
+ call (%rd46), _rt_buffer_get_64, (%rd41, %r24, %r128, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f786, %f58, %f783;
+ add.f32 %f787, %f59, %f784;
+ add.f32 %f788, %f60, %f785;
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f788;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f787;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f786;}
+
+ // inline asm
+ st.v4.u16 [%rd46], {%rs29, %rs30, %rs31, %rs25};
+ bra.uni BB0_83;
+
+BB0_82:
+ mov.u64 %rd59, image_HDR;
+ cvta.global.u64 %rd54, %rd59;
+ mov.u32 %r130, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r24, %r130, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f60;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f59;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f58;}
+
+ // inline asm
+ st.v4.u16 [%rd53], {%rs36, %rs37, %rs38, %rs25};
+
+BB0_83:
+ mul.f32 %f793, %f44, 0f3E800000;
+ mul.f32 %f794, %f793, %f990;
+ mul.f32 %f795, %f45, %f794;
+ ld.global.f32 %f796, [lightColor];
+ mul.f32 %f797, %f795, %f796;
+ ld.global.f32 %f798, [lightColor+4];
+ mul.f32 %f799, %f795, %f798;
+ ld.global.f32 %f800, [lightColor+8];
+ mul.f32 %f801, %f795, %f800;
+ mul.f32 %f113, %f324, %f797;
+ mul.f32 %f114, %f325, %f799;
+ mul.f32 %f115, %f326, %f801;
+ ld.global.u32 %r131, [additive];
+ setp.eq.s32 %p119, %r131, 0;
+ mov.f32 %f792, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f792;}
+
+ // inline asm
+ @%p119 bra BB0_85;
+
+ mov.u64 %rd72, image_RNM0;
+ cvta.global.u64 %rd61, %rd72;
+ mov.u32 %r135, 8;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r24, %r135, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs46, %rs47, %rs48, %rs49}, [%rd60];
+ // inline asm
+ { cvt.f32.f16 %f802, %rs46;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f803, %rs47;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f804, %rs48;}
+
+ // inline asm
+ // inline asm
+ call (%rd66), _rt_buffer_get_64, (%rd61, %r24, %r135, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f805, %f113, %f802;
+ add.f32 %f806, %f114, %f803;
+ add.f32 %f807, %f115, %f804;
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f807;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f806;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f805;}
+
+ // inline asm
+ st.v4.u16 [%rd66], {%rs43, %rs44, %rs45, %rs39};
+ bra.uni BB0_86;
+
+BB0_85:
+ mov.u64 %rd79, image_RNM0;
+ cvta.global.u64 %rd74, %rd79;
+ mov.u32 %r137, 8;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r24, %r137, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f115;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f114;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f113;}
+
+ // inline asm
+ st.v4.u16 [%rd73], {%rs50, %rs51, %rs52, %rs39};
+
+BB0_86:
+ fma.rn.f32 %f116, %f10, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f117, %f11, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f118, %f12, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r138, [additive];
+ setp.eq.s32 %p120, %r138, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f792;}
+
+ // inline asm
+ @%p120 bra BB0_88;
+
+ mov.u64 %rd92, image_RNM1;
+ cvta.global.u64 %rd81, %rd92;
+ mov.u32 %r142, 8;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r24, %r142, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs60, %rs61, %rs62, %rs63}, [%rd80];
+ // inline asm
+ { cvt.f32.f16 %f812, %rs60;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f813, %rs61;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f814, %rs62;}
+
+ // inline asm
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd81, %r24, %r142, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f815, %f116, %f812;
+ add.f32 %f816, %f116, %f813;
+ add.f32 %f817, %f116, %f814;
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f817;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f816;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f815;}
+
+ // inline asm
+ st.v4.u16 [%rd86], {%rs57, %rs58, %rs59, %rs53};
+ bra.uni BB0_89;
+
+BB0_88:
+ mov.u64 %rd99, image_RNM1;
+ cvta.global.u64 %rd94, %rd99;
+ mov.u32 %r144, 8;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd94, %r24, %r144, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f116;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs64, %rs64, %rs64, %rs53};
+
+BB0_89:
+ ld.global.u32 %r145, [additive];
+ setp.eq.s32 %p121, %r145, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f792;}
+
+ // inline asm
+ @%p121 bra BB0_91;
+
+ mov.u64 %rd112, image_RNM2;
+ cvta.global.u64 %rd101, %rd112;
+ mov.u32 %r149, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r24, %r149, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs72, %rs73, %rs74, %rs75}, [%rd100];
+ // inline asm
+ { cvt.f32.f16 %f820, %rs72;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f821, %rs73;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f822, %rs74;}
+
+ // inline asm
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd101, %r24, %r149, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f823, %f117, %f820;
+ add.f32 %f824, %f117, %f821;
+ add.f32 %f825, %f117, %f822;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f825;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f824;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f823;}
+
+ // inline asm
+ st.v4.u16 [%rd106], {%rs69, %rs70, %rs71, %rs65};
+ bra.uni BB0_92;
+
+BB0_91:
+ mov.u64 %rd119, image_RNM2;
+ cvta.global.u64 %rd114, %rd119;
+ mov.u32 %r151, 8;
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd114, %r24, %r151, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f117;}
+
+ // inline asm
+ st.v4.u16 [%rd113], {%rs76, %rs76, %rs76, %rs65};
+
+BB0_92:
+ ld.global.u32 %r152, [additive];
+ setp.eq.s32 %p122, %r152, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f792;}
+
+ // inline asm
+ @%p122 bra BB0_94;
+
+ mov.u64 %rd132, image_RNM3;
+ cvta.global.u64 %rd121, %rd132;
+ mov.u32 %r156, 8;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd121, %r24, %r156, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs84, %rs85, %rs86, %rs87}, [%rd120];
+ // inline asm
+ { cvt.f32.f16 %f828, %rs84;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f829, %rs85;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f830, %rs86;}
+
+ // inline asm
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd121, %r24, %r156, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f831, %f118, %f828;
+ add.f32 %f832, %f118, %f829;
+ add.f32 %f833, %f118, %f830;
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f833;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f832;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f831;}
+
+ // inline asm
+ st.v4.u16 [%rd126], {%rs81, %rs82, %rs83, %rs77};
+ bra.uni BB0_135;
+
+BB0_94:
+ mov.u64 %rd139, image_RNM3;
+ cvta.global.u64 %rd134, %rd139;
+ mov.u32 %r158, 8;
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd134, %r24, %r158, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f118;}
+
+ // inline asm
+ st.v4.u16 [%rd133], {%rs88, %rs88, %rs88, %rs77};
+
+BB0_135:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightSH.ptx.meta
new file mode 100644
index 00000000..bd71dcb4
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmCubemapLightSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1fa5e363fead2574dbbf74be61e38519
+timeCreated: 1537814797
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLight.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLight.ptx
new file mode 100644
index 00000000..e9e733ee
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLight.ptx
@@ -0,0 +1,1542 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_Dir[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<113>;
+ .reg .b16 %rs<76>;
+ .reg .f32 %f<756>;
+ .reg .b32 %r<167>;
+ .reg .b64 %rd<150>;
+
+
+ mov.u64 %rd149, __local_depot0;
+ cvta.local.u64 %SP, %rd149;
+ ld.global.v2.u32 {%r28, %r29}, [pixelID];
+ cvt.u64.u32 %rd12, %r28;
+ cvt.u64.u32 %rd13, %r29;
+ mov.u64 %rd16, uvnormal;
+ cvta.global.u64 %rd11, %rd16;
+ mov.u32 %r26, 2;
+ mov.u32 %r27, 4;
+ mov.u64 %rd15, 0;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r26, %r27, %rd12, %rd13, %rd15, %rd15);
+ // inline asm
+ ld.u32 %r1, [%rd10];
+ shr.u32 %r32, %r1, 16;
+ cvt.u16.u32 %rs1, %r32;
+ and.b16 %rs4, %rs1, 255;
+ cvt.u16.u32 %rs5, %r1;
+ or.b16 %rs6, %rs5, %rs4;
+ setp.eq.s16 %p6, %rs6, 0;
+ mov.f32 %f732, 0f00000000;
+ mov.f32 %f733, %f732;
+ mov.f32 %f734, %f732;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs7, [%rd10+1];
+ and.b16 %rs9, %rs5, 255;
+ cvt.rn.f32.u16 %f105, %rs9;
+ div.rn.f32 %f106, %f105, 0f437F0000;
+ fma.rn.f32 %f107, %f106, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f108, %rs7;
+ div.rn.f32 %f109, %f108, 0f437F0000;
+ fma.rn.f32 %f110, %f109, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f111, %rs4;
+ div.rn.f32 %f112, %f111, 0f437F0000;
+ fma.rn.f32 %f113, %f112, 0f40000000, 0fBF800000;
+ mul.f32 %f114, %f110, %f110;
+ fma.rn.f32 %f115, %f107, %f107, %f114;
+ fma.rn.f32 %f116, %f113, %f113, %f115;
+ sqrt.rn.f32 %f117, %f116;
+ rcp.rn.f32 %f118, %f117;
+ mul.f32 %f732, %f107, %f118;
+ mul.f32 %f733, %f110, %f118;
+ mul.f32 %f734, %f113, %f118;
+
+BB0_2:
+ ld.global.v2.u32 {%r33, %r34}, [pixelID];
+ ld.global.v2.u32 {%r36, %r37}, [tileInfo];
+ add.s32 %r2, %r33, %r36;
+ add.s32 %r3, %r34, %r37;
+ setp.eq.f32 %p7, %f733, 0f00000000;
+ setp.eq.f32 %p8, %f732, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f734, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_85;
+ bra.uni BB0_3;
+
+BB0_85:
+ ld.global.u32 %r166, [imageEnabled];
+ and.b32 %r141, %r166, 1;
+ setp.eq.b32 %p108, %r141, 1;
+ @!%p108 bra BB0_87;
+ bra.uni BB0_86;
+
+BB0_86:
+ cvt.u64.u32 %rd110, %r2;
+ cvt.u64.u32 %rd111, %r3;
+ mov.u64 %rd114, image;
+ cvta.global.u64 %rd109, %rd114;
+ // inline asm
+ call (%rd108), _rt_buffer_get_64, (%rd109, %r26, %r27, %rd110, %rd111, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs57, 0;
+ st.v4.u8 [%rd108], {%rs57, %rs57, %rs57, %rs57};
+ ld.global.u32 %r166, [imageEnabled];
+
+BB0_87:
+ and.b32 %r144, %r166, 8;
+ setp.eq.s32 %p109, %r144, 0;
+ @%p109 bra BB0_89;
+
+ cvt.u64.u32 %rd117, %r2;
+ cvt.u64.u32 %rd118, %r3;
+ mov.u64 %rd121, image_Mask;
+ cvta.global.u64 %rd116, %rd121;
+ // inline asm
+ call (%rd115), _rt_buffer_get_64, (%rd116, %r26, %r26, %rd117, %rd118, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f673, 0f00000000;
+ cvt.rzi.u32.f32 %r147, %f673;
+ cvt.u16.u32 %rs58, %r147;
+ mov.u16 %rs59, 0;
+ st.v2.u8 [%rd115], {%rs58, %rs59};
+ ld.global.u32 %r166, [imageEnabled];
+
+BB0_89:
+ and.b32 %r148, %r166, 4;
+ setp.eq.s32 %p110, %r148, 0;
+ @%p110 bra BB0_93;
+
+ ld.global.u32 %r149, [additive];
+ setp.eq.s32 %p111, %r149, 0;
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ @%p111 bra BB0_92;
+
+ mov.u64 %rd134, image_HDR;
+ cvta.global.u64 %rd123, %rd134;
+ mov.u32 %r153, 8;
+ // inline asm
+ call (%rd122), _rt_buffer_get_64, (%rd123, %r26, %r153, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs66, %rs67, %rs68, %rs69}, [%rd122];
+ // inline asm
+ { cvt.f32.f16 %f674, %rs66;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f675, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f676, %rs68;}
+
+ // inline asm
+ // inline asm
+ call (%rd128), _rt_buffer_get_64, (%rd123, %r26, %r153, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f677, %f674, 0f00000000;
+ add.f32 %f678, %f675, 0f00000000;
+ add.f32 %f679, %f676, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f679;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f678;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs63, %f677;}
+
+ // inline asm
+ mov.u16 %rs70, 0;
+ st.v4.u16 [%rd128], {%rs63, %rs64, %rs65, %rs70};
+ bra.uni BB0_93;
+
+BB0_3:
+ ld.global.v2.u32 {%r43, %r44}, [pixelID];
+ cvt.u64.u32 %rd19, %r43;
+ cvt.u64.u32 %rd20, %r44;
+ mov.u64 %rd23, uvpos;
+ cvta.global.u64 %rd18, %rd23;
+ mov.u32 %r42, 12;
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd18, %r26, %r42, %rd19, %rd20, %rd15, %rd15);
+ // inline asm
+ ld.global.f32 %f7, [lightPos];
+ ld.f32 %f12, [%rd17+8];
+ ld.f32 %f10, [%rd17+4];
+ ld.f32 %f8, [%rd17];
+ sub.f32 %f121, %f7, %f8;
+ ld.global.f32 %f9, [lightPos+4];
+ sub.f32 %f122, %f9, %f10;
+ ld.global.f32 %f11, [lightPos+8];
+ sub.f32 %f123, %f11, %f12;
+ mul.f32 %f124, %f122, %f122;
+ fma.rn.f32 %f125, %f121, %f121, %f124;
+ fma.rn.f32 %f126, %f123, %f123, %f125;
+ sqrt.rn.f32 %f127, %f126;
+ rcp.rn.f32 %f128, %f127;
+ ld.global.f32 %f129, [lightFalloffFakeDistanceMult];
+ mul.f32 %f16, %f127, %f129;
+ ld.global.f32 %f130, [lightInvCutoff];
+ mul.f32 %f17, %f127, %f130;
+ mov.f32 %f134, 0f40800000;
+ abs.f32 %f19, %f17;
+ setp.lt.f32 %p12, %f19, 0f00800000;
+ mul.f32 %f136, %f19, 0f4B800000;
+ selp.f32 %f137, 0fC3170000, 0fC2FE0000, %p12;
+ selp.f32 %f138, %f136, %f19, %p12;
+ mov.b32 %r47, %f138;
+ and.b32 %r48, %r47, 8388607;
+ or.b32 %r49, %r48, 1065353216;
+ mov.b32 %f139, %r49;
+ shr.u32 %r50, %r47, 23;
+ cvt.rn.f32.u32 %f140, %r50;
+ add.f32 %f141, %f137, %f140;
+ setp.gt.f32 %p13, %f139, 0f3FB504F3;
+ mul.f32 %f142, %f139, 0f3F000000;
+ add.f32 %f143, %f141, 0f3F800000;
+ selp.f32 %f144, %f142, %f139, %p13;
+ selp.f32 %f145, %f143, %f141, %p13;
+ add.f32 %f146, %f144, 0fBF800000;
+ add.f32 %f120, %f144, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f119,%f120;
+ // inline asm
+ add.f32 %f147, %f146, %f146;
+ mul.f32 %f148, %f119, %f147;
+ mul.f32 %f149, %f148, %f148;
+ mov.f32 %f150, 0f3C4CAF63;
+ mov.f32 %f151, 0f3B18F0FE;
+ fma.rn.f32 %f152, %f151, %f149, %f150;
+ mov.f32 %f153, 0f3DAAAABD;
+ fma.rn.f32 %f154, %f152, %f149, %f153;
+ mul.rn.f32 %f155, %f154, %f149;
+ mul.rn.f32 %f156, %f155, %f148;
+ sub.f32 %f157, %f146, %f148;
+ neg.f32 %f158, %f148;
+ add.f32 %f159, %f157, %f157;
+ fma.rn.f32 %f160, %f158, %f146, %f159;
+ mul.rn.f32 %f161, %f119, %f160;
+ add.f32 %f162, %f156, %f148;
+ sub.f32 %f163, %f148, %f162;
+ add.f32 %f164, %f156, %f163;
+ add.f32 %f165, %f161, %f164;
+ add.f32 %f166, %f162, %f165;
+ sub.f32 %f167, %f162, %f166;
+ add.f32 %f168, %f165, %f167;
+ mov.f32 %f169, 0f3F317200;
+ mul.rn.f32 %f170, %f145, %f169;
+ mov.f32 %f171, 0f35BFBE8E;
+ mul.rn.f32 %f172, %f145, %f171;
+ add.f32 %f173, %f170, %f166;
+ sub.f32 %f174, %f170, %f173;
+ add.f32 %f175, %f166, %f174;
+ add.f32 %f176, %f168, %f175;
+ add.f32 %f177, %f172, %f176;
+ add.f32 %f178, %f173, %f177;
+ sub.f32 %f179, %f173, %f178;
+ add.f32 %f180, %f177, %f179;
+ mul.rn.f32 %f181, %f134, %f178;
+ neg.f32 %f182, %f181;
+ fma.rn.f32 %f183, %f134, %f178, %f182;
+ fma.rn.f32 %f184, %f134, %f180, %f183;
+ mov.f32 %f185, 0f00000000;
+ fma.rn.f32 %f186, %f185, %f178, %f184;
+ add.rn.f32 %f187, %f181, %f186;
+ neg.f32 %f188, %f187;
+ add.rn.f32 %f189, %f181, %f188;
+ add.rn.f32 %f190, %f189, %f186;
+ mov.b32 %r51, %f187;
+ setp.eq.s32 %p14, %r51, 1118925336;
+ add.s32 %r52, %r51, -1;
+ mov.b32 %f191, %r52;
+ add.f32 %f192, %f190, 0f37000000;
+ selp.f32 %f193, %f191, %f187, %p14;
+ selp.f32 %f20, %f192, %f190, %p14;
+ mul.f32 %f194, %f193, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f195, %f194;
+ mov.f32 %f196, 0fBF317200;
+ fma.rn.f32 %f197, %f195, %f196, %f193;
+ mov.f32 %f198, 0fB5BFBE8E;
+ fma.rn.f32 %f199, %f195, %f198, %f197;
+ mul.f32 %f200, %f199, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f201, %f200;
+ add.f32 %f202, %f195, 0f00000000;
+ ex2.approx.f32 %f203, %f202;
+ mul.f32 %f204, %f201, %f203;
+ setp.lt.f32 %p15, %f193, 0fC2D20000;
+ selp.f32 %f205, 0f00000000, %f204, %p15;
+ setp.gt.f32 %p16, %f193, 0f42D20000;
+ selp.f32 %f735, 0f7F800000, %f205, %p16;
+ setp.eq.f32 %p17, %f735, 0f7F800000;
+ @%p17 bra BB0_5;
+
+ fma.rn.f32 %f735, %f735, %f20, %f735;
+
+BB0_5:
+ mov.f32 %f686, 0f40000000;
+ cvt.rzi.f32.f32 %f685, %f686;
+ add.f32 %f684, %f685, %f685;
+ mov.f32 %f683, 0f40800000;
+ sub.f32 %f682, %f683, %f684;
+ abs.f32 %f681, %f682;
+ setp.lt.f32 %p18, %f17, 0f00000000;
+ setp.eq.f32 %p19, %f681, 0f3F800000;
+ and.pred %p1, %p18, %p19;
+ mov.b32 %r53, %f735;
+ xor.b32 %r54, %r53, -2147483648;
+ mov.b32 %f206, %r54;
+ selp.f32 %f737, %f206, %f735, %p1;
+ setp.eq.f32 %p20, %f17, 0f00000000;
+ @%p20 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f209, %f17, %f17;
+ selp.f32 %f737, %f209, 0f00000000, %p19;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p21, %f17, 0f00000000;
+ @%p21 bra BB0_9;
+
+ mov.f32 %f731, 0f40800000;
+ cvt.rzi.f32.f32 %f208, %f731;
+ setp.neu.f32 %p22, %f208, 0f40800000;
+ selp.f32 %f737, 0f7FFFFFFF, %f737, %p22;
+
+BB0_9:
+ abs.f32 %f687, %f17;
+ add.f32 %f210, %f687, 0f40800000;
+ mov.b32 %r55, %f210;
+ setp.lt.s32 %p24, %r55, 2139095040;
+ @%p24 bra BB0_14;
+
+ abs.f32 %f729, %f17;
+ setp.gtu.f32 %p25, %f729, 0f7F800000;
+ @%p25 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f737, %f17, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f730, %f17;
+ setp.neu.f32 %p26, %f730, 0f7F800000;
+ @%p26 bra BB0_14;
+
+ selp.f32 %f737, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ sub.f32 %f693, %f11, %f12;
+ mul.f32 %f692, %f693, %f128;
+ sub.f32 %f691, %f7, %f8;
+ mul.f32 %f690, %f691, %f128;
+ sub.f32 %f689, %f9, %f10;
+ mul.f32 %f688, %f689, %f128;
+ mov.f32 %f743, 0f3F800000;
+ sub.f32 %f212, %f743, %f737;
+ setp.eq.f32 %p27, %f17, 0f3F800000;
+ selp.f32 %f213, 0f00000000, %f212, %p27;
+ cvt.sat.f32.f32 %f214, %f213;
+ ld.global.f32 %f215, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f216, %f16, %f16, %f215;
+ div.rn.f32 %f217, %f214, %f216;
+ mul.f32 %f218, %f733, %f688;
+ fma.rn.f32 %f219, %f732, %f690, %f218;
+ fma.rn.f32 %f220, %f734, %f692, %f219;
+ ld.global.u32 %r164, [imageEnabled];
+ and.b32 %r56, %r164, 32;
+ ld.global.u32 %r57, [ignoreNormal];
+ or.b32 %r58, %r56, %r57;
+ setp.eq.s32 %p28, %r58, 0;
+ selp.f32 %f221, %f220, 0f3F800000, %p28;
+ cvt.sat.f32.f32 %f222, %f221;
+ mul.f32 %f31, %f217, %f222;
+ ld.global.f32 %f223, [lightColor+4];
+ ld.global.f32 %f224, [lightColor];
+ max.f32 %f225, %f224, %f223;
+ ld.global.f32 %f226, [lightColor+8];
+ max.f32 %f227, %f225, %f226;
+ mul.f32 %f228, %f31, %f227;
+ setp.lt.f32 %p29, %f228, 0f3727C5AC;
+ @%p29 bra BB0_75;
+ bra.uni BB0_15;
+
+BB0_75:
+ and.b32 %r124, %r164, 1;
+ setp.eq.b32 %p103, %r124, 1;
+ @!%p103 bra BB0_77;
+ bra.uni BB0_76;
+
+BB0_76:
+ cvt.u64.u32 %rd69, %r2;
+ cvt.u64.u32 %rd70, %r3;
+ mov.u64 %rd73, image;
+ cvta.global.u64 %rd68, %rd73;
+ // inline asm
+ call (%rd67), _rt_buffer_get_64, (%rd68, %r26, %r27, %rd69, %rd70, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs37, 1;
+ mov.u16 %rs38, 0;
+ st.v4.u8 [%rd67], {%rs38, %rs38, %rs38, %rs37};
+ ld.global.u32 %r164, [imageEnabled];
+
+BB0_77:
+ and.b32 %r127, %r164, 8;
+ setp.eq.s32 %p104, %r127, 0;
+ @%p104 bra BB0_79;
+
+ cvt.u64.u32 %rd76, %r2;
+ cvt.u64.u32 %rd77, %r3;
+ mov.u64 %rd80, image_Mask;
+ cvta.global.u64 %rd75, %rd80;
+ // inline asm
+ call (%rd74), _rt_buffer_get_64, (%rd75, %r26, %r26, %rd76, %rd77, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f662, 0f00000000;
+ cvt.rzi.u32.f32 %r130, %f662;
+ cvt.u16.u32 %rs39, %r130;
+ mov.u16 %rs40, 255;
+ st.v2.u8 [%rd74], {%rs39, %rs40};
+ ld.global.u32 %r164, [imageEnabled];
+
+BB0_79:
+ and.b32 %r131, %r164, 4;
+ setp.eq.s32 %p105, %r131, 0;
+ @%p105 bra BB0_83;
+
+ ld.global.u32 %r132, [additive];
+ setp.eq.s32 %p106, %r132, 0;
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ mov.f32 %f663, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs41, %f663;}
+
+ // inline asm
+ @%p106 bra BB0_82;
+
+ mov.u64 %rd93, image_HDR;
+ cvta.global.u64 %rd82, %rd93;
+ mov.u32 %r136, 8;
+ // inline asm
+ call (%rd81), _rt_buffer_get_64, (%rd82, %r26, %r136, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs48, %rs49, %rs50, %rs51}, [%rd81];
+ // inline asm
+ { cvt.f32.f16 %f664, %rs48;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f665, %rs49;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f666, %rs50;}
+
+ // inline asm
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd82, %r26, %r136, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f667, %f664, 0f00000000;
+ add.f32 %f668, %f665, 0f00000000;
+ add.f32 %f669, %f666, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f669;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f668;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f667;}
+
+ // inline asm
+ st.v4.u16 [%rd87], {%rs45, %rs46, %rs47, %rs41};
+ bra.uni BB0_83;
+
+BB0_15:
+ mov.f32 %f741, 0f00000000;
+ mul.f32 %f230, %f8, 0f3456BF95;
+ abs.f32 %f231, %f732;
+ div.rn.f32 %f232, %f230, %f231;
+ abs.f32 %f233, %f733;
+ mul.f32 %f234, %f10, 0f3456BF95;
+ div.rn.f32 %f235, %f234, %f233;
+ abs.f32 %f236, %f734;
+ mul.f32 %f237, %f12, 0f3456BF95;
+ div.rn.f32 %f238, %f237, %f236;
+ abs.f32 %f239, %f232;
+ abs.f32 %f240, %f235;
+ abs.f32 %f241, %f238;
+ mov.f32 %f242, 0f38D1B717;
+ max.f32 %f243, %f239, %f242;
+ max.f32 %f244, %f240, %f242;
+ max.f32 %f245, %f241, %f242;
+ fma.rn.f32 %f32, %f732, %f243, %f8;
+ fma.rn.f32 %f33, %f733, %f244, %f10;
+ fma.rn.f32 %f34, %f734, %f245, %f12;
+ ld.global.u32 %r160, [samples];
+ setp.lt.s32 %p30, %r160, 1;
+ @%p30 bra BB0_18;
+
+ mul.f32 %f247, %f32, 0f3456BF95;
+ abs.f32 %f248, %f247;
+ mul.f32 %f249, %f33, 0f3456BF95;
+ abs.f32 %f250, %f249;
+ mul.f32 %f251, %f34, 0f3456BF95;
+ abs.f32 %f252, %f251;
+ max.f32 %f253, %f248, %f250;
+ max.f32 %f254, %f253, %f252;
+ max.f32 %f35, %f254, %f242;
+ add.u64 %rd24, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd24;
+ mov.f32 %f741, 0f00000000;
+ mov.u32 %r159, 0;
+ mov.f32 %f738, %f11;
+ mov.f32 %f739, %f9;
+ mov.f32 %f740, %f7;
+ bra.uni BB0_17;
+
+BB0_74:
+ ld.global.f32 %f740, [lightPos];
+ ld.global.f32 %f739, [lightPos+4];
+ ld.global.f32 %f738, [lightPos+8];
+ ld.global.u32 %r164, [imageEnabled];
+
+BB0_17:
+ cvt.rn.f32.s32 %f264, %r159;
+ mul.f32 %f265, %f264, 0f3DD32618;
+ cvt.rmi.f32.f32 %f266, %f265;
+ sub.f32 %f267, %f265, %f266;
+ mul.f32 %f268, %f264, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f269, %f268;
+ sub.f32 %f270, %f268, %f269;
+ mul.f32 %f271, %f264, 0f3DC74539;
+ cvt.rmi.f32.f32 %f272, %f271;
+ sub.f32 %f273, %f271, %f272;
+ add.f32 %f274, %f270, 0f4199851F;
+ add.f32 %f275, %f273, 0f4199851F;
+ add.f32 %f276, %f267, 0f4199851F;
+ mul.f32 %f277, %f270, %f275;
+ fma.rn.f32 %f278, %f267, %f274, %f277;
+ fma.rn.f32 %f279, %f276, %f273, %f278;
+ add.f32 %f280, %f267, %f279;
+ add.f32 %f281, %f270, %f279;
+ add.f32 %f282, %f273, %f279;
+ add.f32 %f283, %f280, %f281;
+ mul.f32 %f284, %f282, %f283;
+ cvt.rmi.f32.f32 %f285, %f284;
+ sub.f32 %f286, %f284, %f285;
+ add.f32 %f287, %f280, %f282;
+ mul.f32 %f288, %f281, %f287;
+ cvt.rmi.f32.f32 %f289, %f288;
+ sub.f32 %f290, %f288, %f289;
+ add.f32 %f291, %f281, %f282;
+ mul.f32 %f292, %f280, %f291;
+ cvt.rmi.f32.f32 %f293, %f292;
+ sub.f32 %f294, %f292, %f293;
+ fma.rn.f32 %f295, %f286, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f296, %f290, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f297, %f294, 0f40000000, 0fBF800000;
+ ld.global.f32 %f298, [lightRadius];
+ fma.rn.f32 %f299, %f298, %f295, %f740;
+ fma.rn.f32 %f300, %f298, %f296, %f739;
+ fma.rn.f32 %f301, %f298, %f297, %f738;
+ sub.f32 %f302, %f299, %f8;
+ sub.f32 %f303, %f300, %f10;
+ sub.f32 %f304, %f301, %f12;
+ mul.f32 %f305, %f303, %f303;
+ fma.rn.f32 %f306, %f302, %f302, %f305;
+ fma.rn.f32 %f307, %f304, %f304, %f306;
+ sqrt.rn.f32 %f263, %f307;
+ rcp.rn.f32 %f308, %f263;
+ mul.f32 %f259, %f308, %f302;
+ mul.f32 %f260, %f308, %f303;
+ mul.f32 %f261, %f308, %f304;
+ and.b32 %r63, %r164, 32;
+ setp.eq.s32 %p31, %r63, 0;
+ selp.f32 %f309, 0f3F800000, 0f41200000, %p31;
+ mul.f32 %f262, %f309, %f35;
+ mov.u32 %r64, 1065353216;
+ st.local.u32 [%rd2], %r64;
+ ld.global.u32 %r60, [root];
+ mov.u32 %r61, 1;
+ // inline asm
+ call _rt_trace_64, (%r60, %f32, %f33, %f34, %f259, %f260, %f261, %r61, %f262, %f263, %rd24, %r27);
+ // inline asm
+ ld.local.f32 %f310, [%rd2];
+ add.f32 %f741, %f741, %f310;
+ ld.global.u32 %r160, [samples];
+ add.s32 %r159, %r159, 1;
+ setp.lt.s32 %p32, %r159, %r160;
+ @%p32 bra BB0_74;
+
+BB0_18:
+ setp.eq.s32 %p33, %r160, 0;
+ @%p33 bra BB0_20;
+
+ cvt.rn.f32.s32 %f312, %r160;
+ div.rn.f32 %f743, %f741, %f312;
+
+BB0_20:
+ ld.global.f32 %f313, [lightColor];
+ mul.f32 %f314, %f31, %f743;
+ mul.f32 %f44, %f313, %f314;
+ ld.global.f32 %f315, [lightColor+4];
+ mul.f32 %f45, %f314, %f315;
+ ld.global.f32 %f316, [lightColor+8];
+ mul.f32 %f46, %f314, %f316;
+ ld.global.u32 %r162, [imageEnabled];
+ and.b32 %r65, %r162, 8;
+ setp.eq.s32 %p34, %r65, 0;
+ @%p34 bra BB0_33;
+
+ mov.f32 %f701, 0fB5BFBE8E;
+ mov.f32 %f700, 0fBF317200;
+ mov.f32 %f699, 0f35BFBE8E;
+ mov.f32 %f698, 0f3F317200;
+ mov.f32 %f697, 0f3DAAAABD;
+ mov.f32 %f696, 0f3C4CAF63;
+ mov.f32 %f695, 0f3B18F0FE;
+ cvt.u64.u32 %rd28, %r2;
+ cvt.u64.u32 %rd29, %r3;
+ mov.u64 %rd32, image_Mask;
+ cvta.global.u64 %rd27, %rd32;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r26, %r26, %rd28, %rd29, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f319, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f320, %f319;
+ fma.rn.f32 %f321, %f320, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f47, %f321;
+ abs.f32 %f48, %f743;
+ setp.lt.f32 %p35, %f48, 0f00800000;
+ mul.f32 %f322, %f48, 0f4B800000;
+ selp.f32 %f323, 0fC3170000, 0fC2FE0000, %p35;
+ selp.f32 %f324, %f322, %f48, %p35;
+ mov.b32 %r68, %f324;
+ and.b32 %r69, %r68, 8388607;
+ or.b32 %r70, %r69, 1065353216;
+ mov.b32 %f325, %r70;
+ shr.u32 %r71, %r68, 23;
+ cvt.rn.f32.u32 %f326, %r71;
+ add.f32 %f327, %f323, %f326;
+ setp.gt.f32 %p36, %f325, 0f3FB504F3;
+ mul.f32 %f328, %f325, 0f3F000000;
+ add.f32 %f329, %f327, 0f3F800000;
+ selp.f32 %f330, %f328, %f325, %p36;
+ selp.f32 %f331, %f329, %f327, %p36;
+ add.f32 %f332, %f330, 0fBF800000;
+ add.f32 %f318, %f330, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f317,%f318;
+ // inline asm
+ add.f32 %f333, %f332, %f332;
+ mul.f32 %f334, %f317, %f333;
+ mul.f32 %f335, %f334, %f334;
+ fma.rn.f32 %f338, %f695, %f335, %f696;
+ fma.rn.f32 %f340, %f338, %f335, %f697;
+ mul.rn.f32 %f341, %f340, %f335;
+ mul.rn.f32 %f342, %f341, %f334;
+ sub.f32 %f343, %f332, %f334;
+ neg.f32 %f344, %f334;
+ add.f32 %f345, %f343, %f343;
+ fma.rn.f32 %f346, %f344, %f332, %f345;
+ mul.rn.f32 %f347, %f317, %f346;
+ add.f32 %f348, %f342, %f334;
+ sub.f32 %f349, %f334, %f348;
+ add.f32 %f350, %f342, %f349;
+ add.f32 %f351, %f347, %f350;
+ add.f32 %f352, %f348, %f351;
+ sub.f32 %f353, %f348, %f352;
+ add.f32 %f354, %f351, %f353;
+ mul.rn.f32 %f356, %f331, %f698;
+ mul.rn.f32 %f358, %f331, %f699;
+ add.f32 %f359, %f356, %f352;
+ sub.f32 %f360, %f356, %f359;
+ add.f32 %f361, %f352, %f360;
+ add.f32 %f362, %f354, %f361;
+ add.f32 %f363, %f358, %f362;
+ add.f32 %f364, %f359, %f363;
+ sub.f32 %f365, %f359, %f364;
+ add.f32 %f366, %f363, %f365;
+ mov.f32 %f367, 0f3EE8BA2E;
+ mul.rn.f32 %f368, %f367, %f364;
+ neg.f32 %f369, %f368;
+ fma.rn.f32 %f370, %f367, %f364, %f369;
+ fma.rn.f32 %f371, %f367, %f366, %f370;
+ mov.f32 %f372, 0f00000000;
+ fma.rn.f32 %f373, %f372, %f364, %f371;
+ add.rn.f32 %f374, %f368, %f373;
+ neg.f32 %f375, %f374;
+ add.rn.f32 %f376, %f368, %f375;
+ add.rn.f32 %f377, %f376, %f373;
+ mov.b32 %r72, %f374;
+ setp.eq.s32 %p37, %r72, 1118925336;
+ add.s32 %r73, %r72, -1;
+ mov.b32 %f378, %r73;
+ add.f32 %f379, %f377, 0f37000000;
+ selp.f32 %f380, %f378, %f374, %p37;
+ selp.f32 %f49, %f379, %f377, %p37;
+ mul.f32 %f381, %f380, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f382, %f381;
+ fma.rn.f32 %f384, %f382, %f700, %f380;
+ fma.rn.f32 %f386, %f382, %f701, %f384;
+ mul.f32 %f387, %f386, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f388, %f387;
+ add.f32 %f389, %f382, 0f00000000;
+ ex2.approx.f32 %f390, %f389;
+ mul.f32 %f391, %f388, %f390;
+ setp.lt.f32 %p38, %f380, 0fC2D20000;
+ selp.f32 %f392, 0f00000000, %f391, %p38;
+ setp.gt.f32 %p39, %f380, 0f42D20000;
+ selp.f32 %f744, 0f7F800000, %f392, %p39;
+ setp.eq.f32 %p40, %f744, 0f7F800000;
+ @%p40 bra BB0_23;
+
+ fma.rn.f32 %f744, %f744, %f49, %f744;
+
+BB0_23:
+ setp.lt.f32 %p41, %f743, 0f00000000;
+ setp.eq.f32 %p42, %f47, 0f3F800000;
+ and.pred %p2, %p41, %p42;
+ mov.b32 %r74, %f744;
+ xor.b32 %r75, %r74, -2147483648;
+ mov.b32 %f393, %r75;
+ selp.f32 %f746, %f393, %f744, %p2;
+ setp.eq.f32 %p43, %f743, 0f00000000;
+ @%p43 bra BB0_26;
+ bra.uni BB0_24;
+
+BB0_26:
+ add.f32 %f396, %f743, %f743;
+ selp.f32 %f746, %f396, 0f00000000, %p42;
+ bra.uni BB0_27;
+
+BB0_92:
+ mov.u64 %rd141, image_HDR;
+ cvta.global.u64 %rd136, %rd141;
+ mov.u32 %r155, 8;
+ // inline asm
+ call (%rd135), _rt_buffer_get_64, (%rd136, %r26, %r155, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f680, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f680;}
+
+ // inline asm
+ mov.u16 %rs72, 0;
+ st.v4.u16 [%rd135], {%rs71, %rs71, %rs71, %rs72};
+
+BB0_93:
+ ld.global.u8 %rs73, [imageEnabled];
+ and.b16 %rs74, %rs73, 64;
+ setp.eq.s16 %p112, %rs74, 0;
+ @%p112 bra BB0_95;
+
+ cvt.u64.u32 %rd144, %r2;
+ cvt.u64.u32 %rd145, %r3;
+ mov.u64 %rd148, image_Dir;
+ cvta.global.u64 %rd143, %rd148;
+ // inline asm
+ call (%rd142), _rt_buffer_get_64, (%rd143, %r26, %r27, %rd144, %rd145, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs75, 0;
+ st.v4.u8 [%rd142], {%rs75, %rs75, %rs75, %rs75};
+ bra.uni BB0_95;
+
+BB0_82:
+ mov.u64 %rd100, image_HDR;
+ cvta.global.u64 %rd95, %rd100;
+ mov.u32 %r138, 8;
+ // inline asm
+ call (%rd94), _rt_buffer_get_64, (%rd95, %r26, %r138, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f670, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f670;}
+
+ // inline asm
+ st.v4.u16 [%rd94], {%rs52, %rs52, %rs52, %rs41};
+
+BB0_83:
+ ld.global.u8 %rs53, [imageEnabled];
+ and.b16 %rs54, %rs53, 64;
+ setp.eq.s16 %p107, %rs54, 0;
+ @%p107 bra BB0_95;
+
+ cvt.u64.u32 %rd103, %r2;
+ cvt.u64.u32 %rd104, %r3;
+ mov.u64 %rd107, image_Dir;
+ cvta.global.u64 %rd102, %rd107;
+ // inline asm
+ call (%rd101), _rt_buffer_get_64, (%rd102, %r26, %r27, %rd103, %rd104, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs55, 255;
+ mov.u16 %rs56, 0;
+ st.v4.u8 [%rd101], {%rs56, %rs56, %rs56, %rs55};
+ bra.uni BB0_95;
+
+BB0_24:
+ setp.geu.f32 %p44, %f743, 0f00000000;
+ @%p44 bra BB0_27;
+
+ cvt.rzi.f32.f32 %f395, %f367;
+ setp.neu.f32 %p45, %f395, 0f3EE8BA2E;
+ selp.f32 %f746, 0f7FFFFFFF, %f746, %p45;
+
+BB0_27:
+ add.f32 %f397, %f48, 0f3EE8BA2E;
+ mov.b32 %r76, %f397;
+ setp.lt.s32 %p47, %r76, 2139095040;
+ @%p47 bra BB0_32;
+
+ setp.gtu.f32 %p48, %f48, 0f7F800000;
+ @%p48 bra BB0_31;
+ bra.uni BB0_29;
+
+BB0_31:
+ add.f32 %f746, %f743, 0f3EE8BA2E;
+ bra.uni BB0_32;
+
+BB0_29:
+ setp.neu.f32 %p49, %f48, 0f7F800000;
+ @%p49 bra BB0_32;
+
+ selp.f32 %f746, 0fFF800000, 0f7F800000, %p2;
+
+BB0_32:
+ mul.f32 %f398, %f746, 0f437F0000;
+ setp.eq.f32 %p50, %f743, 0f3F800000;
+ selp.f32 %f399, 0f437F0000, %f398, %p50;
+ cvt.rzi.u32.f32 %r77, %f399;
+ cvt.u16.u32 %rs11, %r77;
+ mov.u16 %rs12, 255;
+ st.v2.u8 [%rd26], {%rs11, %rs12};
+ ld.global.u32 %r162, [imageEnabled];
+
+BB0_33:
+ and.b32 %r78, %r162, 1;
+ setp.eq.b32 %p51, %r78, 1;
+ @!%p51 bra BB0_68;
+ bra.uni BB0_34;
+
+BB0_34:
+ mov.f32 %f708, 0fB5BFBE8E;
+ mov.f32 %f707, 0fBF317200;
+ mov.f32 %f706, 0f35BFBE8E;
+ mov.f32 %f705, 0f3F317200;
+ mov.f32 %f704, 0f3DAAAABD;
+ mov.f32 %f703, 0f3C4CAF63;
+ mov.f32 %f702, 0f3B18F0FE;
+ mov.f32 %f402, 0f3E666666;
+ cvt.rzi.f32.f32 %f403, %f402;
+ fma.rn.f32 %f404, %f403, 0fC0000000, 0f3EE66666;
+ abs.f32 %f60, %f404;
+ abs.f32 %f61, %f44;
+ setp.lt.f32 %p52, %f61, 0f00800000;
+ mul.f32 %f405, %f61, 0f4B800000;
+ selp.f32 %f406, 0fC3170000, 0fC2FE0000, %p52;
+ selp.f32 %f407, %f405, %f61, %p52;
+ mov.b32 %r79, %f407;
+ and.b32 %r80, %r79, 8388607;
+ or.b32 %r81, %r80, 1065353216;
+ mov.b32 %f408, %r81;
+ shr.u32 %r82, %r79, 23;
+ cvt.rn.f32.u32 %f409, %r82;
+ add.f32 %f410, %f406, %f409;
+ setp.gt.f32 %p53, %f408, 0f3FB504F3;
+ mul.f32 %f411, %f408, 0f3F000000;
+ add.f32 %f412, %f410, 0f3F800000;
+ selp.f32 %f413, %f411, %f408, %p53;
+ selp.f32 %f414, %f412, %f410, %p53;
+ add.f32 %f415, %f413, 0fBF800000;
+ add.f32 %f401, %f413, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f400,%f401;
+ // inline asm
+ add.f32 %f416, %f415, %f415;
+ mul.f32 %f417, %f400, %f416;
+ mul.f32 %f418, %f417, %f417;
+ fma.rn.f32 %f421, %f702, %f418, %f703;
+ fma.rn.f32 %f423, %f421, %f418, %f704;
+ mul.rn.f32 %f424, %f423, %f418;
+ mul.rn.f32 %f425, %f424, %f417;
+ sub.f32 %f426, %f415, %f417;
+ neg.f32 %f427, %f417;
+ add.f32 %f428, %f426, %f426;
+ fma.rn.f32 %f429, %f427, %f415, %f428;
+ mul.rn.f32 %f430, %f400, %f429;
+ add.f32 %f431, %f425, %f417;
+ sub.f32 %f432, %f417, %f431;
+ add.f32 %f433, %f425, %f432;
+ add.f32 %f434, %f430, %f433;
+ add.f32 %f435, %f431, %f434;
+ sub.f32 %f436, %f431, %f435;
+ add.f32 %f437, %f434, %f436;
+ mul.rn.f32 %f439, %f414, %f705;
+ mul.rn.f32 %f441, %f414, %f706;
+ add.f32 %f442, %f439, %f435;
+ sub.f32 %f443, %f439, %f442;
+ add.f32 %f444, %f435, %f443;
+ add.f32 %f445, %f437, %f444;
+ add.f32 %f446, %f441, %f445;
+ add.f32 %f447, %f442, %f446;
+ sub.f32 %f448, %f442, %f447;
+ add.f32 %f449, %f446, %f448;
+ mov.f32 %f450, 0f3EE66666;
+ mul.rn.f32 %f451, %f450, %f447;
+ neg.f32 %f452, %f451;
+ fma.rn.f32 %f453, %f450, %f447, %f452;
+ fma.rn.f32 %f454, %f450, %f449, %f453;
+ mov.f32 %f455, 0f00000000;
+ fma.rn.f32 %f456, %f455, %f447, %f454;
+ add.rn.f32 %f457, %f451, %f456;
+ neg.f32 %f458, %f457;
+ add.rn.f32 %f459, %f451, %f458;
+ add.rn.f32 %f460, %f459, %f456;
+ mov.b32 %r83, %f457;
+ setp.eq.s32 %p54, %r83, 1118925336;
+ add.s32 %r84, %r83, -1;
+ mov.b32 %f461, %r84;
+ add.f32 %f462, %f460, 0f37000000;
+ selp.f32 %f463, %f461, %f457, %p54;
+ selp.f32 %f62, %f462, %f460, %p54;
+ mul.f32 %f464, %f463, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f465, %f464;
+ fma.rn.f32 %f467, %f465, %f707, %f463;
+ fma.rn.f32 %f469, %f465, %f708, %f467;
+ mul.f32 %f470, %f469, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f471, %f470;
+ add.f32 %f472, %f465, 0f00000000;
+ ex2.approx.f32 %f473, %f472;
+ mul.f32 %f474, %f471, %f473;
+ setp.lt.f32 %p55, %f463, 0fC2D20000;
+ selp.f32 %f475, 0f00000000, %f474, %p55;
+ setp.gt.f32 %p56, %f463, 0f42D20000;
+ selp.f32 %f747, 0f7F800000, %f475, %p56;
+ setp.eq.f32 %p57, %f747, 0f7F800000;
+ @%p57 bra BB0_36;
+
+ fma.rn.f32 %f747, %f747, %f62, %f747;
+
+BB0_36:
+ setp.lt.f32 %p58, %f44, 0f00000000;
+ setp.eq.f32 %p59, %f60, 0f3F800000;
+ and.pred %p3, %p58, %p59;
+ mov.b32 %r85, %f747;
+ xor.b32 %r86, %r85, -2147483648;
+ mov.b32 %f476, %r86;
+ selp.f32 %f749, %f476, %f747, %p3;
+ setp.eq.f32 %p60, %f44, 0f00000000;
+ @%p60 bra BB0_39;
+ bra.uni BB0_37;
+
+BB0_39:
+ add.f32 %f479, %f44, %f44;
+ selp.f32 %f749, %f479, 0f00000000, %p59;
+ bra.uni BB0_40;
+
+BB0_37:
+ setp.geu.f32 %p61, %f44, 0f00000000;
+ @%p61 bra BB0_40;
+
+ cvt.rzi.f32.f32 %f478, %f450;
+ setp.neu.f32 %p62, %f478, 0f3EE66666;
+ selp.f32 %f749, 0f7FFFFFFF, %f749, %p62;
+
+BB0_40:
+ add.f32 %f480, %f61, 0f3EE66666;
+ mov.b32 %r87, %f480;
+ setp.lt.s32 %p64, %r87, 2139095040;
+ @%p64 bra BB0_45;
+
+ setp.gtu.f32 %p65, %f61, 0f7F800000;
+ @%p65 bra BB0_44;
+ bra.uni BB0_42;
+
+BB0_44:
+ add.f32 %f749, %f44, 0f3EE66666;
+ bra.uni BB0_45;
+
+BB0_42:
+ setp.neu.f32 %p66, %f61, 0f7F800000;
+ @%p66 bra BB0_45;
+
+ selp.f32 %f749, 0fFF800000, 0f7F800000, %p3;
+
+BB0_45:
+ mov.f32 %f715, 0fB5BFBE8E;
+ mov.f32 %f714, 0fBF317200;
+ mov.f32 %f713, 0f35BFBE8E;
+ mov.f32 %f712, 0f3F317200;
+ mov.f32 %f711, 0f3DAAAABD;
+ mov.f32 %f710, 0f3C4CAF63;
+ mov.f32 %f709, 0f3B18F0FE;
+ setp.eq.f32 %p67, %f44, 0f3F800000;
+ selp.f32 %f73, 0f3F800000, %f749, %p67;
+ abs.f32 %f74, %f45;
+ setp.lt.f32 %p68, %f74, 0f00800000;
+ mul.f32 %f483, %f74, 0f4B800000;
+ selp.f32 %f484, 0fC3170000, 0fC2FE0000, %p68;
+ selp.f32 %f485, %f483, %f74, %p68;
+ mov.b32 %r88, %f485;
+ and.b32 %r89, %r88, 8388607;
+ or.b32 %r90, %r89, 1065353216;
+ mov.b32 %f486, %r90;
+ shr.u32 %r91, %r88, 23;
+ cvt.rn.f32.u32 %f487, %r91;
+ add.f32 %f488, %f484, %f487;
+ setp.gt.f32 %p69, %f486, 0f3FB504F3;
+ mul.f32 %f489, %f486, 0f3F000000;
+ add.f32 %f490, %f488, 0f3F800000;
+ selp.f32 %f491, %f489, %f486, %p69;
+ selp.f32 %f492, %f490, %f488, %p69;
+ add.f32 %f493, %f491, 0fBF800000;
+ add.f32 %f482, %f491, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f481,%f482;
+ // inline asm
+ add.f32 %f494, %f493, %f493;
+ mul.f32 %f495, %f481, %f494;
+ mul.f32 %f496, %f495, %f495;
+ fma.rn.f32 %f499, %f709, %f496, %f710;
+ fma.rn.f32 %f501, %f499, %f496, %f711;
+ mul.rn.f32 %f502, %f501, %f496;
+ mul.rn.f32 %f503, %f502, %f495;
+ sub.f32 %f504, %f493, %f495;
+ neg.f32 %f505, %f495;
+ add.f32 %f506, %f504, %f504;
+ fma.rn.f32 %f507, %f505, %f493, %f506;
+ mul.rn.f32 %f508, %f481, %f507;
+ add.f32 %f509, %f503, %f495;
+ sub.f32 %f510, %f495, %f509;
+ add.f32 %f511, %f503, %f510;
+ add.f32 %f512, %f508, %f511;
+ add.f32 %f513, %f509, %f512;
+ sub.f32 %f514, %f509, %f513;
+ add.f32 %f515, %f512, %f514;
+ mul.rn.f32 %f517, %f492, %f712;
+ mul.rn.f32 %f519, %f492, %f713;
+ add.f32 %f520, %f517, %f513;
+ sub.f32 %f521, %f517, %f520;
+ add.f32 %f522, %f513, %f521;
+ add.f32 %f523, %f515, %f522;
+ add.f32 %f524, %f519, %f523;
+ add.f32 %f525, %f520, %f524;
+ sub.f32 %f526, %f520, %f525;
+ add.f32 %f527, %f524, %f526;
+ mul.rn.f32 %f529, %f450, %f525;
+ neg.f32 %f530, %f529;
+ fma.rn.f32 %f531, %f450, %f525, %f530;
+ fma.rn.f32 %f532, %f450, %f527, %f531;
+ fma.rn.f32 %f534, %f455, %f525, %f532;
+ add.rn.f32 %f535, %f529, %f534;
+ neg.f32 %f536, %f535;
+ add.rn.f32 %f537, %f529, %f536;
+ add.rn.f32 %f538, %f537, %f534;
+ mov.b32 %r92, %f535;
+ setp.eq.s32 %p70, %r92, 1118925336;
+ add.s32 %r93, %r92, -1;
+ mov.b32 %f539, %r93;
+ add.f32 %f540, %f538, 0f37000000;
+ selp.f32 %f541, %f539, %f535, %p70;
+ selp.f32 %f75, %f540, %f538, %p70;
+ mul.f32 %f542, %f541, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f543, %f542;
+ fma.rn.f32 %f545, %f543, %f714, %f541;
+ fma.rn.f32 %f547, %f543, %f715, %f545;
+ mul.f32 %f548, %f547, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f549, %f548;
+ add.f32 %f550, %f543, 0f00000000;
+ ex2.approx.f32 %f551, %f550;
+ mul.f32 %f552, %f549, %f551;
+ setp.lt.f32 %p71, %f541, 0fC2D20000;
+ selp.f32 %f553, 0f00000000, %f552, %p71;
+ setp.gt.f32 %p72, %f541, 0f42D20000;
+ selp.f32 %f750, 0f7F800000, %f553, %p72;
+ setp.eq.f32 %p73, %f750, 0f7F800000;
+ @%p73 bra BB0_47;
+
+ fma.rn.f32 %f750, %f750, %f75, %f750;
+
+BB0_47:
+ setp.lt.f32 %p74, %f45, 0f00000000;
+ and.pred %p4, %p74, %p59;
+ mov.b32 %r94, %f750;
+ xor.b32 %r95, %r94, -2147483648;
+ mov.b32 %f554, %r95;
+ selp.f32 %f752, %f554, %f750, %p4;
+ setp.eq.f32 %p76, %f45, 0f00000000;
+ @%p76 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f557, %f45, %f45;
+ selp.f32 %f752, %f557, 0f00000000, %p59;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p77, %f45, 0f00000000;
+ @%p77 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f556, %f450;
+ setp.neu.f32 %p78, %f556, 0f3EE66666;
+ selp.f32 %f752, 0f7FFFFFFF, %f752, %p78;
+
+BB0_51:
+ add.f32 %f558, %f74, 0f3EE66666;
+ mov.b32 %r96, %f558;
+ setp.lt.s32 %p80, %r96, 2139095040;
+ @%p80 bra BB0_56;
+
+ setp.gtu.f32 %p81, %f74, 0f7F800000;
+ @%p81 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f752, %f45, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p82, %f74, 0f7F800000;
+ @%p82 bra BB0_56;
+
+ selp.f32 %f752, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f722, 0fB5BFBE8E;
+ mov.f32 %f721, 0fBF317200;
+ mov.f32 %f720, 0f35BFBE8E;
+ mov.f32 %f719, 0f3F317200;
+ mov.f32 %f718, 0f3DAAAABD;
+ mov.f32 %f717, 0f3C4CAF63;
+ mov.f32 %f716, 0f3B18F0FE;
+ setp.eq.f32 %p83, %f45, 0f3F800000;
+ selp.f32 %f86, 0f3F800000, %f752, %p83;
+ abs.f32 %f87, %f46;
+ setp.lt.f32 %p84, %f87, 0f00800000;
+ mul.f32 %f561, %f87, 0f4B800000;
+ selp.f32 %f562, 0fC3170000, 0fC2FE0000, %p84;
+ selp.f32 %f563, %f561, %f87, %p84;
+ mov.b32 %r97, %f563;
+ and.b32 %r98, %r97, 8388607;
+ or.b32 %r99, %r98, 1065353216;
+ mov.b32 %f564, %r99;
+ shr.u32 %r100, %r97, 23;
+ cvt.rn.f32.u32 %f565, %r100;
+ add.f32 %f566, %f562, %f565;
+ setp.gt.f32 %p85, %f564, 0f3FB504F3;
+ mul.f32 %f567, %f564, 0f3F000000;
+ add.f32 %f568, %f566, 0f3F800000;
+ selp.f32 %f569, %f567, %f564, %p85;
+ selp.f32 %f570, %f568, %f566, %p85;
+ add.f32 %f571, %f569, 0fBF800000;
+ add.f32 %f560, %f569, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f559,%f560;
+ // inline asm
+ add.f32 %f572, %f571, %f571;
+ mul.f32 %f573, %f559, %f572;
+ mul.f32 %f574, %f573, %f573;
+ fma.rn.f32 %f577, %f716, %f574, %f717;
+ fma.rn.f32 %f579, %f577, %f574, %f718;
+ mul.rn.f32 %f580, %f579, %f574;
+ mul.rn.f32 %f581, %f580, %f573;
+ sub.f32 %f582, %f571, %f573;
+ neg.f32 %f583, %f573;
+ add.f32 %f584, %f582, %f582;
+ fma.rn.f32 %f585, %f583, %f571, %f584;
+ mul.rn.f32 %f586, %f559, %f585;
+ add.f32 %f587, %f581, %f573;
+ sub.f32 %f588, %f573, %f587;
+ add.f32 %f589, %f581, %f588;
+ add.f32 %f590, %f586, %f589;
+ add.f32 %f591, %f587, %f590;
+ sub.f32 %f592, %f587, %f591;
+ add.f32 %f593, %f590, %f592;
+ mul.rn.f32 %f595, %f570, %f719;
+ mul.rn.f32 %f597, %f570, %f720;
+ add.f32 %f598, %f595, %f591;
+ sub.f32 %f599, %f595, %f598;
+ add.f32 %f600, %f591, %f599;
+ add.f32 %f601, %f593, %f600;
+ add.f32 %f602, %f597, %f601;
+ add.f32 %f603, %f598, %f602;
+ sub.f32 %f604, %f598, %f603;
+ add.f32 %f605, %f602, %f604;
+ mul.rn.f32 %f607, %f450, %f603;
+ neg.f32 %f608, %f607;
+ fma.rn.f32 %f609, %f450, %f603, %f608;
+ fma.rn.f32 %f610, %f450, %f605, %f609;
+ fma.rn.f32 %f612, %f455, %f603, %f610;
+ add.rn.f32 %f613, %f607, %f612;
+ neg.f32 %f614, %f613;
+ add.rn.f32 %f615, %f607, %f614;
+ add.rn.f32 %f616, %f615, %f612;
+ mov.b32 %r101, %f613;
+ setp.eq.s32 %p86, %r101, 1118925336;
+ add.s32 %r102, %r101, -1;
+ mov.b32 %f617, %r102;
+ add.f32 %f618, %f616, 0f37000000;
+ selp.f32 %f619, %f617, %f613, %p86;
+ selp.f32 %f88, %f618, %f616, %p86;
+ mul.f32 %f620, %f619, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f621, %f620;
+ fma.rn.f32 %f623, %f621, %f721, %f619;
+ fma.rn.f32 %f625, %f621, %f722, %f623;
+ mul.f32 %f626, %f625, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f627, %f626;
+ add.f32 %f628, %f621, 0f00000000;
+ ex2.approx.f32 %f629, %f628;
+ mul.f32 %f630, %f627, %f629;
+ setp.lt.f32 %p87, %f619, 0fC2D20000;
+ selp.f32 %f631, 0f00000000, %f630, %p87;
+ setp.gt.f32 %p88, %f619, 0f42D20000;
+ selp.f32 %f753, 0f7F800000, %f631, %p88;
+ setp.eq.f32 %p89, %f753, 0f7F800000;
+ @%p89 bra BB0_58;
+
+ fma.rn.f32 %f753, %f753, %f88, %f753;
+
+BB0_58:
+ setp.lt.f32 %p90, %f46, 0f00000000;
+ and.pred %p5, %p90, %p59;
+ mov.b32 %r103, %f753;
+ xor.b32 %r104, %r103, -2147483648;
+ mov.b32 %f632, %r104;
+ selp.f32 %f755, %f632, %f753, %p5;
+ setp.eq.f32 %p92, %f46, 0f00000000;
+ @%p92 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f635, %f46, %f46;
+ selp.f32 %f755, %f635, 0f00000000, %p59;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p93, %f46, 0f00000000;
+ @%p93 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f634, %f450;
+ setp.neu.f32 %p94, %f634, 0f3EE66666;
+ selp.f32 %f755, 0f7FFFFFFF, %f755, %p94;
+
+BB0_62:
+ add.f32 %f636, %f87, 0f3EE66666;
+ mov.b32 %r105, %f636;
+ setp.lt.s32 %p96, %r105, 2139095040;
+ @%p96 bra BB0_67;
+
+ setp.gtu.f32 %p97, %f87, 0f7F800000;
+ @%p97 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f755, %f46, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p98, %f87, 0f7F800000;
+ @%p98 bra BB0_67;
+
+ selp.f32 %f755, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ setp.eq.f32 %p99, %f46, 0f3F800000;
+ selp.f32 %f637, 0f3F800000, %f755, %p99;
+ cvt.u64.u32 %rd36, %r3;
+ cvt.u64.u32 %rd35, %r2;
+ mov.u64 %rd39, image;
+ cvta.global.u64 %rd34, %rd39;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r26, %r27, %rd35, %rd36, %rd15, %rd15);
+ // inline asm
+ cvt.sat.f32.f32 %f638, %f637;
+ mul.f32 %f639, %f638, 0f437FFD71;
+ cvt.rzi.u32.f32 %r108, %f639;
+ cvt.sat.f32.f32 %f640, %f86;
+ mul.f32 %f641, %f640, 0f437FFD71;
+ cvt.rzi.u32.f32 %r109, %f641;
+ cvt.sat.f32.f32 %f642, %f73;
+ mul.f32 %f643, %f642, 0f437FFD71;
+ cvt.rzi.u32.f32 %r110, %f643;
+ cvt.u16.u32 %rs13, %r108;
+ cvt.u16.u32 %rs14, %r110;
+ cvt.u16.u32 %rs15, %r109;
+ mov.u16 %rs16, 255;
+ st.v4.u8 [%rd33], {%rs13, %rs15, %rs14, %rs16};
+ ld.global.u32 %r162, [imageEnabled];
+
+BB0_68:
+ and.b32 %r111, %r162, 4;
+ setp.eq.s32 %p100, %r111, 0;
+ @%p100 bra BB0_72;
+
+ ld.global.u32 %r112, [additive];
+ setp.eq.s32 %p101, %r112, 0;
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ mov.f32 %f644, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs17, %f644;}
+
+ // inline asm
+ @%p101 bra BB0_71;
+
+ mov.u64 %rd52, image_HDR;
+ cvta.global.u64 %rd41, %rd52;
+ mov.u32 %r116, 8;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r26, %r116, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs24, %rs25, %rs26, %rs27}, [%rd40];
+ // inline asm
+ { cvt.f32.f16 %f645, %rs24;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f646, %rs25;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f647, %rs26;}
+
+ // inline asm
+ // inline asm
+ call (%rd46), _rt_buffer_get_64, (%rd41, %r26, %r116, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f648, %f44, %f645;
+ add.f32 %f649, %f45, %f646;
+ add.f32 %f650, %f46, %f647;
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f650;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f649;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs21, %f648;}
+
+ // inline asm
+ st.v4.u16 [%rd46], {%rs21, %rs22, %rs23, %rs17};
+ bra.uni BB0_72;
+
+BB0_71:
+ mov.u64 %rd59, image_HDR;
+ cvta.global.u64 %rd54, %rd59;
+ mov.u32 %r118, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r26, %r118, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f46;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f45;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f44;}
+
+ // inline asm
+ st.v4.u16 [%rd53], {%rs28, %rs29, %rs30, %rs17};
+
+BB0_72:
+ ld.global.u8 %rs31, [imageEnabled];
+ and.b16 %rs32, %rs31, 64;
+ setp.eq.s16 %p102, %rs32, 0;
+ @%p102 bra BB0_95;
+
+ sub.f32 %f728, %f11, %f12;
+ mul.f32 %f727, %f728, %f128;
+ sub.f32 %f726, %f7, %f8;
+ mul.f32 %f725, %f726, %f128;
+ sub.f32 %f724, %f9, %f10;
+ mul.f32 %f723, %f724, %f128;
+ cvt.u64.u32 %rd62, %r2;
+ cvt.u64.u32 %rd63, %r3;
+ mov.u64 %rd66, image_Dir;
+ cvta.global.u64 %rd61, %rd66;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r26, %r27, %rd62, %rd63, %rd15, %rd15);
+ // inline asm
+ fma.rn.f32 %f654, %f725, 0f3F000000, 0f3F000000;
+ mul.f32 %f655, %f654, 0f437F0000;
+ cvt.rzi.u32.f32 %r121, %f655;
+ fma.rn.f32 %f656, %f723, 0f3F000000, 0f3F000000;
+ mul.f32 %f657, %f656, 0f437F0000;
+ cvt.rzi.u32.f32 %r122, %f657;
+ fma.rn.f32 %f658, %f727, 0f3F000000, 0f3F000000;
+ mul.f32 %f659, %f658, 0f437F0000;
+ cvt.rzi.u32.f32 %r123, %f659;
+ cvt.u16.u32 %rs33, %r123;
+ cvt.u16.u32 %rs34, %r122;
+ cvt.u16.u32 %rs35, %r121;
+ mov.u16 %rs36, 255;
+ st.v4.u8 [%rd60], {%rs35, %rs34, %rs33, %rs36};
+
+BB0_95:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLight.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLight.ptx.meta
new file mode 100644
index 00000000..a3025c2b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLight.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 643f64e75c271514eb491a5b5bcf534a
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightProbeSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightProbeSH.ptx
new file mode 100644
index 00000000..c8f681fd
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightProbeSH.ptx
@@ -0,0 +1,2250 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<122>;
+ .reg .b16 %rs<221>;
+ .reg .f32 %f<855>;
+ .reg .b32 %r<242>;
+ .reg .b64 %rd<369>;
+
+
+ mov.u64 %rd368, __local_depot0;
+ cvta.local.u64 %SP, %rd368;
+ ld.global.v2.u32 {%r28, %r29}, [pixelID];
+ cvt.u64.u32 %rd12, %r28;
+ cvt.u64.u32 %rd13, %r29;
+ mov.u64 %rd16, uvnormal;
+ cvta.global.u64 %rd11, %rd16;
+ mov.u32 %r26, 2;
+ mov.u32 %r27, 4;
+ mov.u64 %rd15, 0;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r26, %r27, %rd12, %rd13, %rd15, %rd15);
+ // inline asm
+ ld.u32 %r1, [%rd10];
+ shr.u32 %r32, %r1, 16;
+ cvt.u16.u32 %rs1, %r32;
+ and.b16 %rs12, %rs1, 255;
+ cvt.u16.u32 %rs13, %r1;
+ or.b16 %rs14, %rs13, %rs12;
+ setp.eq.s16 %p6, %rs14, 0;
+ mov.f32 %f831, 0f00000000;
+ mov.f32 %f832, %f831;
+ mov.f32 %f833, %f831;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs15, [%rd10+1];
+ and.b16 %rs17, %rs13, 255;
+ cvt.rn.f32.u16 %f113, %rs17;
+ div.rn.f32 %f114, %f113, 0f437F0000;
+ fma.rn.f32 %f115, %f114, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f116, %rs15;
+ div.rn.f32 %f117, %f116, 0f437F0000;
+ fma.rn.f32 %f118, %f117, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f119, %rs12;
+ div.rn.f32 %f120, %f119, 0f437F0000;
+ fma.rn.f32 %f121, %f120, 0f40000000, 0fBF800000;
+ mul.f32 %f122, %f118, %f118;
+ fma.rn.f32 %f123, %f115, %f115, %f122;
+ fma.rn.f32 %f124, %f121, %f121, %f123;
+ sqrt.rn.f32 %f125, %f124;
+ rcp.rn.f32 %f126, %f125;
+ mul.f32 %f831, %f115, %f126;
+ mul.f32 %f832, %f118, %f126;
+ mul.f32 %f833, %f121, %f126;
+
+BB0_2:
+ ld.global.v2.u32 {%r33, %r34}, [pixelID];
+ ld.global.v2.u32 {%r36, %r37}, [tileInfo];
+ add.s32 %r2, %r33, %r36;
+ add.s32 %r3, %r34, %r37;
+ setp.eq.f32 %p7, %f832, 0f00000000;
+ setp.eq.f32 %p8, %f831, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f833, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_105;
+ bra.uni BB0_3;
+
+BB0_105:
+ ld.global.u32 %r241, [imageEnabled];
+ and.b32 %r190, %r241, 1;
+ setp.eq.b32 %p114, %r190, 1;
+ @!%p114 bra BB0_107;
+ bra.uni BB0_106;
+
+BB0_106:
+ cvt.u64.u32 %rd256, %r2;
+ cvt.u64.u32 %rd257, %r3;
+ mov.u64 %rd260, image;
+ cvta.global.u64 %rd255, %rd260;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r26, %r27, %rd256, %rd257, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs153, 0;
+ st.v4.u8 [%rd254], {%rs153, %rs153, %rs153, %rs153};
+ ld.global.u32 %r241, [imageEnabled];
+
+BB0_107:
+ and.b32 %r193, %r241, 8;
+ setp.eq.s32 %p115, %r193, 0;
+ @%p115 bra BB0_109;
+
+ cvt.u64.u32 %rd264, %r3;
+ cvt.u64.u32 %rd263, %r2;
+ mov.u64 %rd267, image_Mask;
+ cvta.global.u64 %rd262, %rd267;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r26, %r26, %rd263, %rd264, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f744, 0f00000000;
+ cvt.rzi.u32.f32 %r196, %f744;
+ cvt.u16.u32 %rs154, %r196;
+ mov.u16 %rs155, 0;
+ st.v2.u8 [%rd261], {%rs154, %rs155};
+ ld.global.u32 %r241, [imageEnabled];
+
+BB0_109:
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ and.b32 %r197, %r241, 4;
+ setp.eq.s32 %p116, %r197, 0;
+ @%p116 bra BB0_113;
+
+ ld.global.u32 %r198, [additive];
+ setp.eq.s32 %p117, %r198, 0;
+ @%p117 bra BB0_112;
+
+ mov.u64 %rd280, image_HDR;
+ cvta.global.u64 %rd269, %rd280;
+ mov.u32 %r202, 8;
+ // inline asm
+ call (%rd268), _rt_buffer_get_64, (%rd269, %r26, %r202, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs162, %rs163, %rs164, %rs165}, [%rd268];
+ // inline asm
+ { cvt.f32.f16 %f745, %rs162;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f746, %rs163;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f747, %rs164;}
+
+ // inline asm
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd269, %r26, %r202, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f748, %f745, 0f00000000;
+ add.f32 %f749, %f746, 0f00000000;
+ add.f32 %f750, %f747, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs161, %f750;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs160, %f749;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs159, %f748;}
+
+ // inline asm
+ mov.u16 %rs166, 0;
+ st.v4.u16 [%rd274], {%rs159, %rs160, %rs161, %rs166};
+ bra.uni BB0_113;
+
+BB0_3:
+ ld.global.v2.u32 {%r43, %r44}, [pixelID];
+ cvt.u64.u32 %rd19, %r43;
+ cvt.u64.u32 %rd20, %r44;
+ mov.u64 %rd23, uvpos;
+ cvta.global.u64 %rd18, %rd23;
+ mov.u32 %r42, 12;
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd18, %r26, %r42, %rd19, %rd20, %rd15, %rd15);
+ // inline asm
+ ld.global.f32 %f7, [lightPos];
+ ld.f32 %f12, [%rd17+8];
+ ld.f32 %f10, [%rd17+4];
+ ld.f32 %f8, [%rd17];
+ sub.f32 %f129, %f7, %f8;
+ ld.global.f32 %f9, [lightPos+4];
+ sub.f32 %f130, %f9, %f10;
+ ld.global.f32 %f11, [lightPos+8];
+ sub.f32 %f131, %f11, %f12;
+ mul.f32 %f132, %f130, %f130;
+ fma.rn.f32 %f133, %f129, %f129, %f132;
+ fma.rn.f32 %f134, %f131, %f131, %f133;
+ sqrt.rn.f32 %f135, %f134;
+ rcp.rn.f32 %f136, %f135;
+ ld.global.f32 %f137, [lightFalloffFakeDistanceMult];
+ mul.f32 %f16, %f135, %f137;
+ ld.global.f32 %f138, [lightInvCutoff];
+ mul.f32 %f17, %f135, %f138;
+ mov.f32 %f142, 0f40800000;
+ abs.f32 %f19, %f17;
+ setp.lt.f32 %p12, %f19, 0f00800000;
+ mul.f32 %f144, %f19, 0f4B800000;
+ selp.f32 %f145, 0fC3170000, 0fC2FE0000, %p12;
+ selp.f32 %f146, %f144, %f19, %p12;
+ mov.b32 %r47, %f146;
+ and.b32 %r48, %r47, 8388607;
+ or.b32 %r49, %r48, 1065353216;
+ mov.b32 %f147, %r49;
+ shr.u32 %r50, %r47, 23;
+ cvt.rn.f32.u32 %f148, %r50;
+ add.f32 %f149, %f145, %f148;
+ setp.gt.f32 %p13, %f147, 0f3FB504F3;
+ mul.f32 %f150, %f147, 0f3F000000;
+ add.f32 %f151, %f149, 0f3F800000;
+ selp.f32 %f152, %f150, %f147, %p13;
+ selp.f32 %f153, %f151, %f149, %p13;
+ add.f32 %f154, %f152, 0fBF800000;
+ add.f32 %f128, %f152, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f127,%f128;
+ // inline asm
+ add.f32 %f155, %f154, %f154;
+ mul.f32 %f156, %f127, %f155;
+ mul.f32 %f157, %f156, %f156;
+ mov.f32 %f158, 0f3C4CAF63;
+ mov.f32 %f159, 0f3B18F0FE;
+ fma.rn.f32 %f160, %f159, %f157, %f158;
+ mov.f32 %f161, 0f3DAAAABD;
+ fma.rn.f32 %f162, %f160, %f157, %f161;
+ mul.rn.f32 %f163, %f162, %f157;
+ mul.rn.f32 %f164, %f163, %f156;
+ sub.f32 %f165, %f154, %f156;
+ neg.f32 %f166, %f156;
+ add.f32 %f167, %f165, %f165;
+ fma.rn.f32 %f168, %f166, %f154, %f167;
+ mul.rn.f32 %f169, %f127, %f168;
+ add.f32 %f170, %f164, %f156;
+ sub.f32 %f171, %f156, %f170;
+ add.f32 %f172, %f164, %f171;
+ add.f32 %f173, %f169, %f172;
+ add.f32 %f174, %f170, %f173;
+ sub.f32 %f175, %f170, %f174;
+ add.f32 %f176, %f173, %f175;
+ mov.f32 %f177, 0f3F317200;
+ mul.rn.f32 %f178, %f153, %f177;
+ mov.f32 %f179, 0f35BFBE8E;
+ mul.rn.f32 %f180, %f153, %f179;
+ add.f32 %f181, %f178, %f174;
+ sub.f32 %f182, %f178, %f181;
+ add.f32 %f183, %f174, %f182;
+ add.f32 %f184, %f176, %f183;
+ add.f32 %f185, %f180, %f184;
+ add.f32 %f186, %f181, %f185;
+ sub.f32 %f187, %f181, %f186;
+ add.f32 %f188, %f185, %f187;
+ mul.rn.f32 %f189, %f142, %f186;
+ neg.f32 %f190, %f189;
+ fma.rn.f32 %f191, %f142, %f186, %f190;
+ fma.rn.f32 %f192, %f142, %f188, %f191;
+ mov.f32 %f193, 0f00000000;
+ fma.rn.f32 %f194, %f193, %f186, %f192;
+ add.rn.f32 %f195, %f189, %f194;
+ neg.f32 %f196, %f195;
+ add.rn.f32 %f197, %f189, %f196;
+ add.rn.f32 %f198, %f197, %f194;
+ mov.b32 %r51, %f195;
+ setp.eq.s32 %p14, %r51, 1118925336;
+ add.s32 %r52, %r51, -1;
+ mov.b32 %f199, %r52;
+ add.f32 %f200, %f198, 0f37000000;
+ selp.f32 %f201, %f199, %f195, %p14;
+ selp.f32 %f20, %f200, %f198, %p14;
+ mul.f32 %f202, %f201, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f203, %f202;
+ mov.f32 %f204, 0fBF317200;
+ fma.rn.f32 %f205, %f203, %f204, %f201;
+ mov.f32 %f206, 0fB5BFBE8E;
+ fma.rn.f32 %f207, %f203, %f206, %f205;
+ mul.f32 %f208, %f207, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f209, %f208;
+ add.f32 %f210, %f203, 0f00000000;
+ ex2.approx.f32 %f211, %f210;
+ mul.f32 %f212, %f209, %f211;
+ setp.lt.f32 %p15, %f201, 0fC2D20000;
+ selp.f32 %f213, 0f00000000, %f212, %p15;
+ setp.gt.f32 %p16, %f201, 0f42D20000;
+ selp.f32 %f834, 0f7F800000, %f213, %p16;
+ setp.eq.f32 %p17, %f834, 0f7F800000;
+ @%p17 bra BB0_5;
+
+ fma.rn.f32 %f834, %f834, %f20, %f834;
+
+BB0_5:
+ mov.f32 %f785, 0f40000000;
+ cvt.rzi.f32.f32 %f784, %f785;
+ add.f32 %f783, %f784, %f784;
+ mov.f32 %f782, 0f40800000;
+ sub.f32 %f781, %f782, %f783;
+ abs.f32 %f780, %f781;
+ setp.lt.f32 %p18, %f17, 0f00000000;
+ setp.eq.f32 %p19, %f780, 0f3F800000;
+ and.pred %p1, %p18, %p19;
+ mov.b32 %r53, %f834;
+ xor.b32 %r54, %r53, -2147483648;
+ mov.b32 %f214, %r54;
+ selp.f32 %f836, %f214, %f834, %p1;
+ setp.eq.f32 %p20, %f17, 0f00000000;
+ @%p20 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f217, %f17, %f17;
+ selp.f32 %f836, %f217, 0f00000000, %p19;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p21, %f17, 0f00000000;
+ @%p21 bra BB0_9;
+
+ mov.f32 %f830, 0f40800000;
+ cvt.rzi.f32.f32 %f216, %f830;
+ setp.neu.f32 %p22, %f216, 0f40800000;
+ selp.f32 %f836, 0f7FFFFFFF, %f836, %p22;
+
+BB0_9:
+ abs.f32 %f786, %f17;
+ add.f32 %f218, %f786, 0f40800000;
+ mov.b32 %r55, %f218;
+ setp.lt.s32 %p24, %r55, 2139095040;
+ @%p24 bra BB0_14;
+
+ abs.f32 %f828, %f17;
+ setp.gtu.f32 %p25, %f828, 0f7F800000;
+ @%p25 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f836, %f17, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f829, %f17;
+ setp.neu.f32 %p26, %f829, 0f7F800000;
+ @%p26 bra BB0_14;
+
+ selp.f32 %f836, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ sub.f32 %f792, %f11, %f12;
+ mul.f32 %f791, %f792, %f136;
+ sub.f32 %f790, %f7, %f8;
+ mul.f32 %f789, %f790, %f136;
+ sub.f32 %f788, %f9, %f10;
+ mul.f32 %f787, %f788, %f136;
+ mov.f32 %f842, 0f3F800000;
+ sub.f32 %f220, %f842, %f836;
+ setp.eq.f32 %p27, %f17, 0f3F800000;
+ selp.f32 %f221, 0f00000000, %f220, %p27;
+ cvt.sat.f32.f32 %f222, %f221;
+ ld.global.f32 %f223, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f224, %f16, %f16, %f223;
+ div.rn.f32 %f31, %f222, %f224;
+ mul.f32 %f225, %f832, %f787;
+ fma.rn.f32 %f226, %f831, %f789, %f225;
+ fma.rn.f32 %f32, %f833, %f791, %f226;
+ ld.global.u32 %r239, [imageEnabled];
+ ld.global.f32 %f227, [lightColor+4];
+ ld.global.f32 %f228, [lightColor];
+ max.f32 %f229, %f228, %f227;
+ ld.global.f32 %f230, [lightColor+8];
+ max.f32 %f231, %f229, %f230;
+ mul.f32 %f232, %f31, %f231;
+ setp.lt.f32 %p28, %f232, 0f3727C5AC;
+ @%p28 bra BB0_85;
+ bra.uni BB0_15;
+
+BB0_85:
+ and.b32 %r147, %r239, 1;
+ setp.eq.b32 %p106, %r147, 1;
+ @!%p106 bra BB0_87;
+ bra.uni BB0_86;
+
+BB0_86:
+ cvt.u64.u32 %rd142, %r2;
+ cvt.u64.u32 %rd143, %r3;
+ mov.u64 %rd146, image;
+ cvta.global.u64 %rd141, %rd146;
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd141, %r26, %r27, %rd142, %rd143, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs89, 1;
+ mov.u16 %rs90, 0;
+ st.v4.u8 [%rd140], {%rs90, %rs90, %rs90, %rs89};
+ ld.global.u32 %r239, [imageEnabled];
+
+BB0_87:
+ and.b32 %r150, %r239, 8;
+ setp.eq.s32 %p107, %r150, 0;
+ @%p107 bra BB0_89;
+
+ cvt.u64.u32 %rd150, %r3;
+ cvt.u64.u32 %rd149, %r2;
+ mov.u64 %rd153, image_Mask;
+ cvta.global.u64 %rd148, %rd153;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r26, %r26, %rd149, %rd150, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f701, 0f00000000;
+ cvt.rzi.u32.f32 %r153, %f701;
+ cvt.u16.u32 %rs91, %r153;
+ mov.u16 %rs92, 255;
+ st.v2.u8 [%rd147], {%rs91, %rs92};
+ ld.global.u32 %r239, [imageEnabled];
+
+BB0_89:
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ and.b32 %r154, %r239, 4;
+ setp.eq.s32 %p108, %r154, 0;
+ @%p108 bra BB0_93;
+
+ ld.global.u32 %r155, [additive];
+ setp.eq.s32 %p109, %r155, 0;
+ mov.f32 %f702, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f702;}
+
+ // inline asm
+ @%p109 bra BB0_92;
+
+ mov.u64 %rd166, image_HDR;
+ cvta.global.u64 %rd155, %rd166;
+ mov.u32 %r159, 8;
+ // inline asm
+ call (%rd154), _rt_buffer_get_64, (%rd155, %r26, %r159, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs100, %rs101, %rs102, %rs103}, [%rd154];
+ // inline asm
+ { cvt.f32.f16 %f703, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f704, %rs101;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f705, %rs102;}
+
+ // inline asm
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd155, %r26, %r159, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f706, %f703, 0f00000000;
+ add.f32 %f707, %f704, 0f00000000;
+ add.f32 %f708, %f705, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f708;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f707;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f706;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs97, %rs98, %rs99, %rs93};
+ bra.uni BB0_93;
+
+BB0_15:
+ mov.f32 %f840, 0f00000000;
+ mul.f32 %f234, %f8, 0f3456BF95;
+ abs.f32 %f235, %f831;
+ div.rn.f32 %f236, %f234, %f235;
+ abs.f32 %f237, %f832;
+ mul.f32 %f238, %f10, 0f3456BF95;
+ div.rn.f32 %f239, %f238, %f237;
+ abs.f32 %f240, %f833;
+ mul.f32 %f241, %f12, 0f3456BF95;
+ div.rn.f32 %f242, %f241, %f240;
+ abs.f32 %f243, %f236;
+ abs.f32 %f244, %f239;
+ abs.f32 %f245, %f242;
+ mov.f32 %f246, 0f38D1B717;
+ max.f32 %f247, %f243, %f246;
+ max.f32 %f248, %f244, %f246;
+ max.f32 %f249, %f245, %f246;
+ fma.rn.f32 %f33, %f831, %f247, %f8;
+ fma.rn.f32 %f34, %f832, %f248, %f10;
+ fma.rn.f32 %f35, %f833, %f249, %f12;
+ ld.global.u32 %r235, [samples];
+ setp.lt.s32 %p29, %r235, 1;
+ @%p29 bra BB0_18;
+
+ mul.f32 %f251, %f33, 0f3456BF95;
+ abs.f32 %f252, %f251;
+ mul.f32 %f253, %f34, 0f3456BF95;
+ abs.f32 %f254, %f253;
+ mul.f32 %f255, %f35, 0f3456BF95;
+ abs.f32 %f256, %f255;
+ max.f32 %f257, %f252, %f254;
+ max.f32 %f258, %f257, %f256;
+ max.f32 %f36, %f258, %f246;
+ add.u64 %rd24, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd24;
+ mov.f32 %f840, 0f00000000;
+ mov.u32 %r234, 0;
+ mov.u32 %r233, %r239;
+ mov.f32 %f837, %f11;
+ mov.f32 %f838, %f9;
+ mov.f32 %f839, %f7;
+ bra.uni BB0_17;
+
+BB0_84:
+ ld.global.f32 %f839, [lightPos];
+ ld.global.f32 %f838, [lightPos+4];
+ ld.global.f32 %f837, [lightPos+8];
+ ld.global.u32 %r233, [imageEnabled];
+
+BB0_17:
+ cvt.rn.f32.s32 %f268, %r234;
+ mul.f32 %f269, %f268, 0f3DD32618;
+ cvt.rmi.f32.f32 %f270, %f269;
+ sub.f32 %f271, %f269, %f270;
+ mul.f32 %f272, %f268, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f273, %f272;
+ sub.f32 %f274, %f272, %f273;
+ mul.f32 %f275, %f268, 0f3DC74539;
+ cvt.rmi.f32.f32 %f276, %f275;
+ sub.f32 %f277, %f275, %f276;
+ add.f32 %f278, %f274, 0f4199851F;
+ add.f32 %f279, %f277, 0f4199851F;
+ add.f32 %f280, %f271, 0f4199851F;
+ mul.f32 %f281, %f274, %f279;
+ fma.rn.f32 %f282, %f271, %f278, %f281;
+ fma.rn.f32 %f283, %f280, %f277, %f282;
+ add.f32 %f284, %f271, %f283;
+ add.f32 %f285, %f274, %f283;
+ add.f32 %f286, %f277, %f283;
+ add.f32 %f287, %f284, %f285;
+ mul.f32 %f288, %f286, %f287;
+ cvt.rmi.f32.f32 %f289, %f288;
+ sub.f32 %f290, %f288, %f289;
+ add.f32 %f291, %f284, %f286;
+ mul.f32 %f292, %f285, %f291;
+ cvt.rmi.f32.f32 %f293, %f292;
+ sub.f32 %f294, %f292, %f293;
+ add.f32 %f295, %f285, %f286;
+ mul.f32 %f296, %f284, %f295;
+ cvt.rmi.f32.f32 %f297, %f296;
+ sub.f32 %f298, %f296, %f297;
+ fma.rn.f32 %f299, %f290, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f300, %f294, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f301, %f298, 0f40000000, 0fBF800000;
+ ld.global.f32 %f302, [lightRadius];
+ fma.rn.f32 %f303, %f302, %f299, %f839;
+ fma.rn.f32 %f304, %f302, %f300, %f838;
+ fma.rn.f32 %f305, %f302, %f301, %f837;
+ sub.f32 %f306, %f303, %f8;
+ sub.f32 %f307, %f304, %f10;
+ sub.f32 %f308, %f305, %f12;
+ mul.f32 %f309, %f307, %f307;
+ fma.rn.f32 %f310, %f306, %f306, %f309;
+ fma.rn.f32 %f311, %f308, %f308, %f310;
+ sqrt.rn.f32 %f267, %f311;
+ rcp.rn.f32 %f312, %f267;
+ mul.f32 %f263, %f312, %f306;
+ mul.f32 %f264, %f312, %f307;
+ mul.f32 %f265, %f312, %f308;
+ and.b32 %r60, %r233, 32;
+ setp.eq.s32 %p30, %r60, 0;
+ selp.f32 %f313, 0f3F800000, 0f41200000, %p30;
+ mul.f32 %f266, %f313, %f36;
+ mov.u32 %r61, 1065353216;
+ st.local.u32 [%rd2], %r61;
+ ld.global.u32 %r57, [root];
+ mov.u32 %r58, 1;
+ // inline asm
+ call _rt_trace_64, (%r57, %f33, %f34, %f35, %f263, %f264, %f265, %r58, %f266, %f267, %rd24, %r27);
+ // inline asm
+ ld.local.f32 %f314, [%rd2];
+ add.f32 %f840, %f840, %f314;
+ ld.global.u32 %r235, [samples];
+ add.s32 %r234, %r234, 1;
+ setp.lt.s32 %p31, %r234, %r235;
+ @%p31 bra BB0_84;
+
+BB0_18:
+ ld.global.u32 %r62, [ignoreNormal];
+ setp.eq.s32 %p32, %r235, 0;
+ and.b32 %r63, %r239, 32;
+ or.b32 %r64, %r63, %r62;
+ setp.eq.s32 %p33, %r64, 0;
+ selp.f32 %f43, %f32, 0f3F800000, %p33;
+ @%p32 bra BB0_20;
+
+ cvt.rn.f32.s32 %f316, %r235;
+ div.rn.f32 %f842, %f840, %f316;
+
+BB0_20:
+ cvt.sat.f32.f32 %f317, %f43;
+ mul.f32 %f318, %f31, %f317;
+ mul.f32 %f319, %f842, %f318;
+ ld.global.f32 %f320, [lightColor];
+ mul.f32 %f46, %f320, %f319;
+ ld.global.f32 %f321, [lightColor+4];
+ mul.f32 %f47, %f321, %f319;
+ ld.global.f32 %f322, [lightColor+8];
+ mul.f32 %f48, %f319, %f322;
+ ld.global.u32 %r237, [imageEnabled];
+ and.b32 %r65, %r237, 8;
+ setp.eq.s32 %p34, %r65, 0;
+ @%p34 bra BB0_33;
+
+ mov.f32 %f800, 0fB5BFBE8E;
+ mov.f32 %f799, 0fBF317200;
+ mov.f32 %f798, 0f35BFBE8E;
+ mov.f32 %f797, 0f3F317200;
+ mov.f32 %f796, 0f3DAAAABD;
+ mov.f32 %f795, 0f3C4CAF63;
+ mov.f32 %f794, 0f3B18F0FE;
+ cvt.u64.u32 %rd28, %r2;
+ cvt.u64.u32 %rd29, %r3;
+ mov.u64 %rd32, image_Mask;
+ cvta.global.u64 %rd27, %rd32;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r26, %r26, %rd28, %rd29, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f325, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f326, %f325;
+ fma.rn.f32 %f327, %f326, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f49, %f327;
+ abs.f32 %f50, %f842;
+ setp.lt.f32 %p35, %f50, 0f00800000;
+ mul.f32 %f328, %f50, 0f4B800000;
+ selp.f32 %f329, 0fC3170000, 0fC2FE0000, %p35;
+ selp.f32 %f330, %f328, %f50, %p35;
+ mov.b32 %r68, %f330;
+ and.b32 %r69, %r68, 8388607;
+ or.b32 %r70, %r69, 1065353216;
+ mov.b32 %f331, %r70;
+ shr.u32 %r71, %r68, 23;
+ cvt.rn.f32.u32 %f332, %r71;
+ add.f32 %f333, %f329, %f332;
+ setp.gt.f32 %p36, %f331, 0f3FB504F3;
+ mul.f32 %f334, %f331, 0f3F000000;
+ add.f32 %f335, %f333, 0f3F800000;
+ selp.f32 %f336, %f334, %f331, %p36;
+ selp.f32 %f337, %f335, %f333, %p36;
+ add.f32 %f338, %f336, 0fBF800000;
+ add.f32 %f324, %f336, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f323,%f324;
+ // inline asm
+ add.f32 %f339, %f338, %f338;
+ mul.f32 %f340, %f323, %f339;
+ mul.f32 %f341, %f340, %f340;
+ fma.rn.f32 %f344, %f794, %f341, %f795;
+ fma.rn.f32 %f346, %f344, %f341, %f796;
+ mul.rn.f32 %f347, %f346, %f341;
+ mul.rn.f32 %f348, %f347, %f340;
+ sub.f32 %f349, %f338, %f340;
+ neg.f32 %f350, %f340;
+ add.f32 %f351, %f349, %f349;
+ fma.rn.f32 %f352, %f350, %f338, %f351;
+ mul.rn.f32 %f353, %f323, %f352;
+ add.f32 %f354, %f348, %f340;
+ sub.f32 %f355, %f340, %f354;
+ add.f32 %f356, %f348, %f355;
+ add.f32 %f357, %f353, %f356;
+ add.f32 %f358, %f354, %f357;
+ sub.f32 %f359, %f354, %f358;
+ add.f32 %f360, %f357, %f359;
+ mul.rn.f32 %f362, %f337, %f797;
+ mul.rn.f32 %f364, %f337, %f798;
+ add.f32 %f365, %f362, %f358;
+ sub.f32 %f366, %f362, %f365;
+ add.f32 %f367, %f358, %f366;
+ add.f32 %f368, %f360, %f367;
+ add.f32 %f369, %f364, %f368;
+ add.f32 %f370, %f365, %f369;
+ sub.f32 %f371, %f365, %f370;
+ add.f32 %f372, %f369, %f371;
+ mov.f32 %f373, 0f3EE8BA2E;
+ mul.rn.f32 %f374, %f373, %f370;
+ neg.f32 %f375, %f374;
+ fma.rn.f32 %f376, %f373, %f370, %f375;
+ fma.rn.f32 %f377, %f373, %f372, %f376;
+ mov.f32 %f378, 0f00000000;
+ fma.rn.f32 %f379, %f378, %f370, %f377;
+ add.rn.f32 %f380, %f374, %f379;
+ neg.f32 %f381, %f380;
+ add.rn.f32 %f382, %f374, %f381;
+ add.rn.f32 %f383, %f382, %f379;
+ mov.b32 %r72, %f380;
+ setp.eq.s32 %p37, %r72, 1118925336;
+ add.s32 %r73, %r72, -1;
+ mov.b32 %f384, %r73;
+ add.f32 %f385, %f383, 0f37000000;
+ selp.f32 %f386, %f384, %f380, %p37;
+ selp.f32 %f51, %f385, %f383, %p37;
+ mul.f32 %f387, %f386, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f388, %f387;
+ fma.rn.f32 %f390, %f388, %f799, %f386;
+ fma.rn.f32 %f392, %f388, %f800, %f390;
+ mul.f32 %f393, %f392, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f394, %f393;
+ add.f32 %f395, %f388, 0f00000000;
+ ex2.approx.f32 %f396, %f395;
+ mul.f32 %f397, %f394, %f396;
+ setp.lt.f32 %p38, %f386, 0fC2D20000;
+ selp.f32 %f398, 0f00000000, %f397, %p38;
+ setp.gt.f32 %p39, %f386, 0f42D20000;
+ selp.f32 %f843, 0f7F800000, %f398, %p39;
+ setp.eq.f32 %p40, %f843, 0f7F800000;
+ @%p40 bra BB0_23;
+
+ fma.rn.f32 %f843, %f843, %f51, %f843;
+
+BB0_23:
+ setp.lt.f32 %p41, %f842, 0f00000000;
+ setp.eq.f32 %p42, %f49, 0f3F800000;
+ and.pred %p2, %p41, %p42;
+ mov.b32 %r74, %f843;
+ xor.b32 %r75, %r74, -2147483648;
+ mov.b32 %f399, %r75;
+ selp.f32 %f845, %f399, %f843, %p2;
+ setp.eq.f32 %p43, %f842, 0f00000000;
+ @%p43 bra BB0_26;
+ bra.uni BB0_24;
+
+BB0_26:
+ add.f32 %f402, %f842, %f842;
+ selp.f32 %f845, %f402, 0f00000000, %p42;
+ bra.uni BB0_27;
+
+BB0_112:
+ mov.u64 %rd287, image_HDR;
+ cvta.global.u64 %rd282, %rd287;
+ mov.u32 %r204, 8;
+ // inline asm
+ call (%rd281), _rt_buffer_get_64, (%rd282, %r26, %r204, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f751, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs167, %f751;}
+
+ // inline asm
+ mov.u16 %rs168, 0;
+ st.v4.u16 [%rd281], {%rs167, %rs167, %rs167, %rs168};
+
+BB0_113:
+ ld.global.u32 %r205, [additive];
+ setp.eq.s32 %p118, %r205, 0;
+ @%p118 bra BB0_115;
+
+ mov.u64 %rd300, image_RNM0;
+ cvta.global.u64 %rd289, %rd300;
+ mov.u32 %r209, 8;
+ // inline asm
+ call (%rd288), _rt_buffer_get_64, (%rd289, %r26, %r209, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs175, %rs176, %rs177, %rs178}, [%rd288];
+ // inline asm
+ { cvt.f32.f16 %f752, %rs175;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f753, %rs176;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f754, %rs177;}
+
+ // inline asm
+ // inline asm
+ call (%rd294), _rt_buffer_get_64, (%rd289, %r26, %r209, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f755, %f752, 0f00000000;
+ add.f32 %f756, %f753, 0f00000000;
+ add.f32 %f757, %f754, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs174, %f757;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs173, %f756;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs172, %f755;}
+
+ // inline asm
+ mov.u16 %rs179, 0;
+ st.v4.u16 [%rd294], {%rs172, %rs173, %rs174, %rs179};
+ bra.uni BB0_116;
+
+BB0_115:
+ mov.u64 %rd307, image_RNM0;
+ cvta.global.u64 %rd302, %rd307;
+ mov.u32 %r211, 8;
+ // inline asm
+ call (%rd301), _rt_buffer_get_64, (%rd302, %r26, %r211, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f758, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs180, %f758;}
+
+ // inline asm
+ mov.u16 %rs181, 0;
+ st.v4.u16 [%rd301], {%rs180, %rs180, %rs180, %rs181};
+
+BB0_116:
+ ld.global.u32 %r212, [additive];
+ setp.eq.s32 %p119, %r212, 0;
+ @%p119 bra BB0_118;
+
+ mov.u64 %rd320, image_RNM1;
+ cvta.global.u64 %rd309, %rd320;
+ mov.u32 %r216, 8;
+ // inline asm
+ call (%rd308), _rt_buffer_get_64, (%rd309, %r26, %r216, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs188, %rs189, %rs190, %rs191}, [%rd308];
+ // inline asm
+ { cvt.f32.f16 %f759, %rs188;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f760, %rs189;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f761, %rs190;}
+
+ // inline asm
+ // inline asm
+ call (%rd314), _rt_buffer_get_64, (%rd309, %r26, %r216, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f762, %f759, 0f00000000;
+ add.f32 %f763, %f760, 0f00000000;
+ add.f32 %f764, %f761, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs187, %f764;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs186, %f763;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs185, %f762;}
+
+ // inline asm
+ mov.u16 %rs192, 0;
+ st.v4.u16 [%rd314], {%rs185, %rs186, %rs187, %rs192};
+ bra.uni BB0_119;
+
+BB0_118:
+ mov.u64 %rd327, image_RNM1;
+ cvta.global.u64 %rd322, %rd327;
+ mov.u32 %r218, 8;
+ // inline asm
+ call (%rd321), _rt_buffer_get_64, (%rd322, %r26, %r218, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f765, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs193, %f765;}
+
+ // inline asm
+ mov.u16 %rs194, 0;
+ st.v4.u16 [%rd321], {%rs193, %rs193, %rs193, %rs194};
+
+BB0_119:
+ ld.global.u32 %r219, [additive];
+ setp.eq.s32 %p120, %r219, 0;
+ @%p120 bra BB0_121;
+
+ mov.u64 %rd340, image_RNM2;
+ cvta.global.u64 %rd329, %rd340;
+ mov.u32 %r223, 8;
+ // inline asm
+ call (%rd328), _rt_buffer_get_64, (%rd329, %r26, %r223, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs201, %rs202, %rs203, %rs204}, [%rd328];
+ // inline asm
+ { cvt.f32.f16 %f766, %rs201;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f767, %rs202;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f768, %rs203;}
+
+ // inline asm
+ // inline asm
+ call (%rd334), _rt_buffer_get_64, (%rd329, %r26, %r223, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f769, %f766, 0f00000000;
+ add.f32 %f770, %f767, 0f00000000;
+ add.f32 %f771, %f768, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs200, %f771;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs199, %f770;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs198, %f769;}
+
+ // inline asm
+ mov.u16 %rs205, 0;
+ st.v4.u16 [%rd334], {%rs198, %rs199, %rs200, %rs205};
+ bra.uni BB0_122;
+
+BB0_121:
+ mov.u64 %rd347, image_RNM2;
+ cvta.global.u64 %rd342, %rd347;
+ mov.u32 %r225, 8;
+ // inline asm
+ call (%rd341), _rt_buffer_get_64, (%rd342, %r26, %r225, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f772, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs206, %f772;}
+
+ // inline asm
+ mov.u16 %rs207, 0;
+ st.v4.u16 [%rd341], {%rs206, %rs206, %rs206, %rs207};
+
+BB0_122:
+ ld.global.u32 %r226, [additive];
+ setp.eq.s32 %p121, %r226, 0;
+ @%p121 bra BB0_124;
+
+ mov.u64 %rd360, image_RNM3;
+ cvta.global.u64 %rd349, %rd360;
+ mov.u32 %r230, 8;
+ // inline asm
+ call (%rd348), _rt_buffer_get_64, (%rd349, %r26, %r230, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs214, %rs215, %rs216, %rs217}, [%rd348];
+ // inline asm
+ { cvt.f32.f16 %f773, %rs214;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f774, %rs215;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f775, %rs216;}
+
+ // inline asm
+ // inline asm
+ call (%rd354), _rt_buffer_get_64, (%rd349, %r26, %r230, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f776, %f773, 0f00000000;
+ add.f32 %f777, %f774, 0f00000000;
+ add.f32 %f778, %f775, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs213, %f778;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs212, %f777;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs211, %f776;}
+
+ // inline asm
+ mov.u16 %rs218, 0;
+ st.v4.u16 [%rd354], {%rs211, %rs212, %rs213, %rs218};
+ bra.uni BB0_125;
+
+BB0_124:
+ mov.u64 %rd367, image_RNM3;
+ cvta.global.u64 %rd362, %rd367;
+ mov.u32 %r232, 8;
+ // inline asm
+ call (%rd361), _rt_buffer_get_64, (%rd362, %r26, %r232, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f779, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs219, %f779;}
+
+ // inline asm
+ mov.u16 %rs220, 0;
+ st.v4.u16 [%rd361], {%rs219, %rs219, %rs219, %rs220};
+ bra.uni BB0_125;
+
+BB0_92:
+ mov.u64 %rd173, image_HDR;
+ cvta.global.u64 %rd168, %rd173;
+ mov.u32 %r161, 8;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r26, %r161, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f709, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f709;}
+
+ // inline asm
+ st.v4.u16 [%rd167], {%rs104, %rs104, %rs104, %rs93};
+
+BB0_93:
+ ld.global.u32 %r162, [additive];
+ setp.eq.s32 %p110, %r162, 0;
+ mov.f32 %f710, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f710;}
+
+ // inline asm
+ @%p110 bra BB0_95;
+
+ mov.u64 %rd186, image_RNM0;
+ cvta.global.u64 %rd175, %rd186;
+ mov.u32 %r166, 8;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r26, %r166, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd174];
+ // inline asm
+ { cvt.f32.f16 %f711, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f712, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f713, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd175, %r26, %r166, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f714, %f711, 0f00000000;
+ add.f32 %f715, %f712, 0f00000000;
+ add.f32 %f716, %f713, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f716;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f715;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f714;}
+
+ // inline asm
+ st.v4.u16 [%rd180], {%rs109, %rs110, %rs111, %rs105};
+ bra.uni BB0_96;
+
+BB0_95:
+ mov.u64 %rd193, image_RNM0;
+ cvta.global.u64 %rd188, %rd193;
+ mov.u32 %r168, 8;
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd188, %r26, %r168, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f717, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f717;}
+
+ // inline asm
+ st.v4.u16 [%rd187], {%rs116, %rs116, %rs116, %rs105};
+
+BB0_96:
+ ld.global.u32 %r169, [additive];
+ setp.eq.s32 %p111, %r169, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f710;}
+
+ // inline asm
+ @%p111 bra BB0_98;
+
+ mov.u64 %rd206, image_RNM1;
+ cvta.global.u64 %rd195, %rd206;
+ mov.u32 %r173, 8;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r26, %r173, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd194];
+ // inline asm
+ { cvt.f32.f16 %f719, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f720, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f721, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd195, %r26, %r173, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f722, %f719, 0f00000000;
+ add.f32 %f723, %f720, 0f00000000;
+ add.f32 %f724, %f721, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f724;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f723;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f722;}
+
+ // inline asm
+ st.v4.u16 [%rd200], {%rs121, %rs122, %rs123, %rs117};
+ bra.uni BB0_99;
+
+BB0_98:
+ mov.u64 %rd213, image_RNM1;
+ cvta.global.u64 %rd208, %rd213;
+ mov.u32 %r175, 8;
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd208, %r26, %r175, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f725, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs128, %f725;}
+
+ // inline asm
+ st.v4.u16 [%rd207], {%rs128, %rs128, %rs128, %rs117};
+
+BB0_99:
+ ld.global.u32 %r176, [additive];
+ setp.eq.s32 %p112, %r176, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f710;}
+
+ // inline asm
+ @%p112 bra BB0_101;
+
+ mov.u64 %rd226, image_RNM2;
+ cvta.global.u64 %rd215, %rd226;
+ mov.u32 %r180, 8;
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd215, %r26, %r180, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs136, %rs137, %rs138, %rs139}, [%rd214];
+ // inline asm
+ { cvt.f32.f16 %f727, %rs136;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f728, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f729, %rs138;}
+
+ // inline asm
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd215, %r26, %r180, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f730, %f727, 0f00000000;
+ add.f32 %f731, %f728, 0f00000000;
+ add.f32 %f732, %f729, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f732;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f731;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f730;}
+
+ // inline asm
+ st.v4.u16 [%rd220], {%rs133, %rs134, %rs135, %rs129};
+ bra.uni BB0_102;
+
+BB0_101:
+ mov.u64 %rd233, image_RNM2;
+ cvta.global.u64 %rd228, %rd233;
+ mov.u32 %r182, 8;
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd228, %r26, %r182, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f733, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f733;}
+
+ // inline asm
+ st.v4.u16 [%rd227], {%rs140, %rs140, %rs140, %rs129};
+
+BB0_102:
+ ld.global.u32 %r183, [additive];
+ setp.eq.s32 %p113, %r183, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs141, %f710;}
+
+ // inline asm
+ @%p113 bra BB0_104;
+
+ mov.u64 %rd246, image_RNM3;
+ cvta.global.u64 %rd235, %rd246;
+ mov.u32 %r187, 8;
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd235, %r26, %r187, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs148, %rs149, %rs150, %rs151}, [%rd234];
+ // inline asm
+ { cvt.f32.f16 %f735, %rs148;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f736, %rs149;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f737, %rs150;}
+
+ // inline asm
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd235, %r26, %r187, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f738, %f735, 0f00000000;
+ add.f32 %f739, %f736, 0f00000000;
+ add.f32 %f740, %f737, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f740;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f739;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f738;}
+
+ // inline asm
+ st.v4.u16 [%rd240], {%rs145, %rs146, %rs147, %rs141};
+ bra.uni BB0_125;
+
+BB0_104:
+ mov.u64 %rd253, image_RNM3;
+ cvta.global.u64 %rd248, %rd253;
+ mov.u32 %r189, 8;
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd248, %r26, %r189, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f741, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f741;}
+
+ // inline asm
+ st.v4.u16 [%rd247], {%rs152, %rs152, %rs152, %rs141};
+ bra.uni BB0_125;
+
+BB0_24:
+ setp.geu.f32 %p44, %f842, 0f00000000;
+ @%p44 bra BB0_27;
+
+ cvt.rzi.f32.f32 %f401, %f373;
+ setp.neu.f32 %p45, %f401, 0f3EE8BA2E;
+ selp.f32 %f845, 0f7FFFFFFF, %f845, %p45;
+
+BB0_27:
+ add.f32 %f403, %f50, 0f3EE8BA2E;
+ mov.b32 %r76, %f403;
+ setp.lt.s32 %p47, %r76, 2139095040;
+ @%p47 bra BB0_32;
+
+ setp.gtu.f32 %p48, %f50, 0f7F800000;
+ @%p48 bra BB0_31;
+ bra.uni BB0_29;
+
+BB0_31:
+ add.f32 %f845, %f842, 0f3EE8BA2E;
+ bra.uni BB0_32;
+
+BB0_29:
+ setp.neu.f32 %p49, %f50, 0f7F800000;
+ @%p49 bra BB0_32;
+
+ selp.f32 %f845, 0fFF800000, 0f7F800000, %p2;
+
+BB0_32:
+ mul.f32 %f404, %f845, 0f437F0000;
+ setp.eq.f32 %p50, %f842, 0f3F800000;
+ selp.f32 %f405, 0f437F0000, %f404, %p50;
+ cvt.rzi.u32.f32 %r77, %f405;
+ cvt.u16.u32 %rs19, %r77;
+ mov.u16 %rs20, 255;
+ st.v2.u8 [%rd26], {%rs19, %rs20};
+ ld.global.u32 %r237, [imageEnabled];
+
+BB0_33:
+ and.b32 %r78, %r237, 1;
+ setp.eq.b32 %p51, %r78, 1;
+ @!%p51 bra BB0_68;
+ bra.uni BB0_34;
+
+BB0_34:
+ mov.f32 %f807, 0fB5BFBE8E;
+ mov.f32 %f806, 0fBF317200;
+ mov.f32 %f805, 0f35BFBE8E;
+ mov.f32 %f804, 0f3F317200;
+ mov.f32 %f803, 0f3DAAAABD;
+ mov.f32 %f802, 0f3C4CAF63;
+ mov.f32 %f801, 0f3B18F0FE;
+ mov.f32 %f408, 0f3E666666;
+ cvt.rzi.f32.f32 %f409, %f408;
+ fma.rn.f32 %f410, %f409, 0fC0000000, 0f3EE66666;
+ abs.f32 %f62, %f410;
+ abs.f32 %f63, %f46;
+ setp.lt.f32 %p52, %f63, 0f00800000;
+ mul.f32 %f411, %f63, 0f4B800000;
+ selp.f32 %f412, 0fC3170000, 0fC2FE0000, %p52;
+ selp.f32 %f413, %f411, %f63, %p52;
+ mov.b32 %r79, %f413;
+ and.b32 %r80, %r79, 8388607;
+ or.b32 %r81, %r80, 1065353216;
+ mov.b32 %f414, %r81;
+ shr.u32 %r82, %r79, 23;
+ cvt.rn.f32.u32 %f415, %r82;
+ add.f32 %f416, %f412, %f415;
+ setp.gt.f32 %p53, %f414, 0f3FB504F3;
+ mul.f32 %f417, %f414, 0f3F000000;
+ add.f32 %f418, %f416, 0f3F800000;
+ selp.f32 %f419, %f417, %f414, %p53;
+ selp.f32 %f420, %f418, %f416, %p53;
+ add.f32 %f421, %f419, 0fBF800000;
+ add.f32 %f407, %f419, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f406,%f407;
+ // inline asm
+ add.f32 %f422, %f421, %f421;
+ mul.f32 %f423, %f406, %f422;
+ mul.f32 %f424, %f423, %f423;
+ fma.rn.f32 %f427, %f801, %f424, %f802;
+ fma.rn.f32 %f429, %f427, %f424, %f803;
+ mul.rn.f32 %f430, %f429, %f424;
+ mul.rn.f32 %f431, %f430, %f423;
+ sub.f32 %f432, %f421, %f423;
+ neg.f32 %f433, %f423;
+ add.f32 %f434, %f432, %f432;
+ fma.rn.f32 %f435, %f433, %f421, %f434;
+ mul.rn.f32 %f436, %f406, %f435;
+ add.f32 %f437, %f431, %f423;
+ sub.f32 %f438, %f423, %f437;
+ add.f32 %f439, %f431, %f438;
+ add.f32 %f440, %f436, %f439;
+ add.f32 %f441, %f437, %f440;
+ sub.f32 %f442, %f437, %f441;
+ add.f32 %f443, %f440, %f442;
+ mul.rn.f32 %f445, %f420, %f804;
+ mul.rn.f32 %f447, %f420, %f805;
+ add.f32 %f448, %f445, %f441;
+ sub.f32 %f449, %f445, %f448;
+ add.f32 %f450, %f441, %f449;
+ add.f32 %f451, %f443, %f450;
+ add.f32 %f452, %f447, %f451;
+ add.f32 %f453, %f448, %f452;
+ sub.f32 %f454, %f448, %f453;
+ add.f32 %f455, %f452, %f454;
+ mov.f32 %f456, 0f3EE66666;
+ mul.rn.f32 %f457, %f456, %f453;
+ neg.f32 %f458, %f457;
+ fma.rn.f32 %f459, %f456, %f453, %f458;
+ fma.rn.f32 %f460, %f456, %f455, %f459;
+ mov.f32 %f461, 0f00000000;
+ fma.rn.f32 %f462, %f461, %f453, %f460;
+ add.rn.f32 %f463, %f457, %f462;
+ neg.f32 %f464, %f463;
+ add.rn.f32 %f465, %f457, %f464;
+ add.rn.f32 %f466, %f465, %f462;
+ mov.b32 %r83, %f463;
+ setp.eq.s32 %p54, %r83, 1118925336;
+ add.s32 %r84, %r83, -1;
+ mov.b32 %f467, %r84;
+ add.f32 %f468, %f466, 0f37000000;
+ selp.f32 %f469, %f467, %f463, %p54;
+ selp.f32 %f64, %f468, %f466, %p54;
+ mul.f32 %f470, %f469, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f471, %f470;
+ fma.rn.f32 %f473, %f471, %f806, %f469;
+ fma.rn.f32 %f475, %f471, %f807, %f473;
+ mul.f32 %f476, %f475, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f477, %f476;
+ add.f32 %f478, %f471, 0f00000000;
+ ex2.approx.f32 %f479, %f478;
+ mul.f32 %f480, %f477, %f479;
+ setp.lt.f32 %p55, %f469, 0fC2D20000;
+ selp.f32 %f481, 0f00000000, %f480, %p55;
+ setp.gt.f32 %p56, %f469, 0f42D20000;
+ selp.f32 %f846, 0f7F800000, %f481, %p56;
+ setp.eq.f32 %p57, %f846, 0f7F800000;
+ @%p57 bra BB0_36;
+
+ fma.rn.f32 %f846, %f846, %f64, %f846;
+
+BB0_36:
+ setp.lt.f32 %p58, %f46, 0f00000000;
+ setp.eq.f32 %p59, %f62, 0f3F800000;
+ and.pred %p3, %p58, %p59;
+ mov.b32 %r85, %f846;
+ xor.b32 %r86, %r85, -2147483648;
+ mov.b32 %f482, %r86;
+ selp.f32 %f848, %f482, %f846, %p3;
+ setp.eq.f32 %p60, %f46, 0f00000000;
+ @%p60 bra BB0_39;
+ bra.uni BB0_37;
+
+BB0_39:
+ add.f32 %f485, %f46, %f46;
+ selp.f32 %f848, %f485, 0f00000000, %p59;
+ bra.uni BB0_40;
+
+BB0_37:
+ setp.geu.f32 %p61, %f46, 0f00000000;
+ @%p61 bra BB0_40;
+
+ cvt.rzi.f32.f32 %f484, %f456;
+ setp.neu.f32 %p62, %f484, 0f3EE66666;
+ selp.f32 %f848, 0f7FFFFFFF, %f848, %p62;
+
+BB0_40:
+ add.f32 %f486, %f63, 0f3EE66666;
+ mov.b32 %r87, %f486;
+ setp.lt.s32 %p64, %r87, 2139095040;
+ @%p64 bra BB0_45;
+
+ setp.gtu.f32 %p65, %f63, 0f7F800000;
+ @%p65 bra BB0_44;
+ bra.uni BB0_42;
+
+BB0_44:
+ add.f32 %f848, %f46, 0f3EE66666;
+ bra.uni BB0_45;
+
+BB0_42:
+ setp.neu.f32 %p66, %f63, 0f7F800000;
+ @%p66 bra BB0_45;
+
+ selp.f32 %f848, 0fFF800000, 0f7F800000, %p3;
+
+BB0_45:
+ mov.f32 %f814, 0fB5BFBE8E;
+ mov.f32 %f813, 0fBF317200;
+ mov.f32 %f812, 0f35BFBE8E;
+ mov.f32 %f811, 0f3F317200;
+ mov.f32 %f810, 0f3DAAAABD;
+ mov.f32 %f809, 0f3C4CAF63;
+ mov.f32 %f808, 0f3B18F0FE;
+ setp.eq.f32 %p67, %f46, 0f3F800000;
+ selp.f32 %f75, 0f3F800000, %f848, %p67;
+ abs.f32 %f76, %f47;
+ setp.lt.f32 %p68, %f76, 0f00800000;
+ mul.f32 %f489, %f76, 0f4B800000;
+ selp.f32 %f490, 0fC3170000, 0fC2FE0000, %p68;
+ selp.f32 %f491, %f489, %f76, %p68;
+ mov.b32 %r88, %f491;
+ and.b32 %r89, %r88, 8388607;
+ or.b32 %r90, %r89, 1065353216;
+ mov.b32 %f492, %r90;
+ shr.u32 %r91, %r88, 23;
+ cvt.rn.f32.u32 %f493, %r91;
+ add.f32 %f494, %f490, %f493;
+ setp.gt.f32 %p69, %f492, 0f3FB504F3;
+ mul.f32 %f495, %f492, 0f3F000000;
+ add.f32 %f496, %f494, 0f3F800000;
+ selp.f32 %f497, %f495, %f492, %p69;
+ selp.f32 %f498, %f496, %f494, %p69;
+ add.f32 %f499, %f497, 0fBF800000;
+ add.f32 %f488, %f497, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f487,%f488;
+ // inline asm
+ add.f32 %f500, %f499, %f499;
+ mul.f32 %f501, %f487, %f500;
+ mul.f32 %f502, %f501, %f501;
+ fma.rn.f32 %f505, %f808, %f502, %f809;
+ fma.rn.f32 %f507, %f505, %f502, %f810;
+ mul.rn.f32 %f508, %f507, %f502;
+ mul.rn.f32 %f509, %f508, %f501;
+ sub.f32 %f510, %f499, %f501;
+ neg.f32 %f511, %f501;
+ add.f32 %f512, %f510, %f510;
+ fma.rn.f32 %f513, %f511, %f499, %f512;
+ mul.rn.f32 %f514, %f487, %f513;
+ add.f32 %f515, %f509, %f501;
+ sub.f32 %f516, %f501, %f515;
+ add.f32 %f517, %f509, %f516;
+ add.f32 %f518, %f514, %f517;
+ add.f32 %f519, %f515, %f518;
+ sub.f32 %f520, %f515, %f519;
+ add.f32 %f521, %f518, %f520;
+ mul.rn.f32 %f523, %f498, %f811;
+ mul.rn.f32 %f525, %f498, %f812;
+ add.f32 %f526, %f523, %f519;
+ sub.f32 %f527, %f523, %f526;
+ add.f32 %f528, %f519, %f527;
+ add.f32 %f529, %f521, %f528;
+ add.f32 %f530, %f525, %f529;
+ add.f32 %f531, %f526, %f530;
+ sub.f32 %f532, %f526, %f531;
+ add.f32 %f533, %f530, %f532;
+ mul.rn.f32 %f535, %f456, %f531;
+ neg.f32 %f536, %f535;
+ fma.rn.f32 %f537, %f456, %f531, %f536;
+ fma.rn.f32 %f538, %f456, %f533, %f537;
+ fma.rn.f32 %f540, %f461, %f531, %f538;
+ add.rn.f32 %f541, %f535, %f540;
+ neg.f32 %f542, %f541;
+ add.rn.f32 %f543, %f535, %f542;
+ add.rn.f32 %f544, %f543, %f540;
+ mov.b32 %r92, %f541;
+ setp.eq.s32 %p70, %r92, 1118925336;
+ add.s32 %r93, %r92, -1;
+ mov.b32 %f545, %r93;
+ add.f32 %f546, %f544, 0f37000000;
+ selp.f32 %f547, %f545, %f541, %p70;
+ selp.f32 %f77, %f546, %f544, %p70;
+ mul.f32 %f548, %f547, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f549, %f548;
+ fma.rn.f32 %f551, %f549, %f813, %f547;
+ fma.rn.f32 %f553, %f549, %f814, %f551;
+ mul.f32 %f554, %f553, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f555, %f554;
+ add.f32 %f556, %f549, 0f00000000;
+ ex2.approx.f32 %f557, %f556;
+ mul.f32 %f558, %f555, %f557;
+ setp.lt.f32 %p71, %f547, 0fC2D20000;
+ selp.f32 %f559, 0f00000000, %f558, %p71;
+ setp.gt.f32 %p72, %f547, 0f42D20000;
+ selp.f32 %f849, 0f7F800000, %f559, %p72;
+ setp.eq.f32 %p73, %f849, 0f7F800000;
+ @%p73 bra BB0_47;
+
+ fma.rn.f32 %f849, %f849, %f77, %f849;
+
+BB0_47:
+ setp.lt.f32 %p74, %f47, 0f00000000;
+ and.pred %p4, %p74, %p59;
+ mov.b32 %r94, %f849;
+ xor.b32 %r95, %r94, -2147483648;
+ mov.b32 %f560, %r95;
+ selp.f32 %f851, %f560, %f849, %p4;
+ setp.eq.f32 %p76, %f47, 0f00000000;
+ @%p76 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f563, %f47, %f47;
+ selp.f32 %f851, %f563, 0f00000000, %p59;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p77, %f47, 0f00000000;
+ @%p77 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f562, %f456;
+ setp.neu.f32 %p78, %f562, 0f3EE66666;
+ selp.f32 %f851, 0f7FFFFFFF, %f851, %p78;
+
+BB0_51:
+ add.f32 %f564, %f76, 0f3EE66666;
+ mov.b32 %r96, %f564;
+ setp.lt.s32 %p80, %r96, 2139095040;
+ @%p80 bra BB0_56;
+
+ setp.gtu.f32 %p81, %f76, 0f7F800000;
+ @%p81 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f851, %f47, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p82, %f76, 0f7F800000;
+ @%p82 bra BB0_56;
+
+ selp.f32 %f851, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f821, 0fB5BFBE8E;
+ mov.f32 %f820, 0fBF317200;
+ mov.f32 %f819, 0f35BFBE8E;
+ mov.f32 %f818, 0f3F317200;
+ mov.f32 %f817, 0f3DAAAABD;
+ mov.f32 %f816, 0f3C4CAF63;
+ mov.f32 %f815, 0f3B18F0FE;
+ setp.eq.f32 %p83, %f47, 0f3F800000;
+ selp.f32 %f88, 0f3F800000, %f851, %p83;
+ abs.f32 %f89, %f48;
+ setp.lt.f32 %p84, %f89, 0f00800000;
+ mul.f32 %f567, %f89, 0f4B800000;
+ selp.f32 %f568, 0fC3170000, 0fC2FE0000, %p84;
+ selp.f32 %f569, %f567, %f89, %p84;
+ mov.b32 %r97, %f569;
+ and.b32 %r98, %r97, 8388607;
+ or.b32 %r99, %r98, 1065353216;
+ mov.b32 %f570, %r99;
+ shr.u32 %r100, %r97, 23;
+ cvt.rn.f32.u32 %f571, %r100;
+ add.f32 %f572, %f568, %f571;
+ setp.gt.f32 %p85, %f570, 0f3FB504F3;
+ mul.f32 %f573, %f570, 0f3F000000;
+ add.f32 %f574, %f572, 0f3F800000;
+ selp.f32 %f575, %f573, %f570, %p85;
+ selp.f32 %f576, %f574, %f572, %p85;
+ add.f32 %f577, %f575, 0fBF800000;
+ add.f32 %f566, %f575, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f565,%f566;
+ // inline asm
+ add.f32 %f578, %f577, %f577;
+ mul.f32 %f579, %f565, %f578;
+ mul.f32 %f580, %f579, %f579;
+ fma.rn.f32 %f583, %f815, %f580, %f816;
+ fma.rn.f32 %f585, %f583, %f580, %f817;
+ mul.rn.f32 %f586, %f585, %f580;
+ mul.rn.f32 %f587, %f586, %f579;
+ sub.f32 %f588, %f577, %f579;
+ neg.f32 %f589, %f579;
+ add.f32 %f590, %f588, %f588;
+ fma.rn.f32 %f591, %f589, %f577, %f590;
+ mul.rn.f32 %f592, %f565, %f591;
+ add.f32 %f593, %f587, %f579;
+ sub.f32 %f594, %f579, %f593;
+ add.f32 %f595, %f587, %f594;
+ add.f32 %f596, %f592, %f595;
+ add.f32 %f597, %f593, %f596;
+ sub.f32 %f598, %f593, %f597;
+ add.f32 %f599, %f596, %f598;
+ mul.rn.f32 %f601, %f576, %f818;
+ mul.rn.f32 %f603, %f576, %f819;
+ add.f32 %f604, %f601, %f597;
+ sub.f32 %f605, %f601, %f604;
+ add.f32 %f606, %f597, %f605;
+ add.f32 %f607, %f599, %f606;
+ add.f32 %f608, %f603, %f607;
+ add.f32 %f609, %f604, %f608;
+ sub.f32 %f610, %f604, %f609;
+ add.f32 %f611, %f608, %f610;
+ mul.rn.f32 %f613, %f456, %f609;
+ neg.f32 %f614, %f613;
+ fma.rn.f32 %f615, %f456, %f609, %f614;
+ fma.rn.f32 %f616, %f456, %f611, %f615;
+ fma.rn.f32 %f618, %f461, %f609, %f616;
+ add.rn.f32 %f619, %f613, %f618;
+ neg.f32 %f620, %f619;
+ add.rn.f32 %f621, %f613, %f620;
+ add.rn.f32 %f622, %f621, %f618;
+ mov.b32 %r101, %f619;
+ setp.eq.s32 %p86, %r101, 1118925336;
+ add.s32 %r102, %r101, -1;
+ mov.b32 %f623, %r102;
+ add.f32 %f624, %f622, 0f37000000;
+ selp.f32 %f625, %f623, %f619, %p86;
+ selp.f32 %f90, %f624, %f622, %p86;
+ mul.f32 %f626, %f625, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f627, %f626;
+ fma.rn.f32 %f629, %f627, %f820, %f625;
+ fma.rn.f32 %f631, %f627, %f821, %f629;
+ mul.f32 %f632, %f631, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f633, %f632;
+ add.f32 %f634, %f627, 0f00000000;
+ ex2.approx.f32 %f635, %f634;
+ mul.f32 %f636, %f633, %f635;
+ setp.lt.f32 %p87, %f625, 0fC2D20000;
+ selp.f32 %f637, 0f00000000, %f636, %p87;
+ setp.gt.f32 %p88, %f625, 0f42D20000;
+ selp.f32 %f852, 0f7F800000, %f637, %p88;
+ setp.eq.f32 %p89, %f852, 0f7F800000;
+ @%p89 bra BB0_58;
+
+ fma.rn.f32 %f852, %f852, %f90, %f852;
+
+BB0_58:
+ setp.lt.f32 %p90, %f48, 0f00000000;
+ and.pred %p5, %p90, %p59;
+ mov.b32 %r103, %f852;
+ xor.b32 %r104, %r103, -2147483648;
+ mov.b32 %f638, %r104;
+ selp.f32 %f854, %f638, %f852, %p5;
+ setp.eq.f32 %p92, %f48, 0f00000000;
+ @%p92 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f641, %f48, %f48;
+ selp.f32 %f854, %f641, 0f00000000, %p59;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p93, %f48, 0f00000000;
+ @%p93 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f640, %f456;
+ setp.neu.f32 %p94, %f640, 0f3EE66666;
+ selp.f32 %f854, 0f7FFFFFFF, %f854, %p94;
+
+BB0_62:
+ add.f32 %f642, %f89, 0f3EE66666;
+ mov.b32 %r105, %f642;
+ setp.lt.s32 %p96, %r105, 2139095040;
+ @%p96 bra BB0_67;
+
+ setp.gtu.f32 %p97, %f89, 0f7F800000;
+ @%p97 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f854, %f48, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p98, %f89, 0f7F800000;
+ @%p98 bra BB0_67;
+
+ selp.f32 %f854, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ setp.eq.f32 %p99, %f48, 0f3F800000;
+ selp.f32 %f643, 0f3F800000, %f854, %p99;
+ cvt.u64.u32 %rd36, %r3;
+ cvt.u64.u32 %rd35, %r2;
+ mov.u64 %rd39, image;
+ cvta.global.u64 %rd34, %rd39;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r26, %r27, %rd35, %rd36, %rd15, %rd15);
+ // inline asm
+ cvt.sat.f32.f32 %f644, %f643;
+ mul.f32 %f645, %f644, 0f437FFD71;
+ cvt.rzi.u32.f32 %r108, %f645;
+ cvt.sat.f32.f32 %f646, %f88;
+ mul.f32 %f647, %f646, 0f437FFD71;
+ cvt.rzi.u32.f32 %r109, %f647;
+ cvt.sat.f32.f32 %f648, %f75;
+ mul.f32 %f649, %f648, 0f437FFD71;
+ cvt.rzi.u32.f32 %r110, %f649;
+ cvt.u16.u32 %rs21, %r108;
+ cvt.u16.u32 %rs22, %r110;
+ cvt.u16.u32 %rs23, %r109;
+ mov.u16 %rs24, 255;
+ st.v4.u8 [%rd33], {%rs21, %rs23, %rs22, %rs24};
+ ld.global.u32 %r237, [imageEnabled];
+
+BB0_68:
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ and.b32 %r111, %r237, 4;
+ setp.eq.s32 %p100, %r111, 0;
+ @%p100 bra BB0_72;
+
+ ld.global.u32 %r112, [additive];
+ setp.eq.s32 %p101, %r112, 0;
+ mov.f32 %f650, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f650;}
+
+ // inline asm
+ @%p101 bra BB0_71;
+
+ mov.u64 %rd52, image_HDR;
+ cvta.global.u64 %rd41, %rd52;
+ mov.u32 %r116, 8;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r26, %r116, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs32, %rs33, %rs34, %rs35}, [%rd40];
+ // inline asm
+ { cvt.f32.f16 %f651, %rs32;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f652, %rs33;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f653, %rs34;}
+
+ // inline asm
+ // inline asm
+ call (%rd46), _rt_buffer_get_64, (%rd41, %r26, %r116, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f654, %f46, %f651;
+ add.f32 %f655, %f47, %f652;
+ add.f32 %f656, %f48, %f653;
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f656;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f655;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f654;}
+
+ // inline asm
+ st.v4.u16 [%rd46], {%rs29, %rs30, %rs31, %rs25};
+ bra.uni BB0_72;
+
+BB0_71:
+ mov.u64 %rd59, image_HDR;
+ cvta.global.u64 %rd54, %rd59;
+ mov.u32 %r118, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r26, %r118, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f48;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f47;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f46;}
+
+ // inline asm
+ st.v4.u16 [%rd53], {%rs36, %rs37, %rs38, %rs25};
+
+BB0_72:
+ mul.f32 %f661, %f31, 0f3E800000;
+ mul.f32 %f662, %f661, %f842;
+ ld.global.f32 %f663, [lightColor];
+ mul.f32 %f101, %f662, %f663;
+ ld.global.f32 %f664, [lightColor+4];
+ mul.f32 %f102, %f662, %f664;
+ ld.global.f32 %f665, [lightColor+8];
+ mul.f32 %f103, %f662, %f665;
+ ld.global.u32 %r119, [additive];
+ setp.eq.s32 %p102, %r119, 0;
+ mov.f32 %f660, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f660;}
+
+ // inline asm
+ @%p102 bra BB0_74;
+
+ mov.u64 %rd72, image_RNM0;
+ cvta.global.u64 %rd61, %rd72;
+ mov.u32 %r123, 8;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r26, %r123, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs46, %rs47, %rs48, %rs49}, [%rd60];
+ // inline asm
+ { cvt.f32.f16 %f666, %rs46;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f667, %rs47;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f668, %rs48;}
+
+ // inline asm
+ // inline asm
+ call (%rd66), _rt_buffer_get_64, (%rd61, %r26, %r123, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f669, %f101, %f666;
+ add.f32 %f670, %f102, %f667;
+ add.f32 %f671, %f103, %f668;
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f671;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f670;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f669;}
+
+ // inline asm
+ st.v4.u16 [%rd66], {%rs43, %rs44, %rs45, %rs39};
+ bra.uni BB0_75;
+
+BB0_74:
+ mov.u64 %rd79, image_RNM0;
+ cvta.global.u64 %rd74, %rd79;
+ mov.u32 %r125, 8;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r26, %r125, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f103;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f102;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f101;}
+
+ // inline asm
+ st.v4.u16 [%rd73], {%rs50, %rs51, %rs52, %rs39};
+
+BB0_75:
+ sub.f32 %f827, %f11, %f12;
+ mul.f32 %f826, %f827, %f136;
+ sub.f32 %f825, %f7, %f8;
+ mul.f32 %f824, %f825, %f136;
+ sub.f32 %f823, %f9, %f10;
+ mul.f32 %f822, %f823, %f136;
+ fma.rn.f32 %f104, %f824, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f105, %f822, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f106, %f826, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r126, [additive];
+ setp.eq.s32 %p103, %r126, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f660;}
+
+ // inline asm
+ @%p103 bra BB0_77;
+
+ mov.u64 %rd92, image_RNM1;
+ cvta.global.u64 %rd81, %rd92;
+ mov.u32 %r130, 8;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r26, %r130, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs60, %rs61, %rs62, %rs63}, [%rd80];
+ // inline asm
+ { cvt.f32.f16 %f676, %rs60;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f677, %rs61;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f678, %rs62;}
+
+ // inline asm
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd81, %r26, %r130, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f679, %f104, %f676;
+ add.f32 %f680, %f104, %f677;
+ add.f32 %f681, %f104, %f678;
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f681;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f680;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f679;}
+
+ // inline asm
+ st.v4.u16 [%rd86], {%rs57, %rs58, %rs59, %rs53};
+ bra.uni BB0_78;
+
+BB0_77:
+ mov.u64 %rd99, image_RNM1;
+ cvta.global.u64 %rd94, %rd99;
+ mov.u32 %r132, 8;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd94, %r26, %r132, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f104;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs64, %rs64, %rs64, %rs53};
+
+BB0_78:
+ ld.global.u32 %r133, [additive];
+ setp.eq.s32 %p104, %r133, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f660;}
+
+ // inline asm
+ @%p104 bra BB0_80;
+
+ mov.u64 %rd112, image_RNM2;
+ cvta.global.u64 %rd101, %rd112;
+ mov.u32 %r137, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r26, %r137, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs72, %rs73, %rs74, %rs75}, [%rd100];
+ // inline asm
+ { cvt.f32.f16 %f684, %rs72;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f685, %rs73;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f686, %rs74;}
+
+ // inline asm
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd101, %r26, %r137, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f687, %f105, %f684;
+ add.f32 %f688, %f105, %f685;
+ add.f32 %f689, %f105, %f686;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f689;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f688;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f687;}
+
+ // inline asm
+ st.v4.u16 [%rd106], {%rs69, %rs70, %rs71, %rs65};
+ bra.uni BB0_81;
+
+BB0_80:
+ mov.u64 %rd119, image_RNM2;
+ cvta.global.u64 %rd114, %rd119;
+ mov.u32 %r139, 8;
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd114, %r26, %r139, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f105;}
+
+ // inline asm
+ st.v4.u16 [%rd113], {%rs76, %rs76, %rs76, %rs65};
+
+BB0_81:
+ ld.global.u32 %r140, [additive];
+ setp.eq.s32 %p105, %r140, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f660;}
+
+ // inline asm
+ @%p105 bra BB0_83;
+
+ mov.u64 %rd132, image_RNM3;
+ cvta.global.u64 %rd121, %rd132;
+ mov.u32 %r144, 8;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd121, %r26, %r144, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs84, %rs85, %rs86, %rs87}, [%rd120];
+ // inline asm
+ { cvt.f32.f16 %f692, %rs84;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f693, %rs85;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f694, %rs86;}
+
+ // inline asm
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd121, %r26, %r144, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f695, %f106, %f692;
+ add.f32 %f696, %f106, %f693;
+ add.f32 %f697, %f106, %f694;
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f697;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f696;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f695;}
+
+ // inline asm
+ st.v4.u16 [%rd126], {%rs81, %rs82, %rs83, %rs77};
+ bra.uni BB0_125;
+
+BB0_83:
+ mov.u64 %rd139, image_RNM3;
+ cvta.global.u64 %rd134, %rd139;
+ mov.u32 %r146, 8;
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd134, %r26, %r146, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f106;}
+
+ // inline asm
+ st.v4.u16 [%rd133], {%rs88, %rs88, %rs88, %rs77};
+
+BB0_125:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightProbeSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightProbeSH.ptx.meta
new file mode 100644
index 00000000..a84586b7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightProbeSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 22d0ebd2cc22c314aa3ba05c011e50e0
+timeCreated: 1551521395
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightRNM.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightRNM.ptx
new file mode 100644
index 00000000..2861b313
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightRNM.ptx
@@ -0,0 +1,2321 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 uvtangent[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<128>;
+ .reg .b16 %rs<213>;
+ .reg .f32 %f<1028>;
+ .reg .b32 %r<245>;
+ .reg .b64 %rd<335>;
+
+
+ mov.u64 %rd334, __local_depot0;
+ cvta.local.u64 %SP, %rd334;
+ ld.global.v2.u32 {%r34, %r35}, [pixelID];
+ cvt.u64.u32 %rd17, %r34;
+ cvt.u64.u32 %rd18, %r35;
+ mov.u64 %rd21, uvnormal;
+ cvta.global.u64 %rd16, %rd21;
+ mov.u32 %r32, 2;
+ mov.u32 %r33, 4;
+ mov.u64 %rd20, 0;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd16, %r32, %r33, %rd17, %rd18, %rd20, %rd20);
+ // inline asm
+ ld.u32 %r1, [%rd15];
+ shr.u32 %r38, %r1, 16;
+ cvt.u16.u32 %rs1, %r38;
+ and.b16 %rs10, %rs1, 255;
+ cvt.u16.u32 %rs11, %r1;
+ or.b16 %rs12, %rs11, %rs10;
+ setp.eq.s16 %p6, %rs12, 0;
+ mov.f32 %f995, 0f00000000;
+ mov.f32 %f996, %f995;
+ mov.f32 %f997, %f995;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs13, [%rd15+1];
+ and.b16 %rs15, %rs11, 255;
+ cvt.rn.f32.u16 %f145, %rs15;
+ div.rn.f32 %f146, %f145, 0f437F0000;
+ fma.rn.f32 %f147, %f146, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f148, %rs13;
+ div.rn.f32 %f149, %f148, 0f437F0000;
+ fma.rn.f32 %f150, %f149, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f151, %rs10;
+ div.rn.f32 %f152, %f151, 0f437F0000;
+ fma.rn.f32 %f153, %f152, 0f40000000, 0fBF800000;
+ mul.f32 %f154, %f150, %f150;
+ fma.rn.f32 %f155, %f147, %f147, %f154;
+ fma.rn.f32 %f156, %f153, %f153, %f155;
+ sqrt.rn.f32 %f157, %f156;
+ rcp.rn.f32 %f158, %f157;
+ mul.f32 %f995, %f147, %f158;
+ mul.f32 %f996, %f150, %f158;
+ mul.f32 %f997, %f153, %f158;
+
+BB0_2:
+ ld.global.v2.u32 {%r39, %r40}, [pixelID];
+ ld.global.v2.u32 {%r42, %r43}, [tileInfo];
+ add.s32 %r2, %r39, %r42;
+ add.s32 %r3, %r40, %r43;
+ setp.eq.f32 %p7, %f996, 0f00000000;
+ setp.eq.f32 %p8, %f995, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f997, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_105;
+ bra.uni BB0_3;
+
+BB0_105:
+ ld.global.u32 %r244, [imageEnabled];
+ and.b32 %r200, %r244, 1;
+ setp.eq.b32 %p121, %r200, 1;
+ @!%p121 bra BB0_107;
+ bra.uni BB0_106;
+
+BB0_106:
+ cvt.u64.u32 %rd242, %r2;
+ cvt.u64.u32 %rd243, %r3;
+ mov.u64 %rd246, image;
+ cvta.global.u64 %rd241, %rd246;
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd241, %r32, %r33, %rd242, %rd243, %rd20, %rd20);
+ // inline asm
+ mov.u16 %rs158, 0;
+ st.v4.u8 [%rd240], {%rs158, %rs158, %rs158, %rs158};
+ ld.global.u32 %r244, [imageEnabled];
+
+BB0_107:
+ and.b32 %r203, %r244, 8;
+ setp.eq.s32 %p122, %r203, 0;
+ @%p122 bra BB0_109;
+
+ cvt.u64.u32 %rd250, %r3;
+ cvt.u64.u32 %rd249, %r2;
+ mov.u64 %rd253, image_Mask;
+ cvta.global.u64 %rd248, %rd253;
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd248, %r32, %r32, %rd249, %rd250, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f915, 0f00000000;
+ cvt.rzi.u32.f32 %r206, %f915;
+ cvt.u16.u32 %rs159, %r206;
+ mov.u16 %rs160, 0;
+ st.v2.u8 [%rd247], {%rs159, %rs160};
+ ld.global.u32 %r244, [imageEnabled];
+
+BB0_109:
+ cvt.u64.u32 %rd13, %r2;
+ cvt.u64.u32 %rd14, %r3;
+ and.b32 %r207, %r244, 4;
+ setp.eq.s32 %p123, %r207, 0;
+ @%p123 bra BB0_113;
+
+ ld.global.u32 %r208, [additive];
+ setp.eq.s32 %p124, %r208, 0;
+ @%p124 bra BB0_112;
+
+ mov.u64 %rd266, image_HDR;
+ cvta.global.u64 %rd255, %rd266;
+ mov.u32 %r212, 8;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r32, %r212, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs167, %rs168, %rs169, %rs170}, [%rd254];
+ // inline asm
+ { cvt.f32.f16 %f916, %rs167;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f917, %rs168;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f918, %rs169;}
+
+ // inline asm
+ // inline asm
+ call (%rd260), _rt_buffer_get_64, (%rd255, %r32, %r212, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ add.f32 %f919, %f916, 0f00000000;
+ add.f32 %f920, %f917, 0f00000000;
+ add.f32 %f921, %f918, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs166, %f921;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs165, %f920;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs164, %f919;}
+
+ // inline asm
+ mov.u16 %rs171, 0;
+ st.v4.u16 [%rd260], {%rs164, %rs165, %rs166, %rs171};
+ bra.uni BB0_113;
+
+BB0_3:
+ ld.global.v2.u32 {%r49, %r50}, [pixelID];
+ cvt.u64.u32 %rd24, %r49;
+ cvt.u64.u32 %rd25, %r50;
+ mov.u64 %rd28, uvpos;
+ cvta.global.u64 %rd23, %rd28;
+ mov.u32 %r48, 12;
+ // inline asm
+ call (%rd22), _rt_buffer_get_64, (%rd23, %r32, %r48, %rd24, %rd25, %rd20, %rd20);
+ // inline asm
+ ld.global.f32 %f7, [lightPos];
+ ld.f32 %f12, [%rd22+8];
+ ld.f32 %f10, [%rd22+4];
+ ld.f32 %f8, [%rd22];
+ sub.f32 %f161, %f7, %f8;
+ ld.global.f32 %f9, [lightPos+4];
+ sub.f32 %f162, %f9, %f10;
+ ld.global.f32 %f11, [lightPos+8];
+ sub.f32 %f163, %f11, %f12;
+ mul.f32 %f164, %f162, %f162;
+ fma.rn.f32 %f165, %f161, %f161, %f164;
+ fma.rn.f32 %f166, %f163, %f163, %f165;
+ sqrt.rn.f32 %f167, %f166;
+ rcp.rn.f32 %f168, %f167;
+ ld.global.f32 %f169, [lightFalloffFakeDistanceMult];
+ mul.f32 %f16, %f167, %f169;
+ ld.global.f32 %f170, [lightInvCutoff];
+ mul.f32 %f17, %f167, %f170;
+ mov.f32 %f174, 0f40800000;
+ abs.f32 %f19, %f17;
+ setp.lt.f32 %p12, %f19, 0f00800000;
+ mul.f32 %f176, %f19, 0f4B800000;
+ selp.f32 %f177, 0fC3170000, 0fC2FE0000, %p12;
+ selp.f32 %f178, %f176, %f19, %p12;
+ mov.b32 %r53, %f178;
+ and.b32 %r54, %r53, 8388607;
+ or.b32 %r55, %r54, 1065353216;
+ mov.b32 %f179, %r55;
+ shr.u32 %r56, %r53, 23;
+ cvt.rn.f32.u32 %f180, %r56;
+ add.f32 %f181, %f177, %f180;
+ setp.gt.f32 %p13, %f179, 0f3FB504F3;
+ mul.f32 %f182, %f179, 0f3F000000;
+ add.f32 %f183, %f181, 0f3F800000;
+ selp.f32 %f184, %f182, %f179, %p13;
+ selp.f32 %f185, %f183, %f181, %p13;
+ add.f32 %f186, %f184, 0fBF800000;
+ add.f32 %f160, %f184, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f159,%f160;
+ // inline asm
+ add.f32 %f187, %f186, %f186;
+ mul.f32 %f188, %f159, %f187;
+ mul.f32 %f189, %f188, %f188;
+ mov.f32 %f190, 0f3C4CAF63;
+ mov.f32 %f191, 0f3B18F0FE;
+ fma.rn.f32 %f192, %f191, %f189, %f190;
+ mov.f32 %f193, 0f3DAAAABD;
+ fma.rn.f32 %f194, %f192, %f189, %f193;
+ mul.rn.f32 %f195, %f194, %f189;
+ mul.rn.f32 %f196, %f195, %f188;
+ sub.f32 %f197, %f186, %f188;
+ neg.f32 %f198, %f188;
+ add.f32 %f199, %f197, %f197;
+ fma.rn.f32 %f200, %f198, %f186, %f199;
+ mul.rn.f32 %f201, %f159, %f200;
+ add.f32 %f202, %f196, %f188;
+ sub.f32 %f203, %f188, %f202;
+ add.f32 %f204, %f196, %f203;
+ add.f32 %f205, %f201, %f204;
+ add.f32 %f206, %f202, %f205;
+ sub.f32 %f207, %f202, %f206;
+ add.f32 %f208, %f205, %f207;
+ mov.f32 %f209, 0f3F317200;
+ mul.rn.f32 %f210, %f185, %f209;
+ mov.f32 %f211, 0f35BFBE8E;
+ mul.rn.f32 %f212, %f185, %f211;
+ add.f32 %f213, %f210, %f206;
+ sub.f32 %f214, %f210, %f213;
+ add.f32 %f215, %f206, %f214;
+ add.f32 %f216, %f208, %f215;
+ add.f32 %f217, %f212, %f216;
+ add.f32 %f218, %f213, %f217;
+ sub.f32 %f219, %f213, %f218;
+ add.f32 %f220, %f217, %f219;
+ mul.rn.f32 %f221, %f174, %f218;
+ neg.f32 %f222, %f221;
+ fma.rn.f32 %f223, %f174, %f218, %f222;
+ fma.rn.f32 %f224, %f174, %f220, %f223;
+ mov.f32 %f225, 0f00000000;
+ fma.rn.f32 %f226, %f225, %f218, %f224;
+ add.rn.f32 %f227, %f221, %f226;
+ neg.f32 %f228, %f227;
+ add.rn.f32 %f229, %f221, %f228;
+ add.rn.f32 %f230, %f229, %f226;
+ mov.b32 %r57, %f227;
+ setp.eq.s32 %p14, %r57, 1118925336;
+ add.s32 %r58, %r57, -1;
+ mov.b32 %f231, %r58;
+ add.f32 %f232, %f230, 0f37000000;
+ selp.f32 %f233, %f231, %f227, %p14;
+ selp.f32 %f20, %f232, %f230, %p14;
+ mul.f32 %f234, %f233, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f235, %f234;
+ mov.f32 %f236, 0fBF317200;
+ fma.rn.f32 %f237, %f235, %f236, %f233;
+ mov.f32 %f238, 0fB5BFBE8E;
+ fma.rn.f32 %f239, %f235, %f238, %f237;
+ mul.f32 %f240, %f239, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f241, %f240;
+ add.f32 %f242, %f235, 0f00000000;
+ ex2.approx.f32 %f243, %f242;
+ mul.f32 %f244, %f241, %f243;
+ setp.lt.f32 %p15, %f233, 0fC2D20000;
+ selp.f32 %f245, 0f00000000, %f244, %p15;
+ setp.gt.f32 %p16, %f233, 0f42D20000;
+ selp.f32 %f998, 0f7F800000, %f245, %p16;
+ setp.eq.f32 %p17, %f998, 0f7F800000;
+ @%p17 bra BB0_5;
+
+ fma.rn.f32 %f998, %f998, %f20, %f998;
+
+BB0_5:
+ mov.f32 %f949, 0f40000000;
+ cvt.rzi.f32.f32 %f948, %f949;
+ add.f32 %f947, %f948, %f948;
+ mov.f32 %f946, 0f40800000;
+ sub.f32 %f945, %f946, %f947;
+ abs.f32 %f944, %f945;
+ setp.lt.f32 %p18, %f17, 0f00000000;
+ setp.eq.f32 %p19, %f944, 0f3F800000;
+ and.pred %p1, %p18, %p19;
+ mov.b32 %r59, %f998;
+ xor.b32 %r60, %r59, -2147483648;
+ mov.b32 %f246, %r60;
+ selp.f32 %f1000, %f246, %f998, %p1;
+ setp.eq.f32 %p20, %f17, 0f00000000;
+ @%p20 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f249, %f17, %f17;
+ selp.f32 %f1000, %f249, 0f00000000, %p19;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p21, %f17, 0f00000000;
+ @%p21 bra BB0_9;
+
+ mov.f32 %f994, 0f40800000;
+ cvt.rzi.f32.f32 %f248, %f994;
+ setp.neu.f32 %p22, %f248, 0f40800000;
+ selp.f32 %f1000, 0f7FFFFFFF, %f1000, %p22;
+
+BB0_9:
+ abs.f32 %f950, %f17;
+ add.f32 %f250, %f950, 0f40800000;
+ mov.b32 %r61, %f250;
+ setp.lt.s32 %p24, %r61, 2139095040;
+ @%p24 bra BB0_14;
+
+ abs.f32 %f992, %f17;
+ setp.gtu.f32 %p25, %f992, 0f7F800000;
+ @%p25 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f1000, %f17, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f993, %f17;
+ setp.neu.f32 %p26, %f993, 0f7F800000;
+ @%p26 bra BB0_14;
+
+ selp.f32 %f1000, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ sub.f32 %f956, %f11, %f12;
+ mul.f32 %f955, %f956, %f168;
+ sub.f32 %f954, %f7, %f8;
+ mul.f32 %f953, %f954, %f168;
+ sub.f32 %f952, %f9, %f10;
+ mul.f32 %f951, %f952, %f168;
+ mov.f32 %f1006, 0f3F800000;
+ sub.f32 %f252, %f1006, %f1000;
+ setp.eq.f32 %p27, %f17, 0f3F800000;
+ selp.f32 %f253, 0f00000000, %f252, %p27;
+ cvt.sat.f32.f32 %f254, %f253;
+ ld.global.f32 %f255, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f256, %f16, %f16, %f255;
+ div.rn.f32 %f31, %f254, %f256;
+ mul.f32 %f257, %f996, %f951;
+ fma.rn.f32 %f258, %f995, %f953, %f257;
+ fma.rn.f32 %f32, %f997, %f955, %f258;
+ ld.global.u32 %r242, [imageEnabled];
+ ld.global.f32 %f259, [lightColor+4];
+ ld.global.f32 %f260, [lightColor];
+ max.f32 %f261, %f260, %f259;
+ ld.global.f32 %f262, [lightColor+8];
+ max.f32 %f263, %f261, %f262;
+ mul.f32 %f264, %f31, %f263;
+ setp.lt.f32 %p28, %f264, 0f3727C5AC;
+ @%p28 bra BB0_88;
+ bra.uni BB0_15;
+
+BB0_88:
+ and.b32 %r164, %r242, 1;
+ setp.eq.b32 %p114, %r164, 1;
+ @!%p114 bra BB0_90;
+ bra.uni BB0_89;
+
+BB0_89:
+ cvt.u64.u32 %rd148, %r2;
+ cvt.u64.u32 %rd149, %r3;
+ mov.u64 %rd152, image;
+ cvta.global.u64 %rd147, %rd152;
+ // inline asm
+ call (%rd146), _rt_buffer_get_64, (%rd147, %r32, %r33, %rd148, %rd149, %rd20, %rd20);
+ // inline asm
+ mov.u16 %rs106, 1;
+ mov.u16 %rs107, 0;
+ st.v4.u8 [%rd146], {%rs107, %rs107, %rs107, %rs106};
+ ld.global.u32 %r242, [imageEnabled];
+
+BB0_90:
+ and.b32 %r167, %r242, 8;
+ setp.eq.s32 %p115, %r167, 0;
+ @%p115 bra BB0_92;
+
+ cvt.u64.u32 %rd156, %r3;
+ cvt.u64.u32 %rd155, %r2;
+ mov.u64 %rd159, image_Mask;
+ cvta.global.u64 %rd154, %rd159;
+ // inline asm
+ call (%rd153), _rt_buffer_get_64, (%rd154, %r32, %r32, %rd155, %rd156, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f880, 0f00000000;
+ cvt.rzi.u32.f32 %r170, %f880;
+ cvt.u16.u32 %rs108, %r170;
+ mov.u16 %rs109, 255;
+ st.v2.u8 [%rd153], {%rs108, %rs109};
+ ld.global.u32 %r242, [imageEnabled];
+
+BB0_92:
+ cvt.u64.u32 %rd11, %r2;
+ cvt.u64.u32 %rd12, %r3;
+ and.b32 %r171, %r242, 4;
+ setp.eq.s32 %p116, %r171, 0;
+ @%p116 bra BB0_96;
+
+ ld.global.u32 %r172, [additive];
+ setp.eq.s32 %p117, %r172, 0;
+ mov.f32 %f881, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f881;}
+
+ // inline asm
+ @%p117 bra BB0_95;
+
+ mov.u64 %rd172, image_HDR;
+ cvta.global.u64 %rd161, %rd172;
+ mov.u32 %r176, 8;
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd161, %r32, %r176, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs117, %rs118, %rs119, %rs120}, [%rd160];
+ // inline asm
+ { cvt.f32.f16 %f882, %rs117;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f883, %rs118;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f884, %rs119;}
+
+ // inline asm
+ // inline asm
+ call (%rd166), _rt_buffer_get_64, (%rd161, %r32, %r176, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ add.f32 %f885, %f882, 0f00000000;
+ add.f32 %f886, %f883, 0f00000000;
+ add.f32 %f887, %f884, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f887;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs115, %f886;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs114, %f885;}
+
+ // inline asm
+ st.v4.u16 [%rd166], {%rs114, %rs115, %rs116, %rs110};
+ bra.uni BB0_96;
+
+BB0_15:
+ mov.f32 %f1004, 0f00000000;
+ mul.f32 %f266, %f8, 0f3456BF95;
+ abs.f32 %f267, %f995;
+ div.rn.f32 %f268, %f266, %f267;
+ abs.f32 %f269, %f996;
+ mul.f32 %f270, %f10, 0f3456BF95;
+ div.rn.f32 %f271, %f270, %f269;
+ abs.f32 %f272, %f997;
+ mul.f32 %f273, %f12, 0f3456BF95;
+ div.rn.f32 %f274, %f273, %f272;
+ abs.f32 %f275, %f268;
+ abs.f32 %f276, %f271;
+ abs.f32 %f277, %f274;
+ mov.f32 %f278, 0f38D1B717;
+ max.f32 %f279, %f275, %f278;
+ max.f32 %f280, %f276, %f278;
+ max.f32 %f281, %f277, %f278;
+ fma.rn.f32 %f33, %f995, %f279, %f8;
+ fma.rn.f32 %f34, %f996, %f280, %f10;
+ fma.rn.f32 %f35, %f997, %f281, %f12;
+ ld.global.u32 %r238, [samples];
+ setp.lt.s32 %p29, %r238, 1;
+ @%p29 bra BB0_18;
+
+ mul.f32 %f283, %f33, 0f3456BF95;
+ abs.f32 %f284, %f283;
+ mul.f32 %f285, %f34, 0f3456BF95;
+ abs.f32 %f286, %f285;
+ mul.f32 %f287, %f35, 0f3456BF95;
+ abs.f32 %f288, %f287;
+ max.f32 %f289, %f284, %f286;
+ max.f32 %f290, %f289, %f288;
+ max.f32 %f36, %f290, %f278;
+ add.u64 %rd29, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd29;
+ mov.f32 %f1004, 0f00000000;
+ mov.u32 %r237, 0;
+ mov.u32 %r236, %r242;
+ mov.f32 %f1001, %f11;
+ mov.f32 %f1002, %f9;
+ mov.f32 %f1003, %f7;
+ bra.uni BB0_17;
+
+BB0_87:
+ ld.global.f32 %f1003, [lightPos];
+ ld.global.f32 %f1002, [lightPos+4];
+ ld.global.f32 %f1001, [lightPos+8];
+ ld.global.u32 %r236, [imageEnabled];
+
+BB0_17:
+ cvt.rn.f32.s32 %f300, %r237;
+ mul.f32 %f301, %f300, 0f3DD32618;
+ cvt.rmi.f32.f32 %f302, %f301;
+ sub.f32 %f303, %f301, %f302;
+ mul.f32 %f304, %f300, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f305, %f304;
+ sub.f32 %f306, %f304, %f305;
+ mul.f32 %f307, %f300, 0f3DC74539;
+ cvt.rmi.f32.f32 %f308, %f307;
+ sub.f32 %f309, %f307, %f308;
+ add.f32 %f310, %f306, 0f4199851F;
+ add.f32 %f311, %f309, 0f4199851F;
+ add.f32 %f312, %f303, 0f4199851F;
+ mul.f32 %f313, %f306, %f311;
+ fma.rn.f32 %f314, %f303, %f310, %f313;
+ fma.rn.f32 %f315, %f312, %f309, %f314;
+ add.f32 %f316, %f303, %f315;
+ add.f32 %f317, %f306, %f315;
+ add.f32 %f318, %f309, %f315;
+ add.f32 %f319, %f316, %f317;
+ mul.f32 %f320, %f318, %f319;
+ cvt.rmi.f32.f32 %f321, %f320;
+ sub.f32 %f322, %f320, %f321;
+ add.f32 %f323, %f316, %f318;
+ mul.f32 %f324, %f317, %f323;
+ cvt.rmi.f32.f32 %f325, %f324;
+ sub.f32 %f326, %f324, %f325;
+ add.f32 %f327, %f317, %f318;
+ mul.f32 %f328, %f316, %f327;
+ cvt.rmi.f32.f32 %f329, %f328;
+ sub.f32 %f330, %f328, %f329;
+ fma.rn.f32 %f331, %f322, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f332, %f326, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f333, %f330, 0f40000000, 0fBF800000;
+ ld.global.f32 %f334, [lightRadius];
+ fma.rn.f32 %f335, %f334, %f331, %f1003;
+ fma.rn.f32 %f336, %f334, %f332, %f1002;
+ fma.rn.f32 %f337, %f334, %f333, %f1001;
+ sub.f32 %f338, %f335, %f8;
+ sub.f32 %f339, %f336, %f10;
+ sub.f32 %f340, %f337, %f12;
+ mul.f32 %f341, %f339, %f339;
+ fma.rn.f32 %f342, %f338, %f338, %f341;
+ fma.rn.f32 %f343, %f340, %f340, %f342;
+ sqrt.rn.f32 %f299, %f343;
+ rcp.rn.f32 %f344, %f299;
+ mul.f32 %f295, %f344, %f338;
+ mul.f32 %f296, %f344, %f339;
+ mul.f32 %f297, %f344, %f340;
+ and.b32 %r66, %r236, 32;
+ setp.eq.s32 %p30, %r66, 0;
+ selp.f32 %f345, 0f3F800000, 0f41200000, %p30;
+ mul.f32 %f298, %f345, %f36;
+ mov.u32 %r67, 1065353216;
+ st.local.u32 [%rd2], %r67;
+ ld.global.u32 %r63, [root];
+ mov.u32 %r64, 1;
+ // inline asm
+ call _rt_trace_64, (%r63, %f33, %f34, %f35, %f295, %f296, %f297, %r64, %f298, %f299, %rd29, %r33);
+ // inline asm
+ ld.local.f32 %f346, [%rd2];
+ add.f32 %f1004, %f1004, %f346;
+ ld.global.u32 %r238, [samples];
+ add.s32 %r237, %r237, 1;
+ setp.lt.s32 %p31, %r237, %r238;
+ @%p31 bra BB0_87;
+
+BB0_18:
+ setp.eq.s32 %p32, %r238, 0;
+ @%p32 bra BB0_20;
+
+ cvt.rn.f32.s32 %f348, %r238;
+ div.rn.f32 %f1006, %f1004, %f348;
+
+BB0_20:
+ ld.global.u32 %r68, [ignoreNormal];
+ and.b32 %r69, %r242, 32;
+ or.b32 %r70, %r69, %r68;
+ setp.eq.s32 %p33, %r70, 0;
+ selp.f32 %f349, %f32, 0f3F800000, %p33;
+ cvt.sat.f32.f32 %f350, %f349;
+ mul.f32 %f351, %f31, %f350;
+ mul.f32 %f352, %f1006, %f351;
+ ld.global.f32 %f353, [lightColor];
+ mul.f32 %f45, %f353, %f352;
+ ld.global.f32 %f354, [lightColor+4];
+ mul.f32 %f46, %f354, %f352;
+ ld.global.f32 %f355, [lightColor+8];
+ mul.f32 %f47, %f352, %f355;
+ ld.global.u32 %r240, [imageEnabled];
+ and.b32 %r71, %r240, 8;
+ setp.eq.s32 %p34, %r71, 0;
+ @%p34 bra BB0_33;
+
+ mov.f32 %f964, 0fB5BFBE8E;
+ mov.f32 %f963, 0fBF317200;
+ mov.f32 %f962, 0f35BFBE8E;
+ mov.f32 %f961, 0f3F317200;
+ mov.f32 %f960, 0f3DAAAABD;
+ mov.f32 %f959, 0f3C4CAF63;
+ mov.f32 %f958, 0f3B18F0FE;
+ cvt.u64.u32 %rd33, %r2;
+ cvt.u64.u32 %rd34, %r3;
+ mov.u64 %rd37, image_Mask;
+ cvta.global.u64 %rd32, %rd37;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd32, %r32, %r32, %rd33, %rd34, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f358, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f359, %f358;
+ fma.rn.f32 %f360, %f359, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f48, %f360;
+ abs.f32 %f49, %f1006;
+ setp.lt.f32 %p35, %f49, 0f00800000;
+ mul.f32 %f361, %f49, 0f4B800000;
+ selp.f32 %f362, 0fC3170000, 0fC2FE0000, %p35;
+ selp.f32 %f363, %f361, %f49, %p35;
+ mov.b32 %r74, %f363;
+ and.b32 %r75, %r74, 8388607;
+ or.b32 %r76, %r75, 1065353216;
+ mov.b32 %f364, %r76;
+ shr.u32 %r77, %r74, 23;
+ cvt.rn.f32.u32 %f365, %r77;
+ add.f32 %f366, %f362, %f365;
+ setp.gt.f32 %p36, %f364, 0f3FB504F3;
+ mul.f32 %f367, %f364, 0f3F000000;
+ add.f32 %f368, %f366, 0f3F800000;
+ selp.f32 %f369, %f367, %f364, %p36;
+ selp.f32 %f370, %f368, %f366, %p36;
+ add.f32 %f371, %f369, 0fBF800000;
+ add.f32 %f357, %f369, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f356,%f357;
+ // inline asm
+ add.f32 %f372, %f371, %f371;
+ mul.f32 %f373, %f356, %f372;
+ mul.f32 %f374, %f373, %f373;
+ fma.rn.f32 %f377, %f958, %f374, %f959;
+ fma.rn.f32 %f379, %f377, %f374, %f960;
+ mul.rn.f32 %f380, %f379, %f374;
+ mul.rn.f32 %f381, %f380, %f373;
+ sub.f32 %f382, %f371, %f373;
+ neg.f32 %f383, %f373;
+ add.f32 %f384, %f382, %f382;
+ fma.rn.f32 %f385, %f383, %f371, %f384;
+ mul.rn.f32 %f386, %f356, %f385;
+ add.f32 %f387, %f381, %f373;
+ sub.f32 %f388, %f373, %f387;
+ add.f32 %f389, %f381, %f388;
+ add.f32 %f390, %f386, %f389;
+ add.f32 %f391, %f387, %f390;
+ sub.f32 %f392, %f387, %f391;
+ add.f32 %f393, %f390, %f392;
+ mul.rn.f32 %f395, %f370, %f961;
+ mul.rn.f32 %f397, %f370, %f962;
+ add.f32 %f398, %f395, %f391;
+ sub.f32 %f399, %f395, %f398;
+ add.f32 %f400, %f391, %f399;
+ add.f32 %f401, %f393, %f400;
+ add.f32 %f402, %f397, %f401;
+ add.f32 %f403, %f398, %f402;
+ sub.f32 %f404, %f398, %f403;
+ add.f32 %f405, %f402, %f404;
+ mov.f32 %f406, 0f3EE8BA2E;
+ mul.rn.f32 %f407, %f406, %f403;
+ neg.f32 %f408, %f407;
+ fma.rn.f32 %f409, %f406, %f403, %f408;
+ fma.rn.f32 %f410, %f406, %f405, %f409;
+ mov.f32 %f411, 0f00000000;
+ fma.rn.f32 %f412, %f411, %f403, %f410;
+ add.rn.f32 %f413, %f407, %f412;
+ neg.f32 %f414, %f413;
+ add.rn.f32 %f415, %f407, %f414;
+ add.rn.f32 %f416, %f415, %f412;
+ mov.b32 %r78, %f413;
+ setp.eq.s32 %p37, %r78, 1118925336;
+ add.s32 %r79, %r78, -1;
+ mov.b32 %f417, %r79;
+ add.f32 %f418, %f416, 0f37000000;
+ selp.f32 %f419, %f417, %f413, %p37;
+ selp.f32 %f50, %f418, %f416, %p37;
+ mul.f32 %f420, %f419, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f421, %f420;
+ fma.rn.f32 %f423, %f421, %f963, %f419;
+ fma.rn.f32 %f425, %f421, %f964, %f423;
+ mul.f32 %f426, %f425, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f427, %f426;
+ add.f32 %f428, %f421, 0f00000000;
+ ex2.approx.f32 %f429, %f428;
+ mul.f32 %f430, %f427, %f429;
+ setp.lt.f32 %p38, %f419, 0fC2D20000;
+ selp.f32 %f431, 0f00000000, %f430, %p38;
+ setp.gt.f32 %p39, %f419, 0f42D20000;
+ selp.f32 %f1007, 0f7F800000, %f431, %p39;
+ setp.eq.f32 %p40, %f1007, 0f7F800000;
+ @%p40 bra BB0_23;
+
+ fma.rn.f32 %f1007, %f1007, %f50, %f1007;
+
+BB0_23:
+ setp.lt.f32 %p41, %f1006, 0f00000000;
+ setp.eq.f32 %p42, %f48, 0f3F800000;
+ and.pred %p2, %p41, %p42;
+ mov.b32 %r80, %f1007;
+ xor.b32 %r81, %r80, -2147483648;
+ mov.b32 %f432, %r81;
+ selp.f32 %f1009, %f432, %f1007, %p2;
+ setp.eq.f32 %p43, %f1006, 0f00000000;
+ @%p43 bra BB0_26;
+ bra.uni BB0_24;
+
+BB0_26:
+ add.f32 %f435, %f1006, %f1006;
+ selp.f32 %f1009, %f435, 0f00000000, %p42;
+ bra.uni BB0_27;
+
+BB0_112:
+ mov.u64 %rd273, image_HDR;
+ cvta.global.u64 %rd268, %rd273;
+ mov.u32 %r214, 8;
+ // inline asm
+ call (%rd267), _rt_buffer_get_64, (%rd268, %r32, %r214, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f922, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs172, %f922;}
+
+ // inline asm
+ mov.u16 %rs173, 0;
+ st.v4.u16 [%rd267], {%rs172, %rs172, %rs172, %rs173};
+
+BB0_113:
+ ld.global.u32 %r215, [additive];
+ setp.eq.s32 %p125, %r215, 0;
+ @%p125 bra BB0_115;
+
+ mov.u64 %rd286, image_RNM0;
+ cvta.global.u64 %rd275, %rd286;
+ mov.u32 %r219, 8;
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd275, %r32, %r219, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs180, %rs181, %rs182, %rs183}, [%rd274];
+ // inline asm
+ { cvt.f32.f16 %f923, %rs180;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f924, %rs181;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f925, %rs182;}
+
+ // inline asm
+ // inline asm
+ call (%rd280), _rt_buffer_get_64, (%rd275, %r32, %r219, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ add.f32 %f926, %f923, 0f00000000;
+ add.f32 %f927, %f924, 0f00000000;
+ add.f32 %f928, %f925, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs179, %f928;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs178, %f927;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs177, %f926;}
+
+ // inline asm
+ mov.u16 %rs184, 0;
+ st.v4.u16 [%rd280], {%rs177, %rs178, %rs179, %rs184};
+ bra.uni BB0_116;
+
+BB0_115:
+ mov.u64 %rd293, image_RNM0;
+ cvta.global.u64 %rd288, %rd293;
+ mov.u32 %r221, 8;
+ // inline asm
+ call (%rd287), _rt_buffer_get_64, (%rd288, %r32, %r221, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f929, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs185, %f929;}
+
+ // inline asm
+ mov.u16 %rs186, 0;
+ st.v4.u16 [%rd287], {%rs185, %rs185, %rs185, %rs186};
+
+BB0_116:
+ ld.global.u32 %r222, [additive];
+ setp.eq.s32 %p126, %r222, 0;
+ @%p126 bra BB0_118;
+
+ mov.u64 %rd306, image_RNM1;
+ cvta.global.u64 %rd295, %rd306;
+ mov.u32 %r226, 8;
+ // inline asm
+ call (%rd294), _rt_buffer_get_64, (%rd295, %r32, %r226, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs193, %rs194, %rs195, %rs196}, [%rd294];
+ // inline asm
+ { cvt.f32.f16 %f930, %rs193;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f931, %rs194;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f932, %rs195;}
+
+ // inline asm
+ // inline asm
+ call (%rd300), _rt_buffer_get_64, (%rd295, %r32, %r226, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ add.f32 %f933, %f930, 0f00000000;
+ add.f32 %f934, %f931, 0f00000000;
+ add.f32 %f935, %f932, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs192, %f935;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs191, %f934;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs190, %f933;}
+
+ // inline asm
+ mov.u16 %rs197, 0;
+ st.v4.u16 [%rd300], {%rs190, %rs191, %rs192, %rs197};
+ bra.uni BB0_119;
+
+BB0_118:
+ mov.u64 %rd313, image_RNM1;
+ cvta.global.u64 %rd308, %rd313;
+ mov.u32 %r228, 8;
+ // inline asm
+ call (%rd307), _rt_buffer_get_64, (%rd308, %r32, %r228, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f936, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs198, %f936;}
+
+ // inline asm
+ mov.u16 %rs199, 0;
+ st.v4.u16 [%rd307], {%rs198, %rs198, %rs198, %rs199};
+
+BB0_119:
+ ld.global.u32 %r229, [additive];
+ setp.eq.s32 %p127, %r229, 0;
+ @%p127 bra BB0_121;
+
+ mov.u64 %rd326, image_RNM2;
+ cvta.global.u64 %rd315, %rd326;
+ mov.u32 %r233, 8;
+ // inline asm
+ call (%rd314), _rt_buffer_get_64, (%rd315, %r32, %r233, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs206, %rs207, %rs208, %rs209}, [%rd314];
+ // inline asm
+ { cvt.f32.f16 %f937, %rs206;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f938, %rs207;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f939, %rs208;}
+
+ // inline asm
+ // inline asm
+ call (%rd320), _rt_buffer_get_64, (%rd315, %r32, %r233, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ add.f32 %f940, %f937, 0f00000000;
+ add.f32 %f941, %f938, 0f00000000;
+ add.f32 %f942, %f939, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs205, %f942;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs204, %f941;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs203, %f940;}
+
+ // inline asm
+ mov.u16 %rs210, 0;
+ st.v4.u16 [%rd320], {%rs203, %rs204, %rs205, %rs210};
+ bra.uni BB0_122;
+
+BB0_121:
+ mov.u64 %rd333, image_RNM2;
+ cvta.global.u64 %rd328, %rd333;
+ mov.u32 %r235, 8;
+ // inline asm
+ call (%rd327), _rt_buffer_get_64, (%rd328, %r32, %r235, %rd13, %rd14, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f943, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs211, %f943;}
+
+ // inline asm
+ mov.u16 %rs212, 0;
+ st.v4.u16 [%rd327], {%rs211, %rs211, %rs211, %rs212};
+ bra.uni BB0_122;
+
+BB0_95:
+ mov.u64 %rd179, image_HDR;
+ cvta.global.u64 %rd174, %rd179;
+ mov.u32 %r178, 8;
+ // inline asm
+ call (%rd173), _rt_buffer_get_64, (%rd174, %r32, %r178, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f888, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f888;}
+
+ // inline asm
+ st.v4.u16 [%rd173], {%rs121, %rs121, %rs121, %rs110};
+
+BB0_96:
+ ld.global.u32 %r179, [additive];
+ setp.eq.s32 %p118, %r179, 0;
+ mov.f32 %f889, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f889;}
+
+ // inline asm
+ @%p118 bra BB0_98;
+
+ mov.u64 %rd192, image_RNM0;
+ cvta.global.u64 %rd181, %rd192;
+ mov.u32 %r183, 8;
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd181, %r32, %r183, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs129, %rs130, %rs131, %rs132}, [%rd180];
+ // inline asm
+ { cvt.f32.f16 %f890, %rs129;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f891, %rs130;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f892, %rs131;}
+
+ // inline asm
+ // inline asm
+ call (%rd186), _rt_buffer_get_64, (%rd181, %r32, %r183, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ add.f32 %f893, %f890, 0f00000000;
+ add.f32 %f894, %f891, 0f00000000;
+ add.f32 %f895, %f892, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs128, %f895;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs127, %f894;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs126, %f893;}
+
+ // inline asm
+ st.v4.u16 [%rd186], {%rs126, %rs127, %rs128, %rs122};
+ bra.uni BB0_99;
+
+BB0_98:
+ mov.u64 %rd199, image_RNM0;
+ cvta.global.u64 %rd194, %rd199;
+ mov.u32 %r185, 8;
+ // inline asm
+ call (%rd193), _rt_buffer_get_64, (%rd194, %r32, %r185, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f896, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f896;}
+
+ // inline asm
+ st.v4.u16 [%rd193], {%rs133, %rs133, %rs133, %rs122};
+
+BB0_99:
+ ld.global.u32 %r186, [additive];
+ setp.eq.s32 %p119, %r186, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f889;}
+
+ // inline asm
+ @%p119 bra BB0_101;
+
+ mov.u64 %rd212, image_RNM1;
+ cvta.global.u64 %rd201, %rd212;
+ mov.u32 %r190, 8;
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd201, %r32, %r190, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs141, %rs142, %rs143, %rs144}, [%rd200];
+ // inline asm
+ { cvt.f32.f16 %f898, %rs141;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f899, %rs142;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f900, %rs143;}
+
+ // inline asm
+ // inline asm
+ call (%rd206), _rt_buffer_get_64, (%rd201, %r32, %r190, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ add.f32 %f901, %f898, 0f00000000;
+ add.f32 %f902, %f899, 0f00000000;
+ add.f32 %f903, %f900, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f903;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs139, %f902;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs138, %f901;}
+
+ // inline asm
+ st.v4.u16 [%rd206], {%rs138, %rs139, %rs140, %rs134};
+ bra.uni BB0_102;
+
+BB0_101:
+ mov.u64 %rd219, image_RNM1;
+ cvta.global.u64 %rd214, %rd219;
+ mov.u32 %r192, 8;
+ // inline asm
+ call (%rd213), _rt_buffer_get_64, (%rd214, %r32, %r192, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f904, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f904;}
+
+ // inline asm
+ st.v4.u16 [%rd213], {%rs145, %rs145, %rs145, %rs134};
+
+BB0_102:
+ ld.global.u32 %r193, [additive];
+ setp.eq.s32 %p120, %r193, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f889;}
+
+ // inline asm
+ @%p120 bra BB0_104;
+
+ mov.u64 %rd232, image_RNM2;
+ cvta.global.u64 %rd221, %rd232;
+ mov.u32 %r197, 8;
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd221, %r32, %r197, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs153, %rs154, %rs155, %rs156}, [%rd220];
+ // inline asm
+ { cvt.f32.f16 %f906, %rs153;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f907, %rs154;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f908, %rs155;}
+
+ // inline asm
+ // inline asm
+ call (%rd226), _rt_buffer_get_64, (%rd221, %r32, %r197, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ add.f32 %f909, %f906, 0f00000000;
+ add.f32 %f910, %f907, 0f00000000;
+ add.f32 %f911, %f908, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f911;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs151, %f910;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f909;}
+
+ // inline asm
+ st.v4.u16 [%rd226], {%rs150, %rs151, %rs152, %rs146};
+ bra.uni BB0_122;
+
+BB0_104:
+ mov.u64 %rd239, image_RNM2;
+ cvta.global.u64 %rd234, %rd239;
+ mov.u32 %r199, 8;
+ // inline asm
+ call (%rd233), _rt_buffer_get_64, (%rd234, %r32, %r199, %rd11, %rd12, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f912, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs157, %f912;}
+
+ // inline asm
+ st.v4.u16 [%rd233], {%rs157, %rs157, %rs157, %rs146};
+ bra.uni BB0_122;
+
+BB0_24:
+ setp.geu.f32 %p44, %f1006, 0f00000000;
+ @%p44 bra BB0_27;
+
+ cvt.rzi.f32.f32 %f434, %f406;
+ setp.neu.f32 %p45, %f434, 0f3EE8BA2E;
+ selp.f32 %f1009, 0f7FFFFFFF, %f1009, %p45;
+
+BB0_27:
+ add.f32 %f436, %f49, 0f3EE8BA2E;
+ mov.b32 %r82, %f436;
+ setp.lt.s32 %p47, %r82, 2139095040;
+ @%p47 bra BB0_32;
+
+ setp.gtu.f32 %p48, %f49, 0f7F800000;
+ @%p48 bra BB0_31;
+ bra.uni BB0_29;
+
+BB0_31:
+ add.f32 %f1009, %f1006, 0f3EE8BA2E;
+ bra.uni BB0_32;
+
+BB0_29:
+ setp.neu.f32 %p49, %f49, 0f7F800000;
+ @%p49 bra BB0_32;
+
+ selp.f32 %f1009, 0fFF800000, 0f7F800000, %p2;
+
+BB0_32:
+ mul.f32 %f437, %f1009, 0f437F0000;
+ setp.eq.f32 %p50, %f1006, 0f3F800000;
+ selp.f32 %f438, 0f437F0000, %f437, %p50;
+ cvt.rzi.u32.f32 %r83, %f438;
+ cvt.u16.u32 %rs17, %r83;
+ mov.u16 %rs18, 255;
+ st.v2.u8 [%rd31], {%rs17, %rs18};
+ ld.global.u32 %r240, [imageEnabled];
+
+BB0_33:
+ and.b32 %r84, %r240, 1;
+ setp.eq.b32 %p51, %r84, 1;
+ @!%p51 bra BB0_68;
+ bra.uni BB0_34;
+
+BB0_34:
+ mov.f32 %f971, 0fB5BFBE8E;
+ mov.f32 %f970, 0fBF317200;
+ mov.f32 %f969, 0f35BFBE8E;
+ mov.f32 %f968, 0f3F317200;
+ mov.f32 %f967, 0f3DAAAABD;
+ mov.f32 %f966, 0f3C4CAF63;
+ mov.f32 %f965, 0f3B18F0FE;
+ mov.f32 %f441, 0f3E666666;
+ cvt.rzi.f32.f32 %f442, %f441;
+ fma.rn.f32 %f443, %f442, 0fC0000000, 0f3EE66666;
+ abs.f32 %f61, %f443;
+ abs.f32 %f62, %f45;
+ setp.lt.f32 %p52, %f62, 0f00800000;
+ mul.f32 %f444, %f62, 0f4B800000;
+ selp.f32 %f445, 0fC3170000, 0fC2FE0000, %p52;
+ selp.f32 %f446, %f444, %f62, %p52;
+ mov.b32 %r85, %f446;
+ and.b32 %r86, %r85, 8388607;
+ or.b32 %r87, %r86, 1065353216;
+ mov.b32 %f447, %r87;
+ shr.u32 %r88, %r85, 23;
+ cvt.rn.f32.u32 %f448, %r88;
+ add.f32 %f449, %f445, %f448;
+ setp.gt.f32 %p53, %f447, 0f3FB504F3;
+ mul.f32 %f450, %f447, 0f3F000000;
+ add.f32 %f451, %f449, 0f3F800000;
+ selp.f32 %f452, %f450, %f447, %p53;
+ selp.f32 %f453, %f451, %f449, %p53;
+ add.f32 %f454, %f452, 0fBF800000;
+ add.f32 %f440, %f452, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f439,%f440;
+ // inline asm
+ add.f32 %f455, %f454, %f454;
+ mul.f32 %f456, %f439, %f455;
+ mul.f32 %f457, %f456, %f456;
+ fma.rn.f32 %f460, %f965, %f457, %f966;
+ fma.rn.f32 %f462, %f460, %f457, %f967;
+ mul.rn.f32 %f463, %f462, %f457;
+ mul.rn.f32 %f464, %f463, %f456;
+ sub.f32 %f465, %f454, %f456;
+ neg.f32 %f466, %f456;
+ add.f32 %f467, %f465, %f465;
+ fma.rn.f32 %f468, %f466, %f454, %f467;
+ mul.rn.f32 %f469, %f439, %f468;
+ add.f32 %f470, %f464, %f456;
+ sub.f32 %f471, %f456, %f470;
+ add.f32 %f472, %f464, %f471;
+ add.f32 %f473, %f469, %f472;
+ add.f32 %f474, %f470, %f473;
+ sub.f32 %f475, %f470, %f474;
+ add.f32 %f476, %f473, %f475;
+ mul.rn.f32 %f478, %f453, %f968;
+ mul.rn.f32 %f480, %f453, %f969;
+ add.f32 %f481, %f478, %f474;
+ sub.f32 %f482, %f478, %f481;
+ add.f32 %f483, %f474, %f482;
+ add.f32 %f484, %f476, %f483;
+ add.f32 %f485, %f480, %f484;
+ add.f32 %f486, %f481, %f485;
+ sub.f32 %f487, %f481, %f486;
+ add.f32 %f488, %f485, %f487;
+ mov.f32 %f489, 0f3EE66666;
+ mul.rn.f32 %f490, %f489, %f486;
+ neg.f32 %f491, %f490;
+ fma.rn.f32 %f492, %f489, %f486, %f491;
+ fma.rn.f32 %f493, %f489, %f488, %f492;
+ mov.f32 %f494, 0f00000000;
+ fma.rn.f32 %f495, %f494, %f486, %f493;
+ add.rn.f32 %f496, %f490, %f495;
+ neg.f32 %f497, %f496;
+ add.rn.f32 %f498, %f490, %f497;
+ add.rn.f32 %f499, %f498, %f495;
+ mov.b32 %r89, %f496;
+ setp.eq.s32 %p54, %r89, 1118925336;
+ add.s32 %r90, %r89, -1;
+ mov.b32 %f500, %r90;
+ add.f32 %f501, %f499, 0f37000000;
+ selp.f32 %f502, %f500, %f496, %p54;
+ selp.f32 %f63, %f501, %f499, %p54;
+ mul.f32 %f503, %f502, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f504, %f503;
+ fma.rn.f32 %f506, %f504, %f970, %f502;
+ fma.rn.f32 %f508, %f504, %f971, %f506;
+ mul.f32 %f509, %f508, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f510, %f509;
+ add.f32 %f511, %f504, 0f00000000;
+ ex2.approx.f32 %f512, %f511;
+ mul.f32 %f513, %f510, %f512;
+ setp.lt.f32 %p55, %f502, 0fC2D20000;
+ selp.f32 %f514, 0f00000000, %f513, %p55;
+ setp.gt.f32 %p56, %f502, 0f42D20000;
+ selp.f32 %f1010, 0f7F800000, %f514, %p56;
+ setp.eq.f32 %p57, %f1010, 0f7F800000;
+ @%p57 bra BB0_36;
+
+ fma.rn.f32 %f1010, %f1010, %f63, %f1010;
+
+BB0_36:
+ setp.lt.f32 %p58, %f45, 0f00000000;
+ setp.eq.f32 %p59, %f61, 0f3F800000;
+ and.pred %p3, %p58, %p59;
+ mov.b32 %r91, %f1010;
+ xor.b32 %r92, %r91, -2147483648;
+ mov.b32 %f515, %r92;
+ selp.f32 %f1012, %f515, %f1010, %p3;
+ setp.eq.f32 %p60, %f45, 0f00000000;
+ @%p60 bra BB0_39;
+ bra.uni BB0_37;
+
+BB0_39:
+ add.f32 %f518, %f45, %f45;
+ selp.f32 %f1012, %f518, 0f00000000, %p59;
+ bra.uni BB0_40;
+
+BB0_37:
+ setp.geu.f32 %p61, %f45, 0f00000000;
+ @%p61 bra BB0_40;
+
+ cvt.rzi.f32.f32 %f517, %f489;
+ setp.neu.f32 %p62, %f517, 0f3EE66666;
+ selp.f32 %f1012, 0f7FFFFFFF, %f1012, %p62;
+
+BB0_40:
+ add.f32 %f519, %f62, 0f3EE66666;
+ mov.b32 %r93, %f519;
+ setp.lt.s32 %p64, %r93, 2139095040;
+ @%p64 bra BB0_45;
+
+ setp.gtu.f32 %p65, %f62, 0f7F800000;
+ @%p65 bra BB0_44;
+ bra.uni BB0_42;
+
+BB0_44:
+ add.f32 %f1012, %f45, 0f3EE66666;
+ bra.uni BB0_45;
+
+BB0_42:
+ setp.neu.f32 %p66, %f62, 0f7F800000;
+ @%p66 bra BB0_45;
+
+ selp.f32 %f1012, 0fFF800000, 0f7F800000, %p3;
+
+BB0_45:
+ mov.f32 %f978, 0fB5BFBE8E;
+ mov.f32 %f977, 0fBF317200;
+ mov.f32 %f976, 0f35BFBE8E;
+ mov.f32 %f975, 0f3F317200;
+ mov.f32 %f974, 0f3DAAAABD;
+ mov.f32 %f973, 0f3C4CAF63;
+ mov.f32 %f972, 0f3B18F0FE;
+ setp.eq.f32 %p67, %f45, 0f3F800000;
+ selp.f32 %f74, 0f3F800000, %f1012, %p67;
+ abs.f32 %f75, %f46;
+ setp.lt.f32 %p68, %f75, 0f00800000;
+ mul.f32 %f522, %f75, 0f4B800000;
+ selp.f32 %f523, 0fC3170000, 0fC2FE0000, %p68;
+ selp.f32 %f524, %f522, %f75, %p68;
+ mov.b32 %r94, %f524;
+ and.b32 %r95, %r94, 8388607;
+ or.b32 %r96, %r95, 1065353216;
+ mov.b32 %f525, %r96;
+ shr.u32 %r97, %r94, 23;
+ cvt.rn.f32.u32 %f526, %r97;
+ add.f32 %f527, %f523, %f526;
+ setp.gt.f32 %p69, %f525, 0f3FB504F3;
+ mul.f32 %f528, %f525, 0f3F000000;
+ add.f32 %f529, %f527, 0f3F800000;
+ selp.f32 %f530, %f528, %f525, %p69;
+ selp.f32 %f531, %f529, %f527, %p69;
+ add.f32 %f532, %f530, 0fBF800000;
+ add.f32 %f521, %f530, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f520,%f521;
+ // inline asm
+ add.f32 %f533, %f532, %f532;
+ mul.f32 %f534, %f520, %f533;
+ mul.f32 %f535, %f534, %f534;
+ fma.rn.f32 %f538, %f972, %f535, %f973;
+ fma.rn.f32 %f540, %f538, %f535, %f974;
+ mul.rn.f32 %f541, %f540, %f535;
+ mul.rn.f32 %f542, %f541, %f534;
+ sub.f32 %f543, %f532, %f534;
+ neg.f32 %f544, %f534;
+ add.f32 %f545, %f543, %f543;
+ fma.rn.f32 %f546, %f544, %f532, %f545;
+ mul.rn.f32 %f547, %f520, %f546;
+ add.f32 %f548, %f542, %f534;
+ sub.f32 %f549, %f534, %f548;
+ add.f32 %f550, %f542, %f549;
+ add.f32 %f551, %f547, %f550;
+ add.f32 %f552, %f548, %f551;
+ sub.f32 %f553, %f548, %f552;
+ add.f32 %f554, %f551, %f553;
+ mul.rn.f32 %f556, %f531, %f975;
+ mul.rn.f32 %f558, %f531, %f976;
+ add.f32 %f559, %f556, %f552;
+ sub.f32 %f560, %f556, %f559;
+ add.f32 %f561, %f552, %f560;
+ add.f32 %f562, %f554, %f561;
+ add.f32 %f563, %f558, %f562;
+ add.f32 %f564, %f559, %f563;
+ sub.f32 %f565, %f559, %f564;
+ add.f32 %f566, %f563, %f565;
+ mul.rn.f32 %f568, %f489, %f564;
+ neg.f32 %f569, %f568;
+ fma.rn.f32 %f570, %f489, %f564, %f569;
+ fma.rn.f32 %f571, %f489, %f566, %f570;
+ fma.rn.f32 %f573, %f494, %f564, %f571;
+ add.rn.f32 %f574, %f568, %f573;
+ neg.f32 %f575, %f574;
+ add.rn.f32 %f576, %f568, %f575;
+ add.rn.f32 %f577, %f576, %f573;
+ mov.b32 %r98, %f574;
+ setp.eq.s32 %p70, %r98, 1118925336;
+ add.s32 %r99, %r98, -1;
+ mov.b32 %f578, %r99;
+ add.f32 %f579, %f577, 0f37000000;
+ selp.f32 %f580, %f578, %f574, %p70;
+ selp.f32 %f76, %f579, %f577, %p70;
+ mul.f32 %f581, %f580, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f582, %f581;
+ fma.rn.f32 %f584, %f582, %f977, %f580;
+ fma.rn.f32 %f586, %f582, %f978, %f584;
+ mul.f32 %f587, %f586, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f588, %f587;
+ add.f32 %f589, %f582, 0f00000000;
+ ex2.approx.f32 %f590, %f589;
+ mul.f32 %f591, %f588, %f590;
+ setp.lt.f32 %p71, %f580, 0fC2D20000;
+ selp.f32 %f592, 0f00000000, %f591, %p71;
+ setp.gt.f32 %p72, %f580, 0f42D20000;
+ selp.f32 %f1013, 0f7F800000, %f592, %p72;
+ setp.eq.f32 %p73, %f1013, 0f7F800000;
+ @%p73 bra BB0_47;
+
+ fma.rn.f32 %f1013, %f1013, %f76, %f1013;
+
+BB0_47:
+ setp.lt.f32 %p74, %f46, 0f00000000;
+ and.pred %p4, %p74, %p59;
+ mov.b32 %r100, %f1013;
+ xor.b32 %r101, %r100, -2147483648;
+ mov.b32 %f593, %r101;
+ selp.f32 %f1015, %f593, %f1013, %p4;
+ setp.eq.f32 %p76, %f46, 0f00000000;
+ @%p76 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f596, %f46, %f46;
+ selp.f32 %f1015, %f596, 0f00000000, %p59;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p77, %f46, 0f00000000;
+ @%p77 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f595, %f489;
+ setp.neu.f32 %p78, %f595, 0f3EE66666;
+ selp.f32 %f1015, 0f7FFFFFFF, %f1015, %p78;
+
+BB0_51:
+ add.f32 %f597, %f75, 0f3EE66666;
+ mov.b32 %r102, %f597;
+ setp.lt.s32 %p80, %r102, 2139095040;
+ @%p80 bra BB0_56;
+
+ setp.gtu.f32 %p81, %f75, 0f7F800000;
+ @%p81 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f1015, %f46, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p82, %f75, 0f7F800000;
+ @%p82 bra BB0_56;
+
+ selp.f32 %f1015, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f985, 0fB5BFBE8E;
+ mov.f32 %f984, 0fBF317200;
+ mov.f32 %f983, 0f35BFBE8E;
+ mov.f32 %f982, 0f3F317200;
+ mov.f32 %f981, 0f3DAAAABD;
+ mov.f32 %f980, 0f3C4CAF63;
+ mov.f32 %f979, 0f3B18F0FE;
+ setp.eq.f32 %p83, %f46, 0f3F800000;
+ selp.f32 %f87, 0f3F800000, %f1015, %p83;
+ abs.f32 %f88, %f47;
+ setp.lt.f32 %p84, %f88, 0f00800000;
+ mul.f32 %f600, %f88, 0f4B800000;
+ selp.f32 %f601, 0fC3170000, 0fC2FE0000, %p84;
+ selp.f32 %f602, %f600, %f88, %p84;
+ mov.b32 %r103, %f602;
+ and.b32 %r104, %r103, 8388607;
+ or.b32 %r105, %r104, 1065353216;
+ mov.b32 %f603, %r105;
+ shr.u32 %r106, %r103, 23;
+ cvt.rn.f32.u32 %f604, %r106;
+ add.f32 %f605, %f601, %f604;
+ setp.gt.f32 %p85, %f603, 0f3FB504F3;
+ mul.f32 %f606, %f603, 0f3F000000;
+ add.f32 %f607, %f605, 0f3F800000;
+ selp.f32 %f608, %f606, %f603, %p85;
+ selp.f32 %f609, %f607, %f605, %p85;
+ add.f32 %f610, %f608, 0fBF800000;
+ add.f32 %f599, %f608, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f598,%f599;
+ // inline asm
+ add.f32 %f611, %f610, %f610;
+ mul.f32 %f612, %f598, %f611;
+ mul.f32 %f613, %f612, %f612;
+ fma.rn.f32 %f616, %f979, %f613, %f980;
+ fma.rn.f32 %f618, %f616, %f613, %f981;
+ mul.rn.f32 %f619, %f618, %f613;
+ mul.rn.f32 %f620, %f619, %f612;
+ sub.f32 %f621, %f610, %f612;
+ neg.f32 %f622, %f612;
+ add.f32 %f623, %f621, %f621;
+ fma.rn.f32 %f624, %f622, %f610, %f623;
+ mul.rn.f32 %f625, %f598, %f624;
+ add.f32 %f626, %f620, %f612;
+ sub.f32 %f627, %f612, %f626;
+ add.f32 %f628, %f620, %f627;
+ add.f32 %f629, %f625, %f628;
+ add.f32 %f630, %f626, %f629;
+ sub.f32 %f631, %f626, %f630;
+ add.f32 %f632, %f629, %f631;
+ mul.rn.f32 %f634, %f609, %f982;
+ mul.rn.f32 %f636, %f609, %f983;
+ add.f32 %f637, %f634, %f630;
+ sub.f32 %f638, %f634, %f637;
+ add.f32 %f639, %f630, %f638;
+ add.f32 %f640, %f632, %f639;
+ add.f32 %f641, %f636, %f640;
+ add.f32 %f642, %f637, %f641;
+ sub.f32 %f643, %f637, %f642;
+ add.f32 %f644, %f641, %f643;
+ mul.rn.f32 %f646, %f489, %f642;
+ neg.f32 %f647, %f646;
+ fma.rn.f32 %f648, %f489, %f642, %f647;
+ fma.rn.f32 %f649, %f489, %f644, %f648;
+ fma.rn.f32 %f651, %f494, %f642, %f649;
+ add.rn.f32 %f652, %f646, %f651;
+ neg.f32 %f653, %f652;
+ add.rn.f32 %f654, %f646, %f653;
+ add.rn.f32 %f655, %f654, %f651;
+ mov.b32 %r107, %f652;
+ setp.eq.s32 %p86, %r107, 1118925336;
+ add.s32 %r108, %r107, -1;
+ mov.b32 %f656, %r108;
+ add.f32 %f657, %f655, 0f37000000;
+ selp.f32 %f658, %f656, %f652, %p86;
+ selp.f32 %f89, %f657, %f655, %p86;
+ mul.f32 %f659, %f658, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f660, %f659;
+ fma.rn.f32 %f662, %f660, %f984, %f658;
+ fma.rn.f32 %f664, %f660, %f985, %f662;
+ mul.f32 %f665, %f664, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f666, %f665;
+ add.f32 %f667, %f660, 0f00000000;
+ ex2.approx.f32 %f668, %f667;
+ mul.f32 %f669, %f666, %f668;
+ setp.lt.f32 %p87, %f658, 0fC2D20000;
+ selp.f32 %f670, 0f00000000, %f669, %p87;
+ setp.gt.f32 %p88, %f658, 0f42D20000;
+ selp.f32 %f1016, 0f7F800000, %f670, %p88;
+ setp.eq.f32 %p89, %f1016, 0f7F800000;
+ @%p89 bra BB0_58;
+
+ fma.rn.f32 %f1016, %f1016, %f89, %f1016;
+
+BB0_58:
+ setp.lt.f32 %p90, %f47, 0f00000000;
+ and.pred %p5, %p90, %p59;
+ mov.b32 %r109, %f1016;
+ xor.b32 %r110, %r109, -2147483648;
+ mov.b32 %f671, %r110;
+ selp.f32 %f1018, %f671, %f1016, %p5;
+ setp.eq.f32 %p92, %f47, 0f00000000;
+ @%p92 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f674, %f47, %f47;
+ selp.f32 %f1018, %f674, 0f00000000, %p59;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p93, %f47, 0f00000000;
+ @%p93 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f673, %f489;
+ setp.neu.f32 %p94, %f673, 0f3EE66666;
+ selp.f32 %f1018, 0f7FFFFFFF, %f1018, %p94;
+
+BB0_62:
+ add.f32 %f675, %f88, 0f3EE66666;
+ mov.b32 %r111, %f675;
+ setp.lt.s32 %p96, %r111, 2139095040;
+ @%p96 bra BB0_67;
+
+ setp.gtu.f32 %p97, %f88, 0f7F800000;
+ @%p97 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f1018, %f47, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p98, %f88, 0f7F800000;
+ @%p98 bra BB0_67;
+
+ selp.f32 %f1018, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ setp.eq.f32 %p99, %f47, 0f3F800000;
+ selp.f32 %f676, 0f3F800000, %f1018, %p99;
+ cvt.u64.u32 %rd41, %r3;
+ cvt.u64.u32 %rd40, %r2;
+ mov.u64 %rd44, image;
+ cvta.global.u64 %rd39, %rd44;
+ // inline asm
+ call (%rd38), _rt_buffer_get_64, (%rd39, %r32, %r33, %rd40, %rd41, %rd20, %rd20);
+ // inline asm
+ cvt.sat.f32.f32 %f677, %f676;
+ mul.f32 %f678, %f677, 0f437FFD71;
+ cvt.rzi.u32.f32 %r114, %f678;
+ cvt.sat.f32.f32 %f679, %f87;
+ mul.f32 %f680, %f679, 0f437FFD71;
+ cvt.rzi.u32.f32 %r115, %f680;
+ cvt.sat.f32.f32 %f681, %f74;
+ mul.f32 %f682, %f681, 0f437FFD71;
+ cvt.rzi.u32.f32 %r116, %f682;
+ cvt.u16.u32 %rs19, %r114;
+ cvt.u16.u32 %rs20, %r116;
+ cvt.u16.u32 %rs21, %r115;
+ mov.u16 %rs22, 255;
+ st.v4.u8 [%rd38], {%rs19, %rs21, %rs20, %rs22};
+ ld.global.u32 %r240, [imageEnabled];
+
+BB0_68:
+ and.b32 %r117, %r240, 4;
+ setp.eq.s32 %p100, %r117, 0;
+ @%p100 bra BB0_72;
+
+ ld.global.u32 %r118, [additive];
+ setp.eq.s32 %p101, %r118, 0;
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ mov.f32 %f683, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f683;}
+
+ // inline asm
+ @%p101 bra BB0_71;
+
+ mov.u64 %rd57, image_HDR;
+ cvta.global.u64 %rd46, %rd57;
+ mov.u32 %r122, 8;
+ // inline asm
+ call (%rd45), _rt_buffer_get_64, (%rd46, %r32, %r122, %rd4, %rd5, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs30, %rs31, %rs32, %rs33}, [%rd45];
+ // inline asm
+ { cvt.f32.f16 %f684, %rs30;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f685, %rs31;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f686, %rs32;}
+
+ // inline asm
+ // inline asm
+ call (%rd51), _rt_buffer_get_64, (%rd46, %r32, %r122, %rd4, %rd5, %rd20, %rd20);
+ // inline asm
+ add.f32 %f687, %f45, %f684;
+ add.f32 %f688, %f46, %f685;
+ add.f32 %f689, %f47, %f686;
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f689;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f688;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f687;}
+
+ // inline asm
+ st.v4.u16 [%rd51], {%rs27, %rs28, %rs29, %rs23};
+ bra.uni BB0_72;
+
+BB0_71:
+ mov.u64 %rd64, image_HDR;
+ cvta.global.u64 %rd59, %rd64;
+ mov.u32 %r124, 8;
+ // inline asm
+ call (%rd58), _rt_buffer_get_64, (%rd59, %r32, %r124, %rd4, %rd5, %rd20, %rd20);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f47;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs35, %f46;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f45;}
+
+ // inline asm
+ st.v4.u16 [%rd58], {%rs34, %rs35, %rs36, %rs23};
+
+BB0_72:
+ mul.f32 %f696, %f31, %f1006;
+ ld.global.f32 %f697, [lightColor];
+ mul.f32 %f100, %f696, %f697;
+ ld.global.f32 %f698, [lightColor+4];
+ mul.f32 %f101, %f696, %f698;
+ ld.global.f32 %f699, [lightColor+8];
+ mul.f32 %f102, %f696, %f699;
+ ld.global.v2.u32 {%r127, %r128}, [pixelID];
+ cvt.u64.u32 %rd67, %r127;
+ cvt.u64.u32 %rd68, %r128;
+ mov.u64 %rd71, uvtangent;
+ cvta.global.u64 %rd66, %rd71;
+ // inline asm
+ call (%rd65), _rt_buffer_get_64, (%rd66, %r32, %r33, %rd67, %rd68, %rd20, %rd20);
+ // inline asm
+ ld.u32 %r16, [%rd65];
+ shr.u32 %r17, %r16, 16;
+ cvt.u16.u32 %rs37, %r17;
+ and.b16 %rs38, %rs37, 255;
+ cvt.u16.u32 %rs39, %r16;
+ or.b16 %rs40, %rs39, %rs38;
+ setp.eq.s16 %p102, %rs40, 0;
+ mov.f32 %f1025, 0f00000000;
+ mov.f32 %f1019, %f1025;
+ mov.f32 %f1020, %f1025;
+ mov.f32 %f1021, %f1025;
+ @%p102 bra BB0_74;
+
+ ld.u8 %rs41, [%rd65+1];
+ and.b16 %rs43, %rs39, 255;
+ cvt.rn.f32.u16 %f700, %rs43;
+ div.rn.f32 %f701, %f700, 0f437F0000;
+ fma.rn.f32 %f702, %f701, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f703, %rs41;
+ div.rn.f32 %f704, %f703, 0f437F0000;
+ fma.rn.f32 %f705, %f704, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f706, %rs38;
+ div.rn.f32 %f707, %f706, 0f437F0000;
+ fma.rn.f32 %f708, %f707, 0f40000000, 0fBF800000;
+ mul.f32 %f709, %f705, %f705;
+ fma.rn.f32 %f710, %f702, %f702, %f709;
+ fma.rn.f32 %f711, %f708, %f708, %f710;
+ sqrt.rn.f32 %f712, %f711;
+ rcp.rn.f32 %f713, %f712;
+ mul.f32 %f1019, %f702, %f713;
+ mul.f32 %f1020, %f705, %f713;
+ mul.f32 %f1021, %f708, %f713;
+
+BB0_74:
+ mul.f32 %f717, %f997, %f1020;
+ mul.f32 %f718, %f996, %f1021;
+ sub.f32 %f719, %f718, %f717;
+ mul.f32 %f720, %f995, %f1021;
+ mul.f32 %f721, %f997, %f1019;
+ sub.f32 %f722, %f721, %f720;
+ mul.f32 %f723, %f996, %f1019;
+ mul.f32 %f724, %f995, %f1020;
+ sub.f32 %f725, %f724, %f723;
+ setp.lt.u32 %p103, %r16, 16777216;
+ selp.f32 %f726, 0fBF800000, 0f3F800000, %p103;
+ mul.f32 %f727, %f719, %f726;
+ mul.f32 %f728, %f722, %f726;
+ mul.f32 %f729, %f725, %f726;
+ mul.f32 %f730, %f727, 0f00000000;
+ mul.f32 %f731, %f728, 0f00000000;
+ mul.f32 %f732, %f729, 0f00000000;
+ fma.rn.f32 %f733, %f1019, 0f3F5105EC, %f730;
+ fma.rn.f32 %f734, %f1020, 0f3F5105EC, %f731;
+ fma.rn.f32 %f735, %f1021, 0f3F5105EC, %f732;
+ mul.f32 %f109, %f995, 0f3F13CD3A;
+ add.f32 %f110, %f109, %f733;
+ mul.f32 %f111, %f996, 0f3F13CD3A;
+ add.f32 %f112, %f111, %f734;
+ mul.f32 %f113, %f997, 0f3F13CD3A;
+ add.f32 %f114, %f113, %f735;
+ ld.global.v2.u32 {%r133, %r134}, [pixelID];
+ cvt.u64.u32 %rd74, %r133;
+ cvt.u64.u32 %rd75, %r134;
+ // inline asm
+ call (%rd72), _rt_buffer_get_64, (%rd66, %r32, %r33, %rd74, %rd75, %rd20, %rd20);
+ // inline asm
+ ld.u32 %r18, [%rd72];
+ shr.u32 %r19, %r18, 16;
+ cvt.u16.u32 %rs46, %r19;
+ and.b16 %rs47, %rs46, 255;
+ cvt.u16.u32 %rs48, %r18;
+ or.b16 %rs49, %rs48, %rs47;
+ setp.eq.s16 %p104, %rs49, 0;
+ mov.f32 %f1022, %f1025;
+ mov.f32 %f1023, %f1025;
+ mov.f32 %f1024, %f1025;
+ @%p104 bra BB0_76;
+
+ ld.u8 %rs50, [%rd72+1];
+ and.b16 %rs52, %rs48, 255;
+ cvt.rn.f32.u16 %f736, %rs52;
+ div.rn.f32 %f737, %f736, 0f437F0000;
+ fma.rn.f32 %f738, %f737, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f739, %rs50;
+ div.rn.f32 %f740, %f739, 0f437F0000;
+ fma.rn.f32 %f741, %f740, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f742, %rs47;
+ div.rn.f32 %f743, %f742, 0f437F0000;
+ fma.rn.f32 %f744, %f743, 0f40000000, 0fBF800000;
+ mul.f32 %f745, %f741, %f741;
+ fma.rn.f32 %f746, %f738, %f738, %f745;
+ fma.rn.f32 %f747, %f744, %f744, %f746;
+ sqrt.rn.f32 %f748, %f747;
+ rcp.rn.f32 %f749, %f748;
+ mul.f32 %f1022, %f738, %f749;
+ mul.f32 %f1023, %f741, %f749;
+ mul.f32 %f1024, %f744, %f749;
+
+BB0_76:
+ mul.f32 %f753, %f997, %f1023;
+ mul.f32 %f754, %f996, %f1024;
+ sub.f32 %f755, %f754, %f753;
+ mul.f32 %f756, %f995, %f1024;
+ mul.f32 %f757, %f997, %f1022;
+ sub.f32 %f758, %f757, %f756;
+ mul.f32 %f759, %f996, %f1022;
+ mul.f32 %f760, %f995, %f1023;
+ sub.f32 %f761, %f760, %f759;
+ setp.lt.u32 %p105, %r18, 16777216;
+ selp.f32 %f762, 0fBF800000, 0f3F800000, %p105;
+ mul.f32 %f763, %f755, %f762;
+ mul.f32 %f764, %f758, %f762;
+ mul.f32 %f765, %f761, %f762;
+ mul.f32 %f766, %f763, 0f3F3504F3;
+ mul.f32 %f767, %f764, 0f3F3504F3;
+ mul.f32 %f768, %f765, 0f3F3504F3;
+ fma.rn.f32 %f769, %f1022, 0fBED105EC, %f766;
+ fma.rn.f32 %f770, %f1023, 0fBED105EC, %f767;
+ fma.rn.f32 %f771, %f1024, 0fBED105EC, %f768;
+ add.f32 %f121, %f109, %f769;
+ add.f32 %f122, %f111, %f770;
+ add.f32 %f123, %f113, %f771;
+ ld.global.v2.u32 {%r139, %r140}, [pixelID];
+ cvt.u64.u32 %rd81, %r139;
+ cvt.u64.u32 %rd82, %r140;
+ // inline asm
+ call (%rd79), _rt_buffer_get_64, (%rd66, %r32, %r33, %rd81, %rd82, %rd20, %rd20);
+ // inline asm
+ ld.u32 %r20, [%rd79];
+ shr.u32 %r21, %r20, 16;
+ cvt.u16.u32 %rs55, %r21;
+ and.b16 %rs56, %rs55, 255;
+ cvt.u16.u32 %rs57, %r20;
+ or.b16 %rs58, %rs57, %rs56;
+ setp.eq.s16 %p106, %rs58, 0;
+ mov.f32 %f1026, %f1025;
+ mov.f32 %f1027, %f1025;
+ @%p106 bra BB0_78;
+
+ ld.u8 %rs59, [%rd79+1];
+ and.b16 %rs61, %rs57, 255;
+ cvt.rn.f32.u16 %f772, %rs61;
+ div.rn.f32 %f773, %f772, 0f437F0000;
+ fma.rn.f32 %f774, %f773, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f775, %rs59;
+ div.rn.f32 %f776, %f775, 0f437F0000;
+ fma.rn.f32 %f777, %f776, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f778, %rs56;
+ div.rn.f32 %f779, %f778, 0f437F0000;
+ fma.rn.f32 %f780, %f779, 0f40000000, 0fBF800000;
+ mul.f32 %f781, %f777, %f777;
+ fma.rn.f32 %f782, %f774, %f774, %f781;
+ fma.rn.f32 %f783, %f780, %f780, %f782;
+ sqrt.rn.f32 %f784, %f783;
+ rcp.rn.f32 %f785, %f784;
+ mul.f32 %f1025, %f774, %f785;
+ mul.f32 %f1026, %f777, %f785;
+ mul.f32 %f1027, %f780, %f785;
+
+BB0_78:
+ sub.f32 %f991, %f11, %f12;
+ mul.f32 %f990, %f991, %f168;
+ sub.f32 %f989, %f7, %f8;
+ mul.f32 %f988, %f989, %f168;
+ sub.f32 %f987, %f9, %f10;
+ mul.f32 %f986, %f987, %f168;
+ mul.f32 %f787, %f997, %f1026;
+ mul.f32 %f788, %f996, %f1027;
+ sub.f32 %f789, %f788, %f787;
+ mul.f32 %f790, %f995, %f1027;
+ mul.f32 %f791, %f997, %f1025;
+ sub.f32 %f792, %f791, %f790;
+ mul.f32 %f793, %f996, %f1025;
+ mul.f32 %f794, %f995, %f1026;
+ sub.f32 %f795, %f794, %f793;
+ setp.lt.u32 %p107, %r20, 16777216;
+ selp.f32 %f796, 0fBF800000, 0f3F800000, %p107;
+ mul.f32 %f797, %f789, %f796;
+ mul.f32 %f798, %f792, %f796;
+ mul.f32 %f799, %f795, %f796;
+ mul.f32 %f800, %f797, 0fBF3504F3;
+ mul.f32 %f801, %f798, 0fBF3504F3;
+ mul.f32 %f802, %f799, 0fBF3504F3;
+ fma.rn.f32 %f803, %f1025, 0fBED105EC, %f800;
+ fma.rn.f32 %f804, %f1026, 0fBED105EC, %f801;
+ fma.rn.f32 %f805, %f1027, 0fBED105EC, %f802;
+ add.f32 %f806, %f109, %f803;
+ add.f32 %f807, %f111, %f804;
+ add.f32 %f808, %f113, %f805;
+ mul.f32 %f809, %f986, %f112;
+ fma.rn.f32 %f810, %f988, %f110, %f809;
+ fma.rn.f32 %f811, %f990, %f114, %f810;
+ cvt.sat.f32.f32 %f812, %f811;
+ mul.f32 %f813, %f100, %f812;
+ mul.f32 %f814, %f101, %f812;
+ mul.f32 %f815, %f102, %f812;
+ mul.f32 %f816, %f986, %f122;
+ fma.rn.f32 %f817, %f988, %f121, %f816;
+ fma.rn.f32 %f818, %f990, %f123, %f817;
+ cvt.sat.f32.f32 %f819, %f818;
+ mul.f32 %f820, %f100, %f819;
+ mul.f32 %f821, %f101, %f819;
+ mul.f32 %f822, %f102, %f819;
+ mul.f32 %f823, %f986, %f807;
+ fma.rn.f32 %f824, %f988, %f806, %f823;
+ fma.rn.f32 %f825, %f990, %f808, %f824;
+ cvt.sat.f32.f32 %f826, %f825;
+ mul.f32 %f827, %f100, %f826;
+ mul.f32 %f828, %f101, %f826;
+ mul.f32 %f829, %f102, %f826;
+ cvt.sat.f32.f32 %f830, %f32;
+ mul.f32 %f831, %f100, %f830;
+ mul.f32 %f832, %f101, %f830;
+ mul.f32 %f833, %f102, %f830;
+ add.f32 %f834, %f813, %f820;
+ add.f32 %f835, %f814, %f821;
+ add.f32 %f836, %f815, %f822;
+ add.f32 %f837, %f834, %f827;
+ add.f32 %f838, %f835, %f828;
+ add.f32 %f839, %f836, %f829;
+ mul.f32 %f840, %f837, 0f3F13CD3A;
+ mul.f32 %f841, %f838, 0f3F13CD3A;
+ mul.f32 %f842, %f839, 0f3F13CD3A;
+ div.rn.f32 %f843, %f831, %f840;
+ div.rn.f32 %f844, %f832, %f841;
+ div.rn.f32 %f845, %f833, %f842;
+ setp.eq.f32 %p108, %f831, 0f00000000;
+ selp.f32 %f846, 0f00000000, %f843, %p108;
+ setp.eq.f32 %p109, %f832, 0f00000000;
+ selp.f32 %f847, 0f00000000, %f844, %p109;
+ setp.eq.f32 %p110, %f833, 0f00000000;
+ selp.f32 %f848, 0f00000000, %f845, %p110;
+ mul.f32 %f130, %f813, %f846;
+ mul.f32 %f131, %f814, %f847;
+ mul.f32 %f132, %f815, %f848;
+ mul.f32 %f133, %f820, %f846;
+ mul.f32 %f134, %f821, %f847;
+ mul.f32 %f135, %f822, %f848;
+ mul.f32 %f136, %f827, %f846;
+ mul.f32 %f137, %f828, %f847;
+ mul.f32 %f138, %f829, %f848;
+ ld.global.u32 %r143, [additive];
+ setp.eq.s32 %p111, %r143, 0;
+ cvt.u64.u32 %rd9, %r2;
+ cvt.u64.u32 %rd10, %r3;
+ mov.f32 %f786, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f786;}
+
+ // inline asm
+ @%p111 bra BB0_80;
+
+ mov.u64 %rd98, image_RNM0;
+ cvta.global.u64 %rd87, %rd98;
+ mov.u32 %r147, 8;
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd87, %r32, %r147, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs71, %rs72, %rs73, %rs74}, [%rd86];
+ // inline asm
+ { cvt.f32.f16 %f849, %rs71;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f850, %rs72;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f851, %rs73;}
+
+ // inline asm
+ // inline asm
+ call (%rd92), _rt_buffer_get_64, (%rd87, %r32, %r147, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ add.f32 %f852, %f130, %f849;
+ add.f32 %f853, %f131, %f850;
+ add.f32 %f854, %f132, %f851;
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f854;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f853;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs68, %f852;}
+
+ // inline asm
+ st.v4.u16 [%rd92], {%rs68, %rs69, %rs70, %rs64};
+ bra.uni BB0_81;
+
+BB0_80:
+ mov.u64 %rd105, image_RNM0;
+ cvta.global.u64 %rd100, %rd105;
+ mov.u32 %r149, 8;
+ // inline asm
+ call (%rd99), _rt_buffer_get_64, (%rd100, %r32, %r149, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f132;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f131;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs75, %f130;}
+
+ // inline asm
+ st.v4.u16 [%rd99], {%rs75, %rs76, %rs77, %rs64};
+
+BB0_81:
+ ld.global.u32 %r150, [additive];
+ setp.eq.s32 %p112, %r150, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f786;}
+
+ // inline asm
+ @%p112 bra BB0_83;
+
+ mov.u64 %rd118, image_RNM1;
+ cvta.global.u64 %rd107, %rd118;
+ mov.u32 %r154, 8;
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd107, %r32, %r154, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs85, %rs86, %rs87, %rs88}, [%rd106];
+ // inline asm
+ { cvt.f32.f16 %f859, %rs85;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f860, %rs86;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f861, %rs87;}
+
+ // inline asm
+ // inline asm
+ call (%rd112), _rt_buffer_get_64, (%rd107, %r32, %r154, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ add.f32 %f862, %f133, %f859;
+ add.f32 %f863, %f134, %f860;
+ add.f32 %f864, %f135, %f861;
+ // inline asm
+ { cvt.rn.f16.f32 %rs84, %f864;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f863;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f862;}
+
+ // inline asm
+ st.v4.u16 [%rd112], {%rs82, %rs83, %rs84, %rs78};
+ bra.uni BB0_84;
+
+BB0_83:
+ mov.u64 %rd125, image_RNM1;
+ cvta.global.u64 %rd120, %rd125;
+ mov.u32 %r156, 8;
+ // inline asm
+ call (%rd119), _rt_buffer_get_64, (%rd120, %r32, %r156, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f135;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f134;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs89, %f133;}
+
+ // inline asm
+ st.v4.u16 [%rd119], {%rs89, %rs90, %rs91, %rs78};
+
+BB0_84:
+ ld.global.u32 %r157, [additive];
+ setp.eq.s32 %p113, %r157, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f786;}
+
+ // inline asm
+ @%p113 bra BB0_86;
+
+ mov.u64 %rd138, image_RNM2;
+ cvta.global.u64 %rd127, %rd138;
+ mov.u32 %r161, 8;
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd127, %r32, %r161, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs99, %rs100, %rs101, %rs102}, [%rd126];
+ // inline asm
+ { cvt.f32.f16 %f869, %rs99;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f870, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f871, %rs101;}
+
+ // inline asm
+ // inline asm
+ call (%rd132), _rt_buffer_get_64, (%rd127, %r32, %r161, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ add.f32 %f872, %f136, %f869;
+ add.f32 %f873, %f137, %f870;
+ add.f32 %f874, %f138, %f871;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f874;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f873;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs96, %f872;}
+
+ // inline asm
+ st.v4.u16 [%rd132], {%rs96, %rs97, %rs98, %rs92};
+ bra.uni BB0_122;
+
+BB0_86:
+ mov.u64 %rd145, image_RNM2;
+ cvta.global.u64 %rd140, %rd145;
+ mov.u32 %r163, 8;
+ // inline asm
+ call (%rd139), _rt_buffer_get_64, (%rd140, %r32, %r163, %rd9, %rd10, %rd20, %rd20);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f138;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f137;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs103, %f136;}
+
+ // inline asm
+ st.v4.u16 [%rd139], {%rs103, %rs104, %rs105, %rs92};
+
+BB0_122:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightRNM.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightRNM.ptx.meta
new file mode 100644
index 00000000..d8661604
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightRNM.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5cd9d2a00197a554a92057b6afd31c44
+timeCreated: 1537522739
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightSH.ptx
new file mode 100644
index 00000000..525980e0
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightSH.ptx
@@ -0,0 +1,2408 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 4 .u32 samples;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightRadius;
+.global .align 4 .b8 lightPos[12];
+.global .align 4 .b8 lightColor[12];
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .f32 lightFalloffFakeDistanceMult;
+.global .align 4 .f32 lightFalloffMinRadiusSq;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightRadiusE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8lightPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo28lightFalloffFakeDistanceMultE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo23lightFalloffMinRadiusSqE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11lightRadiusE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8lightPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename28lightFalloffFakeDistanceMultE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename23lightFalloffMinRadiusSqE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightRadiusE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8lightPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum28lightFalloffFakeDistanceMultE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum23lightFalloffMinRadiusSqE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightRadiusE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8lightPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic23lightFalloffMinRadiusSqE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightRadiusE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8lightPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation28lightFalloffFakeDistanceMultE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation23lightFalloffMinRadiusSqE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[4];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<139>;
+ .reg .b16 %rs<221>;
+ .reg .f32 %f<979>;
+ .reg .b32 %r<251>;
+ .reg .b64 %rd<369>;
+
+
+ mov.u64 %rd368, __local_depot0;
+ cvta.local.u64 %SP, %rd368;
+ ld.global.v2.u32 {%r28, %r29}, [pixelID];
+ cvt.u64.u32 %rd12, %r28;
+ cvt.u64.u32 %rd13, %r29;
+ mov.u64 %rd16, uvnormal;
+ cvta.global.u64 %rd11, %rd16;
+ mov.u32 %r26, 2;
+ mov.u32 %r27, 4;
+ mov.u64 %rd15, 0;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r26, %r27, %rd12, %rd13, %rd15, %rd15);
+ // inline asm
+ ld.u32 %r1, [%rd10];
+ shr.u32 %r32, %r1, 16;
+ cvt.u16.u32 %rs1, %r32;
+ and.b16 %rs12, %rs1, 255;
+ cvt.u16.u32 %rs13, %r1;
+ or.b16 %rs14, %rs13, %rs12;
+ setp.eq.s16 %p7, %rs14, 0;
+ mov.f32 %f952, 0f00000000;
+ mov.f32 %f953, %f952;
+ mov.f32 %f954, %f952;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs15, [%rd10+1];
+ and.b16 %rs17, %rs13, 255;
+ cvt.rn.f32.u16 %f128, %rs17;
+ div.rn.f32 %f129, %f128, 0f437F0000;
+ fma.rn.f32 %f130, %f129, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f131, %rs15;
+ div.rn.f32 %f132, %f131, 0f437F0000;
+ fma.rn.f32 %f133, %f132, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f134, %rs12;
+ div.rn.f32 %f135, %f134, 0f437F0000;
+ fma.rn.f32 %f136, %f135, 0f40000000, 0fBF800000;
+ mul.f32 %f137, %f133, %f133;
+ fma.rn.f32 %f138, %f130, %f130, %f137;
+ fma.rn.f32 %f139, %f136, %f136, %f138;
+ sqrt.rn.f32 %f140, %f139;
+ rcp.rn.f32 %f141, %f140;
+ mul.f32 %f952, %f130, %f141;
+ mul.f32 %f953, %f133, %f141;
+ mul.f32 %f954, %f136, %f141;
+
+BB0_2:
+ ld.global.v2.u32 {%r33, %r34}, [pixelID];
+ ld.global.v2.u32 {%r36, %r37}, [tileInfo];
+ add.s32 %r2, %r33, %r36;
+ add.s32 %r3, %r34, %r37;
+ setp.eq.f32 %p8, %f953, 0f00000000;
+ setp.eq.f32 %p9, %f952, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f954, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_116;
+ bra.uni BB0_3;
+
+BB0_116:
+ ld.global.u32 %r250, [imageEnabled];
+ and.b32 %r199, %r250, 1;
+ setp.eq.b32 %p131, %r199, 1;
+ @!%p131 bra BB0_118;
+ bra.uni BB0_117;
+
+BB0_117:
+ cvt.u64.u32 %rd256, %r2;
+ cvt.u64.u32 %rd257, %r3;
+ mov.u64 %rd260, image;
+ cvta.global.u64 %rd255, %rd260;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r26, %r27, %rd256, %rd257, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs153, 0;
+ st.v4.u8 [%rd254], {%rs153, %rs153, %rs153, %rs153};
+ ld.global.u32 %r250, [imageEnabled];
+
+BB0_118:
+ and.b32 %r202, %r250, 8;
+ setp.eq.s32 %p132, %r202, 0;
+ @%p132 bra BB0_120;
+
+ cvt.u64.u32 %rd264, %r3;
+ cvt.u64.u32 %rd263, %r2;
+ mov.u64 %rd267, image_Mask;
+ cvta.global.u64 %rd262, %rd267;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r26, %r26, %rd263, %rd264, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f849, 0f00000000;
+ cvt.rzi.u32.f32 %r205, %f849;
+ cvt.u16.u32 %rs154, %r205;
+ mov.u16 %rs155, 0;
+ st.v2.u8 [%rd261], {%rs154, %rs155};
+ ld.global.u32 %r250, [imageEnabled];
+
+BB0_120:
+ cvt.u64.u32 %rd8, %r2;
+ cvt.u64.u32 %rd9, %r3;
+ and.b32 %r206, %r250, 4;
+ setp.eq.s32 %p133, %r206, 0;
+ @%p133 bra BB0_124;
+
+ ld.global.u32 %r207, [additive];
+ setp.eq.s32 %p134, %r207, 0;
+ @%p134 bra BB0_123;
+
+ mov.u64 %rd280, image_HDR;
+ cvta.global.u64 %rd269, %rd280;
+ mov.u32 %r211, 8;
+ // inline asm
+ call (%rd268), _rt_buffer_get_64, (%rd269, %r26, %r211, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs162, %rs163, %rs164, %rs165}, [%rd268];
+ // inline asm
+ { cvt.f32.f16 %f850, %rs162;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f851, %rs163;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f852, %rs164;}
+
+ // inline asm
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd269, %r26, %r211, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f853, %f850, 0f00000000;
+ add.f32 %f854, %f851, 0f00000000;
+ add.f32 %f855, %f852, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs161, %f855;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs160, %f854;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs159, %f853;}
+
+ // inline asm
+ mov.u16 %rs166, 0;
+ st.v4.u16 [%rd274], {%rs159, %rs160, %rs161, %rs166};
+ bra.uni BB0_124;
+
+BB0_3:
+ ld.global.v2.u32 {%r43, %r44}, [pixelID];
+ cvt.u64.u32 %rd19, %r43;
+ cvt.u64.u32 %rd20, %r44;
+ mov.u64 %rd23, uvpos;
+ cvta.global.u64 %rd18, %rd23;
+ mov.u32 %r42, 12;
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd18, %r26, %r42, %rd19, %rd20, %rd15, %rd15);
+ // inline asm
+ ld.global.f32 %f7, [lightPos];
+ ld.f32 %f12, [%rd17+8];
+ ld.f32 %f10, [%rd17+4];
+ ld.f32 %f8, [%rd17];
+ sub.f32 %f144, %f7, %f8;
+ ld.global.f32 %f9, [lightPos+4];
+ sub.f32 %f145, %f9, %f10;
+ ld.global.f32 %f11, [lightPos+8];
+ sub.f32 %f146, %f11, %f12;
+ mul.f32 %f147, %f145, %f145;
+ fma.rn.f32 %f148, %f144, %f144, %f147;
+ fma.rn.f32 %f149, %f146, %f146, %f148;
+ sqrt.rn.f32 %f150, %f149;
+ rcp.rn.f32 %f151, %f150;
+ ld.global.f32 %f152, [lightFalloffFakeDistanceMult];
+ mul.f32 %f16, %f150, %f152;
+ ld.global.f32 %f153, [lightInvCutoff];
+ mul.f32 %f17, %f150, %f153;
+ mov.f32 %f157, 0f40800000;
+ abs.f32 %f19, %f17;
+ setp.lt.f32 %p13, %f19, 0f00800000;
+ mul.f32 %f159, %f19, 0f4B800000;
+ selp.f32 %f160, 0fC3170000, 0fC2FE0000, %p13;
+ selp.f32 %f161, %f159, %f19, %p13;
+ mov.b32 %r47, %f161;
+ and.b32 %r48, %r47, 8388607;
+ or.b32 %r49, %r48, 1065353216;
+ mov.b32 %f162, %r49;
+ shr.u32 %r50, %r47, 23;
+ cvt.rn.f32.u32 %f163, %r50;
+ add.f32 %f164, %f160, %f163;
+ setp.gt.f32 %p14, %f162, 0f3FB504F3;
+ mul.f32 %f165, %f162, 0f3F000000;
+ add.f32 %f166, %f164, 0f3F800000;
+ selp.f32 %f167, %f165, %f162, %p14;
+ selp.f32 %f168, %f166, %f164, %p14;
+ add.f32 %f169, %f167, 0fBF800000;
+ add.f32 %f143, %f167, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f142,%f143;
+ // inline asm
+ add.f32 %f170, %f169, %f169;
+ mul.f32 %f171, %f142, %f170;
+ mul.f32 %f172, %f171, %f171;
+ mov.f32 %f173, 0f3C4CAF63;
+ mov.f32 %f174, 0f3B18F0FE;
+ fma.rn.f32 %f175, %f174, %f172, %f173;
+ mov.f32 %f176, 0f3DAAAABD;
+ fma.rn.f32 %f177, %f175, %f172, %f176;
+ mul.rn.f32 %f178, %f177, %f172;
+ mul.rn.f32 %f179, %f178, %f171;
+ sub.f32 %f180, %f169, %f171;
+ neg.f32 %f181, %f171;
+ add.f32 %f182, %f180, %f180;
+ fma.rn.f32 %f183, %f181, %f169, %f182;
+ mul.rn.f32 %f184, %f142, %f183;
+ add.f32 %f185, %f179, %f171;
+ sub.f32 %f186, %f171, %f185;
+ add.f32 %f187, %f179, %f186;
+ add.f32 %f188, %f184, %f187;
+ add.f32 %f189, %f185, %f188;
+ sub.f32 %f190, %f185, %f189;
+ add.f32 %f191, %f188, %f190;
+ mov.f32 %f192, 0f3F317200;
+ mul.rn.f32 %f193, %f168, %f192;
+ mov.f32 %f194, 0f35BFBE8E;
+ mul.rn.f32 %f195, %f168, %f194;
+ add.f32 %f196, %f193, %f189;
+ sub.f32 %f197, %f193, %f196;
+ add.f32 %f198, %f189, %f197;
+ add.f32 %f199, %f191, %f198;
+ add.f32 %f200, %f195, %f199;
+ add.f32 %f201, %f196, %f200;
+ sub.f32 %f202, %f196, %f201;
+ add.f32 %f203, %f200, %f202;
+ mul.rn.f32 %f204, %f157, %f201;
+ neg.f32 %f205, %f204;
+ fma.rn.f32 %f206, %f157, %f201, %f205;
+ fma.rn.f32 %f207, %f157, %f203, %f206;
+ mov.f32 %f208, 0f00000000;
+ fma.rn.f32 %f209, %f208, %f201, %f207;
+ add.rn.f32 %f210, %f204, %f209;
+ neg.f32 %f211, %f210;
+ add.rn.f32 %f212, %f204, %f211;
+ add.rn.f32 %f213, %f212, %f209;
+ mov.b32 %r51, %f210;
+ setp.eq.s32 %p15, %r51, 1118925336;
+ add.s32 %r52, %r51, -1;
+ mov.b32 %f214, %r52;
+ add.f32 %f215, %f213, 0f37000000;
+ selp.f32 %f216, %f214, %f210, %p15;
+ selp.f32 %f20, %f215, %f213, %p15;
+ mul.f32 %f217, %f216, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f218, %f217;
+ mov.f32 %f219, 0fBF317200;
+ fma.rn.f32 %f220, %f218, %f219, %f216;
+ mov.f32 %f221, 0fB5BFBE8E;
+ fma.rn.f32 %f222, %f218, %f221, %f220;
+ mul.f32 %f223, %f222, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f224, %f223;
+ add.f32 %f225, %f218, 0f00000000;
+ ex2.approx.f32 %f226, %f225;
+ mul.f32 %f227, %f224, %f226;
+ setp.lt.f32 %p16, %f216, 0fC2D20000;
+ selp.f32 %f228, 0f00000000, %f227, %p16;
+ setp.gt.f32 %p17, %f216, 0f42D20000;
+ selp.f32 %f955, 0f7F800000, %f228, %p17;
+ setp.eq.f32 %p18, %f955, 0f7F800000;
+ @%p18 bra BB0_5;
+
+ fma.rn.f32 %f955, %f955, %f20, %f955;
+
+BB0_5:
+ mov.f32 %f890, 0f40000000;
+ cvt.rzi.f32.f32 %f889, %f890;
+ add.f32 %f888, %f889, %f889;
+ mov.f32 %f887, 0f40800000;
+ sub.f32 %f886, %f887, %f888;
+ abs.f32 %f885, %f886;
+ setp.lt.f32 %p19, %f17, 0f00000000;
+ setp.eq.f32 %p20, %f885, 0f3F800000;
+ and.pred %p1, %p19, %p20;
+ mov.b32 %r53, %f955;
+ xor.b32 %r54, %r53, -2147483648;
+ mov.b32 %f229, %r54;
+ selp.f32 %f957, %f229, %f955, %p1;
+ setp.eq.f32 %p21, %f17, 0f00000000;
+ @%p21 bra BB0_8;
+ bra.uni BB0_6;
+
+BB0_8:
+ add.f32 %f232, %f17, %f17;
+ selp.f32 %f957, %f232, 0f00000000, %p20;
+ bra.uni BB0_9;
+
+BB0_6:
+ setp.geu.f32 %p22, %f17, 0f00000000;
+ @%p22 bra BB0_9;
+
+ mov.f32 %f943, 0f40800000;
+ cvt.rzi.f32.f32 %f231, %f943;
+ setp.neu.f32 %p23, %f231, 0f40800000;
+ selp.f32 %f957, 0f7FFFFFFF, %f957, %p23;
+
+BB0_9:
+ abs.f32 %f891, %f17;
+ add.f32 %f233, %f891, 0f40800000;
+ mov.b32 %r55, %f233;
+ setp.lt.s32 %p25, %r55, 2139095040;
+ @%p25 bra BB0_14;
+
+ abs.f32 %f941, %f17;
+ setp.gtu.f32 %p26, %f941, 0f7F800000;
+ @%p26 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f957, %f17, 0f40800000;
+ bra.uni BB0_14;
+
+BB0_11:
+ abs.f32 %f942, %f17;
+ setp.neu.f32 %p27, %f942, 0f7F800000;
+ @%p27 bra BB0_14;
+
+ selp.f32 %f957, 0fFF800000, 0f7F800000, %p1;
+
+BB0_14:
+ sub.f32 %f905, %f11, %f12;
+ mul.f32 %f904, %f905, %f151;
+ sub.f32 %f903, %f7, %f8;
+ mul.f32 %f902, %f903, %f151;
+ sub.f32 %f901, %f9, %f10;
+ mul.f32 %f900, %f901, %f151;
+ mov.f32 %f899, 0fB5BFBE8E;
+ mov.f32 %f898, 0fBF317200;
+ mov.f32 %f897, 0f00000000;
+ mov.f32 %f896, 0f35BFBE8E;
+ mov.f32 %f895, 0f3F317200;
+ mov.f32 %f894, 0f3DAAAABD;
+ mov.f32 %f893, 0f3C4CAF63;
+ mov.f32 %f892, 0f3B18F0FE;
+ mov.f32 %f236, 0f3F800000;
+ sub.f32 %f237, %f236, %f957;
+ setp.eq.f32 %p28, %f17, 0f3F800000;
+ selp.f32 %f238, 0f00000000, %f237, %p28;
+ cvt.sat.f32.f32 %f239, %f238;
+ ld.global.f32 %f240, [lightFalloffMinRadiusSq];
+ fma.rn.f32 %f241, %f16, %f16, %f240;
+ div.rn.f32 %f31, %f239, %f241;
+ mul.f32 %f242, %f953, %f900;
+ fma.rn.f32 %f243, %f952, %f902, %f242;
+ fma.rn.f32 %f244, %f954, %f904, %f243;
+ ld.global.u32 %r248, [imageEnabled];
+ and.b32 %r56, %r248, 32;
+ ld.global.u32 %r57, [ignoreNormal];
+ or.b32 %r58, %r56, %r57;
+ setp.eq.s32 %p29, %r58, 0;
+ selp.f32 %f32, %f244, 0f3F800000, %p29;
+ fma.rn.f32 %f245, %f32, 0f3F000000, 0f3F000000;
+ cvt.sat.f32.f32 %f246, %f245;
+ add.f32 %f33, %f246, %f246;
+ mov.f32 %f250, 0f41A00000;
+ abs.f32 %f35, %f33;
+ setp.lt.f32 %p30, %f35, 0f00800000;
+ mul.f32 %f252, %f35, 0f4B800000;
+ selp.f32 %f253, 0fC3170000, 0fC2FE0000, %p30;
+ selp.f32 %f254, %f252, %f35, %p30;
+ mov.b32 %r59, %f254;
+ and.b32 %r60, %r59, 8388607;
+ or.b32 %r61, %r60, 1065353216;
+ mov.b32 %f255, %r61;
+ shr.u32 %r62, %r59, 23;
+ cvt.rn.f32.u32 %f256, %r62;
+ add.f32 %f257, %f253, %f256;
+ setp.gt.f32 %p31, %f255, 0f3FB504F3;
+ mul.f32 %f258, %f255, 0f3F000000;
+ add.f32 %f259, %f257, 0f3F800000;
+ selp.f32 %f260, %f258, %f255, %p31;
+ selp.f32 %f261, %f259, %f257, %p31;
+ add.f32 %f262, %f260, 0fBF800000;
+ add.f32 %f235, %f260, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f234,%f235;
+ // inline asm
+ add.f32 %f263, %f262, %f262;
+ mul.f32 %f264, %f234, %f263;
+ mul.f32 %f265, %f264, %f264;
+ fma.rn.f32 %f268, %f892, %f265, %f893;
+ fma.rn.f32 %f270, %f268, %f265, %f894;
+ mul.rn.f32 %f271, %f270, %f265;
+ mul.rn.f32 %f272, %f271, %f264;
+ sub.f32 %f273, %f262, %f264;
+ neg.f32 %f274, %f264;
+ add.f32 %f275, %f273, %f273;
+ fma.rn.f32 %f276, %f274, %f262, %f275;
+ mul.rn.f32 %f277, %f234, %f276;
+ add.f32 %f278, %f272, %f264;
+ sub.f32 %f279, %f264, %f278;
+ add.f32 %f280, %f272, %f279;
+ add.f32 %f281, %f277, %f280;
+ add.f32 %f282, %f278, %f281;
+ sub.f32 %f283, %f278, %f282;
+ add.f32 %f284, %f281, %f283;
+ mul.rn.f32 %f286, %f261, %f895;
+ mul.rn.f32 %f288, %f261, %f896;
+ add.f32 %f289, %f286, %f282;
+ sub.f32 %f290, %f286, %f289;
+ add.f32 %f291, %f282, %f290;
+ add.f32 %f292, %f284, %f291;
+ add.f32 %f293, %f288, %f292;
+ add.f32 %f294, %f289, %f293;
+ sub.f32 %f295, %f289, %f294;
+ add.f32 %f296, %f293, %f295;
+ mul.rn.f32 %f297, %f250, %f294;
+ neg.f32 %f298, %f297;
+ fma.rn.f32 %f299, %f250, %f294, %f298;
+ fma.rn.f32 %f300, %f250, %f296, %f299;
+ fma.rn.f32 %f302, %f897, %f294, %f300;
+ add.rn.f32 %f303, %f297, %f302;
+ neg.f32 %f304, %f303;
+ add.rn.f32 %f305, %f297, %f304;
+ add.rn.f32 %f306, %f305, %f302;
+ mov.b32 %r63, %f303;
+ setp.eq.s32 %p32, %r63, 1118925336;
+ add.s32 %r64, %r63, -1;
+ mov.b32 %f307, %r64;
+ add.f32 %f308, %f306, 0f37000000;
+ selp.f32 %f309, %f307, %f303, %p32;
+ selp.f32 %f36, %f308, %f306, %p32;
+ mul.f32 %f310, %f309, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f311, %f310;
+ fma.rn.f32 %f313, %f311, %f898, %f309;
+ fma.rn.f32 %f315, %f311, %f899, %f313;
+ mul.f32 %f316, %f315, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f317, %f316;
+ add.f32 %f318, %f311, 0f00000000;
+ ex2.approx.f32 %f319, %f318;
+ mul.f32 %f320, %f317, %f319;
+ setp.lt.f32 %p33, %f309, 0fC2D20000;
+ selp.f32 %f321, 0f00000000, %f320, %p33;
+ setp.gt.f32 %p34, %f309, 0f42D20000;
+ selp.f32 %f958, 0f7F800000, %f321, %p34;
+ setp.eq.f32 %p35, %f958, 0f7F800000;
+ @%p35 bra BB0_16;
+
+ fma.rn.f32 %f958, %f958, %f36, %f958;
+
+BB0_16:
+ mov.f32 %f949, 0f41200000;
+ cvt.rzi.f32.f32 %f948, %f949;
+ add.f32 %f947, %f948, %f948;
+ mov.f32 %f946, 0f41A00000;
+ sub.f32 %f945, %f946, %f947;
+ abs.f32 %f944, %f945;
+ setp.lt.f32 %p36, %f33, 0f00000000;
+ setp.eq.f32 %p37, %f944, 0f3F800000;
+ and.pred %p2, %p36, %p37;
+ mov.b32 %r65, %f958;
+ xor.b32 %r66, %r65, -2147483648;
+ mov.b32 %f322, %r66;
+ selp.f32 %f960, %f322, %f958, %p2;
+ setp.eq.f32 %p38, %f33, 0f00000000;
+ @%p38 bra BB0_19;
+ bra.uni BB0_17;
+
+BB0_19:
+ add.f32 %f325, %f33, %f33;
+ selp.f32 %f960, %f325, 0f00000000, %p37;
+ bra.uni BB0_20;
+
+BB0_17:
+ setp.geu.f32 %p39, %f33, 0f00000000;
+ @%p39 bra BB0_20;
+
+ mov.f32 %f951, 0f41A00000;
+ cvt.rzi.f32.f32 %f324, %f951;
+ setp.neu.f32 %p40, %f324, 0f41A00000;
+ selp.f32 %f960, 0f7FFFFFFF, %f960, %p40;
+
+BB0_20:
+ add.f32 %f326, %f35, 0f41A00000;
+ mov.b32 %r67, %f326;
+ setp.lt.s32 %p42, %r67, 2139095040;
+ @%p42 bra BB0_25;
+
+ setp.gtu.f32 %p43, %f35, 0f7F800000;
+ @%p43 bra BB0_24;
+ bra.uni BB0_22;
+
+BB0_24:
+ add.f32 %f960, %f33, 0f41A00000;
+ bra.uni BB0_25;
+
+BB0_22:
+ setp.neu.f32 %p44, %f35, 0f7F800000;
+ @%p44 bra BB0_25;
+
+ selp.f32 %f960, 0fFF800000, 0f7F800000, %p2;
+
+BB0_25:
+ setp.eq.f32 %p45, %f33, 0f3F800000;
+ selp.f32 %f327, 0f3F800000, %f960, %p45;
+ cvt.sat.f32.f32 %f328, %f327;
+ mul.f32 %f47, %f31, %f328;
+ mul.f32 %f329, %f32, 0f40800000;
+ cvt.sat.f32.f32 %f48, %f329;
+ mul.f32 %f330, %f47, %f48;
+ ld.global.f32 %f331, [lightColor+4];
+ ld.global.f32 %f332, [lightColor];
+ max.f32 %f333, %f332, %f331;
+ ld.global.f32 %f334, [lightColor+8];
+ max.f32 %f335, %f333, %f334;
+ mul.f32 %f336, %f330, %f335;
+ setp.lt.f32 %p46, %f336, 0f3727C5AC;
+ @%p46 bra BB0_96;
+ bra.uni BB0_26;
+
+BB0_96:
+ and.b32 %r156, %r248, 1;
+ setp.eq.b32 %p123, %r156, 1;
+ @!%p123 bra BB0_98;
+ bra.uni BB0_97;
+
+BB0_97:
+ cvt.u64.u32 %rd142, %r2;
+ cvt.u64.u32 %rd143, %r3;
+ mov.u64 %rd146, image;
+ cvta.global.u64 %rd141, %rd146;
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd141, %r26, %r27, %rd142, %rd143, %rd15, %rd15);
+ // inline asm
+ mov.u16 %rs89, 1;
+ mov.u16 %rs90, 0;
+ st.v4.u8 [%rd140], {%rs90, %rs90, %rs90, %rs89};
+ ld.global.u32 %r248, [imageEnabled];
+
+BB0_98:
+ and.b32 %r159, %r248, 8;
+ setp.eq.s32 %p124, %r159, 0;
+ @%p124 bra BB0_100;
+
+ cvt.u64.u32 %rd150, %r3;
+ cvt.u64.u32 %rd149, %r2;
+ mov.u64 %rd153, image_Mask;
+ cvta.global.u64 %rd148, %rd153;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r26, %r26, %rd149, %rd150, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f806, 0f00000000;
+ cvt.rzi.u32.f32 %r162, %f806;
+ cvt.u16.u32 %rs91, %r162;
+ mov.u16 %rs92, 255;
+ st.v2.u8 [%rd147], {%rs91, %rs92};
+ ld.global.u32 %r248, [imageEnabled];
+
+BB0_100:
+ cvt.u64.u32 %rd6, %r2;
+ cvt.u64.u32 %rd7, %r3;
+ and.b32 %r163, %r248, 4;
+ setp.eq.s32 %p125, %r163, 0;
+ @%p125 bra BB0_104;
+
+ ld.global.u32 %r164, [additive];
+ setp.eq.s32 %p126, %r164, 0;
+ mov.f32 %f807, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f807;}
+
+ // inline asm
+ @%p126 bra BB0_103;
+
+ mov.u64 %rd166, image_HDR;
+ cvta.global.u64 %rd155, %rd166;
+ mov.u32 %r168, 8;
+ // inline asm
+ call (%rd154), _rt_buffer_get_64, (%rd155, %r26, %r168, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs100, %rs101, %rs102, %rs103}, [%rd154];
+ // inline asm
+ { cvt.f32.f16 %f808, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f809, %rs101;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f810, %rs102;}
+
+ // inline asm
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd155, %r26, %r168, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f811, %f808, 0f00000000;
+ add.f32 %f812, %f809, 0f00000000;
+ add.f32 %f813, %f810, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f813;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f812;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f811;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs97, %rs98, %rs99, %rs93};
+ bra.uni BB0_104;
+
+BB0_26:
+ mov.f32 %f964, 0f00000000;
+ mul.f32 %f338, %f8, 0f3456BF95;
+ abs.f32 %f339, %f952;
+ div.rn.f32 %f340, %f338, %f339;
+ abs.f32 %f341, %f953;
+ mul.f32 %f342, %f10, 0f3456BF95;
+ div.rn.f32 %f343, %f342, %f341;
+ abs.f32 %f344, %f954;
+ mul.f32 %f345, %f12, 0f3456BF95;
+ div.rn.f32 %f346, %f345, %f344;
+ abs.f32 %f347, %f340;
+ abs.f32 %f348, %f343;
+ abs.f32 %f349, %f346;
+ mov.f32 %f350, 0f38D1B717;
+ max.f32 %f351, %f347, %f350;
+ max.f32 %f352, %f348, %f350;
+ max.f32 %f353, %f349, %f350;
+ fma.rn.f32 %f49, %f952, %f351, %f8;
+ fma.rn.f32 %f50, %f953, %f352, %f10;
+ fma.rn.f32 %f51, %f954, %f353, %f12;
+ ld.global.u32 %r244, [samples];
+ setp.lt.s32 %p47, %r244, 1;
+ @%p47 bra BB0_29;
+
+ mul.f32 %f355, %f49, 0f3456BF95;
+ abs.f32 %f356, %f355;
+ mul.f32 %f357, %f50, 0f3456BF95;
+ abs.f32 %f358, %f357;
+ mul.f32 %f359, %f51, 0f3456BF95;
+ abs.f32 %f360, %f359;
+ max.f32 %f361, %f356, %f358;
+ max.f32 %f362, %f361, %f360;
+ max.f32 %f52, %f362, %f350;
+ add.u64 %rd24, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd24;
+ mov.f32 %f964, 0f00000000;
+ mov.u32 %r243, 0;
+ mov.f32 %f961, %f11;
+ mov.f32 %f962, %f9;
+ mov.f32 %f963, %f7;
+ bra.uni BB0_28;
+
+BB0_95:
+ ld.global.f32 %f963, [lightPos];
+ ld.global.f32 %f962, [lightPos+4];
+ ld.global.f32 %f961, [lightPos+8];
+ ld.global.u32 %r248, [imageEnabled];
+
+BB0_28:
+ cvt.rn.f32.s32 %f372, %r243;
+ mul.f32 %f373, %f372, 0f3DD32618;
+ cvt.rmi.f32.f32 %f374, %f373;
+ sub.f32 %f375, %f373, %f374;
+ mul.f32 %f376, %f372, 0f3DD2F1AA;
+ cvt.rmi.f32.f32 %f377, %f376;
+ sub.f32 %f378, %f376, %f377;
+ mul.f32 %f379, %f372, 0f3DC74539;
+ cvt.rmi.f32.f32 %f380, %f379;
+ sub.f32 %f381, %f379, %f380;
+ add.f32 %f382, %f378, 0f4199851F;
+ add.f32 %f383, %f381, 0f4199851F;
+ add.f32 %f384, %f375, 0f4199851F;
+ mul.f32 %f385, %f378, %f383;
+ fma.rn.f32 %f386, %f375, %f382, %f385;
+ fma.rn.f32 %f387, %f384, %f381, %f386;
+ add.f32 %f388, %f375, %f387;
+ add.f32 %f389, %f378, %f387;
+ add.f32 %f390, %f381, %f387;
+ add.f32 %f391, %f388, %f389;
+ mul.f32 %f392, %f390, %f391;
+ cvt.rmi.f32.f32 %f393, %f392;
+ sub.f32 %f394, %f392, %f393;
+ add.f32 %f395, %f388, %f390;
+ mul.f32 %f396, %f389, %f395;
+ cvt.rmi.f32.f32 %f397, %f396;
+ sub.f32 %f398, %f396, %f397;
+ add.f32 %f399, %f389, %f390;
+ mul.f32 %f400, %f388, %f399;
+ cvt.rmi.f32.f32 %f401, %f400;
+ sub.f32 %f402, %f400, %f401;
+ fma.rn.f32 %f403, %f394, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f404, %f398, 0f40000000, 0fBF800000;
+ fma.rn.f32 %f405, %f402, 0f40000000, 0fBF800000;
+ ld.global.f32 %f406, [lightRadius];
+ fma.rn.f32 %f407, %f406, %f403, %f963;
+ fma.rn.f32 %f408, %f406, %f404, %f962;
+ fma.rn.f32 %f409, %f406, %f405, %f961;
+ sub.f32 %f410, %f407, %f8;
+ sub.f32 %f411, %f408, %f10;
+ sub.f32 %f412, %f409, %f12;
+ mul.f32 %f413, %f411, %f411;
+ fma.rn.f32 %f414, %f410, %f410, %f413;
+ fma.rn.f32 %f415, %f412, %f412, %f414;
+ sqrt.rn.f32 %f371, %f415;
+ rcp.rn.f32 %f416, %f371;
+ mul.f32 %f367, %f416, %f410;
+ mul.f32 %f368, %f416, %f411;
+ mul.f32 %f369, %f416, %f412;
+ and.b32 %r72, %r248, 32;
+ setp.eq.s32 %p48, %r72, 0;
+ selp.f32 %f417, 0f3F800000, 0f41200000, %p48;
+ mul.f32 %f370, %f417, %f52;
+ mov.u32 %r73, 1065353216;
+ st.local.u32 [%rd2], %r73;
+ ld.global.u32 %r69, [root];
+ mov.u32 %r70, 1;
+ // inline asm
+ call _rt_trace_64, (%r69, %f49, %f50, %f51, %f367, %f368, %f369, %r70, %f370, %f371, %rd24, %r27);
+ // inline asm
+ ld.local.f32 %f418, [%rd2];
+ add.f32 %f964, %f964, %f418;
+ ld.global.u32 %r244, [samples];
+ add.s32 %r243, %r243, 1;
+ setp.lt.s32 %p49, %r243, %r244;
+ @%p49 bra BB0_95;
+
+BB0_29:
+ mov.f32 %f966, 0f3F800000;
+ setp.eq.s32 %p50, %r244, 0;
+ @%p50 bra BB0_31;
+
+ cvt.rn.f32.s32 %f420, %r244;
+ div.rn.f32 %f966, %f964, %f420;
+
+BB0_31:
+ cvt.sat.f32.f32 %f421, %f32;
+ mul.f32 %f422, %f47, %f421;
+ mul.f32 %f423, %f966, %f422;
+ ld.global.f32 %f424, [lightColor];
+ mul.f32 %f61, %f424, %f423;
+ ld.global.f32 %f425, [lightColor+4];
+ mul.f32 %f62, %f425, %f423;
+ ld.global.f32 %f426, [lightColor+8];
+ mul.f32 %f63, %f423, %f426;
+ ld.global.u32 %r246, [imageEnabled];
+ and.b32 %r74, %r246, 8;
+ setp.eq.s32 %p51, %r74, 0;
+ @%p51 bra BB0_44;
+
+ mov.f32 %f913, 0fB5BFBE8E;
+ mov.f32 %f912, 0fBF317200;
+ mov.f32 %f911, 0f35BFBE8E;
+ mov.f32 %f910, 0f3F317200;
+ mov.f32 %f909, 0f3DAAAABD;
+ mov.f32 %f908, 0f3C4CAF63;
+ mov.f32 %f907, 0f3B18F0FE;
+ cvt.u64.u32 %rd28, %r2;
+ cvt.u64.u32 %rd29, %r3;
+ mov.u64 %rd32, image_Mask;
+ cvta.global.u64 %rd27, %rd32;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r26, %r26, %rd28, %rd29, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f429, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f430, %f429;
+ fma.rn.f32 %f431, %f430, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f64, %f431;
+ abs.f32 %f65, %f966;
+ setp.lt.f32 %p52, %f65, 0f00800000;
+ mul.f32 %f432, %f65, 0f4B800000;
+ selp.f32 %f433, 0fC3170000, 0fC2FE0000, %p52;
+ selp.f32 %f434, %f432, %f65, %p52;
+ mov.b32 %r77, %f434;
+ and.b32 %r78, %r77, 8388607;
+ or.b32 %r79, %r78, 1065353216;
+ mov.b32 %f435, %r79;
+ shr.u32 %r80, %r77, 23;
+ cvt.rn.f32.u32 %f436, %r80;
+ add.f32 %f437, %f433, %f436;
+ setp.gt.f32 %p53, %f435, 0f3FB504F3;
+ mul.f32 %f438, %f435, 0f3F000000;
+ add.f32 %f439, %f437, 0f3F800000;
+ selp.f32 %f440, %f438, %f435, %p53;
+ selp.f32 %f441, %f439, %f437, %p53;
+ add.f32 %f442, %f440, 0fBF800000;
+ add.f32 %f428, %f440, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f427,%f428;
+ // inline asm
+ add.f32 %f443, %f442, %f442;
+ mul.f32 %f444, %f427, %f443;
+ mul.f32 %f445, %f444, %f444;
+ fma.rn.f32 %f448, %f907, %f445, %f908;
+ fma.rn.f32 %f450, %f448, %f445, %f909;
+ mul.rn.f32 %f451, %f450, %f445;
+ mul.rn.f32 %f452, %f451, %f444;
+ sub.f32 %f453, %f442, %f444;
+ neg.f32 %f454, %f444;
+ add.f32 %f455, %f453, %f453;
+ fma.rn.f32 %f456, %f454, %f442, %f455;
+ mul.rn.f32 %f457, %f427, %f456;
+ add.f32 %f458, %f452, %f444;
+ sub.f32 %f459, %f444, %f458;
+ add.f32 %f460, %f452, %f459;
+ add.f32 %f461, %f457, %f460;
+ add.f32 %f462, %f458, %f461;
+ sub.f32 %f463, %f458, %f462;
+ add.f32 %f464, %f461, %f463;
+ mul.rn.f32 %f466, %f441, %f910;
+ mul.rn.f32 %f468, %f441, %f911;
+ add.f32 %f469, %f466, %f462;
+ sub.f32 %f470, %f466, %f469;
+ add.f32 %f471, %f462, %f470;
+ add.f32 %f472, %f464, %f471;
+ add.f32 %f473, %f468, %f472;
+ add.f32 %f474, %f469, %f473;
+ sub.f32 %f475, %f469, %f474;
+ add.f32 %f476, %f473, %f475;
+ mov.f32 %f477, 0f3EE8BA2E;
+ mul.rn.f32 %f478, %f477, %f474;
+ neg.f32 %f479, %f478;
+ fma.rn.f32 %f480, %f477, %f474, %f479;
+ fma.rn.f32 %f481, %f477, %f476, %f480;
+ mov.f32 %f482, 0f00000000;
+ fma.rn.f32 %f483, %f482, %f474, %f481;
+ add.rn.f32 %f484, %f478, %f483;
+ neg.f32 %f485, %f484;
+ add.rn.f32 %f486, %f478, %f485;
+ add.rn.f32 %f487, %f486, %f483;
+ mov.b32 %r81, %f484;
+ setp.eq.s32 %p54, %r81, 1118925336;
+ add.s32 %r82, %r81, -1;
+ mov.b32 %f488, %r82;
+ add.f32 %f489, %f487, 0f37000000;
+ selp.f32 %f490, %f488, %f484, %p54;
+ selp.f32 %f66, %f489, %f487, %p54;
+ mul.f32 %f491, %f490, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f492, %f491;
+ fma.rn.f32 %f494, %f492, %f912, %f490;
+ fma.rn.f32 %f496, %f492, %f913, %f494;
+ mul.f32 %f497, %f496, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f498, %f497;
+ add.f32 %f499, %f492, 0f00000000;
+ ex2.approx.f32 %f500, %f499;
+ mul.f32 %f501, %f498, %f500;
+ setp.lt.f32 %p55, %f490, 0fC2D20000;
+ selp.f32 %f502, 0f00000000, %f501, %p55;
+ setp.gt.f32 %p56, %f490, 0f42D20000;
+ selp.f32 %f967, 0f7F800000, %f502, %p56;
+ setp.eq.f32 %p57, %f967, 0f7F800000;
+ @%p57 bra BB0_34;
+
+ fma.rn.f32 %f967, %f967, %f66, %f967;
+
+BB0_34:
+ setp.lt.f32 %p58, %f966, 0f00000000;
+ setp.eq.f32 %p59, %f64, 0f3F800000;
+ and.pred %p3, %p58, %p59;
+ mov.b32 %r83, %f967;
+ xor.b32 %r84, %r83, -2147483648;
+ mov.b32 %f503, %r84;
+ selp.f32 %f969, %f503, %f967, %p3;
+ setp.eq.f32 %p60, %f966, 0f00000000;
+ @%p60 bra BB0_37;
+ bra.uni BB0_35;
+
+BB0_37:
+ add.f32 %f506, %f966, %f966;
+ selp.f32 %f969, %f506, 0f00000000, %p59;
+ bra.uni BB0_38;
+
+BB0_123:
+ mov.u64 %rd287, image_HDR;
+ cvta.global.u64 %rd282, %rd287;
+ mov.u32 %r213, 8;
+ // inline asm
+ call (%rd281), _rt_buffer_get_64, (%rd282, %r26, %r213, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f856, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs167, %f856;}
+
+ // inline asm
+ mov.u16 %rs168, 0;
+ st.v4.u16 [%rd281], {%rs167, %rs167, %rs167, %rs168};
+
+BB0_124:
+ ld.global.u32 %r214, [additive];
+ setp.eq.s32 %p135, %r214, 0;
+ @%p135 bra BB0_126;
+
+ mov.u64 %rd300, image_RNM0;
+ cvta.global.u64 %rd289, %rd300;
+ mov.u32 %r218, 8;
+ // inline asm
+ call (%rd288), _rt_buffer_get_64, (%rd289, %r26, %r218, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs175, %rs176, %rs177, %rs178}, [%rd288];
+ // inline asm
+ { cvt.f32.f16 %f857, %rs175;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f858, %rs176;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f859, %rs177;}
+
+ // inline asm
+ // inline asm
+ call (%rd294), _rt_buffer_get_64, (%rd289, %r26, %r218, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f860, %f857, 0f00000000;
+ add.f32 %f861, %f858, 0f00000000;
+ add.f32 %f862, %f859, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs174, %f862;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs173, %f861;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs172, %f860;}
+
+ // inline asm
+ mov.u16 %rs179, 0;
+ st.v4.u16 [%rd294], {%rs172, %rs173, %rs174, %rs179};
+ bra.uni BB0_127;
+
+BB0_126:
+ mov.u64 %rd307, image_RNM0;
+ cvta.global.u64 %rd302, %rd307;
+ mov.u32 %r220, 8;
+ // inline asm
+ call (%rd301), _rt_buffer_get_64, (%rd302, %r26, %r220, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f863, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs180, %f863;}
+
+ // inline asm
+ mov.u16 %rs181, 0;
+ st.v4.u16 [%rd301], {%rs180, %rs180, %rs180, %rs181};
+
+BB0_127:
+ ld.global.u32 %r221, [additive];
+ setp.eq.s32 %p136, %r221, 0;
+ @%p136 bra BB0_129;
+
+ mov.u64 %rd320, image_RNM1;
+ cvta.global.u64 %rd309, %rd320;
+ mov.u32 %r225, 8;
+ // inline asm
+ call (%rd308), _rt_buffer_get_64, (%rd309, %r26, %r225, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs188, %rs189, %rs190, %rs191}, [%rd308];
+ // inline asm
+ { cvt.f32.f16 %f864, %rs188;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f865, %rs189;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f866, %rs190;}
+
+ // inline asm
+ // inline asm
+ call (%rd314), _rt_buffer_get_64, (%rd309, %r26, %r225, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f867, %f864, 0f00000000;
+ add.f32 %f868, %f865, 0f00000000;
+ add.f32 %f869, %f866, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs187, %f869;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs186, %f868;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs185, %f867;}
+
+ // inline asm
+ mov.u16 %rs192, 0;
+ st.v4.u16 [%rd314], {%rs185, %rs186, %rs187, %rs192};
+ bra.uni BB0_130;
+
+BB0_129:
+ mov.u64 %rd327, image_RNM1;
+ cvta.global.u64 %rd322, %rd327;
+ mov.u32 %r227, 8;
+ // inline asm
+ call (%rd321), _rt_buffer_get_64, (%rd322, %r26, %r227, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f870, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs193, %f870;}
+
+ // inline asm
+ mov.u16 %rs194, 0;
+ st.v4.u16 [%rd321], {%rs193, %rs193, %rs193, %rs194};
+
+BB0_130:
+ ld.global.u32 %r228, [additive];
+ setp.eq.s32 %p137, %r228, 0;
+ @%p137 bra BB0_132;
+
+ mov.u64 %rd340, image_RNM2;
+ cvta.global.u64 %rd329, %rd340;
+ mov.u32 %r232, 8;
+ // inline asm
+ call (%rd328), _rt_buffer_get_64, (%rd329, %r26, %r232, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs201, %rs202, %rs203, %rs204}, [%rd328];
+ // inline asm
+ { cvt.f32.f16 %f871, %rs201;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f872, %rs202;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f873, %rs203;}
+
+ // inline asm
+ // inline asm
+ call (%rd334), _rt_buffer_get_64, (%rd329, %r26, %r232, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f874, %f871, 0f00000000;
+ add.f32 %f875, %f872, 0f00000000;
+ add.f32 %f876, %f873, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs200, %f876;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs199, %f875;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs198, %f874;}
+
+ // inline asm
+ mov.u16 %rs205, 0;
+ st.v4.u16 [%rd334], {%rs198, %rs199, %rs200, %rs205};
+ bra.uni BB0_133;
+
+BB0_132:
+ mov.u64 %rd347, image_RNM2;
+ cvta.global.u64 %rd342, %rd347;
+ mov.u32 %r234, 8;
+ // inline asm
+ call (%rd341), _rt_buffer_get_64, (%rd342, %r26, %r234, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f877, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs206, %f877;}
+
+ // inline asm
+ mov.u16 %rs207, 0;
+ st.v4.u16 [%rd341], {%rs206, %rs206, %rs206, %rs207};
+
+BB0_133:
+ ld.global.u32 %r235, [additive];
+ setp.eq.s32 %p138, %r235, 0;
+ @%p138 bra BB0_135;
+
+ mov.u64 %rd360, image_RNM3;
+ cvta.global.u64 %rd349, %rd360;
+ mov.u32 %r239, 8;
+ // inline asm
+ call (%rd348), _rt_buffer_get_64, (%rd349, %r26, %r239, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs214, %rs215, %rs216, %rs217}, [%rd348];
+ // inline asm
+ { cvt.f32.f16 %f878, %rs214;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f879, %rs215;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f880, %rs216;}
+
+ // inline asm
+ // inline asm
+ call (%rd354), _rt_buffer_get_64, (%rd349, %r26, %r239, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ add.f32 %f881, %f878, 0f00000000;
+ add.f32 %f882, %f879, 0f00000000;
+ add.f32 %f883, %f880, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs213, %f883;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs212, %f882;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs211, %f881;}
+
+ // inline asm
+ mov.u16 %rs218, 0;
+ st.v4.u16 [%rd354], {%rs211, %rs212, %rs213, %rs218};
+ bra.uni BB0_136;
+
+BB0_135:
+ mov.u64 %rd367, image_RNM3;
+ cvta.global.u64 %rd362, %rd367;
+ mov.u32 %r241, 8;
+ // inline asm
+ call (%rd361), _rt_buffer_get_64, (%rd362, %r26, %r241, %rd8, %rd9, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f884, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs219, %f884;}
+
+ // inline asm
+ mov.u16 %rs220, 0;
+ st.v4.u16 [%rd361], {%rs219, %rs219, %rs219, %rs220};
+ bra.uni BB0_136;
+
+BB0_103:
+ mov.u64 %rd173, image_HDR;
+ cvta.global.u64 %rd168, %rd173;
+ mov.u32 %r170, 8;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r26, %r170, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f814, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f814;}
+
+ // inline asm
+ st.v4.u16 [%rd167], {%rs104, %rs104, %rs104, %rs93};
+
+BB0_104:
+ ld.global.u32 %r171, [additive];
+ setp.eq.s32 %p127, %r171, 0;
+ mov.f32 %f815, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f815;}
+
+ // inline asm
+ @%p127 bra BB0_106;
+
+ mov.u64 %rd186, image_RNM0;
+ cvta.global.u64 %rd175, %rd186;
+ mov.u32 %r175, 8;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r26, %r175, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd174];
+ // inline asm
+ { cvt.f32.f16 %f816, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f817, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f818, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd175, %r26, %r175, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f819, %f816, 0f00000000;
+ add.f32 %f820, %f817, 0f00000000;
+ add.f32 %f821, %f818, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f821;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f820;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f819;}
+
+ // inline asm
+ st.v4.u16 [%rd180], {%rs109, %rs110, %rs111, %rs105};
+ bra.uni BB0_107;
+
+BB0_106:
+ mov.u64 %rd193, image_RNM0;
+ cvta.global.u64 %rd188, %rd193;
+ mov.u32 %r177, 8;
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd188, %r26, %r177, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f822, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f822;}
+
+ // inline asm
+ st.v4.u16 [%rd187], {%rs116, %rs116, %rs116, %rs105};
+
+BB0_107:
+ ld.global.u32 %r178, [additive];
+ setp.eq.s32 %p128, %r178, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f815;}
+
+ // inline asm
+ @%p128 bra BB0_109;
+
+ mov.u64 %rd206, image_RNM1;
+ cvta.global.u64 %rd195, %rd206;
+ mov.u32 %r182, 8;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r26, %r182, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd194];
+ // inline asm
+ { cvt.f32.f16 %f824, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f825, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f826, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd195, %r26, %r182, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f827, %f824, 0f00000000;
+ add.f32 %f828, %f825, 0f00000000;
+ add.f32 %f829, %f826, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f829;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f828;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f827;}
+
+ // inline asm
+ st.v4.u16 [%rd200], {%rs121, %rs122, %rs123, %rs117};
+ bra.uni BB0_110;
+
+BB0_109:
+ mov.u64 %rd213, image_RNM1;
+ cvta.global.u64 %rd208, %rd213;
+ mov.u32 %r184, 8;
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd208, %r26, %r184, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f830, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs128, %f830;}
+
+ // inline asm
+ st.v4.u16 [%rd207], {%rs128, %rs128, %rs128, %rs117};
+
+BB0_110:
+ ld.global.u32 %r185, [additive];
+ setp.eq.s32 %p129, %r185, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f815;}
+
+ // inline asm
+ @%p129 bra BB0_112;
+
+ mov.u64 %rd226, image_RNM2;
+ cvta.global.u64 %rd215, %rd226;
+ mov.u32 %r189, 8;
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd215, %r26, %r189, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs136, %rs137, %rs138, %rs139}, [%rd214];
+ // inline asm
+ { cvt.f32.f16 %f832, %rs136;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f833, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f834, %rs138;}
+
+ // inline asm
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd215, %r26, %r189, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f835, %f832, 0f00000000;
+ add.f32 %f836, %f833, 0f00000000;
+ add.f32 %f837, %f834, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f837;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f836;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f835;}
+
+ // inline asm
+ st.v4.u16 [%rd220], {%rs133, %rs134, %rs135, %rs129};
+ bra.uni BB0_113;
+
+BB0_112:
+ mov.u64 %rd233, image_RNM2;
+ cvta.global.u64 %rd228, %rd233;
+ mov.u32 %r191, 8;
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd228, %r26, %r191, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f838, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f838;}
+
+ // inline asm
+ st.v4.u16 [%rd227], {%rs140, %rs140, %rs140, %rs129};
+
+BB0_113:
+ ld.global.u32 %r192, [additive];
+ setp.eq.s32 %p130, %r192, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs141, %f815;}
+
+ // inline asm
+ @%p130 bra BB0_115;
+
+ mov.u64 %rd246, image_RNM3;
+ cvta.global.u64 %rd235, %rd246;
+ mov.u32 %r196, 8;
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd235, %r26, %r196, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs148, %rs149, %rs150, %rs151}, [%rd234];
+ // inline asm
+ { cvt.f32.f16 %f840, %rs148;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f841, %rs149;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f842, %rs150;}
+
+ // inline asm
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd235, %r26, %r196, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ add.f32 %f843, %f840, 0f00000000;
+ add.f32 %f844, %f841, 0f00000000;
+ add.f32 %f845, %f842, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f845;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f844;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f843;}
+
+ // inline asm
+ st.v4.u16 [%rd240], {%rs145, %rs146, %rs147, %rs141};
+ bra.uni BB0_136;
+
+BB0_115:
+ mov.u64 %rd253, image_RNM3;
+ cvta.global.u64 %rd248, %rd253;
+ mov.u32 %r198, 8;
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd248, %r26, %r198, %rd6, %rd7, %rd15, %rd15);
+ // inline asm
+ mov.f32 %f846, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f846;}
+
+ // inline asm
+ st.v4.u16 [%rd247], {%rs152, %rs152, %rs152, %rs141};
+ bra.uni BB0_136;
+
+BB0_35:
+ setp.geu.f32 %p61, %f966, 0f00000000;
+ @%p61 bra BB0_38;
+
+ cvt.rzi.f32.f32 %f505, %f477;
+ setp.neu.f32 %p62, %f505, 0f3EE8BA2E;
+ selp.f32 %f969, 0f7FFFFFFF, %f969, %p62;
+
+BB0_38:
+ add.f32 %f507, %f65, 0f3EE8BA2E;
+ mov.b32 %r85, %f507;
+ setp.lt.s32 %p64, %r85, 2139095040;
+ @%p64 bra BB0_43;
+
+ setp.gtu.f32 %p65, %f65, 0f7F800000;
+ @%p65 bra BB0_42;
+ bra.uni BB0_40;
+
+BB0_42:
+ add.f32 %f969, %f966, 0f3EE8BA2E;
+ bra.uni BB0_43;
+
+BB0_40:
+ setp.neu.f32 %p66, %f65, 0f7F800000;
+ @%p66 bra BB0_43;
+
+ selp.f32 %f969, 0fFF800000, 0f7F800000, %p3;
+
+BB0_43:
+ mul.f32 %f508, %f969, 0f437F0000;
+ setp.eq.f32 %p67, %f966, 0f3F800000;
+ selp.f32 %f509, 0f437F0000, %f508, %p67;
+ cvt.rzi.u32.f32 %r86, %f509;
+ cvt.u16.u32 %rs19, %r86;
+ mov.u16 %rs20, 255;
+ st.v2.u8 [%rd26], {%rs19, %rs20};
+ ld.global.u32 %r246, [imageEnabled];
+
+BB0_44:
+ and.b32 %r87, %r246, 1;
+ setp.eq.b32 %p68, %r87, 1;
+ @!%p68 bra BB0_79;
+ bra.uni BB0_45;
+
+BB0_45:
+ mov.f32 %f920, 0fB5BFBE8E;
+ mov.f32 %f919, 0fBF317200;
+ mov.f32 %f918, 0f35BFBE8E;
+ mov.f32 %f917, 0f3F317200;
+ mov.f32 %f916, 0f3DAAAABD;
+ mov.f32 %f915, 0f3C4CAF63;
+ mov.f32 %f914, 0f3B18F0FE;
+ mov.f32 %f512, 0f3E666666;
+ cvt.rzi.f32.f32 %f513, %f512;
+ fma.rn.f32 %f514, %f513, 0fC0000000, 0f3EE66666;
+ abs.f32 %f77, %f514;
+ abs.f32 %f78, %f61;
+ setp.lt.f32 %p69, %f78, 0f00800000;
+ mul.f32 %f515, %f78, 0f4B800000;
+ selp.f32 %f516, 0fC3170000, 0fC2FE0000, %p69;
+ selp.f32 %f517, %f515, %f78, %p69;
+ mov.b32 %r88, %f517;
+ and.b32 %r89, %r88, 8388607;
+ or.b32 %r90, %r89, 1065353216;
+ mov.b32 %f518, %r90;
+ shr.u32 %r91, %r88, 23;
+ cvt.rn.f32.u32 %f519, %r91;
+ add.f32 %f520, %f516, %f519;
+ setp.gt.f32 %p70, %f518, 0f3FB504F3;
+ mul.f32 %f521, %f518, 0f3F000000;
+ add.f32 %f522, %f520, 0f3F800000;
+ selp.f32 %f523, %f521, %f518, %p70;
+ selp.f32 %f524, %f522, %f520, %p70;
+ add.f32 %f525, %f523, 0fBF800000;
+ add.f32 %f511, %f523, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f510,%f511;
+ // inline asm
+ add.f32 %f526, %f525, %f525;
+ mul.f32 %f527, %f510, %f526;
+ mul.f32 %f528, %f527, %f527;
+ fma.rn.f32 %f531, %f914, %f528, %f915;
+ fma.rn.f32 %f533, %f531, %f528, %f916;
+ mul.rn.f32 %f534, %f533, %f528;
+ mul.rn.f32 %f535, %f534, %f527;
+ sub.f32 %f536, %f525, %f527;
+ neg.f32 %f537, %f527;
+ add.f32 %f538, %f536, %f536;
+ fma.rn.f32 %f539, %f537, %f525, %f538;
+ mul.rn.f32 %f540, %f510, %f539;
+ add.f32 %f541, %f535, %f527;
+ sub.f32 %f542, %f527, %f541;
+ add.f32 %f543, %f535, %f542;
+ add.f32 %f544, %f540, %f543;
+ add.f32 %f545, %f541, %f544;
+ sub.f32 %f546, %f541, %f545;
+ add.f32 %f547, %f544, %f546;
+ mul.rn.f32 %f549, %f524, %f917;
+ mul.rn.f32 %f551, %f524, %f918;
+ add.f32 %f552, %f549, %f545;
+ sub.f32 %f553, %f549, %f552;
+ add.f32 %f554, %f545, %f553;
+ add.f32 %f555, %f547, %f554;
+ add.f32 %f556, %f551, %f555;
+ add.f32 %f557, %f552, %f556;
+ sub.f32 %f558, %f552, %f557;
+ add.f32 %f559, %f556, %f558;
+ mov.f32 %f560, 0f3EE66666;
+ mul.rn.f32 %f561, %f560, %f557;
+ neg.f32 %f562, %f561;
+ fma.rn.f32 %f563, %f560, %f557, %f562;
+ fma.rn.f32 %f564, %f560, %f559, %f563;
+ mov.f32 %f565, 0f00000000;
+ fma.rn.f32 %f566, %f565, %f557, %f564;
+ add.rn.f32 %f567, %f561, %f566;
+ neg.f32 %f568, %f567;
+ add.rn.f32 %f569, %f561, %f568;
+ add.rn.f32 %f570, %f569, %f566;
+ mov.b32 %r92, %f567;
+ setp.eq.s32 %p71, %r92, 1118925336;
+ add.s32 %r93, %r92, -1;
+ mov.b32 %f571, %r93;
+ add.f32 %f572, %f570, 0f37000000;
+ selp.f32 %f573, %f571, %f567, %p71;
+ selp.f32 %f79, %f572, %f570, %p71;
+ mul.f32 %f574, %f573, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f575, %f574;
+ fma.rn.f32 %f577, %f575, %f919, %f573;
+ fma.rn.f32 %f579, %f575, %f920, %f577;
+ mul.f32 %f580, %f579, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f581, %f580;
+ add.f32 %f582, %f575, 0f00000000;
+ ex2.approx.f32 %f583, %f582;
+ mul.f32 %f584, %f581, %f583;
+ setp.lt.f32 %p72, %f573, 0fC2D20000;
+ selp.f32 %f585, 0f00000000, %f584, %p72;
+ setp.gt.f32 %p73, %f573, 0f42D20000;
+ selp.f32 %f970, 0f7F800000, %f585, %p73;
+ setp.eq.f32 %p74, %f970, 0f7F800000;
+ @%p74 bra BB0_47;
+
+ fma.rn.f32 %f970, %f970, %f79, %f970;
+
+BB0_47:
+ setp.lt.f32 %p75, %f61, 0f00000000;
+ setp.eq.f32 %p76, %f77, 0f3F800000;
+ and.pred %p4, %p75, %p76;
+ mov.b32 %r94, %f970;
+ xor.b32 %r95, %r94, -2147483648;
+ mov.b32 %f586, %r95;
+ selp.f32 %f972, %f586, %f970, %p4;
+ setp.eq.f32 %p77, %f61, 0f00000000;
+ @%p77 bra BB0_50;
+ bra.uni BB0_48;
+
+BB0_50:
+ add.f32 %f589, %f61, %f61;
+ selp.f32 %f972, %f589, 0f00000000, %p76;
+ bra.uni BB0_51;
+
+BB0_48:
+ setp.geu.f32 %p78, %f61, 0f00000000;
+ @%p78 bra BB0_51;
+
+ cvt.rzi.f32.f32 %f588, %f560;
+ setp.neu.f32 %p79, %f588, 0f3EE66666;
+ selp.f32 %f972, 0f7FFFFFFF, %f972, %p79;
+
+BB0_51:
+ add.f32 %f590, %f78, 0f3EE66666;
+ mov.b32 %r96, %f590;
+ setp.lt.s32 %p81, %r96, 2139095040;
+ @%p81 bra BB0_56;
+
+ setp.gtu.f32 %p82, %f78, 0f7F800000;
+ @%p82 bra BB0_55;
+ bra.uni BB0_53;
+
+BB0_55:
+ add.f32 %f972, %f61, 0f3EE66666;
+ bra.uni BB0_56;
+
+BB0_53:
+ setp.neu.f32 %p83, %f78, 0f7F800000;
+ @%p83 bra BB0_56;
+
+ selp.f32 %f972, 0fFF800000, 0f7F800000, %p4;
+
+BB0_56:
+ mov.f32 %f927, 0fB5BFBE8E;
+ mov.f32 %f926, 0fBF317200;
+ mov.f32 %f925, 0f35BFBE8E;
+ mov.f32 %f924, 0f3F317200;
+ mov.f32 %f923, 0f3DAAAABD;
+ mov.f32 %f922, 0f3C4CAF63;
+ mov.f32 %f921, 0f3B18F0FE;
+ setp.eq.f32 %p84, %f61, 0f3F800000;
+ selp.f32 %f90, 0f3F800000, %f972, %p84;
+ abs.f32 %f91, %f62;
+ setp.lt.f32 %p85, %f91, 0f00800000;
+ mul.f32 %f593, %f91, 0f4B800000;
+ selp.f32 %f594, 0fC3170000, 0fC2FE0000, %p85;
+ selp.f32 %f595, %f593, %f91, %p85;
+ mov.b32 %r97, %f595;
+ and.b32 %r98, %r97, 8388607;
+ or.b32 %r99, %r98, 1065353216;
+ mov.b32 %f596, %r99;
+ shr.u32 %r100, %r97, 23;
+ cvt.rn.f32.u32 %f597, %r100;
+ add.f32 %f598, %f594, %f597;
+ setp.gt.f32 %p86, %f596, 0f3FB504F3;
+ mul.f32 %f599, %f596, 0f3F000000;
+ add.f32 %f600, %f598, 0f3F800000;
+ selp.f32 %f601, %f599, %f596, %p86;
+ selp.f32 %f602, %f600, %f598, %p86;
+ add.f32 %f603, %f601, 0fBF800000;
+ add.f32 %f592, %f601, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f591,%f592;
+ // inline asm
+ add.f32 %f604, %f603, %f603;
+ mul.f32 %f605, %f591, %f604;
+ mul.f32 %f606, %f605, %f605;
+ fma.rn.f32 %f609, %f921, %f606, %f922;
+ fma.rn.f32 %f611, %f609, %f606, %f923;
+ mul.rn.f32 %f612, %f611, %f606;
+ mul.rn.f32 %f613, %f612, %f605;
+ sub.f32 %f614, %f603, %f605;
+ neg.f32 %f615, %f605;
+ add.f32 %f616, %f614, %f614;
+ fma.rn.f32 %f617, %f615, %f603, %f616;
+ mul.rn.f32 %f618, %f591, %f617;
+ add.f32 %f619, %f613, %f605;
+ sub.f32 %f620, %f605, %f619;
+ add.f32 %f621, %f613, %f620;
+ add.f32 %f622, %f618, %f621;
+ add.f32 %f623, %f619, %f622;
+ sub.f32 %f624, %f619, %f623;
+ add.f32 %f625, %f622, %f624;
+ mul.rn.f32 %f627, %f602, %f924;
+ mul.rn.f32 %f629, %f602, %f925;
+ add.f32 %f630, %f627, %f623;
+ sub.f32 %f631, %f627, %f630;
+ add.f32 %f632, %f623, %f631;
+ add.f32 %f633, %f625, %f632;
+ add.f32 %f634, %f629, %f633;
+ add.f32 %f635, %f630, %f634;
+ sub.f32 %f636, %f630, %f635;
+ add.f32 %f637, %f634, %f636;
+ mul.rn.f32 %f639, %f560, %f635;
+ neg.f32 %f640, %f639;
+ fma.rn.f32 %f641, %f560, %f635, %f640;
+ fma.rn.f32 %f642, %f560, %f637, %f641;
+ fma.rn.f32 %f644, %f565, %f635, %f642;
+ add.rn.f32 %f645, %f639, %f644;
+ neg.f32 %f646, %f645;
+ add.rn.f32 %f647, %f639, %f646;
+ add.rn.f32 %f648, %f647, %f644;
+ mov.b32 %r101, %f645;
+ setp.eq.s32 %p87, %r101, 1118925336;
+ add.s32 %r102, %r101, -1;
+ mov.b32 %f649, %r102;
+ add.f32 %f650, %f648, 0f37000000;
+ selp.f32 %f651, %f649, %f645, %p87;
+ selp.f32 %f92, %f650, %f648, %p87;
+ mul.f32 %f652, %f651, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f653, %f652;
+ fma.rn.f32 %f655, %f653, %f926, %f651;
+ fma.rn.f32 %f657, %f653, %f927, %f655;
+ mul.f32 %f658, %f657, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f659, %f658;
+ add.f32 %f660, %f653, 0f00000000;
+ ex2.approx.f32 %f661, %f660;
+ mul.f32 %f662, %f659, %f661;
+ setp.lt.f32 %p88, %f651, 0fC2D20000;
+ selp.f32 %f663, 0f00000000, %f662, %p88;
+ setp.gt.f32 %p89, %f651, 0f42D20000;
+ selp.f32 %f973, 0f7F800000, %f663, %p89;
+ setp.eq.f32 %p90, %f973, 0f7F800000;
+ @%p90 bra BB0_58;
+
+ fma.rn.f32 %f973, %f973, %f92, %f973;
+
+BB0_58:
+ setp.lt.f32 %p91, %f62, 0f00000000;
+ and.pred %p5, %p91, %p76;
+ mov.b32 %r103, %f973;
+ xor.b32 %r104, %r103, -2147483648;
+ mov.b32 %f664, %r104;
+ selp.f32 %f975, %f664, %f973, %p5;
+ setp.eq.f32 %p93, %f62, 0f00000000;
+ @%p93 bra BB0_61;
+ bra.uni BB0_59;
+
+BB0_61:
+ add.f32 %f667, %f62, %f62;
+ selp.f32 %f975, %f667, 0f00000000, %p76;
+ bra.uni BB0_62;
+
+BB0_59:
+ setp.geu.f32 %p94, %f62, 0f00000000;
+ @%p94 bra BB0_62;
+
+ cvt.rzi.f32.f32 %f666, %f560;
+ setp.neu.f32 %p95, %f666, 0f3EE66666;
+ selp.f32 %f975, 0f7FFFFFFF, %f975, %p95;
+
+BB0_62:
+ add.f32 %f668, %f91, 0f3EE66666;
+ mov.b32 %r105, %f668;
+ setp.lt.s32 %p97, %r105, 2139095040;
+ @%p97 bra BB0_67;
+
+ setp.gtu.f32 %p98, %f91, 0f7F800000;
+ @%p98 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f975, %f62, 0f3EE66666;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.neu.f32 %p99, %f91, 0f7F800000;
+ @%p99 bra BB0_67;
+
+ selp.f32 %f975, 0fFF800000, 0f7F800000, %p5;
+
+BB0_67:
+ mov.f32 %f934, 0fB5BFBE8E;
+ mov.f32 %f933, 0fBF317200;
+ mov.f32 %f932, 0f35BFBE8E;
+ mov.f32 %f931, 0f3F317200;
+ mov.f32 %f930, 0f3DAAAABD;
+ mov.f32 %f929, 0f3C4CAF63;
+ mov.f32 %f928, 0f3B18F0FE;
+ setp.eq.f32 %p100, %f62, 0f3F800000;
+ selp.f32 %f103, 0f3F800000, %f975, %p100;
+ abs.f32 %f104, %f63;
+ setp.lt.f32 %p101, %f104, 0f00800000;
+ mul.f32 %f671, %f104, 0f4B800000;
+ selp.f32 %f672, 0fC3170000, 0fC2FE0000, %p101;
+ selp.f32 %f673, %f671, %f104, %p101;
+ mov.b32 %r106, %f673;
+ and.b32 %r107, %r106, 8388607;
+ or.b32 %r108, %r107, 1065353216;
+ mov.b32 %f674, %r108;
+ shr.u32 %r109, %r106, 23;
+ cvt.rn.f32.u32 %f675, %r109;
+ add.f32 %f676, %f672, %f675;
+ setp.gt.f32 %p102, %f674, 0f3FB504F3;
+ mul.f32 %f677, %f674, 0f3F000000;
+ add.f32 %f678, %f676, 0f3F800000;
+ selp.f32 %f679, %f677, %f674, %p102;
+ selp.f32 %f680, %f678, %f676, %p102;
+ add.f32 %f681, %f679, 0fBF800000;
+ add.f32 %f670, %f679, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f669,%f670;
+ // inline asm
+ add.f32 %f682, %f681, %f681;
+ mul.f32 %f683, %f669, %f682;
+ mul.f32 %f684, %f683, %f683;
+ fma.rn.f32 %f687, %f928, %f684, %f929;
+ fma.rn.f32 %f689, %f687, %f684, %f930;
+ mul.rn.f32 %f690, %f689, %f684;
+ mul.rn.f32 %f691, %f690, %f683;
+ sub.f32 %f692, %f681, %f683;
+ neg.f32 %f693, %f683;
+ add.f32 %f694, %f692, %f692;
+ fma.rn.f32 %f695, %f693, %f681, %f694;
+ mul.rn.f32 %f696, %f669, %f695;
+ add.f32 %f697, %f691, %f683;
+ sub.f32 %f698, %f683, %f697;
+ add.f32 %f699, %f691, %f698;
+ add.f32 %f700, %f696, %f699;
+ add.f32 %f701, %f697, %f700;
+ sub.f32 %f702, %f697, %f701;
+ add.f32 %f703, %f700, %f702;
+ mul.rn.f32 %f705, %f680, %f931;
+ mul.rn.f32 %f707, %f680, %f932;
+ add.f32 %f708, %f705, %f701;
+ sub.f32 %f709, %f705, %f708;
+ add.f32 %f710, %f701, %f709;
+ add.f32 %f711, %f703, %f710;
+ add.f32 %f712, %f707, %f711;
+ add.f32 %f713, %f708, %f712;
+ sub.f32 %f714, %f708, %f713;
+ add.f32 %f715, %f712, %f714;
+ mul.rn.f32 %f717, %f560, %f713;
+ neg.f32 %f718, %f717;
+ fma.rn.f32 %f719, %f560, %f713, %f718;
+ fma.rn.f32 %f720, %f560, %f715, %f719;
+ fma.rn.f32 %f722, %f565, %f713, %f720;
+ add.rn.f32 %f723, %f717, %f722;
+ neg.f32 %f724, %f723;
+ add.rn.f32 %f725, %f717, %f724;
+ add.rn.f32 %f726, %f725, %f722;
+ mov.b32 %r110, %f723;
+ setp.eq.s32 %p103, %r110, 1118925336;
+ add.s32 %r111, %r110, -1;
+ mov.b32 %f727, %r111;
+ add.f32 %f728, %f726, 0f37000000;
+ selp.f32 %f729, %f727, %f723, %p103;
+ selp.f32 %f105, %f728, %f726, %p103;
+ mul.f32 %f730, %f729, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f731, %f730;
+ fma.rn.f32 %f733, %f731, %f933, %f729;
+ fma.rn.f32 %f735, %f731, %f934, %f733;
+ mul.f32 %f736, %f735, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f737, %f736;
+ add.f32 %f738, %f731, 0f00000000;
+ ex2.approx.f32 %f739, %f738;
+ mul.f32 %f740, %f737, %f739;
+ setp.lt.f32 %p104, %f729, 0fC2D20000;
+ selp.f32 %f741, 0f00000000, %f740, %p104;
+ setp.gt.f32 %p105, %f729, 0f42D20000;
+ selp.f32 %f976, 0f7F800000, %f741, %p105;
+ setp.eq.f32 %p106, %f976, 0f7F800000;
+ @%p106 bra BB0_69;
+
+ fma.rn.f32 %f976, %f976, %f105, %f976;
+
+BB0_69:
+ setp.lt.f32 %p107, %f63, 0f00000000;
+ and.pred %p6, %p107, %p76;
+ mov.b32 %r112, %f976;
+ xor.b32 %r113, %r112, -2147483648;
+ mov.b32 %f742, %r113;
+ selp.f32 %f978, %f742, %f976, %p6;
+ setp.eq.f32 %p109, %f63, 0f00000000;
+ @%p109 bra BB0_72;
+ bra.uni BB0_70;
+
+BB0_72:
+ add.f32 %f745, %f63, %f63;
+ selp.f32 %f978, %f745, 0f00000000, %p76;
+ bra.uni BB0_73;
+
+BB0_70:
+ setp.geu.f32 %p110, %f63, 0f00000000;
+ @%p110 bra BB0_73;
+
+ cvt.rzi.f32.f32 %f744, %f560;
+ setp.neu.f32 %p111, %f744, 0f3EE66666;
+ selp.f32 %f978, 0f7FFFFFFF, %f978, %p111;
+
+BB0_73:
+ add.f32 %f746, %f104, 0f3EE66666;
+ mov.b32 %r114, %f746;
+ setp.lt.s32 %p113, %r114, 2139095040;
+ @%p113 bra BB0_78;
+
+ setp.gtu.f32 %p114, %f104, 0f7F800000;
+ @%p114 bra BB0_77;
+ bra.uni BB0_75;
+
+BB0_77:
+ add.f32 %f978, %f63, 0f3EE66666;
+ bra.uni BB0_78;
+
+BB0_75:
+ setp.neu.f32 %p115, %f104, 0f7F800000;
+ @%p115 bra BB0_78;
+
+ selp.f32 %f978, 0fFF800000, 0f7F800000, %p6;
+
+BB0_78:
+ setp.eq.f32 %p116, %f63, 0f3F800000;
+ selp.f32 %f747, 0f3F800000, %f978, %p116;
+ cvt.u64.u32 %rd36, %r3;
+ cvt.u64.u32 %rd35, %r2;
+ mov.u64 %rd39, image;
+ cvta.global.u64 %rd34, %rd39;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r26, %r27, %rd35, %rd36, %rd15, %rd15);
+ // inline asm
+ cvt.sat.f32.f32 %f748, %f747;
+ mul.f32 %f749, %f748, 0f437FFD71;
+ cvt.rzi.u32.f32 %r117, %f749;
+ cvt.sat.f32.f32 %f750, %f103;
+ mul.f32 %f751, %f750, 0f437FFD71;
+ cvt.rzi.u32.f32 %r118, %f751;
+ cvt.sat.f32.f32 %f752, %f90;
+ mul.f32 %f753, %f752, 0f437FFD71;
+ cvt.rzi.u32.f32 %r119, %f753;
+ cvt.u16.u32 %rs21, %r117;
+ cvt.u16.u32 %rs22, %r119;
+ cvt.u16.u32 %rs23, %r118;
+ mov.u16 %rs24, 255;
+ st.v4.u8 [%rd33], {%rs21, %rs23, %rs22, %rs24};
+ ld.global.u32 %r246, [imageEnabled];
+
+BB0_79:
+ cvt.u64.u32 %rd4, %r2;
+ cvt.u64.u32 %rd5, %r3;
+ and.b32 %r120, %r246, 4;
+ setp.eq.s32 %p117, %r120, 0;
+ @%p117 bra BB0_83;
+
+ ld.global.u32 %r121, [additive];
+ setp.eq.s32 %p118, %r121, 0;
+ mov.f32 %f754, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f754;}
+
+ // inline asm
+ @%p118 bra BB0_82;
+
+ mov.u64 %rd52, image_HDR;
+ cvta.global.u64 %rd41, %rd52;
+ mov.u32 %r125, 8;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r26, %r125, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs32, %rs33, %rs34, %rs35}, [%rd40];
+ // inline asm
+ { cvt.f32.f16 %f755, %rs32;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f756, %rs33;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f757, %rs34;}
+
+ // inline asm
+ // inline asm
+ call (%rd46), _rt_buffer_get_64, (%rd41, %r26, %r125, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f758, %f61, %f755;
+ add.f32 %f759, %f62, %f756;
+ add.f32 %f760, %f63, %f757;
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f760;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f759;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f758;}
+
+ // inline asm
+ st.v4.u16 [%rd46], {%rs29, %rs30, %rs31, %rs25};
+ bra.uni BB0_83;
+
+BB0_82:
+ mov.u64 %rd59, image_HDR;
+ cvta.global.u64 %rd54, %rd59;
+ mov.u32 %r127, 8;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r26, %r127, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f63;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f62;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f61;}
+
+ // inline asm
+ st.v4.u16 [%rd53], {%rs36, %rs37, %rs38, %rs25};
+
+BB0_83:
+ mul.f32 %f765, %f47, 0f3E800000;
+ mul.f32 %f766, %f765, %f966;
+ mul.f32 %f767, %f48, %f766;
+ ld.global.f32 %f768, [lightColor];
+ mul.f32 %f116, %f767, %f768;
+ ld.global.f32 %f769, [lightColor+4];
+ mul.f32 %f117, %f767, %f769;
+ ld.global.f32 %f770, [lightColor+8];
+ mul.f32 %f118, %f767, %f770;
+ ld.global.u32 %r128, [additive];
+ setp.eq.s32 %p119, %r128, 0;
+ mov.f32 %f764, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f764;}
+
+ // inline asm
+ @%p119 bra BB0_85;
+
+ mov.u64 %rd72, image_RNM0;
+ cvta.global.u64 %rd61, %rd72;
+ mov.u32 %r132, 8;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r26, %r132, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs46, %rs47, %rs48, %rs49}, [%rd60];
+ // inline asm
+ { cvt.f32.f16 %f771, %rs46;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f772, %rs47;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f773, %rs48;}
+
+ // inline asm
+ // inline asm
+ call (%rd66), _rt_buffer_get_64, (%rd61, %r26, %r132, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f774, %f116, %f771;
+ add.f32 %f775, %f117, %f772;
+ add.f32 %f776, %f118, %f773;
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f776;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f775;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f774;}
+
+ // inline asm
+ st.v4.u16 [%rd66], {%rs43, %rs44, %rs45, %rs39};
+ bra.uni BB0_86;
+
+BB0_85:
+ mov.u64 %rd79, image_RNM0;
+ cvta.global.u64 %rd74, %rd79;
+ mov.u32 %r134, 8;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd74, %r26, %r134, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f118;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f117;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f116;}
+
+ // inline asm
+ st.v4.u16 [%rd73], {%rs50, %rs51, %rs52, %rs39};
+
+BB0_86:
+ sub.f32 %f940, %f11, %f12;
+ mul.f32 %f939, %f940, %f151;
+ sub.f32 %f938, %f7, %f8;
+ mul.f32 %f937, %f938, %f151;
+ sub.f32 %f936, %f9, %f10;
+ mul.f32 %f935, %f936, %f151;
+ fma.rn.f32 %f119, %f937, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f120, %f935, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f121, %f939, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r135, [additive];
+ setp.eq.s32 %p120, %r135, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f764;}
+
+ // inline asm
+ @%p120 bra BB0_88;
+
+ mov.u64 %rd92, image_RNM1;
+ cvta.global.u64 %rd81, %rd92;
+ mov.u32 %r139, 8;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r26, %r139, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs60, %rs61, %rs62, %rs63}, [%rd80];
+ // inline asm
+ { cvt.f32.f16 %f781, %rs60;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f782, %rs61;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f783, %rs62;}
+
+ // inline asm
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd81, %r26, %r139, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f784, %f119, %f781;
+ add.f32 %f785, %f119, %f782;
+ add.f32 %f786, %f119, %f783;
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f786;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f785;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f784;}
+
+ // inline asm
+ st.v4.u16 [%rd86], {%rs57, %rs58, %rs59, %rs53};
+ bra.uni BB0_89;
+
+BB0_88:
+ mov.u64 %rd99, image_RNM1;
+ cvta.global.u64 %rd94, %rd99;
+ mov.u32 %r141, 8;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd94, %r26, %r141, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f119;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs64, %rs64, %rs64, %rs53};
+
+BB0_89:
+ ld.global.u32 %r142, [additive];
+ setp.eq.s32 %p121, %r142, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f764;}
+
+ // inline asm
+ @%p121 bra BB0_91;
+
+ mov.u64 %rd112, image_RNM2;
+ cvta.global.u64 %rd101, %rd112;
+ mov.u32 %r146, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r26, %r146, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs72, %rs73, %rs74, %rs75}, [%rd100];
+ // inline asm
+ { cvt.f32.f16 %f789, %rs72;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f790, %rs73;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f791, %rs74;}
+
+ // inline asm
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd101, %r26, %r146, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f792, %f120, %f789;
+ add.f32 %f793, %f120, %f790;
+ add.f32 %f794, %f120, %f791;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f794;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f793;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f792;}
+
+ // inline asm
+ st.v4.u16 [%rd106], {%rs69, %rs70, %rs71, %rs65};
+ bra.uni BB0_92;
+
+BB0_91:
+ mov.u64 %rd119, image_RNM2;
+ cvta.global.u64 %rd114, %rd119;
+ mov.u32 %r148, 8;
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd114, %r26, %r148, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f120;}
+
+ // inline asm
+ st.v4.u16 [%rd113], {%rs76, %rs76, %rs76, %rs65};
+
+BB0_92:
+ ld.global.u32 %r149, [additive];
+ setp.eq.s32 %p122, %r149, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f764;}
+
+ // inline asm
+ @%p122 bra BB0_94;
+
+ mov.u64 %rd132, image_RNM3;
+ cvta.global.u64 %rd121, %rd132;
+ mov.u32 %r153, 8;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd121, %r26, %r153, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ ld.v4.u16 {%rs84, %rs85, %rs86, %rs87}, [%rd120];
+ // inline asm
+ { cvt.f32.f16 %f797, %rs84;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f798, %rs85;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f799, %rs86;}
+
+ // inline asm
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd121, %r26, %r153, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ add.f32 %f800, %f121, %f797;
+ add.f32 %f801, %f121, %f798;
+ add.f32 %f802, %f121, %f799;
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f802;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f801;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f800;}
+
+ // inline asm
+ st.v4.u16 [%rd126], {%rs81, %rs82, %rs83, %rs77};
+ bra.uni BB0_136;
+
+BB0_94:
+ mov.u64 %rd139, image_RNM3;
+ cvta.global.u64 %rd134, %rd139;
+ mov.u32 %r155, 8;
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd134, %r26, %r155, %rd4, %rd5, %rd15, %rd15);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f121;}
+
+ // inline asm
+ st.v4.u16 [%rd133], {%rs88, %rs88, %rs88, %rs77};
+
+BB0_136:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightSH.ptx.meta
new file mode 100644
index 00000000..b9d71521
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmPointLightSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 03a7972db4545b246915011d04e5b3e8
+timeCreated: 1537701758
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSS.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSS.ptx
new file mode 100644
index 00000000..6c1ca0ac
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSS.ptx
@@ -0,0 +1,1343 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 8 .b8 texCoords[8];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 1 .b8 lightmapDirect[1];
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<95>;
+ .reg .b16 %rs<27>;
+ .reg .f32 %f<624>;
+ .reg .b32 %r<311>;
+ .reg .b64 %rd<105>;
+
+
+ mov.u64 %rd104, __local_depot0;
+ cvta.local.u64 %SP, %rd104;
+ ld.global.v2.u32 {%r97, %r98}, [pixelID];
+ cvt.u64.u32 %rd18, %r97;
+ cvt.u64.u32 %rd19, %r98;
+ mov.u64 %rd22, uvnormal;
+ cvta.global.u64 %rd17, %rd22;
+ mov.u32 %r95, 2;
+ mov.u32 %r96, 4;
+ mov.u64 %rd21, 0;
+ // inline asm
+ call (%rd16), _rt_buffer_get_64, (%rd17, %r95, %r96, %rd18, %rd19, %rd21, %rd21);
+ // inline asm
+ ld.u32 %r1, [%rd16];
+ shr.u32 %r101, %r1, 16;
+ cvt.u16.u32 %rs1, %r101;
+ and.b16 %rs2, %rs1, 255;
+ cvt.u16.u32 %rs3, %r1;
+ or.b16 %rs4, %rs3, %rs2;
+ setp.eq.s16 %p4, %rs4, 0;
+ mov.f32 %f582, 0f00000000;
+ mov.f32 %f583, %f582;
+ mov.f32 %f584, %f582;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs5, [%rd16+1];
+ and.b16 %rs7, %rs3, 255;
+ cvt.rn.f32.u16 %f135, %rs7;
+ div.rn.f32 %f136, %f135, 0f437F0000;
+ fma.rn.f32 %f137, %f136, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f138, %rs5;
+ div.rn.f32 %f139, %f138, 0f437F0000;
+ fma.rn.f32 %f140, %f139, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f141, %rs2;
+ div.rn.f32 %f142, %f141, 0f437F0000;
+ fma.rn.f32 %f143, %f142, 0f40000000, 0fBF800000;
+ mul.f32 %f144, %f140, %f140;
+ fma.rn.f32 %f145, %f137, %f137, %f144;
+ fma.rn.f32 %f146, %f143, %f143, %f145;
+ sqrt.rn.f32 %f147, %f146;
+ rcp.rn.f32 %f148, %f147;
+ mul.f32 %f582, %f137, %f148;
+ mul.f32 %f583, %f140, %f148;
+ mul.f32 %f584, %f143, %f148;
+
+BB0_2:
+ ld.global.v2.u32 {%r102, %r103}, [pixelID];
+ ld.global.v2.u32 {%r105, %r106}, [tileInfo];
+ add.s32 %r2, %r102, %r105;
+ add.s32 %r3, %r103, %r106;
+ setp.eq.f32 %p5, %f583, 0f00000000;
+ setp.eq.f32 %p6, %f582, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f584, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_97;
+ bra.uni BB0_3;
+
+BB0_97:
+ ld.global.u32 %r310, [imageEnabled];
+ and.b32 %r269, %r310, 1;
+ setp.eq.b32 %p93, %r269, 1;
+ @!%p93 bra BB0_99;
+ bra.uni BB0_98;
+
+BB0_98:
+ cvt.u64.u32 %rd86, %r2;
+ cvt.u64.u32 %rd87, %r3;
+ mov.u64 %rd90, image;
+ cvta.global.u64 %rd85, %rd90;
+ mov.u64 %rd89, 0;
+ // inline asm
+ call (%rd84), _rt_buffer_get_64, (%rd85, %r95, %r96, %rd86, %rd87, %rd89, %rd89);
+ // inline asm
+ mov.u16 %rs24, 0;
+ st.v4.u8 [%rd84], {%rs24, %rs24, %rs24, %rs24};
+ ld.global.u32 %r310, [imageEnabled];
+
+BB0_99:
+ and.b32 %r272, %r310, 4;
+ setp.eq.s32 %p94, %r272, 0;
+ @%p94 bra BB0_101;
+
+ cvt.u64.u32 %rd93, %r2;
+ cvt.u64.u32 %rd94, %r3;
+ mov.u64 %rd97, image_HDR;
+ cvta.global.u64 %rd92, %rd97;
+ mov.u32 %r274, 8;
+ mov.u64 %rd96, 0;
+ // inline asm
+ call (%rd91), _rt_buffer_get_64, (%rd92, %r95, %r274, %rd93, %rd94, %rd96, %rd96);
+ // inline asm
+ mov.f32 %f552, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f552;}
+
+ // inline asm
+ mov.u16 %rs26, 0;
+ st.v4.u16 [%rd91], {%rs25, %rs25, %rs25, %rs26};
+ bra.uni BB0_101;
+
+BB0_3:
+ ld.global.v2.u32 {%r115, %r116}, [pixelID];
+ cvt.u64.u32 %rd25, %r115;
+ cvt.u64.u32 %rd26, %r116;
+ mov.u64 %rd30, uvpos;
+ cvta.global.u64 %rd24, %rd30;
+ mov.u32 %r114, 12;
+ // inline asm
+ call (%rd23), _rt_buffer_get_64, (%rd24, %r95, %r114, %rd25, %rd26, %rd21, %rd21);
+ // inline asm
+ ld.f32 %f157, [%rd23+8];
+ ld.f32 %f158, [%rd23+4];
+ ld.f32 %f159, [%rd23];
+ mul.f32 %f160, %f159, 0f3456BF95;
+ mul.f32 %f161, %f158, 0f3456BF95;
+ mul.f32 %f162, %f157, 0f3456BF95;
+ abs.f32 %f163, %f582;
+ div.rn.f32 %f164, %f160, %f163;
+ abs.f32 %f165, %f583;
+ div.rn.f32 %f166, %f161, %f165;
+ abs.f32 %f167, %f584;
+ div.rn.f32 %f168, %f162, %f167;
+ abs.f32 %f169, %f164;
+ abs.f32 %f170, %f166;
+ abs.f32 %f171, %f168;
+ mov.f32 %f172, 0f38D1B717;
+ max.f32 %f173, %f169, %f172;
+ max.f32 %f174, %f170, %f172;
+ max.f32 %f175, %f171, %f172;
+ fma.rn.f32 %f585, %f582, %f173, %f159;
+ fma.rn.f32 %f586, %f583, %f174, %f158;
+ fma.rn.f32 %f587, %f584, %f175, %f157;
+ add.u64 %rd29, %SP, 28;
+ cvta.to.local.u64 %rd31, %rd29;
+ mov.u32 %r113, 0;
+ st.local.u32 [%rd31+8], %r113;
+ st.local.u32 [%rd31+4], %r113;
+ st.local.u32 [%rd31], %r113;
+ ld.global.u32 %r112, [root];
+ neg.f32 %f154, %f584;
+ neg.f32 %f153, %f583;
+ neg.f32 %f152, %f582;
+ mov.f32 %f591, 0f00000000;
+ mov.f32 %f156, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r112, %f585, %f586, %f587, %f152, %f153, %f154, %r113, %f591, %f156, %rd29, %r114);
+ // inline asm
+ ld.local.f32 %f13, [%rd31];
+ abs.f32 %f14, %f152;
+ abs.f32 %f15, %f154;
+ setp.geu.f32 %p10, %f13, 0f00000000;
+ @%p10 bra BB0_5;
+
+ fma.rn.f32 %f176, %f582, %f13, %f585;
+ fma.rn.f32 %f177, %f583, %f13, %f586;
+ fma.rn.f32 %f178, %f584, %f13, %f587;
+ mul.f32 %f179, %f176, 0f3456BF95;
+ mul.f32 %f180, %f177, 0f3456BF95;
+ mul.f32 %f181, %f178, 0f3456BF95;
+ div.rn.f32 %f182, %f179, %f14;
+ abs.f32 %f183, %f153;
+ div.rn.f32 %f184, %f180, %f183;
+ div.rn.f32 %f185, %f181, %f15;
+ abs.f32 %f186, %f182;
+ abs.f32 %f187, %f184;
+ abs.f32 %f188, %f185;
+ max.f32 %f190, %f186, %f172;
+ max.f32 %f191, %f187, %f172;
+ max.f32 %f192, %f188, %f172;
+ fma.rn.f32 %f585, %f190, %f152, %f176;
+ fma.rn.f32 %f586, %f191, %f153, %f177;
+ fma.rn.f32 %f587, %f192, %f154, %f178;
+
+BB0_5:
+ mov.u32 %r279, 4;
+ mov.u32 %r278, 2;
+ setp.gt.f32 %p11, %f14, %f15;
+ selp.f32 %f196, %f583, 0f00000000, %p11;
+ selp.f32 %f197, %f152, %f584, %p11;
+ selp.f32 %f198, 0f00000000, %f153, %p11;
+ mul.f32 %f199, %f197, %f197;
+ fma.rn.f32 %f200, %f196, %f196, %f199;
+ fma.rn.f32 %f201, %f198, %f198, %f200;
+ sqrt.rn.f32 %f202, %f201;
+ rcp.rn.f32 %f203, %f202;
+ mul.f32 %f22, %f196, %f203;
+ mul.f32 %f23, %f197, %f203;
+ mul.f32 %f24, %f198, %f203;
+ ld.global.v2.u32 {%r121, %r122}, [pixelID];
+ cvt.u64.u32 %rd34, %r121;
+ cvt.u64.u32 %rd35, %r122;
+ mov.u64 %rd38, rnd_seeds;
+ cvta.global.u64 %rd33, %rd38;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd33, %r278, %r279, %rd34, %rd35, %rd21, %rd21);
+ // inline asm
+ ld.global.u32 %r281, [samples];
+ setp.lt.s32 %p12, %r281, 1;
+ @%p12 bra BB0_6;
+
+ mov.u32 %r282, 0;
+ cvt.rn.f32.s32 %f207, %r281;
+ rcp.rn.f32 %f25, %f207;
+ ld.u32 %r307, [%rd32];
+ mul.f32 %f26, %f585, 0f3456BF95;
+ mul.f32 %f27, %f586, 0f3456BF95;
+ mul.f32 %f28, %f587, 0f3456BF95;
+ mul.f32 %f208, %f23, %f152;
+ mul.f32 %f209, %f22, %f153;
+ sub.f32 %f29, %f209, %f208;
+ mul.f32 %f210, %f22, %f154;
+ mul.f32 %f211, %f24, %f152;
+ sub.f32 %f30, %f211, %f210;
+ mul.f32 %f212, %f24, %f153;
+ mul.f32 %f213, %f23, %f154;
+ sub.f32 %f31, %f213, %f212;
+ mov.f32 %f591, 0f00000000;
+ abs.f32 %f214, %f27;
+ abs.f32 %f215, %f26;
+ max.f32 %f216, %f215, %f214;
+ abs.f32 %f217, %f28;
+ max.f32 %f218, %f216, %f217;
+ mov.f32 %f592, %f591;
+ mov.f32 %f593, %f591;
+
+BB0_8:
+ setp.lt.s32 %p13, %r281, 1;
+ @%p13 bra BB0_59;
+
+ max.f32 %f36, %f218, %f172;
+ mov.u32 %r284, 0;
+
+BB0_10:
+ cvt.rn.f32.s32 %f578, %r282;
+ mad.lo.s32 %r127, %r307, 1664525, 1013904223;
+ and.b32 %r128, %r127, 16777215;
+ cvt.rn.f32.u32 %f220, %r128;
+ fma.rn.f32 %f221, %f220, 0f33800000, %f578;
+ mul.f32 %f222, %f25, %f221;
+ mad.lo.s32 %r307, %r127, 1664525, 1013904223;
+ and.b32 %r129, %r307, 16777215;
+ cvt.rn.f32.u32 %f223, %r129;
+ cvt.rn.f32.s32 %f224, %r284;
+ fma.rn.f32 %f225, %f223, 0f33800000, %f224;
+ mul.f32 %f226, %f25, %f225;
+ sqrt.rn.f32 %f40, %f222;
+ mul.f32 %f600, %f226, 0f40C90FDB;
+ abs.f32 %f42, %f600;
+ setp.neu.f32 %p14, %f42, 0f7F800000;
+ mov.f32 %f594, %f600;
+ @%p14 bra BB0_12;
+
+ mov.f32 %f227, 0f00000000;
+ mul.rn.f32 %f594, %f600, %f227;
+
+BB0_12:
+ mul.f32 %f228, %f594, 0f3F22F983;
+ cvt.rni.s32.f32 %r295, %f228;
+ cvt.rn.f32.s32 %f229, %r295;
+ neg.f32 %f230, %f229;
+ mov.f32 %f231, 0f3FC90FDA;
+ fma.rn.f32 %f232, %f230, %f231, %f594;
+ mov.f32 %f233, 0f33A22168;
+ fma.rn.f32 %f234, %f230, %f233, %f232;
+ mov.f32 %f235, 0f27C234C5;
+ fma.rn.f32 %f595, %f230, %f235, %f234;
+ abs.f32 %f236, %f594;
+ setp.leu.f32 %p15, %f236, 0f47CE4780;
+ @%p15 bra BB0_23;
+
+ add.u64 %rd40, %SP, 0;
+ cvta.to.local.u64 %rd3, %rd40;
+ mov.b32 %r13, %f594;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r132, %r13, 8;
+ or.b32 %r15, %r132, -2147483648;
+ mov.u32 %r286, 0;
+ mov.u64 %rd101, 0;
+ mov.u64 %rd100, %rd3;
+ mov.u32 %r287, %r286;
+
+BB0_14:
+ .pragma "nounroll";
+ shl.b64 %rd41, %rd101, 2;
+ mov.u64 %rd42, __cudart_i2opi_f;
+ add.s64 %rd43, %rd42, %rd41;
+ ld.const.u32 %r135, [%rd43];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r133, %r135, %r15, %r287;
+ madc.hi.u32 %r287, %r135, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd100], %r133;
+ add.s32 %r286, %r286, 1;
+ cvt.s64.s32 %rd101, %r286;
+ mul.wide.s32 %rd46, %r286, 4;
+ add.s64 %rd100, %rd3, %rd46;
+ setp.ne.s32 %p16, %r286, 6;
+ @%p16 bra BB0_14;
+
+ and.b32 %r138, %r14, 255;
+ add.s32 %r139, %r138, -128;
+ shr.u32 %r140, %r139, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd48, %rd40;
+ st.local.u32 [%rd48+24], %r287;
+ mov.u32 %r141, 6;
+ sub.s32 %r142, %r141, %r140;
+ mul.wide.s32 %rd49, %r142, 4;
+ add.s64 %rd8, %rd48, %rd49;
+ ld.local.u32 %r288, [%rd8];
+ ld.local.u32 %r289, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p17, %r23, 0;
+ @%p17 bra BB0_17;
+
+ mov.u32 %r143, 32;
+ sub.s32 %r144, %r143, %r23;
+ shr.u32 %r145, %r289, %r144;
+ shl.b32 %r146, %r288, %r23;
+ add.s32 %r288, %r145, %r146;
+ ld.local.u32 %r147, [%rd8+-8];
+ shr.u32 %r148, %r147, %r144;
+ shl.b32 %r149, %r289, %r23;
+ add.s32 %r289, %r148, %r149;
+
+BB0_17:
+ shr.u32 %r150, %r289, 30;
+ shl.b32 %r151, %r288, 2;
+ add.s32 %r290, %r150, %r151;
+ shl.b32 %r29, %r289, 2;
+ shr.u32 %r152, %r290, 31;
+ shr.u32 %r153, %r288, 30;
+ add.s32 %r30, %r152, %r153;
+ setp.eq.s32 %p18, %r152, 0;
+ @%p18 bra BB0_18;
+ bra.uni BB0_19;
+
+BB0_18:
+ mov.u32 %r291, %r20;
+ mov.u32 %r292, %r29;
+ bra.uni BB0_20;
+
+BB0_19:
+ not.b32 %r154, %r290;
+ neg.s32 %r292, %r29;
+ setp.eq.s32 %p19, %r29, 0;
+ selp.u32 %r155, 1, 0, %p19;
+ add.s32 %r290, %r155, %r154;
+ xor.b32 %r291, %r20, -2147483648;
+
+BB0_20:
+ clz.b32 %r294, %r290;
+ setp.eq.s32 %p20, %r294, 0;
+ shl.b32 %r156, %r290, %r294;
+ mov.u32 %r157, 32;
+ sub.s32 %r158, %r157, %r294;
+ shr.u32 %r159, %r292, %r158;
+ add.s32 %r160, %r159, %r156;
+ selp.b32 %r38, %r290, %r160, %p20;
+ mov.u32 %r161, -921707870;
+ mul.hi.u32 %r293, %r38, %r161;
+ setp.eq.s32 %p21, %r20, 0;
+ neg.s32 %r162, %r30;
+ selp.b32 %r295, %r30, %r162, %p21;
+ setp.lt.s32 %p22, %r293, 1;
+ @%p22 bra BB0_22;
+
+ mul.lo.s32 %r163, %r38, -921707870;
+ shr.u32 %r164, %r163, 31;
+ shl.b32 %r165, %r293, 1;
+ add.s32 %r293, %r164, %r165;
+ add.s32 %r294, %r294, 1;
+
+BB0_22:
+ mov.u32 %r166, 126;
+ sub.s32 %r167, %r166, %r294;
+ shl.b32 %r168, %r167, 23;
+ add.s32 %r169, %r293, 1;
+ shr.u32 %r170, %r169, 7;
+ add.s32 %r171, %r170, 1;
+ shr.u32 %r172, %r171, 1;
+ add.s32 %r173, %r172, %r168;
+ or.b32 %r174, %r173, %r291;
+ mov.b32 %f595, %r174;
+
+BB0_23:
+ mul.rn.f32 %f48, %f595, %f595;
+ add.s32 %r46, %r295, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p23, %r47, 0;
+ @%p23 bra BB0_25;
+ bra.uni BB0_24;
+
+BB0_25:
+ mov.f32 %f239, 0f3C08839E;
+ mov.f32 %f240, 0fB94CA1F9;
+ fma.rn.f32 %f596, %f240, %f48, %f239;
+ bra.uni BB0_26;
+
+BB0_24:
+ mov.f32 %f237, 0fBAB6061A;
+ mov.f32 %f238, 0f37CCF5CE;
+ fma.rn.f32 %f596, %f238, %f48, %f237;
+
+BB0_26:
+ @%p23 bra BB0_28;
+ bra.uni BB0_27;
+
+BB0_28:
+ mov.f32 %f244, 0fBE2AAAA3;
+ fma.rn.f32 %f245, %f596, %f48, %f244;
+ mov.f32 %f246, 0f00000000;
+ fma.rn.f32 %f597, %f245, %f48, %f246;
+ bra.uni BB0_29;
+
+BB0_27:
+ mov.f32 %f241, 0f3D2AAAA5;
+ fma.rn.f32 %f242, %f596, %f48, %f241;
+ mov.f32 %f243, 0fBF000000;
+ fma.rn.f32 %f597, %f242, %f48, %f243;
+
+BB0_29:
+ fma.rn.f32 %f598, %f597, %f595, %f595;
+ @%p23 bra BB0_31;
+
+ mov.f32 %f247, 0f3F800000;
+ fma.rn.f32 %f598, %f597, %f48, %f247;
+
+BB0_31:
+ and.b32 %r175, %r46, 2;
+ setp.eq.s32 %p26, %r175, 0;
+ @%p26 bra BB0_33;
+
+ mov.f32 %f248, 0f00000000;
+ mov.f32 %f249, 0fBF800000;
+ fma.rn.f32 %f598, %f598, %f249, %f248;
+
+BB0_33:
+ @%p14 bra BB0_35;
+
+ mov.f32 %f250, 0f00000000;
+ mul.rn.f32 %f600, %f600, %f250;
+
+BB0_35:
+ mul.f32 %f251, %f600, 0f3F22F983;
+ cvt.rni.s32.f32 %r305, %f251;
+ cvt.rn.f32.s32 %f252, %r305;
+ neg.f32 %f253, %f252;
+ fma.rn.f32 %f255, %f253, %f231, %f600;
+ fma.rn.f32 %f257, %f253, %f233, %f255;
+ fma.rn.f32 %f601, %f253, %f235, %f257;
+ abs.f32 %f259, %f600;
+ setp.leu.f32 %p28, %f259, 0f47CE4780;
+ @%p28 bra BB0_46;
+
+ add.u64 %rd51, %SP, 0;
+ cvta.to.local.u64 %rd9, %rd51;
+ mov.b32 %r49, %f600;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r178, %r49, 8;
+ or.b32 %r51, %r178, -2147483648;
+ mov.u32 %r296, 0;
+ mov.u64 %rd102, %rd9;
+ mov.u64 %rd103, %rd21;
+ mov.u32 %r297, %r296;
+
+BB0_37:
+ .pragma "nounroll";
+ shl.b64 %rd52, %rd103, 2;
+ mov.u64 %rd53, __cudart_i2opi_f;
+ add.s64 %rd54, %rd53, %rd52;
+ ld.const.u32 %r181, [%rd54];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r179, %r181, %r51, %r297;
+ madc.hi.u32 %r297, %r181, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd102], %r179;
+ add.s32 %r296, %r296, 1;
+ cvt.s64.s32 %rd103, %r296;
+ mul.wide.s32 %rd55, %r296, 4;
+ add.s64 %rd102, %rd9, %rd55;
+ setp.ne.s32 %p29, %r296, 6;
+ @%p29 bra BB0_37;
+
+ and.b32 %r184, %r50, 255;
+ add.s32 %r185, %r184, -128;
+ shr.u32 %r186, %r185, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd57, %rd51;
+ st.local.u32 [%rd57+24], %r297;
+ mov.u32 %r187, 6;
+ sub.s32 %r188, %r187, %r186;
+ mul.wide.s32 %rd58, %r188, 4;
+ add.s64 %rd15, %rd57, %rd58;
+ ld.local.u32 %r298, [%rd15];
+ ld.local.u32 %r299, [%rd15+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p30, %r59, 0;
+ @%p30 bra BB0_40;
+
+ mov.u32 %r189, 32;
+ sub.s32 %r190, %r189, %r59;
+ shr.u32 %r191, %r299, %r190;
+ shl.b32 %r192, %r298, %r59;
+ add.s32 %r298, %r191, %r192;
+ ld.local.u32 %r193, [%rd15+-8];
+ shr.u32 %r194, %r193, %r190;
+ shl.b32 %r195, %r299, %r59;
+ add.s32 %r299, %r194, %r195;
+
+BB0_40:
+ shr.u32 %r196, %r299, 30;
+ shl.b32 %r197, %r298, 2;
+ add.s32 %r300, %r196, %r197;
+ shl.b32 %r65, %r299, 2;
+ shr.u32 %r198, %r300, 31;
+ shr.u32 %r199, %r298, 30;
+ add.s32 %r66, %r198, %r199;
+ setp.eq.s32 %p31, %r198, 0;
+ @%p31 bra BB0_41;
+ bra.uni BB0_42;
+
+BB0_41:
+ mov.u32 %r301, %r56;
+ mov.u32 %r302, %r65;
+ bra.uni BB0_43;
+
+BB0_42:
+ not.b32 %r200, %r300;
+ neg.s32 %r302, %r65;
+ setp.eq.s32 %p32, %r65, 0;
+ selp.u32 %r201, 1, 0, %p32;
+ add.s32 %r300, %r201, %r200;
+ xor.b32 %r301, %r56, -2147483648;
+
+BB0_43:
+ clz.b32 %r304, %r300;
+ setp.eq.s32 %p33, %r304, 0;
+ shl.b32 %r202, %r300, %r304;
+ mov.u32 %r203, 32;
+ sub.s32 %r204, %r203, %r304;
+ shr.u32 %r205, %r302, %r204;
+ add.s32 %r206, %r205, %r202;
+ selp.b32 %r74, %r300, %r206, %p33;
+ mov.u32 %r207, -921707870;
+ mul.hi.u32 %r303, %r74, %r207;
+ setp.eq.s32 %p34, %r56, 0;
+ neg.s32 %r208, %r66;
+ selp.b32 %r305, %r66, %r208, %p34;
+ setp.lt.s32 %p35, %r303, 1;
+ @%p35 bra BB0_45;
+
+ mul.lo.s32 %r209, %r74, -921707870;
+ shr.u32 %r210, %r209, 31;
+ shl.b32 %r211, %r303, 1;
+ add.s32 %r303, %r210, %r211;
+ add.s32 %r304, %r304, 1;
+
+BB0_45:
+ mov.u32 %r212, 126;
+ sub.s32 %r213, %r212, %r304;
+ shl.b32 %r214, %r213, 23;
+ add.s32 %r215, %r303, 1;
+ shr.u32 %r216, %r215, 7;
+ add.s32 %r217, %r216, 1;
+ shr.u32 %r218, %r217, 1;
+ add.s32 %r219, %r218, %r214;
+ or.b32 %r220, %r219, %r301;
+ mov.b32 %f601, %r220;
+
+BB0_46:
+ mul.rn.f32 %f65, %f601, %f601;
+ and.b32 %r82, %r305, 1;
+ setp.eq.s32 %p36, %r82, 0;
+ @%p36 bra BB0_48;
+ bra.uni BB0_47;
+
+BB0_48:
+ mov.f32 %f262, 0f3C08839E;
+ mov.f32 %f263, 0fB94CA1F9;
+ fma.rn.f32 %f602, %f263, %f65, %f262;
+ bra.uni BB0_49;
+
+BB0_47:
+ mov.f32 %f260, 0fBAB6061A;
+ mov.f32 %f261, 0f37CCF5CE;
+ fma.rn.f32 %f602, %f261, %f65, %f260;
+
+BB0_49:
+ @%p36 bra BB0_51;
+ bra.uni BB0_50;
+
+BB0_51:
+ mov.f32 %f267, 0fBE2AAAA3;
+ fma.rn.f32 %f268, %f602, %f65, %f267;
+ mov.f32 %f269, 0f00000000;
+ fma.rn.f32 %f603, %f268, %f65, %f269;
+ bra.uni BB0_52;
+
+BB0_50:
+ mov.f32 %f264, 0f3D2AAAA5;
+ fma.rn.f32 %f265, %f602, %f65, %f264;
+ mov.f32 %f266, 0fBF000000;
+ fma.rn.f32 %f603, %f265, %f65, %f266;
+
+BB0_52:
+ fma.rn.f32 %f604, %f603, %f601, %f601;
+ @%p36 bra BB0_54;
+
+ mov.f32 %f270, 0f3F800000;
+ fma.rn.f32 %f604, %f603, %f65, %f270;
+
+BB0_54:
+ and.b32 %r221, %r305, 2;
+ setp.eq.s32 %p39, %r221, 0;
+ @%p39 bra BB0_56;
+
+ mov.f32 %f271, 0f00000000;
+ mov.f32 %f272, 0fBF800000;
+ fma.rn.f32 %f604, %f604, %f272, %f271;
+
+BB0_56:
+ mul.f32 %f281, %f40, %f598;
+ mul.f32 %f282, %f281, %f281;
+ mov.f32 %f283, 0f3F800000;
+ sub.f32 %f284, %f283, %f282;
+ mul.f32 %f285, %f40, %f604;
+ mul.f32 %f286, %f285, %f285;
+ sub.f32 %f287, %f284, %f286;
+ mov.f32 %f288, 0f00000000;
+ max.f32 %f289, %f288, %f287;
+ sqrt.rn.f32 %f290, %f289;
+ mul.f32 %f291, %f22, %f285;
+ mul.f32 %f292, %f23, %f285;
+ mul.f32 %f293, %f24, %f285;
+ fma.rn.f32 %f294, %f31, %f281, %f291;
+ fma.rn.f32 %f295, %f30, %f281, %f292;
+ fma.rn.f32 %f296, %f29, %f281, %f293;
+ fma.rn.f32 %f276, %f290, %f152, %f294;
+ fma.rn.f32 %f277, %f290, %f153, %f295;
+ fma.rn.f32 %f278, %f290, %f154, %f296;
+ mov.u32 %r225, -1082130432;
+ st.local.u32 [%rd31+8], %r225;
+ st.local.u32 [%rd31+4], %r225;
+ st.local.u32 [%rd31], %r225;
+ ld.global.u32 %r222, [root];
+ mov.u32 %r223, 0;
+ // inline asm
+ call _rt_trace_64, (%r222, %f585, %f586, %f587, %f276, %f277, %f278, %r223, %f36, %f156, %rd29, %r114);
+ // inline asm
+ ld.local.f32 %f77, [%rd31];
+ setp.lt.f32 %p40, %f77, 0f00000000;
+ @%p40 bra BB0_58;
+
+ add.f32 %f593, %f593, %f77;
+ ld.local.f32 %f297, [%rd31+4];
+ add.f32 %f592, %f592, %f297;
+ ld.local.f32 %f298, [%rd31+8];
+ add.f32 %f591, %f591, %f298;
+
+BB0_58:
+ ld.global.u32 %r281, [samples];
+ add.s32 %r284, %r284, 1;
+ setp.lt.s32 %p41, %r284, %r281;
+ @%p41 bra BB0_10;
+
+BB0_59:
+ add.s32 %r282, %r282, 1;
+ setp.lt.s32 %p42, %r282, %r281;
+ @%p42 bra BB0_8;
+ bra.uni BB0_60;
+
+BB0_6:
+ mov.f32 %f592, %f591;
+ mov.f32 %f593, %f591;
+
+BB0_60:
+ mul.lo.s32 %r226, %r281, %r281;
+ cvt.rn.f32.s32 %f299, %r226;
+ rcp.rn.f32 %f300, %f299;
+ mul.f32 %f90, %f593, %f300;
+ mul.f32 %f91, %f592, %f300;
+ mul.f32 %f92, %f591, %f300;
+ ld.global.u32 %r309, [imageEnabled];
+ and.b32 %r227, %r309, 1;
+ setp.eq.b32 %p43, %r227, 1;
+ @!%p43 bra BB0_95;
+ bra.uni BB0_61;
+
+BB0_61:
+ mov.f32 %f303, 0f3E666666;
+ cvt.rzi.f32.f32 %f304, %f303;
+ fma.rn.f32 %f305, %f304, 0fC0000000, 0f3EE66666;
+ abs.f32 %f93, %f305;
+ abs.f32 %f94, %f90;
+ setp.lt.f32 %p44, %f94, 0f00800000;
+ mul.f32 %f306, %f94, 0f4B800000;
+ selp.f32 %f307, 0fC3170000, 0fC2FE0000, %p44;
+ selp.f32 %f308, %f306, %f94, %p44;
+ mov.b32 %r228, %f308;
+ and.b32 %r229, %r228, 8388607;
+ or.b32 %r230, %r229, 1065353216;
+ mov.b32 %f309, %r230;
+ shr.u32 %r231, %r228, 23;
+ cvt.rn.f32.u32 %f310, %r231;
+ add.f32 %f311, %f307, %f310;
+ setp.gt.f32 %p45, %f309, 0f3FB504F3;
+ mul.f32 %f312, %f309, 0f3F000000;
+ add.f32 %f313, %f311, 0f3F800000;
+ selp.f32 %f314, %f312, %f309, %p45;
+ selp.f32 %f315, %f313, %f311, %p45;
+ add.f32 %f316, %f314, 0fBF800000;
+ add.f32 %f302, %f314, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f301,%f302;
+ // inline asm
+ add.f32 %f317, %f316, %f316;
+ mul.f32 %f318, %f301, %f317;
+ mul.f32 %f319, %f318, %f318;
+ mov.f32 %f320, 0f3C4CAF63;
+ mov.f32 %f321, 0f3B18F0FE;
+ fma.rn.f32 %f322, %f321, %f319, %f320;
+ mov.f32 %f323, 0f3DAAAABD;
+ fma.rn.f32 %f324, %f322, %f319, %f323;
+ mul.rn.f32 %f325, %f324, %f319;
+ mul.rn.f32 %f326, %f325, %f318;
+ sub.f32 %f327, %f316, %f318;
+ neg.f32 %f328, %f318;
+ add.f32 %f329, %f327, %f327;
+ fma.rn.f32 %f330, %f328, %f316, %f329;
+ mul.rn.f32 %f331, %f301, %f330;
+ add.f32 %f332, %f326, %f318;
+ sub.f32 %f333, %f318, %f332;
+ add.f32 %f334, %f326, %f333;
+ add.f32 %f335, %f331, %f334;
+ add.f32 %f336, %f332, %f335;
+ sub.f32 %f337, %f332, %f336;
+ add.f32 %f338, %f335, %f337;
+ mov.f32 %f339, 0f3F317200;
+ mul.rn.f32 %f340, %f315, %f339;
+ mov.f32 %f341, 0f35BFBE8E;
+ mul.rn.f32 %f342, %f315, %f341;
+ add.f32 %f343, %f340, %f336;
+ sub.f32 %f344, %f340, %f343;
+ add.f32 %f345, %f336, %f344;
+ add.f32 %f346, %f338, %f345;
+ add.f32 %f347, %f342, %f346;
+ add.f32 %f348, %f343, %f347;
+ sub.f32 %f349, %f343, %f348;
+ add.f32 %f350, %f347, %f349;
+ mov.f32 %f351, 0f3EE66666;
+ mul.rn.f32 %f352, %f351, %f348;
+ neg.f32 %f353, %f352;
+ fma.rn.f32 %f354, %f351, %f348, %f353;
+ fma.rn.f32 %f355, %f351, %f350, %f354;
+ mov.f32 %f356, 0f00000000;
+ fma.rn.f32 %f357, %f356, %f348, %f355;
+ add.rn.f32 %f358, %f352, %f357;
+ neg.f32 %f359, %f358;
+ add.rn.f32 %f360, %f352, %f359;
+ add.rn.f32 %f361, %f360, %f357;
+ mov.b32 %r232, %f358;
+ setp.eq.s32 %p46, %r232, 1118925336;
+ add.s32 %r233, %r232, -1;
+ mov.b32 %f362, %r233;
+ add.f32 %f363, %f361, 0f37000000;
+ selp.f32 %f364, %f362, %f358, %p46;
+ selp.f32 %f95, %f363, %f361, %p46;
+ mul.f32 %f365, %f364, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f366, %f365;
+ mov.f32 %f367, 0fBF317200;
+ fma.rn.f32 %f368, %f366, %f367, %f364;
+ mov.f32 %f369, 0fB5BFBE8E;
+ fma.rn.f32 %f370, %f366, %f369, %f368;
+ mul.f32 %f371, %f370, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f372, %f371;
+ add.f32 %f373, %f366, 0f00000000;
+ ex2.approx.f32 %f374, %f373;
+ mul.f32 %f375, %f372, %f374;
+ setp.lt.f32 %p47, %f364, 0fC2D20000;
+ selp.f32 %f376, 0f00000000, %f375, %p47;
+ setp.gt.f32 %p48, %f364, 0f42D20000;
+ selp.f32 %f615, 0f7F800000, %f376, %p48;
+ setp.eq.f32 %p49, %f615, 0f7F800000;
+ @%p49 bra BB0_63;
+
+ fma.rn.f32 %f615, %f615, %f95, %f615;
+
+BB0_63:
+ setp.lt.f32 %p50, %f90, 0f00000000;
+ setp.eq.f32 %p51, %f93, 0f3F800000;
+ and.pred %p1, %p50, %p51;
+ mov.b32 %r234, %f615;
+ xor.b32 %r235, %r234, -2147483648;
+ mov.b32 %f377, %r235;
+ selp.f32 %f617, %f377, %f615, %p1;
+ setp.eq.f32 %p52, %f90, 0f00000000;
+ @%p52 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f380, %f90, %f90;
+ selp.f32 %f617, %f380, 0f00000000, %p51;
+ bra.uni BB0_67;
+
+BB0_64:
+ setp.geu.f32 %p53, %f90, 0f00000000;
+ @%p53 bra BB0_67;
+
+ cvt.rzi.f32.f32 %f379, %f351;
+ setp.neu.f32 %p54, %f379, 0f3EE66666;
+ selp.f32 %f617, 0f7FFFFFFF, %f617, %p54;
+
+BB0_67:
+ abs.f32 %f553, %f90;
+ add.f32 %f381, %f553, 0f3EE66666;
+ mov.b32 %r236, %f381;
+ setp.lt.s32 %p56, %r236, 2139095040;
+ @%p56 bra BB0_72;
+
+ abs.f32 %f570, %f90;
+ setp.gtu.f32 %p57, %f570, 0f7F800000;
+ @%p57 bra BB0_71;
+ bra.uni BB0_69;
+
+BB0_71:
+ add.f32 %f617, %f90, 0f3EE66666;
+ bra.uni BB0_72;
+
+BB0_69:
+ abs.f32 %f571, %f90;
+ setp.neu.f32 %p58, %f571, 0f7F800000;
+ @%p58 bra BB0_72;
+
+ selp.f32 %f617, 0fFF800000, 0f7F800000, %p1;
+
+BB0_72:
+ mov.f32 %f561, 0fB5BFBE8E;
+ mov.f32 %f560, 0fBF317200;
+ mov.f32 %f559, 0f00000000;
+ mov.f32 %f558, 0f35BFBE8E;
+ mov.f32 %f557, 0f3F317200;
+ mov.f32 %f556, 0f3DAAAABD;
+ mov.f32 %f555, 0f3C4CAF63;
+ mov.f32 %f554, 0f3B18F0FE;
+ setp.eq.f32 %p59, %f90, 0f3F800000;
+ selp.f32 %f106, 0f3F800000, %f617, %p59;
+ abs.f32 %f107, %f91;
+ setp.lt.f32 %p60, %f107, 0f00800000;
+ mul.f32 %f384, %f107, 0f4B800000;
+ selp.f32 %f385, 0fC3170000, 0fC2FE0000, %p60;
+ selp.f32 %f386, %f384, %f107, %p60;
+ mov.b32 %r237, %f386;
+ and.b32 %r238, %r237, 8388607;
+ or.b32 %r239, %r238, 1065353216;
+ mov.b32 %f387, %r239;
+ shr.u32 %r240, %r237, 23;
+ cvt.rn.f32.u32 %f388, %r240;
+ add.f32 %f389, %f385, %f388;
+ setp.gt.f32 %p61, %f387, 0f3FB504F3;
+ mul.f32 %f390, %f387, 0f3F000000;
+ add.f32 %f391, %f389, 0f3F800000;
+ selp.f32 %f392, %f390, %f387, %p61;
+ selp.f32 %f393, %f391, %f389, %p61;
+ add.f32 %f394, %f392, 0fBF800000;
+ add.f32 %f383, %f392, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f382,%f383;
+ // inline asm
+ add.f32 %f395, %f394, %f394;
+ mul.f32 %f396, %f382, %f395;
+ mul.f32 %f397, %f396, %f396;
+ fma.rn.f32 %f400, %f554, %f397, %f555;
+ fma.rn.f32 %f402, %f400, %f397, %f556;
+ mul.rn.f32 %f403, %f402, %f397;
+ mul.rn.f32 %f404, %f403, %f396;
+ sub.f32 %f405, %f394, %f396;
+ neg.f32 %f406, %f396;
+ add.f32 %f407, %f405, %f405;
+ fma.rn.f32 %f408, %f406, %f394, %f407;
+ mul.rn.f32 %f409, %f382, %f408;
+ add.f32 %f410, %f404, %f396;
+ sub.f32 %f411, %f396, %f410;
+ add.f32 %f412, %f404, %f411;
+ add.f32 %f413, %f409, %f412;
+ add.f32 %f414, %f410, %f413;
+ sub.f32 %f415, %f410, %f414;
+ add.f32 %f416, %f413, %f415;
+ mul.rn.f32 %f418, %f393, %f557;
+ mul.rn.f32 %f420, %f393, %f558;
+ add.f32 %f421, %f418, %f414;
+ sub.f32 %f422, %f418, %f421;
+ add.f32 %f423, %f414, %f422;
+ add.f32 %f424, %f416, %f423;
+ add.f32 %f425, %f420, %f424;
+ add.f32 %f426, %f421, %f425;
+ sub.f32 %f427, %f421, %f426;
+ add.f32 %f428, %f425, %f427;
+ mul.rn.f32 %f430, %f351, %f426;
+ neg.f32 %f431, %f430;
+ fma.rn.f32 %f432, %f351, %f426, %f431;
+ fma.rn.f32 %f433, %f351, %f428, %f432;
+ fma.rn.f32 %f435, %f559, %f426, %f433;
+ add.rn.f32 %f436, %f430, %f435;
+ neg.f32 %f437, %f436;
+ add.rn.f32 %f438, %f430, %f437;
+ add.rn.f32 %f439, %f438, %f435;
+ mov.b32 %r241, %f436;
+ setp.eq.s32 %p62, %r241, 1118925336;
+ add.s32 %r242, %r241, -1;
+ mov.b32 %f440, %r242;
+ add.f32 %f441, %f439, 0f37000000;
+ selp.f32 %f442, %f440, %f436, %p62;
+ selp.f32 %f108, %f441, %f439, %p62;
+ mul.f32 %f443, %f442, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f444, %f443;
+ fma.rn.f32 %f446, %f444, %f560, %f442;
+ fma.rn.f32 %f448, %f444, %f561, %f446;
+ mul.f32 %f449, %f448, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f450, %f449;
+ add.f32 %f451, %f444, 0f00000000;
+ ex2.approx.f32 %f452, %f451;
+ mul.f32 %f453, %f450, %f452;
+ setp.lt.f32 %p63, %f442, 0fC2D20000;
+ selp.f32 %f454, 0f00000000, %f453, %p63;
+ setp.gt.f32 %p64, %f442, 0f42D20000;
+ selp.f32 %f618, 0f7F800000, %f454, %p64;
+ setp.eq.f32 %p65, %f618, 0f7F800000;
+ @%p65 bra BB0_74;
+
+ fma.rn.f32 %f618, %f618, %f108, %f618;
+
+BB0_74:
+ setp.lt.f32 %p66, %f91, 0f00000000;
+ and.pred %p2, %p66, %p51;
+ mov.b32 %r243, %f618;
+ xor.b32 %r244, %r243, -2147483648;
+ mov.b32 %f455, %r244;
+ selp.f32 %f620, %f455, %f618, %p2;
+ setp.eq.f32 %p68, %f91, 0f00000000;
+ @%p68 bra BB0_77;
+ bra.uni BB0_75;
+
+BB0_77:
+ add.f32 %f458, %f91, %f91;
+ selp.f32 %f620, %f458, 0f00000000, %p51;
+ bra.uni BB0_78;
+
+BB0_75:
+ setp.geu.f32 %p69, %f91, 0f00000000;
+ @%p69 bra BB0_78;
+
+ mov.f32 %f577, 0f3EE66666;
+ cvt.rzi.f32.f32 %f457, %f577;
+ setp.neu.f32 %p70, %f457, 0f3EE66666;
+ selp.f32 %f620, 0f7FFFFFFF, %f620, %p70;
+
+BB0_78:
+ abs.f32 %f572, %f91;
+ add.f32 %f459, %f572, 0f3EE66666;
+ mov.b32 %r245, %f459;
+ setp.lt.s32 %p72, %r245, 2139095040;
+ @%p72 bra BB0_83;
+
+ abs.f32 %f575, %f91;
+ setp.gtu.f32 %p73, %f575, 0f7F800000;
+ @%p73 bra BB0_82;
+ bra.uni BB0_80;
+
+BB0_82:
+ add.f32 %f620, %f91, 0f3EE66666;
+ bra.uni BB0_83;
+
+BB0_80:
+ abs.f32 %f576, %f91;
+ setp.neu.f32 %p74, %f576, 0f7F800000;
+ @%p74 bra BB0_83;
+
+ selp.f32 %f620, 0fFF800000, 0f7F800000, %p2;
+
+BB0_83:
+ mov.f32 %f573, 0f3EE66666;
+ mov.f32 %f569, 0fB5BFBE8E;
+ mov.f32 %f568, 0fBF317200;
+ mov.f32 %f567, 0f00000000;
+ mov.f32 %f566, 0f35BFBE8E;
+ mov.f32 %f565, 0f3F317200;
+ mov.f32 %f564, 0f3DAAAABD;
+ mov.f32 %f563, 0f3C4CAF63;
+ mov.f32 %f562, 0f3B18F0FE;
+ setp.eq.f32 %p75, %f91, 0f3F800000;
+ selp.f32 %f119, 0f3F800000, %f620, %p75;
+ abs.f32 %f120, %f92;
+ setp.lt.f32 %p76, %f120, 0f00800000;
+ mul.f32 %f462, %f120, 0f4B800000;
+ selp.f32 %f463, 0fC3170000, 0fC2FE0000, %p76;
+ selp.f32 %f464, %f462, %f120, %p76;
+ mov.b32 %r246, %f464;
+ and.b32 %r247, %r246, 8388607;
+ or.b32 %r248, %r247, 1065353216;
+ mov.b32 %f465, %r248;
+ shr.u32 %r249, %r246, 23;
+ cvt.rn.f32.u32 %f466, %r249;
+ add.f32 %f467, %f463, %f466;
+ setp.gt.f32 %p77, %f465, 0f3FB504F3;
+ mul.f32 %f468, %f465, 0f3F000000;
+ add.f32 %f469, %f467, 0f3F800000;
+ selp.f32 %f470, %f468, %f465, %p77;
+ selp.f32 %f471, %f469, %f467, %p77;
+ add.f32 %f472, %f470, 0fBF800000;
+ add.f32 %f461, %f470, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f460,%f461;
+ // inline asm
+ add.f32 %f473, %f472, %f472;
+ mul.f32 %f474, %f460, %f473;
+ mul.f32 %f475, %f474, %f474;
+ fma.rn.f32 %f478, %f562, %f475, %f563;
+ fma.rn.f32 %f480, %f478, %f475, %f564;
+ mul.rn.f32 %f481, %f480, %f475;
+ mul.rn.f32 %f482, %f481, %f474;
+ sub.f32 %f483, %f472, %f474;
+ neg.f32 %f484, %f474;
+ add.f32 %f485, %f483, %f483;
+ fma.rn.f32 %f486, %f484, %f472, %f485;
+ mul.rn.f32 %f487, %f460, %f486;
+ add.f32 %f488, %f482, %f474;
+ sub.f32 %f489, %f474, %f488;
+ add.f32 %f490, %f482, %f489;
+ add.f32 %f491, %f487, %f490;
+ add.f32 %f492, %f488, %f491;
+ sub.f32 %f493, %f488, %f492;
+ add.f32 %f494, %f491, %f493;
+ mul.rn.f32 %f496, %f471, %f565;
+ mul.rn.f32 %f498, %f471, %f566;
+ add.f32 %f499, %f496, %f492;
+ sub.f32 %f500, %f496, %f499;
+ add.f32 %f501, %f492, %f500;
+ add.f32 %f502, %f494, %f501;
+ add.f32 %f503, %f498, %f502;
+ add.f32 %f504, %f499, %f503;
+ sub.f32 %f505, %f499, %f504;
+ add.f32 %f506, %f503, %f505;
+ mul.rn.f32 %f508, %f573, %f504;
+ neg.f32 %f509, %f508;
+ fma.rn.f32 %f510, %f573, %f504, %f509;
+ fma.rn.f32 %f511, %f573, %f506, %f510;
+ fma.rn.f32 %f513, %f567, %f504, %f511;
+ add.rn.f32 %f514, %f508, %f513;
+ neg.f32 %f515, %f514;
+ add.rn.f32 %f516, %f508, %f515;
+ add.rn.f32 %f517, %f516, %f513;
+ mov.b32 %r250, %f514;
+ setp.eq.s32 %p78, %r250, 1118925336;
+ add.s32 %r251, %r250, -1;
+ mov.b32 %f518, %r251;
+ add.f32 %f519, %f517, 0f37000000;
+ selp.f32 %f520, %f518, %f514, %p78;
+ selp.f32 %f121, %f519, %f517, %p78;
+ mul.f32 %f521, %f520, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f522, %f521;
+ fma.rn.f32 %f524, %f522, %f568, %f520;
+ fma.rn.f32 %f526, %f522, %f569, %f524;
+ mul.f32 %f527, %f526, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f528, %f527;
+ add.f32 %f529, %f522, 0f00000000;
+ ex2.approx.f32 %f530, %f529;
+ mul.f32 %f531, %f528, %f530;
+ setp.lt.f32 %p79, %f520, 0fC2D20000;
+ selp.f32 %f532, 0f00000000, %f531, %p79;
+ setp.gt.f32 %p80, %f520, 0f42D20000;
+ selp.f32 %f621, 0f7F800000, %f532, %p80;
+ setp.eq.f32 %p81, %f621, 0f7F800000;
+ @%p81 bra BB0_85;
+
+ fma.rn.f32 %f621, %f621, %f121, %f621;
+
+BB0_85:
+ setp.lt.f32 %p82, %f92, 0f00000000;
+ and.pred %p3, %p82, %p51;
+ mov.b32 %r252, %f621;
+ xor.b32 %r253, %r252, -2147483648;
+ mov.b32 %f533, %r253;
+ selp.f32 %f623, %f533, %f621, %p3;
+ setp.eq.f32 %p84, %f92, 0f00000000;
+ @%p84 bra BB0_88;
+ bra.uni BB0_86;
+
+BB0_88:
+ add.f32 %f536, %f92, %f92;
+ selp.f32 %f623, %f536, 0f00000000, %p51;
+ bra.uni BB0_89;
+
+BB0_86:
+ setp.geu.f32 %p85, %f92, 0f00000000;
+ @%p85 bra BB0_89;
+
+ mov.f32 %f574, 0f3EE66666;
+ cvt.rzi.f32.f32 %f535, %f574;
+ setp.neu.f32 %p86, %f535, 0f3EE66666;
+ selp.f32 %f623, 0f7FFFFFFF, %f623, %p86;
+
+BB0_89:
+ abs.f32 %f579, %f92;
+ add.f32 %f537, %f579, 0f3EE66666;
+ mov.b32 %r254, %f537;
+ setp.lt.s32 %p88, %r254, 2139095040;
+ @%p88 bra BB0_94;
+
+ abs.f32 %f580, %f92;
+ setp.gtu.f32 %p89, %f580, 0f7F800000;
+ @%p89 bra BB0_93;
+ bra.uni BB0_91;
+
+BB0_93:
+ add.f32 %f623, %f92, 0f3EE66666;
+ bra.uni BB0_94;
+
+BB0_91:
+ abs.f32 %f581, %f92;
+ setp.neu.f32 %p90, %f581, 0f7F800000;
+ @%p90 bra BB0_94;
+
+ selp.f32 %f623, 0fFF800000, 0f7F800000, %p3;
+
+BB0_94:
+ mov.u32 %r276, 4;
+ mov.u64 %rd98, 0;
+ mov.u32 %r275, 2;
+ setp.eq.f32 %p91, %f92, 0f3F800000;
+ selp.f32 %f538, 0f3F800000, %f623, %p91;
+ cvt.u64.u32 %rd66, %r3;
+ cvt.u64.u32 %rd65, %r2;
+ mov.u64 %rd69, image;
+ cvta.global.u64 %rd64, %rd69;
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd64, %r275, %r276, %rd65, %rd66, %rd98, %rd98);
+ // inline asm
+ cvt.sat.f32.f32 %f539, %f538;
+ mul.f32 %f540, %f539, 0f437FFD71;
+ cvt.rzi.u32.f32 %r257, %f540;
+ cvt.sat.f32.f32 %f541, %f119;
+ mul.f32 %f542, %f541, 0f437FFD71;
+ cvt.rzi.u32.f32 %r258, %f542;
+ cvt.sat.f32.f32 %f543, %f106;
+ mul.f32 %f544, %f543, 0f437FFD71;
+ cvt.rzi.u32.f32 %r259, %f544;
+ cvt.u16.u32 %rs9, %r257;
+ cvt.u16.u32 %rs10, %r259;
+ cvt.u16.u32 %rs11, %r258;
+ mov.u16 %rs12, 255;
+ st.v4.u8 [%rd63], {%rs9, %rs11, %rs10, %rs12};
+ ld.global.u32 %r309, [imageEnabled];
+
+BB0_95:
+ and.b32 %r260, %r309, 4;
+ setp.eq.s32 %p92, %r260, 0;
+ @%p92 bra BB0_101;
+
+ mov.u64 %rd99, 0;
+ mov.u32 %r277, 2;
+ ld.global.v2.u32 {%r265, %r266}, [pixelID];
+ cvt.u64.u32 %rd72, %r265;
+ cvt.u64.u32 %rd73, %r266;
+ mov.u64 %rd82, lightmapDirect;
+ cvta.global.u64 %rd71, %rd82;
+ mov.u32 %r264, 8;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd71, %r277, %r264, %rd72, %rd73, %rd99, %rd99);
+ // inline asm
+ ld.v4.u16 {%rs20, %rs21, %rs22, %rs23}, [%rd70];
+ // inline asm
+ { cvt.f32.f16 %f545, %rs20;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f546, %rs21;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f547, %rs22;}
+
+ // inline asm
+ add.f32 %f548, %f90, %f545;
+ add.f32 %f549, %f91, %f546;
+ add.f32 %f550, %f92, %f547;
+ cvt.u64.u32 %rd79, %r3;
+ cvt.u64.u32 %rd78, %r2;
+ mov.u64 %rd83, image_HDR;
+ cvta.global.u64 %rd77, %rd83;
+ // inline asm
+ call (%rd76), _rt_buffer_get_64, (%rd77, %r277, %r264, %rd78, %rd79, %rd99, %rd99);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs18, %f550;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs17, %f549;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs16, %f548;}
+
+ // inline asm
+ mov.f32 %f551, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs19, %f551;}
+
+ // inline asm
+ st.v4.u16 [%rd76], {%rs16, %rs17, %rs18, %rs19};
+
+BB0_101:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSS.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSS.ptx.meta
new file mode 100644
index 00000000..7701735d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSS.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9b58495c943aa124c8c545944e2d8fa3
+timeCreated: 1540291414
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSSSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSSSH.ptx
new file mode 100644
index 00000000..dab0eee6
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSSSH.ptx
@@ -0,0 +1,1967 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 8 .b8 texCoords[8];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 1 .b8 lightmapDirect[1];
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<104>;
+ .reg .b16 %rs<139>;
+ .reg .f32 %f<793>;
+ .reg .b32 %r<383>;
+ .reg .b64 %rd<285>;
+
+
+ mov.u64 %rd284, __local_depot0;
+ cvta.local.u64 %SP, %rd284;
+ ld.global.v2.u32 {%r97, %r98}, [pixelID];
+ cvt.u64.u32 %rd22, %r97;
+ cvt.u64.u32 %rd23, %r98;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r95, 2;
+ mov.u32 %r96, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r95, %r96, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r1, [%rd20];
+ shr.u32 %r101, %r1, 16;
+ cvt.u16.u32 %rs1, %r101;
+ and.b16 %rs6, %rs1, 255;
+ cvt.u16.u32 %rs7, %r1;
+ or.b16 %rs8, %rs7, %rs6;
+ setp.eq.s16 %p4, %rs8, 0;
+ mov.f32 %f736, 0f00000000;
+ mov.f32 %f737, %f736;
+ mov.f32 %f738, %f736;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs9, [%rd20+1];
+ and.b16 %rs11, %rs7, 255;
+ cvt.rn.f32.u16 %f167, %rs11;
+ div.rn.f32 %f168, %f167, 0f437F0000;
+ fma.rn.f32 %f169, %f168, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f170, %rs9;
+ div.rn.f32 %f171, %f170, 0f437F0000;
+ fma.rn.f32 %f172, %f171, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f173, %rs6;
+ div.rn.f32 %f174, %f173, 0f437F0000;
+ fma.rn.f32 %f175, %f174, 0f40000000, 0fBF800000;
+ mul.f32 %f176, %f172, %f172;
+ fma.rn.f32 %f177, %f169, %f169, %f176;
+ fma.rn.f32 %f178, %f175, %f175, %f177;
+ sqrt.rn.f32 %f179, %f178;
+ rcp.rn.f32 %f180, %f179;
+ mul.f32 %f736, %f169, %f180;
+ mul.f32 %f737, %f172, %f180;
+ mul.f32 %f738, %f175, %f180;
+
+BB0_2:
+ ld.global.v2.u32 {%r102, %r103}, [pixelID];
+ ld.global.v2.u32 {%r105, %r106}, [tileInfo];
+ add.s32 %r2, %r102, %r105;
+ add.s32 %r3, %r103, %r106;
+ setp.eq.f32 %p5, %f737, 0f00000000;
+ setp.eq.f32 %p6, %f736, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f738, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_109;
+ bra.uni BB0_3;
+
+BB0_109:
+ ld.global.u32 %r382, [imageEnabled];
+ and.b32 %r297, %r382, 1;
+ setp.eq.b32 %p97, %r297, 1;
+ @!%p97 bra BB0_111;
+ bra.uni BB0_110;
+
+BB0_110:
+ cvt.u64.u32 %rd170, %r2;
+ cvt.u64.u32 %rd171, %r3;
+ mov.u64 %rd174, image;
+ cvta.global.u64 %rd169, %rd174;
+ mov.u64 %rd173, 0;
+ // inline asm
+ call (%rd168), _rt_buffer_get_64, (%rd169, %r95, %r96, %rd170, %rd171, %rd173, %rd173);
+ // inline asm
+ mov.u16 %rs84, 0;
+ st.v4.u8 [%rd168], {%rs84, %rs84, %rs84, %rs84};
+ ld.global.u32 %r382, [imageEnabled];
+
+BB0_111:
+ and.b32 %r300, %r382, 4;
+ setp.eq.s32 %p98, %r300, 0;
+ @%p98 bra BB0_113;
+
+ cvt.u64.u32 %rd178, %r3;
+ cvt.u64.u32 %rd177, %r2;
+ mov.u64 %rd181, image_HDR;
+ cvta.global.u64 %rd176, %rd181;
+ mov.u32 %r302, 8;
+ mov.u64 %rd180, 0;
+ // inline asm
+ call (%rd175), _rt_buffer_get_64, (%rd176, %r95, %r302, %rd177, %rd178, %rd180, %rd180);
+ // inline asm
+ mov.f32 %f649, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f649;}
+
+ // inline asm
+ mov.u16 %rs86, 0;
+ st.v4.u16 [%rd175], {%rs85, %rs85, %rs85, %rs86};
+
+BB0_113:
+ cvt.u64.u32 %rd18, %r2;
+ cvt.u64.u32 %rd19, %r3;
+ ld.global.u32 %r303, [additive];
+ setp.eq.s32 %p99, %r303, 0;
+ @%p99 bra BB0_115;
+
+ mov.u64 %rd194, image_RNM0;
+ cvta.global.u64 %rd183, %rd194;
+ mov.u32 %r307, 8;
+ mov.u64 %rd193, 0;
+ // inline asm
+ call (%rd182), _rt_buffer_get_64, (%rd183, %r95, %r307, %rd18, %rd19, %rd193, %rd193);
+ // inline asm
+ ld.v4.u16 {%rs93, %rs94, %rs95, %rs96}, [%rd182];
+ // inline asm
+ { cvt.f32.f16 %f650, %rs93;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f651, %rs94;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f652, %rs95;}
+
+ // inline asm
+ // inline asm
+ call (%rd188), _rt_buffer_get_64, (%rd183, %r95, %r307, %rd18, %rd19, %rd193, %rd193);
+ // inline asm
+ add.f32 %f653, %f650, 0f00000000;
+ add.f32 %f654, %f651, 0f00000000;
+ add.f32 %f655, %f652, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f655;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f654;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f653;}
+
+ // inline asm
+ mov.u16 %rs97, 0;
+ st.v4.u16 [%rd188], {%rs90, %rs91, %rs92, %rs97};
+ bra.uni BB0_116;
+
+BB0_3:
+ ld.global.v2.u32 {%r115, %r116}, [pixelID];
+ cvt.u64.u32 %rd29, %r115;
+ cvt.u64.u32 %rd30, %r116;
+ mov.u64 %rd34, uvpos;
+ cvta.global.u64 %rd28, %rd34;
+ mov.u32 %r114, 12;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r95, %r114, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f189, [%rd27+8];
+ ld.f32 %f190, [%rd27+4];
+ ld.f32 %f191, [%rd27];
+ mul.f32 %f192, %f191, 0f3456BF95;
+ mul.f32 %f193, %f190, 0f3456BF95;
+ mul.f32 %f194, %f189, 0f3456BF95;
+ abs.f32 %f195, %f736;
+ div.rn.f32 %f196, %f192, %f195;
+ abs.f32 %f197, %f737;
+ div.rn.f32 %f198, %f193, %f197;
+ abs.f32 %f199, %f738;
+ div.rn.f32 %f200, %f194, %f199;
+ abs.f32 %f201, %f196;
+ abs.f32 %f202, %f198;
+ abs.f32 %f203, %f200;
+ mov.f32 %f204, 0f38D1B717;
+ max.f32 %f205, %f201, %f204;
+ max.f32 %f206, %f202, %f204;
+ max.f32 %f207, %f203, %f204;
+ fma.rn.f32 %f739, %f736, %f205, %f191;
+ fma.rn.f32 %f740, %f737, %f206, %f190;
+ fma.rn.f32 %f741, %f738, %f207, %f189;
+ add.u64 %rd33, %SP, 0;
+ cvta.to.local.u64 %rd35, %rd33;
+ mov.u32 %r113, 0;
+ st.local.u32 [%rd35+8], %r113;
+ st.local.u32 [%rd35+4], %r113;
+ st.local.u32 [%rd35], %r113;
+ ld.global.u32 %r112, [root];
+ neg.f32 %f186, %f738;
+ neg.f32 %f185, %f737;
+ neg.f32 %f184, %f736;
+ mov.f32 %f748, 0f00000000;
+ mov.f32 %f188, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r112, %f739, %f740, %f741, %f184, %f185, %f186, %r113, %f748, %f188, %rd33, %r114);
+ // inline asm
+ ld.local.f32 %f13, [%rd35];
+ abs.f32 %f14, %f184;
+ abs.f32 %f15, %f186;
+ setp.geu.f32 %p10, %f13, 0f00000000;
+ @%p10 bra BB0_5;
+
+ neg.f32 %f687, %f738;
+ neg.f32 %f686, %f736;
+ neg.f32 %f685, %f737;
+ fma.rn.f32 %f208, %f736, %f13, %f739;
+ fma.rn.f32 %f209, %f737, %f13, %f740;
+ fma.rn.f32 %f210, %f738, %f13, %f741;
+ mul.f32 %f211, %f208, 0f3456BF95;
+ mul.f32 %f212, %f209, 0f3456BF95;
+ mul.f32 %f213, %f210, 0f3456BF95;
+ div.rn.f32 %f214, %f211, %f14;
+ abs.f32 %f215, %f685;
+ div.rn.f32 %f216, %f212, %f215;
+ div.rn.f32 %f217, %f213, %f15;
+ abs.f32 %f218, %f214;
+ abs.f32 %f219, %f216;
+ abs.f32 %f220, %f217;
+ max.f32 %f222, %f218, %f204;
+ max.f32 %f223, %f219, %f204;
+ max.f32 %f224, %f220, %f204;
+ fma.rn.f32 %f739, %f222, %f686, %f208;
+ fma.rn.f32 %f740, %f223, %f685, %f209;
+ fma.rn.f32 %f741, %f224, %f687, %f210;
+
+BB0_5:
+ mov.u64 %rd279, 0;
+ mov.u32 %r343, 4;
+ neg.f32 %f681, %f736;
+ neg.f32 %f680, %f737;
+ mov.u32 %r342, 2;
+ setp.gt.f32 %p11, %f14, %f15;
+ selp.f32 %f231, %f737, 0f00000000, %p11;
+ selp.f32 %f232, %f681, %f738, %p11;
+ selp.f32 %f233, 0f00000000, %f680, %p11;
+ mul.f32 %f234, %f232, %f232;
+ fma.rn.f32 %f235, %f231, %f231, %f234;
+ fma.rn.f32 %f236, %f233, %f233, %f235;
+ sqrt.rn.f32 %f237, %f236;
+ rcp.rn.f32 %f238, %f237;
+ mul.f32 %f22, %f231, %f238;
+ mul.f32 %f23, %f232, %f238;
+ mul.f32 %f24, %f233, %f238;
+ ld.global.v2.u32 {%r121, %r122}, [pixelID];
+ cvt.u64.u32 %rd38, %r121;
+ cvt.u64.u32 %rd39, %r122;
+ mov.u64 %rd42, rnd_seeds;
+ cvta.global.u64 %rd37, %rd42;
+ // inline asm
+ call (%rd36), _rt_buffer_get_64, (%rd37, %r342, %r343, %rd38, %rd39, %rd279, %rd279);
+ // inline asm
+ ld.global.u32 %r353, [samples];
+ setp.lt.s32 %p12, %r353, 1;
+ @%p12 bra BB0_6;
+
+ mov.u32 %r354, 0;
+ neg.f32 %f684, %f738;
+ neg.f32 %f683, %f736;
+ neg.f32 %f682, %f737;
+ cvt.rn.f32.s32 %f245, %r353;
+ rcp.rn.f32 %f25, %f245;
+ ld.u32 %r379, [%rd36];
+ mul.f32 %f26, %f739, 0f3456BF95;
+ mul.f32 %f27, %f740, 0f3456BF95;
+ mul.f32 %f28, %f741, 0f3456BF95;
+ mul.f32 %f246, %f23, %f683;
+ mul.f32 %f247, %f22, %f682;
+ sub.f32 %f29, %f247, %f246;
+ mul.f32 %f248, %f22, %f684;
+ mul.f32 %f249, %f24, %f683;
+ sub.f32 %f30, %f249, %f248;
+ mul.f32 %f250, %f24, %f682;
+ mul.f32 %f251, %f23, %f684;
+ sub.f32 %f31, %f251, %f250;
+ mov.f32 %f748, 0f00000000;
+ abs.f32 %f252, %f27;
+ abs.f32 %f253, %f26;
+ max.f32 %f254, %f253, %f252;
+ abs.f32 %f255, %f28;
+ max.f32 %f256, %f254, %f255;
+ mov.f32 %f749, %f748;
+ mov.f32 %f750, %f748;
+ mov.f32 %f751, %f748;
+ mov.f32 %f752, %f748;
+ mov.f32 %f753, %f748;
+
+BB0_8:
+ setp.lt.s32 %p13, %r353, 1;
+ @%p13 bra BB0_59;
+
+ mov.u32 %r356, 0;
+
+BB0_10:
+ cvt.rn.f32.s32 %f678, %r354;
+ mad.lo.s32 %r127, %r379, 1664525, 1013904223;
+ and.b32 %r128, %r127, 16777215;
+ cvt.rn.f32.u32 %f258, %r128;
+ fma.rn.f32 %f259, %f258, 0f33800000, %f678;
+ mul.f32 %f46, %f25, %f259;
+ mad.lo.s32 %r11, %r127, 1664525, 1013904223;
+ and.b32 %r129, %r11, 16777215;
+ cvt.rn.f32.u32 %f260, %r129;
+ cvt.rn.f32.s32 %f261, %r356;
+ fma.rn.f32 %f262, %f260, 0f33800000, %f261;
+ mul.f32 %f263, %f25, %f262;
+ mul.f32 %f264, %f46, %f46;
+ mov.f32 %f265, 0f3F800000;
+ sub.f32 %f266, %f265, %f264;
+ mov.f32 %f267, 0f00000000;
+ max.f32 %f268, %f267, %f266;
+ sqrt.rn.f32 %f47, %f268;
+ mul.f32 %f760, %f263, 0f40C90FDB;
+ abs.f32 %f49, %f760;
+ setp.neu.f32 %p14, %f49, 0f7F800000;
+ mov.f32 %f754, %f760;
+ @%p14 bra BB0_12;
+
+ mov.f32 %f695, 0f00000000;
+ mul.rn.f32 %f754, %f760, %f695;
+
+BB0_12:
+ mul.f32 %f270, %f754, 0f3F22F983;
+ cvt.rni.s32.f32 %r367, %f270;
+ cvt.rn.f32.s32 %f271, %r367;
+ neg.f32 %f272, %f271;
+ mov.f32 %f273, 0f3FC90FDA;
+ fma.rn.f32 %f274, %f272, %f273, %f754;
+ mov.f32 %f275, 0f33A22168;
+ fma.rn.f32 %f276, %f272, %f275, %f274;
+ mov.f32 %f277, 0f27C234C5;
+ fma.rn.f32 %f755, %f272, %f277, %f276;
+ abs.f32 %f278, %f754;
+ setp.leu.f32 %p15, %f278, 0f47CE4780;
+ @%p15 bra BB0_23;
+
+ add.u64 %rd44, %SP, 12;
+ cvta.to.local.u64 %rd280, %rd44;
+ mov.b32 %r13, %f754;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r132, %r13, 8;
+ or.b32 %r15, %r132, -2147483648;
+ mov.u32 %r358, 0;
+ mov.u64 %rd281, 0;
+ mov.u32 %r359, %r358;
+
+BB0_14:
+ .pragma "nounroll";
+ add.u64 %rd264, %SP, 12;
+ cvta.to.local.u64 %rd263, %rd264;
+ shl.b64 %rd45, %rd281, 2;
+ mov.u64 %rd46, __cudart_i2opi_f;
+ add.s64 %rd47, %rd46, %rd45;
+ ld.const.u32 %r135, [%rd47];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r133, %r135, %r15, %r359;
+ madc.hi.u32 %r359, %r135, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd280], %r133;
+ add.s32 %r358, %r358, 1;
+ cvt.s64.s32 %rd281, %r358;
+ mul.wide.s32 %rd50, %r358, 4;
+ add.s64 %rd280, %rd263, %rd50;
+ setp.ne.s32 %p16, %r358, 6;
+ @%p16 bra BB0_14;
+
+ add.u64 %rd262, %SP, 12;
+ and.b32 %r138, %r14, 255;
+ add.s32 %r139, %r138, -128;
+ shr.u32 %r140, %r139, 5;
+ cvta.to.local.u64 %rd52, %rd262;
+ st.local.u32 [%rd52+24], %r359;
+ mov.u32 %r141, 6;
+ sub.s32 %r142, %r141, %r140;
+ mul.wide.s32 %rd53, %r142, 4;
+ add.s64 %rd8, %rd52, %rd53;
+ ld.local.u32 %r360, [%rd8];
+ ld.local.u32 %r361, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p17, %r23, 0;
+ @%p17 bra BB0_17;
+
+ mov.u32 %r143, 32;
+ sub.s32 %r144, %r143, %r23;
+ shr.u32 %r145, %r361, %r144;
+ shl.b32 %r146, %r360, %r23;
+ add.s32 %r360, %r145, %r146;
+ ld.local.u32 %r147, [%rd8+-8];
+ shr.u32 %r148, %r147, %r144;
+ shl.b32 %r149, %r361, %r23;
+ add.s32 %r361, %r148, %r149;
+
+BB0_17:
+ mov.b32 %r346, %f754;
+ and.b32 %r363, %r346, -2147483648;
+ shr.u32 %r150, %r361, 30;
+ shl.b32 %r151, %r360, 2;
+ add.s32 %r362, %r150, %r151;
+ shl.b32 %r29, %r361, 2;
+ shr.u32 %r152, %r362, 31;
+ shr.u32 %r153, %r360, 30;
+ add.s32 %r30, %r152, %r153;
+ setp.eq.s32 %p18, %r152, 0;
+ @%p18 bra BB0_18;
+ bra.uni BB0_19;
+
+BB0_18:
+ mov.u32 %r364, %r29;
+ bra.uni BB0_20;
+
+BB0_19:
+ mov.b32 %r348, %f754;
+ and.b32 %r347, %r348, -2147483648;
+ not.b32 %r154, %r362;
+ neg.s32 %r364, %r29;
+ setp.eq.s32 %p19, %r29, 0;
+ selp.u32 %r155, 1, 0, %p19;
+ add.s32 %r362, %r155, %r154;
+ xor.b32 %r363, %r347, -2147483648;
+
+BB0_20:
+ mov.b32 %r350, %f754;
+ and.b32 %r349, %r350, -2147483648;
+ clz.b32 %r366, %r362;
+ setp.eq.s32 %p20, %r366, 0;
+ shl.b32 %r156, %r362, %r366;
+ mov.u32 %r157, 32;
+ sub.s32 %r158, %r157, %r366;
+ shr.u32 %r159, %r364, %r158;
+ add.s32 %r160, %r159, %r156;
+ selp.b32 %r38, %r362, %r160, %p20;
+ mov.u32 %r161, -921707870;
+ mul.hi.u32 %r365, %r38, %r161;
+ setp.eq.s32 %p21, %r349, 0;
+ neg.s32 %r162, %r30;
+ selp.b32 %r367, %r30, %r162, %p21;
+ setp.lt.s32 %p22, %r365, 1;
+ @%p22 bra BB0_22;
+
+ mul.lo.s32 %r163, %r38, -921707870;
+ shr.u32 %r164, %r163, 31;
+ shl.b32 %r165, %r365, 1;
+ add.s32 %r365, %r164, %r165;
+ add.s32 %r366, %r366, 1;
+
+BB0_22:
+ mov.u32 %r166, 126;
+ sub.s32 %r167, %r166, %r366;
+ shl.b32 %r168, %r167, 23;
+ add.s32 %r169, %r365, 1;
+ shr.u32 %r170, %r169, 7;
+ add.s32 %r171, %r170, 1;
+ shr.u32 %r172, %r171, 1;
+ add.s32 %r173, %r172, %r168;
+ or.b32 %r174, %r173, %r363;
+ mov.b32 %f755, %r174;
+
+BB0_23:
+ mul.rn.f32 %f55, %f755, %f755;
+ add.s32 %r46, %r367, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p23, %r47, 0;
+ @%p23 bra BB0_25;
+ bra.uni BB0_24;
+
+BB0_25:
+ mov.f32 %f281, 0f3C08839E;
+ mov.f32 %f282, 0fB94CA1F9;
+ fma.rn.f32 %f756, %f282, %f55, %f281;
+ bra.uni BB0_26;
+
+BB0_24:
+ mov.f32 %f279, 0fBAB6061A;
+ mov.f32 %f280, 0f37CCF5CE;
+ fma.rn.f32 %f756, %f280, %f55, %f279;
+
+BB0_26:
+ @%p23 bra BB0_28;
+ bra.uni BB0_27;
+
+BB0_28:
+ mov.f32 %f694, 0f00000000;
+ mov.f32 %f286, 0fBE2AAAA3;
+ fma.rn.f32 %f287, %f756, %f55, %f286;
+ fma.rn.f32 %f757, %f287, %f55, %f694;
+ bra.uni BB0_29;
+
+BB0_27:
+ mov.f32 %f283, 0f3D2AAAA5;
+ fma.rn.f32 %f284, %f756, %f55, %f283;
+ mov.f32 %f285, 0fBF000000;
+ fma.rn.f32 %f757, %f284, %f55, %f285;
+
+BB0_29:
+ fma.rn.f32 %f758, %f757, %f755, %f755;
+ @%p23 bra BB0_31;
+
+ mul.rn.f32 %f700, %f755, %f755;
+ mov.f32 %f688, 0f3F800000;
+ fma.rn.f32 %f758, %f757, %f700, %f688;
+
+BB0_31:
+ and.b32 %r175, %r46, 2;
+ setp.eq.s32 %p26, %r175, 0;
+ @%p26 bra BB0_33;
+
+ mov.f32 %f689, 0f00000000;
+ mov.f32 %f291, 0fBF800000;
+ fma.rn.f32 %f758, %f758, %f291, %f689;
+
+BB0_33:
+ abs.f32 %f699, %f760;
+ setp.neu.f32 %p103, %f699, 0f7F800000;
+ @%p103 bra BB0_35;
+
+ mov.f32 %f693, 0f00000000;
+ mul.rn.f32 %f760, %f760, %f693;
+
+BB0_35:
+ mov.f32 %f698, 0f27C234C5;
+ mov.f32 %f697, 0f33A22168;
+ mov.f32 %f696, 0f3FC90FDA;
+ mul.f32 %f293, %f760, 0f3F22F983;
+ cvt.rni.s32.f32 %r377, %f293;
+ cvt.rn.f32.s32 %f294, %r377;
+ neg.f32 %f295, %f294;
+ fma.rn.f32 %f297, %f295, %f696, %f760;
+ fma.rn.f32 %f299, %f295, %f697, %f297;
+ fma.rn.f32 %f761, %f295, %f698, %f299;
+ abs.f32 %f301, %f760;
+ setp.leu.f32 %p28, %f301, 0f47CE4780;
+ @%p28 bra BB0_46;
+
+ mov.u64 %rd283, 0;
+ add.u64 %rd55, %SP, 12;
+ cvta.to.local.u64 %rd282, %rd55;
+ mov.b32 %r49, %f760;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r178, %r49, 8;
+ or.b32 %r51, %r178, -2147483648;
+ mov.u32 %r368, 0;
+ mov.u32 %r369, %r368;
+
+BB0_37:
+ .pragma "nounroll";
+ add.u64 %rd267, %SP, 12;
+ cvta.to.local.u64 %rd266, %rd267;
+ shl.b64 %rd56, %rd283, 2;
+ mov.u64 %rd57, __cudart_i2opi_f;
+ add.s64 %rd58, %rd57, %rd56;
+ ld.const.u32 %r181, [%rd58];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r179, %r181, %r51, %r369;
+ madc.hi.u32 %r369, %r181, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd282], %r179;
+ add.s32 %r368, %r368, 1;
+ cvt.s64.s32 %rd283, %r368;
+ mul.wide.s32 %rd59, %r368, 4;
+ add.s64 %rd282, %rd266, %rd59;
+ setp.ne.s32 %p29, %r368, 6;
+ @%p29 bra BB0_37;
+
+ add.u64 %rd265, %SP, 12;
+ and.b32 %r184, %r50, 255;
+ add.s32 %r185, %r184, -128;
+ shr.u32 %r186, %r185, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd61, %rd265;
+ st.local.u32 [%rd61+24], %r369;
+ mov.u32 %r187, 6;
+ sub.s32 %r188, %r187, %r186;
+ mul.wide.s32 %rd62, %r188, 4;
+ add.s64 %rd15, %rd61, %rd62;
+ ld.local.u32 %r370, [%rd15];
+ ld.local.u32 %r371, [%rd15+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p30, %r59, 0;
+ @%p30 bra BB0_40;
+
+ mov.u32 %r189, 32;
+ sub.s32 %r190, %r189, %r59;
+ shr.u32 %r191, %r371, %r190;
+ shl.b32 %r192, %r370, %r59;
+ add.s32 %r370, %r191, %r192;
+ ld.local.u32 %r193, [%rd15+-8];
+ shr.u32 %r194, %r193, %r190;
+ shl.b32 %r195, %r371, %r59;
+ add.s32 %r371, %r194, %r195;
+
+BB0_40:
+ shr.u32 %r196, %r371, 30;
+ shl.b32 %r197, %r370, 2;
+ add.s32 %r372, %r196, %r197;
+ shl.b32 %r65, %r371, 2;
+ shr.u32 %r198, %r372, 31;
+ shr.u32 %r199, %r370, 30;
+ add.s32 %r66, %r198, %r199;
+ setp.eq.s32 %p31, %r198, 0;
+ @%p31 bra BB0_41;
+ bra.uni BB0_42;
+
+BB0_41:
+ mov.u32 %r373, %r56;
+ mov.u32 %r374, %r65;
+ bra.uni BB0_43;
+
+BB0_42:
+ not.b32 %r200, %r372;
+ neg.s32 %r374, %r65;
+ setp.eq.s32 %p32, %r65, 0;
+ selp.u32 %r201, 1, 0, %p32;
+ add.s32 %r372, %r201, %r200;
+ xor.b32 %r373, %r56, -2147483648;
+
+BB0_43:
+ clz.b32 %r376, %r372;
+ setp.eq.s32 %p33, %r376, 0;
+ shl.b32 %r202, %r372, %r376;
+ mov.u32 %r203, 32;
+ sub.s32 %r204, %r203, %r376;
+ shr.u32 %r205, %r374, %r204;
+ add.s32 %r206, %r205, %r202;
+ selp.b32 %r74, %r372, %r206, %p33;
+ mov.u32 %r207, -921707870;
+ mul.hi.u32 %r375, %r74, %r207;
+ setp.eq.s32 %p34, %r56, 0;
+ neg.s32 %r208, %r66;
+ selp.b32 %r377, %r66, %r208, %p34;
+ setp.lt.s32 %p35, %r375, 1;
+ @%p35 bra BB0_45;
+
+ mul.lo.s32 %r209, %r74, -921707870;
+ shr.u32 %r210, %r209, 31;
+ shl.b32 %r211, %r375, 1;
+ add.s32 %r375, %r210, %r211;
+ add.s32 %r376, %r376, 1;
+
+BB0_45:
+ mov.u32 %r212, 126;
+ sub.s32 %r213, %r212, %r376;
+ shl.b32 %r214, %r213, 23;
+ add.s32 %r215, %r375, 1;
+ shr.u32 %r216, %r215, 7;
+ add.s32 %r217, %r216, 1;
+ shr.u32 %r218, %r217, 1;
+ add.s32 %r219, %r218, %r214;
+ or.b32 %r220, %r219, %r373;
+ mov.b32 %f761, %r220;
+
+BB0_46:
+ mul.rn.f32 %f72, %f761, %f761;
+ and.b32 %r82, %r377, 1;
+ setp.eq.s32 %p36, %r82, 0;
+ @%p36 bra BB0_48;
+ bra.uni BB0_47;
+
+BB0_48:
+ mov.f32 %f304, 0f3C08839E;
+ mov.f32 %f305, 0fB94CA1F9;
+ fma.rn.f32 %f762, %f305, %f72, %f304;
+ bra.uni BB0_49;
+
+BB0_47:
+ mov.f32 %f302, 0fBAB6061A;
+ mov.f32 %f303, 0f37CCF5CE;
+ fma.rn.f32 %f762, %f303, %f72, %f302;
+
+BB0_49:
+ @%p36 bra BB0_51;
+ bra.uni BB0_50;
+
+BB0_51:
+ mov.f32 %f692, 0f00000000;
+ mov.f32 %f309, 0fBE2AAAA3;
+ fma.rn.f32 %f310, %f762, %f72, %f309;
+ fma.rn.f32 %f763, %f310, %f72, %f692;
+ bra.uni BB0_52;
+
+BB0_50:
+ mov.f32 %f306, 0f3D2AAAA5;
+ fma.rn.f32 %f307, %f762, %f72, %f306;
+ mov.f32 %f308, 0fBF000000;
+ fma.rn.f32 %f763, %f307, %f72, %f308;
+
+BB0_52:
+ fma.rn.f32 %f764, %f763, %f761, %f761;
+ @%p36 bra BB0_54;
+
+ mul.rn.f32 %f701, %f761, %f761;
+ mov.f32 %f690, 0f3F800000;
+ fma.rn.f32 %f764, %f763, %f701, %f690;
+
+BB0_54:
+ and.b32 %r221, %r377, 2;
+ setp.eq.s32 %p39, %r221, 0;
+ @%p39 bra BB0_56;
+
+ mov.f32 %f691, 0f00000000;
+ mov.f32 %f314, 0fBF800000;
+ fma.rn.f32 %f764, %f764, %f314, %f691;
+
+BB0_56:
+ max.f32 %f679, %f256, %f204;
+ mul.f32 %f323, %f47, %f758;
+ mul.f32 %f324, %f47, %f764;
+ mul.f32 %f325, %f22, %f324;
+ mul.f32 %f326, %f23, %f324;
+ mul.f32 %f327, %f24, %f324;
+ fma.rn.f32 %f328, %f31, %f323, %f325;
+ fma.rn.f32 %f329, %f30, %f323, %f326;
+ fma.rn.f32 %f330, %f29, %f323, %f327;
+ mul.f32 %f331, %f46, %f736;
+ mul.f32 %f332, %f46, %f737;
+ mul.f32 %f333, %f46, %f738;
+ sub.f32 %f84, %f328, %f331;
+ sub.f32 %f85, %f329, %f332;
+ sub.f32 %f86, %f330, %f333;
+ mov.u32 %r225, -1082130432;
+ st.local.u32 [%rd35+8], %r225;
+ st.local.u32 [%rd35+4], %r225;
+ st.local.u32 [%rd35], %r225;
+ ld.global.u32 %r222, [root];
+ mov.u32 %r223, 0;
+ // inline asm
+ call _rt_trace_64, (%r222, %f739, %f740, %f741, %f84, %f85, %f86, %r223, %f679, %f188, %rd33, %r114);
+ // inline asm
+ ld.local.f32 %f87, [%rd35];
+ setp.lt.f32 %p40, %f87, 0f00000000;
+ @%p40 bra BB0_58;
+
+ mul.f32 %f334, %f736, %f84;
+ mul.f32 %f335, %f737, %f85;
+ neg.f32 %f336, %f335;
+ sub.f32 %f337, %f336, %f334;
+ mul.f32 %f338, %f738, %f86;
+ sub.f32 %f339, %f337, %f338;
+ mul.f32 %f340, %f339, 0f40800000;
+ cvt.sat.f32.f32 %f341, %f340;
+ ld.local.f32 %f342, [%rd35+4];
+ ld.local.f32 %f343, [%rd35+8];
+ fma.rn.f32 %f750, %f341, %f87, %f750;
+ fma.rn.f32 %f749, %f341, %f342, %f749;
+ fma.rn.f32 %f748, %f341, %f343, %f748;
+ cvt.sat.f32.f32 %f344, %f339;
+ fma.rn.f32 %f753, %f344, %f87, %f753;
+ fma.rn.f32 %f752, %f344, %f342, %f752;
+ fma.rn.f32 %f751, %f344, %f343, %f751;
+
+BB0_58:
+ mad.lo.s32 %r352, %r379, 1664525, 1013904223;
+ mad.lo.s32 %r379, %r352, 1664525, 1013904223;
+ ld.global.u32 %r353, [samples];
+ add.s32 %r356, %r356, 1;
+ setp.lt.s32 %p41, %r356, %r353;
+ @%p41 bra BB0_10;
+
+BB0_59:
+ add.s32 %r354, %r354, 1;
+ setp.lt.s32 %p42, %r354, %r353;
+ @%p42 bra BB0_8;
+ bra.uni BB0_60;
+
+BB0_115:
+ mov.u64 %rd201, image_RNM0;
+ cvta.global.u64 %rd196, %rd201;
+ mov.u32 %r309, 8;
+ mov.u64 %rd200, 0;
+ // inline asm
+ call (%rd195), _rt_buffer_get_64, (%rd196, %r95, %r309, %rd18, %rd19, %rd200, %rd200);
+ // inline asm
+ mov.f32 %f656, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f656;}
+
+ // inline asm
+ mov.u16 %rs99, 0;
+ st.v4.u16 [%rd195], {%rs98, %rs98, %rs98, %rs99};
+
+BB0_116:
+ ld.global.u32 %r310, [additive];
+ setp.eq.s32 %p100, %r310, 0;
+ @%p100 bra BB0_118;
+
+ mov.u64 %rd214, image_RNM1;
+ cvta.global.u64 %rd203, %rd214;
+ mov.u32 %r314, 8;
+ mov.u64 %rd213, 0;
+ // inline asm
+ call (%rd202), _rt_buffer_get_64, (%rd203, %r95, %r314, %rd18, %rd19, %rd213, %rd213);
+ // inline asm
+ ld.v4.u16 {%rs106, %rs107, %rs108, %rs109}, [%rd202];
+ // inline asm
+ { cvt.f32.f16 %f657, %rs106;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f658, %rs107;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f659, %rs108;}
+
+ // inline asm
+ // inline asm
+ call (%rd208), _rt_buffer_get_64, (%rd203, %r95, %r314, %rd18, %rd19, %rd213, %rd213);
+ // inline asm
+ add.f32 %f660, %f657, 0f00000000;
+ add.f32 %f661, %f658, 0f00000000;
+ add.f32 %f662, %f659, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f662;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f661;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs103, %f660;}
+
+ // inline asm
+ mov.u16 %rs110, 0;
+ st.v4.u16 [%rd208], {%rs103, %rs104, %rs105, %rs110};
+ bra.uni BB0_119;
+
+BB0_6:
+ mov.f32 %f749, %f748;
+ mov.f32 %f750, %f748;
+ mov.f32 %f751, %f748;
+ mov.f32 %f752, %f748;
+ mov.f32 %f753, %f748;
+
+BB0_60:
+ mul.lo.s32 %r226, %r353, %r353;
+ cvt.rn.f32.s32 %f345, %r226;
+ rcp.rn.f32 %f112, %f345;
+ mul.f32 %f346, %f753, %f112;
+ mul.f32 %f347, %f752, %f112;
+ mul.f32 %f348, %f751, %f112;
+ fma.rn.f32 %f113, %f753, %f112, %f346;
+ fma.rn.f32 %f114, %f752, %f112, %f347;
+ fma.rn.f32 %f115, %f751, %f112, %f348;
+ ld.global.u32 %r381, [imageEnabled];
+ and.b32 %r227, %r381, 1;
+ setp.eq.b32 %p43, %r227, 1;
+ @!%p43 bra BB0_95;
+ bra.uni BB0_61;
+
+BB0_61:
+ abs.f32 %f117, %f113;
+ setp.lt.f32 %p44, %f117, 0f00800000;
+ mul.f32 %f354, %f117, 0f4B800000;
+ selp.f32 %f355, 0fC3170000, 0fC2FE0000, %p44;
+ selp.f32 %f356, %f354, %f117, %p44;
+ mov.b32 %r228, %f356;
+ and.b32 %r229, %r228, 8388607;
+ or.b32 %r230, %r229, 1065353216;
+ mov.b32 %f357, %r230;
+ shr.u32 %r231, %r228, 23;
+ cvt.rn.f32.u32 %f358, %r231;
+ add.f32 %f359, %f355, %f358;
+ setp.gt.f32 %p45, %f357, 0f3FB504F3;
+ mul.f32 %f360, %f357, 0f3F000000;
+ add.f32 %f361, %f359, 0f3F800000;
+ selp.f32 %f362, %f360, %f357, %p45;
+ selp.f32 %f363, %f361, %f359, %p45;
+ add.f32 %f364, %f362, 0fBF800000;
+ add.f32 %f350, %f362, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f349,%f350;
+ // inline asm
+ add.f32 %f365, %f364, %f364;
+ mul.f32 %f366, %f349, %f365;
+ mul.f32 %f367, %f366, %f366;
+ mov.f32 %f368, 0f3C4CAF63;
+ mov.f32 %f369, 0f3B18F0FE;
+ fma.rn.f32 %f370, %f369, %f367, %f368;
+ mov.f32 %f371, 0f3DAAAABD;
+ fma.rn.f32 %f372, %f370, %f367, %f371;
+ mul.rn.f32 %f373, %f372, %f367;
+ mul.rn.f32 %f374, %f373, %f366;
+ sub.f32 %f375, %f364, %f366;
+ neg.f32 %f376, %f366;
+ add.f32 %f377, %f375, %f375;
+ fma.rn.f32 %f378, %f376, %f364, %f377;
+ mul.rn.f32 %f379, %f349, %f378;
+ add.f32 %f380, %f374, %f366;
+ sub.f32 %f381, %f366, %f380;
+ add.f32 %f382, %f374, %f381;
+ add.f32 %f383, %f379, %f382;
+ add.f32 %f384, %f380, %f383;
+ sub.f32 %f385, %f380, %f384;
+ add.f32 %f386, %f383, %f385;
+ mov.f32 %f387, 0f3F317200;
+ mul.rn.f32 %f388, %f363, %f387;
+ mov.f32 %f389, 0f35BFBE8E;
+ mul.rn.f32 %f390, %f363, %f389;
+ add.f32 %f391, %f388, %f384;
+ sub.f32 %f392, %f388, %f391;
+ add.f32 %f393, %f384, %f392;
+ add.f32 %f394, %f386, %f393;
+ add.f32 %f395, %f390, %f394;
+ add.f32 %f396, %f391, %f395;
+ sub.f32 %f397, %f391, %f396;
+ add.f32 %f398, %f395, %f397;
+ mov.f32 %f399, 0f3EE66666;
+ mul.rn.f32 %f400, %f399, %f396;
+ neg.f32 %f401, %f400;
+ fma.rn.f32 %f402, %f399, %f396, %f401;
+ fma.rn.f32 %f403, %f399, %f398, %f402;
+ mov.f32 %f404, 0f00000000;
+ fma.rn.f32 %f405, %f404, %f396, %f403;
+ add.rn.f32 %f406, %f400, %f405;
+ neg.f32 %f407, %f406;
+ add.rn.f32 %f408, %f400, %f407;
+ add.rn.f32 %f409, %f408, %f405;
+ mov.b32 %r232, %f406;
+ setp.eq.s32 %p46, %r232, 1118925336;
+ add.s32 %r233, %r232, -1;
+ mov.b32 %f410, %r233;
+ add.f32 %f411, %f409, 0f37000000;
+ selp.f32 %f412, %f410, %f406, %p46;
+ selp.f32 %f118, %f411, %f409, %p46;
+ mul.f32 %f413, %f412, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f414, %f413;
+ mov.f32 %f415, 0fBF317200;
+ fma.rn.f32 %f416, %f414, %f415, %f412;
+ mov.f32 %f417, 0fB5BFBE8E;
+ fma.rn.f32 %f418, %f414, %f417, %f416;
+ mul.f32 %f419, %f418, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f420, %f419;
+ add.f32 %f421, %f414, 0f00000000;
+ ex2.approx.f32 %f422, %f421;
+ mul.f32 %f423, %f420, %f422;
+ setp.lt.f32 %p47, %f412, 0fC2D20000;
+ selp.f32 %f424, 0f00000000, %f423, %p47;
+ setp.gt.f32 %p48, %f412, 0f42D20000;
+ selp.f32 %f784, 0f7F800000, %f424, %p48;
+ setp.eq.f32 %p49, %f784, 0f7F800000;
+ @%p49 bra BB0_63;
+
+ fma.rn.f32 %f784, %f784, %f118, %f784;
+
+BB0_63:
+ mov.f32 %f705, 0f3E666666;
+ cvt.rzi.f32.f32 %f704, %f705;
+ fma.rn.f32 %f703, %f704, 0fC0000000, 0f3EE66666;
+ abs.f32 %f702, %f703;
+ setp.lt.f32 %p50, %f113, 0f00000000;
+ setp.eq.f32 %p51, %f702, 0f3F800000;
+ and.pred %p1, %p50, %p51;
+ mov.b32 %r234, %f784;
+ xor.b32 %r235, %r234, -2147483648;
+ mov.b32 %f425, %r235;
+ selp.f32 %f786, %f425, %f784, %p1;
+ setp.eq.f32 %p52, %f113, 0f00000000;
+ @%p52 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f428, %f113, %f113;
+ selp.f32 %f786, %f428, 0f00000000, %p51;
+ bra.uni BB0_67;
+
+BB0_118:
+ mov.u64 %rd221, image_RNM1;
+ cvta.global.u64 %rd216, %rd221;
+ mov.u32 %r316, 8;
+ mov.u64 %rd220, 0;
+ // inline asm
+ call (%rd215), _rt_buffer_get_64, (%rd216, %r95, %r316, %rd18, %rd19, %rd220, %rd220);
+ // inline asm
+ mov.f32 %f663, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f663;}
+
+ // inline asm
+ mov.u16 %rs112, 0;
+ st.v4.u16 [%rd215], {%rs111, %rs111, %rs111, %rs112};
+
+BB0_119:
+ ld.global.u32 %r317, [additive];
+ setp.eq.s32 %p101, %r317, 0;
+ @%p101 bra BB0_121;
+
+ mov.u64 %rd234, image_RNM2;
+ cvta.global.u64 %rd223, %rd234;
+ mov.u32 %r321, 8;
+ mov.u64 %rd233, 0;
+ // inline asm
+ call (%rd222), _rt_buffer_get_64, (%rd223, %r95, %r321, %rd18, %rd19, %rd233, %rd233);
+ // inline asm
+ ld.v4.u16 {%rs119, %rs120, %rs121, %rs122}, [%rd222];
+ // inline asm
+ { cvt.f32.f16 %f664, %rs119;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f665, %rs120;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f666, %rs121;}
+
+ // inline asm
+ // inline asm
+ call (%rd228), _rt_buffer_get_64, (%rd223, %r95, %r321, %rd18, %rd19, %rd233, %rd233);
+ // inline asm
+ add.f32 %f667, %f664, 0f00000000;
+ add.f32 %f668, %f665, 0f00000000;
+ add.f32 %f669, %f666, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs118, %f669;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f668;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f667;}
+
+ // inline asm
+ mov.u16 %rs123, 0;
+ st.v4.u16 [%rd228], {%rs116, %rs117, %rs118, %rs123};
+ bra.uni BB0_122;
+
+BB0_121:
+ mov.u64 %rd241, image_RNM2;
+ cvta.global.u64 %rd236, %rd241;
+ mov.u32 %r323, 8;
+ mov.u64 %rd240, 0;
+ // inline asm
+ call (%rd235), _rt_buffer_get_64, (%rd236, %r95, %r323, %rd18, %rd19, %rd240, %rd240);
+ // inline asm
+ mov.f32 %f670, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs124, %f670;}
+
+ // inline asm
+ mov.u16 %rs125, 0;
+ st.v4.u16 [%rd235], {%rs124, %rs124, %rs124, %rs125};
+
+BB0_122:
+ ld.global.u32 %r324, [additive];
+ setp.eq.s32 %p102, %r324, 0;
+ @%p102 bra BB0_124;
+
+ mov.u64 %rd254, image_RNM3;
+ cvta.global.u64 %rd243, %rd254;
+ mov.u32 %r328, 8;
+ mov.u64 %rd253, 0;
+ // inline asm
+ call (%rd242), _rt_buffer_get_64, (%rd243, %r95, %r328, %rd18, %rd19, %rd253, %rd253);
+ // inline asm
+ ld.v4.u16 {%rs132, %rs133, %rs134, %rs135}, [%rd242];
+ // inline asm
+ { cvt.f32.f16 %f671, %rs132;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f672, %rs133;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f673, %rs134;}
+
+ // inline asm
+ // inline asm
+ call (%rd248), _rt_buffer_get_64, (%rd243, %r95, %r328, %rd18, %rd19, %rd253, %rd253);
+ // inline asm
+ add.f32 %f674, %f671, 0f00000000;
+ add.f32 %f675, %f672, 0f00000000;
+ add.f32 %f676, %f673, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs131, %f676;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f675;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f674;}
+
+ // inline asm
+ mov.u16 %rs136, 0;
+ st.v4.u16 [%rd248], {%rs129, %rs130, %rs131, %rs136};
+ bra.uni BB0_125;
+
+BB0_124:
+ mov.u64 %rd261, image_RNM3;
+ cvta.global.u64 %rd256, %rd261;
+ mov.u32 %r330, 8;
+ mov.u64 %rd260, 0;
+ // inline asm
+ call (%rd255), _rt_buffer_get_64, (%rd256, %r95, %r330, %rd18, %rd19, %rd260, %rd260);
+ // inline asm
+ mov.f32 %f677, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs137, %f677;}
+
+ // inline asm
+ mov.u16 %rs138, 0;
+ st.v4.u16 [%rd255], {%rs137, %rs137, %rs137, %rs138};
+ bra.uni BB0_125;
+
+BB0_64:
+ setp.geu.f32 %p53, %f113, 0f00000000;
+ @%p53 bra BB0_67;
+
+ mov.f32 %f729, 0f3EE66666;
+ cvt.rzi.f32.f32 %f427, %f729;
+ setp.neu.f32 %p54, %f427, 0f3EE66666;
+ selp.f32 %f786, 0f7FFFFFFF, %f786, %p54;
+
+BB0_67:
+ abs.f32 %f706, %f113;
+ add.f32 %f429, %f706, 0f3EE66666;
+ mov.b32 %r236, %f429;
+ setp.lt.s32 %p56, %r236, 2139095040;
+ @%p56 bra BB0_72;
+
+ abs.f32 %f727, %f113;
+ setp.gtu.f32 %p57, %f727, 0f7F800000;
+ @%p57 bra BB0_71;
+ bra.uni BB0_69;
+
+BB0_71:
+ add.f32 %f786, %f113, 0f3EE66666;
+ bra.uni BB0_72;
+
+BB0_69:
+ abs.f32 %f728, %f113;
+ setp.neu.f32 %p58, %f728, 0f7F800000;
+ @%p58 bra BB0_72;
+
+ selp.f32 %f786, 0fFF800000, 0f7F800000, %p1;
+
+BB0_72:
+ mov.f32 %f715, 0fB5BFBE8E;
+ mov.f32 %f714, 0fBF317200;
+ mov.f32 %f713, 0f00000000;
+ mov.f32 %f712, 0f35BFBE8E;
+ mov.f32 %f711, 0f3F317200;
+ mov.f32 %f710, 0f3DAAAABD;
+ mov.f32 %f709, 0f3C4CAF63;
+ mov.f32 %f708, 0f3B18F0FE;
+ mov.f32 %f707, 0f3EE66666;
+ setp.eq.f32 %p59, %f113, 0f3F800000;
+ selp.f32 %f129, 0f3F800000, %f786, %p59;
+ abs.f32 %f130, %f114;
+ setp.lt.f32 %p60, %f130, 0f00800000;
+ mul.f32 %f432, %f130, 0f4B800000;
+ selp.f32 %f433, 0fC3170000, 0fC2FE0000, %p60;
+ selp.f32 %f434, %f432, %f130, %p60;
+ mov.b32 %r237, %f434;
+ and.b32 %r238, %r237, 8388607;
+ or.b32 %r239, %r238, 1065353216;
+ mov.b32 %f435, %r239;
+ shr.u32 %r240, %r237, 23;
+ cvt.rn.f32.u32 %f436, %r240;
+ add.f32 %f437, %f433, %f436;
+ setp.gt.f32 %p61, %f435, 0f3FB504F3;
+ mul.f32 %f438, %f435, 0f3F000000;
+ add.f32 %f439, %f437, 0f3F800000;
+ selp.f32 %f440, %f438, %f435, %p61;
+ selp.f32 %f441, %f439, %f437, %p61;
+ add.f32 %f442, %f440, 0fBF800000;
+ add.f32 %f431, %f440, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f430,%f431;
+ // inline asm
+ add.f32 %f443, %f442, %f442;
+ mul.f32 %f444, %f430, %f443;
+ mul.f32 %f445, %f444, %f444;
+ fma.rn.f32 %f448, %f708, %f445, %f709;
+ fma.rn.f32 %f450, %f448, %f445, %f710;
+ mul.rn.f32 %f451, %f450, %f445;
+ mul.rn.f32 %f452, %f451, %f444;
+ sub.f32 %f453, %f442, %f444;
+ neg.f32 %f454, %f444;
+ add.f32 %f455, %f453, %f453;
+ fma.rn.f32 %f456, %f454, %f442, %f455;
+ mul.rn.f32 %f457, %f430, %f456;
+ add.f32 %f458, %f452, %f444;
+ sub.f32 %f459, %f444, %f458;
+ add.f32 %f460, %f452, %f459;
+ add.f32 %f461, %f457, %f460;
+ add.f32 %f462, %f458, %f461;
+ sub.f32 %f463, %f458, %f462;
+ add.f32 %f464, %f461, %f463;
+ mul.rn.f32 %f466, %f441, %f711;
+ mul.rn.f32 %f468, %f441, %f712;
+ add.f32 %f469, %f466, %f462;
+ sub.f32 %f470, %f466, %f469;
+ add.f32 %f471, %f462, %f470;
+ add.f32 %f472, %f464, %f471;
+ add.f32 %f473, %f468, %f472;
+ add.f32 %f474, %f469, %f473;
+ sub.f32 %f475, %f469, %f474;
+ add.f32 %f476, %f473, %f475;
+ mul.rn.f32 %f478, %f707, %f474;
+ neg.f32 %f479, %f478;
+ fma.rn.f32 %f480, %f707, %f474, %f479;
+ fma.rn.f32 %f481, %f707, %f476, %f480;
+ fma.rn.f32 %f483, %f713, %f474, %f481;
+ add.rn.f32 %f484, %f478, %f483;
+ neg.f32 %f485, %f484;
+ add.rn.f32 %f486, %f478, %f485;
+ add.rn.f32 %f487, %f486, %f483;
+ mov.b32 %r241, %f484;
+ setp.eq.s32 %p62, %r241, 1118925336;
+ add.s32 %r242, %r241, -1;
+ mov.b32 %f488, %r242;
+ add.f32 %f489, %f487, 0f37000000;
+ selp.f32 %f490, %f488, %f484, %p62;
+ selp.f32 %f131, %f489, %f487, %p62;
+ mul.f32 %f491, %f490, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f492, %f491;
+ fma.rn.f32 %f494, %f492, %f714, %f490;
+ fma.rn.f32 %f496, %f492, %f715, %f494;
+ mul.f32 %f497, %f496, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f498, %f497;
+ add.f32 %f499, %f492, 0f00000000;
+ ex2.approx.f32 %f500, %f499;
+ mul.f32 %f501, %f498, %f500;
+ setp.lt.f32 %p63, %f490, 0fC2D20000;
+ selp.f32 %f502, 0f00000000, %f501, %p63;
+ setp.gt.f32 %p64, %f490, 0f42D20000;
+ selp.f32 %f787, 0f7F800000, %f502, %p64;
+ setp.eq.f32 %p65, %f787, 0f7F800000;
+ @%p65 bra BB0_74;
+
+ fma.rn.f32 %f787, %f787, %f131, %f787;
+
+BB0_74:
+ setp.lt.f32 %p66, %f114, 0f00000000;
+ and.pred %p2, %p66, %p51;
+ mov.b32 %r243, %f787;
+ xor.b32 %r244, %r243, -2147483648;
+ mov.b32 %f503, %r244;
+ selp.f32 %f789, %f503, %f787, %p2;
+ setp.eq.f32 %p68, %f114, 0f00000000;
+ @%p68 bra BB0_77;
+ bra.uni BB0_75;
+
+BB0_77:
+ add.f32 %f506, %f114, %f114;
+ selp.f32 %f789, %f506, 0f00000000, %p51;
+ bra.uni BB0_78;
+
+BB0_75:
+ setp.geu.f32 %p69, %f114, 0f00000000;
+ @%p69 bra BB0_78;
+
+ mov.f32 %f726, 0f3EE66666;
+ cvt.rzi.f32.f32 %f505, %f726;
+ setp.neu.f32 %p70, %f505, 0f3EE66666;
+ selp.f32 %f789, 0f7FFFFFFF, %f789, %p70;
+
+BB0_78:
+ abs.f32 %f730, %f114;
+ add.f32 %f507, %f730, 0f3EE66666;
+ mov.b32 %r245, %f507;
+ setp.lt.s32 %p72, %r245, 2139095040;
+ @%p72 bra BB0_83;
+
+ abs.f32 %f731, %f114;
+ setp.gtu.f32 %p73, %f731, 0f7F800000;
+ @%p73 bra BB0_82;
+ bra.uni BB0_80;
+
+BB0_82:
+ add.f32 %f789, %f114, 0f3EE66666;
+ bra.uni BB0_83;
+
+BB0_80:
+ abs.f32 %f732, %f114;
+ setp.neu.f32 %p74, %f732, 0f7F800000;
+ @%p74 bra BB0_83;
+
+ selp.f32 %f789, 0fFF800000, 0f7F800000, %p2;
+
+BB0_83:
+ mov.f32 %f724, 0fB5BFBE8E;
+ mov.f32 %f723, 0fBF317200;
+ mov.f32 %f722, 0f00000000;
+ mov.f32 %f721, 0f35BFBE8E;
+ mov.f32 %f720, 0f3F317200;
+ mov.f32 %f719, 0f3DAAAABD;
+ mov.f32 %f718, 0f3C4CAF63;
+ mov.f32 %f717, 0f3B18F0FE;
+ mov.f32 %f716, 0f3EE66666;
+ setp.eq.f32 %p75, %f114, 0f3F800000;
+ selp.f32 %f142, 0f3F800000, %f789, %p75;
+ abs.f32 %f143, %f115;
+ setp.lt.f32 %p76, %f143, 0f00800000;
+ mul.f32 %f510, %f143, 0f4B800000;
+ selp.f32 %f511, 0fC3170000, 0fC2FE0000, %p76;
+ selp.f32 %f512, %f510, %f143, %p76;
+ mov.b32 %r246, %f512;
+ and.b32 %r247, %r246, 8388607;
+ or.b32 %r248, %r247, 1065353216;
+ mov.b32 %f513, %r248;
+ shr.u32 %r249, %r246, 23;
+ cvt.rn.f32.u32 %f514, %r249;
+ add.f32 %f515, %f511, %f514;
+ setp.gt.f32 %p77, %f513, 0f3FB504F3;
+ mul.f32 %f516, %f513, 0f3F000000;
+ add.f32 %f517, %f515, 0f3F800000;
+ selp.f32 %f518, %f516, %f513, %p77;
+ selp.f32 %f519, %f517, %f515, %p77;
+ add.f32 %f520, %f518, 0fBF800000;
+ add.f32 %f509, %f518, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f508,%f509;
+ // inline asm
+ add.f32 %f521, %f520, %f520;
+ mul.f32 %f522, %f508, %f521;
+ mul.f32 %f523, %f522, %f522;
+ fma.rn.f32 %f526, %f717, %f523, %f718;
+ fma.rn.f32 %f528, %f526, %f523, %f719;
+ mul.rn.f32 %f529, %f528, %f523;
+ mul.rn.f32 %f530, %f529, %f522;
+ sub.f32 %f531, %f520, %f522;
+ neg.f32 %f532, %f522;
+ add.f32 %f533, %f531, %f531;
+ fma.rn.f32 %f534, %f532, %f520, %f533;
+ mul.rn.f32 %f535, %f508, %f534;
+ add.f32 %f536, %f530, %f522;
+ sub.f32 %f537, %f522, %f536;
+ add.f32 %f538, %f530, %f537;
+ add.f32 %f539, %f535, %f538;
+ add.f32 %f540, %f536, %f539;
+ sub.f32 %f541, %f536, %f540;
+ add.f32 %f542, %f539, %f541;
+ mul.rn.f32 %f544, %f519, %f720;
+ mul.rn.f32 %f546, %f519, %f721;
+ add.f32 %f547, %f544, %f540;
+ sub.f32 %f548, %f544, %f547;
+ add.f32 %f549, %f540, %f548;
+ add.f32 %f550, %f542, %f549;
+ add.f32 %f551, %f546, %f550;
+ add.f32 %f552, %f547, %f551;
+ sub.f32 %f553, %f547, %f552;
+ add.f32 %f554, %f551, %f553;
+ mul.rn.f32 %f556, %f716, %f552;
+ neg.f32 %f557, %f556;
+ fma.rn.f32 %f558, %f716, %f552, %f557;
+ fma.rn.f32 %f559, %f716, %f554, %f558;
+ fma.rn.f32 %f561, %f722, %f552, %f559;
+ add.rn.f32 %f562, %f556, %f561;
+ neg.f32 %f563, %f562;
+ add.rn.f32 %f564, %f556, %f563;
+ add.rn.f32 %f565, %f564, %f561;
+ mov.b32 %r250, %f562;
+ setp.eq.s32 %p78, %r250, 1118925336;
+ add.s32 %r251, %r250, -1;
+ mov.b32 %f566, %r251;
+ add.f32 %f567, %f565, 0f37000000;
+ selp.f32 %f568, %f566, %f562, %p78;
+ selp.f32 %f144, %f567, %f565, %p78;
+ mul.f32 %f569, %f568, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f570, %f569;
+ fma.rn.f32 %f572, %f570, %f723, %f568;
+ fma.rn.f32 %f574, %f570, %f724, %f572;
+ mul.f32 %f575, %f574, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f576, %f575;
+ add.f32 %f577, %f570, 0f00000000;
+ ex2.approx.f32 %f578, %f577;
+ mul.f32 %f579, %f576, %f578;
+ setp.lt.f32 %p79, %f568, 0fC2D20000;
+ selp.f32 %f580, 0f00000000, %f579, %p79;
+ setp.gt.f32 %p80, %f568, 0f42D20000;
+ selp.f32 %f790, 0f7F800000, %f580, %p80;
+ setp.eq.f32 %p81, %f790, 0f7F800000;
+ @%p81 bra BB0_85;
+
+ fma.rn.f32 %f790, %f790, %f144, %f790;
+
+BB0_85:
+ setp.lt.f32 %p82, %f115, 0f00000000;
+ and.pred %p3, %p82, %p51;
+ mov.b32 %r252, %f790;
+ xor.b32 %r253, %r252, -2147483648;
+ mov.b32 %f581, %r253;
+ selp.f32 %f792, %f581, %f790, %p3;
+ setp.eq.f32 %p84, %f115, 0f00000000;
+ @%p84 bra BB0_88;
+ bra.uni BB0_86;
+
+BB0_88:
+ add.f32 %f584, %f115, %f115;
+ selp.f32 %f792, %f584, 0f00000000, %p51;
+ bra.uni BB0_89;
+
+BB0_86:
+ setp.geu.f32 %p85, %f115, 0f00000000;
+ @%p85 bra BB0_89;
+
+ mov.f32 %f725, 0f3EE66666;
+ cvt.rzi.f32.f32 %f583, %f725;
+ setp.neu.f32 %p86, %f583, 0f3EE66666;
+ selp.f32 %f792, 0f7FFFFFFF, %f792, %p86;
+
+BB0_89:
+ abs.f32 %f733, %f115;
+ add.f32 %f585, %f733, 0f3EE66666;
+ mov.b32 %r254, %f585;
+ setp.lt.s32 %p88, %r254, 2139095040;
+ @%p88 bra BB0_94;
+
+ abs.f32 %f734, %f115;
+ setp.gtu.f32 %p89, %f734, 0f7F800000;
+ @%p89 bra BB0_93;
+ bra.uni BB0_91;
+
+BB0_93:
+ add.f32 %f792, %f115, 0f3EE66666;
+ bra.uni BB0_94;
+
+BB0_91:
+ abs.f32 %f735, %f115;
+ setp.neu.f32 %p90, %f735, 0f7F800000;
+ @%p90 bra BB0_94;
+
+ selp.f32 %f792, 0fFF800000, 0f7F800000, %p3;
+
+BB0_94:
+ mov.u64 %rd268, 0;
+ mov.u32 %r332, 4;
+ mov.u32 %r331, 2;
+ setp.eq.f32 %p91, %f115, 0f3F800000;
+ selp.f32 %f586, 0f3F800000, %f792, %p91;
+ cvt.u64.u32 %rd70, %r3;
+ cvt.u64.u32 %rd69, %r2;
+ mov.u64 %rd73, image;
+ cvta.global.u64 %rd68, %rd73;
+ // inline asm
+ call (%rd67), _rt_buffer_get_64, (%rd68, %r331, %r332, %rd69, %rd70, %rd268, %rd268);
+ // inline asm
+ cvt.sat.f32.f32 %f587, %f586;
+ mul.f32 %f588, %f587, 0f437FFD71;
+ cvt.rzi.u32.f32 %r257, %f588;
+ cvt.sat.f32.f32 %f589, %f142;
+ mul.f32 %f590, %f589, 0f437FFD71;
+ cvt.rzi.u32.f32 %r258, %f590;
+ cvt.sat.f32.f32 %f591, %f129;
+ mul.f32 %f592, %f591, 0f437FFD71;
+ cvt.rzi.u32.f32 %r259, %f592;
+ cvt.u16.u32 %rs13, %r257;
+ cvt.u16.u32 %rs14, %r259;
+ cvt.u16.u32 %rs15, %r258;
+ mov.u16 %rs16, 255;
+ st.v4.u8 [%rd67], {%rs13, %rs15, %rs14, %rs16};
+ ld.global.u32 %r381, [imageEnabled];
+
+BB0_95:
+ and.b32 %r260, %r381, 4;
+ setp.eq.s32 %p92, %r260, 0;
+ mul.f32 %f155, %f748, %f112;
+ mul.f32 %f156, %f749, %f112;
+ mul.f32 %f157, %f750, %f112;
+ @%p92 bra BB0_97;
+
+ mov.u64 %rd269, 0;
+ mov.u32 %r333, 2;
+ cvt.u64.u32 %rd83, %r3;
+ ld.global.v2.u32 {%r265, %r266}, [pixelID];
+ cvt.u64.u32 %rd76, %r265;
+ cvt.u64.u32 %rd77, %r266;
+ mov.u64 %rd86, lightmapDirect;
+ cvta.global.u64 %rd75, %rd86;
+ mov.u32 %r264, 8;
+ // inline asm
+ call (%rd74), _rt_buffer_get_64, (%rd75, %r333, %r264, %rd76, %rd77, %rd269, %rd269);
+ // inline asm
+ ld.v4.u16 {%rs24, %rs25, %rs26, %rs27}, [%rd74];
+ // inline asm
+ { cvt.f32.f16 %f593, %rs24;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f594, %rs25;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f595, %rs26;}
+
+ // inline asm
+ add.f32 %f596, %f113, %f593;
+ add.f32 %f597, %f114, %f594;
+ add.f32 %f598, %f115, %f595;
+ cvt.u64.u32 %rd82, %r2;
+ mov.u64 %rd87, image_HDR;
+ cvta.global.u64 %rd81, %rd87;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r333, %r264, %rd82, %rd83, %rd269, %rd269);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f598;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs21, %f597;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f596;}
+
+ // inline asm
+ mov.f32 %f599, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f599;}
+
+ // inline asm
+ st.v4.u16 [%rd80], {%rs20, %rs21, %rs22, %rs23};
+
+BB0_97:
+ cvt.u64.u32 %rd16, %r2;
+ cvt.u64.u32 %rd17, %r3;
+ mul.f32 %f158, %f157, 0f3F000000;
+ mul.f32 %f159, %f156, 0f3F000000;
+ mul.f32 %f160, %f155, 0f3F000000;
+ ld.global.u32 %r269, [additive];
+ setp.eq.s32 %p93, %r269, 0;
+ mov.f32 %f600, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f600;}
+
+ // inline asm
+ @%p93 bra BB0_99;
+
+ mov.u64 %rd270, 0;
+ mov.u32 %r334, 2;
+ mov.u64 %rd100, image_RNM0;
+ cvta.global.u64 %rd89, %rd100;
+ mov.u32 %r273, 8;
+ // inline asm
+ call (%rd88), _rt_buffer_get_64, (%rd89, %r334, %r273, %rd16, %rd17, %rd270, %rd270);
+ // inline asm
+ ld.v4.u16 {%rs35, %rs36, %rs37, %rs38}, [%rd88];
+ // inline asm
+ { cvt.f32.f16 %f601, %rs35;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f602, %rs36;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f603, %rs37;}
+
+ // inline asm
+ // inline asm
+ call (%rd94), _rt_buffer_get_64, (%rd89, %r334, %r273, %rd16, %rd17, %rd270, %rd270);
+ // inline asm
+ add.f32 %f604, %f158, %f601;
+ add.f32 %f605, %f159, %f602;
+ add.f32 %f606, %f160, %f603;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f606;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f605;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f604;}
+
+ // inline asm
+ st.v4.u16 [%rd94], {%rs32, %rs33, %rs34, %rs28};
+ bra.uni BB0_100;
+
+BB0_99:
+ mov.u64 %rd277, 0;
+ mov.u32 %r341, 2;
+ mov.u64 %rd107, image_RNM0;
+ cvta.global.u64 %rd102, %rd107;
+ mov.u32 %r275, 8;
+ // inline asm
+ call (%rd101), _rt_buffer_get_64, (%rd102, %r341, %r275, %rd16, %rd17, %rd277, %rd277);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs41, %f160;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f159;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f158;}
+
+ // inline asm
+ st.v4.u16 [%rd101], {%rs39, %rs40, %rs41, %rs28};
+
+BB0_100:
+ mul.f32 %f611, %f112, 0f00000000;
+ mul.f32 %f612, %f611, 0f3F000000;
+ mov.f32 %f613, 0f34000000;
+ max.f32 %f614, %f158, %f613;
+ div.rn.f32 %f615, %f612, %f614;
+ max.f32 %f616, %f159, %f613;
+ div.rn.f32 %f617, %f612, %f616;
+ max.f32 %f618, %f160, %f613;
+ div.rn.f32 %f619, %f612, %f618;
+ fma.rn.f32 %f161, %f615, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f162, %f617, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f163, %f619, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r276, [additive];
+ setp.eq.s32 %p94, %r276, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs42, %f600;}
+
+ // inline asm
+ @%p94 bra BB0_102;
+
+ mov.u64 %rd271, 0;
+ mov.u32 %r335, 2;
+ mov.u64 %rd120, image_RNM1;
+ cvta.global.u64 %rd109, %rd120;
+ mov.u32 %r280, 8;
+ // inline asm
+ call (%rd108), _rt_buffer_get_64, (%rd109, %r335, %r280, %rd16, %rd17, %rd271, %rd271);
+ // inline asm
+ ld.v4.u16 {%rs49, %rs50, %rs51, %rs52}, [%rd108];
+ // inline asm
+ { cvt.f32.f16 %f620, %rs49;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f621, %rs50;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f622, %rs51;}
+
+ // inline asm
+ // inline asm
+ call (%rd114), _rt_buffer_get_64, (%rd109, %r335, %r280, %rd16, %rd17, %rd271, %rd271);
+ // inline asm
+ add.f32 %f623, %f161, %f620;
+ add.f32 %f624, %f162, %f621;
+ add.f32 %f625, %f163, %f622;
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f625;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f624;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f623;}
+
+ // inline asm
+ st.v4.u16 [%rd114], {%rs46, %rs47, %rs48, %rs42};
+ bra.uni BB0_103;
+
+BB0_102:
+ mov.u64 %rd276, 0;
+ mov.u32 %r340, 2;
+ mov.u64 %rd127, image_RNM1;
+ cvta.global.u64 %rd122, %rd127;
+ mov.u32 %r282, 8;
+ // inline asm
+ call (%rd121), _rt_buffer_get_64, (%rd122, %r340, %r282, %rd16, %rd17, %rd276, %rd276);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs55, %f163;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs54, %f162;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f161;}
+
+ // inline asm
+ st.v4.u16 [%rd121], {%rs53, %rs54, %rs55, %rs42};
+
+BB0_103:
+ ld.global.u32 %r283, [additive];
+ setp.eq.s32 %p95, %r283, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs56, %f600;}
+
+ // inline asm
+ @%p95 bra BB0_105;
+
+ mov.u64 %rd272, 0;
+ mov.u32 %r336, 2;
+ mov.u64 %rd140, image_RNM2;
+ cvta.global.u64 %rd129, %rd140;
+ mov.u32 %r287, 8;
+ // inline asm
+ call (%rd128), _rt_buffer_get_64, (%rd129, %r336, %r287, %rd16, %rd17, %rd272, %rd272);
+ // inline asm
+ ld.v4.u16 {%rs63, %rs64, %rs65, %rs66}, [%rd128];
+ // inline asm
+ { cvt.f32.f16 %f630, %rs63;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f631, %rs64;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f632, %rs65;}
+
+ // inline asm
+ // inline asm
+ call (%rd134), _rt_buffer_get_64, (%rd129, %r336, %r287, %rd16, %rd17, %rd272, %rd272);
+ // inline asm
+ add.f32 %f633, %f161, %f630;
+ add.f32 %f634, %f162, %f631;
+ add.f32 %f635, %f163, %f632;
+ // inline asm
+ { cvt.rn.f16.f32 %rs62, %f635;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs61, %f634;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f633;}
+
+ // inline asm
+ st.v4.u16 [%rd134], {%rs60, %rs61, %rs62, %rs56};
+ bra.uni BB0_106;
+
+BB0_105:
+ mov.u64 %rd275, 0;
+ mov.u32 %r339, 2;
+ mov.u64 %rd147, image_RNM2;
+ cvta.global.u64 %rd142, %rd147;
+ mov.u32 %r289, 8;
+ // inline asm
+ call (%rd141), _rt_buffer_get_64, (%rd142, %r339, %r289, %rd16, %rd17, %rd275, %rd275);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f163;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs68, %f162;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs67, %f161;}
+
+ // inline asm
+ st.v4.u16 [%rd141], {%rs67, %rs68, %rs69, %rs56};
+
+BB0_106:
+ ld.global.u32 %r290, [additive];
+ setp.eq.s32 %p96, %r290, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f600;}
+
+ // inline asm
+ @%p96 bra BB0_108;
+
+ mov.u64 %rd273, 0;
+ mov.u32 %r337, 2;
+ mov.u64 %rd160, image_RNM3;
+ cvta.global.u64 %rd149, %rd160;
+ mov.u32 %r294, 8;
+ // inline asm
+ call (%rd148), _rt_buffer_get_64, (%rd149, %r337, %r294, %rd16, %rd17, %rd273, %rd273);
+ // inline asm
+ ld.v4.u16 {%rs77, %rs78, %rs79, %rs80}, [%rd148];
+ // inline asm
+ { cvt.f32.f16 %f640, %rs77;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f641, %rs78;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f642, %rs79;}
+
+ // inline asm
+ // inline asm
+ call (%rd154), _rt_buffer_get_64, (%rd149, %r337, %r294, %rd16, %rd17, %rd273, %rd273);
+ // inline asm
+ add.f32 %f643, %f161, %f640;
+ add.f32 %f644, %f162, %f641;
+ add.f32 %f645, %f163, %f642;
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f645;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs75, %f644;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f643;}
+
+ // inline asm
+ st.v4.u16 [%rd154], {%rs74, %rs75, %rs76, %rs70};
+ bra.uni BB0_125;
+
+BB0_108:
+ mov.u64 %rd274, 0;
+ mov.u32 %r338, 2;
+ mov.u64 %rd167, image_RNM3;
+ cvta.global.u64 %rd162, %rd167;
+ mov.u32 %r296, 8;
+ // inline asm
+ call (%rd161), _rt_buffer_get_64, (%rd162, %r338, %r296, %rd16, %rd17, %rd274, %rd274);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f163;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f162;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f161;}
+
+ // inline asm
+ st.v4.u16 [%rd161], {%rs81, %rs82, %rs83, %rs70};
+
+BB0_125:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSSSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSSSH.ptx.meta
new file mode 100644
index 00000000..bba3c4c5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSSSSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 149ff0b0fbbfc4d4d84fa34374ca61c7
+timeCreated: 1540294206
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSky.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSky.ptx
new file mode 100644
index 00000000..edfd27dd
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSky.ptx
@@ -0,0 +1,1359 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .texref sky;
+.global .align 4 .b8 skyColor[12];
+.global .align 4 .u32 samples;
+.global .align 4 .u32 hemispherical;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8skyColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13hemisphericalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8skyColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename13hemisphericalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8skyColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13hemisphericalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8skyColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13hemisphericalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8skyColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13hemisphericalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<97>;
+ .reg .b16 %rs<42>;
+ .reg .f32 %f<569>;
+ .reg .b32 %r<302>;
+ .reg .b64 %rd<114>;
+
+
+ mov.u64 %rd113, __local_depot0;
+ cvta.local.u64 %SP, %rd113;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r93, %r94}, [pixelID];
+ cvt.u64.u32 %rd21, %r93;
+ cvt.u64.u32 %rd22, %r94;
+ mov.u64 %rd25, uvnormal;
+ cvta.global.u64 %rd20, %rd25;
+ mov.u32 %r91, 2;
+ mov.u32 %r92, 4;
+ mov.u64 %rd24, 0;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd20, %r91, %r92, %rd21, %rd22, %rd24, %rd24);
+ // inline asm
+ ld.u32 %r2, [%rd19];
+ shr.u32 %r97, %r2, 16;
+ cvt.u16.u32 %rs1, %r97;
+ and.b16 %rs3, %rs1, 255;
+ cvt.u16.u32 %rs4, %r2;
+ or.b16 %rs5, %rs4, %rs3;
+ setp.eq.s16 %p4, %rs5, 0;
+ mov.f32 %f541, 0f00000000;
+ mov.f32 %f542, %f541;
+ mov.f32 %f543, %f541;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs6, [%rd19+1];
+ and.b16 %rs8, %rs4, 255;
+ cvt.rn.f32.u16 %f111, %rs8;
+ div.rn.f32 %f112, %f111, 0f437F0000;
+ fma.rn.f32 %f113, %f112, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f114, %rs6;
+ div.rn.f32 %f115, %f114, 0f437F0000;
+ fma.rn.f32 %f116, %f115, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f117, %rs3;
+ div.rn.f32 %f118, %f117, 0f437F0000;
+ fma.rn.f32 %f119, %f118, 0f40000000, 0fBF800000;
+ mul.f32 %f120, %f116, %f116;
+ fma.rn.f32 %f121, %f113, %f113, %f120;
+ fma.rn.f32 %f122, %f119, %f119, %f121;
+ sqrt.rn.f32 %f123, %f122;
+ rcp.rn.f32 %f124, %f123;
+ mul.f32 %f541, %f113, %f124;
+ mul.f32 %f542, %f116, %f124;
+ mul.f32 %f543, %f119, %f124;
+
+BB0_2:
+ ld.global.v2.u32 {%r98, %r99}, [pixelID];
+ ld.global.v2.u32 {%r101, %r102}, [tileInfo];
+ add.s32 %r3, %r98, %r101;
+ add.s32 %r4, %r99, %r102;
+ setp.eq.f32 %p5, %f542, 0f00000000;
+ setp.eq.f32 %p6, %f541, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f543, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_95;
+ bra.uni BB0_3;
+
+BB0_95:
+ ld.global.u32 %r301, [imageEnabled];
+ and.b32 %r261, %r301, 1;
+ setp.eq.b32 %p94, %r261, 1;
+ @!%p94 bra BB0_97;
+ bra.uni BB0_96;
+
+BB0_96:
+ cvt.u64.u32 %rd81, %r3;
+ cvt.u64.u32 %rd82, %r4;
+ mov.u64 %rd85, image;
+ cvta.global.u64 %rd80, %rd85;
+ // inline asm
+ call (%rd79), _rt_buffer_get_64, (%rd80, %r91, %r92, %rd81, %rd82, %rd24, %rd24);
+ // inline asm
+ mov.u16 %rs28, 0;
+ st.v4.u8 [%rd79], {%rs28, %rs28, %rs28, %rs28};
+ ld.global.u32 %r301, [imageEnabled];
+
+BB0_97:
+ and.b32 %r264, %r301, 4;
+ setp.eq.s32 %p95, %r264, 0;
+ @%p95 bra BB0_101;
+
+ ld.global.u32 %r265, [additive];
+ setp.eq.s32 %p96, %r265, 0;
+ cvt.u64.u32 %rd17, %r3;
+ cvt.u64.u32 %rd18, %r4;
+ @%p96 bra BB0_100;
+
+ mov.u64 %rd98, image_HDR;
+ cvta.global.u64 %rd87, %rd98;
+ mov.u32 %r269, 8;
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd87, %r91, %r269, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs35, %rs36, %rs37, %rs38}, [%rd86];
+ // inline asm
+ { cvt.f32.f16 %f506, %rs35;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f507, %rs36;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f508, %rs37;}
+
+ // inline asm
+ // inline asm
+ call (%rd92), _rt_buffer_get_64, (%rd87, %r91, %r269, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ add.f32 %f509, %f506, 0f00000000;
+ add.f32 %f510, %f507, 0f00000000;
+ add.f32 %f511, %f508, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f511;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f510;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f509;}
+
+ // inline asm
+ mov.u16 %rs39, 0;
+ st.v4.u16 [%rd92], {%rs32, %rs33, %rs34, %rs39};
+ bra.uni BB0_101;
+
+BB0_3:
+ ld.global.v2.u32 {%r110, %r111}, [pixelID];
+ cvt.u64.u32 %rd28, %r110;
+ cvt.u64.u32 %rd29, %r111;
+ mov.u64 %rd38, uvpos;
+ cvta.global.u64 %rd27, %rd38;
+ mov.u32 %r107, 12;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r91, %r107, %rd28, %rd29, %rd24, %rd24);
+ // inline asm
+ ld.f32 %f126, [%rd26+8];
+ ld.f32 %f127, [%rd26+4];
+ ld.f32 %f128, [%rd26];
+ mul.f32 %f129, %f128, 0f3456BF95;
+ mul.f32 %f130, %f127, 0f3456BF95;
+ mul.f32 %f131, %f126, 0f3456BF95;
+ abs.f32 %f132, %f541;
+ div.rn.f32 %f133, %f129, %f132;
+ abs.f32 %f134, %f542;
+ div.rn.f32 %f135, %f130, %f134;
+ abs.f32 %f136, %f543;
+ div.rn.f32 %f137, %f131, %f136;
+ abs.f32 %f138, %f133;
+ abs.f32 %f139, %f135;
+ abs.f32 %f140, %f137;
+ mov.f32 %f141, 0f38D1B717;
+ max.f32 %f142, %f138, %f141;
+ max.f32 %f143, %f139, %f141;
+ max.f32 %f144, %f140, %f141;
+ fma.rn.f32 %f7, %f541, %f142, %f128;
+ fma.rn.f32 %f8, %f542, %f143, %f127;
+ fma.rn.f32 %f9, %f543, %f144, %f126;
+ ld.global.u32 %r5, [hemispherical];
+ setp.gt.f32 %p10, %f132, %f136;
+ neg.f32 %f145, %f542;
+ selp.f32 %f146, %f145, 0f00000000, %p10;
+ neg.f32 %f147, %f543;
+ selp.f32 %f148, %f541, %f147, %p10;
+ selp.f32 %f149, 0f00000000, %f542, %p10;
+ mul.f32 %f150, %f148, %f148;
+ fma.rn.f32 %f151, %f146, %f146, %f150;
+ fma.rn.f32 %f152, %f149, %f149, %f151;
+ sqrt.rn.f32 %f153, %f152;
+ rcp.rn.f32 %f154, %f153;
+ mul.f32 %f10, %f146, %f154;
+ mul.f32 %f11, %f148, %f154;
+ mul.f32 %f12, %f149, %f154;
+ ld.global.v2.u32 {%r114, %r115}, [pixelID];
+ cvt.u64.u32 %rd34, %r114;
+ cvt.u64.u32 %rd35, %r115;
+ mov.u64 %rd39, rnd_seeds;
+ cvta.global.u64 %rd33, %rd39;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd33, %r91, %r92, %rd34, %rd35, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f558, 0f00000000;
+ setp.lt.s32 %p11, %r1, 1;
+ @%p11 bra BB0_56;
+
+ cvt.rn.f32.s32 %f156, %r1;
+ rcp.rn.f32 %f13, %f156;
+ ld.u32 %r279, [%rd32];
+ mul.f32 %f14, %f7, 0f3456BF95;
+ mul.f32 %f15, %f8, 0f3456BF95;
+ mul.f32 %f16, %f9, 0f3456BF95;
+ mul.f32 %f157, %f541, %f11;
+ mul.f32 %f158, %f542, %f10;
+ sub.f32 %f17, %f158, %f157;
+ mul.f32 %f159, %f543, %f10;
+ mul.f32 %f160, %f541, %f12;
+ sub.f32 %f18, %f160, %f159;
+ mul.f32 %f161, %f542, %f12;
+ mul.f32 %f162, %f543, %f11;
+ sub.f32 %f19, %f162, %f161;
+ mov.f32 %f558, 0f00000000;
+ mov.u32 %r118, 0;
+ abs.f32 %f240, %f15;
+ abs.f32 %f241, %f14;
+ max.f32 %f242, %f241, %f240;
+ abs.f32 %f243, %f16;
+ max.f32 %f244, %f242, %f243;
+ mov.u32 %r276, %r118;
+
+BB0_5:
+ cvt.rn.f32.s32 %f21, %r276;
+ mov.u32 %r278, %r118;
+
+BB0_6:
+ mad.lo.s32 %r120, %r279, 1664525, 1013904223;
+ and.b32 %r121, %r120, 16777215;
+ cvt.rn.f32.u32 %f163, %r121;
+ fma.rn.f32 %f164, %f163, 0f33800000, %f21;
+ mul.f32 %f165, %f13, %f164;
+ mad.lo.s32 %r279, %r120, 1664525, 1013904223;
+ and.b32 %r122, %r279, 16777215;
+ cvt.rn.f32.u32 %f166, %r122;
+ cvt.rn.f32.s32 %f167, %r278;
+ fma.rn.f32 %f168, %f166, 0f33800000, %f167;
+ mul.f32 %f169, %f13, %f168;
+ sqrt.rn.f32 %f23, %f165;
+ mul.f32 %f552, %f169, 0f40C90FDB;
+ abs.f32 %f25, %f552;
+ setp.neu.f32 %p12, %f25, 0f7F800000;
+ mov.f32 %f546, %f552;
+ @%p12 bra BB0_8;
+
+ mov.f32 %f170, 0f00000000;
+ mul.rn.f32 %f546, %f552, %f170;
+
+BB0_8:
+ mul.f32 %f171, %f546, 0f3F22F983;
+ cvt.rni.s32.f32 %r289, %f171;
+ cvt.rn.f32.s32 %f172, %r289;
+ neg.f32 %f173, %f172;
+ mov.f32 %f174, 0f3FC90FDA;
+ fma.rn.f32 %f175, %f173, %f174, %f546;
+ mov.f32 %f176, 0f33A22168;
+ fma.rn.f32 %f177, %f173, %f176, %f175;
+ mov.f32 %f178, 0f27C234C5;
+ fma.rn.f32 %f547, %f173, %f178, %f177;
+ abs.f32 %f179, %f546;
+ setp.leu.f32 %p13, %f179, 0f47CE4780;
+ @%p13 bra BB0_19;
+
+ mov.b32 %r13, %f546;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r125, %r13, 8;
+ or.b32 %r15, %r125, -2147483648;
+ add.u64 %rd41, %SP, 0;
+ cvta.to.local.u64 %rd110, %rd41;
+ mov.u32 %r281, 0;
+ mov.u64 %rd109, __cudart_i2opi_f;
+ mov.u32 %r280, -6;
+
+BB0_10:
+ .pragma "nounroll";
+ ld.const.u32 %r128, [%rd109];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r126, %r128, %r15, %r281;
+ madc.hi.u32 %r281, %r128, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd110], %r126;
+ add.s64 %rd110, %rd110, 4;
+ add.s64 %rd109, %rd109, 4;
+ add.s32 %r280, %r280, 1;
+ setp.ne.s32 %p14, %r280, 0;
+ @%p14 bra BB0_10;
+
+ and.b32 %r131, %r14, 255;
+ add.s32 %r132, %r131, -128;
+ shr.u32 %r133, %r132, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd43, %rd41;
+ st.local.u32 [%rd43+24], %r281;
+ mov.u32 %r134, 6;
+ sub.s32 %r135, %r134, %r133;
+ mul.wide.s32 %rd44, %r135, 4;
+ add.s64 %rd8, %rd43, %rd44;
+ ld.local.u32 %r282, [%rd8];
+ ld.local.u32 %r283, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p15, %r23, 0;
+ @%p15 bra BB0_13;
+
+ mov.u32 %r136, 32;
+ sub.s32 %r137, %r136, %r23;
+ shr.u32 %r138, %r283, %r137;
+ shl.b32 %r139, %r282, %r23;
+ add.s32 %r282, %r138, %r139;
+ ld.local.u32 %r140, [%rd8+-8];
+ shr.u32 %r141, %r140, %r137;
+ shl.b32 %r142, %r283, %r23;
+ add.s32 %r283, %r141, %r142;
+
+BB0_13:
+ shr.u32 %r143, %r283, 30;
+ shl.b32 %r144, %r282, 2;
+ add.s32 %r284, %r143, %r144;
+ shl.b32 %r29, %r283, 2;
+ shr.u32 %r145, %r284, 31;
+ shr.u32 %r146, %r282, 30;
+ add.s32 %r30, %r145, %r146;
+ setp.eq.s32 %p16, %r145, 0;
+ @%p16 bra BB0_14;
+ bra.uni BB0_15;
+
+BB0_14:
+ mov.u32 %r285, %r20;
+ mov.u32 %r286, %r29;
+ bra.uni BB0_16;
+
+BB0_15:
+ not.b32 %r147, %r284;
+ neg.s32 %r286, %r29;
+ setp.eq.s32 %p17, %r29, 0;
+ selp.u32 %r148, 1, 0, %p17;
+ add.s32 %r284, %r148, %r147;
+ xor.b32 %r285, %r20, -2147483648;
+
+BB0_16:
+ clz.b32 %r288, %r284;
+ setp.eq.s32 %p18, %r288, 0;
+ shl.b32 %r149, %r284, %r288;
+ mov.u32 %r150, 32;
+ sub.s32 %r151, %r150, %r288;
+ shr.u32 %r152, %r286, %r151;
+ add.s32 %r153, %r152, %r149;
+ selp.b32 %r38, %r284, %r153, %p18;
+ mov.u32 %r154, -921707870;
+ mul.hi.u32 %r287, %r38, %r154;
+ setp.eq.s32 %p19, %r20, 0;
+ neg.s32 %r155, %r30;
+ selp.b32 %r289, %r30, %r155, %p19;
+ setp.lt.s32 %p20, %r287, 1;
+ @%p20 bra BB0_18;
+
+ mul.lo.s32 %r156, %r38, -921707870;
+ shr.u32 %r157, %r156, 31;
+ shl.b32 %r158, %r287, 1;
+ add.s32 %r287, %r157, %r158;
+ add.s32 %r288, %r288, 1;
+
+BB0_18:
+ mov.u32 %r159, 126;
+ sub.s32 %r160, %r159, %r288;
+ shl.b32 %r161, %r160, 23;
+ add.s32 %r162, %r287, 1;
+ shr.u32 %r163, %r162, 7;
+ add.s32 %r164, %r163, 1;
+ shr.u32 %r165, %r164, 1;
+ add.s32 %r166, %r165, %r161;
+ or.b32 %r167, %r166, %r285;
+ mov.b32 %f547, %r167;
+
+BB0_19:
+ mul.rn.f32 %f31, %f547, %f547;
+ add.s32 %r46, %r289, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p21, %r47, 0;
+ @%p21 bra BB0_21;
+ bra.uni BB0_20;
+
+BB0_21:
+ mov.f32 %f182, 0f3C08839E;
+ mov.f32 %f183, 0fB94CA1F9;
+ fma.rn.f32 %f548, %f183, %f31, %f182;
+ bra.uni BB0_22;
+
+BB0_20:
+ mov.f32 %f180, 0fBAB6061A;
+ mov.f32 %f181, 0f37CCF5CE;
+ fma.rn.f32 %f548, %f181, %f31, %f180;
+
+BB0_22:
+ @%p21 bra BB0_24;
+ bra.uni BB0_23;
+
+BB0_24:
+ mov.f32 %f187, 0fBE2AAAA3;
+ fma.rn.f32 %f188, %f548, %f31, %f187;
+ mov.f32 %f189, 0f00000000;
+ fma.rn.f32 %f549, %f188, %f31, %f189;
+ bra.uni BB0_25;
+
+BB0_23:
+ mov.f32 %f184, 0f3D2AAAA5;
+ fma.rn.f32 %f185, %f548, %f31, %f184;
+ mov.f32 %f186, 0fBF000000;
+ fma.rn.f32 %f549, %f185, %f31, %f186;
+
+BB0_25:
+ fma.rn.f32 %f550, %f549, %f547, %f547;
+ @%p21 bra BB0_27;
+
+ mov.f32 %f190, 0f3F800000;
+ fma.rn.f32 %f550, %f549, %f31, %f190;
+
+BB0_27:
+ and.b32 %r168, %r46, 2;
+ setp.eq.s32 %p24, %r168, 0;
+ @%p24 bra BB0_29;
+
+ mov.f32 %f191, 0f00000000;
+ mov.f32 %f192, 0fBF800000;
+ fma.rn.f32 %f550, %f550, %f192, %f191;
+
+BB0_29:
+ @%p12 bra BB0_31;
+
+ mov.f32 %f193, 0f00000000;
+ mul.rn.f32 %f552, %f552, %f193;
+
+BB0_31:
+ mul.f32 %f194, %f552, 0f3F22F983;
+ cvt.rni.s32.f32 %r299, %f194;
+ cvt.rn.f32.s32 %f195, %r299;
+ neg.f32 %f196, %f195;
+ fma.rn.f32 %f198, %f196, %f174, %f552;
+ fma.rn.f32 %f200, %f196, %f176, %f198;
+ fma.rn.f32 %f553, %f196, %f178, %f200;
+ abs.f32 %f202, %f552;
+ setp.leu.f32 %p26, %f202, 0f47CE4780;
+ @%p26 bra BB0_42;
+
+ mov.b32 %r49, %f552;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r171, %r49, 8;
+ or.b32 %r51, %r171, -2147483648;
+ add.u64 %rd46, %SP, 0;
+ cvta.to.local.u64 %rd112, %rd46;
+ mov.u32 %r291, 0;
+ mov.u64 %rd111, __cudart_i2opi_f;
+ mov.u32 %r290, -6;
+
+BB0_33:
+ .pragma "nounroll";
+ ld.const.u32 %r174, [%rd111];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r172, %r174, %r51, %r291;
+ madc.hi.u32 %r291, %r174, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd112], %r172;
+ add.s64 %rd112, %rd112, 4;
+ add.s64 %rd111, %rd111, 4;
+ add.s32 %r290, %r290, 1;
+ setp.ne.s32 %p27, %r290, 0;
+ @%p27 bra BB0_33;
+
+ and.b32 %r177, %r50, 255;
+ add.s32 %r178, %r177, -128;
+ shr.u32 %r179, %r178, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd48, %rd46;
+ st.local.u32 [%rd48+24], %r291;
+ mov.u32 %r180, 6;
+ sub.s32 %r181, %r180, %r179;
+ mul.wide.s32 %rd49, %r181, 4;
+ add.s64 %rd14, %rd48, %rd49;
+ ld.local.u32 %r292, [%rd14];
+ ld.local.u32 %r293, [%rd14+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p28, %r59, 0;
+ @%p28 bra BB0_36;
+
+ mov.u32 %r182, 32;
+ sub.s32 %r183, %r182, %r59;
+ shr.u32 %r184, %r293, %r183;
+ shl.b32 %r185, %r292, %r59;
+ add.s32 %r292, %r184, %r185;
+ ld.local.u32 %r186, [%rd14+-8];
+ shr.u32 %r187, %r186, %r183;
+ shl.b32 %r188, %r293, %r59;
+ add.s32 %r293, %r187, %r188;
+
+BB0_36:
+ shr.u32 %r189, %r293, 30;
+ shl.b32 %r190, %r292, 2;
+ add.s32 %r294, %r189, %r190;
+ shl.b32 %r65, %r293, 2;
+ shr.u32 %r191, %r294, 31;
+ shr.u32 %r192, %r292, 30;
+ add.s32 %r66, %r191, %r192;
+ setp.eq.s32 %p29, %r191, 0;
+ @%p29 bra BB0_37;
+ bra.uni BB0_38;
+
+BB0_37:
+ mov.u32 %r295, %r56;
+ mov.u32 %r296, %r65;
+ bra.uni BB0_39;
+
+BB0_38:
+ not.b32 %r193, %r294;
+ neg.s32 %r296, %r65;
+ setp.eq.s32 %p30, %r65, 0;
+ selp.u32 %r194, 1, 0, %p30;
+ add.s32 %r294, %r194, %r193;
+ xor.b32 %r295, %r56, -2147483648;
+
+BB0_39:
+ clz.b32 %r298, %r294;
+ setp.eq.s32 %p31, %r298, 0;
+ shl.b32 %r195, %r294, %r298;
+ mov.u32 %r196, 32;
+ sub.s32 %r197, %r196, %r298;
+ shr.u32 %r198, %r296, %r197;
+ add.s32 %r199, %r198, %r195;
+ selp.b32 %r74, %r294, %r199, %p31;
+ mov.u32 %r200, -921707870;
+ mul.hi.u32 %r297, %r74, %r200;
+ setp.eq.s32 %p32, %r56, 0;
+ neg.s32 %r201, %r66;
+ selp.b32 %r299, %r66, %r201, %p32;
+ setp.lt.s32 %p33, %r297, 1;
+ @%p33 bra BB0_41;
+
+ mul.lo.s32 %r202, %r74, -921707870;
+ shr.u32 %r203, %r202, 31;
+ shl.b32 %r204, %r297, 1;
+ add.s32 %r297, %r203, %r204;
+ add.s32 %r298, %r298, 1;
+
+BB0_41:
+ mov.u32 %r205, 126;
+ sub.s32 %r206, %r205, %r298;
+ shl.b32 %r207, %r206, 23;
+ add.s32 %r208, %r297, 1;
+ shr.u32 %r209, %r208, 7;
+ add.s32 %r210, %r209, 1;
+ shr.u32 %r211, %r210, 1;
+ add.s32 %r212, %r211, %r207;
+ or.b32 %r213, %r212, %r295;
+ mov.b32 %f553, %r213;
+
+BB0_42:
+ mul.rn.f32 %f48, %f553, %f553;
+ and.b32 %r82, %r299, 1;
+ setp.eq.s32 %p34, %r82, 0;
+ @%p34 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mov.f32 %f205, 0f3C08839E;
+ mov.f32 %f206, 0fB94CA1F9;
+ fma.rn.f32 %f554, %f206, %f48, %f205;
+ bra.uni BB0_45;
+
+BB0_43:
+ mov.f32 %f203, 0fBAB6061A;
+ mov.f32 %f204, 0f37CCF5CE;
+ fma.rn.f32 %f554, %f204, %f48, %f203;
+
+BB0_45:
+ @%p34 bra BB0_47;
+ bra.uni BB0_46;
+
+BB0_47:
+ mov.f32 %f210, 0fBE2AAAA3;
+ fma.rn.f32 %f211, %f554, %f48, %f210;
+ mov.f32 %f212, 0f00000000;
+ fma.rn.f32 %f555, %f211, %f48, %f212;
+ bra.uni BB0_48;
+
+BB0_46:
+ mov.f32 %f207, 0f3D2AAAA5;
+ fma.rn.f32 %f208, %f554, %f48, %f207;
+ mov.f32 %f209, 0fBF000000;
+ fma.rn.f32 %f555, %f208, %f48, %f209;
+
+BB0_48:
+ fma.rn.f32 %f556, %f555, %f553, %f553;
+ @%p34 bra BB0_50;
+
+ mov.f32 %f213, 0f3F800000;
+ fma.rn.f32 %f556, %f555, %f48, %f213;
+
+BB0_50:
+ and.b32 %r214, %r299, 2;
+ setp.eq.s32 %p37, %r214, 0;
+ @%p37 bra BB0_52;
+
+ mov.f32 %f214, 0f00000000;
+ mov.f32 %f215, 0fBF800000;
+ fma.rn.f32 %f556, %f556, %f215, %f214;
+
+BB0_52:
+ mul.f32 %f216, %f23, %f550;
+ mul.f32 %f217, %f216, %f216;
+ mov.f32 %f218, 0f3F800000;
+ sub.f32 %f219, %f218, %f217;
+ mul.f32 %f220, %f23, %f556;
+ mul.f32 %f221, %f220, %f220;
+ sub.f32 %f222, %f219, %f221;
+ mov.f32 %f223, 0f00000000;
+ max.f32 %f224, %f223, %f222;
+ sqrt.rn.f32 %f225, %f224;
+ mul.f32 %f226, %f10, %f220;
+ mul.f32 %f227, %f11, %f220;
+ mul.f32 %f228, %f12, %f220;
+ fma.rn.f32 %f229, %f19, %f216, %f226;
+ fma.rn.f32 %f230, %f18, %f216, %f227;
+ fma.rn.f32 %f231, %f17, %f216, %f228;
+ fma.rn.f32 %f60, %f541, %f225, %f229;
+ fma.rn.f32 %f61, %f542, %f225, %f230;
+ fma.rn.f32 %f62, %f543, %f225, %f231;
+ setp.gt.f32 %p38, %f61, 0f00000000;
+ setp.eq.s32 %p39, %r5, 0;
+ or.pred %p40, %p39, %p38;
+ @!%p40 bra BB0_54;
+ bra.uni BB0_53;
+
+BB0_53:
+ add.u64 %rd50, %SP, 28;
+ cvta.to.local.u64 %rd51, %rd50;
+ max.f32 %f238, %f244, %f141;
+ mov.u32 %r218, 1065353216;
+ st.local.u32 [%rd51], %r218;
+ ld.global.u32 %r215, [root];
+ mov.u32 %r216, 1;
+ mov.f32 %f239, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r215, %f7, %f8, %f9, %f60, %f61, %f62, %r216, %f238, %f239, %rd50, %r92);
+ // inline asm
+ ld.local.f32 %f246, [%rd51];
+ add.f32 %f558, %f558, %f246;
+
+BB0_54:
+ add.s32 %r278, %r278, 1;
+ setp.lt.s32 %p41, %r278, %r1;
+ @%p41 bra BB0_6;
+
+ add.s32 %r276, %r276, 1;
+ setp.lt.s32 %p42, %r276, %r1;
+ @%p42 bra BB0_5;
+
+BB0_56:
+ mul.lo.s32 %r219, %r1, %r1;
+ cvt.rn.f32.s32 %f247, %r219;
+ div.rn.f32 %f248, %f558, %f247;
+ ld.global.f32 %f249, [skyColor];
+ mul.f32 %f66, %f248, %f249;
+ ld.global.f32 %f250, [skyColor+4];
+ mul.f32 %f67, %f248, %f250;
+ ld.global.f32 %f251, [skyColor+8];
+ mul.f32 %f68, %f248, %f251;
+ ld.global.u32 %r300, [imageEnabled];
+ and.b32 %r220, %r300, 1;
+ setp.eq.b32 %p43, %r220, 1;
+ @!%p43 bra BB0_91;
+ bra.uni BB0_57;
+
+BB0_57:
+ mov.f32 %f254, 0f3E666666;
+ cvt.rzi.f32.f32 %f255, %f254;
+ fma.rn.f32 %f256, %f255, 0fC0000000, 0f3EE66666;
+ abs.f32 %f69, %f256;
+ abs.f32 %f70, %f66;
+ setp.lt.f32 %p44, %f70, 0f00800000;
+ mul.f32 %f257, %f70, 0f4B800000;
+ selp.f32 %f258, 0fC3170000, 0fC2FE0000, %p44;
+ selp.f32 %f259, %f257, %f70, %p44;
+ mov.b32 %r221, %f259;
+ and.b32 %r222, %r221, 8388607;
+ or.b32 %r223, %r222, 1065353216;
+ mov.b32 %f260, %r223;
+ shr.u32 %r224, %r221, 23;
+ cvt.rn.f32.u32 %f261, %r224;
+ add.f32 %f262, %f258, %f261;
+ setp.gt.f32 %p45, %f260, 0f3FB504F3;
+ mul.f32 %f263, %f260, 0f3F000000;
+ add.f32 %f264, %f262, 0f3F800000;
+ selp.f32 %f265, %f263, %f260, %p45;
+ selp.f32 %f266, %f264, %f262, %p45;
+ add.f32 %f267, %f265, 0fBF800000;
+ add.f32 %f253, %f265, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f252,%f253;
+ // inline asm
+ add.f32 %f268, %f267, %f267;
+ mul.f32 %f269, %f252, %f268;
+ mul.f32 %f270, %f269, %f269;
+ mov.f32 %f271, 0f3C4CAF63;
+ mov.f32 %f272, 0f3B18F0FE;
+ fma.rn.f32 %f273, %f272, %f270, %f271;
+ mov.f32 %f274, 0f3DAAAABD;
+ fma.rn.f32 %f275, %f273, %f270, %f274;
+ mul.rn.f32 %f276, %f275, %f270;
+ mul.rn.f32 %f277, %f276, %f269;
+ sub.f32 %f278, %f267, %f269;
+ neg.f32 %f279, %f269;
+ add.f32 %f280, %f278, %f278;
+ fma.rn.f32 %f281, %f279, %f267, %f280;
+ mul.rn.f32 %f282, %f252, %f281;
+ add.f32 %f283, %f277, %f269;
+ sub.f32 %f284, %f269, %f283;
+ add.f32 %f285, %f277, %f284;
+ add.f32 %f286, %f282, %f285;
+ add.f32 %f287, %f283, %f286;
+ sub.f32 %f288, %f283, %f287;
+ add.f32 %f289, %f286, %f288;
+ mov.f32 %f290, 0f3F317200;
+ mul.rn.f32 %f291, %f266, %f290;
+ mov.f32 %f292, 0f35BFBE8E;
+ mul.rn.f32 %f293, %f266, %f292;
+ add.f32 %f294, %f291, %f287;
+ sub.f32 %f295, %f291, %f294;
+ add.f32 %f296, %f287, %f295;
+ add.f32 %f297, %f289, %f296;
+ add.f32 %f298, %f293, %f297;
+ add.f32 %f299, %f294, %f298;
+ sub.f32 %f300, %f294, %f299;
+ add.f32 %f301, %f298, %f300;
+ mov.f32 %f302, 0f3EE66666;
+ mul.rn.f32 %f303, %f302, %f299;
+ neg.f32 %f304, %f303;
+ fma.rn.f32 %f305, %f302, %f299, %f304;
+ fma.rn.f32 %f306, %f302, %f301, %f305;
+ mov.f32 %f307, 0f00000000;
+ fma.rn.f32 %f308, %f307, %f299, %f306;
+ add.rn.f32 %f309, %f303, %f308;
+ neg.f32 %f310, %f309;
+ add.rn.f32 %f311, %f303, %f310;
+ add.rn.f32 %f312, %f311, %f308;
+ mov.b32 %r225, %f309;
+ setp.eq.s32 %p46, %r225, 1118925336;
+ add.s32 %r226, %r225, -1;
+ mov.b32 %f313, %r226;
+ add.f32 %f314, %f312, 0f37000000;
+ selp.f32 %f315, %f313, %f309, %p46;
+ selp.f32 %f71, %f314, %f312, %p46;
+ mul.f32 %f316, %f315, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f317, %f316;
+ mov.f32 %f318, 0fBF317200;
+ fma.rn.f32 %f319, %f317, %f318, %f315;
+ mov.f32 %f320, 0fB5BFBE8E;
+ fma.rn.f32 %f321, %f317, %f320, %f319;
+ mul.f32 %f322, %f321, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f323, %f322;
+ add.f32 %f324, %f317, 0f00000000;
+ ex2.approx.f32 %f325, %f324;
+ mul.f32 %f326, %f323, %f325;
+ setp.lt.f32 %p47, %f315, 0fC2D20000;
+ selp.f32 %f327, 0f00000000, %f326, %p47;
+ setp.gt.f32 %p48, %f315, 0f42D20000;
+ selp.f32 %f560, 0f7F800000, %f327, %p48;
+ setp.eq.f32 %p49, %f560, 0f7F800000;
+ @%p49 bra BB0_59;
+
+ fma.rn.f32 %f560, %f560, %f71, %f560;
+
+BB0_59:
+ setp.lt.f32 %p50, %f66, 0f00000000;
+ setp.eq.f32 %p51, %f69, 0f3F800000;
+ and.pred %p1, %p50, %p51;
+ mov.b32 %r227, %f560;
+ xor.b32 %r228, %r227, -2147483648;
+ mov.b32 %f328, %r228;
+ selp.f32 %f562, %f328, %f560, %p1;
+ setp.eq.f32 %p52, %f66, 0f00000000;
+ @%p52 bra BB0_62;
+ bra.uni BB0_60;
+
+BB0_62:
+ add.f32 %f331, %f66, %f66;
+ selp.f32 %f562, %f331, 0f00000000, %p51;
+ bra.uni BB0_63;
+
+BB0_100:
+ mov.u64 %rd105, image_HDR;
+ cvta.global.u64 %rd100, %rd105;
+ mov.u32 %r271, 8;
+ // inline asm
+ call (%rd99), _rt_buffer_get_64, (%rd100, %r91, %r271, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f512, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f512;}
+
+ // inline asm
+ mov.u16 %rs41, 0;
+ st.v4.u16 [%rd99], {%rs40, %rs40, %rs40, %rs41};
+ bra.uni BB0_101;
+
+BB0_60:
+ setp.geu.f32 %p53, %f66, 0f00000000;
+ @%p53 bra BB0_63;
+
+ cvt.rzi.f32.f32 %f330, %f302;
+ setp.neu.f32 %p54, %f330, 0f3EE66666;
+ selp.f32 %f562, 0f7FFFFFFF, %f562, %p54;
+
+BB0_63:
+ abs.f32 %f513, %f66;
+ add.f32 %f332, %f513, 0f3EE66666;
+ mov.b32 %r229, %f332;
+ setp.lt.s32 %p56, %r229, 2139095040;
+ @%p56 bra BB0_68;
+
+ abs.f32 %f530, %f66;
+ setp.gtu.f32 %p57, %f530, 0f7F800000;
+ @%p57 bra BB0_67;
+ bra.uni BB0_65;
+
+BB0_67:
+ add.f32 %f562, %f66, 0f3EE66666;
+ bra.uni BB0_68;
+
+BB0_65:
+ abs.f32 %f531, %f66;
+ setp.neu.f32 %p58, %f531, 0f7F800000;
+ @%p58 bra BB0_68;
+
+ selp.f32 %f562, 0fFF800000, 0f7F800000, %p1;
+
+BB0_68:
+ mov.f32 %f521, 0fB5BFBE8E;
+ mov.f32 %f520, 0fBF317200;
+ mov.f32 %f519, 0f00000000;
+ mov.f32 %f518, 0f35BFBE8E;
+ mov.f32 %f517, 0f3F317200;
+ mov.f32 %f516, 0f3DAAAABD;
+ mov.f32 %f515, 0f3C4CAF63;
+ mov.f32 %f514, 0f3B18F0FE;
+ setp.eq.f32 %p59, %f66, 0f3F800000;
+ selp.f32 %f82, 0f3F800000, %f562, %p59;
+ abs.f32 %f83, %f67;
+ setp.lt.f32 %p60, %f83, 0f00800000;
+ mul.f32 %f335, %f83, 0f4B800000;
+ selp.f32 %f336, 0fC3170000, 0fC2FE0000, %p60;
+ selp.f32 %f337, %f335, %f83, %p60;
+ mov.b32 %r230, %f337;
+ and.b32 %r231, %r230, 8388607;
+ or.b32 %r232, %r231, 1065353216;
+ mov.b32 %f338, %r232;
+ shr.u32 %r233, %r230, 23;
+ cvt.rn.f32.u32 %f339, %r233;
+ add.f32 %f340, %f336, %f339;
+ setp.gt.f32 %p61, %f338, 0f3FB504F3;
+ mul.f32 %f341, %f338, 0f3F000000;
+ add.f32 %f342, %f340, 0f3F800000;
+ selp.f32 %f343, %f341, %f338, %p61;
+ selp.f32 %f344, %f342, %f340, %p61;
+ add.f32 %f345, %f343, 0fBF800000;
+ add.f32 %f334, %f343, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f333,%f334;
+ // inline asm
+ add.f32 %f346, %f345, %f345;
+ mul.f32 %f347, %f333, %f346;
+ mul.f32 %f348, %f347, %f347;
+ fma.rn.f32 %f351, %f514, %f348, %f515;
+ fma.rn.f32 %f353, %f351, %f348, %f516;
+ mul.rn.f32 %f354, %f353, %f348;
+ mul.rn.f32 %f355, %f354, %f347;
+ sub.f32 %f356, %f345, %f347;
+ neg.f32 %f357, %f347;
+ add.f32 %f358, %f356, %f356;
+ fma.rn.f32 %f359, %f357, %f345, %f358;
+ mul.rn.f32 %f360, %f333, %f359;
+ add.f32 %f361, %f355, %f347;
+ sub.f32 %f362, %f347, %f361;
+ add.f32 %f363, %f355, %f362;
+ add.f32 %f364, %f360, %f363;
+ add.f32 %f365, %f361, %f364;
+ sub.f32 %f366, %f361, %f365;
+ add.f32 %f367, %f364, %f366;
+ mul.rn.f32 %f369, %f344, %f517;
+ mul.rn.f32 %f371, %f344, %f518;
+ add.f32 %f372, %f369, %f365;
+ sub.f32 %f373, %f369, %f372;
+ add.f32 %f374, %f365, %f373;
+ add.f32 %f375, %f367, %f374;
+ add.f32 %f376, %f371, %f375;
+ add.f32 %f377, %f372, %f376;
+ sub.f32 %f378, %f372, %f377;
+ add.f32 %f379, %f376, %f378;
+ mul.rn.f32 %f381, %f302, %f377;
+ neg.f32 %f382, %f381;
+ fma.rn.f32 %f383, %f302, %f377, %f382;
+ fma.rn.f32 %f384, %f302, %f379, %f383;
+ fma.rn.f32 %f386, %f519, %f377, %f384;
+ add.rn.f32 %f387, %f381, %f386;
+ neg.f32 %f388, %f387;
+ add.rn.f32 %f389, %f381, %f388;
+ add.rn.f32 %f390, %f389, %f386;
+ mov.b32 %r234, %f387;
+ setp.eq.s32 %p62, %r234, 1118925336;
+ add.s32 %r235, %r234, -1;
+ mov.b32 %f391, %r235;
+ add.f32 %f392, %f390, 0f37000000;
+ selp.f32 %f393, %f391, %f387, %p62;
+ selp.f32 %f84, %f392, %f390, %p62;
+ mul.f32 %f394, %f393, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f395, %f394;
+ fma.rn.f32 %f397, %f395, %f520, %f393;
+ fma.rn.f32 %f399, %f395, %f521, %f397;
+ mul.f32 %f400, %f399, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f401, %f400;
+ add.f32 %f402, %f395, 0f00000000;
+ ex2.approx.f32 %f403, %f402;
+ mul.f32 %f404, %f401, %f403;
+ setp.lt.f32 %p63, %f393, 0fC2D20000;
+ selp.f32 %f405, 0f00000000, %f404, %p63;
+ setp.gt.f32 %p64, %f393, 0f42D20000;
+ selp.f32 %f563, 0f7F800000, %f405, %p64;
+ setp.eq.f32 %p65, %f563, 0f7F800000;
+ @%p65 bra BB0_70;
+
+ fma.rn.f32 %f563, %f563, %f84, %f563;
+
+BB0_70:
+ setp.lt.f32 %p66, %f67, 0f00000000;
+ and.pred %p2, %p66, %p51;
+ mov.b32 %r236, %f563;
+ xor.b32 %r237, %r236, -2147483648;
+ mov.b32 %f406, %r237;
+ selp.f32 %f565, %f406, %f563, %p2;
+ setp.eq.f32 %p68, %f67, 0f00000000;
+ @%p68 bra BB0_73;
+ bra.uni BB0_71;
+
+BB0_73:
+ add.f32 %f409, %f67, %f67;
+ selp.f32 %f565, %f409, 0f00000000, %p51;
+ bra.uni BB0_74;
+
+BB0_71:
+ setp.geu.f32 %p69, %f67, 0f00000000;
+ @%p69 bra BB0_74;
+
+ mov.f32 %f537, 0f3EE66666;
+ cvt.rzi.f32.f32 %f408, %f537;
+ setp.neu.f32 %p70, %f408, 0f3EE66666;
+ selp.f32 %f565, 0f7FFFFFFF, %f565, %p70;
+
+BB0_74:
+ abs.f32 %f532, %f67;
+ add.f32 %f410, %f532, 0f3EE66666;
+ mov.b32 %r238, %f410;
+ setp.lt.s32 %p72, %r238, 2139095040;
+ @%p72 bra BB0_79;
+
+ abs.f32 %f535, %f67;
+ setp.gtu.f32 %p73, %f535, 0f7F800000;
+ @%p73 bra BB0_78;
+ bra.uni BB0_76;
+
+BB0_78:
+ add.f32 %f565, %f67, 0f3EE66666;
+ bra.uni BB0_79;
+
+BB0_76:
+ abs.f32 %f536, %f67;
+ setp.neu.f32 %p74, %f536, 0f7F800000;
+ @%p74 bra BB0_79;
+
+ selp.f32 %f565, 0fFF800000, 0f7F800000, %p2;
+
+BB0_79:
+ mov.f32 %f533, 0f3EE66666;
+ mov.f32 %f529, 0fB5BFBE8E;
+ mov.f32 %f528, 0fBF317200;
+ mov.f32 %f527, 0f00000000;
+ mov.f32 %f526, 0f35BFBE8E;
+ mov.f32 %f525, 0f3F317200;
+ mov.f32 %f524, 0f3DAAAABD;
+ mov.f32 %f523, 0f3C4CAF63;
+ mov.f32 %f522, 0f3B18F0FE;
+ setp.eq.f32 %p75, %f67, 0f3F800000;
+ selp.f32 %f95, 0f3F800000, %f565, %p75;
+ abs.f32 %f96, %f68;
+ setp.lt.f32 %p76, %f96, 0f00800000;
+ mul.f32 %f413, %f96, 0f4B800000;
+ selp.f32 %f414, 0fC3170000, 0fC2FE0000, %p76;
+ selp.f32 %f415, %f413, %f96, %p76;
+ mov.b32 %r239, %f415;
+ and.b32 %r240, %r239, 8388607;
+ or.b32 %r241, %r240, 1065353216;
+ mov.b32 %f416, %r241;
+ shr.u32 %r242, %r239, 23;
+ cvt.rn.f32.u32 %f417, %r242;
+ add.f32 %f418, %f414, %f417;
+ setp.gt.f32 %p77, %f416, 0f3FB504F3;
+ mul.f32 %f419, %f416, 0f3F000000;
+ add.f32 %f420, %f418, 0f3F800000;
+ selp.f32 %f421, %f419, %f416, %p77;
+ selp.f32 %f422, %f420, %f418, %p77;
+ add.f32 %f423, %f421, 0fBF800000;
+ add.f32 %f412, %f421, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f411,%f412;
+ // inline asm
+ add.f32 %f424, %f423, %f423;
+ mul.f32 %f425, %f411, %f424;
+ mul.f32 %f426, %f425, %f425;
+ fma.rn.f32 %f429, %f522, %f426, %f523;
+ fma.rn.f32 %f431, %f429, %f426, %f524;
+ mul.rn.f32 %f432, %f431, %f426;
+ mul.rn.f32 %f433, %f432, %f425;
+ sub.f32 %f434, %f423, %f425;
+ neg.f32 %f435, %f425;
+ add.f32 %f436, %f434, %f434;
+ fma.rn.f32 %f437, %f435, %f423, %f436;
+ mul.rn.f32 %f438, %f411, %f437;
+ add.f32 %f439, %f433, %f425;
+ sub.f32 %f440, %f425, %f439;
+ add.f32 %f441, %f433, %f440;
+ add.f32 %f442, %f438, %f441;
+ add.f32 %f443, %f439, %f442;
+ sub.f32 %f444, %f439, %f443;
+ add.f32 %f445, %f442, %f444;
+ mul.rn.f32 %f447, %f422, %f525;
+ mul.rn.f32 %f449, %f422, %f526;
+ add.f32 %f450, %f447, %f443;
+ sub.f32 %f451, %f447, %f450;
+ add.f32 %f452, %f443, %f451;
+ add.f32 %f453, %f445, %f452;
+ add.f32 %f454, %f449, %f453;
+ add.f32 %f455, %f450, %f454;
+ sub.f32 %f456, %f450, %f455;
+ add.f32 %f457, %f454, %f456;
+ mul.rn.f32 %f459, %f533, %f455;
+ neg.f32 %f460, %f459;
+ fma.rn.f32 %f461, %f533, %f455, %f460;
+ fma.rn.f32 %f462, %f533, %f457, %f461;
+ fma.rn.f32 %f464, %f527, %f455, %f462;
+ add.rn.f32 %f465, %f459, %f464;
+ neg.f32 %f466, %f465;
+ add.rn.f32 %f467, %f459, %f466;
+ add.rn.f32 %f468, %f467, %f464;
+ mov.b32 %r243, %f465;
+ setp.eq.s32 %p78, %r243, 1118925336;
+ add.s32 %r244, %r243, -1;
+ mov.b32 %f469, %r244;
+ add.f32 %f470, %f468, 0f37000000;
+ selp.f32 %f471, %f469, %f465, %p78;
+ selp.f32 %f97, %f470, %f468, %p78;
+ mul.f32 %f472, %f471, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f473, %f472;
+ fma.rn.f32 %f475, %f473, %f528, %f471;
+ fma.rn.f32 %f477, %f473, %f529, %f475;
+ mul.f32 %f478, %f477, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f479, %f478;
+ add.f32 %f480, %f473, 0f00000000;
+ ex2.approx.f32 %f481, %f480;
+ mul.f32 %f482, %f479, %f481;
+ setp.lt.f32 %p79, %f471, 0fC2D20000;
+ selp.f32 %f483, 0f00000000, %f482, %p79;
+ setp.gt.f32 %p80, %f471, 0f42D20000;
+ selp.f32 %f566, 0f7F800000, %f483, %p80;
+ setp.eq.f32 %p81, %f566, 0f7F800000;
+ @%p81 bra BB0_81;
+
+ fma.rn.f32 %f566, %f566, %f97, %f566;
+
+BB0_81:
+ setp.lt.f32 %p82, %f68, 0f00000000;
+ and.pred %p3, %p82, %p51;
+ mov.b32 %r245, %f566;
+ xor.b32 %r246, %r245, -2147483648;
+ mov.b32 %f484, %r246;
+ selp.f32 %f568, %f484, %f566, %p3;
+ setp.eq.f32 %p84, %f68, 0f00000000;
+ @%p84 bra BB0_84;
+ bra.uni BB0_82;
+
+BB0_84:
+ add.f32 %f487, %f68, %f68;
+ selp.f32 %f568, %f487, 0f00000000, %p51;
+ bra.uni BB0_85;
+
+BB0_82:
+ setp.geu.f32 %p85, %f68, 0f00000000;
+ @%p85 bra BB0_85;
+
+ mov.f32 %f534, 0f3EE66666;
+ cvt.rzi.f32.f32 %f486, %f534;
+ setp.neu.f32 %p86, %f486, 0f3EE66666;
+ selp.f32 %f568, 0f7FFFFFFF, %f568, %p86;
+
+BB0_85:
+ abs.f32 %f538, %f68;
+ add.f32 %f488, %f538, 0f3EE66666;
+ mov.b32 %r247, %f488;
+ setp.lt.s32 %p88, %r247, 2139095040;
+ @%p88 bra BB0_90;
+
+ abs.f32 %f539, %f68;
+ setp.gtu.f32 %p89, %f539, 0f7F800000;
+ @%p89 bra BB0_89;
+ bra.uni BB0_87;
+
+BB0_89:
+ add.f32 %f568, %f68, 0f3EE66666;
+ bra.uni BB0_90;
+
+BB0_87:
+ abs.f32 %f540, %f68;
+ setp.neu.f32 %p90, %f540, 0f7F800000;
+ @%p90 bra BB0_90;
+
+ selp.f32 %f568, 0fFF800000, 0f7F800000, %p3;
+
+BB0_90:
+ mov.u32 %r273, 4;
+ mov.u64 %rd106, 0;
+ mov.u32 %r272, 2;
+ setp.eq.f32 %p91, %f68, 0f3F800000;
+ selp.f32 %f489, 0f3F800000, %f568, %p91;
+ cvt.u64.u32 %rd55, %r4;
+ cvt.u64.u32 %rd54, %r3;
+ mov.u64 %rd58, image;
+ cvta.global.u64 %rd53, %rd58;
+ // inline asm
+ call (%rd52), _rt_buffer_get_64, (%rd53, %r272, %r273, %rd54, %rd55, %rd106, %rd106);
+ // inline asm
+ cvt.sat.f32.f32 %f490, %f489;
+ mul.f32 %f491, %f490, 0f437FFD71;
+ cvt.rzi.u32.f32 %r250, %f491;
+ cvt.sat.f32.f32 %f492, %f95;
+ mul.f32 %f493, %f492, 0f437FFD71;
+ cvt.rzi.u32.f32 %r251, %f493;
+ cvt.sat.f32.f32 %f494, %f82;
+ mul.f32 %f495, %f494, 0f437FFD71;
+ cvt.rzi.u32.f32 %r252, %f495;
+ cvt.u16.u32 %rs10, %r250;
+ cvt.u16.u32 %rs11, %r252;
+ cvt.u16.u32 %rs12, %r251;
+ mov.u16 %rs13, 255;
+ st.v4.u8 [%rd52], {%rs10, %rs12, %rs11, %rs13};
+ ld.global.u32 %r300, [imageEnabled];
+
+BB0_91:
+ and.b32 %r253, %r300, 4;
+ setp.eq.s32 %p92, %r253, 0;
+ @%p92 bra BB0_101;
+
+ ld.global.u32 %r254, [additive];
+ setp.eq.s32 %p93, %r254, 0;
+ cvt.u64.u32 %rd15, %r3;
+ cvt.u64.u32 %rd16, %r4;
+ mov.f32 %f496, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs14, %f496;}
+
+ // inline asm
+ @%p93 bra BB0_94;
+
+ mov.u64 %rd107, 0;
+ mov.u32 %r274, 2;
+ mov.u64 %rd71, image_HDR;
+ cvta.global.u64 %rd60, %rd71;
+ mov.u32 %r258, 8;
+ // inline asm
+ call (%rd59), _rt_buffer_get_64, (%rd60, %r274, %r258, %rd15, %rd16, %rd107, %rd107);
+ // inline asm
+ ld.v4.u16 {%rs21, %rs22, %rs23, %rs24}, [%rd59];
+ // inline asm
+ { cvt.f32.f16 %f497, %rs21;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f498, %rs22;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f499, %rs23;}
+
+ // inline asm
+ // inline asm
+ call (%rd65), _rt_buffer_get_64, (%rd60, %r274, %r258, %rd15, %rd16, %rd107, %rd107);
+ // inline asm
+ add.f32 %f500, %f66, %f497;
+ add.f32 %f501, %f67, %f498;
+ add.f32 %f502, %f68, %f499;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f502;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs19, %f501;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs18, %f500;}
+
+ // inline asm
+ st.v4.u16 [%rd65], {%rs18, %rs19, %rs20, %rs14};
+ bra.uni BB0_101;
+
+BB0_94:
+ mov.u64 %rd108, 0;
+ mov.u32 %r275, 2;
+ mov.u64 %rd78, image_HDR;
+ cvta.global.u64 %rd73, %rd78;
+ mov.u32 %r260, 8;
+ // inline asm
+ call (%rd72), _rt_buffer_get_64, (%rd73, %r275, %r260, %rd15, %rd16, %rd108, %rd108);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f68;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f67;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f66;}
+
+ // inline asm
+ st.v4.u16 [%rd72], {%rs25, %rs26, %rs27, %rs14};
+
+BB0_101:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSky.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSky.ptx.meta
new file mode 100644
index 00000000..1c7ba330
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSky.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 19d5305785531af479e484909041a5d0
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemap.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemap.ptx
new file mode 100644
index 00000000..0fb55f5e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemap.ptx
@@ -0,0 +1,1378 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 sky;
+.global .align 4 .b8 skyColor[12];
+.global .align 4 .u32 samples;
+.global .align 4 .u32 hemispherical;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3skyE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8skyColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13hemisphericalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3skyE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8skyColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename13hemisphericalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3skyE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8skyColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13hemisphericalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic3skyE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8skyColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13hemisphericalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3skyE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8skyColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13hemisphericalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<97>;
+ .reg .b16 %rs<42>;
+ .reg .f32 %f<596>;
+ .reg .b32 %r<304>;
+ .reg .b64 %rd<114>;
+
+
+ mov.u64 %rd113, __local_depot0;
+ cvta.local.u64 %SP, %rd113;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r93, %r94}, [pixelID];
+ cvt.u64.u32 %rd21, %r93;
+ cvt.u64.u32 %rd22, %r94;
+ mov.u64 %rd25, uvnormal;
+ cvta.global.u64 %rd20, %rd25;
+ mov.u32 %r91, 2;
+ mov.u32 %r92, 4;
+ mov.u64 %rd24, 0;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd20, %r91, %r92, %rd21, %rd22, %rd24, %rd24);
+ // inline asm
+ ld.u32 %r2, [%rd19];
+ shr.u32 %r97, %r2, 16;
+ cvt.u16.u32 %rs1, %r97;
+ and.b16 %rs3, %rs1, 255;
+ cvt.u16.u32 %rs4, %r2;
+ or.b16 %rs5, %rs4, %rs3;
+ setp.eq.s16 %p4, %rs5, 0;
+ mov.f32 %f560, 0f00000000;
+ mov.f32 %f561, %f560;
+ mov.f32 %f562, %f560;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs6, [%rd19+1];
+ and.b16 %rs8, %rs4, 255;
+ cvt.rn.f32.u16 %f121, %rs8;
+ div.rn.f32 %f122, %f121, 0f437F0000;
+ fma.rn.f32 %f123, %f122, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f124, %rs6;
+ div.rn.f32 %f125, %f124, 0f437F0000;
+ fma.rn.f32 %f126, %f125, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f127, %rs3;
+ div.rn.f32 %f128, %f127, 0f437F0000;
+ fma.rn.f32 %f129, %f128, 0f40000000, 0fBF800000;
+ mul.f32 %f130, %f126, %f126;
+ fma.rn.f32 %f131, %f123, %f123, %f130;
+ fma.rn.f32 %f132, %f129, %f129, %f131;
+ sqrt.rn.f32 %f133, %f132;
+ rcp.rn.f32 %f134, %f133;
+ mul.f32 %f560, %f123, %f134;
+ mul.f32 %f561, %f126, %f134;
+ mul.f32 %f562, %f129, %f134;
+
+BB0_2:
+ ld.global.v2.u32 {%r98, %r99}, [pixelID];
+ ld.global.v2.u32 {%r101, %r102}, [tileInfo];
+ add.s32 %r3, %r98, %r101;
+ add.s32 %r4, %r99, %r102;
+ setp.eq.f32 %p5, %f561, 0f00000000;
+ setp.eq.f32 %p6, %f560, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f562, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_95;
+ bra.uni BB0_3;
+
+BB0_95:
+ ld.global.u32 %r303, [imageEnabled];
+ and.b32 %r263, %r303, 1;
+ setp.eq.b32 %p94, %r263, 1;
+ @!%p94 bra BB0_97;
+ bra.uni BB0_96;
+
+BB0_96:
+ cvt.u64.u32 %rd81, %r3;
+ cvt.u64.u32 %rd82, %r4;
+ mov.u64 %rd85, image;
+ cvta.global.u64 %rd80, %rd85;
+ // inline asm
+ call (%rd79), _rt_buffer_get_64, (%rd80, %r91, %r92, %rd81, %rd82, %rd24, %rd24);
+ // inline asm
+ mov.u16 %rs28, 0;
+ st.v4.u8 [%rd79], {%rs28, %rs28, %rs28, %rs28};
+ ld.global.u32 %r303, [imageEnabled];
+
+BB0_97:
+ and.b32 %r266, %r303, 4;
+ setp.eq.s32 %p95, %r266, 0;
+ @%p95 bra BB0_101;
+
+ ld.global.u32 %r267, [additive];
+ setp.eq.s32 %p96, %r267, 0;
+ cvt.u64.u32 %rd17, %r3;
+ cvt.u64.u32 %rd18, %r4;
+ @%p96 bra BB0_100;
+
+ mov.u64 %rd98, image_HDR;
+ cvta.global.u64 %rd87, %rd98;
+ mov.u32 %r271, 8;
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd87, %r91, %r271, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs35, %rs36, %rs37, %rs38}, [%rd86];
+ // inline asm
+ { cvt.f32.f16 %f532, %rs35;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f533, %rs36;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f534, %rs37;}
+
+ // inline asm
+ // inline asm
+ call (%rd92), _rt_buffer_get_64, (%rd87, %r91, %r271, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ add.f32 %f535, %f532, 0f00000000;
+ add.f32 %f536, %f533, 0f00000000;
+ add.f32 %f537, %f534, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f537;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f536;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f535;}
+
+ // inline asm
+ mov.u16 %rs39, 0;
+ st.v4.u16 [%rd92], {%rs32, %rs33, %rs34, %rs39};
+ bra.uni BB0_101;
+
+BB0_3:
+ ld.global.v2.u32 {%r110, %r111}, [pixelID];
+ cvt.u64.u32 %rd28, %r110;
+ cvt.u64.u32 %rd29, %r111;
+ mov.u64 %rd38, uvpos;
+ cvta.global.u64 %rd27, %rd38;
+ mov.u32 %r107, 12;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r91, %r107, %rd28, %rd29, %rd24, %rd24);
+ // inline asm
+ ld.f32 %f138, [%rd26+8];
+ ld.f32 %f139, [%rd26+4];
+ ld.f32 %f140, [%rd26];
+ mul.f32 %f141, %f140, 0f3456BF95;
+ mul.f32 %f142, %f139, 0f3456BF95;
+ mul.f32 %f143, %f138, 0f3456BF95;
+ abs.f32 %f144, %f560;
+ div.rn.f32 %f145, %f141, %f144;
+ abs.f32 %f146, %f561;
+ div.rn.f32 %f147, %f142, %f146;
+ abs.f32 %f148, %f562;
+ div.rn.f32 %f149, %f143, %f148;
+ abs.f32 %f150, %f145;
+ abs.f32 %f151, %f147;
+ abs.f32 %f152, %f149;
+ mov.f32 %f153, 0f38D1B717;
+ max.f32 %f154, %f150, %f153;
+ max.f32 %f155, %f151, %f153;
+ max.f32 %f156, %f152, %f153;
+ fma.rn.f32 %f7, %f560, %f154, %f140;
+ fma.rn.f32 %f8, %f561, %f155, %f139;
+ fma.rn.f32 %f9, %f562, %f156, %f138;
+ ld.global.u32 %r5, [hemispherical];
+ setp.gt.f32 %p10, %f144, %f148;
+ neg.f32 %f157, %f561;
+ selp.f32 %f158, %f157, 0f00000000, %p10;
+ neg.f32 %f159, %f562;
+ selp.f32 %f160, %f560, %f159, %p10;
+ selp.f32 %f161, 0f00000000, %f561, %p10;
+ mul.f32 %f162, %f160, %f160;
+ fma.rn.f32 %f163, %f158, %f158, %f162;
+ fma.rn.f32 %f164, %f161, %f161, %f163;
+ sqrt.rn.f32 %f165, %f164;
+ rcp.rn.f32 %f166, %f165;
+ mul.f32 %f10, %f158, %f166;
+ mul.f32 %f11, %f160, %f166;
+ mul.f32 %f12, %f161, %f166;
+ ld.global.v2.u32 {%r114, %r115}, [pixelID];
+ cvt.u64.u32 %rd34, %r114;
+ cvt.u64.u32 %rd35, %r115;
+ mov.u64 %rd39, rnd_seeds;
+ cvta.global.u64 %rd33, %rd39;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd33, %r91, %r92, %rd34, %rd35, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f583, 0f00000000;
+ setp.lt.s32 %p11, %r1, 1;
+ mov.f32 %f582, %f583;
+ mov.f32 %f581, %f583;
+ @%p11 bra BB0_56;
+
+ cvt.rn.f32.s32 %f170, %r1;
+ rcp.rn.f32 %f13, %f170;
+ ld.u32 %r281, [%rd32];
+ mul.f32 %f14, %f7, 0f3456BF95;
+ mul.f32 %f15, %f8, 0f3456BF95;
+ mul.f32 %f16, %f9, 0f3456BF95;
+ mul.f32 %f171, %f560, %f11;
+ mul.f32 %f172, %f561, %f10;
+ sub.f32 %f17, %f172, %f171;
+ mul.f32 %f173, %f562, %f10;
+ mul.f32 %f174, %f560, %f12;
+ sub.f32 %f18, %f174, %f173;
+ mul.f32 %f175, %f561, %f12;
+ mul.f32 %f176, %f562, %f11;
+ sub.f32 %f19, %f176, %f175;
+ mov.f32 %f583, 0f00000000;
+ mov.u32 %r118, 0;
+ abs.f32 %f261, %f15;
+ abs.f32 %f262, %f14;
+ max.f32 %f263, %f262, %f261;
+ abs.f32 %f264, %f16;
+ max.f32 %f265, %f263, %f264;
+ mov.u32 %r278, %r118;
+ mov.f32 %f582, %f583;
+ mov.f32 %f581, %f583;
+
+BB0_5:
+ cvt.rn.f32.s32 %f23, %r278;
+ mov.u32 %r280, %r118;
+
+BB0_6:
+ mad.lo.s32 %r120, %r281, 1664525, 1013904223;
+ and.b32 %r121, %r120, 16777215;
+ cvt.rn.f32.u32 %f177, %r121;
+ fma.rn.f32 %f178, %f177, 0f33800000, %f23;
+ mul.f32 %f179, %f13, %f178;
+ mad.lo.s32 %r281, %r120, 1664525, 1013904223;
+ and.b32 %r122, %r281, 16777215;
+ cvt.rn.f32.u32 %f180, %r122;
+ cvt.rn.f32.s32 %f181, %r280;
+ fma.rn.f32 %f182, %f180, 0f33800000, %f181;
+ mul.f32 %f183, %f13, %f182;
+ sqrt.rn.f32 %f27, %f179;
+ mul.f32 %f575, %f183, 0f40C90FDB;
+ abs.f32 %f29, %f575;
+ setp.neu.f32 %p12, %f29, 0f7F800000;
+ mov.f32 %f569, %f575;
+ @%p12 bra BB0_8;
+
+ mov.f32 %f184, 0f00000000;
+ mul.rn.f32 %f569, %f575, %f184;
+
+BB0_8:
+ mul.f32 %f185, %f569, 0f3F22F983;
+ cvt.rni.s32.f32 %r291, %f185;
+ cvt.rn.f32.s32 %f186, %r291;
+ neg.f32 %f187, %f186;
+ mov.f32 %f188, 0f3FC90FDA;
+ fma.rn.f32 %f189, %f187, %f188, %f569;
+ mov.f32 %f190, 0f33A22168;
+ fma.rn.f32 %f191, %f187, %f190, %f189;
+ mov.f32 %f192, 0f27C234C5;
+ fma.rn.f32 %f570, %f187, %f192, %f191;
+ abs.f32 %f193, %f569;
+ setp.leu.f32 %p13, %f193, 0f47CE4780;
+ @%p13 bra BB0_19;
+
+ mov.b32 %r13, %f569;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r125, %r13, 8;
+ or.b32 %r15, %r125, -2147483648;
+ add.u64 %rd41, %SP, 0;
+ cvta.to.local.u64 %rd110, %rd41;
+ mov.u32 %r283, 0;
+ mov.u64 %rd109, __cudart_i2opi_f;
+ mov.u32 %r282, -6;
+
+BB0_10:
+ .pragma "nounroll";
+ ld.const.u32 %r128, [%rd109];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r126, %r128, %r15, %r283;
+ madc.hi.u32 %r283, %r128, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd110], %r126;
+ add.s64 %rd110, %rd110, 4;
+ add.s64 %rd109, %rd109, 4;
+ add.s32 %r282, %r282, 1;
+ setp.ne.s32 %p14, %r282, 0;
+ @%p14 bra BB0_10;
+
+ and.b32 %r131, %r14, 255;
+ add.s32 %r132, %r131, -128;
+ shr.u32 %r133, %r132, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd43, %rd41;
+ st.local.u32 [%rd43+24], %r283;
+ mov.u32 %r134, 6;
+ sub.s32 %r135, %r134, %r133;
+ mul.wide.s32 %rd44, %r135, 4;
+ add.s64 %rd8, %rd43, %rd44;
+ ld.local.u32 %r284, [%rd8];
+ ld.local.u32 %r285, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p15, %r23, 0;
+ @%p15 bra BB0_13;
+
+ mov.u32 %r136, 32;
+ sub.s32 %r137, %r136, %r23;
+ shr.u32 %r138, %r285, %r137;
+ shl.b32 %r139, %r284, %r23;
+ add.s32 %r284, %r138, %r139;
+ ld.local.u32 %r140, [%rd8+-8];
+ shr.u32 %r141, %r140, %r137;
+ shl.b32 %r142, %r285, %r23;
+ add.s32 %r285, %r141, %r142;
+
+BB0_13:
+ shr.u32 %r143, %r285, 30;
+ shl.b32 %r144, %r284, 2;
+ add.s32 %r286, %r143, %r144;
+ shl.b32 %r29, %r285, 2;
+ shr.u32 %r145, %r286, 31;
+ shr.u32 %r146, %r284, 30;
+ add.s32 %r30, %r145, %r146;
+ setp.eq.s32 %p16, %r145, 0;
+ @%p16 bra BB0_14;
+ bra.uni BB0_15;
+
+BB0_14:
+ mov.u32 %r287, %r20;
+ mov.u32 %r288, %r29;
+ bra.uni BB0_16;
+
+BB0_15:
+ not.b32 %r147, %r286;
+ neg.s32 %r288, %r29;
+ setp.eq.s32 %p17, %r29, 0;
+ selp.u32 %r148, 1, 0, %p17;
+ add.s32 %r286, %r148, %r147;
+ xor.b32 %r287, %r20, -2147483648;
+
+BB0_16:
+ clz.b32 %r290, %r286;
+ setp.eq.s32 %p18, %r290, 0;
+ shl.b32 %r149, %r286, %r290;
+ mov.u32 %r150, 32;
+ sub.s32 %r151, %r150, %r290;
+ shr.u32 %r152, %r288, %r151;
+ add.s32 %r153, %r152, %r149;
+ selp.b32 %r38, %r286, %r153, %p18;
+ mov.u32 %r154, -921707870;
+ mul.hi.u32 %r289, %r38, %r154;
+ setp.eq.s32 %p19, %r20, 0;
+ neg.s32 %r155, %r30;
+ selp.b32 %r291, %r30, %r155, %p19;
+ setp.lt.s32 %p20, %r289, 1;
+ @%p20 bra BB0_18;
+
+ mul.lo.s32 %r156, %r38, -921707870;
+ shr.u32 %r157, %r156, 31;
+ shl.b32 %r158, %r289, 1;
+ add.s32 %r289, %r157, %r158;
+ add.s32 %r290, %r290, 1;
+
+BB0_18:
+ mov.u32 %r159, 126;
+ sub.s32 %r160, %r159, %r290;
+ shl.b32 %r161, %r160, 23;
+ add.s32 %r162, %r289, 1;
+ shr.u32 %r163, %r162, 7;
+ add.s32 %r164, %r163, 1;
+ shr.u32 %r165, %r164, 1;
+ add.s32 %r166, %r165, %r161;
+ or.b32 %r167, %r166, %r287;
+ mov.b32 %f570, %r167;
+
+BB0_19:
+ mul.rn.f32 %f35, %f570, %f570;
+ add.s32 %r46, %r291, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p21, %r47, 0;
+ @%p21 bra BB0_21;
+ bra.uni BB0_20;
+
+BB0_21:
+ mov.f32 %f196, 0f3C08839E;
+ mov.f32 %f197, 0fB94CA1F9;
+ fma.rn.f32 %f571, %f197, %f35, %f196;
+ bra.uni BB0_22;
+
+BB0_20:
+ mov.f32 %f194, 0fBAB6061A;
+ mov.f32 %f195, 0f37CCF5CE;
+ fma.rn.f32 %f571, %f195, %f35, %f194;
+
+BB0_22:
+ @%p21 bra BB0_24;
+ bra.uni BB0_23;
+
+BB0_24:
+ mov.f32 %f201, 0fBE2AAAA3;
+ fma.rn.f32 %f202, %f571, %f35, %f201;
+ mov.f32 %f203, 0f00000000;
+ fma.rn.f32 %f572, %f202, %f35, %f203;
+ bra.uni BB0_25;
+
+BB0_23:
+ mov.f32 %f198, 0f3D2AAAA5;
+ fma.rn.f32 %f199, %f571, %f35, %f198;
+ mov.f32 %f200, 0fBF000000;
+ fma.rn.f32 %f572, %f199, %f35, %f200;
+
+BB0_25:
+ fma.rn.f32 %f573, %f572, %f570, %f570;
+ @%p21 bra BB0_27;
+
+ mov.f32 %f204, 0f3F800000;
+ fma.rn.f32 %f573, %f572, %f35, %f204;
+
+BB0_27:
+ and.b32 %r168, %r46, 2;
+ setp.eq.s32 %p24, %r168, 0;
+ @%p24 bra BB0_29;
+
+ mov.f32 %f205, 0f00000000;
+ mov.f32 %f206, 0fBF800000;
+ fma.rn.f32 %f573, %f573, %f206, %f205;
+
+BB0_29:
+ @%p12 bra BB0_31;
+
+ mov.f32 %f207, 0f00000000;
+ mul.rn.f32 %f575, %f575, %f207;
+
+BB0_31:
+ mul.f32 %f208, %f575, 0f3F22F983;
+ cvt.rni.s32.f32 %r301, %f208;
+ cvt.rn.f32.s32 %f209, %r301;
+ neg.f32 %f210, %f209;
+ fma.rn.f32 %f212, %f210, %f188, %f575;
+ fma.rn.f32 %f214, %f210, %f190, %f212;
+ fma.rn.f32 %f576, %f210, %f192, %f214;
+ abs.f32 %f216, %f575;
+ setp.leu.f32 %p26, %f216, 0f47CE4780;
+ @%p26 bra BB0_42;
+
+ mov.b32 %r49, %f575;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r171, %r49, 8;
+ or.b32 %r51, %r171, -2147483648;
+ add.u64 %rd46, %SP, 0;
+ cvta.to.local.u64 %rd112, %rd46;
+ mov.u32 %r293, 0;
+ mov.u64 %rd111, __cudart_i2opi_f;
+ mov.u32 %r292, -6;
+
+BB0_33:
+ .pragma "nounroll";
+ ld.const.u32 %r174, [%rd111];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r172, %r174, %r51, %r293;
+ madc.hi.u32 %r293, %r174, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd112], %r172;
+ add.s64 %rd112, %rd112, 4;
+ add.s64 %rd111, %rd111, 4;
+ add.s32 %r292, %r292, 1;
+ setp.ne.s32 %p27, %r292, 0;
+ @%p27 bra BB0_33;
+
+ and.b32 %r177, %r50, 255;
+ add.s32 %r178, %r177, -128;
+ shr.u32 %r179, %r178, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd48, %rd46;
+ st.local.u32 [%rd48+24], %r293;
+ mov.u32 %r180, 6;
+ sub.s32 %r181, %r180, %r179;
+ mul.wide.s32 %rd49, %r181, 4;
+ add.s64 %rd14, %rd48, %rd49;
+ ld.local.u32 %r294, [%rd14];
+ ld.local.u32 %r295, [%rd14+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p28, %r59, 0;
+ @%p28 bra BB0_36;
+
+ mov.u32 %r182, 32;
+ sub.s32 %r183, %r182, %r59;
+ shr.u32 %r184, %r295, %r183;
+ shl.b32 %r185, %r294, %r59;
+ add.s32 %r294, %r184, %r185;
+ ld.local.u32 %r186, [%rd14+-8];
+ shr.u32 %r187, %r186, %r183;
+ shl.b32 %r188, %r295, %r59;
+ add.s32 %r295, %r187, %r188;
+
+BB0_36:
+ shr.u32 %r189, %r295, 30;
+ shl.b32 %r190, %r294, 2;
+ add.s32 %r296, %r189, %r190;
+ shl.b32 %r65, %r295, 2;
+ shr.u32 %r191, %r296, 31;
+ shr.u32 %r192, %r294, 30;
+ add.s32 %r66, %r191, %r192;
+ setp.eq.s32 %p29, %r191, 0;
+ @%p29 bra BB0_37;
+ bra.uni BB0_38;
+
+BB0_37:
+ mov.u32 %r297, %r56;
+ mov.u32 %r298, %r65;
+ bra.uni BB0_39;
+
+BB0_38:
+ not.b32 %r193, %r296;
+ neg.s32 %r298, %r65;
+ setp.eq.s32 %p30, %r65, 0;
+ selp.u32 %r194, 1, 0, %p30;
+ add.s32 %r296, %r194, %r193;
+ xor.b32 %r297, %r56, -2147483648;
+
+BB0_39:
+ clz.b32 %r300, %r296;
+ setp.eq.s32 %p31, %r300, 0;
+ shl.b32 %r195, %r296, %r300;
+ mov.u32 %r196, 32;
+ sub.s32 %r197, %r196, %r300;
+ shr.u32 %r198, %r298, %r197;
+ add.s32 %r199, %r198, %r195;
+ selp.b32 %r74, %r296, %r199, %p31;
+ mov.u32 %r200, -921707870;
+ mul.hi.u32 %r299, %r74, %r200;
+ setp.eq.s32 %p32, %r56, 0;
+ neg.s32 %r201, %r66;
+ selp.b32 %r301, %r66, %r201, %p32;
+ setp.lt.s32 %p33, %r299, 1;
+ @%p33 bra BB0_41;
+
+ mul.lo.s32 %r202, %r74, -921707870;
+ shr.u32 %r203, %r202, 31;
+ shl.b32 %r204, %r299, 1;
+ add.s32 %r299, %r203, %r204;
+ add.s32 %r300, %r300, 1;
+
+BB0_41:
+ mov.u32 %r205, 126;
+ sub.s32 %r206, %r205, %r300;
+ shl.b32 %r207, %r206, 23;
+ add.s32 %r208, %r299, 1;
+ shr.u32 %r209, %r208, 7;
+ add.s32 %r210, %r209, 1;
+ shr.u32 %r211, %r210, 1;
+ add.s32 %r212, %r211, %r207;
+ or.b32 %r213, %r212, %r297;
+ mov.b32 %f576, %r213;
+
+BB0_42:
+ mul.rn.f32 %f52, %f576, %f576;
+ and.b32 %r82, %r301, 1;
+ setp.eq.s32 %p34, %r82, 0;
+ @%p34 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mov.f32 %f219, 0f3C08839E;
+ mov.f32 %f220, 0fB94CA1F9;
+ fma.rn.f32 %f577, %f220, %f52, %f219;
+ bra.uni BB0_45;
+
+BB0_43:
+ mov.f32 %f217, 0fBAB6061A;
+ mov.f32 %f218, 0f37CCF5CE;
+ fma.rn.f32 %f577, %f218, %f52, %f217;
+
+BB0_45:
+ @%p34 bra BB0_47;
+ bra.uni BB0_46;
+
+BB0_47:
+ mov.f32 %f224, 0fBE2AAAA3;
+ fma.rn.f32 %f225, %f577, %f52, %f224;
+ mov.f32 %f226, 0f00000000;
+ fma.rn.f32 %f578, %f225, %f52, %f226;
+ bra.uni BB0_48;
+
+BB0_46:
+ mov.f32 %f221, 0f3D2AAAA5;
+ fma.rn.f32 %f222, %f577, %f52, %f221;
+ mov.f32 %f223, 0fBF000000;
+ fma.rn.f32 %f578, %f222, %f52, %f223;
+
+BB0_48:
+ fma.rn.f32 %f579, %f578, %f576, %f576;
+ @%p34 bra BB0_50;
+
+ mov.f32 %f227, 0f3F800000;
+ fma.rn.f32 %f579, %f578, %f52, %f227;
+
+BB0_50:
+ and.b32 %r214, %r301, 2;
+ setp.eq.s32 %p37, %r214, 0;
+ @%p37 bra BB0_52;
+
+ mov.f32 %f228, 0f00000000;
+ mov.f32 %f229, 0fBF800000;
+ fma.rn.f32 %f579, %f579, %f229, %f228;
+
+BB0_52:
+ mul.f32 %f230, %f27, %f573;
+ mul.f32 %f231, %f230, %f230;
+ mov.f32 %f232, 0f3F800000;
+ sub.f32 %f233, %f232, %f231;
+ mul.f32 %f234, %f27, %f579;
+ mul.f32 %f235, %f234, %f234;
+ sub.f32 %f236, %f233, %f235;
+ mov.f32 %f237, 0f00000000;
+ max.f32 %f238, %f237, %f236;
+ sqrt.rn.f32 %f239, %f238;
+ mul.f32 %f240, %f10, %f234;
+ mul.f32 %f241, %f11, %f234;
+ mul.f32 %f242, %f12, %f234;
+ fma.rn.f32 %f243, %f19, %f230, %f240;
+ fma.rn.f32 %f244, %f18, %f230, %f241;
+ fma.rn.f32 %f245, %f17, %f230, %f242;
+ fma.rn.f32 %f64, %f560, %f239, %f243;
+ fma.rn.f32 %f65, %f561, %f239, %f244;
+ fma.rn.f32 %f66, %f562, %f239, %f245;
+ setp.gt.f32 %p38, %f65, 0f00000000;
+ setp.eq.s32 %p39, %r5, 0;
+ or.pred %p40, %p39, %p38;
+ @!%p40 bra BB0_54;
+ bra.uni BB0_53;
+
+BB0_53:
+ add.u64 %rd50, %SP, 28;
+ cvta.to.local.u64 %rd51, %rd50;
+ max.f32 %f259, %f265, %f153;
+ ld.global.u32 %r215, [sky];
+ neg.f32 %f252, %f64;
+ neg.f32 %f251, %f65;
+ neg.f32 %f250, %f66;
+ mov.u32 %r216, 6;
+ mov.u32 %r217, 0;
+ // inline asm
+ call (%f246, %f247, %f248, %f249), _rt_texture_get_base_id, (%r215, %r216, %f250, %f251, %f252, %r217);
+ // inline asm
+ st.local.f32 [%rd51], %f246;
+ st.local.f32 [%rd51+4], %f247;
+ st.local.f32 [%rd51+8], %f248;
+ ld.global.u32 %r218, [root];
+ mov.u32 %r219, 1;
+ mov.f32 %f260, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r218, %f7, %f8, %f9, %f64, %f65, %f66, %r219, %f259, %f260, %rd50, %r107);
+ // inline asm
+ ld.local.f32 %f267, [%rd51];
+ add.f32 %f581, %f581, %f267;
+ ld.local.f32 %f268, [%rd51+4];
+ add.f32 %f582, %f582, %f268;
+ ld.local.f32 %f269, [%rd51+8];
+ add.f32 %f583, %f583, %f269;
+
+BB0_54:
+ add.s32 %r280, %r280, 1;
+ setp.lt.s32 %p41, %r280, %r1;
+ @%p41 bra BB0_6;
+
+ add.s32 %r278, %r278, 1;
+ setp.lt.s32 %p42, %r278, %r1;
+ @%p42 bra BB0_5;
+
+BB0_56:
+ mul.lo.s32 %r221, %r1, %r1;
+ cvt.rn.f32.s32 %f270, %r221;
+ rcp.rn.f32 %f271, %f270;
+ mul.f32 %f272, %f581, %f271;
+ mul.f32 %f273, %f582, %f271;
+ mul.f32 %f274, %f583, %f271;
+ ld.global.f32 %f275, [skyColor];
+ mul.f32 %f76, %f272, %f275;
+ ld.global.f32 %f276, [skyColor+4];
+ mul.f32 %f77, %f273, %f276;
+ ld.global.f32 %f277, [skyColor+8];
+ mul.f32 %f78, %f274, %f277;
+ ld.global.u32 %r302, [imageEnabled];
+ and.b32 %r222, %r302, 1;
+ setp.eq.b32 %p43, %r222, 1;
+ @!%p43 bra BB0_91;
+ bra.uni BB0_57;
+
+BB0_57:
+ mov.f32 %f280, 0f3E666666;
+ cvt.rzi.f32.f32 %f281, %f280;
+ fma.rn.f32 %f282, %f281, 0fC0000000, 0f3EE66666;
+ abs.f32 %f79, %f282;
+ abs.f32 %f80, %f76;
+ setp.lt.f32 %p44, %f80, 0f00800000;
+ mul.f32 %f283, %f80, 0f4B800000;
+ selp.f32 %f284, 0fC3170000, 0fC2FE0000, %p44;
+ selp.f32 %f285, %f283, %f80, %p44;
+ mov.b32 %r223, %f285;
+ and.b32 %r224, %r223, 8388607;
+ or.b32 %r225, %r224, 1065353216;
+ mov.b32 %f286, %r225;
+ shr.u32 %r226, %r223, 23;
+ cvt.rn.f32.u32 %f287, %r226;
+ add.f32 %f288, %f284, %f287;
+ setp.gt.f32 %p45, %f286, 0f3FB504F3;
+ mul.f32 %f289, %f286, 0f3F000000;
+ add.f32 %f290, %f288, 0f3F800000;
+ selp.f32 %f291, %f289, %f286, %p45;
+ selp.f32 %f292, %f290, %f288, %p45;
+ add.f32 %f293, %f291, 0fBF800000;
+ add.f32 %f279, %f291, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f278,%f279;
+ // inline asm
+ add.f32 %f294, %f293, %f293;
+ mul.f32 %f295, %f278, %f294;
+ mul.f32 %f296, %f295, %f295;
+ mov.f32 %f297, 0f3C4CAF63;
+ mov.f32 %f298, 0f3B18F0FE;
+ fma.rn.f32 %f299, %f298, %f296, %f297;
+ mov.f32 %f300, 0f3DAAAABD;
+ fma.rn.f32 %f301, %f299, %f296, %f300;
+ mul.rn.f32 %f302, %f301, %f296;
+ mul.rn.f32 %f303, %f302, %f295;
+ sub.f32 %f304, %f293, %f295;
+ neg.f32 %f305, %f295;
+ add.f32 %f306, %f304, %f304;
+ fma.rn.f32 %f307, %f305, %f293, %f306;
+ mul.rn.f32 %f308, %f278, %f307;
+ add.f32 %f309, %f303, %f295;
+ sub.f32 %f310, %f295, %f309;
+ add.f32 %f311, %f303, %f310;
+ add.f32 %f312, %f308, %f311;
+ add.f32 %f313, %f309, %f312;
+ sub.f32 %f314, %f309, %f313;
+ add.f32 %f315, %f312, %f314;
+ mov.f32 %f316, 0f3F317200;
+ mul.rn.f32 %f317, %f292, %f316;
+ mov.f32 %f318, 0f35BFBE8E;
+ mul.rn.f32 %f319, %f292, %f318;
+ add.f32 %f320, %f317, %f313;
+ sub.f32 %f321, %f317, %f320;
+ add.f32 %f322, %f313, %f321;
+ add.f32 %f323, %f315, %f322;
+ add.f32 %f324, %f319, %f323;
+ add.f32 %f325, %f320, %f324;
+ sub.f32 %f326, %f320, %f325;
+ add.f32 %f327, %f324, %f326;
+ mov.f32 %f328, 0f3EE66666;
+ mul.rn.f32 %f329, %f328, %f325;
+ neg.f32 %f330, %f329;
+ fma.rn.f32 %f331, %f328, %f325, %f330;
+ fma.rn.f32 %f332, %f328, %f327, %f331;
+ mov.f32 %f333, 0f00000000;
+ fma.rn.f32 %f334, %f333, %f325, %f332;
+ add.rn.f32 %f335, %f329, %f334;
+ neg.f32 %f336, %f335;
+ add.rn.f32 %f337, %f329, %f336;
+ add.rn.f32 %f338, %f337, %f334;
+ mov.b32 %r227, %f335;
+ setp.eq.s32 %p46, %r227, 1118925336;
+ add.s32 %r228, %r227, -1;
+ mov.b32 %f339, %r228;
+ add.f32 %f340, %f338, 0f37000000;
+ selp.f32 %f341, %f339, %f335, %p46;
+ selp.f32 %f81, %f340, %f338, %p46;
+ mul.f32 %f342, %f341, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f343, %f342;
+ mov.f32 %f344, 0fBF317200;
+ fma.rn.f32 %f345, %f343, %f344, %f341;
+ mov.f32 %f346, 0fB5BFBE8E;
+ fma.rn.f32 %f347, %f343, %f346, %f345;
+ mul.f32 %f348, %f347, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f349, %f348;
+ add.f32 %f350, %f343, 0f00000000;
+ ex2.approx.f32 %f351, %f350;
+ mul.f32 %f352, %f349, %f351;
+ setp.lt.f32 %p47, %f341, 0fC2D20000;
+ selp.f32 %f353, 0f00000000, %f352, %p47;
+ setp.gt.f32 %p48, %f341, 0f42D20000;
+ selp.f32 %f587, 0f7F800000, %f353, %p48;
+ setp.eq.f32 %p49, %f587, 0f7F800000;
+ @%p49 bra BB0_59;
+
+ fma.rn.f32 %f587, %f587, %f81, %f587;
+
+BB0_59:
+ setp.lt.f32 %p50, %f76, 0f00000000;
+ setp.eq.f32 %p51, %f79, 0f3F800000;
+ and.pred %p1, %p50, %p51;
+ mov.b32 %r229, %f587;
+ xor.b32 %r230, %r229, -2147483648;
+ mov.b32 %f354, %r230;
+ selp.f32 %f589, %f354, %f587, %p1;
+ setp.eq.f32 %p52, %f76, 0f00000000;
+ @%p52 bra BB0_62;
+ bra.uni BB0_60;
+
+BB0_62:
+ add.f32 %f357, %f76, %f76;
+ selp.f32 %f589, %f357, 0f00000000, %p51;
+ bra.uni BB0_63;
+
+BB0_100:
+ mov.u64 %rd105, image_HDR;
+ cvta.global.u64 %rd100, %rd105;
+ mov.u32 %r273, 8;
+ // inline asm
+ call (%rd99), _rt_buffer_get_64, (%rd100, %r91, %r273, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f538, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f538;}
+
+ // inline asm
+ mov.u16 %rs41, 0;
+ st.v4.u16 [%rd99], {%rs40, %rs40, %rs40, %rs41};
+ bra.uni BB0_101;
+
+BB0_60:
+ setp.geu.f32 %p53, %f76, 0f00000000;
+ @%p53 bra BB0_63;
+
+ mov.f32 %f559, 0f3EE66666;
+ cvt.rzi.f32.f32 %f356, %f559;
+ setp.neu.f32 %p54, %f356, 0f3EE66666;
+ selp.f32 %f589, 0f7FFFFFFF, %f589, %p54;
+
+BB0_63:
+ add.f32 %f358, %f80, 0f3EE66666;
+ mov.b32 %r231, %f358;
+ setp.lt.s32 %p56, %r231, 2139095040;
+ @%p56 bra BB0_68;
+
+ setp.gtu.f32 %p57, %f80, 0f7F800000;
+ @%p57 bra BB0_67;
+ bra.uni BB0_65;
+
+BB0_67:
+ add.f32 %f589, %f76, 0f3EE66666;
+ bra.uni BB0_68;
+
+BB0_65:
+ setp.neu.f32 %p58, %f80, 0f7F800000;
+ @%p58 bra BB0_68;
+
+ selp.f32 %f589, 0fFF800000, 0f7F800000, %p1;
+
+BB0_68:
+ mov.f32 %f547, 0fB5BFBE8E;
+ mov.f32 %f546, 0fBF317200;
+ mov.f32 %f545, 0f00000000;
+ mov.f32 %f544, 0f35BFBE8E;
+ mov.f32 %f543, 0f3F317200;
+ mov.f32 %f542, 0f3DAAAABD;
+ mov.f32 %f541, 0f3C4CAF63;
+ mov.f32 %f540, 0f3B18F0FE;
+ mov.f32 %f539, 0f3EE66666;
+ setp.eq.f32 %p59, %f76, 0f3F800000;
+ selp.f32 %f92, 0f3F800000, %f589, %p59;
+ abs.f32 %f93, %f77;
+ setp.lt.f32 %p60, %f93, 0f00800000;
+ mul.f32 %f361, %f93, 0f4B800000;
+ selp.f32 %f362, 0fC3170000, 0fC2FE0000, %p60;
+ selp.f32 %f363, %f361, %f93, %p60;
+ mov.b32 %r232, %f363;
+ and.b32 %r233, %r232, 8388607;
+ or.b32 %r234, %r233, 1065353216;
+ mov.b32 %f364, %r234;
+ shr.u32 %r235, %r232, 23;
+ cvt.rn.f32.u32 %f365, %r235;
+ add.f32 %f366, %f362, %f365;
+ setp.gt.f32 %p61, %f364, 0f3FB504F3;
+ mul.f32 %f367, %f364, 0f3F000000;
+ add.f32 %f368, %f366, 0f3F800000;
+ selp.f32 %f369, %f367, %f364, %p61;
+ selp.f32 %f370, %f368, %f366, %p61;
+ add.f32 %f371, %f369, 0fBF800000;
+ add.f32 %f360, %f369, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f359,%f360;
+ // inline asm
+ add.f32 %f372, %f371, %f371;
+ mul.f32 %f373, %f359, %f372;
+ mul.f32 %f374, %f373, %f373;
+ fma.rn.f32 %f377, %f540, %f374, %f541;
+ fma.rn.f32 %f379, %f377, %f374, %f542;
+ mul.rn.f32 %f380, %f379, %f374;
+ mul.rn.f32 %f381, %f380, %f373;
+ sub.f32 %f382, %f371, %f373;
+ neg.f32 %f383, %f373;
+ add.f32 %f384, %f382, %f382;
+ fma.rn.f32 %f385, %f383, %f371, %f384;
+ mul.rn.f32 %f386, %f359, %f385;
+ add.f32 %f387, %f381, %f373;
+ sub.f32 %f388, %f373, %f387;
+ add.f32 %f389, %f381, %f388;
+ add.f32 %f390, %f386, %f389;
+ add.f32 %f391, %f387, %f390;
+ sub.f32 %f392, %f387, %f391;
+ add.f32 %f393, %f390, %f392;
+ mul.rn.f32 %f395, %f370, %f543;
+ mul.rn.f32 %f397, %f370, %f544;
+ add.f32 %f398, %f395, %f391;
+ sub.f32 %f399, %f395, %f398;
+ add.f32 %f400, %f391, %f399;
+ add.f32 %f401, %f393, %f400;
+ add.f32 %f402, %f397, %f401;
+ add.f32 %f403, %f398, %f402;
+ sub.f32 %f404, %f398, %f403;
+ add.f32 %f405, %f402, %f404;
+ mul.rn.f32 %f407, %f539, %f403;
+ neg.f32 %f408, %f407;
+ fma.rn.f32 %f409, %f539, %f403, %f408;
+ fma.rn.f32 %f410, %f539, %f405, %f409;
+ fma.rn.f32 %f412, %f545, %f403, %f410;
+ add.rn.f32 %f413, %f407, %f412;
+ neg.f32 %f414, %f413;
+ add.rn.f32 %f415, %f407, %f414;
+ add.rn.f32 %f416, %f415, %f412;
+ mov.b32 %r236, %f413;
+ setp.eq.s32 %p62, %r236, 1118925336;
+ add.s32 %r237, %r236, -1;
+ mov.b32 %f417, %r237;
+ add.f32 %f418, %f416, 0f37000000;
+ selp.f32 %f419, %f417, %f413, %p62;
+ selp.f32 %f94, %f418, %f416, %p62;
+ mul.f32 %f420, %f419, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f421, %f420;
+ fma.rn.f32 %f423, %f421, %f546, %f419;
+ fma.rn.f32 %f425, %f421, %f547, %f423;
+ mul.f32 %f426, %f425, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f427, %f426;
+ add.f32 %f428, %f421, 0f00000000;
+ ex2.approx.f32 %f429, %f428;
+ mul.f32 %f430, %f427, %f429;
+ setp.lt.f32 %p63, %f419, 0fC2D20000;
+ selp.f32 %f431, 0f00000000, %f430, %p63;
+ setp.gt.f32 %p64, %f419, 0f42D20000;
+ selp.f32 %f590, 0f7F800000, %f431, %p64;
+ setp.eq.f32 %p65, %f590, 0f7F800000;
+ @%p65 bra BB0_70;
+
+ fma.rn.f32 %f590, %f590, %f94, %f590;
+
+BB0_70:
+ setp.lt.f32 %p66, %f77, 0f00000000;
+ and.pred %p2, %p66, %p51;
+ mov.b32 %r238, %f590;
+ xor.b32 %r239, %r238, -2147483648;
+ mov.b32 %f432, %r239;
+ selp.f32 %f592, %f432, %f590, %p2;
+ setp.eq.f32 %p68, %f77, 0f00000000;
+ @%p68 bra BB0_73;
+ bra.uni BB0_71;
+
+BB0_73:
+ add.f32 %f435, %f77, %f77;
+ selp.f32 %f592, %f435, 0f00000000, %p51;
+ bra.uni BB0_74;
+
+BB0_71:
+ setp.geu.f32 %p69, %f77, 0f00000000;
+ @%p69 bra BB0_74;
+
+ mov.f32 %f558, 0f3EE66666;
+ cvt.rzi.f32.f32 %f434, %f558;
+ setp.neu.f32 %p70, %f434, 0f3EE66666;
+ selp.f32 %f592, 0f7FFFFFFF, %f592, %p70;
+
+BB0_74:
+ add.f32 %f436, %f93, 0f3EE66666;
+ mov.b32 %r240, %f436;
+ setp.lt.s32 %p72, %r240, 2139095040;
+ @%p72 bra BB0_79;
+
+ setp.gtu.f32 %p73, %f93, 0f7F800000;
+ @%p73 bra BB0_78;
+ bra.uni BB0_76;
+
+BB0_78:
+ add.f32 %f592, %f77, 0f3EE66666;
+ bra.uni BB0_79;
+
+BB0_76:
+ setp.neu.f32 %p74, %f93, 0f7F800000;
+ @%p74 bra BB0_79;
+
+ selp.f32 %f592, 0fFF800000, 0f7F800000, %p2;
+
+BB0_79:
+ mov.f32 %f556, 0fB5BFBE8E;
+ mov.f32 %f555, 0fBF317200;
+ mov.f32 %f554, 0f00000000;
+ mov.f32 %f553, 0f35BFBE8E;
+ mov.f32 %f552, 0f3F317200;
+ mov.f32 %f551, 0f3DAAAABD;
+ mov.f32 %f550, 0f3C4CAF63;
+ mov.f32 %f549, 0f3B18F0FE;
+ mov.f32 %f548, 0f3EE66666;
+ setp.eq.f32 %p75, %f77, 0f3F800000;
+ selp.f32 %f105, 0f3F800000, %f592, %p75;
+ abs.f32 %f106, %f78;
+ setp.lt.f32 %p76, %f106, 0f00800000;
+ mul.f32 %f439, %f106, 0f4B800000;
+ selp.f32 %f440, 0fC3170000, 0fC2FE0000, %p76;
+ selp.f32 %f441, %f439, %f106, %p76;
+ mov.b32 %r241, %f441;
+ and.b32 %r242, %r241, 8388607;
+ or.b32 %r243, %r242, 1065353216;
+ mov.b32 %f442, %r243;
+ shr.u32 %r244, %r241, 23;
+ cvt.rn.f32.u32 %f443, %r244;
+ add.f32 %f444, %f440, %f443;
+ setp.gt.f32 %p77, %f442, 0f3FB504F3;
+ mul.f32 %f445, %f442, 0f3F000000;
+ add.f32 %f446, %f444, 0f3F800000;
+ selp.f32 %f447, %f445, %f442, %p77;
+ selp.f32 %f448, %f446, %f444, %p77;
+ add.f32 %f449, %f447, 0fBF800000;
+ add.f32 %f438, %f447, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f437,%f438;
+ // inline asm
+ add.f32 %f450, %f449, %f449;
+ mul.f32 %f451, %f437, %f450;
+ mul.f32 %f452, %f451, %f451;
+ fma.rn.f32 %f455, %f549, %f452, %f550;
+ fma.rn.f32 %f457, %f455, %f452, %f551;
+ mul.rn.f32 %f458, %f457, %f452;
+ mul.rn.f32 %f459, %f458, %f451;
+ sub.f32 %f460, %f449, %f451;
+ neg.f32 %f461, %f451;
+ add.f32 %f462, %f460, %f460;
+ fma.rn.f32 %f463, %f461, %f449, %f462;
+ mul.rn.f32 %f464, %f437, %f463;
+ add.f32 %f465, %f459, %f451;
+ sub.f32 %f466, %f451, %f465;
+ add.f32 %f467, %f459, %f466;
+ add.f32 %f468, %f464, %f467;
+ add.f32 %f469, %f465, %f468;
+ sub.f32 %f470, %f465, %f469;
+ add.f32 %f471, %f468, %f470;
+ mul.rn.f32 %f473, %f448, %f552;
+ mul.rn.f32 %f475, %f448, %f553;
+ add.f32 %f476, %f473, %f469;
+ sub.f32 %f477, %f473, %f476;
+ add.f32 %f478, %f469, %f477;
+ add.f32 %f479, %f471, %f478;
+ add.f32 %f480, %f475, %f479;
+ add.f32 %f481, %f476, %f480;
+ sub.f32 %f482, %f476, %f481;
+ add.f32 %f483, %f480, %f482;
+ mul.rn.f32 %f485, %f548, %f481;
+ neg.f32 %f486, %f485;
+ fma.rn.f32 %f487, %f548, %f481, %f486;
+ fma.rn.f32 %f488, %f548, %f483, %f487;
+ fma.rn.f32 %f490, %f554, %f481, %f488;
+ add.rn.f32 %f491, %f485, %f490;
+ neg.f32 %f492, %f491;
+ add.rn.f32 %f493, %f485, %f492;
+ add.rn.f32 %f494, %f493, %f490;
+ mov.b32 %r245, %f491;
+ setp.eq.s32 %p78, %r245, 1118925336;
+ add.s32 %r246, %r245, -1;
+ mov.b32 %f495, %r246;
+ add.f32 %f496, %f494, 0f37000000;
+ selp.f32 %f497, %f495, %f491, %p78;
+ selp.f32 %f107, %f496, %f494, %p78;
+ mul.f32 %f498, %f497, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f499, %f498;
+ fma.rn.f32 %f501, %f499, %f555, %f497;
+ fma.rn.f32 %f503, %f499, %f556, %f501;
+ mul.f32 %f504, %f503, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f505, %f504;
+ add.f32 %f506, %f499, 0f00000000;
+ ex2.approx.f32 %f507, %f506;
+ mul.f32 %f508, %f505, %f507;
+ setp.lt.f32 %p79, %f497, 0fC2D20000;
+ selp.f32 %f509, 0f00000000, %f508, %p79;
+ setp.gt.f32 %p80, %f497, 0f42D20000;
+ selp.f32 %f593, 0f7F800000, %f509, %p80;
+ setp.eq.f32 %p81, %f593, 0f7F800000;
+ @%p81 bra BB0_81;
+
+ fma.rn.f32 %f593, %f593, %f107, %f593;
+
+BB0_81:
+ setp.lt.f32 %p82, %f78, 0f00000000;
+ and.pred %p3, %p82, %p51;
+ mov.b32 %r247, %f593;
+ xor.b32 %r248, %r247, -2147483648;
+ mov.b32 %f510, %r248;
+ selp.f32 %f595, %f510, %f593, %p3;
+ setp.eq.f32 %p84, %f78, 0f00000000;
+ @%p84 bra BB0_84;
+ bra.uni BB0_82;
+
+BB0_84:
+ add.f32 %f513, %f78, %f78;
+ selp.f32 %f595, %f513, 0f00000000, %p51;
+ bra.uni BB0_85;
+
+BB0_82:
+ setp.geu.f32 %p85, %f78, 0f00000000;
+ @%p85 bra BB0_85;
+
+ mov.f32 %f557, 0f3EE66666;
+ cvt.rzi.f32.f32 %f512, %f557;
+ setp.neu.f32 %p86, %f512, 0f3EE66666;
+ selp.f32 %f595, 0f7FFFFFFF, %f595, %p86;
+
+BB0_85:
+ add.f32 %f514, %f106, 0f3EE66666;
+ mov.b32 %r249, %f514;
+ setp.lt.s32 %p88, %r249, 2139095040;
+ @%p88 bra BB0_90;
+
+ setp.gtu.f32 %p89, %f106, 0f7F800000;
+ @%p89 bra BB0_89;
+ bra.uni BB0_87;
+
+BB0_89:
+ add.f32 %f595, %f78, 0f3EE66666;
+ bra.uni BB0_90;
+
+BB0_87:
+ setp.neu.f32 %p90, %f106, 0f7F800000;
+ @%p90 bra BB0_90;
+
+ selp.f32 %f595, 0fFF800000, 0f7F800000, %p3;
+
+BB0_90:
+ mov.u32 %r275, 4;
+ mov.u64 %rd106, 0;
+ mov.u32 %r274, 2;
+ setp.eq.f32 %p91, %f78, 0f3F800000;
+ selp.f32 %f515, 0f3F800000, %f595, %p91;
+ cvt.u64.u32 %rd55, %r4;
+ cvt.u64.u32 %rd54, %r3;
+ mov.u64 %rd58, image;
+ cvta.global.u64 %rd53, %rd58;
+ // inline asm
+ call (%rd52), _rt_buffer_get_64, (%rd53, %r274, %r275, %rd54, %rd55, %rd106, %rd106);
+ // inline asm
+ cvt.sat.f32.f32 %f516, %f515;
+ mul.f32 %f517, %f516, 0f437FFD71;
+ cvt.rzi.u32.f32 %r252, %f517;
+ cvt.sat.f32.f32 %f518, %f105;
+ mul.f32 %f519, %f518, 0f437FFD71;
+ cvt.rzi.u32.f32 %r253, %f519;
+ cvt.sat.f32.f32 %f520, %f92;
+ mul.f32 %f521, %f520, 0f437FFD71;
+ cvt.rzi.u32.f32 %r254, %f521;
+ cvt.u16.u32 %rs10, %r252;
+ cvt.u16.u32 %rs11, %r254;
+ cvt.u16.u32 %rs12, %r253;
+ mov.u16 %rs13, 255;
+ st.v4.u8 [%rd52], {%rs10, %rs12, %rs11, %rs13};
+ ld.global.u32 %r302, [imageEnabled];
+
+BB0_91:
+ and.b32 %r255, %r302, 4;
+ setp.eq.s32 %p92, %r255, 0;
+ @%p92 bra BB0_101;
+
+ ld.global.u32 %r256, [additive];
+ setp.eq.s32 %p93, %r256, 0;
+ cvt.u64.u32 %rd15, %r3;
+ cvt.u64.u32 %rd16, %r4;
+ mov.f32 %f522, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs14, %f522;}
+
+ // inline asm
+ @%p93 bra BB0_94;
+
+ mov.u64 %rd107, 0;
+ mov.u32 %r276, 2;
+ mov.u64 %rd71, image_HDR;
+ cvta.global.u64 %rd60, %rd71;
+ mov.u32 %r260, 8;
+ // inline asm
+ call (%rd59), _rt_buffer_get_64, (%rd60, %r276, %r260, %rd15, %rd16, %rd107, %rd107);
+ // inline asm
+ ld.v4.u16 {%rs21, %rs22, %rs23, %rs24}, [%rd59];
+ // inline asm
+ { cvt.f32.f16 %f523, %rs21;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f524, %rs22;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f525, %rs23;}
+
+ // inline asm
+ // inline asm
+ call (%rd65), _rt_buffer_get_64, (%rd60, %r276, %r260, %rd15, %rd16, %rd107, %rd107);
+ // inline asm
+ add.f32 %f526, %f76, %f523;
+ add.f32 %f527, %f77, %f524;
+ add.f32 %f528, %f78, %f525;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f528;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs19, %f527;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs18, %f526;}
+
+ // inline asm
+ st.v4.u16 [%rd65], {%rs18, %rs19, %rs20, %rs14};
+ bra.uni BB0_101;
+
+BB0_94:
+ mov.u64 %rd108, 0;
+ mov.u32 %r277, 2;
+ mov.u64 %rd78, image_HDR;
+ cvta.global.u64 %rd73, %rd78;
+ mov.u32 %r262, 8;
+ // inline asm
+ call (%rd72), _rt_buffer_get_64, (%rd73, %r277, %r262, %rd15, %rd16, %rd108, %rd108);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f78;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f77;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f76;}
+
+ // inline asm
+ st.v4.u16 [%rd72], {%rs25, %rs26, %rs27, %rs14};
+
+BB0_101:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemap.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemap.ptx.meta
new file mode 100644
index 00000000..7678b9a9
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemap.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 36fd7087290b6af4c9f043e9fde27fe7
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapDir.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapDir.ptx
new file mode 100644
index 00000000..4427d8d7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapDir.ptx
@@ -0,0 +1,1466 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Dir[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 sky;
+.global .align 4 .b8 skyColor[12];
+.global .align 4 .u32 samples;
+.global .align 4 .u32 hemispherical;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3skyE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8skyColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13hemisphericalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3skyE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8skyColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename13hemisphericalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3skyE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8skyColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13hemisphericalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic3skyE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8skyColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13hemisphericalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3skyE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8skyColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13hemisphericalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<99>;
+ .reg .b16 %rs<51>;
+ .reg .f32 %f<660>;
+ .reg .b32 %r<313>;
+ .reg .b64 %rd<141>;
+
+
+ mov.u64 %rd140, __local_depot0;
+ cvta.local.u64 %SP, %rd140;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r93, %r94}, [pixelID];
+ cvt.u64.u32 %rd22, %r93;
+ cvt.u64.u32 %rd23, %r94;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r91, 2;
+ mov.u32 %r92, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r91, %r92, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r2, [%rd20];
+ shr.u32 %r97, %r2, 16;
+ cvt.u16.u32 %rs1, %r97;
+ and.b16 %rs3, %rs1, 255;
+ cvt.u16.u32 %rs4, %r2;
+ or.b16 %rs5, %rs4, %rs3;
+ setp.eq.s16 %p4, %rs5, 0;
+ mov.f32 %f612, 0f00000000;
+ mov.f32 %f613, %f612;
+ mov.f32 %f614, %f612;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs6, [%rd20+1];
+ and.b16 %rs8, %rs4, 255;
+ cvt.rn.f32.u16 %f137, %rs8;
+ div.rn.f32 %f138, %f137, 0f437F0000;
+ fma.rn.f32 %f139, %f138, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f140, %rs6;
+ div.rn.f32 %f141, %f140, 0f437F0000;
+ fma.rn.f32 %f142, %f141, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f143, %rs3;
+ div.rn.f32 %f144, %f143, 0f437F0000;
+ fma.rn.f32 %f145, %f144, 0f40000000, 0fBF800000;
+ mul.f32 %f146, %f142, %f142;
+ fma.rn.f32 %f147, %f139, %f139, %f146;
+ fma.rn.f32 %f148, %f145, %f145, %f147;
+ sqrt.rn.f32 %f149, %f148;
+ rcp.rn.f32 %f150, %f149;
+ mul.f32 %f612, %f139, %f150;
+ mul.f32 %f613, %f142, %f150;
+ mul.f32 %f614, %f145, %f150;
+
+BB0_2:
+ ld.global.v2.u32 {%r98, %r99}, [pixelID];
+ ld.global.v2.u32 {%r101, %r102}, [tileInfo];
+ add.s32 %r3, %r98, %r101;
+ add.s32 %r4, %r99, %r102;
+ setp.eq.f32 %p5, %f613, 0f00000000;
+ setp.eq.f32 %p6, %f612, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f614, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_97;
+ bra.uni BB0_3;
+
+BB0_97:
+ ld.global.u32 %r312, [imageEnabled];
+ and.b32 %r268, %r312, 1;
+ setp.eq.b32 %p95, %r268, 1;
+ @!%p95 bra BB0_99;
+ bra.uni BB0_98;
+
+BB0_98:
+ cvt.u64.u32 %rd99, %r3;
+ cvt.u64.u32 %rd100, %r4;
+ mov.u64 %rd103, image;
+ cvta.global.u64 %rd98, %rd103;
+ mov.u64 %rd102, 0;
+ // inline asm
+ call (%rd97), _rt_buffer_get_64, (%rd98, %r91, %r92, %rd99, %rd100, %rd102, %rd102);
+ // inline asm
+ mov.u16 %rs34, 0;
+ st.v4.u8 [%rd97], {%rs34, %rs34, %rs34, %rs34};
+ ld.global.u32 %r312, [imageEnabled];
+
+BB0_99:
+ and.b32 %r271, %r312, 4;
+ setp.eq.s32 %p96, %r271, 0;
+ @%p96 bra BB0_103;
+
+ ld.global.u32 %r272, [additive];
+ setp.eq.s32 %p97, %r272, 0;
+ cvt.u64.u32 %rd18, %r3;
+ cvt.u64.u32 %rd19, %r4;
+ @%p97 bra BB0_102;
+
+ mov.u64 %rd116, image_HDR;
+ cvta.global.u64 %rd105, %rd116;
+ mov.u32 %r276, 8;
+ mov.u64 %rd115, 0;
+ // inline asm
+ call (%rd104), _rt_buffer_get_64, (%rd105, %r91, %r276, %rd18, %rd19, %rd115, %rd115);
+ // inline asm
+ ld.v4.u16 {%rs41, %rs42, %rs43, %rs44}, [%rd104];
+ // inline asm
+ { cvt.f32.f16 %f571, %rs41;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f572, %rs42;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f573, %rs43;}
+
+ // inline asm
+ // inline asm
+ call (%rd110), _rt_buffer_get_64, (%rd105, %r91, %r276, %rd18, %rd19, %rd115, %rd115);
+ // inline asm
+ add.f32 %f574, %f571, 0f00000000;
+ add.f32 %f575, %f572, 0f00000000;
+ add.f32 %f576, %f573, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f576;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f575;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f574;}
+
+ // inline asm
+ mov.u16 %rs45, 0;
+ st.v4.u16 [%rd110], {%rs38, %rs39, %rs40, %rs45};
+ bra.uni BB0_103;
+
+BB0_3:
+ ld.global.v2.u32 {%r110, %r111}, [pixelID];
+ cvt.u64.u32 %rd29, %r110;
+ cvt.u64.u32 %rd30, %r111;
+ mov.u64 %rd39, uvpos;
+ cvta.global.u64 %rd28, %rd39;
+ mov.u32 %r107, 12;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r91, %r107, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f157, [%rd27+8];
+ ld.f32 %f158, [%rd27+4];
+ ld.f32 %f159, [%rd27];
+ mul.f32 %f160, %f159, 0f3456BF95;
+ mul.f32 %f161, %f158, 0f3456BF95;
+ mul.f32 %f162, %f157, 0f3456BF95;
+ abs.f32 %f163, %f612;
+ div.rn.f32 %f164, %f160, %f163;
+ abs.f32 %f165, %f613;
+ div.rn.f32 %f166, %f161, %f165;
+ abs.f32 %f167, %f614;
+ div.rn.f32 %f168, %f162, %f167;
+ abs.f32 %f169, %f164;
+ abs.f32 %f170, %f166;
+ abs.f32 %f171, %f168;
+ mov.f32 %f172, 0f38D1B717;
+ max.f32 %f173, %f169, %f172;
+ max.f32 %f174, %f170, %f172;
+ max.f32 %f175, %f171, %f172;
+ fma.rn.f32 %f7, %f612, %f173, %f159;
+ fma.rn.f32 %f8, %f613, %f174, %f158;
+ fma.rn.f32 %f9, %f614, %f175, %f157;
+ ld.global.u32 %r5, [hemispherical];
+ setp.gt.f32 %p10, %f163, %f167;
+ neg.f32 %f176, %f613;
+ selp.f32 %f177, %f176, 0f00000000, %p10;
+ neg.f32 %f178, %f614;
+ selp.f32 %f179, %f612, %f178, %p10;
+ selp.f32 %f180, 0f00000000, %f613, %p10;
+ mul.f32 %f181, %f179, %f179;
+ fma.rn.f32 %f182, %f177, %f177, %f181;
+ fma.rn.f32 %f183, %f180, %f180, %f182;
+ sqrt.rn.f32 %f184, %f183;
+ rcp.rn.f32 %f185, %f184;
+ mul.f32 %f10, %f177, %f185;
+ mul.f32 %f11, %f179, %f185;
+ mul.f32 %f12, %f180, %f185;
+ ld.global.v2.u32 {%r114, %r115}, [pixelID];
+ cvt.u64.u32 %rd35, %r114;
+ cvt.u64.u32 %rd36, %r115;
+ mov.u64 %rd40, rnd_seeds;
+ cvta.global.u64 %rd34, %rd40;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r91, %r92, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f644, 0f00000000;
+ setp.lt.s32 %p11, %r1, 1;
+ mov.f32 %f643, %f644;
+ mov.f32 %f642, %f644;
+ mov.f32 %f641, %f644;
+ mov.f32 %f640, %f644;
+ mov.f32 %f639, %f644;
+ @%p11 bra BB0_56;
+
+ cvt.rn.f32.s32 %f192, %r1;
+ rcp.rn.f32 %f13, %f192;
+ ld.u32 %r290, [%rd33];
+ mul.f32 %f14, %f7, 0f3456BF95;
+ mul.f32 %f15, %f8, 0f3456BF95;
+ mul.f32 %f16, %f9, 0f3456BF95;
+ mul.f32 %f193, %f612, %f11;
+ mul.f32 %f194, %f613, %f10;
+ sub.f32 %f17, %f194, %f193;
+ mul.f32 %f195, %f614, %f10;
+ mul.f32 %f196, %f612, %f12;
+ sub.f32 %f18, %f196, %f195;
+ mul.f32 %f197, %f613, %f12;
+ mul.f32 %f198, %f614, %f11;
+ sub.f32 %f19, %f198, %f197;
+ mov.f32 %f644, 0f00000000;
+ mov.u32 %r118, 0;
+ abs.f32 %f279, %f15;
+ abs.f32 %f280, %f14;
+ max.f32 %f281, %f280, %f279;
+ abs.f32 %f282, %f16;
+ max.f32 %f283, %f281, %f282;
+ mov.u32 %r287, %r118;
+ mov.f32 %f643, %f644;
+ mov.f32 %f642, %f644;
+ mov.f32 %f641, %f644;
+ mov.f32 %f640, %f644;
+ mov.f32 %f639, %f644;
+
+BB0_5:
+ mov.u32 %r289, %r118;
+
+BB0_6:
+ cvt.rn.f32.s32 %f605, %r287;
+ mad.lo.s32 %r120, %r290, 1664525, 1013904223;
+ and.b32 %r121, %r120, 16777215;
+ cvt.rn.f32.u32 %f199, %r121;
+ fma.rn.f32 %f200, %f199, 0f33800000, %f605;
+ mul.f32 %f33, %f13, %f200;
+ mad.lo.s32 %r290, %r120, 1664525, 1013904223;
+ and.b32 %r122, %r290, 16777215;
+ cvt.rn.f32.u32 %f201, %r122;
+ cvt.rn.f32.s32 %f202, %r289;
+ fma.rn.f32 %f203, %f201, 0f33800000, %f202;
+ mul.f32 %f204, %f13, %f203;
+ mul.f32 %f205, %f33, %f33;
+ mov.f32 %f206, 0f3F800000;
+ sub.f32 %f207, %f206, %f205;
+ mov.f32 %f208, 0f00000000;
+ max.f32 %f209, %f208, %f207;
+ sqrt.rn.f32 %f34, %f209;
+ mul.f32 %f633, %f204, 0f40C90FDB;
+ abs.f32 %f36, %f633;
+ setp.neu.f32 %p12, %f36, 0f7F800000;
+ mov.f32 %f627, %f633;
+ @%p12 bra BB0_8;
+
+ mul.rn.f32 %f627, %f633, %f208;
+
+BB0_8:
+ mul.f32 %f211, %f627, 0f3F22F983;
+ cvt.rni.s32.f32 %r300, %f211;
+ cvt.rn.f32.s32 %f212, %r300;
+ neg.f32 %f213, %f212;
+ mov.f32 %f214, 0f3FC90FDA;
+ fma.rn.f32 %f215, %f213, %f214, %f627;
+ mov.f32 %f216, 0f33A22168;
+ fma.rn.f32 %f217, %f213, %f216, %f215;
+ mov.f32 %f218, 0f27C234C5;
+ fma.rn.f32 %f628, %f213, %f218, %f217;
+ abs.f32 %f219, %f627;
+ setp.leu.f32 %p13, %f219, 0f47CE4780;
+ @%p13 bra BB0_19;
+
+ add.u64 %rd42, %SP, 0;
+ cvta.to.local.u64 %rd3, %rd42;
+ mov.b32 %r13, %f627;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r125, %r13, 8;
+ or.b32 %r15, %r125, -2147483648;
+ mov.u32 %r291, 0;
+ mov.u64 %rd137, 0;
+ mov.u64 %rd136, %rd3;
+ mov.u32 %r292, %r291;
+
+BB0_10:
+ .pragma "nounroll";
+ shl.b64 %rd43, %rd137, 2;
+ mov.u64 %rd44, __cudart_i2opi_f;
+ add.s64 %rd45, %rd44, %rd43;
+ ld.const.u32 %r128, [%rd45];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r126, %r128, %r15, %r292;
+ madc.hi.u32 %r292, %r128, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd136], %r126;
+ add.s32 %r291, %r291, 1;
+ cvt.s64.s32 %rd137, %r291;
+ mul.wide.s32 %rd48, %r291, 4;
+ add.s64 %rd136, %rd3, %rd48;
+ setp.ne.s32 %p14, %r291, 6;
+ @%p14 bra BB0_10;
+
+ add.u64 %rd135, %SP, 0;
+ and.b32 %r131, %r14, 255;
+ add.s32 %r132, %r131, -128;
+ shr.u32 %r133, %r132, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd50, %rd135;
+ st.local.u32 [%rd50+24], %r292;
+ mov.u32 %r134, 6;
+ sub.s32 %r135, %r134, %r133;
+ mul.wide.s32 %rd51, %r135, 4;
+ add.s64 %rd8, %rd50, %rd51;
+ ld.local.u32 %r293, [%rd8];
+ ld.local.u32 %r294, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p15, %r23, 0;
+ @%p15 bra BB0_13;
+
+ mov.u32 %r136, 32;
+ sub.s32 %r137, %r136, %r23;
+ shr.u32 %r138, %r294, %r137;
+ shl.b32 %r139, %r293, %r23;
+ add.s32 %r293, %r138, %r139;
+ ld.local.u32 %r140, [%rd8+-8];
+ shr.u32 %r141, %r140, %r137;
+ shl.b32 %r142, %r294, %r23;
+ add.s32 %r294, %r141, %r142;
+
+BB0_13:
+ shr.u32 %r143, %r294, 30;
+ shl.b32 %r144, %r293, 2;
+ add.s32 %r295, %r143, %r144;
+ shl.b32 %r29, %r294, 2;
+ shr.u32 %r145, %r295, 31;
+ shr.u32 %r146, %r293, 30;
+ add.s32 %r30, %r145, %r146;
+ setp.eq.s32 %p16, %r145, 0;
+ @%p16 bra BB0_14;
+ bra.uni BB0_15;
+
+BB0_14:
+ mov.u32 %r296, %r20;
+ mov.u32 %r297, %r29;
+ bra.uni BB0_16;
+
+BB0_15:
+ not.b32 %r147, %r295;
+ neg.s32 %r297, %r29;
+ setp.eq.s32 %p17, %r29, 0;
+ selp.u32 %r148, 1, 0, %p17;
+ add.s32 %r295, %r148, %r147;
+ xor.b32 %r296, %r20, -2147483648;
+
+BB0_16:
+ clz.b32 %r299, %r295;
+ setp.eq.s32 %p18, %r299, 0;
+ shl.b32 %r149, %r295, %r299;
+ mov.u32 %r150, 32;
+ sub.s32 %r151, %r150, %r299;
+ shr.u32 %r152, %r297, %r151;
+ add.s32 %r153, %r152, %r149;
+ selp.b32 %r38, %r295, %r153, %p18;
+ mov.u32 %r154, -921707870;
+ mul.hi.u32 %r298, %r38, %r154;
+ setp.eq.s32 %p19, %r20, 0;
+ neg.s32 %r155, %r30;
+ selp.b32 %r300, %r30, %r155, %p19;
+ setp.lt.s32 %p20, %r298, 1;
+ @%p20 bra BB0_18;
+
+ mul.lo.s32 %r156, %r38, -921707870;
+ shr.u32 %r157, %r156, 31;
+ shl.b32 %r158, %r298, 1;
+ add.s32 %r298, %r157, %r158;
+ add.s32 %r299, %r299, 1;
+
+BB0_18:
+ mov.u32 %r159, 126;
+ sub.s32 %r160, %r159, %r299;
+ shl.b32 %r161, %r160, 23;
+ add.s32 %r162, %r298, 1;
+ shr.u32 %r163, %r162, 7;
+ add.s32 %r164, %r163, 1;
+ shr.u32 %r165, %r164, 1;
+ add.s32 %r166, %r165, %r161;
+ or.b32 %r167, %r166, %r296;
+ mov.b32 %f628, %r167;
+
+BB0_19:
+ mul.rn.f32 %f42, %f628, %f628;
+ add.s32 %r46, %r300, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p21, %r47, 0;
+ @%p21 bra BB0_21;
+ bra.uni BB0_20;
+
+BB0_21:
+ mov.f32 %f222, 0f3C08839E;
+ mov.f32 %f223, 0fB94CA1F9;
+ fma.rn.f32 %f629, %f223, %f42, %f222;
+ bra.uni BB0_22;
+
+BB0_20:
+ mov.f32 %f220, 0fBAB6061A;
+ mov.f32 %f221, 0f37CCF5CE;
+ fma.rn.f32 %f629, %f221, %f42, %f220;
+
+BB0_22:
+ @%p21 bra BB0_24;
+ bra.uni BB0_23;
+
+BB0_24:
+ mov.f32 %f227, 0fBE2AAAA3;
+ fma.rn.f32 %f228, %f629, %f42, %f227;
+ fma.rn.f32 %f630, %f228, %f42, %f208;
+ bra.uni BB0_25;
+
+BB0_23:
+ mov.f32 %f224, 0f3D2AAAA5;
+ fma.rn.f32 %f225, %f629, %f42, %f224;
+ mov.f32 %f226, 0fBF000000;
+ fma.rn.f32 %f630, %f225, %f42, %f226;
+
+BB0_25:
+ fma.rn.f32 %f631, %f630, %f628, %f628;
+ @%p21 bra BB0_27;
+
+ fma.rn.f32 %f631, %f630, %f42, %f206;
+
+BB0_27:
+ and.b32 %r168, %r46, 2;
+ setp.eq.s32 %p24, %r168, 0;
+ @%p24 bra BB0_29;
+
+ mov.f32 %f232, 0fBF800000;
+ fma.rn.f32 %f631, %f631, %f232, %f208;
+
+BB0_29:
+ @%p12 bra BB0_31;
+
+ mul.rn.f32 %f633, %f633, %f208;
+
+BB0_31:
+ mov.f32 %f608, 0f27C234C5;
+ mov.f32 %f607, 0f33A22168;
+ mov.f32 %f606, 0f3FC90FDA;
+ mul.f32 %f234, %f633, 0f3F22F983;
+ cvt.rni.s32.f32 %r310, %f234;
+ cvt.rn.f32.s32 %f235, %r310;
+ neg.f32 %f236, %f235;
+ fma.rn.f32 %f238, %f236, %f606, %f633;
+ fma.rn.f32 %f240, %f236, %f607, %f238;
+ fma.rn.f32 %f634, %f236, %f608, %f240;
+ abs.f32 %f242, %f633;
+ setp.leu.f32 %p26, %f242, 0f47CE4780;
+ @%p26 bra BB0_42;
+
+ add.u64 %rd53, %SP, 0;
+ cvta.to.local.u64 %rd9, %rd53;
+ mov.b32 %r49, %f633;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r171, %r49, 8;
+ or.b32 %r51, %r171, -2147483648;
+ mov.u32 %r301, 0;
+ mov.u64 %rd138, %rd9;
+ mov.u64 %rd139, %rd25;
+ mov.u32 %r302, %r301;
+
+BB0_33:
+ .pragma "nounroll";
+ shl.b64 %rd54, %rd139, 2;
+ mov.u64 %rd55, __cudart_i2opi_f;
+ add.s64 %rd56, %rd55, %rd54;
+ ld.const.u32 %r174, [%rd56];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r172, %r174, %r51, %r302;
+ madc.hi.u32 %r302, %r174, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd138], %r172;
+ add.s32 %r301, %r301, 1;
+ cvt.s64.s32 %rd139, %r301;
+ mul.wide.s32 %rd57, %r301, 4;
+ add.s64 %rd138, %rd9, %rd57;
+ setp.ne.s32 %p27, %r301, 6;
+ @%p27 bra BB0_33;
+
+ and.b32 %r177, %r50, 255;
+ add.s32 %r178, %r177, -128;
+ shr.u32 %r179, %r178, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd59, %rd53;
+ st.local.u32 [%rd59+24], %r302;
+ mov.u32 %r180, 6;
+ sub.s32 %r181, %r180, %r179;
+ mul.wide.s32 %rd60, %r181, 4;
+ add.s64 %rd15, %rd59, %rd60;
+ ld.local.u32 %r303, [%rd15];
+ ld.local.u32 %r304, [%rd15+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p28, %r59, 0;
+ @%p28 bra BB0_36;
+
+ mov.u32 %r182, 32;
+ sub.s32 %r183, %r182, %r59;
+ shr.u32 %r184, %r304, %r183;
+ shl.b32 %r185, %r303, %r59;
+ add.s32 %r303, %r184, %r185;
+ ld.local.u32 %r186, [%rd15+-8];
+ shr.u32 %r187, %r186, %r183;
+ shl.b32 %r188, %r304, %r59;
+ add.s32 %r304, %r187, %r188;
+
+BB0_36:
+ shr.u32 %r189, %r304, 30;
+ shl.b32 %r190, %r303, 2;
+ add.s32 %r305, %r189, %r190;
+ shl.b32 %r65, %r304, 2;
+ shr.u32 %r191, %r305, 31;
+ shr.u32 %r192, %r303, 30;
+ add.s32 %r66, %r191, %r192;
+ setp.eq.s32 %p29, %r191, 0;
+ @%p29 bra BB0_37;
+ bra.uni BB0_38;
+
+BB0_37:
+ mov.u32 %r306, %r56;
+ mov.u32 %r307, %r65;
+ bra.uni BB0_39;
+
+BB0_38:
+ not.b32 %r193, %r305;
+ neg.s32 %r307, %r65;
+ setp.eq.s32 %p30, %r65, 0;
+ selp.u32 %r194, 1, 0, %p30;
+ add.s32 %r305, %r194, %r193;
+ xor.b32 %r306, %r56, -2147483648;
+
+BB0_39:
+ clz.b32 %r309, %r305;
+ setp.eq.s32 %p31, %r309, 0;
+ shl.b32 %r195, %r305, %r309;
+ mov.u32 %r196, 32;
+ sub.s32 %r197, %r196, %r309;
+ shr.u32 %r198, %r307, %r197;
+ add.s32 %r199, %r198, %r195;
+ selp.b32 %r74, %r305, %r199, %p31;
+ mov.u32 %r200, -921707870;
+ mul.hi.u32 %r308, %r74, %r200;
+ setp.eq.s32 %p32, %r56, 0;
+ neg.s32 %r201, %r66;
+ selp.b32 %r310, %r66, %r201, %p32;
+ setp.lt.s32 %p33, %r308, 1;
+ @%p33 bra BB0_41;
+
+ mul.lo.s32 %r202, %r74, -921707870;
+ shr.u32 %r203, %r202, 31;
+ shl.b32 %r204, %r308, 1;
+ add.s32 %r308, %r203, %r204;
+ add.s32 %r309, %r309, 1;
+
+BB0_41:
+ mov.u32 %r205, 126;
+ sub.s32 %r206, %r205, %r309;
+ shl.b32 %r207, %r206, 23;
+ add.s32 %r208, %r308, 1;
+ shr.u32 %r209, %r208, 7;
+ add.s32 %r210, %r209, 1;
+ shr.u32 %r211, %r210, 1;
+ add.s32 %r212, %r211, %r207;
+ or.b32 %r213, %r212, %r306;
+ mov.b32 %f634, %r213;
+
+BB0_42:
+ mul.rn.f32 %f59, %f634, %f634;
+ and.b32 %r82, %r310, 1;
+ setp.eq.s32 %p34, %r82, 0;
+ @%p34 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mov.f32 %f245, 0f3C08839E;
+ mov.f32 %f246, 0fB94CA1F9;
+ fma.rn.f32 %f635, %f246, %f59, %f245;
+ bra.uni BB0_45;
+
+BB0_43:
+ mov.f32 %f243, 0fBAB6061A;
+ mov.f32 %f244, 0f37CCF5CE;
+ fma.rn.f32 %f635, %f244, %f59, %f243;
+
+BB0_45:
+ @%p34 bra BB0_47;
+ bra.uni BB0_46;
+
+BB0_47:
+ mov.f32 %f250, 0fBE2AAAA3;
+ fma.rn.f32 %f251, %f635, %f59, %f250;
+ fma.rn.f32 %f636, %f251, %f59, %f208;
+ bra.uni BB0_48;
+
+BB0_46:
+ mov.f32 %f247, 0f3D2AAAA5;
+ fma.rn.f32 %f248, %f635, %f59, %f247;
+ mov.f32 %f249, 0fBF000000;
+ fma.rn.f32 %f636, %f248, %f59, %f249;
+
+BB0_48:
+ fma.rn.f32 %f637, %f636, %f634, %f634;
+ @%p34 bra BB0_50;
+
+ fma.rn.f32 %f637, %f636, %f59, %f206;
+
+BB0_50:
+ and.b32 %r214, %r310, 2;
+ setp.eq.s32 %p37, %r214, 0;
+ @%p37 bra BB0_52;
+
+ mov.f32 %f255, 0fBF800000;
+ fma.rn.f32 %f637, %f637, %f255, %f208;
+
+BB0_52:
+ mul.f32 %f256, %f34, %f631;
+ mul.f32 %f257, %f34, %f637;
+ mul.f32 %f258, %f10, %f257;
+ mul.f32 %f259, %f11, %f257;
+ mul.f32 %f260, %f12, %f257;
+ fma.rn.f32 %f261, %f19, %f256, %f258;
+ fma.rn.f32 %f262, %f18, %f256, %f259;
+ fma.rn.f32 %f263, %f17, %f256, %f260;
+ fma.rn.f32 %f71, %f612, %f33, %f261;
+ fma.rn.f32 %f72, %f613, %f33, %f262;
+ fma.rn.f32 %f73, %f614, %f33, %f263;
+ setp.gt.f32 %p38, %f72, 0f00000000;
+ setp.eq.s32 %p39, %r5, 0;
+ or.pred %p40, %p39, %p38;
+ @!%p40 bra BB0_54;
+ bra.uni BB0_53;
+
+BB0_53:
+ add.u64 %rd61, %SP, 28;
+ cvta.to.local.u64 %rd62, %rd61;
+ max.f32 %f277, %f283, %f172;
+ ld.global.u32 %r215, [sky];
+ neg.f32 %f270, %f71;
+ neg.f32 %f269, %f72;
+ neg.f32 %f268, %f73;
+ mov.u32 %r216, 6;
+ mov.u32 %r217, 0;
+ // inline asm
+ call (%f264, %f265, %f266, %f267), _rt_texture_get_base_id, (%r215, %r216, %f268, %f269, %f270, %r217);
+ // inline asm
+ st.local.f32 [%rd62], %f264;
+ st.local.f32 [%rd62+4], %f265;
+ st.local.f32 [%rd62+8], %f266;
+ ld.global.u32 %r218, [root];
+ mov.u32 %r219, 1;
+ mov.f32 %f278, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r218, %f7, %f8, %f9, %f71, %f72, %f73, %r219, %f277, %f278, %rd61, %r107);
+ // inline asm
+ ld.local.f32 %f285, [%rd62];
+ ld.local.f32 %f286, [%rd62+4];
+ ld.local.f32 %f287, [%rd62+8];
+ fma.rn.f32 %f639, %f71, %f285, %f639;
+ fma.rn.f32 %f640, %f72, %f286, %f640;
+ fma.rn.f32 %f641, %f73, %f287, %f641;
+ mul.f32 %f288, %f613, %f72;
+ fma.rn.f32 %f289, %f612, %f71, %f288;
+ fma.rn.f32 %f290, %f614, %f73, %f289;
+ cvt.sat.f32.f32 %f291, %f290;
+ fma.rn.f32 %f642, %f291, %f285, %f642;
+ fma.rn.f32 %f643, %f291, %f286, %f643;
+ fma.rn.f32 %f644, %f291, %f287, %f644;
+
+BB0_54:
+ add.s32 %r289, %r289, 1;
+ setp.lt.s32 %p41, %r289, %r1;
+ @%p41 bra BB0_6;
+
+ add.s32 %r287, %r287, 1;
+ setp.lt.s32 %p42, %r287, %r1;
+ @%p42 bra BB0_5;
+
+BB0_56:
+ mul.lo.s32 %r221, %r1, %r1;
+ cvt.rn.f32.s32 %f292, %r221;
+ rcp.rn.f32 %f293, %f292;
+ mul.f32 %f294, %f642, %f293;
+ mul.f32 %f295, %f643, %f293;
+ mul.f32 %f296, %f644, %f293;
+ fma.rn.f32 %f297, %f642, %f293, %f294;
+ fma.rn.f32 %f298, %f643, %f293, %f295;
+ fma.rn.f32 %f299, %f644, %f293, %f296;
+ ld.global.f32 %f300, [skyColor];
+ mul.f32 %f92, %f300, %f297;
+ ld.global.f32 %f301, [skyColor+4];
+ mul.f32 %f93, %f298, %f301;
+ ld.global.f32 %f302, [skyColor+8];
+ mul.f32 %f94, %f299, %f302;
+ ld.global.u32 %r311, [imageEnabled];
+ and.b32 %r222, %r311, 1;
+ setp.eq.b32 %p43, %r222, 1;
+ @!%p43 bra BB0_91;
+ bra.uni BB0_57;
+
+BB0_57:
+ mov.f32 %f305, 0f3E666666;
+ cvt.rzi.f32.f32 %f306, %f305;
+ fma.rn.f32 %f307, %f306, 0fC0000000, 0f3EE66666;
+ abs.f32 %f95, %f307;
+ abs.f32 %f96, %f92;
+ setp.lt.f32 %p44, %f96, 0f00800000;
+ mul.f32 %f308, %f96, 0f4B800000;
+ selp.f32 %f309, 0fC3170000, 0fC2FE0000, %p44;
+ selp.f32 %f310, %f308, %f96, %p44;
+ mov.b32 %r223, %f310;
+ and.b32 %r224, %r223, 8388607;
+ or.b32 %r225, %r224, 1065353216;
+ mov.b32 %f311, %r225;
+ shr.u32 %r226, %r223, 23;
+ cvt.rn.f32.u32 %f312, %r226;
+ add.f32 %f313, %f309, %f312;
+ setp.gt.f32 %p45, %f311, 0f3FB504F3;
+ mul.f32 %f314, %f311, 0f3F000000;
+ add.f32 %f315, %f313, 0f3F800000;
+ selp.f32 %f316, %f314, %f311, %p45;
+ selp.f32 %f317, %f315, %f313, %p45;
+ add.f32 %f318, %f316, 0fBF800000;
+ add.f32 %f304, %f316, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f303,%f304;
+ // inline asm
+ add.f32 %f319, %f318, %f318;
+ mul.f32 %f320, %f303, %f319;
+ mul.f32 %f321, %f320, %f320;
+ mov.f32 %f322, 0f3C4CAF63;
+ mov.f32 %f323, 0f3B18F0FE;
+ fma.rn.f32 %f324, %f323, %f321, %f322;
+ mov.f32 %f325, 0f3DAAAABD;
+ fma.rn.f32 %f326, %f324, %f321, %f325;
+ mul.rn.f32 %f327, %f326, %f321;
+ mul.rn.f32 %f328, %f327, %f320;
+ sub.f32 %f329, %f318, %f320;
+ neg.f32 %f330, %f320;
+ add.f32 %f331, %f329, %f329;
+ fma.rn.f32 %f332, %f330, %f318, %f331;
+ mul.rn.f32 %f333, %f303, %f332;
+ add.f32 %f334, %f328, %f320;
+ sub.f32 %f335, %f320, %f334;
+ add.f32 %f336, %f328, %f335;
+ add.f32 %f337, %f333, %f336;
+ add.f32 %f338, %f334, %f337;
+ sub.f32 %f339, %f334, %f338;
+ add.f32 %f340, %f337, %f339;
+ mov.f32 %f341, 0f3F317200;
+ mul.rn.f32 %f342, %f317, %f341;
+ mov.f32 %f343, 0f35BFBE8E;
+ mul.rn.f32 %f344, %f317, %f343;
+ add.f32 %f345, %f342, %f338;
+ sub.f32 %f346, %f342, %f345;
+ add.f32 %f347, %f338, %f346;
+ add.f32 %f348, %f340, %f347;
+ add.f32 %f349, %f344, %f348;
+ add.f32 %f350, %f345, %f349;
+ sub.f32 %f351, %f345, %f350;
+ add.f32 %f352, %f349, %f351;
+ mov.f32 %f353, 0f3EE66666;
+ mul.rn.f32 %f354, %f353, %f350;
+ neg.f32 %f355, %f354;
+ fma.rn.f32 %f356, %f353, %f350, %f355;
+ fma.rn.f32 %f357, %f353, %f352, %f356;
+ mov.f32 %f358, 0f00000000;
+ fma.rn.f32 %f359, %f358, %f350, %f357;
+ add.rn.f32 %f360, %f354, %f359;
+ neg.f32 %f361, %f360;
+ add.rn.f32 %f362, %f354, %f361;
+ add.rn.f32 %f363, %f362, %f359;
+ mov.b32 %r227, %f360;
+ setp.eq.s32 %p46, %r227, 1118925336;
+ add.s32 %r228, %r227, -1;
+ mov.b32 %f364, %r228;
+ add.f32 %f365, %f363, 0f37000000;
+ selp.f32 %f366, %f364, %f360, %p46;
+ selp.f32 %f97, %f365, %f363, %p46;
+ mul.f32 %f367, %f366, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f368, %f367;
+ mov.f32 %f369, 0fBF317200;
+ fma.rn.f32 %f370, %f368, %f369, %f366;
+ mov.f32 %f371, 0fB5BFBE8E;
+ fma.rn.f32 %f372, %f368, %f371, %f370;
+ mul.f32 %f373, %f372, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f374, %f373;
+ add.f32 %f375, %f368, 0f00000000;
+ ex2.approx.f32 %f376, %f375;
+ mul.f32 %f377, %f374, %f376;
+ setp.lt.f32 %p47, %f366, 0fC2D20000;
+ selp.f32 %f378, 0f00000000, %f377, %p47;
+ setp.gt.f32 %p48, %f366, 0f42D20000;
+ selp.f32 %f651, 0f7F800000, %f378, %p48;
+ setp.eq.f32 %p49, %f651, 0f7F800000;
+ @%p49 bra BB0_59;
+
+ fma.rn.f32 %f651, %f651, %f97, %f651;
+
+BB0_59:
+ setp.lt.f32 %p50, %f92, 0f00000000;
+ setp.eq.f32 %p51, %f95, 0f3F800000;
+ and.pred %p1, %p50, %p51;
+ mov.b32 %r229, %f651;
+ xor.b32 %r230, %r229, -2147483648;
+ mov.b32 %f379, %r230;
+ selp.f32 %f653, %f379, %f651, %p1;
+ setp.eq.f32 %p52, %f92, 0f00000000;
+ @%p52 bra BB0_62;
+ bra.uni BB0_60;
+
+BB0_62:
+ add.f32 %f382, %f92, %f92;
+ selp.f32 %f653, %f382, 0f00000000, %p51;
+ bra.uni BB0_63;
+
+BB0_102:
+ mov.u64 %rd123, image_HDR;
+ cvta.global.u64 %rd118, %rd123;
+ mov.u32 %r278, 8;
+ mov.u64 %rd122, 0;
+ // inline asm
+ call (%rd117), _rt_buffer_get_64, (%rd118, %r91, %r278, %rd18, %rd19, %rd122, %rd122);
+ // inline asm
+ mov.f32 %f577, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f577;}
+
+ // inline asm
+ mov.u16 %rs47, 0;
+ st.v4.u16 [%rd117], {%rs46, %rs46, %rs46, %rs47};
+
+BB0_103:
+ ld.global.u8 %rs48, [imageEnabled];
+ and.b16 %rs49, %rs48, 64;
+ setp.eq.s16 %p98, %rs49, 0;
+ @%p98 bra BB0_105;
+
+ cvt.u64.u32 %rd126, %r3;
+ cvt.u64.u32 %rd127, %r4;
+ mov.u64 %rd130, image_Dir;
+ cvta.global.u64 %rd125, %rd130;
+ mov.u64 %rd129, 0;
+ // inline asm
+ call (%rd124), _rt_buffer_get_64, (%rd125, %r91, %r92, %rd126, %rd127, %rd129, %rd129);
+ // inline asm
+ mov.u16 %rs50, 0;
+ st.v4.u8 [%rd124], {%rs50, %rs50, %rs50, %rs50};
+ bra.uni BB0_105;
+
+BB0_60:
+ setp.geu.f32 %p53, %f92, 0f00000000;
+ @%p53 bra BB0_63;
+
+ mov.f32 %f601, 0f3EE66666;
+ cvt.rzi.f32.f32 %f381, %f601;
+ setp.neu.f32 %p54, %f381, 0f3EE66666;
+ selp.f32 %f653, 0f7FFFFFFF, %f653, %p54;
+
+BB0_63:
+ abs.f32 %f578, %f92;
+ add.f32 %f383, %f578, 0f3EE66666;
+ mov.b32 %r231, %f383;
+ setp.lt.s32 %p56, %r231, 2139095040;
+ @%p56 bra BB0_68;
+
+ abs.f32 %f599, %f92;
+ setp.gtu.f32 %p57, %f599, 0f7F800000;
+ @%p57 bra BB0_67;
+ bra.uni BB0_65;
+
+BB0_67:
+ add.f32 %f653, %f92, 0f3EE66666;
+ bra.uni BB0_68;
+
+BB0_65:
+ abs.f32 %f600, %f92;
+ setp.neu.f32 %p58, %f600, 0f7F800000;
+ @%p58 bra BB0_68;
+
+ selp.f32 %f653, 0fFF800000, 0f7F800000, %p1;
+
+BB0_68:
+ mov.f32 %f587, 0fB5BFBE8E;
+ mov.f32 %f586, 0fBF317200;
+ mov.f32 %f585, 0f00000000;
+ mov.f32 %f584, 0f35BFBE8E;
+ mov.f32 %f583, 0f3F317200;
+ mov.f32 %f582, 0f3DAAAABD;
+ mov.f32 %f581, 0f3C4CAF63;
+ mov.f32 %f580, 0f3B18F0FE;
+ mov.f32 %f579, 0f3EE66666;
+ setp.eq.f32 %p59, %f92, 0f3F800000;
+ selp.f32 %f108, 0f3F800000, %f653, %p59;
+ abs.f32 %f109, %f93;
+ setp.lt.f32 %p60, %f109, 0f00800000;
+ mul.f32 %f386, %f109, 0f4B800000;
+ selp.f32 %f387, 0fC3170000, 0fC2FE0000, %p60;
+ selp.f32 %f388, %f386, %f109, %p60;
+ mov.b32 %r232, %f388;
+ and.b32 %r233, %r232, 8388607;
+ or.b32 %r234, %r233, 1065353216;
+ mov.b32 %f389, %r234;
+ shr.u32 %r235, %r232, 23;
+ cvt.rn.f32.u32 %f390, %r235;
+ add.f32 %f391, %f387, %f390;
+ setp.gt.f32 %p61, %f389, 0f3FB504F3;
+ mul.f32 %f392, %f389, 0f3F000000;
+ add.f32 %f393, %f391, 0f3F800000;
+ selp.f32 %f394, %f392, %f389, %p61;
+ selp.f32 %f395, %f393, %f391, %p61;
+ add.f32 %f396, %f394, 0fBF800000;
+ add.f32 %f385, %f394, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f384,%f385;
+ // inline asm
+ add.f32 %f397, %f396, %f396;
+ mul.f32 %f398, %f384, %f397;
+ mul.f32 %f399, %f398, %f398;
+ fma.rn.f32 %f402, %f580, %f399, %f581;
+ fma.rn.f32 %f404, %f402, %f399, %f582;
+ mul.rn.f32 %f405, %f404, %f399;
+ mul.rn.f32 %f406, %f405, %f398;
+ sub.f32 %f407, %f396, %f398;
+ neg.f32 %f408, %f398;
+ add.f32 %f409, %f407, %f407;
+ fma.rn.f32 %f410, %f408, %f396, %f409;
+ mul.rn.f32 %f411, %f384, %f410;
+ add.f32 %f412, %f406, %f398;
+ sub.f32 %f413, %f398, %f412;
+ add.f32 %f414, %f406, %f413;
+ add.f32 %f415, %f411, %f414;
+ add.f32 %f416, %f412, %f415;
+ sub.f32 %f417, %f412, %f416;
+ add.f32 %f418, %f415, %f417;
+ mul.rn.f32 %f420, %f395, %f583;
+ mul.rn.f32 %f422, %f395, %f584;
+ add.f32 %f423, %f420, %f416;
+ sub.f32 %f424, %f420, %f423;
+ add.f32 %f425, %f416, %f424;
+ add.f32 %f426, %f418, %f425;
+ add.f32 %f427, %f422, %f426;
+ add.f32 %f428, %f423, %f427;
+ sub.f32 %f429, %f423, %f428;
+ add.f32 %f430, %f427, %f429;
+ mul.rn.f32 %f432, %f579, %f428;
+ neg.f32 %f433, %f432;
+ fma.rn.f32 %f434, %f579, %f428, %f433;
+ fma.rn.f32 %f435, %f579, %f430, %f434;
+ fma.rn.f32 %f437, %f585, %f428, %f435;
+ add.rn.f32 %f438, %f432, %f437;
+ neg.f32 %f439, %f438;
+ add.rn.f32 %f440, %f432, %f439;
+ add.rn.f32 %f441, %f440, %f437;
+ mov.b32 %r236, %f438;
+ setp.eq.s32 %p62, %r236, 1118925336;
+ add.s32 %r237, %r236, -1;
+ mov.b32 %f442, %r237;
+ add.f32 %f443, %f441, 0f37000000;
+ selp.f32 %f444, %f442, %f438, %p62;
+ selp.f32 %f110, %f443, %f441, %p62;
+ mul.f32 %f445, %f444, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f446, %f445;
+ fma.rn.f32 %f448, %f446, %f586, %f444;
+ fma.rn.f32 %f450, %f446, %f587, %f448;
+ mul.f32 %f451, %f450, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f452, %f451;
+ add.f32 %f453, %f446, 0f00000000;
+ ex2.approx.f32 %f454, %f453;
+ mul.f32 %f455, %f452, %f454;
+ setp.lt.f32 %p63, %f444, 0fC2D20000;
+ selp.f32 %f456, 0f00000000, %f455, %p63;
+ setp.gt.f32 %p64, %f444, 0f42D20000;
+ selp.f32 %f654, 0f7F800000, %f456, %p64;
+ setp.eq.f32 %p65, %f654, 0f7F800000;
+ @%p65 bra BB0_70;
+
+ fma.rn.f32 %f654, %f654, %f110, %f654;
+
+BB0_70:
+ setp.lt.f32 %p66, %f93, 0f00000000;
+ and.pred %p2, %p66, %p51;
+ mov.b32 %r238, %f654;
+ xor.b32 %r239, %r238, -2147483648;
+ mov.b32 %f457, %r239;
+ selp.f32 %f656, %f457, %f654, %p2;
+ setp.eq.f32 %p68, %f93, 0f00000000;
+ @%p68 bra BB0_73;
+ bra.uni BB0_71;
+
+BB0_73:
+ add.f32 %f460, %f93, %f93;
+ selp.f32 %f656, %f460, 0f00000000, %p51;
+ bra.uni BB0_74;
+
+BB0_71:
+ setp.geu.f32 %p69, %f93, 0f00000000;
+ @%p69 bra BB0_74;
+
+ mov.f32 %f598, 0f3EE66666;
+ cvt.rzi.f32.f32 %f459, %f598;
+ setp.neu.f32 %p70, %f459, 0f3EE66666;
+ selp.f32 %f656, 0f7FFFFFFF, %f656, %p70;
+
+BB0_74:
+ abs.f32 %f602, %f93;
+ add.f32 %f461, %f602, 0f3EE66666;
+ mov.b32 %r240, %f461;
+ setp.lt.s32 %p72, %r240, 2139095040;
+ @%p72 bra BB0_79;
+
+ abs.f32 %f603, %f93;
+ setp.gtu.f32 %p73, %f603, 0f7F800000;
+ @%p73 bra BB0_78;
+ bra.uni BB0_76;
+
+BB0_78:
+ add.f32 %f656, %f93, 0f3EE66666;
+ bra.uni BB0_79;
+
+BB0_76:
+ abs.f32 %f604, %f93;
+ setp.neu.f32 %p74, %f604, 0f7F800000;
+ @%p74 bra BB0_79;
+
+ selp.f32 %f656, 0fFF800000, 0f7F800000, %p2;
+
+BB0_79:
+ mov.f32 %f596, 0fB5BFBE8E;
+ mov.f32 %f595, 0fBF317200;
+ mov.f32 %f594, 0f00000000;
+ mov.f32 %f593, 0f35BFBE8E;
+ mov.f32 %f592, 0f3F317200;
+ mov.f32 %f591, 0f3DAAAABD;
+ mov.f32 %f590, 0f3C4CAF63;
+ mov.f32 %f589, 0f3B18F0FE;
+ mov.f32 %f588, 0f3EE66666;
+ setp.eq.f32 %p75, %f93, 0f3F800000;
+ selp.f32 %f121, 0f3F800000, %f656, %p75;
+ abs.f32 %f122, %f94;
+ setp.lt.f32 %p76, %f122, 0f00800000;
+ mul.f32 %f464, %f122, 0f4B800000;
+ selp.f32 %f465, 0fC3170000, 0fC2FE0000, %p76;
+ selp.f32 %f466, %f464, %f122, %p76;
+ mov.b32 %r241, %f466;
+ and.b32 %r242, %r241, 8388607;
+ or.b32 %r243, %r242, 1065353216;
+ mov.b32 %f467, %r243;
+ shr.u32 %r244, %r241, 23;
+ cvt.rn.f32.u32 %f468, %r244;
+ add.f32 %f469, %f465, %f468;
+ setp.gt.f32 %p77, %f467, 0f3FB504F3;
+ mul.f32 %f470, %f467, 0f3F000000;
+ add.f32 %f471, %f469, 0f3F800000;
+ selp.f32 %f472, %f470, %f467, %p77;
+ selp.f32 %f473, %f471, %f469, %p77;
+ add.f32 %f474, %f472, 0fBF800000;
+ add.f32 %f463, %f472, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f462,%f463;
+ // inline asm
+ add.f32 %f475, %f474, %f474;
+ mul.f32 %f476, %f462, %f475;
+ mul.f32 %f477, %f476, %f476;
+ fma.rn.f32 %f480, %f589, %f477, %f590;
+ fma.rn.f32 %f482, %f480, %f477, %f591;
+ mul.rn.f32 %f483, %f482, %f477;
+ mul.rn.f32 %f484, %f483, %f476;
+ sub.f32 %f485, %f474, %f476;
+ neg.f32 %f486, %f476;
+ add.f32 %f487, %f485, %f485;
+ fma.rn.f32 %f488, %f486, %f474, %f487;
+ mul.rn.f32 %f489, %f462, %f488;
+ add.f32 %f490, %f484, %f476;
+ sub.f32 %f491, %f476, %f490;
+ add.f32 %f492, %f484, %f491;
+ add.f32 %f493, %f489, %f492;
+ add.f32 %f494, %f490, %f493;
+ sub.f32 %f495, %f490, %f494;
+ add.f32 %f496, %f493, %f495;
+ mul.rn.f32 %f498, %f473, %f592;
+ mul.rn.f32 %f500, %f473, %f593;
+ add.f32 %f501, %f498, %f494;
+ sub.f32 %f502, %f498, %f501;
+ add.f32 %f503, %f494, %f502;
+ add.f32 %f504, %f496, %f503;
+ add.f32 %f505, %f500, %f504;
+ add.f32 %f506, %f501, %f505;
+ sub.f32 %f507, %f501, %f506;
+ add.f32 %f508, %f505, %f507;
+ mul.rn.f32 %f510, %f588, %f506;
+ neg.f32 %f511, %f510;
+ fma.rn.f32 %f512, %f588, %f506, %f511;
+ fma.rn.f32 %f513, %f588, %f508, %f512;
+ fma.rn.f32 %f515, %f594, %f506, %f513;
+ add.rn.f32 %f516, %f510, %f515;
+ neg.f32 %f517, %f516;
+ add.rn.f32 %f518, %f510, %f517;
+ add.rn.f32 %f519, %f518, %f515;
+ mov.b32 %r245, %f516;
+ setp.eq.s32 %p78, %r245, 1118925336;
+ add.s32 %r246, %r245, -1;
+ mov.b32 %f520, %r246;
+ add.f32 %f521, %f519, 0f37000000;
+ selp.f32 %f522, %f520, %f516, %p78;
+ selp.f32 %f123, %f521, %f519, %p78;
+ mul.f32 %f523, %f522, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f524, %f523;
+ fma.rn.f32 %f526, %f524, %f595, %f522;
+ fma.rn.f32 %f528, %f524, %f596, %f526;
+ mul.f32 %f529, %f528, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f530, %f529;
+ add.f32 %f531, %f524, 0f00000000;
+ ex2.approx.f32 %f532, %f531;
+ mul.f32 %f533, %f530, %f532;
+ setp.lt.f32 %p79, %f522, 0fC2D20000;
+ selp.f32 %f534, 0f00000000, %f533, %p79;
+ setp.gt.f32 %p80, %f522, 0f42D20000;
+ selp.f32 %f657, 0f7F800000, %f534, %p80;
+ setp.eq.f32 %p81, %f657, 0f7F800000;
+ @%p81 bra BB0_81;
+
+ fma.rn.f32 %f657, %f657, %f123, %f657;
+
+BB0_81:
+ setp.lt.f32 %p82, %f94, 0f00000000;
+ and.pred %p3, %p82, %p51;
+ mov.b32 %r247, %f657;
+ xor.b32 %r248, %r247, -2147483648;
+ mov.b32 %f535, %r248;
+ selp.f32 %f659, %f535, %f657, %p3;
+ setp.eq.f32 %p84, %f94, 0f00000000;
+ @%p84 bra BB0_84;
+ bra.uni BB0_82;
+
+BB0_84:
+ add.f32 %f538, %f94, %f94;
+ selp.f32 %f659, %f538, 0f00000000, %p51;
+ bra.uni BB0_85;
+
+BB0_82:
+ setp.geu.f32 %p85, %f94, 0f00000000;
+ @%p85 bra BB0_85;
+
+ mov.f32 %f597, 0f3EE66666;
+ cvt.rzi.f32.f32 %f537, %f597;
+ setp.neu.f32 %p86, %f537, 0f3EE66666;
+ selp.f32 %f659, 0f7FFFFFFF, %f659, %p86;
+
+BB0_85:
+ abs.f32 %f609, %f94;
+ add.f32 %f539, %f609, 0f3EE66666;
+ mov.b32 %r249, %f539;
+ setp.lt.s32 %p88, %r249, 2139095040;
+ @%p88 bra BB0_90;
+
+ abs.f32 %f610, %f94;
+ setp.gtu.f32 %p89, %f610, 0f7F800000;
+ @%p89 bra BB0_89;
+ bra.uni BB0_87;
+
+BB0_89:
+ add.f32 %f659, %f94, 0f3EE66666;
+ bra.uni BB0_90;
+
+BB0_87:
+ abs.f32 %f611, %f94;
+ setp.neu.f32 %p90, %f611, 0f7F800000;
+ @%p90 bra BB0_90;
+
+ selp.f32 %f659, 0fFF800000, 0f7F800000, %p3;
+
+BB0_90:
+ mov.u32 %r282, 4;
+ mov.u64 %rd131, 0;
+ mov.u32 %r281, 2;
+ setp.eq.f32 %p91, %f94, 0f3F800000;
+ selp.f32 %f540, 0f3F800000, %f659, %p91;
+ cvt.u64.u32 %rd66, %r4;
+ cvt.u64.u32 %rd65, %r3;
+ mov.u64 %rd69, image;
+ cvta.global.u64 %rd64, %rd69;
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd64, %r281, %r282, %rd65, %rd66, %rd131, %rd131);
+ // inline asm
+ cvt.sat.f32.f32 %f541, %f540;
+ mul.f32 %f542, %f541, 0f437FFD71;
+ cvt.rzi.u32.f32 %r252, %f542;
+ cvt.sat.f32.f32 %f543, %f121;
+ mul.f32 %f544, %f543, 0f437FFD71;
+ cvt.rzi.u32.f32 %r253, %f544;
+ cvt.sat.f32.f32 %f545, %f108;
+ mul.f32 %f546, %f545, 0f437FFD71;
+ cvt.rzi.u32.f32 %r254, %f546;
+ cvt.u16.u32 %rs10, %r252;
+ cvt.u16.u32 %rs11, %r254;
+ cvt.u16.u32 %rs12, %r253;
+ mov.u16 %rs13, 255;
+ st.v4.u8 [%rd63], {%rs10, %rs12, %rs11, %rs13};
+ ld.global.u32 %r311, [imageEnabled];
+
+BB0_91:
+ and.b32 %r255, %r311, 4;
+ setp.eq.s32 %p92, %r255, 0;
+ @%p92 bra BB0_95;
+
+ ld.global.u32 %r256, [additive];
+ setp.eq.s32 %p93, %r256, 0;
+ cvt.u64.u32 %rd16, %r3;
+ cvt.u64.u32 %rd17, %r4;
+ mov.f32 %f547, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs14, %f547;}
+
+ // inline asm
+ @%p93 bra BB0_94;
+
+ mov.u64 %rd132, 0;
+ mov.u32 %r283, 2;
+ mov.u64 %rd82, image_HDR;
+ cvta.global.u64 %rd71, %rd82;
+ mov.u32 %r260, 8;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd71, %r283, %r260, %rd16, %rd17, %rd132, %rd132);
+ // inline asm
+ ld.v4.u16 {%rs21, %rs22, %rs23, %rs24}, [%rd70];
+ // inline asm
+ { cvt.f32.f16 %f548, %rs21;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f549, %rs22;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f550, %rs23;}
+
+ // inline asm
+ // inline asm
+ call (%rd76), _rt_buffer_get_64, (%rd71, %r283, %r260, %rd16, %rd17, %rd132, %rd132);
+ // inline asm
+ add.f32 %f551, %f92, %f548;
+ add.f32 %f552, %f93, %f549;
+ add.f32 %f553, %f94, %f550;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f553;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs19, %f552;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs18, %f551;}
+
+ // inline asm
+ st.v4.u16 [%rd76], {%rs18, %rs19, %rs20, %rs14};
+ bra.uni BB0_95;
+
+BB0_94:
+ mov.u64 %rd133, 0;
+ mov.u32 %r284, 2;
+ mov.u64 %rd89, image_HDR;
+ cvta.global.u64 %rd84, %rd89;
+ mov.u32 %r262, 8;
+ // inline asm
+ call (%rd83), _rt_buffer_get_64, (%rd84, %r284, %r262, %rd16, %rd17, %rd133, %rd133);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f94;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f93;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f92;}
+
+ // inline asm
+ st.v4.u16 [%rd83], {%rs25, %rs26, %rs27, %rs14};
+
+BB0_95:
+ ld.global.u8 %rs28, [imageEnabled];
+ and.b16 %rs29, %rs28, 64;
+ setp.eq.s16 %p94, %rs29, 0;
+ @%p94 bra BB0_105;
+
+ mov.u32 %r286, 4;
+ mov.u64 %rd134, 0;
+ mov.u32 %r285, 2;
+ mul.f32 %f557, %f640, %f640;
+ fma.rn.f32 %f558, %f639, %f639, %f557;
+ fma.rn.f32 %f559, %f641, %f641, %f558;
+ sqrt.rn.f32 %f560, %f559;
+ rcp.rn.f32 %f561, %f560;
+ mul.f32 %f562, %f639, %f561;
+ mul.f32 %f563, %f640, %f561;
+ mul.f32 %f564, %f641, %f561;
+ cvt.u64.u32 %rd93, %r4;
+ cvt.u64.u32 %rd92, %r3;
+ mov.u64 %rd96, image_Dir;
+ cvta.global.u64 %rd91, %rd96;
+ // inline asm
+ call (%rd90), _rt_buffer_get_64, (%rd91, %r285, %r286, %rd92, %rd93, %rd134, %rd134);
+ // inline asm
+ fma.rn.f32 %f565, %f562, 0f3F000000, 0f3F000000;
+ mul.f32 %f566, %f565, 0f437F0000;
+ cvt.rzi.u32.f32 %r265, %f566;
+ fma.rn.f32 %f567, %f563, 0f3F000000, 0f3F000000;
+ mul.f32 %f568, %f567, 0f437F0000;
+ cvt.rzi.u32.f32 %r266, %f568;
+ fma.rn.f32 %f569, %f564, 0f3F000000, 0f3F000000;
+ mul.f32 %f570, %f569, 0f437F0000;
+ cvt.rzi.u32.f32 %r267, %f570;
+ cvt.u16.u32 %rs30, %r267;
+ cvt.u16.u32 %rs31, %r266;
+ cvt.u16.u32 %rs32, %r265;
+ mov.u16 %rs33, 255;
+ st.v4.u8 [%rd90], {%rs32, %rs31, %rs30, %rs33};
+
+BB0_105:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapDir.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapDir.ptx.meta
new file mode 100644
index 00000000..cef53767
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapDir.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6df75ae57d123854a92e03aab49710e3
+timeCreated: 1537386825
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapProbeSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapProbeSH.ptx
new file mode 100644
index 00000000..1a8c86fc
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapProbeSH.ptx
@@ -0,0 +1,2066 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 sky;
+.global .align 4 .b8 skyColor[12];
+.global .align 4 .u32 samples;
+.global .align 4 .u32 hemispherical;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3skyE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8skyColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13hemisphericalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3skyE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8skyColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename13hemisphericalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3skyE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8skyColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13hemisphericalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic3skyE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8skyColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13hemisphericalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3skyE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8skyColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13hemisphericalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<106>;
+ .reg .b16 %rs<154>;
+ .reg .f32 %f<897>;
+ .reg .b32 %r<384>;
+ .reg .b64 %rd<288>;
+
+
+ mov.u64 %rd287, __local_depot0;
+ cvta.local.u64 %SP, %rd287;
+ ld.global.u32 %r1, [samples];
+ shl.b32 %r2, %r1, 1;
+ ld.global.v2.u32 {%r94, %r95}, [pixelID];
+ cvt.u64.u32 %rd22, %r94;
+ cvt.u64.u32 %rd23, %r95;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r92, 2;
+ mov.u32 %r93, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r92, %r93, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r3, [%rd20];
+ shr.u32 %r98, %r3, 16;
+ cvt.u16.u32 %rs1, %r98;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r3;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p4, %rs9, 0;
+ mov.f32 %f813, 0f00000000;
+ mov.f32 %f814, %f813;
+ mov.f32 %f815, %f813;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs10, [%rd20+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f215, %rs12;
+ div.rn.f32 %f216, %f215, 0f437F0000;
+ fma.rn.f32 %f217, %f216, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f218, %rs10;
+ div.rn.f32 %f219, %f218, 0f437F0000;
+ fma.rn.f32 %f220, %f219, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f221, %rs7;
+ div.rn.f32 %f222, %f221, 0f437F0000;
+ fma.rn.f32 %f223, %f222, 0f40000000, 0fBF800000;
+ mul.f32 %f224, %f220, %f220;
+ fma.rn.f32 %f225, %f217, %f217, %f224;
+ fma.rn.f32 %f226, %f223, %f223, %f225;
+ sqrt.rn.f32 %f227, %f226;
+ rcp.rn.f32 %f228, %f227;
+ mul.f32 %f813, %f217, %f228;
+ mul.f32 %f814, %f220, %f228;
+ mul.f32 %f815, %f223, %f228;
+
+BB0_2:
+ ld.global.v2.u32 {%r99, %r100}, [pixelID];
+ ld.global.v2.u32 {%r102, %r103}, [tileInfo];
+ add.s32 %r4, %r99, %r102;
+ add.s32 %r5, %r100, %r103;
+ setp.eq.f32 %p5, %f814, 0f00000000;
+ setp.eq.f32 %p6, %f813, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f815, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_107;
+ bra.uni BB0_3;
+
+BB0_107:
+ ld.global.u32 %r383, [imageEnabled];
+ and.b32 %r292, %r383, 1;
+ setp.eq.b32 %p98, %r292, 1;
+ @!%p98 bra BB0_109;
+ bra.uni BB0_108;
+
+BB0_108:
+ cvt.u64.u32 %rd173, %r5;
+ cvt.u64.u32 %rd172, %r4;
+ mov.u64 %rd176, image;
+ cvta.global.u64 %rd171, %rd176;
+ mov.u64 %rd175, 0;
+ // inline asm
+ call (%rd170), _rt_buffer_get_64, (%rd171, %r92, %r93, %rd172, %rd173, %rd175, %rd175);
+ // inline asm
+ mov.u16 %rs88, 0;
+ st.v4.u8 [%rd170], {%rs88, %rs88, %rs88, %rs88};
+ ld.global.u32 %r383, [imageEnabled];
+
+BB0_109:
+ cvt.u64.u32 %rd18, %r4;
+ cvt.u64.u32 %rd19, %r5;
+ and.b32 %r295, %r383, 4;
+ setp.eq.s32 %p99, %r295, 0;
+ @%p99 bra BB0_113;
+
+ ld.global.u32 %r296, [additive];
+ setp.eq.s32 %p100, %r296, 0;
+ @%p100 bra BB0_112;
+
+ mov.u64 %rd189, image_HDR;
+ cvta.global.u64 %rd178, %rd189;
+ mov.u32 %r300, 8;
+ mov.u64 %rd188, 0;
+ // inline asm
+ call (%rd177), _rt_buffer_get_64, (%rd178, %r92, %r300, %rd18, %rd19, %rd188, %rd188);
+ // inline asm
+ ld.v4.u16 {%rs95, %rs96, %rs97, %rs98}, [%rd177];
+ // inline asm
+ { cvt.f32.f16 %f722, %rs95;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f723, %rs96;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f724, %rs97;}
+
+ // inline asm
+ // inline asm
+ call (%rd183), _rt_buffer_get_64, (%rd178, %r92, %r300, %rd18, %rd19, %rd188, %rd188);
+ // inline asm
+ add.f32 %f725, %f722, 0f00000000;
+ add.f32 %f726, %f723, 0f00000000;
+ add.f32 %f727, %f724, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs94, %f727;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f726;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f725;}
+
+ // inline asm
+ mov.u16 %rs99, 0;
+ st.v4.u16 [%rd183], {%rs92, %rs93, %rs94, %rs99};
+ bra.uni BB0_113;
+
+BB0_3:
+ ld.global.v2.u32 {%r111, %r112}, [pixelID];
+ cvt.u64.u32 %rd29, %r111;
+ cvt.u64.u32 %rd30, %r112;
+ mov.u64 %rd39, uvpos;
+ cvta.global.u64 %rd28, %rd39;
+ mov.u32 %r108, 12;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r92, %r108, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f244, [%rd27+8];
+ ld.f32 %f245, [%rd27+4];
+ ld.f32 %f246, [%rd27];
+ mul.f32 %f247, %f246, 0f3456BF95;
+ mul.f32 %f248, %f245, 0f3456BF95;
+ mul.f32 %f249, %f244, 0f3456BF95;
+ abs.f32 %f250, %f813;
+ div.rn.f32 %f251, %f247, %f250;
+ abs.f32 %f252, %f814;
+ div.rn.f32 %f253, %f248, %f252;
+ abs.f32 %f254, %f815;
+ div.rn.f32 %f255, %f249, %f254;
+ abs.f32 %f256, %f251;
+ abs.f32 %f257, %f253;
+ abs.f32 %f258, %f255;
+ mov.f32 %f259, 0f38D1B717;
+ max.f32 %f260, %f256, %f259;
+ max.f32 %f261, %f257, %f259;
+ max.f32 %f262, %f258, %f259;
+ fma.rn.f32 %f7, %f813, %f260, %f246;
+ fma.rn.f32 %f8, %f814, %f261, %f245;
+ fma.rn.f32 %f9, %f815, %f262, %f244;
+ ld.global.u32 %r6, [hemispherical];
+ setp.gt.f32 %p10, %f250, %f254;
+ neg.f32 %f263, %f814;
+ selp.f32 %f264, %f263, 0f00000000, %p10;
+ neg.f32 %f265, %f815;
+ selp.f32 %f266, %f813, %f265, %p10;
+ selp.f32 %f267, 0f00000000, %f814, %p10;
+ mul.f32 %f268, %f266, %f266;
+ fma.rn.f32 %f269, %f264, %f264, %f268;
+ fma.rn.f32 %f270, %f267, %f267, %f269;
+ sqrt.rn.f32 %f271, %f270;
+ rcp.rn.f32 %f272, %f271;
+ mul.f32 %f10, %f264, %f272;
+ mul.f32 %f11, %f266, %f272;
+ mul.f32 %f12, %f267, %f272;
+ ld.global.v2.u32 {%r115, %r116}, [pixelID];
+ cvt.u64.u32 %rd35, %r115;
+ cvt.u64.u32 %rd36, %r116;
+ mov.u64 %rd40, rnd_seeds;
+ cvta.global.u64 %rd34, %rd40;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r92, %r93, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f872, 0f00000000;
+ setp.lt.s32 %p11, %r1, 1;
+ mov.f32 %f871, %f872;
+ mov.f32 %f870, %f872;
+ mov.f32 %f869, %f872;
+ mov.f32 %f868, %f872;
+ mov.f32 %f867, %f872;
+ mov.f32 %f866, %f872;
+ mov.f32 %f865, %f872;
+ mov.f32 %f864, %f872;
+ mov.f32 %f863, %f872;
+ mov.f32 %f862, %f872;
+ mov.f32 %f861, %f872;
+ mov.f32 %f860, %f872;
+ mov.f32 %f859, %f872;
+ mov.f32 %f858, %f872;
+ @%p11 bra BB0_56;
+
+ cvt.rn.f32.s32 %f288, %r2;
+ rcp.rn.f32 %f13, %f288;
+ ld.u32 %r361, [%rd33];
+ mul.f32 %f14, %f7, 0f3456BF95;
+ mul.f32 %f15, %f8, 0f3456BF95;
+ mul.f32 %f16, %f9, 0f3456BF95;
+ mul.f32 %f289, %f813, %f11;
+ mul.f32 %f290, %f814, %f10;
+ sub.f32 %f17, %f290, %f289;
+ mul.f32 %f291, %f815, %f10;
+ mul.f32 %f292, %f813, %f12;
+ sub.f32 %f18, %f292, %f291;
+ mul.f32 %f293, %f814, %f12;
+ mul.f32 %f294, %f815, %f11;
+ sub.f32 %f19, %f294, %f293;
+ mov.f32 %f872, 0f00000000;
+ mov.u32 %r119, 0;
+ abs.f32 %f376, %f15;
+ abs.f32 %f377, %f14;
+ max.f32 %f378, %f377, %f376;
+ abs.f32 %f379, %f16;
+ max.f32 %f380, %f378, %f379;
+ mov.u32 %r358, %r119;
+ mov.f32 %f871, %f872;
+ mov.f32 %f870, %f872;
+ mov.f32 %f869, %f872;
+ mov.f32 %f868, %f872;
+ mov.f32 %f867, %f872;
+ mov.f32 %f866, %f872;
+ mov.f32 %f865, %f872;
+ mov.f32 %f864, %f872;
+ mov.f32 %f863, %f872;
+ mov.f32 %f862, %f872;
+ mov.f32 %f861, %f872;
+ mov.f32 %f860, %f872;
+ mov.f32 %f859, %f872;
+ mov.f32 %f858, %f872;
+
+BB0_5:
+ mov.u32 %r360, %r119;
+
+BB0_6:
+ mov.u32 %r11, %r361;
+ cvt.rn.f32.s32 %f763, %r358;
+ mad.lo.s32 %r121, %r11, 1664525, 1013904223;
+ and.b32 %r122, %r121, 16777215;
+ cvt.rn.f32.u32 %f295, %r122;
+ fma.rn.f32 %f296, %f295, 0f33800000, %f763;
+ mul.f32 %f297, %f13, %f296;
+ mad.lo.s32 %r12, %r121, 1664525, 1013904223;
+ and.b32 %r123, %r12, 16777215;
+ cvt.rn.f32.u32 %f298, %r123;
+ cvt.rn.f32.s32 %f299, %r360;
+ fma.rn.f32 %f300, %f298, 0f33800000, %f299;
+ mul.f32 %f301, %f13, %f300;
+ fma.rn.f32 %f51, %f297, 0fC0000000, 0f3F800000;
+ mul.f32 %f302, %f51, %f51;
+ mov.f32 %f303, 0f3F800000;
+ sub.f32 %f304, %f303, %f302;
+ mov.f32 %f305, 0f00000000;
+ max.f32 %f306, %f305, %f304;
+ sqrt.rn.f32 %f52, %f306;
+ mul.f32 %f852, %f301, 0f40C90FDB;
+ abs.f32 %f54, %f852;
+ setp.neu.f32 %p12, %f54, 0f7F800000;
+ mov.f32 %f846, %f852;
+ @%p12 bra BB0_8;
+
+ mul.rn.f32 %f846, %f852, %f305;
+
+BB0_8:
+ mul.f32 %f308, %f846, 0f3F22F983;
+ cvt.rni.s32.f32 %r371, %f308;
+ cvt.rn.f32.s32 %f309, %r371;
+ neg.f32 %f310, %f309;
+ mov.f32 %f311, 0f3FC90FDA;
+ fma.rn.f32 %f312, %f310, %f311, %f846;
+ mov.f32 %f313, 0f33A22168;
+ fma.rn.f32 %f314, %f310, %f313, %f312;
+ mov.f32 %f315, 0f27C234C5;
+ fma.rn.f32 %f847, %f310, %f315, %f314;
+ abs.f32 %f316, %f846;
+ setp.leu.f32 %p13, %f316, 0f47CE4780;
+ @%p13 bra BB0_19;
+
+ add.u64 %rd42, %SP, 12;
+ cvta.to.local.u64 %rd283, %rd42;
+ mov.u32 %r362, 0;
+ mov.u64 %rd284, 0;
+ mov.u32 %r363, %r362;
+
+BB0_10:
+ .pragma "nounroll";
+ mov.b32 %r333, %f846;
+ shl.b32 %r332, %r333, 8;
+ or.b32 %r331, %r332, -2147483648;
+ add.u64 %rd278, %SP, 12;
+ cvta.to.local.u64 %rd277, %rd278;
+ shl.b64 %rd43, %rd284, 2;
+ mov.u64 %rd44, __cudart_i2opi_f;
+ add.s64 %rd45, %rd44, %rd43;
+ ld.const.u32 %r129, [%rd45];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r127, %r129, %r331, %r363;
+ madc.hi.u32 %r363, %r129, %r331, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd283], %r127;
+ add.s32 %r362, %r362, 1;
+ cvt.s64.s32 %rd284, %r362;
+ mul.wide.s32 %rd48, %r362, 4;
+ add.s64 %rd283, %rd277, %rd48;
+ setp.ne.s32 %p14, %r362, 6;
+ @%p14 bra BB0_10;
+
+ mov.b32 %r335, %f846;
+ shr.u32 %r334, %r335, 23;
+ add.u64 %rd279, %SP, 12;
+ and.b32 %r132, %r334, 255;
+ add.s32 %r133, %r132, -128;
+ shr.u32 %r134, %r133, 5;
+ cvta.to.local.u64 %rd50, %rd279;
+ st.local.u32 [%rd50+24], %r363;
+ mov.u32 %r135, 6;
+ sub.s32 %r136, %r135, %r134;
+ mul.wide.s32 %rd51, %r136, 4;
+ add.s64 %rd8, %rd50, %rd51;
+ ld.local.u32 %r364, [%rd8];
+ ld.local.u32 %r365, [%rd8+-4];
+ and.b32 %r24, %r334, 31;
+ setp.eq.s32 %p15, %r24, 0;
+ @%p15 bra BB0_13;
+
+ mov.u32 %r137, 32;
+ sub.s32 %r138, %r137, %r24;
+ shr.u32 %r139, %r365, %r138;
+ shl.b32 %r140, %r364, %r24;
+ add.s32 %r364, %r139, %r140;
+ ld.local.u32 %r141, [%rd8+-8];
+ shr.u32 %r142, %r141, %r138;
+ shl.b32 %r143, %r365, %r24;
+ add.s32 %r365, %r142, %r143;
+
+BB0_13:
+ mov.b32 %r343, %f846;
+ and.b32 %r367, %r343, -2147483648;
+ shr.u32 %r144, %r365, 30;
+ shl.b32 %r145, %r364, 2;
+ add.s32 %r366, %r144, %r145;
+ shl.b32 %r30, %r365, 2;
+ shr.u32 %r146, %r366, 31;
+ shr.u32 %r147, %r364, 30;
+ add.s32 %r31, %r146, %r147;
+ setp.eq.s32 %p16, %r146, 0;
+ @%p16 bra BB0_14;
+ bra.uni BB0_15;
+
+BB0_14:
+ mov.u32 %r368, %r30;
+ bra.uni BB0_16;
+
+BB0_15:
+ mov.b32 %r345, %f846;
+ and.b32 %r344, %r345, -2147483648;
+ not.b32 %r148, %r366;
+ neg.s32 %r368, %r30;
+ setp.eq.s32 %p17, %r30, 0;
+ selp.u32 %r149, 1, 0, %p17;
+ add.s32 %r366, %r149, %r148;
+ xor.b32 %r367, %r344, -2147483648;
+
+BB0_16:
+ mov.b32 %r347, %f846;
+ and.b32 %r346, %r347, -2147483648;
+ clz.b32 %r370, %r366;
+ setp.eq.s32 %p18, %r370, 0;
+ shl.b32 %r150, %r366, %r370;
+ mov.u32 %r151, 32;
+ sub.s32 %r152, %r151, %r370;
+ shr.u32 %r153, %r368, %r152;
+ add.s32 %r154, %r153, %r150;
+ selp.b32 %r39, %r366, %r154, %p18;
+ mov.u32 %r155, -921707870;
+ mul.hi.u32 %r369, %r39, %r155;
+ setp.eq.s32 %p19, %r346, 0;
+ neg.s32 %r156, %r31;
+ selp.b32 %r371, %r31, %r156, %p19;
+ setp.lt.s32 %p20, %r369, 1;
+ @%p20 bra BB0_18;
+
+ mul.lo.s32 %r157, %r39, -921707870;
+ shr.u32 %r158, %r157, 31;
+ shl.b32 %r159, %r369, 1;
+ add.s32 %r369, %r158, %r159;
+ add.s32 %r370, %r370, 1;
+
+BB0_18:
+ mov.u32 %r160, 126;
+ sub.s32 %r161, %r160, %r370;
+ shl.b32 %r162, %r161, 23;
+ add.s32 %r163, %r369, 1;
+ shr.u32 %r164, %r163, 7;
+ add.s32 %r165, %r164, 1;
+ shr.u32 %r166, %r165, 1;
+ add.s32 %r167, %r166, %r162;
+ or.b32 %r168, %r167, %r367;
+ mov.b32 %f847, %r168;
+
+BB0_19:
+ add.s32 %r47, %r371, 1;
+ and.b32 %r48, %r47, 1;
+ setp.eq.s32 %p21, %r48, 0;
+ @%p21 bra BB0_21;
+ bra.uni BB0_20;
+
+BB0_21:
+ mul.rn.f32 %f773, %f847, %f847;
+ mov.f32 %f319, 0f3C08839E;
+ mov.f32 %f320, 0fB94CA1F9;
+ fma.rn.f32 %f848, %f320, %f773, %f319;
+ bra.uni BB0_22;
+
+BB0_20:
+ mul.rn.f32 %f769, %f847, %f847;
+ mov.f32 %f317, 0fBAB6061A;
+ mov.f32 %f318, 0f37CCF5CE;
+ fma.rn.f32 %f848, %f318, %f769, %f317;
+
+BB0_22:
+ @%p21 bra BB0_24;
+ bra.uni BB0_23;
+
+BB0_24:
+ mul.rn.f32 %f772, %f847, %f847;
+ mov.f32 %f768, 0f00000000;
+ mov.f32 %f324, 0fBE2AAAA3;
+ fma.rn.f32 %f325, %f848, %f772, %f324;
+ fma.rn.f32 %f849, %f325, %f772, %f768;
+ bra.uni BB0_25;
+
+BB0_23:
+ mul.rn.f32 %f770, %f847, %f847;
+ mov.f32 %f321, 0f3D2AAAA5;
+ fma.rn.f32 %f322, %f848, %f770, %f321;
+ mov.f32 %f323, 0fBF000000;
+ fma.rn.f32 %f849, %f322, %f770, %f323;
+
+BB0_25:
+ fma.rn.f32 %f850, %f849, %f847, %f847;
+ @%p21 bra BB0_27;
+
+ mul.rn.f32 %f771, %f847, %f847;
+ mov.f32 %f757, 0f3F800000;
+ fma.rn.f32 %f850, %f849, %f771, %f757;
+
+BB0_27:
+ add.s32 %r348, %r371, 1;
+ and.b32 %r169, %r348, 2;
+ setp.eq.s32 %p24, %r169, 0;
+ @%p24 bra BB0_29;
+
+ mov.f32 %f764, 0f00000000;
+ mov.f32 %f329, 0fBF800000;
+ fma.rn.f32 %f850, %f850, %f329, %f764;
+
+BB0_29:
+ abs.f32 %f758, %f852;
+ setp.neu.f32 %p105, %f758, 0f7F800000;
+ @%p105 bra BB0_31;
+
+ mov.f32 %f767, 0f00000000;
+ mul.rn.f32 %f852, %f852, %f767;
+
+BB0_31:
+ mov.f32 %f761, 0f27C234C5;
+ mov.f32 %f760, 0f33A22168;
+ mov.f32 %f759, 0f3FC90FDA;
+ mul.f32 %f331, %f852, 0f3F22F983;
+ cvt.rni.s32.f32 %r381, %f331;
+ cvt.rn.f32.s32 %f332, %r381;
+ neg.f32 %f333, %f332;
+ fma.rn.f32 %f335, %f333, %f759, %f852;
+ fma.rn.f32 %f337, %f333, %f760, %f335;
+ fma.rn.f32 %f853, %f333, %f761, %f337;
+ abs.f32 %f339, %f852;
+ setp.leu.f32 %p26, %f339, 0f47CE4780;
+ @%p26 bra BB0_42;
+
+ add.u64 %rd53, %SP, 12;
+ cvta.to.local.u64 %rd285, %rd53;
+ mov.b32 %r50, %f852;
+ shl.b32 %r172, %r50, 8;
+ or.b32 %r52, %r172, -2147483648;
+ mov.u32 %r372, 0;
+ mov.u64 %rd286, %rd25;
+ mov.u32 %r373, %r372;
+
+BB0_33:
+ .pragma "nounroll";
+ add.u64 %rd281, %SP, 12;
+ cvta.to.local.u64 %rd280, %rd281;
+ shl.b64 %rd54, %rd286, 2;
+ mov.u64 %rd55, __cudart_i2opi_f;
+ add.s64 %rd56, %rd55, %rd54;
+ ld.const.u32 %r175, [%rd56];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r173, %r175, %r52, %r373;
+ madc.hi.u32 %r373, %r175, %r52, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd285], %r173;
+ add.s32 %r372, %r372, 1;
+ cvt.s64.s32 %rd286, %r372;
+ mul.wide.s32 %rd57, %r372, 4;
+ add.s64 %rd285, %rd280, %rd57;
+ setp.ne.s32 %p27, %r372, 6;
+ @%p27 bra BB0_33;
+
+ mov.b32 %r350, %f852;
+ shr.u32 %r349, %r350, 23;
+ add.u64 %rd282, %SP, 12;
+ and.b32 %r178, %r349, 255;
+ add.s32 %r179, %r178, -128;
+ shr.u32 %r180, %r179, 5;
+ cvta.to.local.u64 %rd59, %rd282;
+ st.local.u32 [%rd59+24], %r373;
+ mov.u32 %r181, 6;
+ sub.s32 %r182, %r181, %r180;
+ mul.wide.s32 %rd60, %r182, 4;
+ add.s64 %rd15, %rd59, %rd60;
+ ld.local.u32 %r374, [%rd15];
+ ld.local.u32 %r375, [%rd15+-4];
+ and.b32 %r60, %r349, 31;
+ setp.eq.s32 %p28, %r60, 0;
+ @%p28 bra BB0_36;
+
+ mov.u32 %r183, 32;
+ sub.s32 %r184, %r183, %r60;
+ shr.u32 %r185, %r375, %r184;
+ shl.b32 %r186, %r374, %r60;
+ add.s32 %r374, %r185, %r186;
+ ld.local.u32 %r187, [%rd15+-8];
+ shr.u32 %r188, %r187, %r184;
+ shl.b32 %r189, %r375, %r60;
+ add.s32 %r375, %r188, %r189;
+
+BB0_36:
+ mov.b32 %r353, %f852;
+ and.b32 %r377, %r353, -2147483648;
+ shr.u32 %r190, %r375, 30;
+ shl.b32 %r191, %r374, 2;
+ add.s32 %r376, %r190, %r191;
+ shl.b32 %r66, %r375, 2;
+ shr.u32 %r192, %r376, 31;
+ shr.u32 %r193, %r374, 30;
+ add.s32 %r67, %r192, %r193;
+ setp.eq.s32 %p29, %r192, 0;
+ @%p29 bra BB0_37;
+ bra.uni BB0_38;
+
+BB0_37:
+ mov.u32 %r378, %r66;
+ bra.uni BB0_39;
+
+BB0_38:
+ mov.b32 %r355, %f852;
+ and.b32 %r354, %r355, -2147483648;
+ not.b32 %r194, %r376;
+ neg.s32 %r378, %r66;
+ setp.eq.s32 %p30, %r66, 0;
+ selp.u32 %r195, 1, 0, %p30;
+ add.s32 %r376, %r195, %r194;
+ xor.b32 %r377, %r354, -2147483648;
+
+BB0_39:
+ mov.b32 %r357, %f852;
+ and.b32 %r356, %r357, -2147483648;
+ clz.b32 %r380, %r376;
+ setp.eq.s32 %p31, %r380, 0;
+ shl.b32 %r196, %r376, %r380;
+ mov.u32 %r197, 32;
+ sub.s32 %r198, %r197, %r380;
+ shr.u32 %r199, %r378, %r198;
+ add.s32 %r200, %r199, %r196;
+ selp.b32 %r75, %r376, %r200, %p31;
+ mov.u32 %r201, -921707870;
+ mul.hi.u32 %r379, %r75, %r201;
+ setp.eq.s32 %p32, %r356, 0;
+ neg.s32 %r202, %r67;
+ selp.b32 %r381, %r67, %r202, %p32;
+ setp.lt.s32 %p33, %r379, 1;
+ @%p33 bra BB0_41;
+
+ mul.lo.s32 %r203, %r75, -921707870;
+ shr.u32 %r204, %r203, 31;
+ shl.b32 %r205, %r379, 1;
+ add.s32 %r379, %r204, %r205;
+ add.s32 %r380, %r380, 1;
+
+BB0_41:
+ mov.u32 %r206, 126;
+ sub.s32 %r207, %r206, %r380;
+ shl.b32 %r208, %r207, 23;
+ add.s32 %r209, %r379, 1;
+ shr.u32 %r210, %r209, 7;
+ add.s32 %r211, %r210, 1;
+ shr.u32 %r212, %r211, 1;
+ add.s32 %r213, %r212, %r208;
+ or.b32 %r214, %r213, %r377;
+ mov.b32 %f853, %r214;
+
+BB0_42:
+ and.b32 %r83, %r381, 1;
+ setp.eq.s32 %p34, %r83, 0;
+ @%p34 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mul.rn.f32 %f778, %f853, %f853;
+ mov.f32 %f342, 0f3C08839E;
+ mov.f32 %f343, 0fB94CA1F9;
+ fma.rn.f32 %f854, %f343, %f778, %f342;
+ bra.uni BB0_45;
+
+BB0_43:
+ mul.rn.f32 %f774, %f853, %f853;
+ mov.f32 %f340, 0fBAB6061A;
+ mov.f32 %f341, 0f37CCF5CE;
+ fma.rn.f32 %f854, %f341, %f774, %f340;
+
+BB0_45:
+ @%p34 bra BB0_47;
+ bra.uni BB0_46;
+
+BB0_47:
+ mul.rn.f32 %f777, %f853, %f853;
+ mov.f32 %f766, 0f00000000;
+ mov.f32 %f347, 0fBE2AAAA3;
+ fma.rn.f32 %f348, %f854, %f777, %f347;
+ fma.rn.f32 %f855, %f348, %f777, %f766;
+ bra.uni BB0_48;
+
+BB0_46:
+ mul.rn.f32 %f775, %f853, %f853;
+ mov.f32 %f344, 0f3D2AAAA5;
+ fma.rn.f32 %f345, %f854, %f775, %f344;
+ mov.f32 %f346, 0fBF000000;
+ fma.rn.f32 %f855, %f345, %f775, %f346;
+
+BB0_48:
+ fma.rn.f32 %f856, %f855, %f853, %f853;
+ @%p34 bra BB0_50;
+
+ mul.rn.f32 %f776, %f853, %f853;
+ mov.f32 %f762, 0f3F800000;
+ fma.rn.f32 %f856, %f855, %f776, %f762;
+
+BB0_50:
+ and.b32 %r215, %r381, 2;
+ setp.eq.s32 %p37, %r215, 0;
+ @%p37 bra BB0_52;
+
+ mov.f32 %f765, 0f00000000;
+ mov.f32 %f352, 0fBF800000;
+ fma.rn.f32 %f856, %f856, %f352, %f765;
+
+BB0_52:
+ mul.f32 %f353, %f52, %f850;
+ mul.f32 %f354, %f52, %f856;
+ mul.f32 %f355, %f10, %f354;
+ mul.f32 %f356, %f11, %f354;
+ mul.f32 %f357, %f12, %f354;
+ fma.rn.f32 %f358, %f19, %f353, %f355;
+ fma.rn.f32 %f359, %f18, %f353, %f356;
+ fma.rn.f32 %f360, %f17, %f353, %f357;
+ fma.rn.f32 %f89, %f813, %f51, %f358;
+ fma.rn.f32 %f90, %f814, %f51, %f359;
+ fma.rn.f32 %f91, %f815, %f51, %f360;
+ setp.gt.f32 %p38, %f90, 0f00000000;
+ setp.eq.s32 %p39, %r6, 0;
+ or.pred %p40, %p39, %p38;
+ @!%p40 bra BB0_54;
+ bra.uni BB0_53;
+
+BB0_53:
+ add.u64 %rd61, %SP, 0;
+ cvta.to.local.u64 %rd62, %rd61;
+ max.f32 %f374, %f380, %f259;
+ ld.global.u32 %r216, [sky];
+ neg.f32 %f367, %f89;
+ neg.f32 %f366, %f90;
+ neg.f32 %f365, %f91;
+ mov.u32 %r217, 6;
+ mov.u32 %r218, 0;
+ // inline asm
+ call (%f361, %f362, %f363, %f364), _rt_texture_get_base_id, (%r216, %r217, %f365, %f366, %f367, %r218);
+ // inline asm
+ st.local.f32 [%rd62+8], %f363;
+ st.local.f32 [%rd62+4], %f362;
+ st.local.f32 [%rd62], %f361;
+ ld.global.u32 %r219, [root];
+ mov.u32 %r220, 1;
+ mov.f32 %f375, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r219, %f7, %f8, %f9, %f89, %f90, %f91, %r220, %f374, %f375, %rd61, %r108);
+ // inline asm
+ mul.f32 %f382, %f814, %f90;
+ fma.rn.f32 %f383, %f813, %f89, %f382;
+ fma.rn.f32 %f384, %f815, %f91, %f383;
+ ld.local.f32 %f385, [%rd62+8];
+ ld.local.f32 %f386, [%rd62+4];
+ ld.local.f32 %f387, [%rd62];
+ fma.rn.f32 %f864, %f89, %f387, %f864;
+ fma.rn.f32 %f865, %f89, %f386, %f865;
+ fma.rn.f32 %f866, %f89, %f385, %f866;
+ fma.rn.f32 %f861, %f90, %f387, %f861;
+ fma.rn.f32 %f862, %f90, %f386, %f862;
+ fma.rn.f32 %f863, %f90, %f385, %f863;
+ fma.rn.f32 %f858, %f91, %f387, %f858;
+ fma.rn.f32 %f859, %f91, %f386, %f859;
+ fma.rn.f32 %f860, %f91, %f385, %f860;
+ add.f32 %f867, %f867, %f387;
+ add.f32 %f868, %f868, %f386;
+ add.f32 %f869, %f869, %f385;
+ cvt.sat.f32.f32 %f388, %f384;
+ fma.rn.f32 %f870, %f388, %f387, %f870;
+ fma.rn.f32 %f871, %f388, %f386, %f871;
+ fma.rn.f32 %f872, %f388, %f385, %f872;
+
+BB0_54:
+ mad.lo.s32 %r338, %r11, 1664525, 1013904223;
+ mad.lo.s32 %r361, %r338, 1664525, 1013904223;
+ add.s32 %r360, %r360, 1;
+ setp.lt.s32 %p41, %r360, %r2;
+ @%p41 bra BB0_6;
+
+ mad.lo.s32 %r340, %r11, 1664525, 1013904223;
+ mad.lo.s32 %r361, %r340, 1664525, 1013904223;
+ add.s32 %r358, %r358, 1;
+ setp.lt.s32 %p42, %r358, %r2;
+ @%p42 bra BB0_5;
+
+BB0_56:
+ mul.lo.s32 %r222, %r2, %r2;
+ cvt.rn.f32.s32 %f389, %r222;
+ rcp.rn.f32 %f390, %f389;
+ mul.f32 %f391, %f870, %f390;
+ mul.f32 %f392, %f871, %f390;
+ mul.f32 %f393, %f872, %f390;
+ mul.f32 %f137, %f867, %f390;
+ mul.f32 %f138, %f868, %f390;
+ mul.f32 %f139, %f869, %f390;
+ mul.f32 %f140, %f864, %f390;
+ mul.f32 %f141, %f865, %f390;
+ mul.f32 %f142, %f866, %f390;
+ mul.f32 %f143, %f861, %f390;
+ mul.f32 %f144, %f862, %f390;
+ mul.f32 %f145, %f863, %f390;
+ mul.f32 %f146, %f858, %f390;
+ mul.f32 %f147, %f859, %f390;
+ mul.f32 %f148, %f860, %f390;
+ fma.rn.f32 %f394, %f870, %f390, %f391;
+ fma.rn.f32 %f395, %f871, %f390, %f392;
+ fma.rn.f32 %f396, %f872, %f390, %f393;
+ ld.global.f32 %f397, [skyColor];
+ mul.f32 %f149, %f397, %f394;
+ ld.global.f32 %f398, [skyColor+4];
+ mul.f32 %f150, %f395, %f398;
+ ld.global.f32 %f399, [skyColor+8];
+ mul.f32 %f151, %f396, %f399;
+ ld.global.u32 %r382, [imageEnabled];
+ and.b32 %r223, %r382, 1;
+ setp.eq.b32 %p43, %r223, 1;
+ @!%p43 bra BB0_91;
+ bra.uni BB0_57;
+
+BB0_57:
+ abs.f32 %f153, %f149;
+ setp.lt.f32 %p44, %f153, 0f00800000;
+ mul.f32 %f405, %f153, 0f4B800000;
+ selp.f32 %f406, 0fC3170000, 0fC2FE0000, %p44;
+ selp.f32 %f407, %f405, %f153, %p44;
+ mov.b32 %r224, %f407;
+ and.b32 %r225, %r224, 8388607;
+ or.b32 %r226, %r225, 1065353216;
+ mov.b32 %f408, %r226;
+ shr.u32 %r227, %r224, 23;
+ cvt.rn.f32.u32 %f409, %r227;
+ add.f32 %f410, %f406, %f409;
+ setp.gt.f32 %p45, %f408, 0f3FB504F3;
+ mul.f32 %f411, %f408, 0f3F000000;
+ add.f32 %f412, %f410, 0f3F800000;
+ selp.f32 %f413, %f411, %f408, %p45;
+ selp.f32 %f414, %f412, %f410, %p45;
+ add.f32 %f415, %f413, 0fBF800000;
+ add.f32 %f401, %f413, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f400,%f401;
+ // inline asm
+ add.f32 %f416, %f415, %f415;
+ mul.f32 %f417, %f400, %f416;
+ mul.f32 %f418, %f417, %f417;
+ mov.f32 %f419, 0f3C4CAF63;
+ mov.f32 %f420, 0f3B18F0FE;
+ fma.rn.f32 %f421, %f420, %f418, %f419;
+ mov.f32 %f422, 0f3DAAAABD;
+ fma.rn.f32 %f423, %f421, %f418, %f422;
+ mul.rn.f32 %f424, %f423, %f418;
+ mul.rn.f32 %f425, %f424, %f417;
+ sub.f32 %f426, %f415, %f417;
+ neg.f32 %f427, %f417;
+ add.f32 %f428, %f426, %f426;
+ fma.rn.f32 %f429, %f427, %f415, %f428;
+ mul.rn.f32 %f430, %f400, %f429;
+ add.f32 %f431, %f425, %f417;
+ sub.f32 %f432, %f417, %f431;
+ add.f32 %f433, %f425, %f432;
+ add.f32 %f434, %f430, %f433;
+ add.f32 %f435, %f431, %f434;
+ sub.f32 %f436, %f431, %f435;
+ add.f32 %f437, %f434, %f436;
+ mov.f32 %f438, 0f3F317200;
+ mul.rn.f32 %f439, %f414, %f438;
+ mov.f32 %f440, 0f35BFBE8E;
+ mul.rn.f32 %f441, %f414, %f440;
+ add.f32 %f442, %f439, %f435;
+ sub.f32 %f443, %f439, %f442;
+ add.f32 %f444, %f435, %f443;
+ add.f32 %f445, %f437, %f444;
+ add.f32 %f446, %f441, %f445;
+ add.f32 %f447, %f442, %f446;
+ sub.f32 %f448, %f442, %f447;
+ add.f32 %f449, %f446, %f448;
+ mov.f32 %f450, 0f3EE66666;
+ mul.rn.f32 %f451, %f450, %f447;
+ neg.f32 %f452, %f451;
+ fma.rn.f32 %f453, %f450, %f447, %f452;
+ fma.rn.f32 %f454, %f450, %f449, %f453;
+ mov.f32 %f455, 0f00000000;
+ fma.rn.f32 %f456, %f455, %f447, %f454;
+ add.rn.f32 %f457, %f451, %f456;
+ neg.f32 %f458, %f457;
+ add.rn.f32 %f459, %f451, %f458;
+ add.rn.f32 %f460, %f459, %f456;
+ mov.b32 %r228, %f457;
+ setp.eq.s32 %p46, %r228, 1118925336;
+ add.s32 %r229, %r228, -1;
+ mov.b32 %f461, %r229;
+ add.f32 %f462, %f460, 0f37000000;
+ selp.f32 %f463, %f461, %f457, %p46;
+ selp.f32 %f154, %f462, %f460, %p46;
+ mul.f32 %f464, %f463, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f465, %f464;
+ mov.f32 %f466, 0fBF317200;
+ fma.rn.f32 %f467, %f465, %f466, %f463;
+ mov.f32 %f468, 0fB5BFBE8E;
+ fma.rn.f32 %f469, %f465, %f468, %f467;
+ mul.f32 %f470, %f469, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f471, %f470;
+ add.f32 %f472, %f465, 0f00000000;
+ ex2.approx.f32 %f473, %f472;
+ mul.f32 %f474, %f471, %f473;
+ setp.lt.f32 %p47, %f463, 0fC2D20000;
+ selp.f32 %f475, 0f00000000, %f474, %p47;
+ setp.gt.f32 %p48, %f463, 0f42D20000;
+ selp.f32 %f888, 0f7F800000, %f475, %p48;
+ setp.eq.f32 %p49, %f888, 0f7F800000;
+ @%p49 bra BB0_59;
+
+ fma.rn.f32 %f888, %f888, %f154, %f888;
+
+BB0_59:
+ mov.f32 %f782, 0f3E666666;
+ cvt.rzi.f32.f32 %f781, %f782;
+ fma.rn.f32 %f780, %f781, 0fC0000000, 0f3EE66666;
+ abs.f32 %f779, %f780;
+ setp.lt.f32 %p50, %f149, 0f00000000;
+ setp.eq.f32 %p51, %f779, 0f3F800000;
+ and.pred %p1, %p50, %p51;
+ mov.b32 %r230, %f888;
+ xor.b32 %r231, %r230, -2147483648;
+ mov.b32 %f476, %r231;
+ selp.f32 %f890, %f476, %f888, %p1;
+ setp.eq.f32 %p52, %f149, 0f00000000;
+ @%p52 bra BB0_62;
+ bra.uni BB0_60;
+
+BB0_62:
+ add.f32 %f479, %f149, %f149;
+ selp.f32 %f890, %f479, 0f00000000, %p51;
+ bra.uni BB0_63;
+
+BB0_112:
+ mov.u64 %rd196, image_HDR;
+ cvta.global.u64 %rd191, %rd196;
+ mov.u32 %r302, 8;
+ mov.u64 %rd195, 0;
+ // inline asm
+ call (%rd190), _rt_buffer_get_64, (%rd191, %r92, %r302, %rd18, %rd19, %rd195, %rd195);
+ // inline asm
+ mov.f32 %f728, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs100, %f728;}
+
+ // inline asm
+ mov.u16 %rs101, 0;
+ st.v4.u16 [%rd190], {%rs100, %rs100, %rs100, %rs101};
+
+BB0_113:
+ ld.global.u32 %r303, [additive];
+ setp.eq.s32 %p101, %r303, 0;
+ @%p101 bra BB0_115;
+
+ mov.u64 %rd209, image_RNM0;
+ cvta.global.u64 %rd198, %rd209;
+ mov.u32 %r307, 8;
+ mov.u64 %rd208, 0;
+ // inline asm
+ call (%rd197), _rt_buffer_get_64, (%rd198, %r92, %r307, %rd18, %rd19, %rd208, %rd208);
+ // inline asm
+ ld.v4.u16 {%rs108, %rs109, %rs110, %rs111}, [%rd197];
+ // inline asm
+ { cvt.f32.f16 %f729, %rs108;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f730, %rs109;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f731, %rs110;}
+
+ // inline asm
+ // inline asm
+ call (%rd203), _rt_buffer_get_64, (%rd198, %r92, %r307, %rd18, %rd19, %rd208, %rd208);
+ // inline asm
+ add.f32 %f732, %f729, 0f00000000;
+ add.f32 %f733, %f730, 0f00000000;
+ add.f32 %f734, %f731, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs107, %f734;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs106, %f733;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f732;}
+
+ // inline asm
+ mov.u16 %rs112, 0;
+ st.v4.u16 [%rd203], {%rs105, %rs106, %rs107, %rs112};
+ bra.uni BB0_116;
+
+BB0_115:
+ mov.u64 %rd216, image_RNM0;
+ cvta.global.u64 %rd211, %rd216;
+ mov.u32 %r309, 8;
+ mov.u64 %rd215, 0;
+ // inline asm
+ call (%rd210), _rt_buffer_get_64, (%rd211, %r92, %r309, %rd18, %rd19, %rd215, %rd215);
+ // inline asm
+ mov.f32 %f735, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs113, %f735;}
+
+ // inline asm
+ mov.u16 %rs114, 0;
+ st.v4.u16 [%rd210], {%rs113, %rs113, %rs113, %rs114};
+
+BB0_116:
+ ld.global.u32 %r310, [additive];
+ setp.eq.s32 %p102, %r310, 0;
+ @%p102 bra BB0_118;
+
+ mov.u64 %rd229, image_RNM1;
+ cvta.global.u64 %rd218, %rd229;
+ mov.u32 %r314, 8;
+ mov.u64 %rd228, 0;
+ // inline asm
+ call (%rd217), _rt_buffer_get_64, (%rd218, %r92, %r314, %rd18, %rd19, %rd228, %rd228);
+ // inline asm
+ ld.v4.u16 {%rs121, %rs122, %rs123, %rs124}, [%rd217];
+ // inline asm
+ { cvt.f32.f16 %f736, %rs121;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f737, %rs122;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f738, %rs123;}
+
+ // inline asm
+ // inline asm
+ call (%rd223), _rt_buffer_get_64, (%rd218, %r92, %r314, %rd18, %rd19, %rd228, %rd228);
+ // inline asm
+ add.f32 %f739, %f736, 0f00000000;
+ add.f32 %f740, %f737, 0f00000000;
+ add.f32 %f741, %f738, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs120, %f741;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs119, %f740;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs118, %f739;}
+
+ // inline asm
+ mov.u16 %rs125, 0;
+ st.v4.u16 [%rd223], {%rs118, %rs119, %rs120, %rs125};
+ bra.uni BB0_119;
+
+BB0_118:
+ mov.u64 %rd236, image_RNM1;
+ cvta.global.u64 %rd231, %rd236;
+ mov.u32 %r316, 8;
+ mov.u64 %rd235, 0;
+ // inline asm
+ call (%rd230), _rt_buffer_get_64, (%rd231, %r92, %r316, %rd18, %rd19, %rd235, %rd235);
+ // inline asm
+ mov.f32 %f742, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs126, %f742;}
+
+ // inline asm
+ mov.u16 %rs127, 0;
+ st.v4.u16 [%rd230], {%rs126, %rs126, %rs126, %rs127};
+
+BB0_119:
+ ld.global.u32 %r317, [additive];
+ setp.eq.s32 %p103, %r317, 0;
+ @%p103 bra BB0_121;
+
+ mov.u64 %rd249, image_RNM2;
+ cvta.global.u64 %rd238, %rd249;
+ mov.u32 %r321, 8;
+ mov.u64 %rd248, 0;
+ // inline asm
+ call (%rd237), _rt_buffer_get_64, (%rd238, %r92, %r321, %rd18, %rd19, %rd248, %rd248);
+ // inline asm
+ ld.v4.u16 {%rs134, %rs135, %rs136, %rs137}, [%rd237];
+ // inline asm
+ { cvt.f32.f16 %f743, %rs134;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f744, %rs135;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f745, %rs136;}
+
+ // inline asm
+ // inline asm
+ call (%rd243), _rt_buffer_get_64, (%rd238, %r92, %r321, %rd18, %rd19, %rd248, %rd248);
+ // inline asm
+ add.f32 %f746, %f743, 0f00000000;
+ add.f32 %f747, %f744, 0f00000000;
+ add.f32 %f748, %f745, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f748;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs132, %f747;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs131, %f746;}
+
+ // inline asm
+ mov.u16 %rs138, 0;
+ st.v4.u16 [%rd243], {%rs131, %rs132, %rs133, %rs138};
+ bra.uni BB0_122;
+
+BB0_121:
+ mov.u64 %rd256, image_RNM2;
+ cvta.global.u64 %rd251, %rd256;
+ mov.u32 %r323, 8;
+ mov.u64 %rd255, 0;
+ // inline asm
+ call (%rd250), _rt_buffer_get_64, (%rd251, %r92, %r323, %rd18, %rd19, %rd255, %rd255);
+ // inline asm
+ mov.f32 %f749, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs139, %f749;}
+
+ // inline asm
+ mov.u16 %rs140, 0;
+ st.v4.u16 [%rd250], {%rs139, %rs139, %rs139, %rs140};
+
+BB0_122:
+ ld.global.u32 %r324, [additive];
+ setp.eq.s32 %p104, %r324, 0;
+ @%p104 bra BB0_124;
+
+ mov.u64 %rd269, image_RNM3;
+ cvta.global.u64 %rd258, %rd269;
+ mov.u32 %r328, 8;
+ mov.u64 %rd268, 0;
+ // inline asm
+ call (%rd257), _rt_buffer_get_64, (%rd258, %r92, %r328, %rd18, %rd19, %rd268, %rd268);
+ // inline asm
+ ld.v4.u16 {%rs147, %rs148, %rs149, %rs150}, [%rd257];
+ // inline asm
+ { cvt.f32.f16 %f750, %rs147;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f751, %rs148;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f752, %rs149;}
+
+ // inline asm
+ // inline asm
+ call (%rd263), _rt_buffer_get_64, (%rd258, %r92, %r328, %rd18, %rd19, %rd268, %rd268);
+ // inline asm
+ add.f32 %f753, %f750, 0f00000000;
+ add.f32 %f754, %f751, 0f00000000;
+ add.f32 %f755, %f752, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f755;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f754;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs144, %f753;}
+
+ // inline asm
+ mov.u16 %rs151, 0;
+ st.v4.u16 [%rd263], {%rs144, %rs145, %rs146, %rs151};
+ bra.uni BB0_125;
+
+BB0_124:
+ mov.u64 %rd276, image_RNM3;
+ cvta.global.u64 %rd271, %rd276;
+ mov.u32 %r330, 8;
+ mov.u64 %rd275, 0;
+ // inline asm
+ call (%rd270), _rt_buffer_get_64, (%rd271, %r92, %r330, %rd18, %rd19, %rd275, %rd275);
+ // inline asm
+ mov.f32 %f756, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f756;}
+
+ // inline asm
+ mov.u16 %rs153, 0;
+ st.v4.u16 [%rd270], {%rs152, %rs152, %rs152, %rs153};
+ bra.uni BB0_125;
+
+BB0_60:
+ setp.geu.f32 %p53, %f149, 0f00000000;
+ @%p53 bra BB0_63;
+
+ mov.f32 %f806, 0f3EE66666;
+ cvt.rzi.f32.f32 %f478, %f806;
+ setp.neu.f32 %p54, %f478, 0f3EE66666;
+ selp.f32 %f890, 0f7FFFFFFF, %f890, %p54;
+
+BB0_63:
+ abs.f32 %f783, %f149;
+ add.f32 %f480, %f783, 0f3EE66666;
+ mov.b32 %r232, %f480;
+ setp.lt.s32 %p56, %r232, 2139095040;
+ @%p56 bra BB0_68;
+
+ abs.f32 %f804, %f149;
+ setp.gtu.f32 %p57, %f804, 0f7F800000;
+ @%p57 bra BB0_67;
+ bra.uni BB0_65;
+
+BB0_67:
+ add.f32 %f890, %f149, 0f3EE66666;
+ bra.uni BB0_68;
+
+BB0_65:
+ abs.f32 %f805, %f149;
+ setp.neu.f32 %p58, %f805, 0f7F800000;
+ @%p58 bra BB0_68;
+
+ selp.f32 %f890, 0fFF800000, 0f7F800000, %p1;
+
+BB0_68:
+ mov.f32 %f792, 0fB5BFBE8E;
+ mov.f32 %f791, 0fBF317200;
+ mov.f32 %f790, 0f00000000;
+ mov.f32 %f789, 0f35BFBE8E;
+ mov.f32 %f788, 0f3F317200;
+ mov.f32 %f787, 0f3DAAAABD;
+ mov.f32 %f786, 0f3C4CAF63;
+ mov.f32 %f785, 0f3B18F0FE;
+ mov.f32 %f784, 0f3EE66666;
+ setp.eq.f32 %p59, %f149, 0f3F800000;
+ selp.f32 %f165, 0f3F800000, %f890, %p59;
+ abs.f32 %f166, %f150;
+ setp.lt.f32 %p60, %f166, 0f00800000;
+ mul.f32 %f483, %f166, 0f4B800000;
+ selp.f32 %f484, 0fC3170000, 0fC2FE0000, %p60;
+ selp.f32 %f485, %f483, %f166, %p60;
+ mov.b32 %r233, %f485;
+ and.b32 %r234, %r233, 8388607;
+ or.b32 %r235, %r234, 1065353216;
+ mov.b32 %f486, %r235;
+ shr.u32 %r236, %r233, 23;
+ cvt.rn.f32.u32 %f487, %r236;
+ add.f32 %f488, %f484, %f487;
+ setp.gt.f32 %p61, %f486, 0f3FB504F3;
+ mul.f32 %f489, %f486, 0f3F000000;
+ add.f32 %f490, %f488, 0f3F800000;
+ selp.f32 %f491, %f489, %f486, %p61;
+ selp.f32 %f492, %f490, %f488, %p61;
+ add.f32 %f493, %f491, 0fBF800000;
+ add.f32 %f482, %f491, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f481,%f482;
+ // inline asm
+ add.f32 %f494, %f493, %f493;
+ mul.f32 %f495, %f481, %f494;
+ mul.f32 %f496, %f495, %f495;
+ fma.rn.f32 %f499, %f785, %f496, %f786;
+ fma.rn.f32 %f501, %f499, %f496, %f787;
+ mul.rn.f32 %f502, %f501, %f496;
+ mul.rn.f32 %f503, %f502, %f495;
+ sub.f32 %f504, %f493, %f495;
+ neg.f32 %f505, %f495;
+ add.f32 %f506, %f504, %f504;
+ fma.rn.f32 %f507, %f505, %f493, %f506;
+ mul.rn.f32 %f508, %f481, %f507;
+ add.f32 %f509, %f503, %f495;
+ sub.f32 %f510, %f495, %f509;
+ add.f32 %f511, %f503, %f510;
+ add.f32 %f512, %f508, %f511;
+ add.f32 %f513, %f509, %f512;
+ sub.f32 %f514, %f509, %f513;
+ add.f32 %f515, %f512, %f514;
+ mul.rn.f32 %f517, %f492, %f788;
+ mul.rn.f32 %f519, %f492, %f789;
+ add.f32 %f520, %f517, %f513;
+ sub.f32 %f521, %f517, %f520;
+ add.f32 %f522, %f513, %f521;
+ add.f32 %f523, %f515, %f522;
+ add.f32 %f524, %f519, %f523;
+ add.f32 %f525, %f520, %f524;
+ sub.f32 %f526, %f520, %f525;
+ add.f32 %f527, %f524, %f526;
+ mul.rn.f32 %f529, %f784, %f525;
+ neg.f32 %f530, %f529;
+ fma.rn.f32 %f531, %f784, %f525, %f530;
+ fma.rn.f32 %f532, %f784, %f527, %f531;
+ fma.rn.f32 %f534, %f790, %f525, %f532;
+ add.rn.f32 %f535, %f529, %f534;
+ neg.f32 %f536, %f535;
+ add.rn.f32 %f537, %f529, %f536;
+ add.rn.f32 %f538, %f537, %f534;
+ mov.b32 %r237, %f535;
+ setp.eq.s32 %p62, %r237, 1118925336;
+ add.s32 %r238, %r237, -1;
+ mov.b32 %f539, %r238;
+ add.f32 %f540, %f538, 0f37000000;
+ selp.f32 %f541, %f539, %f535, %p62;
+ selp.f32 %f167, %f540, %f538, %p62;
+ mul.f32 %f542, %f541, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f543, %f542;
+ fma.rn.f32 %f545, %f543, %f791, %f541;
+ fma.rn.f32 %f547, %f543, %f792, %f545;
+ mul.f32 %f548, %f547, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f549, %f548;
+ add.f32 %f550, %f543, 0f00000000;
+ ex2.approx.f32 %f551, %f550;
+ mul.f32 %f552, %f549, %f551;
+ setp.lt.f32 %p63, %f541, 0fC2D20000;
+ selp.f32 %f553, 0f00000000, %f552, %p63;
+ setp.gt.f32 %p64, %f541, 0f42D20000;
+ selp.f32 %f891, 0f7F800000, %f553, %p64;
+ setp.eq.f32 %p65, %f891, 0f7F800000;
+ @%p65 bra BB0_70;
+
+ fma.rn.f32 %f891, %f891, %f167, %f891;
+
+BB0_70:
+ setp.lt.f32 %p66, %f150, 0f00000000;
+ and.pred %p2, %p66, %p51;
+ mov.b32 %r239, %f891;
+ xor.b32 %r240, %r239, -2147483648;
+ mov.b32 %f554, %r240;
+ selp.f32 %f893, %f554, %f891, %p2;
+ setp.eq.f32 %p68, %f150, 0f00000000;
+ @%p68 bra BB0_73;
+ bra.uni BB0_71;
+
+BB0_73:
+ add.f32 %f557, %f150, %f150;
+ selp.f32 %f893, %f557, 0f00000000, %p51;
+ bra.uni BB0_74;
+
+BB0_71:
+ setp.geu.f32 %p69, %f150, 0f00000000;
+ @%p69 bra BB0_74;
+
+ mov.f32 %f803, 0f3EE66666;
+ cvt.rzi.f32.f32 %f556, %f803;
+ setp.neu.f32 %p70, %f556, 0f3EE66666;
+ selp.f32 %f893, 0f7FFFFFFF, %f893, %p70;
+
+BB0_74:
+ abs.f32 %f807, %f150;
+ add.f32 %f558, %f807, 0f3EE66666;
+ mov.b32 %r241, %f558;
+ setp.lt.s32 %p72, %r241, 2139095040;
+ @%p72 bra BB0_79;
+
+ abs.f32 %f808, %f150;
+ setp.gtu.f32 %p73, %f808, 0f7F800000;
+ @%p73 bra BB0_78;
+ bra.uni BB0_76;
+
+BB0_78:
+ add.f32 %f893, %f150, 0f3EE66666;
+ bra.uni BB0_79;
+
+BB0_76:
+ abs.f32 %f809, %f150;
+ setp.neu.f32 %p74, %f809, 0f7F800000;
+ @%p74 bra BB0_79;
+
+ selp.f32 %f893, 0fFF800000, 0f7F800000, %p2;
+
+BB0_79:
+ mov.f32 %f801, 0fB5BFBE8E;
+ mov.f32 %f800, 0fBF317200;
+ mov.f32 %f799, 0f00000000;
+ mov.f32 %f798, 0f35BFBE8E;
+ mov.f32 %f797, 0f3F317200;
+ mov.f32 %f796, 0f3DAAAABD;
+ mov.f32 %f795, 0f3C4CAF63;
+ mov.f32 %f794, 0f3B18F0FE;
+ mov.f32 %f793, 0f3EE66666;
+ setp.eq.f32 %p75, %f150, 0f3F800000;
+ selp.f32 %f178, 0f3F800000, %f893, %p75;
+ abs.f32 %f179, %f151;
+ setp.lt.f32 %p76, %f179, 0f00800000;
+ mul.f32 %f561, %f179, 0f4B800000;
+ selp.f32 %f562, 0fC3170000, 0fC2FE0000, %p76;
+ selp.f32 %f563, %f561, %f179, %p76;
+ mov.b32 %r242, %f563;
+ and.b32 %r243, %r242, 8388607;
+ or.b32 %r244, %r243, 1065353216;
+ mov.b32 %f564, %r244;
+ shr.u32 %r245, %r242, 23;
+ cvt.rn.f32.u32 %f565, %r245;
+ add.f32 %f566, %f562, %f565;
+ setp.gt.f32 %p77, %f564, 0f3FB504F3;
+ mul.f32 %f567, %f564, 0f3F000000;
+ add.f32 %f568, %f566, 0f3F800000;
+ selp.f32 %f569, %f567, %f564, %p77;
+ selp.f32 %f570, %f568, %f566, %p77;
+ add.f32 %f571, %f569, 0fBF800000;
+ add.f32 %f560, %f569, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f559,%f560;
+ // inline asm
+ add.f32 %f572, %f571, %f571;
+ mul.f32 %f573, %f559, %f572;
+ mul.f32 %f574, %f573, %f573;
+ fma.rn.f32 %f577, %f794, %f574, %f795;
+ fma.rn.f32 %f579, %f577, %f574, %f796;
+ mul.rn.f32 %f580, %f579, %f574;
+ mul.rn.f32 %f581, %f580, %f573;
+ sub.f32 %f582, %f571, %f573;
+ neg.f32 %f583, %f573;
+ add.f32 %f584, %f582, %f582;
+ fma.rn.f32 %f585, %f583, %f571, %f584;
+ mul.rn.f32 %f586, %f559, %f585;
+ add.f32 %f587, %f581, %f573;
+ sub.f32 %f588, %f573, %f587;
+ add.f32 %f589, %f581, %f588;
+ add.f32 %f590, %f586, %f589;
+ add.f32 %f591, %f587, %f590;
+ sub.f32 %f592, %f587, %f591;
+ add.f32 %f593, %f590, %f592;
+ mul.rn.f32 %f595, %f570, %f797;
+ mul.rn.f32 %f597, %f570, %f798;
+ add.f32 %f598, %f595, %f591;
+ sub.f32 %f599, %f595, %f598;
+ add.f32 %f600, %f591, %f599;
+ add.f32 %f601, %f593, %f600;
+ add.f32 %f602, %f597, %f601;
+ add.f32 %f603, %f598, %f602;
+ sub.f32 %f604, %f598, %f603;
+ add.f32 %f605, %f602, %f604;
+ mul.rn.f32 %f607, %f793, %f603;
+ neg.f32 %f608, %f607;
+ fma.rn.f32 %f609, %f793, %f603, %f608;
+ fma.rn.f32 %f610, %f793, %f605, %f609;
+ fma.rn.f32 %f612, %f799, %f603, %f610;
+ add.rn.f32 %f613, %f607, %f612;
+ neg.f32 %f614, %f613;
+ add.rn.f32 %f615, %f607, %f614;
+ add.rn.f32 %f616, %f615, %f612;
+ mov.b32 %r246, %f613;
+ setp.eq.s32 %p78, %r246, 1118925336;
+ add.s32 %r247, %r246, -1;
+ mov.b32 %f617, %r247;
+ add.f32 %f618, %f616, 0f37000000;
+ selp.f32 %f619, %f617, %f613, %p78;
+ selp.f32 %f180, %f618, %f616, %p78;
+ mul.f32 %f620, %f619, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f621, %f620;
+ fma.rn.f32 %f623, %f621, %f800, %f619;
+ fma.rn.f32 %f625, %f621, %f801, %f623;
+ mul.f32 %f626, %f625, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f627, %f626;
+ add.f32 %f628, %f621, 0f00000000;
+ ex2.approx.f32 %f629, %f628;
+ mul.f32 %f630, %f627, %f629;
+ setp.lt.f32 %p79, %f619, 0fC2D20000;
+ selp.f32 %f631, 0f00000000, %f630, %p79;
+ setp.gt.f32 %p80, %f619, 0f42D20000;
+ selp.f32 %f894, 0f7F800000, %f631, %p80;
+ setp.eq.f32 %p81, %f894, 0f7F800000;
+ @%p81 bra BB0_81;
+
+ fma.rn.f32 %f894, %f894, %f180, %f894;
+
+BB0_81:
+ setp.lt.f32 %p82, %f151, 0f00000000;
+ and.pred %p3, %p82, %p51;
+ mov.b32 %r248, %f894;
+ xor.b32 %r249, %r248, -2147483648;
+ mov.b32 %f632, %r249;
+ selp.f32 %f896, %f632, %f894, %p3;
+ setp.eq.f32 %p84, %f151, 0f00000000;
+ @%p84 bra BB0_84;
+ bra.uni BB0_82;
+
+BB0_84:
+ add.f32 %f635, %f151, %f151;
+ selp.f32 %f896, %f635, 0f00000000, %p51;
+ bra.uni BB0_85;
+
+BB0_82:
+ setp.geu.f32 %p85, %f151, 0f00000000;
+ @%p85 bra BB0_85;
+
+ mov.f32 %f802, 0f3EE66666;
+ cvt.rzi.f32.f32 %f634, %f802;
+ setp.neu.f32 %p86, %f634, 0f3EE66666;
+ selp.f32 %f896, 0f7FFFFFFF, %f896, %p86;
+
+BB0_85:
+ abs.f32 %f810, %f151;
+ add.f32 %f636, %f810, 0f3EE66666;
+ mov.b32 %r250, %f636;
+ setp.lt.s32 %p88, %r250, 2139095040;
+ @%p88 bra BB0_90;
+
+ abs.f32 %f811, %f151;
+ setp.gtu.f32 %p89, %f811, 0f7F800000;
+ @%p89 bra BB0_89;
+ bra.uni BB0_87;
+
+BB0_89:
+ add.f32 %f896, %f151, 0f3EE66666;
+ bra.uni BB0_90;
+
+BB0_87:
+ abs.f32 %f812, %f151;
+ setp.neu.f32 %p90, %f812, 0f7F800000;
+ @%p90 bra BB0_90;
+
+ selp.f32 %f896, 0fFF800000, 0f7F800000, %p3;
+
+BB0_90:
+ mov.u32 %r341, 4;
+ setp.eq.f32 %p91, %f151, 0f3F800000;
+ selp.f32 %f637, 0f3F800000, %f896, %p91;
+ cvt.u64.u32 %rd66, %r5;
+ cvt.u64.u32 %rd65, %r4;
+ mov.u64 %rd69, image;
+ cvta.global.u64 %rd64, %rd69;
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd64, %r92, %r341, %rd65, %rd66, %rd25, %rd25);
+ // inline asm
+ cvt.sat.f32.f32 %f638, %f637;
+ mul.f32 %f639, %f638, 0f437FFD71;
+ cvt.rzi.u32.f32 %r253, %f639;
+ cvt.sat.f32.f32 %f640, %f178;
+ mul.f32 %f641, %f640, 0f437FFD71;
+ cvt.rzi.u32.f32 %r254, %f641;
+ cvt.sat.f32.f32 %f642, %f165;
+ mul.f32 %f643, %f642, 0f437FFD71;
+ cvt.rzi.u32.f32 %r255, %f643;
+ cvt.u16.u32 %rs14, %r253;
+ cvt.u16.u32 %rs15, %r255;
+ cvt.u16.u32 %rs16, %r254;
+ mov.u16 %rs17, 255;
+ st.v4.u8 [%rd63], {%rs14, %rs16, %rs15, %rs17};
+ ld.global.u32 %r382, [imageEnabled];
+
+BB0_91:
+ cvt.u64.u32 %rd16, %r4;
+ cvt.u64.u32 %rd17, %r5;
+ and.b32 %r256, %r382, 4;
+ setp.eq.s32 %p92, %r256, 0;
+ @%p92 bra BB0_95;
+
+ ld.global.u32 %r257, [additive];
+ setp.eq.s32 %p93, %r257, 0;
+ mov.f32 %f644, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs18, %f644;}
+
+ // inline asm
+ @%p93 bra BB0_94;
+
+ mov.u64 %rd82, image_HDR;
+ cvta.global.u64 %rd71, %rd82;
+ mov.u32 %r261, 8;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd71, %r92, %r261, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs25, %rs26, %rs27, %rs28}, [%rd70];
+ // inline asm
+ { cvt.f32.f16 %f645, %rs25;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f646, %rs26;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f647, %rs27;}
+
+ // inline asm
+ // inline asm
+ call (%rd76), _rt_buffer_get_64, (%rd71, %r92, %r261, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f648, %f149, %f645;
+ add.f32 %f649, %f150, %f646;
+ add.f32 %f650, %f151, %f647;
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f650;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f649;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f648;}
+
+ // inline asm
+ st.v4.u16 [%rd76], {%rs22, %rs23, %rs24, %rs18};
+ bra.uni BB0_95;
+
+BB0_94:
+ mov.u64 %rd89, image_HDR;
+ cvta.global.u64 %rd84, %rd89;
+ mov.u32 %r263, 8;
+ // inline asm
+ call (%rd83), _rt_buffer_get_64, (%rd84, %r92, %r263, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f151;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f150;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f149;}
+
+ // inline asm
+ st.v4.u16 [%rd83], {%rs29, %rs30, %rs31, %rs18};
+
+BB0_95:
+ ld.global.f32 %f655, [skyColor];
+ mul.f32 %f656, %f137, %f655;
+ ld.global.f32 %f657, [skyColor+4];
+ mul.f32 %f658, %f138, %f657;
+ ld.global.f32 %f659, [skyColor+8];
+ mul.f32 %f660, %f139, %f659;
+ mul.f32 %f191, %f140, %f655;
+ mul.f32 %f192, %f141, %f657;
+ mul.f32 %f193, %f142, %f659;
+ mul.f32 %f194, %f143, %f655;
+ mul.f32 %f195, %f144, %f657;
+ mul.f32 %f196, %f145, %f659;
+ mul.f32 %f197, %f146, %f655;
+ mul.f32 %f198, %f147, %f657;
+ mul.f32 %f199, %f148, %f659;
+ mul.f32 %f200, %f656, 0f3F000000;
+ mul.f32 %f201, %f658, 0f3F000000;
+ mul.f32 %f202, %f660, 0f3F000000;
+ ld.global.u32 %r264, [additive];
+ setp.eq.s32 %p94, %r264, 0;
+ mov.f32 %f654, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f654;}
+
+ // inline asm
+ @%p94 bra BB0_97;
+
+ mov.u64 %rd102, image_RNM0;
+ cvta.global.u64 %rd91, %rd102;
+ mov.u32 %r268, 8;
+ // inline asm
+ call (%rd90), _rt_buffer_get_64, (%rd91, %r92, %r268, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs39, %rs40, %rs41, %rs42}, [%rd90];
+ // inline asm
+ { cvt.f32.f16 %f661, %rs39;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f662, %rs40;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f663, %rs41;}
+
+ // inline asm
+ // inline asm
+ call (%rd96), _rt_buffer_get_64, (%rd91, %r92, %r268, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f664, %f200, %f661;
+ add.f32 %f665, %f201, %f662;
+ add.f32 %f666, %f202, %f663;
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f666;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f665;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f664;}
+
+ // inline asm
+ st.v4.u16 [%rd96], {%rs36, %rs37, %rs38, %rs32};
+ bra.uni BB0_98;
+
+BB0_97:
+ mov.u64 %rd109, image_RNM0;
+ cvta.global.u64 %rd104, %rd109;
+ mov.u32 %r270, 8;
+ // inline asm
+ call (%rd103), _rt_buffer_get_64, (%rd104, %r92, %r270, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f202;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f201;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f200;}
+
+ // inline asm
+ st.v4.u16 [%rd103], {%rs43, %rs44, %rs45, %rs32};
+
+BB0_98:
+ mov.f32 %f671, 0f34000000;
+ max.f32 %f672, %f200, %f671;
+ mul.f32 %f673, %f191, 0f3F000000;
+ div.rn.f32 %f674, %f673, %f672;
+ max.f32 %f675, %f201, %f671;
+ mul.f32 %f676, %f192, 0f3F000000;
+ div.rn.f32 %f677, %f676, %f675;
+ max.f32 %f678, %f202, %f671;
+ mul.f32 %f679, %f193, 0f3F000000;
+ div.rn.f32 %f680, %f679, %f678;
+ fma.rn.f32 %f203, %f674, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f204, %f677, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f205, %f680, 0f3F000000, 0f3F000000;
+ mul.f32 %f681, %f194, 0f3F000000;
+ div.rn.f32 %f682, %f681, %f672;
+ mul.f32 %f683, %f195, 0f3F000000;
+ div.rn.f32 %f684, %f683, %f675;
+ mul.f32 %f685, %f196, 0f3F000000;
+ div.rn.f32 %f686, %f685, %f678;
+ fma.rn.f32 %f206, %f682, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f207, %f684, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f208, %f686, 0f3F000000, 0f3F000000;
+ mul.f32 %f687, %f197, 0f3F000000;
+ div.rn.f32 %f688, %f687, %f672;
+ mul.f32 %f689, %f198, 0f3F000000;
+ div.rn.f32 %f690, %f689, %f675;
+ mul.f32 %f691, %f199, 0f3F000000;
+ div.rn.f32 %f692, %f691, %f678;
+ fma.rn.f32 %f209, %f688, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f210, %f690, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f211, %f692, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r271, [additive];
+ setp.eq.s32 %p95, %r271, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f654;}
+
+ // inline asm
+ @%p95 bra BB0_100;
+
+ mov.u64 %rd122, image_RNM1;
+ cvta.global.u64 %rd111, %rd122;
+ mov.u32 %r275, 8;
+ // inline asm
+ call (%rd110), _rt_buffer_get_64, (%rd111, %r92, %r275, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs53, %rs54, %rs55, %rs56}, [%rd110];
+ // inline asm
+ { cvt.f32.f16 %f693, %rs53;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f694, %rs54;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f695, %rs55;}
+
+ // inline asm
+ // inline asm
+ call (%rd116), _rt_buffer_get_64, (%rd111, %r92, %r275, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f696, %f203, %f693;
+ add.f32 %f697, %f204, %f694;
+ add.f32 %f698, %f205, %f695;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f698;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f697;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f696;}
+
+ // inline asm
+ st.v4.u16 [%rd116], {%rs50, %rs51, %rs52, %rs46};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd129, image_RNM1;
+ cvta.global.u64 %rd124, %rd129;
+ mov.u32 %r277, 8;
+ // inline asm
+ call (%rd123), _rt_buffer_get_64, (%rd124, %r92, %r277, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f205;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f204;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f203;}
+
+ // inline asm
+ st.v4.u16 [%rd123], {%rs57, %rs58, %rs59, %rs46};
+
+BB0_101:
+ ld.global.u32 %r278, [additive];
+ setp.eq.s32 %p96, %r278, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f654;}
+
+ // inline asm
+ @%p96 bra BB0_103;
+
+ mov.u64 %rd142, image_RNM2;
+ cvta.global.u64 %rd131, %rd142;
+ mov.u32 %r282, 8;
+ // inline asm
+ call (%rd130), _rt_buffer_get_64, (%rd131, %r92, %r282, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd130];
+ // inline asm
+ { cvt.f32.f16 %f703, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f704, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f705, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd136), _rt_buffer_get_64, (%rd131, %r92, %r282, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f706, %f206, %f703;
+ add.f32 %f707, %f207, %f704;
+ add.f32 %f708, %f208, %f705;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f708;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f707;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f706;}
+
+ // inline asm
+ st.v4.u16 [%rd136], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_104;
+
+BB0_103:
+ mov.u64 %rd149, image_RNM2;
+ cvta.global.u64 %rd144, %rd149;
+ mov.u32 %r284, 8;
+ // inline asm
+ call (%rd143), _rt_buffer_get_64, (%rd144, %r92, %r284, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f208;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f207;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f206;}
+
+ // inline asm
+ st.v4.u16 [%rd143], {%rs71, %rs72, %rs73, %rs60};
+
+BB0_104:
+ ld.global.u32 %r285, [additive];
+ setp.eq.s32 %p97, %r285, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f654;}
+
+ // inline asm
+ @%p97 bra BB0_106;
+
+ mov.u64 %rd162, image_RNM3;
+ cvta.global.u64 %rd151, %rd162;
+ mov.u32 %r289, 8;
+ // inline asm
+ call (%rd150), _rt_buffer_get_64, (%rd151, %r92, %r289, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs81, %rs82, %rs83, %rs84}, [%rd150];
+ // inline asm
+ { cvt.f32.f16 %f713, %rs81;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f714, %rs82;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f715, %rs83;}
+
+ // inline asm
+ // inline asm
+ call (%rd156), _rt_buffer_get_64, (%rd151, %r92, %r289, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f716, %f209, %f713;
+ add.f32 %f717, %f210, %f714;
+ add.f32 %f718, %f211, %f715;
+ // inline asm
+ { cvt.rn.f16.f32 %rs80, %f718;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs79, %f717;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f716;}
+
+ // inline asm
+ st.v4.u16 [%rd156], {%rs78, %rs79, %rs80, %rs74};
+ bra.uni BB0_125;
+
+BB0_106:
+ mov.u64 %rd169, image_RNM3;
+ cvta.global.u64 %rd164, %rd169;
+ mov.u32 %r291, 8;
+ // inline asm
+ call (%rd163), _rt_buffer_get_64, (%rd164, %r92, %r291, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f211;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f210;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f209;}
+
+ // inline asm
+ st.v4.u16 [%rd163], {%rs85, %rs86, %rs87, %rs74};
+
+BB0_125:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapProbeSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapProbeSH.ptx.meta
new file mode 100644
index 00000000..a9cd1def
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapProbeSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 12c45c7814259524db3a4c6698a42ccb
+timeCreated: 1551473474
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapRNM.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapRNM.ptx
new file mode 100644
index 00000000..a27a4b63
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapRNM.ptx
@@ -0,0 +1,2141 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 uvtangent[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 sky;
+.global .align 4 .b8 skyColor[12];
+.global .align 4 .u32 samples;
+.global .align 4 .u32 hemispherical;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3skyE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8skyColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13hemisphericalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3skyE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8skyColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename13hemisphericalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3skyE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8skyColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13hemisphericalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic3skyE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8skyColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13hemisphericalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3skyE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8skyColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13hemisphericalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<113>;
+ .reg .b16 %rs<153>;
+ .reg .f32 %f<995>;
+ .reg .b32 %r<406>;
+ .reg .b64 %rd<285>;
+
+
+ mov.u64 %rd284, __local_depot0;
+ cvta.local.u64 %SP, %rd284;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r99, %r100}, [pixelID];
+ cvt.u64.u32 %rd24, %r99;
+ cvt.u64.u32 %rd25, %r100;
+ mov.u64 %rd28, uvnormal;
+ cvta.global.u64 %rd23, %rd28;
+ mov.u32 %r97, 2;
+ mov.u32 %r98, 4;
+ mov.u64 %rd27, 0;
+ // inline asm
+ call (%rd22), _rt_buffer_get_64, (%rd23, %r97, %r98, %rd24, %rd25, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r2, [%rd22];
+ shr.u32 %r103, %r2, 16;
+ cvt.u16.u32 %rs1, %r103;
+ and.b16 %rs6, %rs1, 255;
+ cvt.u16.u32 %rs7, %r2;
+ or.b16 %rs8, %rs7, %rs6;
+ setp.eq.s16 %p4, %rs8, 0;
+ mov.f32 %f914, 0f00000000;
+ mov.f32 %f915, %f914;
+ mov.f32 %f916, %f914;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs9, [%rd22+1];
+ and.b16 %rs11, %rs7, 255;
+ cvt.rn.f32.u16 %f215, %rs11;
+ div.rn.f32 %f216, %f215, 0f437F0000;
+ fma.rn.f32 %f217, %f216, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f218, %rs9;
+ div.rn.f32 %f219, %f218, 0f437F0000;
+ fma.rn.f32 %f220, %f219, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f221, %rs6;
+ div.rn.f32 %f222, %f221, 0f437F0000;
+ fma.rn.f32 %f223, %f222, 0f40000000, 0fBF800000;
+ mul.f32 %f224, %f220, %f220;
+ fma.rn.f32 %f225, %f217, %f217, %f224;
+ fma.rn.f32 %f226, %f223, %f223, %f225;
+ sqrt.rn.f32 %f227, %f226;
+ rcp.rn.f32 %f228, %f227;
+ mul.f32 %f914, %f217, %f228;
+ mul.f32 %f915, %f220, %f228;
+ mul.f32 %f916, %f223, %f228;
+
+BB0_2:
+ ld.global.v2.u32 {%r104, %r105}, [pixelID];
+ ld.global.v2.u32 {%r107, %r108}, [tileInfo];
+ add.s32 %r3, %r104, %r107;
+ add.s32 %r4, %r105, %r108;
+ setp.eq.f32 %p5, %f915, 0f00000000;
+ setp.eq.f32 %p6, %f914, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f916, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_110;
+ bra.uni BB0_3;
+
+BB0_110:
+ ld.global.u32 %r405, [imageEnabled];
+ and.b32 %r308, %r405, 1;
+ setp.eq.b32 %p106, %r308, 1;
+ @!%p106 bra BB0_112;
+ bra.uni BB0_111;
+
+BB0_111:
+ cvt.u64.u32 %rd176, %r4;
+ cvt.u64.u32 %rd175, %r3;
+ mov.u64 %rd179, image;
+ cvta.global.u64 %rd174, %rd179;
+ mov.u64 %rd178, 0;
+ // inline asm
+ call (%rd173), _rt_buffer_get_64, (%rd174, %r97, %r98, %rd175, %rd176, %rd178, %rd178);
+ // inline asm
+ mov.u16 %rs100, 0;
+ st.v4.u8 [%rd173], {%rs100, %rs100, %rs100, %rs100};
+ ld.global.u32 %r405, [imageEnabled];
+
+BB0_112:
+ cvt.u64.u32 %rd20, %r3;
+ cvt.u64.u32 %rd21, %r4;
+ and.b32 %r311, %r405, 4;
+ setp.eq.s32 %p107, %r311, 0;
+ @%p107 bra BB0_116;
+
+ ld.global.u32 %r312, [additive];
+ setp.eq.s32 %p108, %r312, 0;
+ @%p108 bra BB0_115;
+
+ mov.u64 %rd192, image_HDR;
+ cvta.global.u64 %rd181, %rd192;
+ mov.u32 %r316, 8;
+ mov.u64 %rd191, 0;
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd181, %r97, %r316, %rd20, %rd21, %rd191, %rd191);
+ // inline asm
+ ld.v4.u16 {%rs107, %rs108, %rs109, %rs110}, [%rd180];
+ // inline asm
+ { cvt.f32.f16 %f824, %rs107;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f825, %rs108;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f826, %rs109;}
+
+ // inline asm
+ // inline asm
+ call (%rd186), _rt_buffer_get_64, (%rd181, %r97, %r316, %rd20, %rd21, %rd191, %rd191);
+ // inline asm
+ add.f32 %f827, %f824, 0f00000000;
+ add.f32 %f828, %f825, 0f00000000;
+ add.f32 %f829, %f826, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs106, %f829;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f828;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f827;}
+
+ // inline asm
+ mov.u16 %rs111, 0;
+ st.v4.u16 [%rd186], {%rs104, %rs105, %rs106, %rs111};
+ bra.uni BB0_116;
+
+BB0_3:
+ ld.global.v2.u32 {%r118, %r119}, [pixelID];
+ cvt.u64.u32 %rd31, %r118;
+ cvt.u64.u32 %rd32, %r119;
+ mov.u64 %rd47, uvpos;
+ cvta.global.u64 %rd30, %rd47;
+ mov.u32 %r113, 12;
+ // inline asm
+ call (%rd29), _rt_buffer_get_64, (%rd30, %r97, %r113, %rd31, %rd32, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f232, [%rd29+8];
+ ld.f32 %f233, [%rd29+4];
+ ld.f32 %f234, [%rd29];
+ mul.f32 %f235, %f234, 0f3456BF95;
+ mul.f32 %f236, %f233, 0f3456BF95;
+ mul.f32 %f237, %f232, 0f3456BF95;
+ abs.f32 %f238, %f914;
+ div.rn.f32 %f239, %f235, %f238;
+ abs.f32 %f240, %f915;
+ div.rn.f32 %f241, %f236, %f240;
+ abs.f32 %f242, %f916;
+ div.rn.f32 %f243, %f237, %f242;
+ abs.f32 %f244, %f239;
+ abs.f32 %f245, %f241;
+ abs.f32 %f246, %f243;
+ mov.f32 %f247, 0f38D1B717;
+ max.f32 %f248, %f244, %f247;
+ max.f32 %f249, %f245, %f247;
+ max.f32 %f250, %f246, %f247;
+ fma.rn.f32 %f7, %f914, %f248, %f234;
+ fma.rn.f32 %f8, %f915, %f249, %f233;
+ fma.rn.f32 %f9, %f916, %f250, %f232;
+ ld.global.u32 %r5, [hemispherical];
+ setp.gt.f32 %p10, %f238, %f242;
+ neg.f32 %f251, %f915;
+ selp.f32 %f252, %f251, 0f00000000, %p10;
+ neg.f32 %f253, %f916;
+ selp.f32 %f254, %f914, %f253, %p10;
+ selp.f32 %f255, 0f00000000, %f915, %p10;
+ mul.f32 %f256, %f254, %f254;
+ fma.rn.f32 %f257, %f252, %f252, %f256;
+ fma.rn.f32 %f258, %f255, %f255, %f257;
+ sqrt.rn.f32 %f259, %f258;
+ rcp.rn.f32 %f260, %f259;
+ mul.f32 %f10, %f252, %f260;
+ mul.f32 %f11, %f254, %f260;
+ mul.f32 %f12, %f255, %f260;
+ ld.global.v2.u32 {%r122, %r123}, [pixelID];
+ cvt.u64.u32 %rd37, %r122;
+ cvt.u64.u32 %rd38, %r123;
+ mov.u64 %rd48, rnd_seeds;
+ cvta.global.u64 %rd36, %rd48;
+ // inline asm
+ call (%rd35), _rt_buffer_get_64, (%rd36, %r97, %r98, %rd37, %rd38, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r383, [%rd35];
+ ld.global.v2.u32 {%r126, %r127}, [pixelID];
+ cvt.u64.u32 %rd43, %r126;
+ cvt.u64.u32 %rd44, %r127;
+ mov.u64 %rd49, uvtangent;
+ cvta.global.u64 %rd42, %rd49;
+ // inline asm
+ call (%rd41), _rt_buffer_get_64, (%rd42, %r97, %r98, %rd43, %rd44, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r7, [%rd41];
+ shr.u32 %r8, %r7, 16;
+ cvt.u16.u32 %rs13, %r8;
+ and.b16 %rs14, %rs13, 255;
+ cvt.u16.u32 %rs15, %r7;
+ or.b16 %rs16, %rs15, %rs14;
+ setp.eq.s16 %p11, %rs16, 0;
+ mov.f32 %f917, 0f00000000;
+ mov.f32 %f918, %f917;
+ mov.f32 %f919, %f917;
+ @%p11 bra BB0_5;
+
+ ld.u8 %rs17, [%rd41+1];
+ and.b16 %rs19, %rs15, 255;
+ cvt.rn.f32.u16 %f261, %rs19;
+ div.rn.f32 %f262, %f261, 0f437F0000;
+ fma.rn.f32 %f263, %f262, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f264, %rs17;
+ div.rn.f32 %f265, %f264, 0f437F0000;
+ fma.rn.f32 %f266, %f265, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f267, %rs14;
+ div.rn.f32 %f268, %f267, 0f437F0000;
+ fma.rn.f32 %f269, %f268, 0f40000000, 0fBF800000;
+ mul.f32 %f270, %f266, %f266;
+ fma.rn.f32 %f271, %f263, %f263, %f270;
+ fma.rn.f32 %f272, %f269, %f269, %f271;
+ sqrt.rn.f32 %f273, %f272;
+ rcp.rn.f32 %f274, %f273;
+ mul.f32 %f917, %f263, %f274;
+ mul.f32 %f918, %f266, %f274;
+ mul.f32 %f919, %f269, %f274;
+
+BB0_5:
+ mov.f32 %f920, 0f00000000;
+ mov.u32 %r377, 4;
+ mov.u64 %rd276, 0;
+ mov.u32 %r376, 2;
+ mul.f32 %f278, %f916, %f918;
+ mul.f32 %f279, %f915, %f919;
+ sub.f32 %f280, %f279, %f278;
+ mul.f32 %f281, %f914, %f919;
+ mul.f32 %f282, %f916, %f917;
+ sub.f32 %f283, %f282, %f281;
+ mul.f32 %f284, %f915, %f917;
+ mul.f32 %f285, %f914, %f918;
+ sub.f32 %f286, %f285, %f284;
+ setp.lt.u32 %p12, %r7, 16777216;
+ selp.f32 %f287, 0fBF800000, 0f3F800000, %p12;
+ mul.f32 %f288, %f280, %f287;
+ mul.f32 %f289, %f283, %f287;
+ mul.f32 %f290, %f286, %f287;
+ mul.f32 %f291, %f288, 0f00000000;
+ mul.f32 %f292, %f289, 0f00000000;
+ mul.f32 %f293, %f290, 0f00000000;
+ fma.rn.f32 %f294, %f917, 0f3F5105EC, %f291;
+ fma.rn.f32 %f295, %f918, 0f3F5105EC, %f292;
+ fma.rn.f32 %f296, %f919, 0f3F5105EC, %f293;
+ mul.f32 %f19, %f914, 0f3F13CD3A;
+ add.f32 %f20, %f19, %f294;
+ mul.f32 %f21, %f915, 0f3F13CD3A;
+ add.f32 %f22, %f21, %f295;
+ mul.f32 %f23, %f916, 0f3F13CD3A;
+ add.f32 %f24, %f23, %f296;
+ ld.global.v2.u32 {%r132, %r133}, [pixelID];
+ cvt.u64.u32 %rd52, %r132;
+ cvt.u64.u32 %rd53, %r133;
+ // inline asm
+ call (%rd50), _rt_buffer_get_64, (%rd42, %r376, %r377, %rd52, %rd53, %rd276, %rd276);
+ // inline asm
+ ld.u32 %r9, [%rd50];
+ shr.u32 %r10, %r9, 16;
+ cvt.u16.u32 %rs22, %r10;
+ and.b16 %rs23, %rs22, 255;
+ cvt.u16.u32 %rs24, %r9;
+ or.b16 %rs25, %rs24, %rs23;
+ setp.eq.s16 %p13, %rs25, 0;
+ mov.f32 %f921, %f920;
+ mov.f32 %f922, %f920;
+ @%p13 bra BB0_7;
+
+ ld.u8 %rs26, [%rd50+1];
+ and.b16 %rs28, %rs24, 255;
+ cvt.rn.f32.u16 %f297, %rs28;
+ div.rn.f32 %f298, %f297, 0f437F0000;
+ fma.rn.f32 %f299, %f298, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f300, %rs26;
+ div.rn.f32 %f301, %f300, 0f437F0000;
+ fma.rn.f32 %f302, %f301, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f303, %rs23;
+ div.rn.f32 %f304, %f303, 0f437F0000;
+ fma.rn.f32 %f305, %f304, 0f40000000, 0fBF800000;
+ mul.f32 %f306, %f302, %f302;
+ fma.rn.f32 %f307, %f299, %f299, %f306;
+ fma.rn.f32 %f308, %f305, %f305, %f307;
+ sqrt.rn.f32 %f309, %f308;
+ rcp.rn.f32 %f310, %f309;
+ mul.f32 %f920, %f299, %f310;
+ mul.f32 %f921, %f302, %f310;
+ mul.f32 %f922, %f305, %f310;
+
+BB0_7:
+ mul.f32 %f910, %f915, 0f3F13CD3A;
+ mul.f32 %f909, %f914, 0f3F13CD3A;
+ mov.u64 %rd279, uvtangent;
+ cvta.global.u64 %rd278, %rd279;
+ mov.f32 %f923, 0f00000000;
+ mov.u32 %r379, 4;
+ mov.u64 %rd277, 0;
+ mov.u32 %r378, 2;
+ mul.f32 %f314, %f916, %f921;
+ mul.f32 %f315, %f915, %f922;
+ sub.f32 %f316, %f315, %f314;
+ mul.f32 %f317, %f914, %f922;
+ mul.f32 %f318, %f916, %f920;
+ sub.f32 %f319, %f318, %f317;
+ mul.f32 %f320, %f915, %f920;
+ mul.f32 %f321, %f914, %f921;
+ sub.f32 %f322, %f321, %f320;
+ setp.lt.u32 %p14, %r9, 16777216;
+ selp.f32 %f323, 0fBF800000, 0f3F800000, %p14;
+ mul.f32 %f324, %f316, %f323;
+ mul.f32 %f325, %f319, %f323;
+ mul.f32 %f326, %f322, %f323;
+ mul.f32 %f327, %f324, 0f3F3504F3;
+ mul.f32 %f328, %f325, 0f3F3504F3;
+ mul.f32 %f329, %f326, 0f3F3504F3;
+ fma.rn.f32 %f330, %f920, 0fBED105EC, %f327;
+ fma.rn.f32 %f331, %f921, 0fBED105EC, %f328;
+ fma.rn.f32 %f332, %f922, 0fBED105EC, %f329;
+ add.f32 %f31, %f909, %f330;
+ add.f32 %f32, %f910, %f331;
+ add.f32 %f33, %f23, %f332;
+ ld.global.v2.u32 {%r138, %r139}, [pixelID];
+ cvt.u64.u32 %rd59, %r138;
+ cvt.u64.u32 %rd60, %r139;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd278, %r378, %r379, %rd59, %rd60, %rd277, %rd277);
+ // inline asm
+ ld.u32 %r11, [%rd57];
+ shr.u32 %r12, %r11, 16;
+ cvt.u16.u32 %rs31, %r12;
+ and.b16 %rs32, %rs31, 255;
+ cvt.u16.u32 %rs33, %r11;
+ or.b16 %rs34, %rs33, %rs32;
+ setp.eq.s16 %p15, %rs34, 0;
+ mov.f32 %f924, %f923;
+ mov.f32 %f925, %f923;
+ @%p15 bra BB0_9;
+
+ ld.u8 %rs35, [%rd57+1];
+ and.b16 %rs37, %rs33, 255;
+ cvt.rn.f32.u16 %f333, %rs37;
+ div.rn.f32 %f334, %f333, 0f437F0000;
+ fma.rn.f32 %f335, %f334, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f336, %rs35;
+ div.rn.f32 %f337, %f336, 0f437F0000;
+ fma.rn.f32 %f338, %f337, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f339, %rs32;
+ div.rn.f32 %f340, %f339, 0f437F0000;
+ fma.rn.f32 %f341, %f340, 0f40000000, 0fBF800000;
+ mul.f32 %f342, %f338, %f338;
+ fma.rn.f32 %f343, %f335, %f335, %f342;
+ fma.rn.f32 %f344, %f341, %f341, %f343;
+ sqrt.rn.f32 %f345, %f344;
+ rcp.rn.f32 %f346, %f345;
+ mul.f32 %f923, %f335, %f346;
+ mul.f32 %f924, %f338, %f346;
+ mul.f32 %f925, %f341, %f346;
+
+BB0_9:
+ mul.f32 %f913, %f916, 0f3F13CD3A;
+ mul.f32 %f912, %f915, 0f3F13CD3A;
+ mul.f32 %f911, %f914, 0f3F13CD3A;
+ mov.f32 %f973, 0f00000000;
+ mul.f32 %f359, %f916, %f924;
+ mul.f32 %f360, %f915, %f925;
+ sub.f32 %f361, %f360, %f359;
+ mul.f32 %f362, %f914, %f925;
+ mul.f32 %f363, %f916, %f923;
+ sub.f32 %f364, %f363, %f362;
+ mul.f32 %f365, %f915, %f923;
+ mul.f32 %f366, %f914, %f924;
+ sub.f32 %f367, %f366, %f365;
+ setp.lt.u32 %p16, %r11, 16777216;
+ selp.f32 %f368, 0fBF800000, 0f3F800000, %p16;
+ mul.f32 %f369, %f361, %f368;
+ mul.f32 %f370, %f364, %f368;
+ mul.f32 %f371, %f367, %f368;
+ mul.f32 %f372, %f369, 0fBF3504F3;
+ mul.f32 %f373, %f370, 0fBF3504F3;
+ mul.f32 %f374, %f371, 0fBF3504F3;
+ fma.rn.f32 %f375, %f923, 0fBED105EC, %f372;
+ fma.rn.f32 %f376, %f924, 0fBED105EC, %f373;
+ fma.rn.f32 %f377, %f925, 0fBED105EC, %f374;
+ add.f32 %f40, %f911, %f375;
+ add.f32 %f41, %f912, %f376;
+ add.f32 %f42, %f913, %f377;
+ setp.lt.s32 %p17, %r1, 1;
+ mov.f32 %f972, %f973;
+ mov.f32 %f971, %f973;
+ mov.f32 %f970, %f973;
+ mov.f32 %f969, %f973;
+ mov.f32 %f968, %f973;
+ mov.f32 %f967, %f973;
+ mov.f32 %f966, %f973;
+ mov.f32 %f965, %f973;
+ mov.f32 %f964, %f973;
+ mov.f32 %f963, %f973;
+ mov.f32 %f962, %f973;
+ @%p17 bra BB0_62;
+
+ cvt.rn.f32.s32 %f390, %r1;
+ rcp.rn.f32 %f43, %f390;
+ mul.f32 %f44, %f7, 0f3456BF95;
+ mul.f32 %f45, %f8, 0f3456BF95;
+ mul.f32 %f46, %f9, 0f3456BF95;
+ mul.f32 %f391, %f916, %f11;
+ mul.f32 %f392, %f915, %f12;
+ sub.f32 %f47, %f391, %f392;
+ mul.f32 %f393, %f914, %f12;
+ mul.f32 %f394, %f916, %f10;
+ sub.f32 %f48, %f393, %f394;
+ mul.f32 %f395, %f915, %f10;
+ mul.f32 %f396, %f914, %f11;
+ sub.f32 %f49, %f395, %f396;
+ mov.f32 %f973, 0f00000000;
+ mov.u32 %r142, 0;
+ abs.f32 %f477, %f45;
+ abs.f32 %f478, %f44;
+ max.f32 %f479, %f478, %f477;
+ abs.f32 %f480, %f46;
+ max.f32 %f481, %f479, %f480;
+ mov.u32 %r380, %r142;
+ mov.f32 %f972, %f973;
+ mov.f32 %f971, %f973;
+ mov.f32 %f970, %f973;
+ mov.f32 %f969, %f973;
+ mov.f32 %f968, %f973;
+ mov.f32 %f967, %f973;
+ mov.f32 %f966, %f973;
+ mov.f32 %f965, %f973;
+ mov.f32 %f964, %f973;
+ mov.f32 %f963, %f973;
+ mov.f32 %f962, %f973;
+
+BB0_11:
+ mov.u32 %r382, %r142;
+
+BB0_12:
+ mov.u32 %r16, %r383;
+ cvt.rn.f32.s32 %f860, %r380;
+ mad.lo.s32 %r144, %r16, 1664525, 1013904223;
+ and.b32 %r145, %r144, 16777215;
+ cvt.rn.f32.u32 %f397, %r145;
+ fma.rn.f32 %f398, %f397, 0f33800000, %f860;
+ mul.f32 %f75, %f43, %f398;
+ mad.lo.s32 %r17, %r144, 1664525, 1013904223;
+ and.b32 %r146, %r17, 16777215;
+ cvt.rn.f32.u32 %f399, %r146;
+ cvt.rn.f32.s32 %f400, %r382;
+ fma.rn.f32 %f401, %f399, 0f33800000, %f400;
+ mul.f32 %f402, %f43, %f401;
+ mul.f32 %f403, %f75, %f75;
+ mov.f32 %f404, 0f3F800000;
+ sub.f32 %f405, %f404, %f403;
+ mov.f32 %f406, 0f00000000;
+ max.f32 %f407, %f406, %f405;
+ sqrt.rn.f32 %f76, %f407;
+ mul.f32 %f956, %f402, 0f40C90FDB;
+ abs.f32 %f78, %f956;
+ setp.neu.f32 %p18, %f78, 0f7F800000;
+ mov.f32 %f950, %f956;
+ @%p18 bra BB0_14;
+
+ mov.f32 %f861, 0f00000000;
+ mul.rn.f32 %f950, %f956, %f861;
+
+BB0_14:
+ mul.f32 %f409, %f950, 0f3F22F983;
+ cvt.rni.s32.f32 %r393, %f409;
+ cvt.rn.f32.s32 %f410, %r393;
+ neg.f32 %f411, %f410;
+ mov.f32 %f412, 0f3FC90FDA;
+ fma.rn.f32 %f413, %f411, %f412, %f950;
+ mov.f32 %f414, 0f33A22168;
+ fma.rn.f32 %f415, %f411, %f414, %f413;
+ mov.f32 %f416, 0f27C234C5;
+ fma.rn.f32 %f951, %f411, %f416, %f415;
+ abs.f32 %f417, %f950;
+ setp.leu.f32 %p19, %f417, 0f47CE4780;
+ @%p19 bra BB0_25;
+
+ add.u64 %rd65, %SP, 12;
+ cvta.to.local.u64 %rd280, %rd65;
+ mov.u32 %r384, 0;
+ mov.u64 %rd281, 0;
+ mov.u32 %r385, %r384;
+
+BB0_16:
+ .pragma "nounroll";
+ mov.b32 %r342, %f950;
+ shl.b32 %r341, %r342, 8;
+ or.b32 %r340, %r341, -2147483648;
+ add.u64 %rd261, %SP, 12;
+ cvta.to.local.u64 %rd260, %rd261;
+ shl.b64 %rd66, %rd281, 2;
+ mov.u64 %rd67, __cudart_i2opi_f;
+ add.s64 %rd68, %rd67, %rd66;
+ ld.const.u32 %r152, [%rd68];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r150, %r152, %r340, %r385;
+ madc.hi.u32 %r385, %r152, %r340, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd280], %r150;
+ add.s32 %r384, %r384, 1;
+ cvt.s64.s32 %rd281, %r384;
+ mul.wide.s32 %rd71, %r384, 4;
+ add.s64 %rd280, %rd260, %rd71;
+ setp.ne.s32 %p20, %r384, 6;
+ @%p20 bra BB0_16;
+
+ mov.b32 %r344, %f950;
+ shr.u32 %r343, %r344, 23;
+ add.u64 %rd262, %SP, 12;
+ and.b32 %r155, %r343, 255;
+ add.s32 %r156, %r155, -128;
+ shr.u32 %r157, %r156, 5;
+ cvta.to.local.u64 %rd73, %rd262;
+ st.local.u32 [%rd73+24], %r385;
+ mov.u32 %r158, 6;
+ sub.s32 %r159, %r158, %r157;
+ mul.wide.s32 %rd74, %r159, 4;
+ add.s64 %rd10, %rd73, %rd74;
+ ld.local.u32 %r386, [%rd10];
+ ld.local.u32 %r387, [%rd10+-4];
+ and.b32 %r29, %r343, 31;
+ setp.eq.s32 %p21, %r29, 0;
+ @%p21 bra BB0_19;
+
+ mov.u32 %r160, 32;
+ sub.s32 %r161, %r160, %r29;
+ shr.u32 %r162, %r387, %r161;
+ shl.b32 %r163, %r386, %r29;
+ add.s32 %r386, %r162, %r163;
+ ld.local.u32 %r164, [%rd10+-8];
+ shr.u32 %r165, %r164, %r161;
+ shl.b32 %r166, %r387, %r29;
+ add.s32 %r387, %r165, %r166;
+
+BB0_19:
+ mov.b32 %r352, %f950;
+ and.b32 %r389, %r352, -2147483648;
+ shr.u32 %r167, %r387, 30;
+ shl.b32 %r168, %r386, 2;
+ add.s32 %r388, %r167, %r168;
+ shl.b32 %r35, %r387, 2;
+ shr.u32 %r169, %r388, 31;
+ shr.u32 %r170, %r386, 30;
+ add.s32 %r36, %r169, %r170;
+ setp.eq.s32 %p22, %r169, 0;
+ @%p22 bra BB0_20;
+ bra.uni BB0_21;
+
+BB0_20:
+ mov.u32 %r390, %r35;
+ bra.uni BB0_22;
+
+BB0_21:
+ mov.b32 %r354, %f950;
+ and.b32 %r353, %r354, -2147483648;
+ not.b32 %r171, %r388;
+ neg.s32 %r390, %r35;
+ setp.eq.s32 %p23, %r35, 0;
+ selp.u32 %r172, 1, 0, %p23;
+ add.s32 %r388, %r172, %r171;
+ xor.b32 %r389, %r353, -2147483648;
+
+BB0_22:
+ mov.b32 %r356, %f950;
+ and.b32 %r355, %r356, -2147483648;
+ clz.b32 %r392, %r388;
+ setp.eq.s32 %p24, %r392, 0;
+ shl.b32 %r173, %r388, %r392;
+ mov.u32 %r174, 32;
+ sub.s32 %r175, %r174, %r392;
+ shr.u32 %r176, %r390, %r175;
+ add.s32 %r177, %r176, %r173;
+ selp.b32 %r44, %r388, %r177, %p24;
+ mov.u32 %r178, -921707870;
+ mul.hi.u32 %r391, %r44, %r178;
+ setp.eq.s32 %p25, %r355, 0;
+ neg.s32 %r179, %r36;
+ selp.b32 %r393, %r36, %r179, %p25;
+ setp.lt.s32 %p26, %r391, 1;
+ @%p26 bra BB0_24;
+
+ mul.lo.s32 %r180, %r44, -921707870;
+ shr.u32 %r181, %r180, 31;
+ shl.b32 %r182, %r391, 1;
+ add.s32 %r391, %r181, %r182;
+ add.s32 %r392, %r392, 1;
+
+BB0_24:
+ mov.u32 %r183, 126;
+ sub.s32 %r184, %r183, %r392;
+ shl.b32 %r185, %r184, 23;
+ add.s32 %r186, %r391, 1;
+ shr.u32 %r187, %r186, 7;
+ add.s32 %r188, %r187, 1;
+ shr.u32 %r189, %r188, 1;
+ add.s32 %r190, %r189, %r185;
+ or.b32 %r191, %r190, %r389;
+ mov.b32 %f951, %r191;
+
+BB0_25:
+ add.s32 %r52, %r393, 1;
+ and.b32 %r53, %r52, 1;
+ setp.eq.s32 %p27, %r53, 0;
+ @%p27 bra BB0_27;
+ bra.uni BB0_26;
+
+BB0_27:
+ mul.rn.f32 %f869, %f951, %f951;
+ mov.f32 %f420, 0f3C08839E;
+ mov.f32 %f421, 0fB94CA1F9;
+ fma.rn.f32 %f952, %f421, %f869, %f420;
+ bra.uni BB0_28;
+
+BB0_26:
+ mul.rn.f32 %f865, %f951, %f951;
+ mov.f32 %f418, 0fBAB6061A;
+ mov.f32 %f419, 0f37CCF5CE;
+ fma.rn.f32 %f952, %f419, %f865, %f418;
+
+BB0_28:
+ @%p27 bra BB0_30;
+ bra.uni BB0_29;
+
+BB0_30:
+ mul.rn.f32 %f868, %f951, %f951;
+ mov.f32 %f864, 0f00000000;
+ mov.f32 %f425, 0fBE2AAAA3;
+ fma.rn.f32 %f426, %f952, %f868, %f425;
+ fma.rn.f32 %f953, %f426, %f868, %f864;
+ bra.uni BB0_31;
+
+BB0_29:
+ mul.rn.f32 %f866, %f951, %f951;
+ mov.f32 %f422, 0f3D2AAAA5;
+ fma.rn.f32 %f423, %f952, %f866, %f422;
+ mov.f32 %f424, 0fBF000000;
+ fma.rn.f32 %f953, %f423, %f866, %f424;
+
+BB0_31:
+ fma.rn.f32 %f954, %f953, %f951, %f951;
+ @%p27 bra BB0_33;
+
+ mul.rn.f32 %f867, %f951, %f951;
+ mov.f32 %f852, 0f3F800000;
+ fma.rn.f32 %f954, %f953, %f867, %f852;
+
+BB0_33:
+ add.s32 %r366, %r393, 1;
+ and.b32 %r192, %r366, 2;
+ setp.eq.s32 %p30, %r192, 0;
+ @%p30 bra BB0_35;
+
+ mov.f32 %f853, 0f00000000;
+ mov.f32 %f430, 0fBF800000;
+ fma.rn.f32 %f954, %f954, %f430, %f853;
+
+BB0_35:
+ abs.f32 %f854, %f956;
+ setp.neu.f32 %p112, %f854, 0f7F800000;
+ @%p112 bra BB0_37;
+
+ mov.f32 %f863, 0f00000000;
+ mul.rn.f32 %f956, %f956, %f863;
+
+BB0_37:
+ mov.f32 %f857, 0f27C234C5;
+ mov.f32 %f856, 0f33A22168;
+ mov.f32 %f855, 0f3FC90FDA;
+ mul.f32 %f432, %f956, 0f3F22F983;
+ cvt.rni.s32.f32 %r403, %f432;
+ cvt.rn.f32.s32 %f433, %r403;
+ neg.f32 %f434, %f433;
+ fma.rn.f32 %f436, %f434, %f855, %f956;
+ fma.rn.f32 %f438, %f434, %f856, %f436;
+ fma.rn.f32 %f957, %f434, %f857, %f438;
+ abs.f32 %f440, %f956;
+ setp.leu.f32 %p32, %f440, 0f47CE4780;
+ @%p32 bra BB0_48;
+
+ mov.u64 %rd283, 0;
+ add.u64 %rd76, %SP, 12;
+ cvta.to.local.u64 %rd282, %rd76;
+ mov.b32 %r55, %f956;
+ shl.b32 %r195, %r55, 8;
+ or.b32 %r57, %r195, -2147483648;
+ mov.u32 %r394, 0;
+ mov.u32 %r395, %r394;
+
+BB0_39:
+ .pragma "nounroll";
+ add.u64 %rd264, %SP, 12;
+ cvta.to.local.u64 %rd263, %rd264;
+ shl.b64 %rd77, %rd283, 2;
+ mov.u64 %rd78, __cudart_i2opi_f;
+ add.s64 %rd79, %rd78, %rd77;
+ ld.const.u32 %r198, [%rd79];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r196, %r198, %r57, %r395;
+ madc.hi.u32 %r395, %r198, %r57, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd282], %r196;
+ add.s32 %r394, %r394, 1;
+ cvt.s64.s32 %rd283, %r394;
+ mul.wide.s32 %rd80, %r394, 4;
+ add.s64 %rd282, %rd263, %rd80;
+ setp.ne.s32 %p33, %r394, 6;
+ @%p33 bra BB0_39;
+
+ mov.b32 %r368, %f956;
+ shr.u32 %r367, %r368, 23;
+ add.u64 %rd265, %SP, 12;
+ and.b32 %r201, %r367, 255;
+ add.s32 %r202, %r201, -128;
+ shr.u32 %r203, %r202, 5;
+ cvta.to.local.u64 %rd82, %rd265;
+ st.local.u32 [%rd82+24], %r395;
+ mov.u32 %r204, 6;
+ sub.s32 %r205, %r204, %r203;
+ mul.wide.s32 %rd83, %r205, 4;
+ add.s64 %rd17, %rd82, %rd83;
+ ld.local.u32 %r396, [%rd17];
+ ld.local.u32 %r397, [%rd17+-4];
+ and.b32 %r65, %r367, 31;
+ setp.eq.s32 %p34, %r65, 0;
+ @%p34 bra BB0_42;
+
+ mov.u32 %r206, 32;
+ sub.s32 %r207, %r206, %r65;
+ shr.u32 %r208, %r397, %r207;
+ shl.b32 %r209, %r396, %r65;
+ add.s32 %r396, %r208, %r209;
+ ld.local.u32 %r210, [%rd17+-8];
+ shr.u32 %r211, %r210, %r207;
+ shl.b32 %r212, %r397, %r65;
+ add.s32 %r397, %r211, %r212;
+
+BB0_42:
+ mov.b32 %r371, %f956;
+ and.b32 %r399, %r371, -2147483648;
+ shr.u32 %r213, %r397, 30;
+ shl.b32 %r214, %r396, 2;
+ add.s32 %r398, %r213, %r214;
+ shl.b32 %r71, %r397, 2;
+ shr.u32 %r215, %r398, 31;
+ shr.u32 %r216, %r396, 30;
+ add.s32 %r72, %r215, %r216;
+ setp.eq.s32 %p35, %r215, 0;
+ @%p35 bra BB0_43;
+ bra.uni BB0_44;
+
+BB0_43:
+ mov.u32 %r400, %r71;
+ bra.uni BB0_45;
+
+BB0_44:
+ mov.b32 %r373, %f956;
+ and.b32 %r372, %r373, -2147483648;
+ not.b32 %r217, %r398;
+ neg.s32 %r400, %r71;
+ setp.eq.s32 %p36, %r71, 0;
+ selp.u32 %r218, 1, 0, %p36;
+ add.s32 %r398, %r218, %r217;
+ xor.b32 %r399, %r372, -2147483648;
+
+BB0_45:
+ mov.b32 %r375, %f956;
+ and.b32 %r374, %r375, -2147483648;
+ clz.b32 %r402, %r398;
+ setp.eq.s32 %p37, %r402, 0;
+ shl.b32 %r219, %r398, %r402;
+ mov.u32 %r220, 32;
+ sub.s32 %r221, %r220, %r402;
+ shr.u32 %r222, %r400, %r221;
+ add.s32 %r223, %r222, %r219;
+ selp.b32 %r80, %r398, %r223, %p37;
+ mov.u32 %r224, -921707870;
+ mul.hi.u32 %r401, %r80, %r224;
+ setp.eq.s32 %p38, %r374, 0;
+ neg.s32 %r225, %r72;
+ selp.b32 %r403, %r72, %r225, %p38;
+ setp.lt.s32 %p39, %r401, 1;
+ @%p39 bra BB0_47;
+
+ mul.lo.s32 %r226, %r80, -921707870;
+ shr.u32 %r227, %r226, 31;
+ shl.b32 %r228, %r401, 1;
+ add.s32 %r401, %r227, %r228;
+ add.s32 %r402, %r402, 1;
+
+BB0_47:
+ mov.u32 %r229, 126;
+ sub.s32 %r230, %r229, %r402;
+ shl.b32 %r231, %r230, 23;
+ add.s32 %r232, %r401, 1;
+ shr.u32 %r233, %r232, 7;
+ add.s32 %r234, %r233, 1;
+ shr.u32 %r235, %r234, 1;
+ add.s32 %r236, %r235, %r231;
+ or.b32 %r237, %r236, %r399;
+ mov.b32 %f957, %r237;
+
+BB0_48:
+ and.b32 %r88, %r403, 1;
+ setp.eq.s32 %p40, %r88, 0;
+ @%p40 bra BB0_50;
+ bra.uni BB0_49;
+
+BB0_50:
+ mul.rn.f32 %f874, %f957, %f957;
+ mov.f32 %f443, 0f3C08839E;
+ mov.f32 %f444, 0fB94CA1F9;
+ fma.rn.f32 %f958, %f444, %f874, %f443;
+ bra.uni BB0_51;
+
+BB0_49:
+ mul.rn.f32 %f870, %f957, %f957;
+ mov.f32 %f441, 0fBAB6061A;
+ mov.f32 %f442, 0f37CCF5CE;
+ fma.rn.f32 %f958, %f442, %f870, %f441;
+
+BB0_51:
+ @%p40 bra BB0_53;
+ bra.uni BB0_52;
+
+BB0_53:
+ mul.rn.f32 %f873, %f957, %f957;
+ mov.f32 %f862, 0f00000000;
+ mov.f32 %f448, 0fBE2AAAA3;
+ fma.rn.f32 %f449, %f958, %f873, %f448;
+ fma.rn.f32 %f959, %f449, %f873, %f862;
+ bra.uni BB0_54;
+
+BB0_52:
+ mul.rn.f32 %f871, %f957, %f957;
+ mov.f32 %f445, 0f3D2AAAA5;
+ fma.rn.f32 %f446, %f958, %f871, %f445;
+ mov.f32 %f447, 0fBF000000;
+ fma.rn.f32 %f959, %f446, %f871, %f447;
+
+BB0_54:
+ fma.rn.f32 %f960, %f959, %f957, %f957;
+ @%p40 bra BB0_56;
+
+ mul.rn.f32 %f872, %f957, %f957;
+ mov.f32 %f858, 0f3F800000;
+ fma.rn.f32 %f960, %f959, %f872, %f858;
+
+BB0_56:
+ and.b32 %r238, %r403, 2;
+ setp.eq.s32 %p43, %r238, 0;
+ @%p43 bra BB0_58;
+
+ mov.f32 %f859, 0f00000000;
+ mov.f32 %f453, 0fBF800000;
+ fma.rn.f32 %f960, %f960, %f453, %f859;
+
+BB0_58:
+ mul.f32 %f454, %f76, %f954;
+ mul.f32 %f455, %f76, %f960;
+ mul.f32 %f456, %f10, %f455;
+ mul.f32 %f457, %f11, %f455;
+ mul.f32 %f458, %f12, %f455;
+ fma.rn.f32 %f459, %f47, %f454, %f456;
+ fma.rn.f32 %f460, %f48, %f454, %f457;
+ fma.rn.f32 %f461, %f49, %f454, %f458;
+ fma.rn.f32 %f113, %f914, %f75, %f459;
+ fma.rn.f32 %f114, %f915, %f75, %f460;
+ fma.rn.f32 %f115, %f916, %f75, %f461;
+ setp.gt.f32 %p44, %f114, 0f00000000;
+ setp.eq.s32 %p45, %r5, 0;
+ or.pred %p46, %p45, %p44;
+ @!%p46 bra BB0_60;
+ bra.uni BB0_59;
+
+BB0_59:
+ add.u64 %rd84, %SP, 0;
+ cvta.to.local.u64 %rd85, %rd84;
+ max.f32 %f475, %f481, %f247;
+ ld.global.u32 %r239, [sky];
+ neg.f32 %f468, %f113;
+ neg.f32 %f467, %f114;
+ neg.f32 %f466, %f115;
+ mov.u32 %r240, 6;
+ mov.u32 %r241, 0;
+ // inline asm
+ call (%f462, %f463, %f464, %f465), _rt_texture_get_base_id, (%r239, %r240, %f466, %f467, %f468, %r241);
+ // inline asm
+ st.local.f32 [%rd85], %f462;
+ st.local.f32 [%rd85+4], %f463;
+ st.local.f32 [%rd85+8], %f464;
+ ld.global.u32 %r242, [root];
+ mov.u32 %r243, 1;
+ mov.f32 %f476, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r242, %f7, %f8, %f9, %f113, %f114, %f115, %r243, %f475, %f476, %rd84, %r113);
+ // inline asm
+ mul.f32 %f483, %f22, %f114;
+ fma.rn.f32 %f484, %f20, %f113, %f483;
+ fma.rn.f32 %f485, %f24, %f115, %f484;
+ cvt.sat.f32.f32 %f486, %f485;
+ ld.local.f32 %f487, [%rd85];
+ ld.local.f32 %f488, [%rd85+4];
+ ld.local.f32 %f489, [%rd85+8];
+ fma.rn.f32 %f968, %f486, %f487, %f968;
+ fma.rn.f32 %f969, %f486, %f488, %f969;
+ fma.rn.f32 %f970, %f486, %f489, %f970;
+ mul.f32 %f490, %f32, %f114;
+ fma.rn.f32 %f491, %f31, %f113, %f490;
+ fma.rn.f32 %f492, %f33, %f115, %f491;
+ cvt.sat.f32.f32 %f493, %f492;
+ fma.rn.f32 %f965, %f493, %f487, %f965;
+ fma.rn.f32 %f966, %f493, %f488, %f966;
+ fma.rn.f32 %f967, %f493, %f489, %f967;
+ mul.f32 %f494, %f41, %f114;
+ fma.rn.f32 %f495, %f40, %f113, %f494;
+ fma.rn.f32 %f496, %f42, %f115, %f495;
+ cvt.sat.f32.f32 %f497, %f496;
+ fma.rn.f32 %f962, %f497, %f487, %f962;
+ fma.rn.f32 %f963, %f497, %f488, %f963;
+ fma.rn.f32 %f964, %f497, %f489, %f964;
+ mul.f32 %f498, %f915, %f114;
+ fma.rn.f32 %f499, %f914, %f113, %f498;
+ fma.rn.f32 %f500, %f916, %f115, %f499;
+ cvt.sat.f32.f32 %f501, %f500;
+ fma.rn.f32 %f971, %f501, %f487, %f971;
+ fma.rn.f32 %f972, %f501, %f488, %f972;
+ fma.rn.f32 %f973, %f501, %f489, %f973;
+
+BB0_60:
+ mad.lo.s32 %r347, %r16, 1664525, 1013904223;
+ mad.lo.s32 %r383, %r347, 1664525, 1013904223;
+ add.s32 %r382, %r382, 1;
+ setp.lt.s32 %p47, %r382, %r1;
+ @%p47 bra BB0_12;
+
+ mad.lo.s32 %r349, %r16, 1664525, 1013904223;
+ mad.lo.s32 %r383, %r349, 1664525, 1013904223;
+ add.s32 %r380, %r380, 1;
+ setp.lt.s32 %p48, %r380, %r1;
+ @%p48 bra BB0_11;
+
+BB0_62:
+ mul.lo.s32 %r245, %r1, %r1;
+ cvt.rn.f32.s32 %f502, %r245;
+ rcp.rn.f32 %f503, %f502;
+ mul.f32 %f504, %f971, %f503;
+ mul.f32 %f505, %f972, %f503;
+ mul.f32 %f506, %f973, %f503;
+ mul.f32 %f152, %f968, %f503;
+ mul.f32 %f153, %f969, %f503;
+ mul.f32 %f154, %f970, %f503;
+ mul.f32 %f155, %f965, %f503;
+ mul.f32 %f156, %f966, %f503;
+ mul.f32 %f157, %f967, %f503;
+ mul.f32 %f158, %f962, %f503;
+ mul.f32 %f159, %f963, %f503;
+ mul.f32 %f160, %f964, %f503;
+ fma.rn.f32 %f507, %f971, %f503, %f504;
+ fma.rn.f32 %f508, %f972, %f503, %f505;
+ fma.rn.f32 %f509, %f973, %f503, %f506;
+ ld.global.f32 %f510, [skyColor];
+ mul.f32 %f161, %f510, %f507;
+ ld.global.f32 %f511, [skyColor+4];
+ mul.f32 %f162, %f508, %f511;
+ ld.global.f32 %f512, [skyColor+8];
+ mul.f32 %f163, %f509, %f512;
+ ld.global.u32 %r404, [imageEnabled];
+ and.b32 %r246, %r404, 1;
+ setp.eq.b32 %p49, %r246, 1;
+ @!%p49 bra BB0_97;
+ bra.uni BB0_63;
+
+BB0_63:
+ abs.f32 %f165, %f161;
+ setp.lt.f32 %p50, %f165, 0f00800000;
+ mul.f32 %f518, %f165, 0f4B800000;
+ selp.f32 %f519, 0fC3170000, 0fC2FE0000, %p50;
+ selp.f32 %f520, %f518, %f165, %p50;
+ mov.b32 %r247, %f520;
+ and.b32 %r248, %r247, 8388607;
+ or.b32 %r249, %r248, 1065353216;
+ mov.b32 %f521, %r249;
+ shr.u32 %r250, %r247, 23;
+ cvt.rn.f32.u32 %f522, %r250;
+ add.f32 %f523, %f519, %f522;
+ setp.gt.f32 %p51, %f521, 0f3FB504F3;
+ mul.f32 %f524, %f521, 0f3F000000;
+ add.f32 %f525, %f523, 0f3F800000;
+ selp.f32 %f526, %f524, %f521, %p51;
+ selp.f32 %f527, %f525, %f523, %p51;
+ add.f32 %f528, %f526, 0fBF800000;
+ add.f32 %f514, %f526, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f513,%f514;
+ // inline asm
+ add.f32 %f529, %f528, %f528;
+ mul.f32 %f530, %f513, %f529;
+ mul.f32 %f531, %f530, %f530;
+ mov.f32 %f532, 0f3C4CAF63;
+ mov.f32 %f533, 0f3B18F0FE;
+ fma.rn.f32 %f534, %f533, %f531, %f532;
+ mov.f32 %f535, 0f3DAAAABD;
+ fma.rn.f32 %f536, %f534, %f531, %f535;
+ mul.rn.f32 %f537, %f536, %f531;
+ mul.rn.f32 %f538, %f537, %f530;
+ sub.f32 %f539, %f528, %f530;
+ neg.f32 %f540, %f530;
+ add.f32 %f541, %f539, %f539;
+ fma.rn.f32 %f542, %f540, %f528, %f541;
+ mul.rn.f32 %f543, %f513, %f542;
+ add.f32 %f544, %f538, %f530;
+ sub.f32 %f545, %f530, %f544;
+ add.f32 %f546, %f538, %f545;
+ add.f32 %f547, %f543, %f546;
+ add.f32 %f548, %f544, %f547;
+ sub.f32 %f549, %f544, %f548;
+ add.f32 %f550, %f547, %f549;
+ mov.f32 %f551, 0f3F317200;
+ mul.rn.f32 %f552, %f527, %f551;
+ mov.f32 %f553, 0f35BFBE8E;
+ mul.rn.f32 %f554, %f527, %f553;
+ add.f32 %f555, %f552, %f548;
+ sub.f32 %f556, %f552, %f555;
+ add.f32 %f557, %f548, %f556;
+ add.f32 %f558, %f550, %f557;
+ add.f32 %f559, %f554, %f558;
+ add.f32 %f560, %f555, %f559;
+ sub.f32 %f561, %f555, %f560;
+ add.f32 %f562, %f559, %f561;
+ mov.f32 %f563, 0f3EE66666;
+ mul.rn.f32 %f564, %f563, %f560;
+ neg.f32 %f565, %f564;
+ fma.rn.f32 %f566, %f563, %f560, %f565;
+ fma.rn.f32 %f567, %f563, %f562, %f566;
+ mov.f32 %f568, 0f00000000;
+ fma.rn.f32 %f569, %f568, %f560, %f567;
+ add.rn.f32 %f570, %f564, %f569;
+ neg.f32 %f571, %f570;
+ add.rn.f32 %f572, %f564, %f571;
+ add.rn.f32 %f573, %f572, %f569;
+ mov.b32 %r251, %f570;
+ setp.eq.s32 %p52, %r251, 1118925336;
+ add.s32 %r252, %r251, -1;
+ mov.b32 %f574, %r252;
+ add.f32 %f575, %f573, 0f37000000;
+ selp.f32 %f576, %f574, %f570, %p52;
+ selp.f32 %f166, %f575, %f573, %p52;
+ mul.f32 %f577, %f576, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f578, %f577;
+ mov.f32 %f579, 0fBF317200;
+ fma.rn.f32 %f580, %f578, %f579, %f576;
+ mov.f32 %f581, 0fB5BFBE8E;
+ fma.rn.f32 %f582, %f578, %f581, %f580;
+ mul.f32 %f583, %f582, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f584, %f583;
+ add.f32 %f585, %f578, 0f00000000;
+ ex2.approx.f32 %f586, %f585;
+ mul.f32 %f587, %f584, %f586;
+ setp.lt.f32 %p53, %f576, 0fC2D20000;
+ selp.f32 %f588, 0f00000000, %f587, %p53;
+ setp.gt.f32 %p54, %f576, 0f42D20000;
+ selp.f32 %f986, 0f7F800000, %f588, %p54;
+ setp.eq.f32 %p55, %f986, 0f7F800000;
+ @%p55 bra BB0_65;
+
+ fma.rn.f32 %f986, %f986, %f166, %f986;
+
+BB0_65:
+ mov.f32 %f878, 0f3E666666;
+ cvt.rzi.f32.f32 %f877, %f878;
+ fma.rn.f32 %f876, %f877, 0fC0000000, 0f3EE66666;
+ abs.f32 %f875, %f876;
+ setp.lt.f32 %p56, %f161, 0f00000000;
+ setp.eq.f32 %p57, %f875, 0f3F800000;
+ and.pred %p1, %p56, %p57;
+ mov.b32 %r253, %f986;
+ xor.b32 %r254, %r253, -2147483648;
+ mov.b32 %f589, %r254;
+ selp.f32 %f988, %f589, %f986, %p1;
+ setp.eq.f32 %p58, %f161, 0f00000000;
+ @%p58 bra BB0_68;
+ bra.uni BB0_66;
+
+BB0_68:
+ add.f32 %f592, %f161, %f161;
+ selp.f32 %f988, %f592, 0f00000000, %p57;
+ bra.uni BB0_69;
+
+BB0_115:
+ mov.u64 %rd199, image_HDR;
+ cvta.global.u64 %rd194, %rd199;
+ mov.u32 %r318, 8;
+ mov.u64 %rd198, 0;
+ // inline asm
+ call (%rd193), _rt_buffer_get_64, (%rd194, %r97, %r318, %rd20, %rd21, %rd198, %rd198);
+ // inline asm
+ mov.f32 %f830, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs112, %f830;}
+
+ // inline asm
+ mov.u16 %rs113, 0;
+ st.v4.u16 [%rd193], {%rs112, %rs112, %rs112, %rs113};
+
+BB0_116:
+ ld.global.u32 %r319, [additive];
+ setp.eq.s32 %p109, %r319, 0;
+ @%p109 bra BB0_118;
+
+ mov.u64 %rd212, image_RNM0;
+ cvta.global.u64 %rd201, %rd212;
+ mov.u32 %r323, 8;
+ mov.u64 %rd211, 0;
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd201, %r97, %r323, %rd20, %rd21, %rd211, %rd211);
+ // inline asm
+ ld.v4.u16 {%rs120, %rs121, %rs122, %rs123}, [%rd200];
+ // inline asm
+ { cvt.f32.f16 %f831, %rs120;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f832, %rs121;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f833, %rs122;}
+
+ // inline asm
+ // inline asm
+ call (%rd206), _rt_buffer_get_64, (%rd201, %r97, %r323, %rd20, %rd21, %rd211, %rd211);
+ // inline asm
+ add.f32 %f834, %f831, 0f00000000;
+ add.f32 %f835, %f832, 0f00000000;
+ add.f32 %f836, %f833, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs119, %f836;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs118, %f835;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f834;}
+
+ // inline asm
+ mov.u16 %rs124, 0;
+ st.v4.u16 [%rd206], {%rs117, %rs118, %rs119, %rs124};
+ bra.uni BB0_119;
+
+BB0_118:
+ mov.u64 %rd219, image_RNM0;
+ cvta.global.u64 %rd214, %rd219;
+ mov.u32 %r325, 8;
+ mov.u64 %rd218, 0;
+ // inline asm
+ call (%rd213), _rt_buffer_get_64, (%rd214, %r97, %r325, %rd20, %rd21, %rd218, %rd218);
+ // inline asm
+ mov.f32 %f837, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs125, %f837;}
+
+ // inline asm
+ mov.u16 %rs126, 0;
+ st.v4.u16 [%rd213], {%rs125, %rs125, %rs125, %rs126};
+
+BB0_119:
+ ld.global.u32 %r326, [additive];
+ setp.eq.s32 %p110, %r326, 0;
+ @%p110 bra BB0_121;
+
+ mov.u64 %rd232, image_RNM1;
+ cvta.global.u64 %rd221, %rd232;
+ mov.u32 %r330, 8;
+ mov.u64 %rd231, 0;
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd221, %r97, %r330, %rd20, %rd21, %rd231, %rd231);
+ // inline asm
+ ld.v4.u16 {%rs133, %rs134, %rs135, %rs136}, [%rd220];
+ // inline asm
+ { cvt.f32.f16 %f838, %rs133;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f839, %rs134;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f840, %rs135;}
+
+ // inline asm
+ // inline asm
+ call (%rd226), _rt_buffer_get_64, (%rd221, %r97, %r330, %rd20, %rd21, %rd231, %rd231);
+ // inline asm
+ add.f32 %f841, %f838, 0f00000000;
+ add.f32 %f842, %f839, 0f00000000;
+ add.f32 %f843, %f840, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs132, %f843;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs131, %f842;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f841;}
+
+ // inline asm
+ mov.u16 %rs137, 0;
+ st.v4.u16 [%rd226], {%rs130, %rs131, %rs132, %rs137};
+ bra.uni BB0_122;
+
+BB0_121:
+ mov.u64 %rd239, image_RNM1;
+ cvta.global.u64 %rd234, %rd239;
+ mov.u32 %r332, 8;
+ mov.u64 %rd238, 0;
+ // inline asm
+ call (%rd233), _rt_buffer_get_64, (%rd234, %r97, %r332, %rd20, %rd21, %rd238, %rd238);
+ // inline asm
+ mov.f32 %f844, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs138, %f844;}
+
+ // inline asm
+ mov.u16 %rs139, 0;
+ st.v4.u16 [%rd233], {%rs138, %rs138, %rs138, %rs139};
+
+BB0_122:
+ ld.global.u32 %r333, [additive];
+ setp.eq.s32 %p111, %r333, 0;
+ @%p111 bra BB0_124;
+
+ mov.u64 %rd252, image_RNM2;
+ cvta.global.u64 %rd241, %rd252;
+ mov.u32 %r337, 8;
+ mov.u64 %rd251, 0;
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd241, %r97, %r337, %rd20, %rd21, %rd251, %rd251);
+ // inline asm
+ ld.v4.u16 {%rs146, %rs147, %rs148, %rs149}, [%rd240];
+ // inline asm
+ { cvt.f32.f16 %f845, %rs146;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f846, %rs147;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f847, %rs148;}
+
+ // inline asm
+ // inline asm
+ call (%rd246), _rt_buffer_get_64, (%rd241, %r97, %r337, %rd20, %rd21, %rd251, %rd251);
+ // inline asm
+ add.f32 %f848, %f845, 0f00000000;
+ add.f32 %f849, %f846, 0f00000000;
+ add.f32 %f850, %f847, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f850;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs144, %f849;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f848;}
+
+ // inline asm
+ mov.u16 %rs150, 0;
+ st.v4.u16 [%rd246], {%rs143, %rs144, %rs145, %rs150};
+ bra.uni BB0_125;
+
+BB0_124:
+ mov.u64 %rd259, image_RNM2;
+ cvta.global.u64 %rd254, %rd259;
+ mov.u32 %r339, 8;
+ mov.u64 %rd258, 0;
+ // inline asm
+ call (%rd253), _rt_buffer_get_64, (%rd254, %r97, %r339, %rd20, %rd21, %rd258, %rd258);
+ // inline asm
+ mov.f32 %f851, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs151, %f851;}
+
+ // inline asm
+ mov.u16 %rs152, 0;
+ st.v4.u16 [%rd253], {%rs151, %rs151, %rs151, %rs152};
+ bra.uni BB0_125;
+
+BB0_66:
+ setp.geu.f32 %p59, %f161, 0f00000000;
+ @%p59 bra BB0_69;
+
+ mov.f32 %f902, 0f3EE66666;
+ cvt.rzi.f32.f32 %f591, %f902;
+ setp.neu.f32 %p60, %f591, 0f3EE66666;
+ selp.f32 %f988, 0f7FFFFFFF, %f988, %p60;
+
+BB0_69:
+ abs.f32 %f879, %f161;
+ add.f32 %f593, %f879, 0f3EE66666;
+ mov.b32 %r255, %f593;
+ setp.lt.s32 %p62, %r255, 2139095040;
+ @%p62 bra BB0_74;
+
+ abs.f32 %f900, %f161;
+ setp.gtu.f32 %p63, %f900, 0f7F800000;
+ @%p63 bra BB0_73;
+ bra.uni BB0_71;
+
+BB0_73:
+ add.f32 %f988, %f161, 0f3EE66666;
+ bra.uni BB0_74;
+
+BB0_71:
+ abs.f32 %f901, %f161;
+ setp.neu.f32 %p64, %f901, 0f7F800000;
+ @%p64 bra BB0_74;
+
+ selp.f32 %f988, 0fFF800000, 0f7F800000, %p1;
+
+BB0_74:
+ mov.f32 %f888, 0fB5BFBE8E;
+ mov.f32 %f887, 0fBF317200;
+ mov.f32 %f886, 0f00000000;
+ mov.f32 %f885, 0f35BFBE8E;
+ mov.f32 %f884, 0f3F317200;
+ mov.f32 %f883, 0f3DAAAABD;
+ mov.f32 %f882, 0f3C4CAF63;
+ mov.f32 %f881, 0f3B18F0FE;
+ mov.f32 %f880, 0f3EE66666;
+ setp.eq.f32 %p65, %f161, 0f3F800000;
+ selp.f32 %f177, 0f3F800000, %f988, %p65;
+ abs.f32 %f178, %f162;
+ setp.lt.f32 %p66, %f178, 0f00800000;
+ mul.f32 %f596, %f178, 0f4B800000;
+ selp.f32 %f597, 0fC3170000, 0fC2FE0000, %p66;
+ selp.f32 %f598, %f596, %f178, %p66;
+ mov.b32 %r256, %f598;
+ and.b32 %r257, %r256, 8388607;
+ or.b32 %r258, %r257, 1065353216;
+ mov.b32 %f599, %r258;
+ shr.u32 %r259, %r256, 23;
+ cvt.rn.f32.u32 %f600, %r259;
+ add.f32 %f601, %f597, %f600;
+ setp.gt.f32 %p67, %f599, 0f3FB504F3;
+ mul.f32 %f602, %f599, 0f3F000000;
+ add.f32 %f603, %f601, 0f3F800000;
+ selp.f32 %f604, %f602, %f599, %p67;
+ selp.f32 %f605, %f603, %f601, %p67;
+ add.f32 %f606, %f604, 0fBF800000;
+ add.f32 %f595, %f604, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f594,%f595;
+ // inline asm
+ add.f32 %f607, %f606, %f606;
+ mul.f32 %f608, %f594, %f607;
+ mul.f32 %f609, %f608, %f608;
+ fma.rn.f32 %f612, %f881, %f609, %f882;
+ fma.rn.f32 %f614, %f612, %f609, %f883;
+ mul.rn.f32 %f615, %f614, %f609;
+ mul.rn.f32 %f616, %f615, %f608;
+ sub.f32 %f617, %f606, %f608;
+ neg.f32 %f618, %f608;
+ add.f32 %f619, %f617, %f617;
+ fma.rn.f32 %f620, %f618, %f606, %f619;
+ mul.rn.f32 %f621, %f594, %f620;
+ add.f32 %f622, %f616, %f608;
+ sub.f32 %f623, %f608, %f622;
+ add.f32 %f624, %f616, %f623;
+ add.f32 %f625, %f621, %f624;
+ add.f32 %f626, %f622, %f625;
+ sub.f32 %f627, %f622, %f626;
+ add.f32 %f628, %f625, %f627;
+ mul.rn.f32 %f630, %f605, %f884;
+ mul.rn.f32 %f632, %f605, %f885;
+ add.f32 %f633, %f630, %f626;
+ sub.f32 %f634, %f630, %f633;
+ add.f32 %f635, %f626, %f634;
+ add.f32 %f636, %f628, %f635;
+ add.f32 %f637, %f632, %f636;
+ add.f32 %f638, %f633, %f637;
+ sub.f32 %f639, %f633, %f638;
+ add.f32 %f640, %f637, %f639;
+ mul.rn.f32 %f642, %f880, %f638;
+ neg.f32 %f643, %f642;
+ fma.rn.f32 %f644, %f880, %f638, %f643;
+ fma.rn.f32 %f645, %f880, %f640, %f644;
+ fma.rn.f32 %f647, %f886, %f638, %f645;
+ add.rn.f32 %f648, %f642, %f647;
+ neg.f32 %f649, %f648;
+ add.rn.f32 %f650, %f642, %f649;
+ add.rn.f32 %f651, %f650, %f647;
+ mov.b32 %r260, %f648;
+ setp.eq.s32 %p68, %r260, 1118925336;
+ add.s32 %r261, %r260, -1;
+ mov.b32 %f652, %r261;
+ add.f32 %f653, %f651, 0f37000000;
+ selp.f32 %f654, %f652, %f648, %p68;
+ selp.f32 %f179, %f653, %f651, %p68;
+ mul.f32 %f655, %f654, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f656, %f655;
+ fma.rn.f32 %f658, %f656, %f887, %f654;
+ fma.rn.f32 %f660, %f656, %f888, %f658;
+ mul.f32 %f661, %f660, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f662, %f661;
+ add.f32 %f663, %f656, 0f00000000;
+ ex2.approx.f32 %f664, %f663;
+ mul.f32 %f665, %f662, %f664;
+ setp.lt.f32 %p69, %f654, 0fC2D20000;
+ selp.f32 %f666, 0f00000000, %f665, %p69;
+ setp.gt.f32 %p70, %f654, 0f42D20000;
+ selp.f32 %f989, 0f7F800000, %f666, %p70;
+ setp.eq.f32 %p71, %f989, 0f7F800000;
+ @%p71 bra BB0_76;
+
+ fma.rn.f32 %f989, %f989, %f179, %f989;
+
+BB0_76:
+ setp.lt.f32 %p72, %f162, 0f00000000;
+ and.pred %p2, %p72, %p57;
+ mov.b32 %r262, %f989;
+ xor.b32 %r263, %r262, -2147483648;
+ mov.b32 %f667, %r263;
+ selp.f32 %f991, %f667, %f989, %p2;
+ setp.eq.f32 %p74, %f162, 0f00000000;
+ @%p74 bra BB0_79;
+ bra.uni BB0_77;
+
+BB0_79:
+ add.f32 %f670, %f162, %f162;
+ selp.f32 %f991, %f670, 0f00000000, %p57;
+ bra.uni BB0_80;
+
+BB0_77:
+ setp.geu.f32 %p75, %f162, 0f00000000;
+ @%p75 bra BB0_80;
+
+ mov.f32 %f899, 0f3EE66666;
+ cvt.rzi.f32.f32 %f669, %f899;
+ setp.neu.f32 %p76, %f669, 0f3EE66666;
+ selp.f32 %f991, 0f7FFFFFFF, %f991, %p76;
+
+BB0_80:
+ abs.f32 %f903, %f162;
+ add.f32 %f671, %f903, 0f3EE66666;
+ mov.b32 %r264, %f671;
+ setp.lt.s32 %p78, %r264, 2139095040;
+ @%p78 bra BB0_85;
+
+ abs.f32 %f904, %f162;
+ setp.gtu.f32 %p79, %f904, 0f7F800000;
+ @%p79 bra BB0_84;
+ bra.uni BB0_82;
+
+BB0_84:
+ add.f32 %f991, %f162, 0f3EE66666;
+ bra.uni BB0_85;
+
+BB0_82:
+ abs.f32 %f905, %f162;
+ setp.neu.f32 %p80, %f905, 0f7F800000;
+ @%p80 bra BB0_85;
+
+ selp.f32 %f991, 0fFF800000, 0f7F800000, %p2;
+
+BB0_85:
+ mov.f32 %f897, 0fB5BFBE8E;
+ mov.f32 %f896, 0fBF317200;
+ mov.f32 %f895, 0f00000000;
+ mov.f32 %f894, 0f35BFBE8E;
+ mov.f32 %f893, 0f3F317200;
+ mov.f32 %f892, 0f3DAAAABD;
+ mov.f32 %f891, 0f3C4CAF63;
+ mov.f32 %f890, 0f3B18F0FE;
+ mov.f32 %f889, 0f3EE66666;
+ setp.eq.f32 %p81, %f162, 0f3F800000;
+ selp.f32 %f190, 0f3F800000, %f991, %p81;
+ abs.f32 %f191, %f163;
+ setp.lt.f32 %p82, %f191, 0f00800000;
+ mul.f32 %f674, %f191, 0f4B800000;
+ selp.f32 %f675, 0fC3170000, 0fC2FE0000, %p82;
+ selp.f32 %f676, %f674, %f191, %p82;
+ mov.b32 %r265, %f676;
+ and.b32 %r266, %r265, 8388607;
+ or.b32 %r267, %r266, 1065353216;
+ mov.b32 %f677, %r267;
+ shr.u32 %r268, %r265, 23;
+ cvt.rn.f32.u32 %f678, %r268;
+ add.f32 %f679, %f675, %f678;
+ setp.gt.f32 %p83, %f677, 0f3FB504F3;
+ mul.f32 %f680, %f677, 0f3F000000;
+ add.f32 %f681, %f679, 0f3F800000;
+ selp.f32 %f682, %f680, %f677, %p83;
+ selp.f32 %f683, %f681, %f679, %p83;
+ add.f32 %f684, %f682, 0fBF800000;
+ add.f32 %f673, %f682, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f672,%f673;
+ // inline asm
+ add.f32 %f685, %f684, %f684;
+ mul.f32 %f686, %f672, %f685;
+ mul.f32 %f687, %f686, %f686;
+ fma.rn.f32 %f690, %f890, %f687, %f891;
+ fma.rn.f32 %f692, %f690, %f687, %f892;
+ mul.rn.f32 %f693, %f692, %f687;
+ mul.rn.f32 %f694, %f693, %f686;
+ sub.f32 %f695, %f684, %f686;
+ neg.f32 %f696, %f686;
+ add.f32 %f697, %f695, %f695;
+ fma.rn.f32 %f698, %f696, %f684, %f697;
+ mul.rn.f32 %f699, %f672, %f698;
+ add.f32 %f700, %f694, %f686;
+ sub.f32 %f701, %f686, %f700;
+ add.f32 %f702, %f694, %f701;
+ add.f32 %f703, %f699, %f702;
+ add.f32 %f704, %f700, %f703;
+ sub.f32 %f705, %f700, %f704;
+ add.f32 %f706, %f703, %f705;
+ mul.rn.f32 %f708, %f683, %f893;
+ mul.rn.f32 %f710, %f683, %f894;
+ add.f32 %f711, %f708, %f704;
+ sub.f32 %f712, %f708, %f711;
+ add.f32 %f713, %f704, %f712;
+ add.f32 %f714, %f706, %f713;
+ add.f32 %f715, %f710, %f714;
+ add.f32 %f716, %f711, %f715;
+ sub.f32 %f717, %f711, %f716;
+ add.f32 %f718, %f715, %f717;
+ mul.rn.f32 %f720, %f889, %f716;
+ neg.f32 %f721, %f720;
+ fma.rn.f32 %f722, %f889, %f716, %f721;
+ fma.rn.f32 %f723, %f889, %f718, %f722;
+ fma.rn.f32 %f725, %f895, %f716, %f723;
+ add.rn.f32 %f726, %f720, %f725;
+ neg.f32 %f727, %f726;
+ add.rn.f32 %f728, %f720, %f727;
+ add.rn.f32 %f729, %f728, %f725;
+ mov.b32 %r269, %f726;
+ setp.eq.s32 %p84, %r269, 1118925336;
+ add.s32 %r270, %r269, -1;
+ mov.b32 %f730, %r270;
+ add.f32 %f731, %f729, 0f37000000;
+ selp.f32 %f732, %f730, %f726, %p84;
+ selp.f32 %f192, %f731, %f729, %p84;
+ mul.f32 %f733, %f732, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f734, %f733;
+ fma.rn.f32 %f736, %f734, %f896, %f732;
+ fma.rn.f32 %f738, %f734, %f897, %f736;
+ mul.f32 %f739, %f738, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f740, %f739;
+ add.f32 %f741, %f734, 0f00000000;
+ ex2.approx.f32 %f742, %f741;
+ mul.f32 %f743, %f740, %f742;
+ setp.lt.f32 %p85, %f732, 0fC2D20000;
+ selp.f32 %f744, 0f00000000, %f743, %p85;
+ setp.gt.f32 %p86, %f732, 0f42D20000;
+ selp.f32 %f992, 0f7F800000, %f744, %p86;
+ setp.eq.f32 %p87, %f992, 0f7F800000;
+ @%p87 bra BB0_87;
+
+ fma.rn.f32 %f992, %f992, %f192, %f992;
+
+BB0_87:
+ setp.lt.f32 %p88, %f163, 0f00000000;
+ and.pred %p3, %p88, %p57;
+ mov.b32 %r271, %f992;
+ xor.b32 %r272, %r271, -2147483648;
+ mov.b32 %f745, %r272;
+ selp.f32 %f994, %f745, %f992, %p3;
+ setp.eq.f32 %p90, %f163, 0f00000000;
+ @%p90 bra BB0_90;
+ bra.uni BB0_88;
+
+BB0_90:
+ add.f32 %f748, %f163, %f163;
+ selp.f32 %f994, %f748, 0f00000000, %p57;
+ bra.uni BB0_91;
+
+BB0_88:
+ setp.geu.f32 %p91, %f163, 0f00000000;
+ @%p91 bra BB0_91;
+
+ mov.f32 %f898, 0f3EE66666;
+ cvt.rzi.f32.f32 %f747, %f898;
+ setp.neu.f32 %p92, %f747, 0f3EE66666;
+ selp.f32 %f994, 0f7FFFFFFF, %f994, %p92;
+
+BB0_91:
+ add.f32 %f749, %f191, 0f3EE66666;
+ mov.b32 %r273, %f749;
+ setp.lt.s32 %p94, %r273, 2139095040;
+ @%p94 bra BB0_96;
+
+ setp.gtu.f32 %p95, %f191, 0f7F800000;
+ @%p95 bra BB0_95;
+ bra.uni BB0_93;
+
+BB0_95:
+ add.f32 %f994, %f163, 0f3EE66666;
+ bra.uni BB0_96;
+
+BB0_93:
+ setp.neu.f32 %p96, %f191, 0f7F800000;
+ @%p96 bra BB0_96;
+
+ selp.f32 %f994, 0fFF800000, 0f7F800000, %p3;
+
+BB0_96:
+ mov.u64 %rd266, 0;
+ mov.u32 %r357, 2;
+ mov.u32 %r350, 4;
+ setp.eq.f32 %p97, %f163, 0f3F800000;
+ selp.f32 %f750, 0f3F800000, %f994, %p97;
+ cvt.u64.u32 %rd89, %r4;
+ cvt.u64.u32 %rd88, %r3;
+ mov.u64 %rd92, image;
+ cvta.global.u64 %rd87, %rd92;
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd87, %r357, %r350, %rd88, %rd89, %rd266, %rd266);
+ // inline asm
+ cvt.sat.f32.f32 %f751, %f750;
+ mul.f32 %f752, %f751, 0f437FFD71;
+ cvt.rzi.u32.f32 %r276, %f752;
+ cvt.sat.f32.f32 %f753, %f190;
+ mul.f32 %f754, %f753, 0f437FFD71;
+ cvt.rzi.u32.f32 %r277, %f754;
+ cvt.sat.f32.f32 %f755, %f177;
+ mul.f32 %f756, %f755, 0f437FFD71;
+ cvt.rzi.u32.f32 %r278, %f756;
+ cvt.u16.u32 %rs40, %r276;
+ cvt.u16.u32 %rs41, %r278;
+ cvt.u16.u32 %rs42, %r277;
+ mov.u16 %rs43, 255;
+ st.v4.u8 [%rd86], {%rs40, %rs42, %rs41, %rs43};
+ ld.global.u32 %r404, [imageEnabled];
+
+BB0_97:
+ cvt.u64.u32 %rd18, %r3;
+ cvt.u64.u32 %rd19, %r4;
+ and.b32 %r279, %r404, 4;
+ setp.eq.s32 %p98, %r279, 0;
+ @%p98 bra BB0_101;
+
+ ld.global.u32 %r280, [additive];
+ setp.eq.s32 %p99, %r280, 0;
+ mov.f32 %f757, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f757;}
+
+ // inline asm
+ @%p99 bra BB0_100;
+
+ mov.u64 %rd267, 0;
+ mov.u32 %r358, 2;
+ mov.u64 %rd105, image_HDR;
+ cvta.global.u64 %rd94, %rd105;
+ mov.u32 %r284, 8;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd94, %r358, %r284, %rd18, %rd19, %rd267, %rd267);
+ // inline asm
+ ld.v4.u16 {%rs51, %rs52, %rs53, %rs54}, [%rd93];
+ // inline asm
+ { cvt.f32.f16 %f758, %rs51;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f759, %rs52;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f760, %rs53;}
+
+ // inline asm
+ // inline asm
+ call (%rd99), _rt_buffer_get_64, (%rd94, %r358, %r284, %rd18, %rd19, %rd267, %rd267);
+ // inline asm
+ add.f32 %f761, %f161, %f758;
+ add.f32 %f762, %f162, %f759;
+ add.f32 %f763, %f163, %f760;
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f763;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs49, %f762;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f761;}
+
+ // inline asm
+ st.v4.u16 [%rd99], {%rs48, %rs49, %rs50, %rs44};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd268, 0;
+ mov.u32 %r359, 2;
+ mov.u64 %rd112, image_HDR;
+ cvta.global.u64 %rd107, %rd112;
+ mov.u32 %r286, 8;
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd107, %r359, %r286, %rd18, %rd19, %rd268, %rd268);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f163;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs56, %f162;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs55, %f161;}
+
+ // inline asm
+ st.v4.u16 [%rd106], {%rs55, %rs56, %rs57, %rs44};
+
+BB0_101:
+ ld.global.f32 %f768, [skyColor];
+ mul.f32 %f769, %f152, %f768;
+ ld.global.f32 %f770, [skyColor+4];
+ mul.f32 %f771, %f153, %f770;
+ ld.global.f32 %f772, [skyColor+8];
+ mul.f32 %f773, %f154, %f772;
+ mul.f32 %f774, %f155, %f768;
+ mul.f32 %f775, %f156, %f770;
+ mul.f32 %f776, %f157, %f772;
+ mul.f32 %f777, %f158, %f768;
+ mul.f32 %f778, %f159, %f770;
+ mul.f32 %f779, %f160, %f772;
+ add.f32 %f780, %f769, %f774;
+ add.f32 %f781, %f771, %f775;
+ add.f32 %f782, %f773, %f776;
+ add.f32 %f783, %f780, %f777;
+ add.f32 %f784, %f781, %f778;
+ add.f32 %f785, %f782, %f779;
+ mul.f32 %f786, %f783, 0f3F13CD3A;
+ mul.f32 %f787, %f784, 0f3F13CD3A;
+ mul.f32 %f788, %f785, 0f3F13CD3A;
+ div.rn.f32 %f789, %f161, %f786;
+ div.rn.f32 %f790, %f162, %f787;
+ div.rn.f32 %f791, %f163, %f788;
+ setp.eq.f32 %p100, %f161, 0f00000000;
+ selp.f32 %f792, 0f00000000, %f789, %p100;
+ setp.eq.f32 %p101, %f162, 0f00000000;
+ selp.f32 %f793, 0f00000000, %f790, %p101;
+ setp.eq.f32 %p102, %f163, 0f00000000;
+ selp.f32 %f794, 0f00000000, %f791, %p102;
+ mul.f32 %f203, %f769, %f792;
+ mul.f32 %f204, %f771, %f793;
+ mul.f32 %f205, %f773, %f794;
+ mul.f32 %f206, %f774, %f792;
+ mul.f32 %f207, %f775, %f793;
+ mul.f32 %f208, %f776, %f794;
+ mul.f32 %f209, %f777, %f792;
+ mul.f32 %f210, %f778, %f793;
+ mul.f32 %f211, %f779, %f794;
+ ld.global.u32 %r287, [additive];
+ setp.eq.s32 %p103, %r287, 0;
+ mov.f32 %f767, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f767;}
+
+ // inline asm
+ @%p103 bra BB0_103;
+
+ mov.u64 %rd269, 0;
+ mov.u32 %r360, 2;
+ mov.u64 %rd125, image_RNM0;
+ cvta.global.u64 %rd114, %rd125;
+ mov.u32 %r291, 8;
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd114, %r360, %r291, %rd18, %rd19, %rd269, %rd269);
+ // inline asm
+ ld.v4.u16 {%rs65, %rs66, %rs67, %rs68}, [%rd113];
+ // inline asm
+ { cvt.f32.f16 %f795, %rs65;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f796, %rs66;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f797, %rs67;}
+
+ // inline asm
+ // inline asm
+ call (%rd119), _rt_buffer_get_64, (%rd114, %r360, %r291, %rd18, %rd19, %rd269, %rd269);
+ // inline asm
+ add.f32 %f798, %f203, %f795;
+ add.f32 %f799, %f204, %f796;
+ add.f32 %f800, %f205, %f797;
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f800;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs63, %f799;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs62, %f798;}
+
+ // inline asm
+ st.v4.u16 [%rd119], {%rs62, %rs63, %rs64, %rs58};
+ bra.uni BB0_104;
+
+BB0_103:
+ mov.u64 %rd274, 0;
+ mov.u32 %r365, 2;
+ mov.u64 %rd132, image_RNM0;
+ cvta.global.u64 %rd127, %rd132;
+ mov.u32 %r293, 8;
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd127, %r365, %r293, %rd18, %rd19, %rd274, %rd274);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f205;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f204;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f203;}
+
+ // inline asm
+ st.v4.u16 [%rd126], {%rs69, %rs70, %rs71, %rs58};
+
+BB0_104:
+ ld.global.u32 %r294, [additive];
+ setp.eq.s32 %p104, %r294, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f767;}
+
+ // inline asm
+ @%p104 bra BB0_106;
+
+ mov.u64 %rd270, 0;
+ mov.u32 %r361, 2;
+ mov.u64 %rd145, image_RNM1;
+ cvta.global.u64 %rd134, %rd145;
+ mov.u32 %r298, 8;
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd134, %r361, %r298, %rd18, %rd19, %rd270, %rd270);
+ // inline asm
+ ld.v4.u16 {%rs79, %rs80, %rs81, %rs82}, [%rd133];
+ // inline asm
+ { cvt.f32.f16 %f805, %rs79;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f806, %rs80;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f807, %rs81;}
+
+ // inline asm
+ // inline asm
+ call (%rd139), _rt_buffer_get_64, (%rd134, %r361, %r298, %rd18, %rd19, %rd270, %rd270);
+ // inline asm
+ add.f32 %f808, %f206, %f805;
+ add.f32 %f809, %f207, %f806;
+ add.f32 %f810, %f208, %f807;
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f810;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f809;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f808;}
+
+ // inline asm
+ st.v4.u16 [%rd139], {%rs76, %rs77, %rs78, %rs72};
+ bra.uni BB0_107;
+
+BB0_106:
+ mov.u64 %rd273, 0;
+ mov.u32 %r364, 2;
+ mov.u64 %rd152, image_RNM1;
+ cvta.global.u64 %rd147, %rd152;
+ mov.u32 %r300, 8;
+ // inline asm
+ call (%rd146), _rt_buffer_get_64, (%rd147, %r364, %r300, %rd18, %rd19, %rd273, %rd273);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f208;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs84, %f207;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f206;}
+
+ // inline asm
+ st.v4.u16 [%rd146], {%rs83, %rs84, %rs85, %rs72};
+
+BB0_107:
+ ld.global.u32 %r301, [additive];
+ setp.eq.s32 %p105, %r301, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f767;}
+
+ // inline asm
+ @%p105 bra BB0_109;
+
+ mov.u64 %rd271, 0;
+ mov.u32 %r362, 2;
+ mov.u64 %rd165, image_RNM2;
+ cvta.global.u64 %rd154, %rd165;
+ mov.u32 %r305, 8;
+ // inline asm
+ call (%rd153), _rt_buffer_get_64, (%rd154, %r362, %r305, %rd18, %rd19, %rd271, %rd271);
+ // inline asm
+ ld.v4.u16 {%rs93, %rs94, %rs95, %rs96}, [%rd153];
+ // inline asm
+ { cvt.f32.f16 %f815, %rs93;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f816, %rs94;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f817, %rs95;}
+
+ // inline asm
+ // inline asm
+ call (%rd159), _rt_buffer_get_64, (%rd154, %r362, %r305, %rd18, %rd19, %rd271, %rd271);
+ // inline asm
+ add.f32 %f818, %f209, %f815;
+ add.f32 %f819, %f210, %f816;
+ add.f32 %f820, %f211, %f817;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f820;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f819;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f818;}
+
+ // inline asm
+ st.v4.u16 [%rd159], {%rs90, %rs91, %rs92, %rs86};
+ bra.uni BB0_125;
+
+BB0_109:
+ mov.u64 %rd272, 0;
+ mov.u32 %r363, 2;
+ mov.u64 %rd172, image_RNM2;
+ cvta.global.u64 %rd167, %rd172;
+ mov.u32 %r307, 8;
+ // inline asm
+ call (%rd166), _rt_buffer_get_64, (%rd167, %r363, %r307, %rd18, %rd19, %rd272, %rd272);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f211;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f210;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f209;}
+
+ // inline asm
+ st.v4.u16 [%rd166], {%rs97, %rs98, %rs99, %rs86};
+
+BB0_125:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapRNM.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapRNM.ptx.meta
new file mode 100644
index 00000000..f8c755d8
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapRNM.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 651c025773cc7364a9f58448fcd93bed
+timeCreated: 1537525103
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapSH.ptx
new file mode 100644
index 00000000..e71ceeb1
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapSH.ptx
@@ -0,0 +1,2069 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 sky;
+.global .align 4 .b8 skyColor[12];
+.global .align 4 .u32 samples;
+.global .align 4 .u32 hemispherical;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3skyE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8skyColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13hemisphericalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3skyE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8skyColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename13hemisphericalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3skyE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8skyColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13hemisphericalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic3skyE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8skyColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13hemisphericalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3skyE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8skyColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13hemisphericalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<106>;
+ .reg .b16 %rs<154>;
+ .reg .f32 %f<901>;
+ .reg .b32 %r<383>;
+ .reg .b64 %rd<288>;
+
+
+ mov.u64 %rd287, __local_depot0;
+ cvta.local.u64 %SP, %rd287;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r93, %r94}, [pixelID];
+ cvt.u64.u32 %rd22, %r93;
+ cvt.u64.u32 %rd23, %r94;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r91, 2;
+ mov.u32 %r92, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r91, %r92, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r2, [%rd20];
+ shr.u32 %r97, %r2, 16;
+ cvt.u16.u32 %rs1, %r97;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r2;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p4, %rs9, 0;
+ mov.f32 %f817, 0f00000000;
+ mov.f32 %f818, %f817;
+ mov.f32 %f819, %f817;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs10, [%rd20+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f215, %rs12;
+ div.rn.f32 %f216, %f215, 0f437F0000;
+ fma.rn.f32 %f217, %f216, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f218, %rs10;
+ div.rn.f32 %f219, %f218, 0f437F0000;
+ fma.rn.f32 %f220, %f219, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f221, %rs7;
+ div.rn.f32 %f222, %f221, 0f437F0000;
+ fma.rn.f32 %f223, %f222, 0f40000000, 0fBF800000;
+ mul.f32 %f224, %f220, %f220;
+ fma.rn.f32 %f225, %f217, %f217, %f224;
+ fma.rn.f32 %f226, %f223, %f223, %f225;
+ sqrt.rn.f32 %f227, %f226;
+ rcp.rn.f32 %f228, %f227;
+ mul.f32 %f817, %f217, %f228;
+ mul.f32 %f818, %f220, %f228;
+ mul.f32 %f819, %f223, %f228;
+
+BB0_2:
+ ld.global.v2.u32 {%r98, %r99}, [pixelID];
+ ld.global.v2.u32 {%r101, %r102}, [tileInfo];
+ add.s32 %r3, %r98, %r101;
+ add.s32 %r4, %r99, %r102;
+ setp.eq.f32 %p5, %f818, 0f00000000;
+ setp.eq.f32 %p6, %f817, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f819, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_107;
+ bra.uni BB0_3;
+
+BB0_107:
+ ld.global.u32 %r382, [imageEnabled];
+ and.b32 %r291, %r382, 1;
+ setp.eq.b32 %p98, %r291, 1;
+ @!%p98 bra BB0_109;
+ bra.uni BB0_108;
+
+BB0_108:
+ cvt.u64.u32 %rd173, %r4;
+ cvt.u64.u32 %rd172, %r3;
+ mov.u64 %rd176, image;
+ cvta.global.u64 %rd171, %rd176;
+ mov.u64 %rd175, 0;
+ // inline asm
+ call (%rd170), _rt_buffer_get_64, (%rd171, %r91, %r92, %rd172, %rd173, %rd175, %rd175);
+ // inline asm
+ mov.u16 %rs88, 0;
+ st.v4.u8 [%rd170], {%rs88, %rs88, %rs88, %rs88};
+ ld.global.u32 %r382, [imageEnabled];
+
+BB0_109:
+ cvt.u64.u32 %rd18, %r3;
+ cvt.u64.u32 %rd19, %r4;
+ and.b32 %r294, %r382, 4;
+ setp.eq.s32 %p99, %r294, 0;
+ @%p99 bra BB0_113;
+
+ ld.global.u32 %r295, [additive];
+ setp.eq.s32 %p100, %r295, 0;
+ @%p100 bra BB0_112;
+
+ mov.u64 %rd189, image_HDR;
+ cvta.global.u64 %rd178, %rd189;
+ mov.u32 %r299, 8;
+ mov.u64 %rd188, 0;
+ // inline asm
+ call (%rd177), _rt_buffer_get_64, (%rd178, %r91, %r299, %rd18, %rd19, %rd188, %rd188);
+ // inline asm
+ ld.v4.u16 {%rs95, %rs96, %rs97, %rs98}, [%rd177];
+ // inline asm
+ { cvt.f32.f16 %f726, %rs95;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f727, %rs96;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f728, %rs97;}
+
+ // inline asm
+ // inline asm
+ call (%rd183), _rt_buffer_get_64, (%rd178, %r91, %r299, %rd18, %rd19, %rd188, %rd188);
+ // inline asm
+ add.f32 %f729, %f726, 0f00000000;
+ add.f32 %f730, %f727, 0f00000000;
+ add.f32 %f731, %f728, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs94, %f731;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f730;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f729;}
+
+ // inline asm
+ mov.u16 %rs99, 0;
+ st.v4.u16 [%rd183], {%rs92, %rs93, %rs94, %rs99};
+ bra.uni BB0_113;
+
+BB0_3:
+ ld.global.v2.u32 {%r110, %r111}, [pixelID];
+ cvt.u64.u32 %rd29, %r110;
+ cvt.u64.u32 %rd30, %r111;
+ mov.u64 %rd39, uvpos;
+ cvta.global.u64 %rd28, %rd39;
+ mov.u32 %r107, 12;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r91, %r107, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f244, [%rd27+8];
+ ld.f32 %f245, [%rd27+4];
+ ld.f32 %f246, [%rd27];
+ mul.f32 %f247, %f246, 0f3456BF95;
+ mul.f32 %f248, %f245, 0f3456BF95;
+ mul.f32 %f249, %f244, 0f3456BF95;
+ abs.f32 %f250, %f817;
+ div.rn.f32 %f251, %f247, %f250;
+ abs.f32 %f252, %f818;
+ div.rn.f32 %f253, %f248, %f252;
+ abs.f32 %f254, %f819;
+ div.rn.f32 %f255, %f249, %f254;
+ abs.f32 %f256, %f251;
+ abs.f32 %f257, %f253;
+ abs.f32 %f258, %f255;
+ mov.f32 %f259, 0f38D1B717;
+ max.f32 %f260, %f256, %f259;
+ max.f32 %f261, %f257, %f259;
+ max.f32 %f262, %f258, %f259;
+ fma.rn.f32 %f7, %f817, %f260, %f246;
+ fma.rn.f32 %f8, %f818, %f261, %f245;
+ fma.rn.f32 %f9, %f819, %f262, %f244;
+ ld.global.u32 %r5, [hemispherical];
+ setp.gt.f32 %p10, %f250, %f254;
+ neg.f32 %f263, %f818;
+ selp.f32 %f264, %f263, 0f00000000, %p10;
+ neg.f32 %f265, %f819;
+ selp.f32 %f266, %f817, %f265, %p10;
+ selp.f32 %f267, 0f00000000, %f818, %p10;
+ mul.f32 %f268, %f266, %f266;
+ fma.rn.f32 %f269, %f264, %f264, %f268;
+ fma.rn.f32 %f270, %f267, %f267, %f269;
+ sqrt.rn.f32 %f271, %f270;
+ rcp.rn.f32 %f272, %f271;
+ mul.f32 %f10, %f264, %f272;
+ mul.f32 %f11, %f266, %f272;
+ mul.f32 %f12, %f267, %f272;
+ ld.global.v2.u32 {%r114, %r115}, [pixelID];
+ cvt.u64.u32 %rd35, %r114;
+ cvt.u64.u32 %rd36, %r115;
+ mov.u64 %rd40, rnd_seeds;
+ cvta.global.u64 %rd34, %rd40;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r91, %r92, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f876, 0f00000000;
+ setp.lt.s32 %p11, %r1, 1;
+ mov.f32 %f875, %f876;
+ mov.f32 %f874, %f876;
+ mov.f32 %f873, %f876;
+ mov.f32 %f872, %f876;
+ mov.f32 %f871, %f876;
+ mov.f32 %f870, %f876;
+ mov.f32 %f869, %f876;
+ mov.f32 %f868, %f876;
+ mov.f32 %f867, %f876;
+ mov.f32 %f866, %f876;
+ mov.f32 %f865, %f876;
+ mov.f32 %f864, %f876;
+ mov.f32 %f863, %f876;
+ mov.f32 %f862, %f876;
+ @%p11 bra BB0_56;
+
+ cvt.rn.f32.s32 %f288, %r1;
+ rcp.rn.f32 %f13, %f288;
+ ld.u32 %r360, [%rd33];
+ mul.f32 %f14, %f7, 0f3456BF95;
+ mul.f32 %f15, %f8, 0f3456BF95;
+ mul.f32 %f16, %f9, 0f3456BF95;
+ mul.f32 %f289, %f817, %f11;
+ mul.f32 %f290, %f818, %f10;
+ sub.f32 %f17, %f290, %f289;
+ mul.f32 %f291, %f819, %f10;
+ mul.f32 %f292, %f817, %f12;
+ sub.f32 %f18, %f292, %f291;
+ mul.f32 %f293, %f818, %f12;
+ mul.f32 %f294, %f819, %f11;
+ sub.f32 %f19, %f294, %f293;
+ mov.f32 %f876, 0f00000000;
+ mov.u32 %r118, 0;
+ abs.f32 %f375, %f15;
+ abs.f32 %f376, %f14;
+ max.f32 %f377, %f376, %f375;
+ abs.f32 %f378, %f16;
+ max.f32 %f379, %f377, %f378;
+ mov.u32 %r357, %r118;
+ mov.f32 %f875, %f876;
+ mov.f32 %f874, %f876;
+ mov.f32 %f873, %f876;
+ mov.f32 %f872, %f876;
+ mov.f32 %f871, %f876;
+ mov.f32 %f870, %f876;
+ mov.f32 %f869, %f876;
+ mov.f32 %f868, %f876;
+ mov.f32 %f867, %f876;
+ mov.f32 %f866, %f876;
+ mov.f32 %f865, %f876;
+ mov.f32 %f864, %f876;
+ mov.f32 %f863, %f876;
+ mov.f32 %f862, %f876;
+
+BB0_5:
+ mov.u32 %r359, %r118;
+
+BB0_6:
+ mov.u32 %r10, %r360;
+ cvt.rn.f32.s32 %f767, %r357;
+ mad.lo.s32 %r120, %r10, 1664525, 1013904223;
+ and.b32 %r121, %r120, 16777215;
+ cvt.rn.f32.u32 %f295, %r121;
+ fma.rn.f32 %f296, %f295, 0f33800000, %f767;
+ mul.f32 %f51, %f13, %f296;
+ mad.lo.s32 %r11, %r120, 1664525, 1013904223;
+ and.b32 %r122, %r11, 16777215;
+ cvt.rn.f32.u32 %f297, %r122;
+ cvt.rn.f32.s32 %f298, %r359;
+ fma.rn.f32 %f299, %f297, 0f33800000, %f298;
+ mul.f32 %f300, %f13, %f299;
+ mul.f32 %f301, %f51, %f51;
+ mov.f32 %f302, 0f3F800000;
+ sub.f32 %f303, %f302, %f301;
+ mov.f32 %f304, 0f00000000;
+ max.f32 %f305, %f304, %f303;
+ sqrt.rn.f32 %f52, %f305;
+ mul.f32 %f856, %f300, 0f40C90FDB;
+ abs.f32 %f54, %f856;
+ setp.neu.f32 %p12, %f54, 0f7F800000;
+ mov.f32 %f850, %f856;
+ @%p12 bra BB0_8;
+
+ mul.rn.f32 %f850, %f856, %f304;
+
+BB0_8:
+ mul.f32 %f307, %f850, 0f3F22F983;
+ cvt.rni.s32.f32 %r370, %f307;
+ cvt.rn.f32.s32 %f308, %r370;
+ neg.f32 %f309, %f308;
+ mov.f32 %f310, 0f3FC90FDA;
+ fma.rn.f32 %f311, %f309, %f310, %f850;
+ mov.f32 %f312, 0f33A22168;
+ fma.rn.f32 %f313, %f309, %f312, %f311;
+ mov.f32 %f314, 0f27C234C5;
+ fma.rn.f32 %f851, %f309, %f314, %f313;
+ abs.f32 %f315, %f850;
+ setp.leu.f32 %p13, %f315, 0f47CE4780;
+ @%p13 bra BB0_19;
+
+ add.u64 %rd42, %SP, 12;
+ cvta.to.local.u64 %rd283, %rd42;
+ mov.u32 %r361, 0;
+ mov.u64 %rd284, 0;
+ mov.u32 %r362, %r361;
+
+BB0_10:
+ .pragma "nounroll";
+ mov.b32 %r332, %f850;
+ shl.b32 %r331, %r332, 8;
+ or.b32 %r330, %r331, -2147483648;
+ add.u64 %rd278, %SP, 12;
+ cvta.to.local.u64 %rd277, %rd278;
+ shl.b64 %rd43, %rd284, 2;
+ mov.u64 %rd44, __cudart_i2opi_f;
+ add.s64 %rd45, %rd44, %rd43;
+ ld.const.u32 %r128, [%rd45];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r126, %r128, %r330, %r362;
+ madc.hi.u32 %r362, %r128, %r330, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd283], %r126;
+ add.s32 %r361, %r361, 1;
+ cvt.s64.s32 %rd284, %r361;
+ mul.wide.s32 %rd48, %r361, 4;
+ add.s64 %rd283, %rd277, %rd48;
+ setp.ne.s32 %p14, %r361, 6;
+ @%p14 bra BB0_10;
+
+ mov.b32 %r334, %f850;
+ shr.u32 %r333, %r334, 23;
+ add.u64 %rd279, %SP, 12;
+ and.b32 %r131, %r333, 255;
+ add.s32 %r132, %r131, -128;
+ shr.u32 %r133, %r132, 5;
+ cvta.to.local.u64 %rd50, %rd279;
+ st.local.u32 [%rd50+24], %r362;
+ mov.u32 %r134, 6;
+ sub.s32 %r135, %r134, %r133;
+ mul.wide.s32 %rd51, %r135, 4;
+ add.s64 %rd8, %rd50, %rd51;
+ ld.local.u32 %r363, [%rd8];
+ ld.local.u32 %r364, [%rd8+-4];
+ and.b32 %r23, %r333, 31;
+ setp.eq.s32 %p15, %r23, 0;
+ @%p15 bra BB0_13;
+
+ mov.u32 %r136, 32;
+ sub.s32 %r137, %r136, %r23;
+ shr.u32 %r138, %r364, %r137;
+ shl.b32 %r139, %r363, %r23;
+ add.s32 %r363, %r138, %r139;
+ ld.local.u32 %r140, [%rd8+-8];
+ shr.u32 %r141, %r140, %r137;
+ shl.b32 %r142, %r364, %r23;
+ add.s32 %r364, %r141, %r142;
+
+BB0_13:
+ mov.b32 %r342, %f850;
+ and.b32 %r366, %r342, -2147483648;
+ shr.u32 %r143, %r364, 30;
+ shl.b32 %r144, %r363, 2;
+ add.s32 %r365, %r143, %r144;
+ shl.b32 %r29, %r364, 2;
+ shr.u32 %r145, %r365, 31;
+ shr.u32 %r146, %r363, 30;
+ add.s32 %r30, %r145, %r146;
+ setp.eq.s32 %p16, %r145, 0;
+ @%p16 bra BB0_14;
+ bra.uni BB0_15;
+
+BB0_14:
+ mov.u32 %r367, %r29;
+ bra.uni BB0_16;
+
+BB0_15:
+ mov.b32 %r344, %f850;
+ and.b32 %r343, %r344, -2147483648;
+ not.b32 %r147, %r365;
+ neg.s32 %r367, %r29;
+ setp.eq.s32 %p17, %r29, 0;
+ selp.u32 %r148, 1, 0, %p17;
+ add.s32 %r365, %r148, %r147;
+ xor.b32 %r366, %r343, -2147483648;
+
+BB0_16:
+ mov.b32 %r346, %f850;
+ and.b32 %r345, %r346, -2147483648;
+ clz.b32 %r369, %r365;
+ setp.eq.s32 %p18, %r369, 0;
+ shl.b32 %r149, %r365, %r369;
+ mov.u32 %r150, 32;
+ sub.s32 %r151, %r150, %r369;
+ shr.u32 %r152, %r367, %r151;
+ add.s32 %r153, %r152, %r149;
+ selp.b32 %r38, %r365, %r153, %p18;
+ mov.u32 %r154, -921707870;
+ mul.hi.u32 %r368, %r38, %r154;
+ setp.eq.s32 %p19, %r345, 0;
+ neg.s32 %r155, %r30;
+ selp.b32 %r370, %r30, %r155, %p19;
+ setp.lt.s32 %p20, %r368, 1;
+ @%p20 bra BB0_18;
+
+ mul.lo.s32 %r156, %r38, -921707870;
+ shr.u32 %r157, %r156, 31;
+ shl.b32 %r158, %r368, 1;
+ add.s32 %r368, %r157, %r158;
+ add.s32 %r369, %r369, 1;
+
+BB0_18:
+ mov.u32 %r159, 126;
+ sub.s32 %r160, %r159, %r369;
+ shl.b32 %r161, %r160, 23;
+ add.s32 %r162, %r368, 1;
+ shr.u32 %r163, %r162, 7;
+ add.s32 %r164, %r163, 1;
+ shr.u32 %r165, %r164, 1;
+ add.s32 %r166, %r165, %r161;
+ or.b32 %r167, %r166, %r366;
+ mov.b32 %f851, %r167;
+
+BB0_19:
+ add.s32 %r46, %r370, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p21, %r47, 0;
+ @%p21 bra BB0_21;
+ bra.uni BB0_20;
+
+BB0_21:
+ mul.rn.f32 %f777, %f851, %f851;
+ mov.f32 %f318, 0f3C08839E;
+ mov.f32 %f319, 0fB94CA1F9;
+ fma.rn.f32 %f852, %f319, %f777, %f318;
+ bra.uni BB0_22;
+
+BB0_20:
+ mul.rn.f32 %f773, %f851, %f851;
+ mov.f32 %f316, 0fBAB6061A;
+ mov.f32 %f317, 0f37CCF5CE;
+ fma.rn.f32 %f852, %f317, %f773, %f316;
+
+BB0_22:
+ @%p21 bra BB0_24;
+ bra.uni BB0_23;
+
+BB0_24:
+ mul.rn.f32 %f776, %f851, %f851;
+ mov.f32 %f772, 0f00000000;
+ mov.f32 %f323, 0fBE2AAAA3;
+ fma.rn.f32 %f324, %f852, %f776, %f323;
+ fma.rn.f32 %f853, %f324, %f776, %f772;
+ bra.uni BB0_25;
+
+BB0_23:
+ mul.rn.f32 %f774, %f851, %f851;
+ mov.f32 %f320, 0f3D2AAAA5;
+ fma.rn.f32 %f321, %f852, %f774, %f320;
+ mov.f32 %f322, 0fBF000000;
+ fma.rn.f32 %f853, %f321, %f774, %f322;
+
+BB0_25:
+ fma.rn.f32 %f854, %f853, %f851, %f851;
+ @%p21 bra BB0_27;
+
+ mul.rn.f32 %f775, %f851, %f851;
+ mov.f32 %f761, 0f3F800000;
+ fma.rn.f32 %f854, %f853, %f775, %f761;
+
+BB0_27:
+ add.s32 %r347, %r370, 1;
+ and.b32 %r168, %r347, 2;
+ setp.eq.s32 %p24, %r168, 0;
+ @%p24 bra BB0_29;
+
+ mov.f32 %f768, 0f00000000;
+ mov.f32 %f328, 0fBF800000;
+ fma.rn.f32 %f854, %f854, %f328, %f768;
+
+BB0_29:
+ abs.f32 %f762, %f856;
+ setp.neu.f32 %p105, %f762, 0f7F800000;
+ @%p105 bra BB0_31;
+
+ mov.f32 %f771, 0f00000000;
+ mul.rn.f32 %f856, %f856, %f771;
+
+BB0_31:
+ mov.f32 %f765, 0f27C234C5;
+ mov.f32 %f764, 0f33A22168;
+ mov.f32 %f763, 0f3FC90FDA;
+ mul.f32 %f330, %f856, 0f3F22F983;
+ cvt.rni.s32.f32 %r380, %f330;
+ cvt.rn.f32.s32 %f331, %r380;
+ neg.f32 %f332, %f331;
+ fma.rn.f32 %f334, %f332, %f763, %f856;
+ fma.rn.f32 %f336, %f332, %f764, %f334;
+ fma.rn.f32 %f857, %f332, %f765, %f336;
+ abs.f32 %f338, %f856;
+ setp.leu.f32 %p26, %f338, 0f47CE4780;
+ @%p26 bra BB0_42;
+
+ add.u64 %rd53, %SP, 12;
+ cvta.to.local.u64 %rd285, %rd53;
+ mov.b32 %r49, %f856;
+ shl.b32 %r171, %r49, 8;
+ or.b32 %r51, %r171, -2147483648;
+ mov.u32 %r371, 0;
+ mov.u64 %rd286, %rd25;
+ mov.u32 %r372, %r371;
+
+BB0_33:
+ .pragma "nounroll";
+ add.u64 %rd281, %SP, 12;
+ cvta.to.local.u64 %rd280, %rd281;
+ shl.b64 %rd54, %rd286, 2;
+ mov.u64 %rd55, __cudart_i2opi_f;
+ add.s64 %rd56, %rd55, %rd54;
+ ld.const.u32 %r174, [%rd56];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r172, %r174, %r51, %r372;
+ madc.hi.u32 %r372, %r174, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd285], %r172;
+ add.s32 %r371, %r371, 1;
+ cvt.s64.s32 %rd286, %r371;
+ mul.wide.s32 %rd57, %r371, 4;
+ add.s64 %rd285, %rd280, %rd57;
+ setp.ne.s32 %p27, %r371, 6;
+ @%p27 bra BB0_33;
+
+ mov.b32 %r349, %f856;
+ shr.u32 %r348, %r349, 23;
+ add.u64 %rd282, %SP, 12;
+ and.b32 %r177, %r348, 255;
+ add.s32 %r178, %r177, -128;
+ shr.u32 %r179, %r178, 5;
+ cvta.to.local.u64 %rd59, %rd282;
+ st.local.u32 [%rd59+24], %r372;
+ mov.u32 %r180, 6;
+ sub.s32 %r181, %r180, %r179;
+ mul.wide.s32 %rd60, %r181, 4;
+ add.s64 %rd15, %rd59, %rd60;
+ ld.local.u32 %r373, [%rd15];
+ ld.local.u32 %r374, [%rd15+-4];
+ and.b32 %r59, %r348, 31;
+ setp.eq.s32 %p28, %r59, 0;
+ @%p28 bra BB0_36;
+
+ mov.u32 %r182, 32;
+ sub.s32 %r183, %r182, %r59;
+ shr.u32 %r184, %r374, %r183;
+ shl.b32 %r185, %r373, %r59;
+ add.s32 %r373, %r184, %r185;
+ ld.local.u32 %r186, [%rd15+-8];
+ shr.u32 %r187, %r186, %r183;
+ shl.b32 %r188, %r374, %r59;
+ add.s32 %r374, %r187, %r188;
+
+BB0_36:
+ mov.b32 %r352, %f856;
+ and.b32 %r376, %r352, -2147483648;
+ shr.u32 %r189, %r374, 30;
+ shl.b32 %r190, %r373, 2;
+ add.s32 %r375, %r189, %r190;
+ shl.b32 %r65, %r374, 2;
+ shr.u32 %r191, %r375, 31;
+ shr.u32 %r192, %r373, 30;
+ add.s32 %r66, %r191, %r192;
+ setp.eq.s32 %p29, %r191, 0;
+ @%p29 bra BB0_37;
+ bra.uni BB0_38;
+
+BB0_37:
+ mov.u32 %r377, %r65;
+ bra.uni BB0_39;
+
+BB0_38:
+ mov.b32 %r354, %f856;
+ and.b32 %r353, %r354, -2147483648;
+ not.b32 %r193, %r375;
+ neg.s32 %r377, %r65;
+ setp.eq.s32 %p30, %r65, 0;
+ selp.u32 %r194, 1, 0, %p30;
+ add.s32 %r375, %r194, %r193;
+ xor.b32 %r376, %r353, -2147483648;
+
+BB0_39:
+ mov.b32 %r356, %f856;
+ and.b32 %r355, %r356, -2147483648;
+ clz.b32 %r379, %r375;
+ setp.eq.s32 %p31, %r379, 0;
+ shl.b32 %r195, %r375, %r379;
+ mov.u32 %r196, 32;
+ sub.s32 %r197, %r196, %r379;
+ shr.u32 %r198, %r377, %r197;
+ add.s32 %r199, %r198, %r195;
+ selp.b32 %r74, %r375, %r199, %p31;
+ mov.u32 %r200, -921707870;
+ mul.hi.u32 %r378, %r74, %r200;
+ setp.eq.s32 %p32, %r355, 0;
+ neg.s32 %r201, %r66;
+ selp.b32 %r380, %r66, %r201, %p32;
+ setp.lt.s32 %p33, %r378, 1;
+ @%p33 bra BB0_41;
+
+ mul.lo.s32 %r202, %r74, -921707870;
+ shr.u32 %r203, %r202, 31;
+ shl.b32 %r204, %r378, 1;
+ add.s32 %r378, %r203, %r204;
+ add.s32 %r379, %r379, 1;
+
+BB0_41:
+ mov.u32 %r205, 126;
+ sub.s32 %r206, %r205, %r379;
+ shl.b32 %r207, %r206, 23;
+ add.s32 %r208, %r378, 1;
+ shr.u32 %r209, %r208, 7;
+ add.s32 %r210, %r209, 1;
+ shr.u32 %r211, %r210, 1;
+ add.s32 %r212, %r211, %r207;
+ or.b32 %r213, %r212, %r376;
+ mov.b32 %f857, %r213;
+
+BB0_42:
+ and.b32 %r82, %r380, 1;
+ setp.eq.s32 %p34, %r82, 0;
+ @%p34 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mul.rn.f32 %f782, %f857, %f857;
+ mov.f32 %f341, 0f3C08839E;
+ mov.f32 %f342, 0fB94CA1F9;
+ fma.rn.f32 %f858, %f342, %f782, %f341;
+ bra.uni BB0_45;
+
+BB0_43:
+ mul.rn.f32 %f778, %f857, %f857;
+ mov.f32 %f339, 0fBAB6061A;
+ mov.f32 %f340, 0f37CCF5CE;
+ fma.rn.f32 %f858, %f340, %f778, %f339;
+
+BB0_45:
+ @%p34 bra BB0_47;
+ bra.uni BB0_46;
+
+BB0_47:
+ mul.rn.f32 %f781, %f857, %f857;
+ mov.f32 %f770, 0f00000000;
+ mov.f32 %f346, 0fBE2AAAA3;
+ fma.rn.f32 %f347, %f858, %f781, %f346;
+ fma.rn.f32 %f859, %f347, %f781, %f770;
+ bra.uni BB0_48;
+
+BB0_46:
+ mul.rn.f32 %f779, %f857, %f857;
+ mov.f32 %f343, 0f3D2AAAA5;
+ fma.rn.f32 %f344, %f858, %f779, %f343;
+ mov.f32 %f345, 0fBF000000;
+ fma.rn.f32 %f859, %f344, %f779, %f345;
+
+BB0_48:
+ fma.rn.f32 %f860, %f859, %f857, %f857;
+ @%p34 bra BB0_50;
+
+ mul.rn.f32 %f780, %f857, %f857;
+ mov.f32 %f766, 0f3F800000;
+ fma.rn.f32 %f860, %f859, %f780, %f766;
+
+BB0_50:
+ and.b32 %r214, %r380, 2;
+ setp.eq.s32 %p37, %r214, 0;
+ @%p37 bra BB0_52;
+
+ mov.f32 %f769, 0f00000000;
+ mov.f32 %f351, 0fBF800000;
+ fma.rn.f32 %f860, %f860, %f351, %f769;
+
+BB0_52:
+ mul.f32 %f352, %f52, %f854;
+ mul.f32 %f353, %f52, %f860;
+ mul.f32 %f354, %f10, %f353;
+ mul.f32 %f355, %f11, %f353;
+ mul.f32 %f356, %f12, %f353;
+ fma.rn.f32 %f357, %f19, %f352, %f354;
+ fma.rn.f32 %f358, %f18, %f352, %f355;
+ fma.rn.f32 %f359, %f17, %f352, %f356;
+ fma.rn.f32 %f89, %f817, %f51, %f357;
+ fma.rn.f32 %f90, %f818, %f51, %f358;
+ fma.rn.f32 %f91, %f819, %f51, %f359;
+ setp.gt.f32 %p38, %f90, 0f00000000;
+ setp.eq.s32 %p39, %r5, 0;
+ or.pred %p40, %p39, %p38;
+ @!%p40 bra BB0_54;
+ bra.uni BB0_53;
+
+BB0_53:
+ add.u64 %rd61, %SP, 0;
+ cvta.to.local.u64 %rd62, %rd61;
+ max.f32 %f373, %f379, %f259;
+ ld.global.u32 %r215, [sky];
+ neg.f32 %f366, %f89;
+ neg.f32 %f365, %f90;
+ neg.f32 %f364, %f91;
+ mov.u32 %r216, 6;
+ mov.u32 %r217, 0;
+ // inline asm
+ call (%f360, %f361, %f362, %f363), _rt_texture_get_base_id, (%r215, %r216, %f364, %f365, %f366, %r217);
+ // inline asm
+ st.local.f32 [%rd62], %f360;
+ st.local.f32 [%rd62+4], %f361;
+ st.local.f32 [%rd62+8], %f362;
+ ld.global.u32 %r218, [root];
+ mov.u32 %r219, 1;
+ mov.f32 %f374, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r218, %f7, %f8, %f9, %f89, %f90, %f91, %r219, %f373, %f374, %rd61, %r107);
+ // inline asm
+ mul.f32 %f381, %f818, %f90;
+ fma.rn.f32 %f382, %f817, %f89, %f381;
+ fma.rn.f32 %f383, %f819, %f91, %f382;
+ mul.f32 %f384, %f383, 0f40800000;
+ cvt.sat.f32.f32 %f385, %f384;
+ ld.local.f32 %f386, [%rd62];
+ mul.f32 %f387, %f385, %f386;
+ ld.local.f32 %f388, [%rd62+4];
+ mul.f32 %f389, %f385, %f388;
+ ld.local.f32 %f390, [%rd62+8];
+ mul.f32 %f391, %f385, %f390;
+ fma.rn.f32 %f868, %f89, %f387, %f868;
+ fma.rn.f32 %f869, %f89, %f389, %f869;
+ fma.rn.f32 %f870, %f89, %f391, %f870;
+ fma.rn.f32 %f865, %f90, %f387, %f865;
+ fma.rn.f32 %f866, %f90, %f389, %f866;
+ fma.rn.f32 %f867, %f90, %f391, %f867;
+ fma.rn.f32 %f862, %f91, %f387, %f862;
+ fma.rn.f32 %f863, %f91, %f389, %f863;
+ fma.rn.f32 %f864, %f91, %f391, %f864;
+ add.f32 %f871, %f871, %f387;
+ add.f32 %f872, %f872, %f389;
+ add.f32 %f873, %f873, %f391;
+ cvt.sat.f32.f32 %f392, %f383;
+ fma.rn.f32 %f874, %f392, %f386, %f874;
+ fma.rn.f32 %f875, %f392, %f388, %f875;
+ fma.rn.f32 %f876, %f392, %f390, %f876;
+
+BB0_54:
+ mad.lo.s32 %r337, %r10, 1664525, 1013904223;
+ mad.lo.s32 %r360, %r337, 1664525, 1013904223;
+ add.s32 %r359, %r359, 1;
+ setp.lt.s32 %p41, %r359, %r1;
+ @%p41 bra BB0_6;
+
+ mad.lo.s32 %r339, %r10, 1664525, 1013904223;
+ mad.lo.s32 %r360, %r339, 1664525, 1013904223;
+ add.s32 %r357, %r357, 1;
+ setp.lt.s32 %p42, %r357, %r1;
+ @%p42 bra BB0_5;
+
+BB0_56:
+ mul.lo.s32 %r221, %r1, %r1;
+ cvt.rn.f32.s32 %f393, %r221;
+ rcp.rn.f32 %f394, %f393;
+ mul.f32 %f395, %f874, %f394;
+ mul.f32 %f396, %f875, %f394;
+ mul.f32 %f397, %f876, %f394;
+ mul.f32 %f137, %f871, %f394;
+ mul.f32 %f138, %f872, %f394;
+ mul.f32 %f139, %f873, %f394;
+ mul.f32 %f140, %f868, %f394;
+ mul.f32 %f141, %f869, %f394;
+ mul.f32 %f142, %f870, %f394;
+ mul.f32 %f143, %f865, %f394;
+ mul.f32 %f144, %f866, %f394;
+ mul.f32 %f145, %f867, %f394;
+ mul.f32 %f146, %f862, %f394;
+ mul.f32 %f147, %f863, %f394;
+ mul.f32 %f148, %f864, %f394;
+ fma.rn.f32 %f398, %f874, %f394, %f395;
+ fma.rn.f32 %f399, %f875, %f394, %f396;
+ fma.rn.f32 %f400, %f876, %f394, %f397;
+ ld.global.f32 %f401, [skyColor];
+ mul.f32 %f149, %f401, %f398;
+ ld.global.f32 %f402, [skyColor+4];
+ mul.f32 %f150, %f399, %f402;
+ ld.global.f32 %f403, [skyColor+8];
+ mul.f32 %f151, %f400, %f403;
+ ld.global.u32 %r381, [imageEnabled];
+ and.b32 %r222, %r381, 1;
+ setp.eq.b32 %p43, %r222, 1;
+ @!%p43 bra BB0_91;
+ bra.uni BB0_57;
+
+BB0_57:
+ abs.f32 %f153, %f149;
+ setp.lt.f32 %p44, %f153, 0f00800000;
+ mul.f32 %f409, %f153, 0f4B800000;
+ selp.f32 %f410, 0fC3170000, 0fC2FE0000, %p44;
+ selp.f32 %f411, %f409, %f153, %p44;
+ mov.b32 %r223, %f411;
+ and.b32 %r224, %r223, 8388607;
+ or.b32 %r225, %r224, 1065353216;
+ mov.b32 %f412, %r225;
+ shr.u32 %r226, %r223, 23;
+ cvt.rn.f32.u32 %f413, %r226;
+ add.f32 %f414, %f410, %f413;
+ setp.gt.f32 %p45, %f412, 0f3FB504F3;
+ mul.f32 %f415, %f412, 0f3F000000;
+ add.f32 %f416, %f414, 0f3F800000;
+ selp.f32 %f417, %f415, %f412, %p45;
+ selp.f32 %f418, %f416, %f414, %p45;
+ add.f32 %f419, %f417, 0fBF800000;
+ add.f32 %f405, %f417, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f404,%f405;
+ // inline asm
+ add.f32 %f420, %f419, %f419;
+ mul.f32 %f421, %f404, %f420;
+ mul.f32 %f422, %f421, %f421;
+ mov.f32 %f423, 0f3C4CAF63;
+ mov.f32 %f424, 0f3B18F0FE;
+ fma.rn.f32 %f425, %f424, %f422, %f423;
+ mov.f32 %f426, 0f3DAAAABD;
+ fma.rn.f32 %f427, %f425, %f422, %f426;
+ mul.rn.f32 %f428, %f427, %f422;
+ mul.rn.f32 %f429, %f428, %f421;
+ sub.f32 %f430, %f419, %f421;
+ neg.f32 %f431, %f421;
+ add.f32 %f432, %f430, %f430;
+ fma.rn.f32 %f433, %f431, %f419, %f432;
+ mul.rn.f32 %f434, %f404, %f433;
+ add.f32 %f435, %f429, %f421;
+ sub.f32 %f436, %f421, %f435;
+ add.f32 %f437, %f429, %f436;
+ add.f32 %f438, %f434, %f437;
+ add.f32 %f439, %f435, %f438;
+ sub.f32 %f440, %f435, %f439;
+ add.f32 %f441, %f438, %f440;
+ mov.f32 %f442, 0f3F317200;
+ mul.rn.f32 %f443, %f418, %f442;
+ mov.f32 %f444, 0f35BFBE8E;
+ mul.rn.f32 %f445, %f418, %f444;
+ add.f32 %f446, %f443, %f439;
+ sub.f32 %f447, %f443, %f446;
+ add.f32 %f448, %f439, %f447;
+ add.f32 %f449, %f441, %f448;
+ add.f32 %f450, %f445, %f449;
+ add.f32 %f451, %f446, %f450;
+ sub.f32 %f452, %f446, %f451;
+ add.f32 %f453, %f450, %f452;
+ mov.f32 %f454, 0f3EE66666;
+ mul.rn.f32 %f455, %f454, %f451;
+ neg.f32 %f456, %f455;
+ fma.rn.f32 %f457, %f454, %f451, %f456;
+ fma.rn.f32 %f458, %f454, %f453, %f457;
+ mov.f32 %f459, 0f00000000;
+ fma.rn.f32 %f460, %f459, %f451, %f458;
+ add.rn.f32 %f461, %f455, %f460;
+ neg.f32 %f462, %f461;
+ add.rn.f32 %f463, %f455, %f462;
+ add.rn.f32 %f464, %f463, %f460;
+ mov.b32 %r227, %f461;
+ setp.eq.s32 %p46, %r227, 1118925336;
+ add.s32 %r228, %r227, -1;
+ mov.b32 %f465, %r228;
+ add.f32 %f466, %f464, 0f37000000;
+ selp.f32 %f467, %f465, %f461, %p46;
+ selp.f32 %f154, %f466, %f464, %p46;
+ mul.f32 %f468, %f467, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f469, %f468;
+ mov.f32 %f470, 0fBF317200;
+ fma.rn.f32 %f471, %f469, %f470, %f467;
+ mov.f32 %f472, 0fB5BFBE8E;
+ fma.rn.f32 %f473, %f469, %f472, %f471;
+ mul.f32 %f474, %f473, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f475, %f474;
+ add.f32 %f476, %f469, 0f00000000;
+ ex2.approx.f32 %f477, %f476;
+ mul.f32 %f478, %f475, %f477;
+ setp.lt.f32 %p47, %f467, 0fC2D20000;
+ selp.f32 %f479, 0f00000000, %f478, %p47;
+ setp.gt.f32 %p48, %f467, 0f42D20000;
+ selp.f32 %f892, 0f7F800000, %f479, %p48;
+ setp.eq.f32 %p49, %f892, 0f7F800000;
+ @%p49 bra BB0_59;
+
+ fma.rn.f32 %f892, %f892, %f154, %f892;
+
+BB0_59:
+ mov.f32 %f786, 0f3E666666;
+ cvt.rzi.f32.f32 %f785, %f786;
+ fma.rn.f32 %f784, %f785, 0fC0000000, 0f3EE66666;
+ abs.f32 %f783, %f784;
+ setp.lt.f32 %p50, %f149, 0f00000000;
+ setp.eq.f32 %p51, %f783, 0f3F800000;
+ and.pred %p1, %p50, %p51;
+ mov.b32 %r229, %f892;
+ xor.b32 %r230, %r229, -2147483648;
+ mov.b32 %f480, %r230;
+ selp.f32 %f894, %f480, %f892, %p1;
+ setp.eq.f32 %p52, %f149, 0f00000000;
+ @%p52 bra BB0_62;
+ bra.uni BB0_60;
+
+BB0_62:
+ add.f32 %f483, %f149, %f149;
+ selp.f32 %f894, %f483, 0f00000000, %p51;
+ bra.uni BB0_63;
+
+BB0_112:
+ mov.u64 %rd196, image_HDR;
+ cvta.global.u64 %rd191, %rd196;
+ mov.u32 %r301, 8;
+ mov.u64 %rd195, 0;
+ // inline asm
+ call (%rd190), _rt_buffer_get_64, (%rd191, %r91, %r301, %rd18, %rd19, %rd195, %rd195);
+ // inline asm
+ mov.f32 %f732, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs100, %f732;}
+
+ // inline asm
+ mov.u16 %rs101, 0;
+ st.v4.u16 [%rd190], {%rs100, %rs100, %rs100, %rs101};
+
+BB0_113:
+ ld.global.u32 %r302, [additive];
+ setp.eq.s32 %p101, %r302, 0;
+ @%p101 bra BB0_115;
+
+ mov.u64 %rd209, image_RNM0;
+ cvta.global.u64 %rd198, %rd209;
+ mov.u32 %r306, 8;
+ mov.u64 %rd208, 0;
+ // inline asm
+ call (%rd197), _rt_buffer_get_64, (%rd198, %r91, %r306, %rd18, %rd19, %rd208, %rd208);
+ // inline asm
+ ld.v4.u16 {%rs108, %rs109, %rs110, %rs111}, [%rd197];
+ // inline asm
+ { cvt.f32.f16 %f733, %rs108;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f734, %rs109;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f735, %rs110;}
+
+ // inline asm
+ // inline asm
+ call (%rd203), _rt_buffer_get_64, (%rd198, %r91, %r306, %rd18, %rd19, %rd208, %rd208);
+ // inline asm
+ add.f32 %f736, %f733, 0f00000000;
+ add.f32 %f737, %f734, 0f00000000;
+ add.f32 %f738, %f735, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs107, %f738;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs106, %f737;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f736;}
+
+ // inline asm
+ mov.u16 %rs112, 0;
+ st.v4.u16 [%rd203], {%rs105, %rs106, %rs107, %rs112};
+ bra.uni BB0_116;
+
+BB0_115:
+ mov.u64 %rd216, image_RNM0;
+ cvta.global.u64 %rd211, %rd216;
+ mov.u32 %r308, 8;
+ mov.u64 %rd215, 0;
+ // inline asm
+ call (%rd210), _rt_buffer_get_64, (%rd211, %r91, %r308, %rd18, %rd19, %rd215, %rd215);
+ // inline asm
+ mov.f32 %f739, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs113, %f739;}
+
+ // inline asm
+ mov.u16 %rs114, 0;
+ st.v4.u16 [%rd210], {%rs113, %rs113, %rs113, %rs114};
+
+BB0_116:
+ ld.global.u32 %r309, [additive];
+ setp.eq.s32 %p102, %r309, 0;
+ @%p102 bra BB0_118;
+
+ mov.u64 %rd229, image_RNM1;
+ cvta.global.u64 %rd218, %rd229;
+ mov.u32 %r313, 8;
+ mov.u64 %rd228, 0;
+ // inline asm
+ call (%rd217), _rt_buffer_get_64, (%rd218, %r91, %r313, %rd18, %rd19, %rd228, %rd228);
+ // inline asm
+ ld.v4.u16 {%rs121, %rs122, %rs123, %rs124}, [%rd217];
+ // inline asm
+ { cvt.f32.f16 %f740, %rs121;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f741, %rs122;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f742, %rs123;}
+
+ // inline asm
+ // inline asm
+ call (%rd223), _rt_buffer_get_64, (%rd218, %r91, %r313, %rd18, %rd19, %rd228, %rd228);
+ // inline asm
+ add.f32 %f743, %f740, 0f00000000;
+ add.f32 %f744, %f741, 0f00000000;
+ add.f32 %f745, %f742, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs120, %f745;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs119, %f744;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs118, %f743;}
+
+ // inline asm
+ mov.u16 %rs125, 0;
+ st.v4.u16 [%rd223], {%rs118, %rs119, %rs120, %rs125};
+ bra.uni BB0_119;
+
+BB0_118:
+ mov.u64 %rd236, image_RNM1;
+ cvta.global.u64 %rd231, %rd236;
+ mov.u32 %r315, 8;
+ mov.u64 %rd235, 0;
+ // inline asm
+ call (%rd230), _rt_buffer_get_64, (%rd231, %r91, %r315, %rd18, %rd19, %rd235, %rd235);
+ // inline asm
+ mov.f32 %f746, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs126, %f746;}
+
+ // inline asm
+ mov.u16 %rs127, 0;
+ st.v4.u16 [%rd230], {%rs126, %rs126, %rs126, %rs127};
+
+BB0_119:
+ ld.global.u32 %r316, [additive];
+ setp.eq.s32 %p103, %r316, 0;
+ @%p103 bra BB0_121;
+
+ mov.u64 %rd249, image_RNM2;
+ cvta.global.u64 %rd238, %rd249;
+ mov.u32 %r320, 8;
+ mov.u64 %rd248, 0;
+ // inline asm
+ call (%rd237), _rt_buffer_get_64, (%rd238, %r91, %r320, %rd18, %rd19, %rd248, %rd248);
+ // inline asm
+ ld.v4.u16 {%rs134, %rs135, %rs136, %rs137}, [%rd237];
+ // inline asm
+ { cvt.f32.f16 %f747, %rs134;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f748, %rs135;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f749, %rs136;}
+
+ // inline asm
+ // inline asm
+ call (%rd243), _rt_buffer_get_64, (%rd238, %r91, %r320, %rd18, %rd19, %rd248, %rd248);
+ // inline asm
+ add.f32 %f750, %f747, 0f00000000;
+ add.f32 %f751, %f748, 0f00000000;
+ add.f32 %f752, %f749, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f752;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs132, %f751;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs131, %f750;}
+
+ // inline asm
+ mov.u16 %rs138, 0;
+ st.v4.u16 [%rd243], {%rs131, %rs132, %rs133, %rs138};
+ bra.uni BB0_122;
+
+BB0_121:
+ mov.u64 %rd256, image_RNM2;
+ cvta.global.u64 %rd251, %rd256;
+ mov.u32 %r322, 8;
+ mov.u64 %rd255, 0;
+ // inline asm
+ call (%rd250), _rt_buffer_get_64, (%rd251, %r91, %r322, %rd18, %rd19, %rd255, %rd255);
+ // inline asm
+ mov.f32 %f753, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs139, %f753;}
+
+ // inline asm
+ mov.u16 %rs140, 0;
+ st.v4.u16 [%rd250], {%rs139, %rs139, %rs139, %rs140};
+
+BB0_122:
+ ld.global.u32 %r323, [additive];
+ setp.eq.s32 %p104, %r323, 0;
+ @%p104 bra BB0_124;
+
+ mov.u64 %rd269, image_RNM3;
+ cvta.global.u64 %rd258, %rd269;
+ mov.u32 %r327, 8;
+ mov.u64 %rd268, 0;
+ // inline asm
+ call (%rd257), _rt_buffer_get_64, (%rd258, %r91, %r327, %rd18, %rd19, %rd268, %rd268);
+ // inline asm
+ ld.v4.u16 {%rs147, %rs148, %rs149, %rs150}, [%rd257];
+ // inline asm
+ { cvt.f32.f16 %f754, %rs147;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f755, %rs148;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f756, %rs149;}
+
+ // inline asm
+ // inline asm
+ call (%rd263), _rt_buffer_get_64, (%rd258, %r91, %r327, %rd18, %rd19, %rd268, %rd268);
+ // inline asm
+ add.f32 %f757, %f754, 0f00000000;
+ add.f32 %f758, %f755, 0f00000000;
+ add.f32 %f759, %f756, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f759;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f758;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs144, %f757;}
+
+ // inline asm
+ mov.u16 %rs151, 0;
+ st.v4.u16 [%rd263], {%rs144, %rs145, %rs146, %rs151};
+ bra.uni BB0_125;
+
+BB0_124:
+ mov.u64 %rd276, image_RNM3;
+ cvta.global.u64 %rd271, %rd276;
+ mov.u32 %r329, 8;
+ mov.u64 %rd275, 0;
+ // inline asm
+ call (%rd270), _rt_buffer_get_64, (%rd271, %r91, %r329, %rd18, %rd19, %rd275, %rd275);
+ // inline asm
+ mov.f32 %f760, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f760;}
+
+ // inline asm
+ mov.u16 %rs153, 0;
+ st.v4.u16 [%rd270], {%rs152, %rs152, %rs152, %rs153};
+ bra.uni BB0_125;
+
+BB0_60:
+ setp.geu.f32 %p53, %f149, 0f00000000;
+ @%p53 bra BB0_63;
+
+ mov.f32 %f810, 0f3EE66666;
+ cvt.rzi.f32.f32 %f482, %f810;
+ setp.neu.f32 %p54, %f482, 0f3EE66666;
+ selp.f32 %f894, 0f7FFFFFFF, %f894, %p54;
+
+BB0_63:
+ abs.f32 %f787, %f149;
+ add.f32 %f484, %f787, 0f3EE66666;
+ mov.b32 %r231, %f484;
+ setp.lt.s32 %p56, %r231, 2139095040;
+ @%p56 bra BB0_68;
+
+ abs.f32 %f808, %f149;
+ setp.gtu.f32 %p57, %f808, 0f7F800000;
+ @%p57 bra BB0_67;
+ bra.uni BB0_65;
+
+BB0_67:
+ add.f32 %f894, %f149, 0f3EE66666;
+ bra.uni BB0_68;
+
+BB0_65:
+ abs.f32 %f809, %f149;
+ setp.neu.f32 %p58, %f809, 0f7F800000;
+ @%p58 bra BB0_68;
+
+ selp.f32 %f894, 0fFF800000, 0f7F800000, %p1;
+
+BB0_68:
+ mov.f32 %f796, 0fB5BFBE8E;
+ mov.f32 %f795, 0fBF317200;
+ mov.f32 %f794, 0f00000000;
+ mov.f32 %f793, 0f35BFBE8E;
+ mov.f32 %f792, 0f3F317200;
+ mov.f32 %f791, 0f3DAAAABD;
+ mov.f32 %f790, 0f3C4CAF63;
+ mov.f32 %f789, 0f3B18F0FE;
+ mov.f32 %f788, 0f3EE66666;
+ setp.eq.f32 %p59, %f149, 0f3F800000;
+ selp.f32 %f165, 0f3F800000, %f894, %p59;
+ abs.f32 %f166, %f150;
+ setp.lt.f32 %p60, %f166, 0f00800000;
+ mul.f32 %f487, %f166, 0f4B800000;
+ selp.f32 %f488, 0fC3170000, 0fC2FE0000, %p60;
+ selp.f32 %f489, %f487, %f166, %p60;
+ mov.b32 %r232, %f489;
+ and.b32 %r233, %r232, 8388607;
+ or.b32 %r234, %r233, 1065353216;
+ mov.b32 %f490, %r234;
+ shr.u32 %r235, %r232, 23;
+ cvt.rn.f32.u32 %f491, %r235;
+ add.f32 %f492, %f488, %f491;
+ setp.gt.f32 %p61, %f490, 0f3FB504F3;
+ mul.f32 %f493, %f490, 0f3F000000;
+ add.f32 %f494, %f492, 0f3F800000;
+ selp.f32 %f495, %f493, %f490, %p61;
+ selp.f32 %f496, %f494, %f492, %p61;
+ add.f32 %f497, %f495, 0fBF800000;
+ add.f32 %f486, %f495, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f485,%f486;
+ // inline asm
+ add.f32 %f498, %f497, %f497;
+ mul.f32 %f499, %f485, %f498;
+ mul.f32 %f500, %f499, %f499;
+ fma.rn.f32 %f503, %f789, %f500, %f790;
+ fma.rn.f32 %f505, %f503, %f500, %f791;
+ mul.rn.f32 %f506, %f505, %f500;
+ mul.rn.f32 %f507, %f506, %f499;
+ sub.f32 %f508, %f497, %f499;
+ neg.f32 %f509, %f499;
+ add.f32 %f510, %f508, %f508;
+ fma.rn.f32 %f511, %f509, %f497, %f510;
+ mul.rn.f32 %f512, %f485, %f511;
+ add.f32 %f513, %f507, %f499;
+ sub.f32 %f514, %f499, %f513;
+ add.f32 %f515, %f507, %f514;
+ add.f32 %f516, %f512, %f515;
+ add.f32 %f517, %f513, %f516;
+ sub.f32 %f518, %f513, %f517;
+ add.f32 %f519, %f516, %f518;
+ mul.rn.f32 %f521, %f496, %f792;
+ mul.rn.f32 %f523, %f496, %f793;
+ add.f32 %f524, %f521, %f517;
+ sub.f32 %f525, %f521, %f524;
+ add.f32 %f526, %f517, %f525;
+ add.f32 %f527, %f519, %f526;
+ add.f32 %f528, %f523, %f527;
+ add.f32 %f529, %f524, %f528;
+ sub.f32 %f530, %f524, %f529;
+ add.f32 %f531, %f528, %f530;
+ mul.rn.f32 %f533, %f788, %f529;
+ neg.f32 %f534, %f533;
+ fma.rn.f32 %f535, %f788, %f529, %f534;
+ fma.rn.f32 %f536, %f788, %f531, %f535;
+ fma.rn.f32 %f538, %f794, %f529, %f536;
+ add.rn.f32 %f539, %f533, %f538;
+ neg.f32 %f540, %f539;
+ add.rn.f32 %f541, %f533, %f540;
+ add.rn.f32 %f542, %f541, %f538;
+ mov.b32 %r236, %f539;
+ setp.eq.s32 %p62, %r236, 1118925336;
+ add.s32 %r237, %r236, -1;
+ mov.b32 %f543, %r237;
+ add.f32 %f544, %f542, 0f37000000;
+ selp.f32 %f545, %f543, %f539, %p62;
+ selp.f32 %f167, %f544, %f542, %p62;
+ mul.f32 %f546, %f545, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f547, %f546;
+ fma.rn.f32 %f549, %f547, %f795, %f545;
+ fma.rn.f32 %f551, %f547, %f796, %f549;
+ mul.f32 %f552, %f551, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f553, %f552;
+ add.f32 %f554, %f547, 0f00000000;
+ ex2.approx.f32 %f555, %f554;
+ mul.f32 %f556, %f553, %f555;
+ setp.lt.f32 %p63, %f545, 0fC2D20000;
+ selp.f32 %f557, 0f00000000, %f556, %p63;
+ setp.gt.f32 %p64, %f545, 0f42D20000;
+ selp.f32 %f895, 0f7F800000, %f557, %p64;
+ setp.eq.f32 %p65, %f895, 0f7F800000;
+ @%p65 bra BB0_70;
+
+ fma.rn.f32 %f895, %f895, %f167, %f895;
+
+BB0_70:
+ setp.lt.f32 %p66, %f150, 0f00000000;
+ and.pred %p2, %p66, %p51;
+ mov.b32 %r238, %f895;
+ xor.b32 %r239, %r238, -2147483648;
+ mov.b32 %f558, %r239;
+ selp.f32 %f897, %f558, %f895, %p2;
+ setp.eq.f32 %p68, %f150, 0f00000000;
+ @%p68 bra BB0_73;
+ bra.uni BB0_71;
+
+BB0_73:
+ add.f32 %f561, %f150, %f150;
+ selp.f32 %f897, %f561, 0f00000000, %p51;
+ bra.uni BB0_74;
+
+BB0_71:
+ setp.geu.f32 %p69, %f150, 0f00000000;
+ @%p69 bra BB0_74;
+
+ mov.f32 %f807, 0f3EE66666;
+ cvt.rzi.f32.f32 %f560, %f807;
+ setp.neu.f32 %p70, %f560, 0f3EE66666;
+ selp.f32 %f897, 0f7FFFFFFF, %f897, %p70;
+
+BB0_74:
+ abs.f32 %f811, %f150;
+ add.f32 %f562, %f811, 0f3EE66666;
+ mov.b32 %r240, %f562;
+ setp.lt.s32 %p72, %r240, 2139095040;
+ @%p72 bra BB0_79;
+
+ abs.f32 %f812, %f150;
+ setp.gtu.f32 %p73, %f812, 0f7F800000;
+ @%p73 bra BB0_78;
+ bra.uni BB0_76;
+
+BB0_78:
+ add.f32 %f897, %f150, 0f3EE66666;
+ bra.uni BB0_79;
+
+BB0_76:
+ abs.f32 %f813, %f150;
+ setp.neu.f32 %p74, %f813, 0f7F800000;
+ @%p74 bra BB0_79;
+
+ selp.f32 %f897, 0fFF800000, 0f7F800000, %p2;
+
+BB0_79:
+ mov.f32 %f805, 0fB5BFBE8E;
+ mov.f32 %f804, 0fBF317200;
+ mov.f32 %f803, 0f00000000;
+ mov.f32 %f802, 0f35BFBE8E;
+ mov.f32 %f801, 0f3F317200;
+ mov.f32 %f800, 0f3DAAAABD;
+ mov.f32 %f799, 0f3C4CAF63;
+ mov.f32 %f798, 0f3B18F0FE;
+ mov.f32 %f797, 0f3EE66666;
+ setp.eq.f32 %p75, %f150, 0f3F800000;
+ selp.f32 %f178, 0f3F800000, %f897, %p75;
+ abs.f32 %f179, %f151;
+ setp.lt.f32 %p76, %f179, 0f00800000;
+ mul.f32 %f565, %f179, 0f4B800000;
+ selp.f32 %f566, 0fC3170000, 0fC2FE0000, %p76;
+ selp.f32 %f567, %f565, %f179, %p76;
+ mov.b32 %r241, %f567;
+ and.b32 %r242, %r241, 8388607;
+ or.b32 %r243, %r242, 1065353216;
+ mov.b32 %f568, %r243;
+ shr.u32 %r244, %r241, 23;
+ cvt.rn.f32.u32 %f569, %r244;
+ add.f32 %f570, %f566, %f569;
+ setp.gt.f32 %p77, %f568, 0f3FB504F3;
+ mul.f32 %f571, %f568, 0f3F000000;
+ add.f32 %f572, %f570, 0f3F800000;
+ selp.f32 %f573, %f571, %f568, %p77;
+ selp.f32 %f574, %f572, %f570, %p77;
+ add.f32 %f575, %f573, 0fBF800000;
+ add.f32 %f564, %f573, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f563,%f564;
+ // inline asm
+ add.f32 %f576, %f575, %f575;
+ mul.f32 %f577, %f563, %f576;
+ mul.f32 %f578, %f577, %f577;
+ fma.rn.f32 %f581, %f798, %f578, %f799;
+ fma.rn.f32 %f583, %f581, %f578, %f800;
+ mul.rn.f32 %f584, %f583, %f578;
+ mul.rn.f32 %f585, %f584, %f577;
+ sub.f32 %f586, %f575, %f577;
+ neg.f32 %f587, %f577;
+ add.f32 %f588, %f586, %f586;
+ fma.rn.f32 %f589, %f587, %f575, %f588;
+ mul.rn.f32 %f590, %f563, %f589;
+ add.f32 %f591, %f585, %f577;
+ sub.f32 %f592, %f577, %f591;
+ add.f32 %f593, %f585, %f592;
+ add.f32 %f594, %f590, %f593;
+ add.f32 %f595, %f591, %f594;
+ sub.f32 %f596, %f591, %f595;
+ add.f32 %f597, %f594, %f596;
+ mul.rn.f32 %f599, %f574, %f801;
+ mul.rn.f32 %f601, %f574, %f802;
+ add.f32 %f602, %f599, %f595;
+ sub.f32 %f603, %f599, %f602;
+ add.f32 %f604, %f595, %f603;
+ add.f32 %f605, %f597, %f604;
+ add.f32 %f606, %f601, %f605;
+ add.f32 %f607, %f602, %f606;
+ sub.f32 %f608, %f602, %f607;
+ add.f32 %f609, %f606, %f608;
+ mul.rn.f32 %f611, %f797, %f607;
+ neg.f32 %f612, %f611;
+ fma.rn.f32 %f613, %f797, %f607, %f612;
+ fma.rn.f32 %f614, %f797, %f609, %f613;
+ fma.rn.f32 %f616, %f803, %f607, %f614;
+ add.rn.f32 %f617, %f611, %f616;
+ neg.f32 %f618, %f617;
+ add.rn.f32 %f619, %f611, %f618;
+ add.rn.f32 %f620, %f619, %f616;
+ mov.b32 %r245, %f617;
+ setp.eq.s32 %p78, %r245, 1118925336;
+ add.s32 %r246, %r245, -1;
+ mov.b32 %f621, %r246;
+ add.f32 %f622, %f620, 0f37000000;
+ selp.f32 %f623, %f621, %f617, %p78;
+ selp.f32 %f180, %f622, %f620, %p78;
+ mul.f32 %f624, %f623, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f625, %f624;
+ fma.rn.f32 %f627, %f625, %f804, %f623;
+ fma.rn.f32 %f629, %f625, %f805, %f627;
+ mul.f32 %f630, %f629, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f631, %f630;
+ add.f32 %f632, %f625, 0f00000000;
+ ex2.approx.f32 %f633, %f632;
+ mul.f32 %f634, %f631, %f633;
+ setp.lt.f32 %p79, %f623, 0fC2D20000;
+ selp.f32 %f635, 0f00000000, %f634, %p79;
+ setp.gt.f32 %p80, %f623, 0f42D20000;
+ selp.f32 %f898, 0f7F800000, %f635, %p80;
+ setp.eq.f32 %p81, %f898, 0f7F800000;
+ @%p81 bra BB0_81;
+
+ fma.rn.f32 %f898, %f898, %f180, %f898;
+
+BB0_81:
+ setp.lt.f32 %p82, %f151, 0f00000000;
+ and.pred %p3, %p82, %p51;
+ mov.b32 %r247, %f898;
+ xor.b32 %r248, %r247, -2147483648;
+ mov.b32 %f636, %r248;
+ selp.f32 %f900, %f636, %f898, %p3;
+ setp.eq.f32 %p84, %f151, 0f00000000;
+ @%p84 bra BB0_84;
+ bra.uni BB0_82;
+
+BB0_84:
+ add.f32 %f639, %f151, %f151;
+ selp.f32 %f900, %f639, 0f00000000, %p51;
+ bra.uni BB0_85;
+
+BB0_82:
+ setp.geu.f32 %p85, %f151, 0f00000000;
+ @%p85 bra BB0_85;
+
+ mov.f32 %f806, 0f3EE66666;
+ cvt.rzi.f32.f32 %f638, %f806;
+ setp.neu.f32 %p86, %f638, 0f3EE66666;
+ selp.f32 %f900, 0f7FFFFFFF, %f900, %p86;
+
+BB0_85:
+ abs.f32 %f814, %f151;
+ add.f32 %f640, %f814, 0f3EE66666;
+ mov.b32 %r249, %f640;
+ setp.lt.s32 %p88, %r249, 2139095040;
+ @%p88 bra BB0_90;
+
+ abs.f32 %f815, %f151;
+ setp.gtu.f32 %p89, %f815, 0f7F800000;
+ @%p89 bra BB0_89;
+ bra.uni BB0_87;
+
+BB0_89:
+ add.f32 %f900, %f151, 0f3EE66666;
+ bra.uni BB0_90;
+
+BB0_87:
+ abs.f32 %f816, %f151;
+ setp.neu.f32 %p90, %f816, 0f7F800000;
+ @%p90 bra BB0_90;
+
+ selp.f32 %f900, 0fFF800000, 0f7F800000, %p3;
+
+BB0_90:
+ mov.u32 %r340, 4;
+ setp.eq.f32 %p91, %f151, 0f3F800000;
+ selp.f32 %f641, 0f3F800000, %f900, %p91;
+ cvt.u64.u32 %rd66, %r4;
+ cvt.u64.u32 %rd65, %r3;
+ mov.u64 %rd69, image;
+ cvta.global.u64 %rd64, %rd69;
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd64, %r91, %r340, %rd65, %rd66, %rd25, %rd25);
+ // inline asm
+ cvt.sat.f32.f32 %f642, %f641;
+ mul.f32 %f643, %f642, 0f437FFD71;
+ cvt.rzi.u32.f32 %r252, %f643;
+ cvt.sat.f32.f32 %f644, %f178;
+ mul.f32 %f645, %f644, 0f437FFD71;
+ cvt.rzi.u32.f32 %r253, %f645;
+ cvt.sat.f32.f32 %f646, %f165;
+ mul.f32 %f647, %f646, 0f437FFD71;
+ cvt.rzi.u32.f32 %r254, %f647;
+ cvt.u16.u32 %rs14, %r252;
+ cvt.u16.u32 %rs15, %r254;
+ cvt.u16.u32 %rs16, %r253;
+ mov.u16 %rs17, 255;
+ st.v4.u8 [%rd63], {%rs14, %rs16, %rs15, %rs17};
+ ld.global.u32 %r381, [imageEnabled];
+
+BB0_91:
+ cvt.u64.u32 %rd16, %r3;
+ cvt.u64.u32 %rd17, %r4;
+ and.b32 %r255, %r381, 4;
+ setp.eq.s32 %p92, %r255, 0;
+ @%p92 bra BB0_95;
+
+ ld.global.u32 %r256, [additive];
+ setp.eq.s32 %p93, %r256, 0;
+ mov.f32 %f648, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs18, %f648;}
+
+ // inline asm
+ @%p93 bra BB0_94;
+
+ mov.u64 %rd82, image_HDR;
+ cvta.global.u64 %rd71, %rd82;
+ mov.u32 %r260, 8;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd71, %r91, %r260, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs25, %rs26, %rs27, %rs28}, [%rd70];
+ // inline asm
+ { cvt.f32.f16 %f649, %rs25;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f650, %rs26;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f651, %rs27;}
+
+ // inline asm
+ // inline asm
+ call (%rd76), _rt_buffer_get_64, (%rd71, %r91, %r260, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f652, %f149, %f649;
+ add.f32 %f653, %f150, %f650;
+ add.f32 %f654, %f151, %f651;
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f654;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f653;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f652;}
+
+ // inline asm
+ st.v4.u16 [%rd76], {%rs22, %rs23, %rs24, %rs18};
+ bra.uni BB0_95;
+
+BB0_94:
+ mov.u64 %rd89, image_HDR;
+ cvta.global.u64 %rd84, %rd89;
+ mov.u32 %r262, 8;
+ // inline asm
+ call (%rd83), _rt_buffer_get_64, (%rd84, %r91, %r262, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f151;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f150;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f149;}
+
+ // inline asm
+ st.v4.u16 [%rd83], {%rs29, %rs30, %rs31, %rs18};
+
+BB0_95:
+ ld.global.f32 %f659, [skyColor];
+ mul.f32 %f660, %f137, %f659;
+ ld.global.f32 %f661, [skyColor+4];
+ mul.f32 %f662, %f138, %f661;
+ ld.global.f32 %f663, [skyColor+8];
+ mul.f32 %f664, %f139, %f663;
+ mul.f32 %f191, %f140, %f659;
+ mul.f32 %f192, %f141, %f661;
+ mul.f32 %f193, %f142, %f663;
+ mul.f32 %f194, %f143, %f659;
+ mul.f32 %f195, %f144, %f661;
+ mul.f32 %f196, %f145, %f663;
+ mul.f32 %f197, %f146, %f659;
+ mul.f32 %f198, %f147, %f661;
+ mul.f32 %f199, %f148, %f663;
+ mul.f32 %f200, %f660, 0f3F000000;
+ mul.f32 %f201, %f662, 0f3F000000;
+ mul.f32 %f202, %f664, 0f3F000000;
+ ld.global.u32 %r263, [additive];
+ setp.eq.s32 %p94, %r263, 0;
+ mov.f32 %f658, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f658;}
+
+ // inline asm
+ @%p94 bra BB0_97;
+
+ mov.u64 %rd102, image_RNM0;
+ cvta.global.u64 %rd91, %rd102;
+ mov.u32 %r267, 8;
+ // inline asm
+ call (%rd90), _rt_buffer_get_64, (%rd91, %r91, %r267, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs39, %rs40, %rs41, %rs42}, [%rd90];
+ // inline asm
+ { cvt.f32.f16 %f665, %rs39;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f666, %rs40;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f667, %rs41;}
+
+ // inline asm
+ // inline asm
+ call (%rd96), _rt_buffer_get_64, (%rd91, %r91, %r267, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f668, %f200, %f665;
+ add.f32 %f669, %f201, %f666;
+ add.f32 %f670, %f202, %f667;
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f670;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f669;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f668;}
+
+ // inline asm
+ st.v4.u16 [%rd96], {%rs36, %rs37, %rs38, %rs32};
+ bra.uni BB0_98;
+
+BB0_97:
+ mov.u64 %rd109, image_RNM0;
+ cvta.global.u64 %rd104, %rd109;
+ mov.u32 %r269, 8;
+ // inline asm
+ call (%rd103), _rt_buffer_get_64, (%rd104, %r91, %r269, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f202;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f201;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f200;}
+
+ // inline asm
+ st.v4.u16 [%rd103], {%rs43, %rs44, %rs45, %rs32};
+
+BB0_98:
+ mov.f32 %f675, 0f34000000;
+ max.f32 %f676, %f200, %f675;
+ mul.f32 %f677, %f191, 0f3F000000;
+ div.rn.f32 %f678, %f677, %f676;
+ max.f32 %f679, %f201, %f675;
+ mul.f32 %f680, %f192, 0f3F000000;
+ div.rn.f32 %f681, %f680, %f679;
+ max.f32 %f682, %f202, %f675;
+ mul.f32 %f683, %f193, 0f3F000000;
+ div.rn.f32 %f684, %f683, %f682;
+ fma.rn.f32 %f203, %f678, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f204, %f681, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f205, %f684, 0f3F000000, 0f3F000000;
+ mul.f32 %f685, %f194, 0f3F000000;
+ div.rn.f32 %f686, %f685, %f676;
+ mul.f32 %f687, %f195, 0f3F000000;
+ div.rn.f32 %f688, %f687, %f679;
+ mul.f32 %f689, %f196, 0f3F000000;
+ div.rn.f32 %f690, %f689, %f682;
+ fma.rn.f32 %f206, %f686, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f207, %f688, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f208, %f690, 0f3F000000, 0f3F000000;
+ mul.f32 %f691, %f197, 0f3F000000;
+ div.rn.f32 %f692, %f691, %f676;
+ mul.f32 %f693, %f198, 0f3F000000;
+ div.rn.f32 %f694, %f693, %f679;
+ mul.f32 %f695, %f199, 0f3F000000;
+ div.rn.f32 %f696, %f695, %f682;
+ fma.rn.f32 %f209, %f692, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f210, %f694, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f211, %f696, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r270, [additive];
+ setp.eq.s32 %p95, %r270, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f658;}
+
+ // inline asm
+ @%p95 bra BB0_100;
+
+ mov.u64 %rd122, image_RNM1;
+ cvta.global.u64 %rd111, %rd122;
+ mov.u32 %r274, 8;
+ // inline asm
+ call (%rd110), _rt_buffer_get_64, (%rd111, %r91, %r274, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs53, %rs54, %rs55, %rs56}, [%rd110];
+ // inline asm
+ { cvt.f32.f16 %f697, %rs53;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f698, %rs54;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f699, %rs55;}
+
+ // inline asm
+ // inline asm
+ call (%rd116), _rt_buffer_get_64, (%rd111, %r91, %r274, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f700, %f203, %f697;
+ add.f32 %f701, %f204, %f698;
+ add.f32 %f702, %f205, %f699;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f702;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f701;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f700;}
+
+ // inline asm
+ st.v4.u16 [%rd116], {%rs50, %rs51, %rs52, %rs46};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd129, image_RNM1;
+ cvta.global.u64 %rd124, %rd129;
+ mov.u32 %r276, 8;
+ // inline asm
+ call (%rd123), _rt_buffer_get_64, (%rd124, %r91, %r276, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f205;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f204;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f203;}
+
+ // inline asm
+ st.v4.u16 [%rd123], {%rs57, %rs58, %rs59, %rs46};
+
+BB0_101:
+ ld.global.u32 %r277, [additive];
+ setp.eq.s32 %p96, %r277, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f658;}
+
+ // inline asm
+ @%p96 bra BB0_103;
+
+ mov.u64 %rd142, image_RNM2;
+ cvta.global.u64 %rd131, %rd142;
+ mov.u32 %r281, 8;
+ // inline asm
+ call (%rd130), _rt_buffer_get_64, (%rd131, %r91, %r281, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd130];
+ // inline asm
+ { cvt.f32.f16 %f707, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f708, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f709, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd136), _rt_buffer_get_64, (%rd131, %r91, %r281, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f710, %f206, %f707;
+ add.f32 %f711, %f207, %f708;
+ add.f32 %f712, %f208, %f709;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f712;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f711;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f710;}
+
+ // inline asm
+ st.v4.u16 [%rd136], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_104;
+
+BB0_103:
+ mov.u64 %rd149, image_RNM2;
+ cvta.global.u64 %rd144, %rd149;
+ mov.u32 %r283, 8;
+ // inline asm
+ call (%rd143), _rt_buffer_get_64, (%rd144, %r91, %r283, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f208;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f207;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f206;}
+
+ // inline asm
+ st.v4.u16 [%rd143], {%rs71, %rs72, %rs73, %rs60};
+
+BB0_104:
+ ld.global.u32 %r284, [additive];
+ setp.eq.s32 %p97, %r284, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f658;}
+
+ // inline asm
+ @%p97 bra BB0_106;
+
+ mov.u64 %rd162, image_RNM3;
+ cvta.global.u64 %rd151, %rd162;
+ mov.u32 %r288, 8;
+ // inline asm
+ call (%rd150), _rt_buffer_get_64, (%rd151, %r91, %r288, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs81, %rs82, %rs83, %rs84}, [%rd150];
+ // inline asm
+ { cvt.f32.f16 %f717, %rs81;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f718, %rs82;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f719, %rs83;}
+
+ // inline asm
+ // inline asm
+ call (%rd156), _rt_buffer_get_64, (%rd151, %r91, %r288, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f720, %f209, %f717;
+ add.f32 %f721, %f210, %f718;
+ add.f32 %f722, %f211, %f719;
+ // inline asm
+ { cvt.rn.f16.f32 %rs80, %f722;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs79, %f721;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f720;}
+
+ // inline asm
+ st.v4.u16 [%rd156], {%rs78, %rs79, %rs80, %rs74};
+ bra.uni BB0_125;
+
+BB0_106:
+ mov.u64 %rd169, image_RNM3;
+ cvta.global.u64 %rd164, %rd169;
+ mov.u32 %r290, 8;
+ // inline asm
+ call (%rd163), _rt_buffer_get_64, (%rd164, %r91, %r290, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f211;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f210;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f209;}
+
+ // inline asm
+ st.v4.u16 [%rd163], {%rs85, %rs86, %rs87, %rs74};
+
+BB0_125:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapSH.ptx.meta
new file mode 100644
index 00000000..e93ec5d6
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyCubemapSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a6c1a03eceb6e2743b2b8a4a10e9d536
+timeCreated: 1537562646
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyDir.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyDir.ptx
new file mode 100644
index 00000000..0084bde5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyDir.ptx
@@ -0,0 +1,1420 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Dir[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .texref sky;
+.global .align 4 .b8 skyColor[12];
+.global .align 4 .u32 samples;
+.global .align 4 .u32 hemispherical;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8skyColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13hemisphericalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8skyColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename13hemisphericalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8skyColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13hemisphericalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8skyColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13hemisphericalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8skyColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13hemisphericalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<99>;
+ .reg .b16 %rs<51>;
+ .reg .f32 %f<620>;
+ .reg .b32 %r<311>;
+ .reg .b64 %rd<129>;
+
+
+ mov.u64 %rd128, __local_depot0;
+ cvta.local.u64 %SP, %rd128;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r93, %r94}, [pixelID];
+ cvt.u64.u32 %rd21, %r93;
+ cvt.u64.u32 %rd22, %r94;
+ mov.u64 %rd25, uvnormal;
+ cvta.global.u64 %rd20, %rd25;
+ mov.u32 %r91, 2;
+ mov.u32 %r92, 4;
+ mov.u64 %rd24, 0;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd20, %r91, %r92, %rd21, %rd22, %rd24, %rd24);
+ // inline asm
+ ld.u32 %r2, [%rd19];
+ shr.u32 %r97, %r2, 16;
+ cvt.u16.u32 %rs1, %r97;
+ and.b16 %rs3, %rs1, 255;
+ cvt.u16.u32 %rs4, %r2;
+ or.b16 %rs5, %rs4, %rs3;
+ setp.eq.s16 %p4, %rs5, 0;
+ mov.f32 %f580, 0f00000000;
+ mov.f32 %f581, %f580;
+ mov.f32 %f582, %f580;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs6, [%rd19+1];
+ and.b16 %rs8, %rs4, 255;
+ cvt.rn.f32.u16 %f127, %rs8;
+ div.rn.f32 %f128, %f127, 0f437F0000;
+ fma.rn.f32 %f129, %f128, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f130, %rs6;
+ div.rn.f32 %f131, %f130, 0f437F0000;
+ fma.rn.f32 %f132, %f131, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f133, %rs3;
+ div.rn.f32 %f134, %f133, 0f437F0000;
+ fma.rn.f32 %f135, %f134, 0f40000000, 0fBF800000;
+ mul.f32 %f136, %f132, %f132;
+ fma.rn.f32 %f137, %f129, %f129, %f136;
+ fma.rn.f32 %f138, %f135, %f135, %f137;
+ sqrt.rn.f32 %f139, %f138;
+ rcp.rn.f32 %f140, %f139;
+ mul.f32 %f580, %f129, %f140;
+ mul.f32 %f581, %f132, %f140;
+ mul.f32 %f582, %f135, %f140;
+
+BB0_2:
+ ld.global.v2.u32 {%r98, %r99}, [pixelID];
+ ld.global.v2.u32 {%r101, %r102}, [tileInfo];
+ add.s32 %r3, %r98, %r101;
+ add.s32 %r4, %r99, %r102;
+ setp.eq.f32 %p5, %f581, 0f00000000;
+ setp.eq.f32 %p6, %f580, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f582, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_97;
+ bra.uni BB0_3;
+
+BB0_97:
+ ld.global.u32 %r310, [imageEnabled];
+ and.b32 %r266, %r310, 1;
+ setp.eq.b32 %p95, %r266, 1;
+ @!%p95 bra BB0_99;
+ bra.uni BB0_98;
+
+BB0_98:
+ cvt.u64.u32 %rd88, %r3;
+ cvt.u64.u32 %rd89, %r4;
+ mov.u64 %rd92, image;
+ cvta.global.u64 %rd87, %rd92;
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd87, %r91, %r92, %rd88, %rd89, %rd24, %rd24);
+ // inline asm
+ mov.u16 %rs34, 0;
+ st.v4.u8 [%rd86], {%rs34, %rs34, %rs34, %rs34};
+ ld.global.u32 %r310, [imageEnabled];
+
+BB0_99:
+ and.b32 %r269, %r310, 4;
+ setp.eq.s32 %p96, %r269, 0;
+ @%p96 bra BB0_103;
+
+ ld.global.u32 %r270, [additive];
+ setp.eq.s32 %p97, %r270, 0;
+ cvt.u64.u32 %rd17, %r3;
+ cvt.u64.u32 %rd18, %r4;
+ @%p97 bra BB0_102;
+
+ mov.u64 %rd105, image_HDR;
+ cvta.global.u64 %rd94, %rd105;
+ mov.u32 %r274, 8;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd94, %r91, %r274, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs41, %rs42, %rs43, %rs44}, [%rd93];
+ // inline asm
+ { cvt.f32.f16 %f543, %rs41;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f544, %rs42;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f545, %rs43;}
+
+ // inline asm
+ // inline asm
+ call (%rd99), _rt_buffer_get_64, (%rd94, %r91, %r274, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ add.f32 %f546, %f543, 0f00000000;
+ add.f32 %f547, %f544, 0f00000000;
+ add.f32 %f548, %f545, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f548;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f547;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f546;}
+
+ // inline asm
+ mov.u16 %rs45, 0;
+ st.v4.u16 [%rd99], {%rs38, %rs39, %rs40, %rs45};
+ bra.uni BB0_103;
+
+BB0_3:
+ ld.global.v2.u32 {%r110, %r111}, [pixelID];
+ cvt.u64.u32 %rd28, %r110;
+ cvt.u64.u32 %rd29, %r111;
+ mov.u64 %rd38, uvpos;
+ cvta.global.u64 %rd27, %rd38;
+ mov.u32 %r107, 12;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r91, %r107, %rd28, %rd29, %rd24, %rd24);
+ // inline asm
+ ld.f32 %f145, [%rd26+8];
+ ld.f32 %f146, [%rd26+4];
+ ld.f32 %f147, [%rd26];
+ mul.f32 %f148, %f147, 0f3456BF95;
+ mul.f32 %f149, %f146, 0f3456BF95;
+ mul.f32 %f150, %f145, 0f3456BF95;
+ abs.f32 %f151, %f580;
+ div.rn.f32 %f152, %f148, %f151;
+ abs.f32 %f153, %f581;
+ div.rn.f32 %f154, %f149, %f153;
+ abs.f32 %f155, %f582;
+ div.rn.f32 %f156, %f150, %f155;
+ abs.f32 %f157, %f152;
+ abs.f32 %f158, %f154;
+ abs.f32 %f159, %f156;
+ mov.f32 %f160, 0f38D1B717;
+ max.f32 %f161, %f157, %f160;
+ max.f32 %f162, %f158, %f160;
+ max.f32 %f163, %f159, %f160;
+ fma.rn.f32 %f7, %f580, %f161, %f147;
+ fma.rn.f32 %f8, %f581, %f162, %f146;
+ fma.rn.f32 %f9, %f582, %f163, %f145;
+ ld.global.u32 %r5, [hemispherical];
+ setp.gt.f32 %p10, %f151, %f155;
+ neg.f32 %f164, %f581;
+ selp.f32 %f165, %f164, 0f00000000, %p10;
+ neg.f32 %f166, %f582;
+ selp.f32 %f167, %f580, %f166, %p10;
+ selp.f32 %f168, 0f00000000, %f581, %p10;
+ mul.f32 %f169, %f167, %f167;
+ fma.rn.f32 %f170, %f165, %f165, %f169;
+ fma.rn.f32 %f171, %f168, %f168, %f170;
+ sqrt.rn.f32 %f172, %f171;
+ rcp.rn.f32 %f173, %f172;
+ mul.f32 %f10, %f165, %f173;
+ mul.f32 %f11, %f167, %f173;
+ mul.f32 %f12, %f168, %f173;
+ ld.global.v2.u32 {%r114, %r115}, [pixelID];
+ cvt.u64.u32 %rd34, %r114;
+ cvt.u64.u32 %rd35, %r115;
+ mov.u64 %rd39, rnd_seeds;
+ cvta.global.u64 %rd33, %rd39;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd33, %r91, %r92, %rd34, %rd35, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f606, 0f00000000;
+ setp.lt.s32 %p11, %r1, 1;
+ mov.f32 %f605, %f606;
+ mov.f32 %f604, %f606;
+ mov.f32 %f603, %f606;
+ @%p11 bra BB0_56;
+
+ cvt.rn.f32.s32 %f178, %r1;
+ rcp.rn.f32 %f13, %f178;
+ ld.u32 %r288, [%rd32];
+ mul.f32 %f14, %f7, 0f3456BF95;
+ mul.f32 %f15, %f8, 0f3456BF95;
+ mul.f32 %f16, %f9, 0f3456BF95;
+ mul.f32 %f179, %f580, %f11;
+ mul.f32 %f180, %f581, %f10;
+ sub.f32 %f17, %f180, %f179;
+ mul.f32 %f181, %f582, %f10;
+ mul.f32 %f182, %f580, %f12;
+ sub.f32 %f18, %f182, %f181;
+ mul.f32 %f183, %f581, %f12;
+ mul.f32 %f184, %f582, %f11;
+ sub.f32 %f19, %f184, %f183;
+ mov.f32 %f606, 0f00000000;
+ mov.u32 %r118, 0;
+ abs.f32 %f258, %f15;
+ abs.f32 %f259, %f14;
+ max.f32 %f260, %f259, %f258;
+ abs.f32 %f261, %f16;
+ max.f32 %f262, %f260, %f261;
+ mov.u32 %r285, %r118;
+ mov.f32 %f605, %f606;
+ mov.f32 %f604, %f606;
+ mov.f32 %f603, %f606;
+
+BB0_5:
+ cvt.rn.f32.s32 %f24, %r285;
+ mov.u32 %r287, %r118;
+
+BB0_6:
+ mad.lo.s32 %r120, %r288, 1664525, 1013904223;
+ and.b32 %r121, %r120, 16777215;
+ cvt.rn.f32.u32 %f185, %r121;
+ fma.rn.f32 %f186, %f185, 0f33800000, %f24;
+ mul.f32 %f29, %f13, %f186;
+ mad.lo.s32 %r288, %r120, 1664525, 1013904223;
+ and.b32 %r122, %r288, 16777215;
+ cvt.rn.f32.u32 %f187, %r122;
+ cvt.rn.f32.s32 %f188, %r287;
+ fma.rn.f32 %f189, %f187, 0f33800000, %f188;
+ mul.f32 %f190, %f13, %f189;
+ mul.f32 %f191, %f29, %f29;
+ mov.f32 %f192, 0f3F800000;
+ sub.f32 %f193, %f192, %f191;
+ mov.f32 %f194, 0f00000000;
+ max.f32 %f195, %f194, %f193;
+ sqrt.rn.f32 %f30, %f195;
+ mul.f32 %f597, %f190, 0f40C90FDB;
+ abs.f32 %f32, %f597;
+ setp.neu.f32 %p12, %f32, 0f7F800000;
+ mov.f32 %f591, %f597;
+ @%p12 bra BB0_8;
+
+ mul.rn.f32 %f591, %f597, %f194;
+
+BB0_8:
+ mul.f32 %f197, %f591, 0f3F22F983;
+ cvt.rni.s32.f32 %r298, %f197;
+ cvt.rn.f32.s32 %f198, %r298;
+ neg.f32 %f199, %f198;
+ mov.f32 %f200, 0f3FC90FDA;
+ fma.rn.f32 %f201, %f199, %f200, %f591;
+ mov.f32 %f202, 0f33A22168;
+ fma.rn.f32 %f203, %f199, %f202, %f201;
+ mov.f32 %f204, 0f27C234C5;
+ fma.rn.f32 %f592, %f199, %f204, %f203;
+ abs.f32 %f205, %f591;
+ setp.leu.f32 %p13, %f205, 0f47CE4780;
+ @%p13 bra BB0_19;
+
+ mov.b32 %r13, %f591;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r125, %r13, 8;
+ or.b32 %r15, %r125, -2147483648;
+ add.u64 %rd41, %SP, 0;
+ cvta.to.local.u64 %rd125, %rd41;
+ mov.u32 %r290, 0;
+ mov.u64 %rd124, __cudart_i2opi_f;
+ mov.u32 %r289, -6;
+
+BB0_10:
+ .pragma "nounroll";
+ ld.const.u32 %r128, [%rd124];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r126, %r128, %r15, %r290;
+ madc.hi.u32 %r290, %r128, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd125], %r126;
+ add.s64 %rd125, %rd125, 4;
+ add.s64 %rd124, %rd124, 4;
+ add.s32 %r289, %r289, 1;
+ setp.ne.s32 %p14, %r289, 0;
+ @%p14 bra BB0_10;
+
+ and.b32 %r131, %r14, 255;
+ add.s32 %r132, %r131, -128;
+ shr.u32 %r133, %r132, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd43, %rd41;
+ st.local.u32 [%rd43+24], %r290;
+ mov.u32 %r134, 6;
+ sub.s32 %r135, %r134, %r133;
+ mul.wide.s32 %rd44, %r135, 4;
+ add.s64 %rd8, %rd43, %rd44;
+ ld.local.u32 %r291, [%rd8];
+ ld.local.u32 %r292, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p15, %r23, 0;
+ @%p15 bra BB0_13;
+
+ mov.u32 %r136, 32;
+ sub.s32 %r137, %r136, %r23;
+ shr.u32 %r138, %r292, %r137;
+ shl.b32 %r139, %r291, %r23;
+ add.s32 %r291, %r138, %r139;
+ ld.local.u32 %r140, [%rd8+-8];
+ shr.u32 %r141, %r140, %r137;
+ shl.b32 %r142, %r292, %r23;
+ add.s32 %r292, %r141, %r142;
+
+BB0_13:
+ shr.u32 %r143, %r292, 30;
+ shl.b32 %r144, %r291, 2;
+ add.s32 %r293, %r143, %r144;
+ shl.b32 %r29, %r292, 2;
+ shr.u32 %r145, %r293, 31;
+ shr.u32 %r146, %r291, 30;
+ add.s32 %r30, %r145, %r146;
+ setp.eq.s32 %p16, %r145, 0;
+ @%p16 bra BB0_14;
+ bra.uni BB0_15;
+
+BB0_14:
+ mov.u32 %r294, %r20;
+ mov.u32 %r295, %r29;
+ bra.uni BB0_16;
+
+BB0_15:
+ not.b32 %r147, %r293;
+ neg.s32 %r295, %r29;
+ setp.eq.s32 %p17, %r29, 0;
+ selp.u32 %r148, 1, 0, %p17;
+ add.s32 %r293, %r148, %r147;
+ xor.b32 %r294, %r20, -2147483648;
+
+BB0_16:
+ clz.b32 %r297, %r293;
+ setp.eq.s32 %p18, %r297, 0;
+ shl.b32 %r149, %r293, %r297;
+ mov.u32 %r150, 32;
+ sub.s32 %r151, %r150, %r297;
+ shr.u32 %r152, %r295, %r151;
+ add.s32 %r153, %r152, %r149;
+ selp.b32 %r38, %r293, %r153, %p18;
+ mov.u32 %r154, -921707870;
+ mul.hi.u32 %r296, %r38, %r154;
+ setp.eq.s32 %p19, %r20, 0;
+ neg.s32 %r155, %r30;
+ selp.b32 %r298, %r30, %r155, %p19;
+ setp.lt.s32 %p20, %r296, 1;
+ @%p20 bra BB0_18;
+
+ mul.lo.s32 %r156, %r38, -921707870;
+ shr.u32 %r157, %r156, 31;
+ shl.b32 %r158, %r296, 1;
+ add.s32 %r296, %r157, %r158;
+ add.s32 %r297, %r297, 1;
+
+BB0_18:
+ mov.u32 %r159, 126;
+ sub.s32 %r160, %r159, %r297;
+ shl.b32 %r161, %r160, 23;
+ add.s32 %r162, %r296, 1;
+ shr.u32 %r163, %r162, 7;
+ add.s32 %r164, %r163, 1;
+ shr.u32 %r165, %r164, 1;
+ add.s32 %r166, %r165, %r161;
+ or.b32 %r167, %r166, %r294;
+ mov.b32 %f592, %r167;
+
+BB0_19:
+ mul.rn.f32 %f38, %f592, %f592;
+ add.s32 %r46, %r298, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p21, %r47, 0;
+ @%p21 bra BB0_21;
+ bra.uni BB0_20;
+
+BB0_21:
+ mov.f32 %f208, 0f3C08839E;
+ mov.f32 %f209, 0fB94CA1F9;
+ fma.rn.f32 %f593, %f209, %f38, %f208;
+ bra.uni BB0_22;
+
+BB0_20:
+ mov.f32 %f206, 0fBAB6061A;
+ mov.f32 %f207, 0f37CCF5CE;
+ fma.rn.f32 %f593, %f207, %f38, %f206;
+
+BB0_22:
+ @%p21 bra BB0_24;
+ bra.uni BB0_23;
+
+BB0_24:
+ mov.f32 %f213, 0fBE2AAAA3;
+ fma.rn.f32 %f214, %f593, %f38, %f213;
+ fma.rn.f32 %f594, %f214, %f38, %f194;
+ bra.uni BB0_25;
+
+BB0_23:
+ mov.f32 %f210, 0f3D2AAAA5;
+ fma.rn.f32 %f211, %f593, %f38, %f210;
+ mov.f32 %f212, 0fBF000000;
+ fma.rn.f32 %f594, %f211, %f38, %f212;
+
+BB0_25:
+ fma.rn.f32 %f595, %f594, %f592, %f592;
+ @%p21 bra BB0_27;
+
+ fma.rn.f32 %f595, %f594, %f38, %f192;
+
+BB0_27:
+ and.b32 %r168, %r46, 2;
+ setp.eq.s32 %p24, %r168, 0;
+ @%p24 bra BB0_29;
+
+ mov.f32 %f218, 0fBF800000;
+ fma.rn.f32 %f595, %f595, %f218, %f194;
+
+BB0_29:
+ @%p12 bra BB0_31;
+
+ mul.rn.f32 %f597, %f597, %f194;
+
+BB0_31:
+ mul.f32 %f220, %f597, 0f3F22F983;
+ cvt.rni.s32.f32 %r308, %f220;
+ cvt.rn.f32.s32 %f221, %r308;
+ neg.f32 %f222, %f221;
+ fma.rn.f32 %f224, %f222, %f200, %f597;
+ fma.rn.f32 %f226, %f222, %f202, %f224;
+ fma.rn.f32 %f598, %f222, %f204, %f226;
+ abs.f32 %f228, %f597;
+ setp.leu.f32 %p26, %f228, 0f47CE4780;
+ @%p26 bra BB0_42;
+
+ mov.b32 %r49, %f597;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r171, %r49, 8;
+ or.b32 %r51, %r171, -2147483648;
+ add.u64 %rd46, %SP, 0;
+ cvta.to.local.u64 %rd127, %rd46;
+ mov.u32 %r300, 0;
+ mov.u64 %rd126, __cudart_i2opi_f;
+ mov.u32 %r299, -6;
+
+BB0_33:
+ .pragma "nounroll";
+ ld.const.u32 %r174, [%rd126];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r172, %r174, %r51, %r300;
+ madc.hi.u32 %r300, %r174, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd127], %r172;
+ add.s64 %rd127, %rd127, 4;
+ add.s64 %rd126, %rd126, 4;
+ add.s32 %r299, %r299, 1;
+ setp.ne.s32 %p27, %r299, 0;
+ @%p27 bra BB0_33;
+
+ and.b32 %r177, %r50, 255;
+ add.s32 %r178, %r177, -128;
+ shr.u32 %r179, %r178, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd48, %rd46;
+ st.local.u32 [%rd48+24], %r300;
+ mov.u32 %r180, 6;
+ sub.s32 %r181, %r180, %r179;
+ mul.wide.s32 %rd49, %r181, 4;
+ add.s64 %rd14, %rd48, %rd49;
+ ld.local.u32 %r301, [%rd14];
+ ld.local.u32 %r302, [%rd14+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p28, %r59, 0;
+ @%p28 bra BB0_36;
+
+ mov.u32 %r182, 32;
+ sub.s32 %r183, %r182, %r59;
+ shr.u32 %r184, %r302, %r183;
+ shl.b32 %r185, %r301, %r59;
+ add.s32 %r301, %r184, %r185;
+ ld.local.u32 %r186, [%rd14+-8];
+ shr.u32 %r187, %r186, %r183;
+ shl.b32 %r188, %r302, %r59;
+ add.s32 %r302, %r187, %r188;
+
+BB0_36:
+ shr.u32 %r189, %r302, 30;
+ shl.b32 %r190, %r301, 2;
+ add.s32 %r303, %r189, %r190;
+ shl.b32 %r65, %r302, 2;
+ shr.u32 %r191, %r303, 31;
+ shr.u32 %r192, %r301, 30;
+ add.s32 %r66, %r191, %r192;
+ setp.eq.s32 %p29, %r191, 0;
+ @%p29 bra BB0_37;
+ bra.uni BB0_38;
+
+BB0_37:
+ mov.u32 %r304, %r56;
+ mov.u32 %r305, %r65;
+ bra.uni BB0_39;
+
+BB0_38:
+ not.b32 %r193, %r303;
+ neg.s32 %r305, %r65;
+ setp.eq.s32 %p30, %r65, 0;
+ selp.u32 %r194, 1, 0, %p30;
+ add.s32 %r303, %r194, %r193;
+ xor.b32 %r304, %r56, -2147483648;
+
+BB0_39:
+ clz.b32 %r307, %r303;
+ setp.eq.s32 %p31, %r307, 0;
+ shl.b32 %r195, %r303, %r307;
+ mov.u32 %r196, 32;
+ sub.s32 %r197, %r196, %r307;
+ shr.u32 %r198, %r305, %r197;
+ add.s32 %r199, %r198, %r195;
+ selp.b32 %r74, %r303, %r199, %p31;
+ mov.u32 %r200, -921707870;
+ mul.hi.u32 %r306, %r74, %r200;
+ setp.eq.s32 %p32, %r56, 0;
+ neg.s32 %r201, %r66;
+ selp.b32 %r308, %r66, %r201, %p32;
+ setp.lt.s32 %p33, %r306, 1;
+ @%p33 bra BB0_41;
+
+ mul.lo.s32 %r202, %r74, -921707870;
+ shr.u32 %r203, %r202, 31;
+ shl.b32 %r204, %r306, 1;
+ add.s32 %r306, %r203, %r204;
+ add.s32 %r307, %r307, 1;
+
+BB0_41:
+ mov.u32 %r205, 126;
+ sub.s32 %r206, %r205, %r307;
+ shl.b32 %r207, %r206, 23;
+ add.s32 %r208, %r306, 1;
+ shr.u32 %r209, %r208, 7;
+ add.s32 %r210, %r209, 1;
+ shr.u32 %r211, %r210, 1;
+ add.s32 %r212, %r211, %r207;
+ or.b32 %r213, %r212, %r304;
+ mov.b32 %f598, %r213;
+
+BB0_42:
+ mul.rn.f32 %f55, %f598, %f598;
+ and.b32 %r82, %r308, 1;
+ setp.eq.s32 %p34, %r82, 0;
+ @%p34 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mov.f32 %f231, 0f3C08839E;
+ mov.f32 %f232, 0fB94CA1F9;
+ fma.rn.f32 %f599, %f232, %f55, %f231;
+ bra.uni BB0_45;
+
+BB0_43:
+ mov.f32 %f229, 0fBAB6061A;
+ mov.f32 %f230, 0f37CCF5CE;
+ fma.rn.f32 %f599, %f230, %f55, %f229;
+
+BB0_45:
+ @%p34 bra BB0_47;
+ bra.uni BB0_46;
+
+BB0_47:
+ mov.f32 %f236, 0fBE2AAAA3;
+ fma.rn.f32 %f237, %f599, %f55, %f236;
+ fma.rn.f32 %f600, %f237, %f55, %f194;
+ bra.uni BB0_48;
+
+BB0_46:
+ mov.f32 %f233, 0f3D2AAAA5;
+ fma.rn.f32 %f234, %f599, %f55, %f233;
+ mov.f32 %f235, 0fBF000000;
+ fma.rn.f32 %f600, %f234, %f55, %f235;
+
+BB0_48:
+ fma.rn.f32 %f601, %f600, %f598, %f598;
+ @%p34 bra BB0_50;
+
+ fma.rn.f32 %f601, %f600, %f55, %f192;
+
+BB0_50:
+ and.b32 %r214, %r308, 2;
+ setp.eq.s32 %p37, %r214, 0;
+ @%p37 bra BB0_52;
+
+ mov.f32 %f241, 0fBF800000;
+ fma.rn.f32 %f601, %f601, %f241, %f194;
+
+BB0_52:
+ mul.f32 %f242, %f30, %f595;
+ mul.f32 %f243, %f30, %f601;
+ mul.f32 %f244, %f10, %f243;
+ mul.f32 %f245, %f11, %f243;
+ mul.f32 %f246, %f12, %f243;
+ fma.rn.f32 %f247, %f19, %f242, %f244;
+ fma.rn.f32 %f248, %f18, %f242, %f245;
+ fma.rn.f32 %f249, %f17, %f242, %f246;
+ fma.rn.f32 %f67, %f580, %f29, %f247;
+ fma.rn.f32 %f68, %f581, %f29, %f248;
+ fma.rn.f32 %f69, %f582, %f29, %f249;
+ setp.gt.f32 %p38, %f68, 0f00000000;
+ setp.eq.s32 %p39, %r5, 0;
+ or.pred %p40, %p39, %p38;
+ @!%p40 bra BB0_54;
+ bra.uni BB0_53;
+
+BB0_53:
+ add.u64 %rd50, %SP, 28;
+ cvta.to.local.u64 %rd51, %rd50;
+ max.f32 %f256, %f262, %f160;
+ mov.u32 %r218, 1065353216;
+ st.local.u32 [%rd51], %r218;
+ ld.global.u32 %r215, [root];
+ mov.u32 %r216, 1;
+ mov.f32 %f257, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r215, %f7, %f8, %f9, %f67, %f68, %f69, %r216, %f256, %f257, %rd50, %r92);
+ // inline asm
+ ld.local.f32 %f264, [%rd51];
+ fma.rn.f32 %f603, %f67, %f264, %f603;
+ fma.rn.f32 %f604, %f68, %f264, %f604;
+ fma.rn.f32 %f605, %f69, %f264, %f605;
+ mul.f32 %f265, %f581, %f68;
+ fma.rn.f32 %f266, %f580, %f67, %f265;
+ fma.rn.f32 %f267, %f582, %f69, %f266;
+ cvt.sat.f32.f32 %f268, %f267;
+ fma.rn.f32 %f606, %f268, %f264, %f606;
+
+BB0_54:
+ add.s32 %r287, %r287, 1;
+ setp.lt.s32 %p41, %r287, %r1;
+ @%p41 bra BB0_6;
+
+ add.s32 %r285, %r285, 1;
+ setp.lt.s32 %p42, %r285, %r1;
+ @%p42 bra BB0_5;
+
+BB0_56:
+ mul.lo.s32 %r219, %r1, %r1;
+ cvt.rn.f32.s32 %f269, %r219;
+ div.rn.f32 %f270, %f606, %f269;
+ add.f32 %f271, %f270, %f270;
+ ld.global.f32 %f272, [skyColor];
+ mul.f32 %f82, %f272, %f271;
+ ld.global.f32 %f273, [skyColor+4];
+ mul.f32 %f83, %f271, %f273;
+ ld.global.f32 %f274, [skyColor+8];
+ mul.f32 %f84, %f271, %f274;
+ ld.global.u32 %r309, [imageEnabled];
+ and.b32 %r220, %r309, 1;
+ setp.eq.b32 %p43, %r220, 1;
+ @!%p43 bra BB0_91;
+ bra.uni BB0_57;
+
+BB0_57:
+ mov.f32 %f277, 0f3E666666;
+ cvt.rzi.f32.f32 %f278, %f277;
+ fma.rn.f32 %f279, %f278, 0fC0000000, 0f3EE66666;
+ abs.f32 %f85, %f279;
+ abs.f32 %f86, %f82;
+ setp.lt.f32 %p44, %f86, 0f00800000;
+ mul.f32 %f280, %f86, 0f4B800000;
+ selp.f32 %f281, 0fC3170000, 0fC2FE0000, %p44;
+ selp.f32 %f282, %f280, %f86, %p44;
+ mov.b32 %r221, %f282;
+ and.b32 %r222, %r221, 8388607;
+ or.b32 %r223, %r222, 1065353216;
+ mov.b32 %f283, %r223;
+ shr.u32 %r224, %r221, 23;
+ cvt.rn.f32.u32 %f284, %r224;
+ add.f32 %f285, %f281, %f284;
+ setp.gt.f32 %p45, %f283, 0f3FB504F3;
+ mul.f32 %f286, %f283, 0f3F000000;
+ add.f32 %f287, %f285, 0f3F800000;
+ selp.f32 %f288, %f286, %f283, %p45;
+ selp.f32 %f289, %f287, %f285, %p45;
+ add.f32 %f290, %f288, 0fBF800000;
+ add.f32 %f276, %f288, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f275,%f276;
+ // inline asm
+ add.f32 %f291, %f290, %f290;
+ mul.f32 %f292, %f275, %f291;
+ mul.f32 %f293, %f292, %f292;
+ mov.f32 %f294, 0f3C4CAF63;
+ mov.f32 %f295, 0f3B18F0FE;
+ fma.rn.f32 %f296, %f295, %f293, %f294;
+ mov.f32 %f297, 0f3DAAAABD;
+ fma.rn.f32 %f298, %f296, %f293, %f297;
+ mul.rn.f32 %f299, %f298, %f293;
+ mul.rn.f32 %f300, %f299, %f292;
+ sub.f32 %f301, %f290, %f292;
+ neg.f32 %f302, %f292;
+ add.f32 %f303, %f301, %f301;
+ fma.rn.f32 %f304, %f302, %f290, %f303;
+ mul.rn.f32 %f305, %f275, %f304;
+ add.f32 %f306, %f300, %f292;
+ sub.f32 %f307, %f292, %f306;
+ add.f32 %f308, %f300, %f307;
+ add.f32 %f309, %f305, %f308;
+ add.f32 %f310, %f306, %f309;
+ sub.f32 %f311, %f306, %f310;
+ add.f32 %f312, %f309, %f311;
+ mov.f32 %f313, 0f3F317200;
+ mul.rn.f32 %f314, %f289, %f313;
+ mov.f32 %f315, 0f35BFBE8E;
+ mul.rn.f32 %f316, %f289, %f315;
+ add.f32 %f317, %f314, %f310;
+ sub.f32 %f318, %f314, %f317;
+ add.f32 %f319, %f310, %f318;
+ add.f32 %f320, %f312, %f319;
+ add.f32 %f321, %f316, %f320;
+ add.f32 %f322, %f317, %f321;
+ sub.f32 %f323, %f317, %f322;
+ add.f32 %f324, %f321, %f323;
+ mov.f32 %f325, 0f3EE66666;
+ mul.rn.f32 %f326, %f325, %f322;
+ neg.f32 %f327, %f326;
+ fma.rn.f32 %f328, %f325, %f322, %f327;
+ fma.rn.f32 %f329, %f325, %f324, %f328;
+ mov.f32 %f330, 0f00000000;
+ fma.rn.f32 %f331, %f330, %f322, %f329;
+ add.rn.f32 %f332, %f326, %f331;
+ neg.f32 %f333, %f332;
+ add.rn.f32 %f334, %f326, %f333;
+ add.rn.f32 %f335, %f334, %f331;
+ mov.b32 %r225, %f332;
+ setp.eq.s32 %p46, %r225, 1118925336;
+ add.s32 %r226, %r225, -1;
+ mov.b32 %f336, %r226;
+ add.f32 %f337, %f335, 0f37000000;
+ selp.f32 %f338, %f336, %f332, %p46;
+ selp.f32 %f87, %f337, %f335, %p46;
+ mul.f32 %f339, %f338, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f340, %f339;
+ mov.f32 %f341, 0fBF317200;
+ fma.rn.f32 %f342, %f340, %f341, %f338;
+ mov.f32 %f343, 0fB5BFBE8E;
+ fma.rn.f32 %f344, %f340, %f343, %f342;
+ mul.f32 %f345, %f344, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f346, %f345;
+ add.f32 %f347, %f340, 0f00000000;
+ ex2.approx.f32 %f348, %f347;
+ mul.f32 %f349, %f346, %f348;
+ setp.lt.f32 %p47, %f338, 0fC2D20000;
+ selp.f32 %f350, 0f00000000, %f349, %p47;
+ setp.gt.f32 %p48, %f338, 0f42D20000;
+ selp.f32 %f611, 0f7F800000, %f350, %p48;
+ setp.eq.f32 %p49, %f611, 0f7F800000;
+ @%p49 bra BB0_59;
+
+ fma.rn.f32 %f611, %f611, %f87, %f611;
+
+BB0_59:
+ setp.lt.f32 %p50, %f82, 0f00000000;
+ setp.eq.f32 %p51, %f85, 0f3F800000;
+ and.pred %p1, %p50, %p51;
+ mov.b32 %r227, %f611;
+ xor.b32 %r228, %r227, -2147483648;
+ mov.b32 %f351, %r228;
+ selp.f32 %f613, %f351, %f611, %p1;
+ setp.eq.f32 %p52, %f82, 0f00000000;
+ @%p52 bra BB0_62;
+ bra.uni BB0_60;
+
+BB0_62:
+ add.f32 %f354, %f82, %f82;
+ selp.f32 %f613, %f354, 0f00000000, %p51;
+ bra.uni BB0_63;
+
+BB0_102:
+ mov.u64 %rd112, image_HDR;
+ cvta.global.u64 %rd107, %rd112;
+ mov.u32 %r276, 8;
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd107, %r91, %r276, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f549, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f549;}
+
+ // inline asm
+ mov.u16 %rs47, 0;
+ st.v4.u16 [%rd106], {%rs46, %rs46, %rs46, %rs47};
+
+BB0_103:
+ ld.global.u8 %rs48, [imageEnabled];
+ and.b16 %rs49, %rs48, 64;
+ setp.eq.s16 %p98, %rs49, 0;
+ @%p98 bra BB0_105;
+
+ cvt.u64.u32 %rd115, %r3;
+ cvt.u64.u32 %rd116, %r4;
+ mov.u64 %rd119, image_Dir;
+ cvta.global.u64 %rd114, %rd119;
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd114, %r91, %r92, %rd115, %rd116, %rd24, %rd24);
+ // inline asm
+ mov.u16 %rs50, 0;
+ st.v4.u8 [%rd113], {%rs50, %rs50, %rs50, %rs50};
+ bra.uni BB0_105;
+
+BB0_60:
+ setp.geu.f32 %p53, %f82, 0f00000000;
+ @%p53 bra BB0_63;
+
+ mov.f32 %f573, 0f3EE66666;
+ cvt.rzi.f32.f32 %f353, %f573;
+ setp.neu.f32 %p54, %f353, 0f3EE66666;
+ selp.f32 %f613, 0f7FFFFFFF, %f613, %p54;
+
+BB0_63:
+ abs.f32 %f550, %f82;
+ add.f32 %f355, %f550, 0f3EE66666;
+ mov.b32 %r229, %f355;
+ setp.lt.s32 %p56, %r229, 2139095040;
+ @%p56 bra BB0_68;
+
+ abs.f32 %f571, %f82;
+ setp.gtu.f32 %p57, %f571, 0f7F800000;
+ @%p57 bra BB0_67;
+ bra.uni BB0_65;
+
+BB0_67:
+ add.f32 %f613, %f82, 0f3EE66666;
+ bra.uni BB0_68;
+
+BB0_65:
+ abs.f32 %f572, %f82;
+ setp.neu.f32 %p58, %f572, 0f7F800000;
+ @%p58 bra BB0_68;
+
+ selp.f32 %f613, 0fFF800000, 0f7F800000, %p1;
+
+BB0_68:
+ mov.f32 %f559, 0fB5BFBE8E;
+ mov.f32 %f558, 0fBF317200;
+ mov.f32 %f557, 0f00000000;
+ mov.f32 %f556, 0f35BFBE8E;
+ mov.f32 %f555, 0f3F317200;
+ mov.f32 %f554, 0f3DAAAABD;
+ mov.f32 %f553, 0f3C4CAF63;
+ mov.f32 %f552, 0f3B18F0FE;
+ mov.f32 %f551, 0f3EE66666;
+ setp.eq.f32 %p59, %f82, 0f3F800000;
+ selp.f32 %f98, 0f3F800000, %f613, %p59;
+ abs.f32 %f99, %f83;
+ setp.lt.f32 %p60, %f99, 0f00800000;
+ mul.f32 %f358, %f99, 0f4B800000;
+ selp.f32 %f359, 0fC3170000, 0fC2FE0000, %p60;
+ selp.f32 %f360, %f358, %f99, %p60;
+ mov.b32 %r230, %f360;
+ and.b32 %r231, %r230, 8388607;
+ or.b32 %r232, %r231, 1065353216;
+ mov.b32 %f361, %r232;
+ shr.u32 %r233, %r230, 23;
+ cvt.rn.f32.u32 %f362, %r233;
+ add.f32 %f363, %f359, %f362;
+ setp.gt.f32 %p61, %f361, 0f3FB504F3;
+ mul.f32 %f364, %f361, 0f3F000000;
+ add.f32 %f365, %f363, 0f3F800000;
+ selp.f32 %f366, %f364, %f361, %p61;
+ selp.f32 %f367, %f365, %f363, %p61;
+ add.f32 %f368, %f366, 0fBF800000;
+ add.f32 %f357, %f366, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f356,%f357;
+ // inline asm
+ add.f32 %f369, %f368, %f368;
+ mul.f32 %f370, %f356, %f369;
+ mul.f32 %f371, %f370, %f370;
+ fma.rn.f32 %f374, %f552, %f371, %f553;
+ fma.rn.f32 %f376, %f374, %f371, %f554;
+ mul.rn.f32 %f377, %f376, %f371;
+ mul.rn.f32 %f378, %f377, %f370;
+ sub.f32 %f379, %f368, %f370;
+ neg.f32 %f380, %f370;
+ add.f32 %f381, %f379, %f379;
+ fma.rn.f32 %f382, %f380, %f368, %f381;
+ mul.rn.f32 %f383, %f356, %f382;
+ add.f32 %f384, %f378, %f370;
+ sub.f32 %f385, %f370, %f384;
+ add.f32 %f386, %f378, %f385;
+ add.f32 %f387, %f383, %f386;
+ add.f32 %f388, %f384, %f387;
+ sub.f32 %f389, %f384, %f388;
+ add.f32 %f390, %f387, %f389;
+ mul.rn.f32 %f392, %f367, %f555;
+ mul.rn.f32 %f394, %f367, %f556;
+ add.f32 %f395, %f392, %f388;
+ sub.f32 %f396, %f392, %f395;
+ add.f32 %f397, %f388, %f396;
+ add.f32 %f398, %f390, %f397;
+ add.f32 %f399, %f394, %f398;
+ add.f32 %f400, %f395, %f399;
+ sub.f32 %f401, %f395, %f400;
+ add.f32 %f402, %f399, %f401;
+ mul.rn.f32 %f404, %f551, %f400;
+ neg.f32 %f405, %f404;
+ fma.rn.f32 %f406, %f551, %f400, %f405;
+ fma.rn.f32 %f407, %f551, %f402, %f406;
+ fma.rn.f32 %f409, %f557, %f400, %f407;
+ add.rn.f32 %f410, %f404, %f409;
+ neg.f32 %f411, %f410;
+ add.rn.f32 %f412, %f404, %f411;
+ add.rn.f32 %f413, %f412, %f409;
+ mov.b32 %r234, %f410;
+ setp.eq.s32 %p62, %r234, 1118925336;
+ add.s32 %r235, %r234, -1;
+ mov.b32 %f414, %r235;
+ add.f32 %f415, %f413, 0f37000000;
+ selp.f32 %f416, %f414, %f410, %p62;
+ selp.f32 %f100, %f415, %f413, %p62;
+ mul.f32 %f417, %f416, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f418, %f417;
+ fma.rn.f32 %f420, %f418, %f558, %f416;
+ fma.rn.f32 %f422, %f418, %f559, %f420;
+ mul.f32 %f423, %f422, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f424, %f423;
+ add.f32 %f425, %f418, 0f00000000;
+ ex2.approx.f32 %f426, %f425;
+ mul.f32 %f427, %f424, %f426;
+ setp.lt.f32 %p63, %f416, 0fC2D20000;
+ selp.f32 %f428, 0f00000000, %f427, %p63;
+ setp.gt.f32 %p64, %f416, 0f42D20000;
+ selp.f32 %f614, 0f7F800000, %f428, %p64;
+ setp.eq.f32 %p65, %f614, 0f7F800000;
+ @%p65 bra BB0_70;
+
+ fma.rn.f32 %f614, %f614, %f100, %f614;
+
+BB0_70:
+ setp.lt.f32 %p66, %f83, 0f00000000;
+ and.pred %p2, %p66, %p51;
+ mov.b32 %r236, %f614;
+ xor.b32 %r237, %r236, -2147483648;
+ mov.b32 %f429, %r237;
+ selp.f32 %f616, %f429, %f614, %p2;
+ setp.eq.f32 %p68, %f83, 0f00000000;
+ @%p68 bra BB0_73;
+ bra.uni BB0_71;
+
+BB0_73:
+ add.f32 %f432, %f83, %f83;
+ selp.f32 %f616, %f432, 0f00000000, %p51;
+ bra.uni BB0_74;
+
+BB0_71:
+ setp.geu.f32 %p69, %f83, 0f00000000;
+ @%p69 bra BB0_74;
+
+ mov.f32 %f570, 0f3EE66666;
+ cvt.rzi.f32.f32 %f431, %f570;
+ setp.neu.f32 %p70, %f431, 0f3EE66666;
+ selp.f32 %f616, 0f7FFFFFFF, %f616, %p70;
+
+BB0_74:
+ abs.f32 %f574, %f83;
+ add.f32 %f433, %f574, 0f3EE66666;
+ mov.b32 %r238, %f433;
+ setp.lt.s32 %p72, %r238, 2139095040;
+ @%p72 bra BB0_79;
+
+ abs.f32 %f575, %f83;
+ setp.gtu.f32 %p73, %f575, 0f7F800000;
+ @%p73 bra BB0_78;
+ bra.uni BB0_76;
+
+BB0_78:
+ add.f32 %f616, %f83, 0f3EE66666;
+ bra.uni BB0_79;
+
+BB0_76:
+ abs.f32 %f576, %f83;
+ setp.neu.f32 %p74, %f576, 0f7F800000;
+ @%p74 bra BB0_79;
+
+ selp.f32 %f616, 0fFF800000, 0f7F800000, %p2;
+
+BB0_79:
+ mov.f32 %f568, 0fB5BFBE8E;
+ mov.f32 %f567, 0fBF317200;
+ mov.f32 %f566, 0f00000000;
+ mov.f32 %f565, 0f35BFBE8E;
+ mov.f32 %f564, 0f3F317200;
+ mov.f32 %f563, 0f3DAAAABD;
+ mov.f32 %f562, 0f3C4CAF63;
+ mov.f32 %f561, 0f3B18F0FE;
+ mov.f32 %f560, 0f3EE66666;
+ setp.eq.f32 %p75, %f83, 0f3F800000;
+ selp.f32 %f111, 0f3F800000, %f616, %p75;
+ abs.f32 %f112, %f84;
+ setp.lt.f32 %p76, %f112, 0f00800000;
+ mul.f32 %f436, %f112, 0f4B800000;
+ selp.f32 %f437, 0fC3170000, 0fC2FE0000, %p76;
+ selp.f32 %f438, %f436, %f112, %p76;
+ mov.b32 %r239, %f438;
+ and.b32 %r240, %r239, 8388607;
+ or.b32 %r241, %r240, 1065353216;
+ mov.b32 %f439, %r241;
+ shr.u32 %r242, %r239, 23;
+ cvt.rn.f32.u32 %f440, %r242;
+ add.f32 %f441, %f437, %f440;
+ setp.gt.f32 %p77, %f439, 0f3FB504F3;
+ mul.f32 %f442, %f439, 0f3F000000;
+ add.f32 %f443, %f441, 0f3F800000;
+ selp.f32 %f444, %f442, %f439, %p77;
+ selp.f32 %f445, %f443, %f441, %p77;
+ add.f32 %f446, %f444, 0fBF800000;
+ add.f32 %f435, %f444, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f434,%f435;
+ // inline asm
+ add.f32 %f447, %f446, %f446;
+ mul.f32 %f448, %f434, %f447;
+ mul.f32 %f449, %f448, %f448;
+ fma.rn.f32 %f452, %f561, %f449, %f562;
+ fma.rn.f32 %f454, %f452, %f449, %f563;
+ mul.rn.f32 %f455, %f454, %f449;
+ mul.rn.f32 %f456, %f455, %f448;
+ sub.f32 %f457, %f446, %f448;
+ neg.f32 %f458, %f448;
+ add.f32 %f459, %f457, %f457;
+ fma.rn.f32 %f460, %f458, %f446, %f459;
+ mul.rn.f32 %f461, %f434, %f460;
+ add.f32 %f462, %f456, %f448;
+ sub.f32 %f463, %f448, %f462;
+ add.f32 %f464, %f456, %f463;
+ add.f32 %f465, %f461, %f464;
+ add.f32 %f466, %f462, %f465;
+ sub.f32 %f467, %f462, %f466;
+ add.f32 %f468, %f465, %f467;
+ mul.rn.f32 %f470, %f445, %f564;
+ mul.rn.f32 %f472, %f445, %f565;
+ add.f32 %f473, %f470, %f466;
+ sub.f32 %f474, %f470, %f473;
+ add.f32 %f475, %f466, %f474;
+ add.f32 %f476, %f468, %f475;
+ add.f32 %f477, %f472, %f476;
+ add.f32 %f478, %f473, %f477;
+ sub.f32 %f479, %f473, %f478;
+ add.f32 %f480, %f477, %f479;
+ mul.rn.f32 %f482, %f560, %f478;
+ neg.f32 %f483, %f482;
+ fma.rn.f32 %f484, %f560, %f478, %f483;
+ fma.rn.f32 %f485, %f560, %f480, %f484;
+ fma.rn.f32 %f487, %f566, %f478, %f485;
+ add.rn.f32 %f488, %f482, %f487;
+ neg.f32 %f489, %f488;
+ add.rn.f32 %f490, %f482, %f489;
+ add.rn.f32 %f491, %f490, %f487;
+ mov.b32 %r243, %f488;
+ setp.eq.s32 %p78, %r243, 1118925336;
+ add.s32 %r244, %r243, -1;
+ mov.b32 %f492, %r244;
+ add.f32 %f493, %f491, 0f37000000;
+ selp.f32 %f494, %f492, %f488, %p78;
+ selp.f32 %f113, %f493, %f491, %p78;
+ mul.f32 %f495, %f494, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f496, %f495;
+ fma.rn.f32 %f498, %f496, %f567, %f494;
+ fma.rn.f32 %f500, %f496, %f568, %f498;
+ mul.f32 %f501, %f500, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f502, %f501;
+ add.f32 %f503, %f496, 0f00000000;
+ ex2.approx.f32 %f504, %f503;
+ mul.f32 %f505, %f502, %f504;
+ setp.lt.f32 %p79, %f494, 0fC2D20000;
+ selp.f32 %f506, 0f00000000, %f505, %p79;
+ setp.gt.f32 %p80, %f494, 0f42D20000;
+ selp.f32 %f617, 0f7F800000, %f506, %p80;
+ setp.eq.f32 %p81, %f617, 0f7F800000;
+ @%p81 bra BB0_81;
+
+ fma.rn.f32 %f617, %f617, %f113, %f617;
+
+BB0_81:
+ setp.lt.f32 %p82, %f84, 0f00000000;
+ and.pred %p3, %p82, %p51;
+ mov.b32 %r245, %f617;
+ xor.b32 %r246, %r245, -2147483648;
+ mov.b32 %f507, %r246;
+ selp.f32 %f619, %f507, %f617, %p3;
+ setp.eq.f32 %p84, %f84, 0f00000000;
+ @%p84 bra BB0_84;
+ bra.uni BB0_82;
+
+BB0_84:
+ add.f32 %f510, %f84, %f84;
+ selp.f32 %f619, %f510, 0f00000000, %p51;
+ bra.uni BB0_85;
+
+BB0_82:
+ setp.geu.f32 %p85, %f84, 0f00000000;
+ @%p85 bra BB0_85;
+
+ mov.f32 %f569, 0f3EE66666;
+ cvt.rzi.f32.f32 %f509, %f569;
+ setp.neu.f32 %p86, %f509, 0f3EE66666;
+ selp.f32 %f619, 0f7FFFFFFF, %f619, %p86;
+
+BB0_85:
+ abs.f32 %f577, %f84;
+ add.f32 %f511, %f577, 0f3EE66666;
+ mov.b32 %r247, %f511;
+ setp.lt.s32 %p88, %r247, 2139095040;
+ @%p88 bra BB0_90;
+
+ abs.f32 %f578, %f84;
+ setp.gtu.f32 %p89, %f578, 0f7F800000;
+ @%p89 bra BB0_89;
+ bra.uni BB0_87;
+
+BB0_89:
+ add.f32 %f619, %f84, 0f3EE66666;
+ bra.uni BB0_90;
+
+BB0_87:
+ abs.f32 %f579, %f84;
+ setp.neu.f32 %p90, %f579, 0f7F800000;
+ @%p90 bra BB0_90;
+
+ selp.f32 %f619, 0fFF800000, 0f7F800000, %p3;
+
+BB0_90:
+ mov.u32 %r280, 4;
+ mov.u64 %rd120, 0;
+ mov.u32 %r279, 2;
+ setp.eq.f32 %p91, %f84, 0f3F800000;
+ selp.f32 %f512, 0f3F800000, %f619, %p91;
+ cvt.u64.u32 %rd55, %r4;
+ cvt.u64.u32 %rd54, %r3;
+ mov.u64 %rd58, image;
+ cvta.global.u64 %rd53, %rd58;
+ // inline asm
+ call (%rd52), _rt_buffer_get_64, (%rd53, %r279, %r280, %rd54, %rd55, %rd120, %rd120);
+ // inline asm
+ cvt.sat.f32.f32 %f513, %f512;
+ mul.f32 %f514, %f513, 0f437FFD71;
+ cvt.rzi.u32.f32 %r250, %f514;
+ cvt.sat.f32.f32 %f515, %f111;
+ mul.f32 %f516, %f515, 0f437FFD71;
+ cvt.rzi.u32.f32 %r251, %f516;
+ cvt.sat.f32.f32 %f517, %f98;
+ mul.f32 %f518, %f517, 0f437FFD71;
+ cvt.rzi.u32.f32 %r252, %f518;
+ cvt.u16.u32 %rs10, %r250;
+ cvt.u16.u32 %rs11, %r252;
+ cvt.u16.u32 %rs12, %r251;
+ mov.u16 %rs13, 255;
+ st.v4.u8 [%rd52], {%rs10, %rs12, %rs11, %rs13};
+ ld.global.u32 %r309, [imageEnabled];
+
+BB0_91:
+ and.b32 %r253, %r309, 4;
+ setp.eq.s32 %p92, %r253, 0;
+ @%p92 bra BB0_95;
+
+ ld.global.u32 %r254, [additive];
+ setp.eq.s32 %p93, %r254, 0;
+ cvt.u64.u32 %rd15, %r3;
+ cvt.u64.u32 %rd16, %r4;
+ mov.f32 %f519, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs14, %f519;}
+
+ // inline asm
+ @%p93 bra BB0_94;
+
+ mov.u64 %rd121, 0;
+ mov.u32 %r281, 2;
+ mov.u64 %rd71, image_HDR;
+ cvta.global.u64 %rd60, %rd71;
+ mov.u32 %r258, 8;
+ // inline asm
+ call (%rd59), _rt_buffer_get_64, (%rd60, %r281, %r258, %rd15, %rd16, %rd121, %rd121);
+ // inline asm
+ ld.v4.u16 {%rs21, %rs22, %rs23, %rs24}, [%rd59];
+ // inline asm
+ { cvt.f32.f16 %f520, %rs21;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f521, %rs22;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f522, %rs23;}
+
+ // inline asm
+ // inline asm
+ call (%rd65), _rt_buffer_get_64, (%rd60, %r281, %r258, %rd15, %rd16, %rd121, %rd121);
+ // inline asm
+ add.f32 %f523, %f82, %f520;
+ add.f32 %f524, %f83, %f521;
+ add.f32 %f525, %f84, %f522;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f525;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs19, %f524;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs18, %f523;}
+
+ // inline asm
+ st.v4.u16 [%rd65], {%rs18, %rs19, %rs20, %rs14};
+ bra.uni BB0_95;
+
+BB0_94:
+ mov.u64 %rd122, 0;
+ mov.u32 %r282, 2;
+ mov.u64 %rd78, image_HDR;
+ cvta.global.u64 %rd73, %rd78;
+ mov.u32 %r260, 8;
+ // inline asm
+ call (%rd72), _rt_buffer_get_64, (%rd73, %r282, %r260, %rd15, %rd16, %rd122, %rd122);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f84;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f83;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f82;}
+
+ // inline asm
+ st.v4.u16 [%rd72], {%rs25, %rs26, %rs27, %rs14};
+
+BB0_95:
+ ld.global.u8 %rs28, [imageEnabled];
+ and.b16 %rs29, %rs28, 64;
+ setp.eq.s16 %p94, %rs29, 0;
+ @%p94 bra BB0_105;
+
+ mov.u32 %r284, 4;
+ mov.u64 %rd123, 0;
+ mov.u32 %r283, 2;
+ mul.f32 %f529, %f604, %f604;
+ fma.rn.f32 %f530, %f603, %f603, %f529;
+ fma.rn.f32 %f531, %f605, %f605, %f530;
+ sqrt.rn.f32 %f532, %f531;
+ rcp.rn.f32 %f533, %f532;
+ mul.f32 %f534, %f603, %f533;
+ mul.f32 %f535, %f604, %f533;
+ mul.f32 %f536, %f605, %f533;
+ cvt.u64.u32 %rd82, %r4;
+ cvt.u64.u32 %rd81, %r3;
+ mov.u64 %rd85, image_Dir;
+ cvta.global.u64 %rd80, %rd85;
+ // inline asm
+ call (%rd79), _rt_buffer_get_64, (%rd80, %r283, %r284, %rd81, %rd82, %rd123, %rd123);
+ // inline asm
+ fma.rn.f32 %f537, %f534, 0f3F000000, 0f3F000000;
+ mul.f32 %f538, %f537, 0f437F0000;
+ cvt.rzi.u32.f32 %r263, %f538;
+ fma.rn.f32 %f539, %f535, 0f3F000000, 0f3F000000;
+ mul.f32 %f540, %f539, 0f437F0000;
+ cvt.rzi.u32.f32 %r264, %f540;
+ fma.rn.f32 %f541, %f536, 0f3F000000, 0f3F000000;
+ mul.f32 %f542, %f541, 0f437F0000;
+ cvt.rzi.u32.f32 %r265, %f542;
+ cvt.u16.u32 %rs30, %r265;
+ cvt.u16.u32 %rs31, %r264;
+ cvt.u16.u32 %rs32, %r263;
+ mov.u16 %rs33, 255;
+ st.v4.u8 [%rd79], {%rs32, %rs31, %rs30, %rs33};
+
+BB0_105:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyDir.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyDir.ptx.meta
new file mode 100644
index 00000000..24d01659
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyDir.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6fd71cfd53c204445bc09923a80e8bd6
+timeCreated: 1537386825
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyProbeSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyProbeSH.ptx
new file mode 100644
index 00000000..15543514
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyProbeSH.ptx
@@ -0,0 +1,1913 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .texref sky;
+.global .align 4 .b8 skyColor[12];
+.global .align 4 .u32 samples;
+.global .align 4 .u32 hemispherical;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8skyColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13hemisphericalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8skyColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename13hemisphericalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8skyColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13hemisphericalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8skyColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13hemisphericalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8skyColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13hemisphericalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<105>;
+ .reg .b16 %rs<148>;
+ .reg .f32 %f<708>;
+ .reg .b32 %r<356>;
+ .reg .b64 %rd<283>;
+
+
+ mov.u64 %rd282, __local_depot0;
+ cvta.local.u64 %SP, %rd282;
+ ld.global.u32 %r1, [samples];
+ shl.b32 %r2, %r1, 1;
+ ld.global.v2.u32 {%r94, %r95}, [pixelID];
+ cvt.u64.u32 %rd22, %r94;
+ cvt.u64.u32 %rd23, %r95;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r92, 2;
+ mov.u32 %r93, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r92, %r93, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r3, [%rd20];
+ shr.u32 %r98, %r3, 16;
+ cvt.u16.u32 %rs1, %r98;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r3;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p4, %rs9, 0;
+ mov.f32 %f664, 0f00000000;
+ mov.f32 %f665, %f664;
+ mov.f32 %f666, %f664;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs10, [%rd20+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f143, %rs12;
+ div.rn.f32 %f144, %f143, 0f437F0000;
+ fma.rn.f32 %f145, %f144, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f146, %rs10;
+ div.rn.f32 %f147, %f146, 0f437F0000;
+ fma.rn.f32 %f148, %f147, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f149, %rs7;
+ div.rn.f32 %f150, %f149, 0f437F0000;
+ fma.rn.f32 %f151, %f150, 0f40000000, 0fBF800000;
+ mul.f32 %f152, %f148, %f148;
+ fma.rn.f32 %f153, %f145, %f145, %f152;
+ fma.rn.f32 %f154, %f151, %f151, %f153;
+ sqrt.rn.f32 %f155, %f154;
+ rcp.rn.f32 %f156, %f155;
+ mul.f32 %f664, %f145, %f156;
+ mul.f32 %f665, %f148, %f156;
+ mul.f32 %f666, %f151, %f156;
+
+BB0_2:
+ ld.global.v2.u32 {%r99, %r100}, [pixelID];
+ ld.global.v2.u32 {%r102, %r103}, [tileInfo];
+ add.s32 %r4, %r99, %r102;
+ add.s32 %r5, %r100, %r103;
+ setp.eq.f32 %p5, %f665, 0f00000000;
+ setp.eq.f32 %p6, %f664, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f666, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_107;
+ bra.uni BB0_3;
+
+BB0_107:
+ ld.global.u32 %r355, [imageEnabled];
+ and.b32 %r290, %r355, 1;
+ setp.eq.b32 %p98, %r290, 1;
+ @!%p98 bra BB0_109;
+ bra.uni BB0_108;
+
+BB0_108:
+ cvt.u64.u32 %rd173, %r5;
+ cvt.u64.u32 %rd172, %r4;
+ mov.u64 %rd176, image;
+ cvta.global.u64 %rd171, %rd176;
+ mov.u64 %rd175, 0;
+ // inline asm
+ call (%rd170), _rt_buffer_get_64, (%rd171, %r92, %r93, %rd172, %rd173, %rd175, %rd175);
+ // inline asm
+ mov.u16 %rs82, 0;
+ st.v4.u8 [%rd170], {%rs82, %rs82, %rs82, %rs82};
+ ld.global.u32 %r355, [imageEnabled];
+
+BB0_109:
+ cvt.u64.u32 %rd18, %r4;
+ cvt.u64.u32 %rd19, %r5;
+ and.b32 %r293, %r355, 4;
+ setp.eq.s32 %p99, %r293, 0;
+ @%p99 bra BB0_113;
+
+ ld.global.u32 %r294, [additive];
+ setp.eq.s32 %p100, %r294, 0;
+ @%p100 bra BB0_112;
+
+ mov.u64 %rd189, image_HDR;
+ cvta.global.u64 %rd178, %rd189;
+ mov.u32 %r298, 8;
+ mov.u64 %rd188, 0;
+ // inline asm
+ call (%rd177), _rt_buffer_get_64, (%rd178, %r92, %r298, %rd18, %rd19, %rd188, %rd188);
+ // inline asm
+ ld.v4.u16 {%rs89, %rs90, %rs91, %rs92}, [%rd177];
+ // inline asm
+ { cvt.f32.f16 %f593, %rs89;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f594, %rs90;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f595, %rs91;}
+
+ // inline asm
+ // inline asm
+ call (%rd183), _rt_buffer_get_64, (%rd178, %r92, %r298, %rd18, %rd19, %rd188, %rd188);
+ // inline asm
+ add.f32 %f596, %f593, 0f00000000;
+ add.f32 %f597, %f594, 0f00000000;
+ add.f32 %f598, %f595, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f598;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f597;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f596;}
+
+ // inline asm
+ mov.u16 %rs93, 0;
+ st.v4.u16 [%rd183], {%rs86, %rs87, %rs88, %rs93};
+ bra.uni BB0_113;
+
+BB0_3:
+ ld.global.v2.u32 {%r111, %r112}, [pixelID];
+ cvt.u64.u32 %rd29, %r111;
+ cvt.u64.u32 %rd30, %r112;
+ mov.u64 %rd39, uvpos;
+ cvta.global.u64 %rd28, %rd39;
+ mov.u32 %r108, 12;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r92, %r108, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f162, [%rd27+8];
+ ld.f32 %f163, [%rd27+4];
+ ld.f32 %f164, [%rd27];
+ mul.f32 %f165, %f164, 0f3456BF95;
+ mul.f32 %f166, %f163, 0f3456BF95;
+ mul.f32 %f167, %f162, 0f3456BF95;
+ abs.f32 %f168, %f664;
+ div.rn.f32 %f169, %f165, %f168;
+ abs.f32 %f170, %f665;
+ div.rn.f32 %f171, %f166, %f170;
+ abs.f32 %f172, %f666;
+ div.rn.f32 %f173, %f167, %f172;
+ abs.f32 %f174, %f169;
+ abs.f32 %f175, %f171;
+ abs.f32 %f176, %f173;
+ mov.f32 %f177, 0f38D1B717;
+ max.f32 %f178, %f174, %f177;
+ max.f32 %f179, %f175, %f177;
+ max.f32 %f180, %f176, %f177;
+ fma.rn.f32 %f7, %f664, %f178, %f164;
+ fma.rn.f32 %f8, %f665, %f179, %f163;
+ fma.rn.f32 %f9, %f666, %f180, %f162;
+ ld.global.u32 %r6, [hemispherical];
+ setp.gt.f32 %p10, %f168, %f172;
+ neg.f32 %f181, %f665;
+ selp.f32 %f182, %f181, 0f00000000, %p10;
+ neg.f32 %f183, %f666;
+ selp.f32 %f184, %f664, %f183, %p10;
+ selp.f32 %f185, 0f00000000, %f665, %p10;
+ mul.f32 %f186, %f184, %f184;
+ fma.rn.f32 %f187, %f182, %f182, %f186;
+ fma.rn.f32 %f188, %f185, %f185, %f187;
+ sqrt.rn.f32 %f189, %f188;
+ rcp.rn.f32 %f190, %f189;
+ mul.f32 %f10, %f182, %f190;
+ mul.f32 %f11, %f184, %f190;
+ mul.f32 %f12, %f185, %f190;
+ ld.global.v2.u32 {%r115, %r116}, [pixelID];
+ cvt.u64.u32 %rd35, %r115;
+ cvt.u64.u32 %rd36, %r116;
+ mov.u64 %rd40, rnd_seeds;
+ cvta.global.u64 %rd34, %rd40;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r92, %r93, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f693, 0f00000000;
+ setp.lt.s32 %p11, %r1, 1;
+ mov.f32 %f692, %f693;
+ mov.f32 %f691, %f693;
+ mov.f32 %f690, %f693;
+ mov.f32 %f689, %f693;
+ @%p11 bra BB0_56;
+
+ cvt.rn.f32.s32 %f196, %r2;
+ rcp.rn.f32 %f13, %f196;
+ ld.u32 %r333, [%rd33];
+ mul.f32 %f14, %f7, 0f3456BF95;
+ mul.f32 %f15, %f8, 0f3456BF95;
+ mul.f32 %f16, %f9, 0f3456BF95;
+ mul.f32 %f197, %f664, %f11;
+ mul.f32 %f198, %f665, %f10;
+ sub.f32 %f17, %f198, %f197;
+ mul.f32 %f199, %f666, %f10;
+ mul.f32 %f200, %f664, %f12;
+ sub.f32 %f18, %f200, %f199;
+ mul.f32 %f201, %f665, %f12;
+ mul.f32 %f202, %f666, %f11;
+ sub.f32 %f19, %f202, %f201;
+ mov.f32 %f693, 0f00000000;
+ mov.u32 %r119, 0;
+ abs.f32 %f277, %f15;
+ abs.f32 %f278, %f14;
+ max.f32 %f279, %f278, %f277;
+ abs.f32 %f280, %f16;
+ max.f32 %f281, %f279, %f280;
+ mov.u32 %r330, %r119;
+ mov.f32 %f692, %f693;
+ mov.f32 %f691, %f693;
+ mov.f32 %f690, %f693;
+ mov.f32 %f689, %f693;
+
+BB0_5:
+ mov.u32 %r332, %r119;
+
+BB0_6:
+ cvt.rn.f32.s32 %f662, %r330;
+ mad.lo.s32 %r121, %r333, 1664525, 1013904223;
+ and.b32 %r122, %r121, 16777215;
+ cvt.rn.f32.u32 %f203, %r122;
+ fma.rn.f32 %f204, %f203, 0f33800000, %f662;
+ mul.f32 %f205, %f13, %f204;
+ mad.lo.s32 %r333, %r121, 1664525, 1013904223;
+ and.b32 %r123, %r333, 16777215;
+ cvt.rn.f32.u32 %f206, %r123;
+ cvt.rn.f32.s32 %f207, %r332;
+ fma.rn.f32 %f208, %f206, 0f33800000, %f207;
+ mul.f32 %f209, %f13, %f208;
+ fma.rn.f32 %f31, %f205, 0fC0000000, 0f3F800000;
+ mul.f32 %f210, %f31, %f31;
+ mov.f32 %f211, 0f3F800000;
+ sub.f32 %f212, %f211, %f210;
+ mov.f32 %f213, 0f00000000;
+ max.f32 %f214, %f213, %f212;
+ sqrt.rn.f32 %f32, %f214;
+ mul.f32 %f683, %f209, 0f40C90FDB;
+ abs.f32 %f34, %f683;
+ setp.neu.f32 %p12, %f34, 0f7F800000;
+ mov.f32 %f677, %f683;
+ @%p12 bra BB0_8;
+
+ mul.rn.f32 %f677, %f683, %f213;
+
+BB0_8:
+ mul.f32 %f216, %f677, 0f3F22F983;
+ cvt.rni.s32.f32 %r343, %f216;
+ cvt.rn.f32.s32 %f217, %r343;
+ neg.f32 %f218, %f217;
+ mov.f32 %f219, 0f3FC90FDA;
+ fma.rn.f32 %f220, %f218, %f219, %f677;
+ mov.f32 %f221, 0f33A22168;
+ fma.rn.f32 %f222, %f218, %f221, %f220;
+ mov.f32 %f223, 0f27C234C5;
+ fma.rn.f32 %f678, %f218, %f223, %f222;
+ abs.f32 %f224, %f677;
+ setp.leu.f32 %p13, %f224, 0f47CE4780;
+ @%p13 bra BB0_19;
+
+ add.u64 %rd42, %SP, 4;
+ cvta.to.local.u64 %rd3, %rd42;
+ mov.b32 %r14, %f677;
+ shr.u32 %r15, %r14, 23;
+ shl.b32 %r126, %r14, 8;
+ or.b32 %r16, %r126, -2147483648;
+ mov.u32 %r334, 0;
+ mov.u64 %rd279, 0;
+ mov.u64 %rd278, %rd3;
+ mov.u32 %r335, %r334;
+
+BB0_10:
+ .pragma "nounroll";
+ shl.b64 %rd43, %rd279, 2;
+ mov.u64 %rd44, __cudart_i2opi_f;
+ add.s64 %rd45, %rd44, %rd43;
+ ld.const.u32 %r129, [%rd45];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r127, %r129, %r16, %r335;
+ madc.hi.u32 %r335, %r129, %r16, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd278], %r127;
+ add.s32 %r334, %r334, 1;
+ cvt.s64.s32 %rd279, %r334;
+ mul.wide.s32 %rd48, %r334, 4;
+ add.s64 %rd278, %rd3, %rd48;
+ setp.ne.s32 %p14, %r334, 6;
+ @%p14 bra BB0_10;
+
+ add.u64 %rd277, %SP, 4;
+ and.b32 %r132, %r15, 255;
+ add.s32 %r133, %r132, -128;
+ shr.u32 %r134, %r133, 5;
+ and.b32 %r21, %r14, -2147483648;
+ cvta.to.local.u64 %rd50, %rd277;
+ st.local.u32 [%rd50+24], %r335;
+ mov.u32 %r135, 6;
+ sub.s32 %r136, %r135, %r134;
+ mul.wide.s32 %rd51, %r136, 4;
+ add.s64 %rd8, %rd50, %rd51;
+ ld.local.u32 %r336, [%rd8];
+ ld.local.u32 %r337, [%rd8+-4];
+ and.b32 %r24, %r15, 31;
+ setp.eq.s32 %p15, %r24, 0;
+ @%p15 bra BB0_13;
+
+ mov.u32 %r137, 32;
+ sub.s32 %r138, %r137, %r24;
+ shr.u32 %r139, %r337, %r138;
+ shl.b32 %r140, %r336, %r24;
+ add.s32 %r336, %r139, %r140;
+ ld.local.u32 %r141, [%rd8+-8];
+ shr.u32 %r142, %r141, %r138;
+ shl.b32 %r143, %r337, %r24;
+ add.s32 %r337, %r142, %r143;
+
+BB0_13:
+ shr.u32 %r144, %r337, 30;
+ shl.b32 %r145, %r336, 2;
+ add.s32 %r338, %r144, %r145;
+ shl.b32 %r30, %r337, 2;
+ shr.u32 %r146, %r338, 31;
+ shr.u32 %r147, %r336, 30;
+ add.s32 %r31, %r146, %r147;
+ setp.eq.s32 %p16, %r146, 0;
+ @%p16 bra BB0_14;
+ bra.uni BB0_15;
+
+BB0_14:
+ mov.u32 %r339, %r21;
+ mov.u32 %r340, %r30;
+ bra.uni BB0_16;
+
+BB0_15:
+ not.b32 %r148, %r338;
+ neg.s32 %r340, %r30;
+ setp.eq.s32 %p17, %r30, 0;
+ selp.u32 %r149, 1, 0, %p17;
+ add.s32 %r338, %r149, %r148;
+ xor.b32 %r339, %r21, -2147483648;
+
+BB0_16:
+ clz.b32 %r342, %r338;
+ setp.eq.s32 %p18, %r342, 0;
+ shl.b32 %r150, %r338, %r342;
+ mov.u32 %r151, 32;
+ sub.s32 %r152, %r151, %r342;
+ shr.u32 %r153, %r340, %r152;
+ add.s32 %r154, %r153, %r150;
+ selp.b32 %r39, %r338, %r154, %p18;
+ mov.u32 %r155, -921707870;
+ mul.hi.u32 %r341, %r39, %r155;
+ setp.eq.s32 %p19, %r21, 0;
+ neg.s32 %r156, %r31;
+ selp.b32 %r343, %r31, %r156, %p19;
+ setp.lt.s32 %p20, %r341, 1;
+ @%p20 bra BB0_18;
+
+ mul.lo.s32 %r157, %r39, -921707870;
+ shr.u32 %r158, %r157, 31;
+ shl.b32 %r159, %r341, 1;
+ add.s32 %r341, %r158, %r159;
+ add.s32 %r342, %r342, 1;
+
+BB0_18:
+ mov.u32 %r160, 126;
+ sub.s32 %r161, %r160, %r342;
+ shl.b32 %r162, %r161, 23;
+ add.s32 %r163, %r341, 1;
+ shr.u32 %r164, %r163, 7;
+ add.s32 %r165, %r164, 1;
+ shr.u32 %r166, %r165, 1;
+ add.s32 %r167, %r166, %r162;
+ or.b32 %r168, %r167, %r339;
+ mov.b32 %f678, %r168;
+
+BB0_19:
+ mul.rn.f32 %f40, %f678, %f678;
+ add.s32 %r47, %r343, 1;
+ and.b32 %r48, %r47, 1;
+ setp.eq.s32 %p21, %r48, 0;
+ @%p21 bra BB0_21;
+ bra.uni BB0_20;
+
+BB0_21:
+ mov.f32 %f227, 0f3C08839E;
+ mov.f32 %f228, 0fB94CA1F9;
+ fma.rn.f32 %f679, %f228, %f40, %f227;
+ bra.uni BB0_22;
+
+BB0_20:
+ mov.f32 %f225, 0fBAB6061A;
+ mov.f32 %f226, 0f37CCF5CE;
+ fma.rn.f32 %f679, %f226, %f40, %f225;
+
+BB0_22:
+ @%p21 bra BB0_24;
+ bra.uni BB0_23;
+
+BB0_24:
+ mov.f32 %f232, 0fBE2AAAA3;
+ fma.rn.f32 %f233, %f679, %f40, %f232;
+ fma.rn.f32 %f680, %f233, %f40, %f213;
+ bra.uni BB0_25;
+
+BB0_23:
+ mov.f32 %f229, 0f3D2AAAA5;
+ fma.rn.f32 %f230, %f679, %f40, %f229;
+ mov.f32 %f231, 0fBF000000;
+ fma.rn.f32 %f680, %f230, %f40, %f231;
+
+BB0_25:
+ fma.rn.f32 %f681, %f680, %f678, %f678;
+ @%p21 bra BB0_27;
+
+ fma.rn.f32 %f681, %f680, %f40, %f211;
+
+BB0_27:
+ and.b32 %r169, %r47, 2;
+ setp.eq.s32 %p24, %r169, 0;
+ @%p24 bra BB0_29;
+
+ mov.f32 %f237, 0fBF800000;
+ fma.rn.f32 %f681, %f681, %f237, %f213;
+
+BB0_29:
+ @%p12 bra BB0_31;
+
+ mul.rn.f32 %f683, %f683, %f213;
+
+BB0_31:
+ mov.f32 %f663, 0f3FC90FDA;
+ mul.f32 %f239, %f683, 0f3F22F983;
+ cvt.rni.s32.f32 %r353, %f239;
+ cvt.rn.f32.s32 %f240, %r353;
+ neg.f32 %f241, %f240;
+ fma.rn.f32 %f243, %f241, %f663, %f683;
+ fma.rn.f32 %f245, %f241, %f221, %f243;
+ fma.rn.f32 %f684, %f241, %f223, %f245;
+ abs.f32 %f247, %f683;
+ setp.leu.f32 %p26, %f247, 0f47CE4780;
+ @%p26 bra BB0_42;
+
+ add.u64 %rd53, %SP, 4;
+ cvta.to.local.u64 %rd9, %rd53;
+ mov.b32 %r50, %f683;
+ shr.u32 %r51, %r50, 23;
+ shl.b32 %r172, %r50, 8;
+ or.b32 %r52, %r172, -2147483648;
+ mov.u32 %r344, 0;
+ mov.u64 %rd280, %rd9;
+ mov.u64 %rd281, %rd25;
+ mov.u32 %r345, %r344;
+
+BB0_33:
+ .pragma "nounroll";
+ shl.b64 %rd54, %rd281, 2;
+ mov.u64 %rd55, __cudart_i2opi_f;
+ add.s64 %rd56, %rd55, %rd54;
+ ld.const.u32 %r175, [%rd56];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r173, %r175, %r52, %r345;
+ madc.hi.u32 %r345, %r175, %r52, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd280], %r173;
+ add.s32 %r344, %r344, 1;
+ cvt.s64.s32 %rd281, %r344;
+ mul.wide.s32 %rd57, %r344, 4;
+ add.s64 %rd280, %rd9, %rd57;
+ setp.ne.s32 %p27, %r344, 6;
+ @%p27 bra BB0_33;
+
+ and.b32 %r178, %r51, 255;
+ add.s32 %r179, %r178, -128;
+ shr.u32 %r180, %r179, 5;
+ and.b32 %r57, %r50, -2147483648;
+ cvta.to.local.u64 %rd59, %rd53;
+ st.local.u32 [%rd59+24], %r345;
+ mov.u32 %r181, 6;
+ sub.s32 %r182, %r181, %r180;
+ mul.wide.s32 %rd60, %r182, 4;
+ add.s64 %rd15, %rd59, %rd60;
+ ld.local.u32 %r346, [%rd15];
+ ld.local.u32 %r347, [%rd15+-4];
+ and.b32 %r60, %r51, 31;
+ setp.eq.s32 %p28, %r60, 0;
+ @%p28 bra BB0_36;
+
+ mov.u32 %r183, 32;
+ sub.s32 %r184, %r183, %r60;
+ shr.u32 %r185, %r347, %r184;
+ shl.b32 %r186, %r346, %r60;
+ add.s32 %r346, %r185, %r186;
+ ld.local.u32 %r187, [%rd15+-8];
+ shr.u32 %r188, %r187, %r184;
+ shl.b32 %r189, %r347, %r60;
+ add.s32 %r347, %r188, %r189;
+
+BB0_36:
+ shr.u32 %r190, %r347, 30;
+ shl.b32 %r191, %r346, 2;
+ add.s32 %r348, %r190, %r191;
+ shl.b32 %r66, %r347, 2;
+ shr.u32 %r192, %r348, 31;
+ shr.u32 %r193, %r346, 30;
+ add.s32 %r67, %r192, %r193;
+ setp.eq.s32 %p29, %r192, 0;
+ @%p29 bra BB0_37;
+ bra.uni BB0_38;
+
+BB0_37:
+ mov.u32 %r349, %r57;
+ mov.u32 %r350, %r66;
+ bra.uni BB0_39;
+
+BB0_38:
+ not.b32 %r194, %r348;
+ neg.s32 %r350, %r66;
+ setp.eq.s32 %p30, %r66, 0;
+ selp.u32 %r195, 1, 0, %p30;
+ add.s32 %r348, %r195, %r194;
+ xor.b32 %r349, %r57, -2147483648;
+
+BB0_39:
+ clz.b32 %r352, %r348;
+ setp.eq.s32 %p31, %r352, 0;
+ shl.b32 %r196, %r348, %r352;
+ mov.u32 %r197, 32;
+ sub.s32 %r198, %r197, %r352;
+ shr.u32 %r199, %r350, %r198;
+ add.s32 %r200, %r199, %r196;
+ selp.b32 %r75, %r348, %r200, %p31;
+ mov.u32 %r201, -921707870;
+ mul.hi.u32 %r351, %r75, %r201;
+ setp.eq.s32 %p32, %r57, 0;
+ neg.s32 %r202, %r67;
+ selp.b32 %r353, %r67, %r202, %p32;
+ setp.lt.s32 %p33, %r351, 1;
+ @%p33 bra BB0_41;
+
+ mul.lo.s32 %r203, %r75, -921707870;
+ shr.u32 %r204, %r203, 31;
+ shl.b32 %r205, %r351, 1;
+ add.s32 %r351, %r204, %r205;
+ add.s32 %r352, %r352, 1;
+
+BB0_41:
+ mov.u32 %r206, 126;
+ sub.s32 %r207, %r206, %r352;
+ shl.b32 %r208, %r207, 23;
+ add.s32 %r209, %r351, 1;
+ shr.u32 %r210, %r209, 7;
+ add.s32 %r211, %r210, 1;
+ shr.u32 %r212, %r211, 1;
+ add.s32 %r213, %r212, %r208;
+ or.b32 %r214, %r213, %r349;
+ mov.b32 %f684, %r214;
+
+BB0_42:
+ mul.rn.f32 %f57, %f684, %f684;
+ and.b32 %r83, %r353, 1;
+ setp.eq.s32 %p34, %r83, 0;
+ @%p34 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mov.f32 %f250, 0f3C08839E;
+ mov.f32 %f251, 0fB94CA1F9;
+ fma.rn.f32 %f685, %f251, %f57, %f250;
+ bra.uni BB0_45;
+
+BB0_43:
+ mov.f32 %f248, 0fBAB6061A;
+ mov.f32 %f249, 0f37CCF5CE;
+ fma.rn.f32 %f685, %f249, %f57, %f248;
+
+BB0_45:
+ @%p34 bra BB0_47;
+ bra.uni BB0_46;
+
+BB0_47:
+ mov.f32 %f255, 0fBE2AAAA3;
+ fma.rn.f32 %f256, %f685, %f57, %f255;
+ fma.rn.f32 %f686, %f256, %f57, %f213;
+ bra.uni BB0_48;
+
+BB0_46:
+ mov.f32 %f252, 0f3D2AAAA5;
+ fma.rn.f32 %f253, %f685, %f57, %f252;
+ mov.f32 %f254, 0fBF000000;
+ fma.rn.f32 %f686, %f253, %f57, %f254;
+
+BB0_48:
+ fma.rn.f32 %f687, %f686, %f684, %f684;
+ @%p34 bra BB0_50;
+
+ fma.rn.f32 %f687, %f686, %f57, %f211;
+
+BB0_50:
+ and.b32 %r215, %r353, 2;
+ setp.eq.s32 %p37, %r215, 0;
+ @%p37 bra BB0_52;
+
+ mov.f32 %f260, 0fBF800000;
+ fma.rn.f32 %f687, %f687, %f260, %f213;
+
+BB0_52:
+ mul.f32 %f261, %f32, %f681;
+ mul.f32 %f262, %f32, %f687;
+ mul.f32 %f263, %f10, %f262;
+ mul.f32 %f264, %f11, %f262;
+ mul.f32 %f265, %f12, %f262;
+ fma.rn.f32 %f266, %f19, %f261, %f263;
+ fma.rn.f32 %f267, %f18, %f261, %f264;
+ fma.rn.f32 %f268, %f17, %f261, %f265;
+ fma.rn.f32 %f69, %f664, %f31, %f266;
+ fma.rn.f32 %f70, %f665, %f31, %f267;
+ fma.rn.f32 %f71, %f666, %f31, %f268;
+ setp.gt.f32 %p38, %f70, 0f00000000;
+ setp.eq.s32 %p39, %r6, 0;
+ or.pred %p40, %p39, %p38;
+ @!%p40 bra BB0_54;
+ bra.uni BB0_53;
+
+BB0_53:
+ add.u64 %rd61, %SP, 0;
+ cvta.to.local.u64 %rd62, %rd61;
+ max.f32 %f275, %f281, %f177;
+ mov.u32 %r219, 1065353216;
+ st.local.u32 [%rd62], %r219;
+ ld.global.u32 %r216, [root];
+ mov.u32 %r217, 1;
+ mov.f32 %f276, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r216, %f7, %f8, %f9, %f69, %f70, %f71, %r217, %f275, %f276, %rd61, %r93);
+ // inline asm
+ mul.f32 %f283, %f665, %f70;
+ fma.rn.f32 %f284, %f664, %f69, %f283;
+ fma.rn.f32 %f285, %f666, %f71, %f284;
+ ld.local.f32 %f286, [%rd62];
+ fma.rn.f32 %f691, %f69, %f286, %f691;
+ fma.rn.f32 %f692, %f70, %f286, %f692;
+ fma.rn.f32 %f693, %f71, %f286, %f693;
+ add.f32 %f690, %f690, %f286;
+ cvt.sat.f32.f32 %f287, %f285;
+ fma.rn.f32 %f689, %f287, %f286, %f689;
+
+BB0_54:
+ add.s32 %r332, %r332, 1;
+ setp.lt.s32 %p41, %r332, %r2;
+ @%p41 bra BB0_6;
+
+ add.s32 %r330, %r330, 1;
+ setp.lt.s32 %p42, %r330, %r2;
+ @%p42 bra BB0_5;
+
+BB0_56:
+ mul.lo.s32 %r220, %r2, %r2;
+ cvt.rn.f32.s32 %f288, %r220;
+ div.rn.f32 %f289, %f689, %f288;
+ div.rn.f32 %f87, %f690, %f288;
+ div.rn.f32 %f88, %f691, %f288;
+ div.rn.f32 %f89, %f692, %f288;
+ div.rn.f32 %f90, %f693, %f288;
+ add.f32 %f290, %f289, %f289;
+ ld.global.f32 %f291, [skyColor];
+ mul.f32 %f91, %f290, %f291;
+ ld.global.f32 %f292, [skyColor+4];
+ mul.f32 %f92, %f290, %f292;
+ ld.global.f32 %f293, [skyColor+8];
+ mul.f32 %f93, %f290, %f293;
+ ld.global.u32 %r354, [imageEnabled];
+ and.b32 %r221, %r354, 1;
+ setp.eq.b32 %p43, %r221, 1;
+ @!%p43 bra BB0_91;
+ bra.uni BB0_57;
+
+BB0_57:
+ abs.f32 %f95, %f91;
+ setp.lt.f32 %p44, %f95, 0f00800000;
+ mul.f32 %f299, %f95, 0f4B800000;
+ selp.f32 %f300, 0fC3170000, 0fC2FE0000, %p44;
+ selp.f32 %f301, %f299, %f95, %p44;
+ mov.b32 %r222, %f301;
+ and.b32 %r223, %r222, 8388607;
+ or.b32 %r224, %r223, 1065353216;
+ mov.b32 %f302, %r224;
+ shr.u32 %r225, %r222, 23;
+ cvt.rn.f32.u32 %f303, %r225;
+ add.f32 %f304, %f300, %f303;
+ setp.gt.f32 %p45, %f302, 0f3FB504F3;
+ mul.f32 %f305, %f302, 0f3F000000;
+ add.f32 %f306, %f304, 0f3F800000;
+ selp.f32 %f307, %f305, %f302, %p45;
+ selp.f32 %f308, %f306, %f304, %p45;
+ add.f32 %f309, %f307, 0fBF800000;
+ add.f32 %f295, %f307, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f294,%f295;
+ // inline asm
+ add.f32 %f310, %f309, %f309;
+ mul.f32 %f311, %f294, %f310;
+ mul.f32 %f312, %f311, %f311;
+ mov.f32 %f313, 0f3C4CAF63;
+ mov.f32 %f314, 0f3B18F0FE;
+ fma.rn.f32 %f315, %f314, %f312, %f313;
+ mov.f32 %f316, 0f3DAAAABD;
+ fma.rn.f32 %f317, %f315, %f312, %f316;
+ mul.rn.f32 %f318, %f317, %f312;
+ mul.rn.f32 %f319, %f318, %f311;
+ sub.f32 %f320, %f309, %f311;
+ neg.f32 %f321, %f311;
+ add.f32 %f322, %f320, %f320;
+ fma.rn.f32 %f323, %f321, %f309, %f322;
+ mul.rn.f32 %f324, %f294, %f323;
+ add.f32 %f325, %f319, %f311;
+ sub.f32 %f326, %f311, %f325;
+ add.f32 %f327, %f319, %f326;
+ add.f32 %f328, %f324, %f327;
+ add.f32 %f329, %f325, %f328;
+ sub.f32 %f330, %f325, %f329;
+ add.f32 %f331, %f328, %f330;
+ mov.f32 %f332, 0f3F317200;
+ mul.rn.f32 %f333, %f308, %f332;
+ mov.f32 %f334, 0f35BFBE8E;
+ mul.rn.f32 %f335, %f308, %f334;
+ add.f32 %f336, %f333, %f329;
+ sub.f32 %f337, %f333, %f336;
+ add.f32 %f338, %f329, %f337;
+ add.f32 %f339, %f331, %f338;
+ add.f32 %f340, %f335, %f339;
+ add.f32 %f341, %f336, %f340;
+ sub.f32 %f342, %f336, %f341;
+ add.f32 %f343, %f340, %f342;
+ mov.f32 %f344, 0f3EE66666;
+ mul.rn.f32 %f345, %f344, %f341;
+ neg.f32 %f346, %f345;
+ fma.rn.f32 %f347, %f344, %f341, %f346;
+ fma.rn.f32 %f348, %f344, %f343, %f347;
+ mov.f32 %f349, 0f00000000;
+ fma.rn.f32 %f350, %f349, %f341, %f348;
+ add.rn.f32 %f351, %f345, %f350;
+ neg.f32 %f352, %f351;
+ add.rn.f32 %f353, %f345, %f352;
+ add.rn.f32 %f354, %f353, %f350;
+ mov.b32 %r226, %f351;
+ setp.eq.s32 %p46, %r226, 1118925336;
+ add.s32 %r227, %r226, -1;
+ mov.b32 %f355, %r227;
+ add.f32 %f356, %f354, 0f37000000;
+ selp.f32 %f357, %f355, %f351, %p46;
+ selp.f32 %f96, %f356, %f354, %p46;
+ mul.f32 %f358, %f357, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f359, %f358;
+ mov.f32 %f360, 0fBF317200;
+ fma.rn.f32 %f361, %f359, %f360, %f357;
+ mov.f32 %f362, 0fB5BFBE8E;
+ fma.rn.f32 %f363, %f359, %f362, %f361;
+ mul.f32 %f364, %f363, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f365, %f364;
+ add.f32 %f366, %f359, 0f00000000;
+ ex2.approx.f32 %f367, %f366;
+ mul.f32 %f368, %f365, %f367;
+ setp.lt.f32 %p47, %f357, 0fC2D20000;
+ selp.f32 %f369, 0f00000000, %f368, %p47;
+ setp.gt.f32 %p48, %f357, 0f42D20000;
+ selp.f32 %f699, 0f7F800000, %f369, %p48;
+ setp.eq.f32 %p49, %f699, 0f7F800000;
+ @%p49 bra BB0_59;
+
+ fma.rn.f32 %f699, %f699, %f96, %f699;
+
+BB0_59:
+ mov.f32 %f631, 0f3E666666;
+ cvt.rzi.f32.f32 %f630, %f631;
+ fma.rn.f32 %f629, %f630, 0fC0000000, 0f3EE66666;
+ abs.f32 %f628, %f629;
+ setp.lt.f32 %p50, %f91, 0f00000000;
+ setp.eq.f32 %p51, %f628, 0f3F800000;
+ and.pred %p1, %p50, %p51;
+ mov.b32 %r228, %f699;
+ xor.b32 %r229, %r228, -2147483648;
+ mov.b32 %f370, %r229;
+ selp.f32 %f701, %f370, %f699, %p1;
+ setp.eq.f32 %p52, %f91, 0f00000000;
+ @%p52 bra BB0_62;
+ bra.uni BB0_60;
+
+BB0_62:
+ add.f32 %f373, %f91, %f91;
+ selp.f32 %f701, %f373, 0f00000000, %p51;
+ bra.uni BB0_63;
+
+BB0_112:
+ mov.u64 %rd196, image_HDR;
+ cvta.global.u64 %rd191, %rd196;
+ mov.u32 %r300, 8;
+ mov.u64 %rd195, 0;
+ // inline asm
+ call (%rd190), _rt_buffer_get_64, (%rd191, %r92, %r300, %rd18, %rd19, %rd195, %rd195);
+ // inline asm
+ mov.f32 %f599, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs94, %f599;}
+
+ // inline asm
+ mov.u16 %rs95, 0;
+ st.v4.u16 [%rd190], {%rs94, %rs94, %rs94, %rs95};
+
+BB0_113:
+ ld.global.u32 %r301, [additive];
+ setp.eq.s32 %p101, %r301, 0;
+ @%p101 bra BB0_115;
+
+ mov.u64 %rd209, image_RNM0;
+ cvta.global.u64 %rd198, %rd209;
+ mov.u32 %r305, 8;
+ mov.u64 %rd208, 0;
+ // inline asm
+ call (%rd197), _rt_buffer_get_64, (%rd198, %r92, %r305, %rd18, %rd19, %rd208, %rd208);
+ // inline asm
+ ld.v4.u16 {%rs102, %rs103, %rs104, %rs105}, [%rd197];
+ // inline asm
+ { cvt.f32.f16 %f600, %rs102;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f601, %rs103;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f602, %rs104;}
+
+ // inline asm
+ // inline asm
+ call (%rd203), _rt_buffer_get_64, (%rd198, %r92, %r305, %rd18, %rd19, %rd208, %rd208);
+ // inline asm
+ add.f32 %f603, %f600, 0f00000000;
+ add.f32 %f604, %f601, 0f00000000;
+ add.f32 %f605, %f602, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs101, %f605;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs100, %f604;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f603;}
+
+ // inline asm
+ mov.u16 %rs106, 0;
+ st.v4.u16 [%rd203], {%rs99, %rs100, %rs101, %rs106};
+ bra.uni BB0_116;
+
+BB0_115:
+ mov.u64 %rd216, image_RNM0;
+ cvta.global.u64 %rd211, %rd216;
+ mov.u32 %r307, 8;
+ mov.u64 %rd215, 0;
+ // inline asm
+ call (%rd210), _rt_buffer_get_64, (%rd211, %r92, %r307, %rd18, %rd19, %rd215, %rd215);
+ // inline asm
+ mov.f32 %f606, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs107, %f606;}
+
+ // inline asm
+ mov.u16 %rs108, 0;
+ st.v4.u16 [%rd210], {%rs107, %rs107, %rs107, %rs108};
+
+BB0_116:
+ ld.global.u32 %r308, [additive];
+ setp.eq.s32 %p102, %r308, 0;
+ @%p102 bra BB0_118;
+
+ mov.u64 %rd229, image_RNM1;
+ cvta.global.u64 %rd218, %rd229;
+ mov.u32 %r312, 8;
+ mov.u64 %rd228, 0;
+ // inline asm
+ call (%rd217), _rt_buffer_get_64, (%rd218, %r92, %r312, %rd18, %rd19, %rd228, %rd228);
+ // inline asm
+ ld.v4.u16 {%rs115, %rs116, %rs117, %rs118}, [%rd217];
+ // inline asm
+ { cvt.f32.f16 %f607, %rs115;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f608, %rs116;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f609, %rs117;}
+
+ // inline asm
+ // inline asm
+ call (%rd223), _rt_buffer_get_64, (%rd218, %r92, %r312, %rd18, %rd19, %rd228, %rd228);
+ // inline asm
+ add.f32 %f610, %f607, 0f00000000;
+ add.f32 %f611, %f608, 0f00000000;
+ add.f32 %f612, %f609, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs114, %f612;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs113, %f611;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs112, %f610;}
+
+ // inline asm
+ mov.u16 %rs119, 0;
+ st.v4.u16 [%rd223], {%rs112, %rs113, %rs114, %rs119};
+ bra.uni BB0_119;
+
+BB0_118:
+ mov.u64 %rd236, image_RNM1;
+ cvta.global.u64 %rd231, %rd236;
+ mov.u32 %r314, 8;
+ mov.u64 %rd235, 0;
+ // inline asm
+ call (%rd230), _rt_buffer_get_64, (%rd231, %r92, %r314, %rd18, %rd19, %rd235, %rd235);
+ // inline asm
+ mov.f32 %f613, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs120, %f613;}
+
+ // inline asm
+ mov.u16 %rs121, 0;
+ st.v4.u16 [%rd230], {%rs120, %rs120, %rs120, %rs121};
+
+BB0_119:
+ ld.global.u32 %r315, [additive];
+ setp.eq.s32 %p103, %r315, 0;
+ @%p103 bra BB0_121;
+
+ mov.u64 %rd249, image_RNM2;
+ cvta.global.u64 %rd238, %rd249;
+ mov.u32 %r319, 8;
+ mov.u64 %rd248, 0;
+ // inline asm
+ call (%rd237), _rt_buffer_get_64, (%rd238, %r92, %r319, %rd18, %rd19, %rd248, %rd248);
+ // inline asm
+ ld.v4.u16 {%rs128, %rs129, %rs130, %rs131}, [%rd237];
+ // inline asm
+ { cvt.f32.f16 %f614, %rs128;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f615, %rs129;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f616, %rs130;}
+
+ // inline asm
+ // inline asm
+ call (%rd243), _rt_buffer_get_64, (%rd238, %r92, %r319, %rd18, %rd19, %rd248, %rd248);
+ // inline asm
+ add.f32 %f617, %f614, 0f00000000;
+ add.f32 %f618, %f615, 0f00000000;
+ add.f32 %f619, %f616, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs127, %f619;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs126, %f618;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs125, %f617;}
+
+ // inline asm
+ mov.u16 %rs132, 0;
+ st.v4.u16 [%rd243], {%rs125, %rs126, %rs127, %rs132};
+ bra.uni BB0_122;
+
+BB0_121:
+ mov.u64 %rd256, image_RNM2;
+ cvta.global.u64 %rd251, %rd256;
+ mov.u32 %r321, 8;
+ mov.u64 %rd255, 0;
+ // inline asm
+ call (%rd250), _rt_buffer_get_64, (%rd251, %r92, %r321, %rd18, %rd19, %rd255, %rd255);
+ // inline asm
+ mov.f32 %f620, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f620;}
+
+ // inline asm
+ mov.u16 %rs134, 0;
+ st.v4.u16 [%rd250], {%rs133, %rs133, %rs133, %rs134};
+
+BB0_122:
+ ld.global.u32 %r322, [additive];
+ setp.eq.s32 %p104, %r322, 0;
+ @%p104 bra BB0_124;
+
+ mov.u64 %rd269, image_RNM3;
+ cvta.global.u64 %rd258, %rd269;
+ mov.u32 %r326, 8;
+ mov.u64 %rd268, 0;
+ // inline asm
+ call (%rd257), _rt_buffer_get_64, (%rd258, %r92, %r326, %rd18, %rd19, %rd268, %rd268);
+ // inline asm
+ ld.v4.u16 {%rs141, %rs142, %rs143, %rs144}, [%rd257];
+ // inline asm
+ { cvt.f32.f16 %f621, %rs141;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f622, %rs142;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f623, %rs143;}
+
+ // inline asm
+ // inline asm
+ call (%rd263), _rt_buffer_get_64, (%rd258, %r92, %r326, %rd18, %rd19, %rd268, %rd268);
+ // inline asm
+ add.f32 %f624, %f621, 0f00000000;
+ add.f32 %f625, %f622, 0f00000000;
+ add.f32 %f626, %f623, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f626;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs139, %f625;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs138, %f624;}
+
+ // inline asm
+ mov.u16 %rs145, 0;
+ st.v4.u16 [%rd263], {%rs138, %rs139, %rs140, %rs145};
+ bra.uni BB0_125;
+
+BB0_124:
+ mov.u64 %rd276, image_RNM3;
+ cvta.global.u64 %rd271, %rd276;
+ mov.u32 %r328, 8;
+ mov.u64 %rd275, 0;
+ // inline asm
+ call (%rd270), _rt_buffer_get_64, (%rd271, %r92, %r328, %rd18, %rd19, %rd275, %rd275);
+ // inline asm
+ mov.f32 %f627, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f627;}
+
+ // inline asm
+ mov.u16 %rs147, 0;
+ st.v4.u16 [%rd270], {%rs146, %rs146, %rs146, %rs147};
+ bra.uni BB0_125;
+
+BB0_60:
+ setp.geu.f32 %p53, %f91, 0f00000000;
+ @%p53 bra BB0_63;
+
+ mov.f32 %f655, 0f3EE66666;
+ cvt.rzi.f32.f32 %f372, %f655;
+ setp.neu.f32 %p54, %f372, 0f3EE66666;
+ selp.f32 %f701, 0f7FFFFFFF, %f701, %p54;
+
+BB0_63:
+ abs.f32 %f632, %f91;
+ add.f32 %f374, %f632, 0f3EE66666;
+ mov.b32 %r230, %f374;
+ setp.lt.s32 %p56, %r230, 2139095040;
+ @%p56 bra BB0_68;
+
+ abs.f32 %f653, %f91;
+ setp.gtu.f32 %p57, %f653, 0f7F800000;
+ @%p57 bra BB0_67;
+ bra.uni BB0_65;
+
+BB0_67:
+ add.f32 %f701, %f91, 0f3EE66666;
+ bra.uni BB0_68;
+
+BB0_65:
+ abs.f32 %f654, %f91;
+ setp.neu.f32 %p58, %f654, 0f7F800000;
+ @%p58 bra BB0_68;
+
+ selp.f32 %f701, 0fFF800000, 0f7F800000, %p1;
+
+BB0_68:
+ mov.f32 %f641, 0fB5BFBE8E;
+ mov.f32 %f640, 0fBF317200;
+ mov.f32 %f639, 0f00000000;
+ mov.f32 %f638, 0f35BFBE8E;
+ mov.f32 %f637, 0f3F317200;
+ mov.f32 %f636, 0f3DAAAABD;
+ mov.f32 %f635, 0f3C4CAF63;
+ mov.f32 %f634, 0f3B18F0FE;
+ mov.f32 %f633, 0f3EE66666;
+ setp.eq.f32 %p59, %f91, 0f3F800000;
+ selp.f32 %f107, 0f3F800000, %f701, %p59;
+ abs.f32 %f108, %f92;
+ setp.lt.f32 %p60, %f108, 0f00800000;
+ mul.f32 %f377, %f108, 0f4B800000;
+ selp.f32 %f378, 0fC3170000, 0fC2FE0000, %p60;
+ selp.f32 %f379, %f377, %f108, %p60;
+ mov.b32 %r231, %f379;
+ and.b32 %r232, %r231, 8388607;
+ or.b32 %r233, %r232, 1065353216;
+ mov.b32 %f380, %r233;
+ shr.u32 %r234, %r231, 23;
+ cvt.rn.f32.u32 %f381, %r234;
+ add.f32 %f382, %f378, %f381;
+ setp.gt.f32 %p61, %f380, 0f3FB504F3;
+ mul.f32 %f383, %f380, 0f3F000000;
+ add.f32 %f384, %f382, 0f3F800000;
+ selp.f32 %f385, %f383, %f380, %p61;
+ selp.f32 %f386, %f384, %f382, %p61;
+ add.f32 %f387, %f385, 0fBF800000;
+ add.f32 %f376, %f385, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f375,%f376;
+ // inline asm
+ add.f32 %f388, %f387, %f387;
+ mul.f32 %f389, %f375, %f388;
+ mul.f32 %f390, %f389, %f389;
+ fma.rn.f32 %f393, %f634, %f390, %f635;
+ fma.rn.f32 %f395, %f393, %f390, %f636;
+ mul.rn.f32 %f396, %f395, %f390;
+ mul.rn.f32 %f397, %f396, %f389;
+ sub.f32 %f398, %f387, %f389;
+ neg.f32 %f399, %f389;
+ add.f32 %f400, %f398, %f398;
+ fma.rn.f32 %f401, %f399, %f387, %f400;
+ mul.rn.f32 %f402, %f375, %f401;
+ add.f32 %f403, %f397, %f389;
+ sub.f32 %f404, %f389, %f403;
+ add.f32 %f405, %f397, %f404;
+ add.f32 %f406, %f402, %f405;
+ add.f32 %f407, %f403, %f406;
+ sub.f32 %f408, %f403, %f407;
+ add.f32 %f409, %f406, %f408;
+ mul.rn.f32 %f411, %f386, %f637;
+ mul.rn.f32 %f413, %f386, %f638;
+ add.f32 %f414, %f411, %f407;
+ sub.f32 %f415, %f411, %f414;
+ add.f32 %f416, %f407, %f415;
+ add.f32 %f417, %f409, %f416;
+ add.f32 %f418, %f413, %f417;
+ add.f32 %f419, %f414, %f418;
+ sub.f32 %f420, %f414, %f419;
+ add.f32 %f421, %f418, %f420;
+ mul.rn.f32 %f423, %f633, %f419;
+ neg.f32 %f424, %f423;
+ fma.rn.f32 %f425, %f633, %f419, %f424;
+ fma.rn.f32 %f426, %f633, %f421, %f425;
+ fma.rn.f32 %f428, %f639, %f419, %f426;
+ add.rn.f32 %f429, %f423, %f428;
+ neg.f32 %f430, %f429;
+ add.rn.f32 %f431, %f423, %f430;
+ add.rn.f32 %f432, %f431, %f428;
+ mov.b32 %r235, %f429;
+ setp.eq.s32 %p62, %r235, 1118925336;
+ add.s32 %r236, %r235, -1;
+ mov.b32 %f433, %r236;
+ add.f32 %f434, %f432, 0f37000000;
+ selp.f32 %f435, %f433, %f429, %p62;
+ selp.f32 %f109, %f434, %f432, %p62;
+ mul.f32 %f436, %f435, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f437, %f436;
+ fma.rn.f32 %f439, %f437, %f640, %f435;
+ fma.rn.f32 %f441, %f437, %f641, %f439;
+ mul.f32 %f442, %f441, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f443, %f442;
+ add.f32 %f444, %f437, 0f00000000;
+ ex2.approx.f32 %f445, %f444;
+ mul.f32 %f446, %f443, %f445;
+ setp.lt.f32 %p63, %f435, 0fC2D20000;
+ selp.f32 %f447, 0f00000000, %f446, %p63;
+ setp.gt.f32 %p64, %f435, 0f42D20000;
+ selp.f32 %f702, 0f7F800000, %f447, %p64;
+ setp.eq.f32 %p65, %f702, 0f7F800000;
+ @%p65 bra BB0_70;
+
+ fma.rn.f32 %f702, %f702, %f109, %f702;
+
+BB0_70:
+ setp.lt.f32 %p66, %f92, 0f00000000;
+ and.pred %p2, %p66, %p51;
+ mov.b32 %r237, %f702;
+ xor.b32 %r238, %r237, -2147483648;
+ mov.b32 %f448, %r238;
+ selp.f32 %f704, %f448, %f702, %p2;
+ setp.eq.f32 %p68, %f92, 0f00000000;
+ @%p68 bra BB0_73;
+ bra.uni BB0_71;
+
+BB0_73:
+ add.f32 %f451, %f92, %f92;
+ selp.f32 %f704, %f451, 0f00000000, %p51;
+ bra.uni BB0_74;
+
+BB0_71:
+ setp.geu.f32 %p69, %f92, 0f00000000;
+ @%p69 bra BB0_74;
+
+ mov.f32 %f652, 0f3EE66666;
+ cvt.rzi.f32.f32 %f450, %f652;
+ setp.neu.f32 %p70, %f450, 0f3EE66666;
+ selp.f32 %f704, 0f7FFFFFFF, %f704, %p70;
+
+BB0_74:
+ abs.f32 %f656, %f92;
+ add.f32 %f452, %f656, 0f3EE66666;
+ mov.b32 %r239, %f452;
+ setp.lt.s32 %p72, %r239, 2139095040;
+ @%p72 bra BB0_79;
+
+ abs.f32 %f657, %f92;
+ setp.gtu.f32 %p73, %f657, 0f7F800000;
+ @%p73 bra BB0_78;
+ bra.uni BB0_76;
+
+BB0_78:
+ add.f32 %f704, %f92, 0f3EE66666;
+ bra.uni BB0_79;
+
+BB0_76:
+ abs.f32 %f658, %f92;
+ setp.neu.f32 %p74, %f658, 0f7F800000;
+ @%p74 bra BB0_79;
+
+ selp.f32 %f704, 0fFF800000, 0f7F800000, %p2;
+
+BB0_79:
+ mov.f32 %f650, 0fB5BFBE8E;
+ mov.f32 %f649, 0fBF317200;
+ mov.f32 %f648, 0f00000000;
+ mov.f32 %f647, 0f35BFBE8E;
+ mov.f32 %f646, 0f3F317200;
+ mov.f32 %f645, 0f3DAAAABD;
+ mov.f32 %f644, 0f3C4CAF63;
+ mov.f32 %f643, 0f3B18F0FE;
+ mov.f32 %f642, 0f3EE66666;
+ setp.eq.f32 %p75, %f92, 0f3F800000;
+ selp.f32 %f120, 0f3F800000, %f704, %p75;
+ abs.f32 %f121, %f93;
+ setp.lt.f32 %p76, %f121, 0f00800000;
+ mul.f32 %f455, %f121, 0f4B800000;
+ selp.f32 %f456, 0fC3170000, 0fC2FE0000, %p76;
+ selp.f32 %f457, %f455, %f121, %p76;
+ mov.b32 %r240, %f457;
+ and.b32 %r241, %r240, 8388607;
+ or.b32 %r242, %r241, 1065353216;
+ mov.b32 %f458, %r242;
+ shr.u32 %r243, %r240, 23;
+ cvt.rn.f32.u32 %f459, %r243;
+ add.f32 %f460, %f456, %f459;
+ setp.gt.f32 %p77, %f458, 0f3FB504F3;
+ mul.f32 %f461, %f458, 0f3F000000;
+ add.f32 %f462, %f460, 0f3F800000;
+ selp.f32 %f463, %f461, %f458, %p77;
+ selp.f32 %f464, %f462, %f460, %p77;
+ add.f32 %f465, %f463, 0fBF800000;
+ add.f32 %f454, %f463, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f453,%f454;
+ // inline asm
+ add.f32 %f466, %f465, %f465;
+ mul.f32 %f467, %f453, %f466;
+ mul.f32 %f468, %f467, %f467;
+ fma.rn.f32 %f471, %f643, %f468, %f644;
+ fma.rn.f32 %f473, %f471, %f468, %f645;
+ mul.rn.f32 %f474, %f473, %f468;
+ mul.rn.f32 %f475, %f474, %f467;
+ sub.f32 %f476, %f465, %f467;
+ neg.f32 %f477, %f467;
+ add.f32 %f478, %f476, %f476;
+ fma.rn.f32 %f479, %f477, %f465, %f478;
+ mul.rn.f32 %f480, %f453, %f479;
+ add.f32 %f481, %f475, %f467;
+ sub.f32 %f482, %f467, %f481;
+ add.f32 %f483, %f475, %f482;
+ add.f32 %f484, %f480, %f483;
+ add.f32 %f485, %f481, %f484;
+ sub.f32 %f486, %f481, %f485;
+ add.f32 %f487, %f484, %f486;
+ mul.rn.f32 %f489, %f464, %f646;
+ mul.rn.f32 %f491, %f464, %f647;
+ add.f32 %f492, %f489, %f485;
+ sub.f32 %f493, %f489, %f492;
+ add.f32 %f494, %f485, %f493;
+ add.f32 %f495, %f487, %f494;
+ add.f32 %f496, %f491, %f495;
+ add.f32 %f497, %f492, %f496;
+ sub.f32 %f498, %f492, %f497;
+ add.f32 %f499, %f496, %f498;
+ mul.rn.f32 %f501, %f642, %f497;
+ neg.f32 %f502, %f501;
+ fma.rn.f32 %f503, %f642, %f497, %f502;
+ fma.rn.f32 %f504, %f642, %f499, %f503;
+ fma.rn.f32 %f506, %f648, %f497, %f504;
+ add.rn.f32 %f507, %f501, %f506;
+ neg.f32 %f508, %f507;
+ add.rn.f32 %f509, %f501, %f508;
+ add.rn.f32 %f510, %f509, %f506;
+ mov.b32 %r244, %f507;
+ setp.eq.s32 %p78, %r244, 1118925336;
+ add.s32 %r245, %r244, -1;
+ mov.b32 %f511, %r245;
+ add.f32 %f512, %f510, 0f37000000;
+ selp.f32 %f513, %f511, %f507, %p78;
+ selp.f32 %f122, %f512, %f510, %p78;
+ mul.f32 %f514, %f513, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f515, %f514;
+ fma.rn.f32 %f517, %f515, %f649, %f513;
+ fma.rn.f32 %f519, %f515, %f650, %f517;
+ mul.f32 %f520, %f519, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f521, %f520;
+ add.f32 %f522, %f515, 0f00000000;
+ ex2.approx.f32 %f523, %f522;
+ mul.f32 %f524, %f521, %f523;
+ setp.lt.f32 %p79, %f513, 0fC2D20000;
+ selp.f32 %f525, 0f00000000, %f524, %p79;
+ setp.gt.f32 %p80, %f513, 0f42D20000;
+ selp.f32 %f705, 0f7F800000, %f525, %p80;
+ setp.eq.f32 %p81, %f705, 0f7F800000;
+ @%p81 bra BB0_81;
+
+ fma.rn.f32 %f705, %f705, %f122, %f705;
+
+BB0_81:
+ setp.lt.f32 %p82, %f93, 0f00000000;
+ and.pred %p3, %p82, %p51;
+ mov.b32 %r246, %f705;
+ xor.b32 %r247, %r246, -2147483648;
+ mov.b32 %f526, %r247;
+ selp.f32 %f707, %f526, %f705, %p3;
+ setp.eq.f32 %p84, %f93, 0f00000000;
+ @%p84 bra BB0_84;
+ bra.uni BB0_82;
+
+BB0_84:
+ add.f32 %f529, %f93, %f93;
+ selp.f32 %f707, %f529, 0f00000000, %p51;
+ bra.uni BB0_85;
+
+BB0_82:
+ setp.geu.f32 %p85, %f93, 0f00000000;
+ @%p85 bra BB0_85;
+
+ mov.f32 %f651, 0f3EE66666;
+ cvt.rzi.f32.f32 %f528, %f651;
+ setp.neu.f32 %p86, %f528, 0f3EE66666;
+ selp.f32 %f707, 0f7FFFFFFF, %f707, %p86;
+
+BB0_85:
+ abs.f32 %f659, %f93;
+ add.f32 %f530, %f659, 0f3EE66666;
+ mov.b32 %r248, %f530;
+ setp.lt.s32 %p88, %r248, 2139095040;
+ @%p88 bra BB0_90;
+
+ abs.f32 %f660, %f93;
+ setp.gtu.f32 %p89, %f660, 0f7F800000;
+ @%p89 bra BB0_89;
+ bra.uni BB0_87;
+
+BB0_89:
+ add.f32 %f707, %f93, 0f3EE66666;
+ bra.uni BB0_90;
+
+BB0_87:
+ abs.f32 %f661, %f93;
+ setp.neu.f32 %p90, %f661, 0f7F800000;
+ @%p90 bra BB0_90;
+
+ selp.f32 %f707, 0fFF800000, 0f7F800000, %p3;
+
+BB0_90:
+ mov.u32 %r329, 4;
+ setp.eq.f32 %p91, %f93, 0f3F800000;
+ selp.f32 %f531, 0f3F800000, %f707, %p91;
+ cvt.u64.u32 %rd66, %r5;
+ cvt.u64.u32 %rd65, %r4;
+ mov.u64 %rd69, image;
+ cvta.global.u64 %rd64, %rd69;
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd64, %r92, %r329, %rd65, %rd66, %rd25, %rd25);
+ // inline asm
+ cvt.sat.f32.f32 %f532, %f531;
+ mul.f32 %f533, %f532, 0f437FFD71;
+ cvt.rzi.u32.f32 %r251, %f533;
+ cvt.sat.f32.f32 %f534, %f120;
+ mul.f32 %f535, %f534, 0f437FFD71;
+ cvt.rzi.u32.f32 %r252, %f535;
+ cvt.sat.f32.f32 %f536, %f107;
+ mul.f32 %f537, %f536, 0f437FFD71;
+ cvt.rzi.u32.f32 %r253, %f537;
+ cvt.u16.u32 %rs14, %r251;
+ cvt.u16.u32 %rs15, %r253;
+ cvt.u16.u32 %rs16, %r252;
+ mov.u16 %rs17, 255;
+ st.v4.u8 [%rd63], {%rs14, %rs16, %rs15, %rs17};
+ ld.global.u32 %r354, [imageEnabled];
+
+BB0_91:
+ cvt.u64.u32 %rd16, %r4;
+ cvt.u64.u32 %rd17, %r5;
+ and.b32 %r254, %r354, 4;
+ setp.eq.s32 %p92, %r254, 0;
+ @%p92 bra BB0_95;
+
+ ld.global.u32 %r255, [additive];
+ setp.eq.s32 %p93, %r255, 0;
+ mov.f32 %f538, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs18, %f538;}
+
+ // inline asm
+ @%p93 bra BB0_94;
+
+ mov.u64 %rd82, image_HDR;
+ cvta.global.u64 %rd71, %rd82;
+ mov.u32 %r259, 8;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd71, %r92, %r259, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs25, %rs26, %rs27, %rs28}, [%rd70];
+ // inline asm
+ { cvt.f32.f16 %f539, %rs25;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f540, %rs26;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f541, %rs27;}
+
+ // inline asm
+ // inline asm
+ call (%rd76), _rt_buffer_get_64, (%rd71, %r92, %r259, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f542, %f91, %f539;
+ add.f32 %f543, %f92, %f540;
+ add.f32 %f544, %f93, %f541;
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f544;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f543;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f542;}
+
+ // inline asm
+ st.v4.u16 [%rd76], {%rs22, %rs23, %rs24, %rs18};
+ bra.uni BB0_95;
+
+BB0_94:
+ mov.u64 %rd89, image_HDR;
+ cvta.global.u64 %rd84, %rd89;
+ mov.u32 %r261, 8;
+ // inline asm
+ call (%rd83), _rt_buffer_get_64, (%rd84, %r92, %r261, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f93;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f92;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f91;}
+
+ // inline asm
+ st.v4.u16 [%rd83], {%rs29, %rs30, %rs31, %rs18};
+
+BB0_95:
+ mul.f32 %f133, %f87, 0f3F000000;
+ ld.global.f32 %f549, [skyColor];
+ mul.f32 %f134, %f133, %f549;
+ ld.global.f32 %f550, [skyColor+4];
+ mul.f32 %f135, %f133, %f550;
+ ld.global.f32 %f551, [skyColor+8];
+ mul.f32 %f136, %f133, %f551;
+ ld.global.u32 %r262, [additive];
+ setp.eq.s32 %p94, %r262, 0;
+ mov.f32 %f548, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f548;}
+
+ // inline asm
+ @%p94 bra BB0_97;
+
+ mov.u64 %rd102, image_RNM0;
+ cvta.global.u64 %rd91, %rd102;
+ mov.u32 %r266, 8;
+ // inline asm
+ call (%rd90), _rt_buffer_get_64, (%rd91, %r92, %r266, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs39, %rs40, %rs41, %rs42}, [%rd90];
+ // inline asm
+ { cvt.f32.f16 %f552, %rs39;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f553, %rs40;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f554, %rs41;}
+
+ // inline asm
+ // inline asm
+ call (%rd96), _rt_buffer_get_64, (%rd91, %r92, %r266, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f555, %f134, %f552;
+ add.f32 %f556, %f135, %f553;
+ add.f32 %f557, %f136, %f554;
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f557;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f556;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f555;}
+
+ // inline asm
+ st.v4.u16 [%rd96], {%rs36, %rs37, %rs38, %rs32};
+ bra.uni BB0_98;
+
+BB0_97:
+ mov.u64 %rd109, image_RNM0;
+ cvta.global.u64 %rd104, %rd109;
+ mov.u32 %r268, 8;
+ // inline asm
+ call (%rd103), _rt_buffer_get_64, (%rd104, %r92, %r268, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f136;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f135;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f134;}
+
+ // inline asm
+ st.v4.u16 [%rd103], {%rs43, %rs44, %rs45, %rs32};
+
+BB0_98:
+ mov.f32 %f562, 0f34000000;
+ max.f32 %f563, %f133, %f562;
+ mul.f32 %f564, %f88, 0f3F000000;
+ div.rn.f32 %f565, %f564, %f563;
+ fma.rn.f32 %f137, %f565, 0f3F000000, 0f3F000000;
+ mul.f32 %f566, %f89, 0f3F000000;
+ div.rn.f32 %f567, %f566, %f563;
+ fma.rn.f32 %f138, %f567, 0f3F000000, 0f3F000000;
+ mul.f32 %f568, %f90, 0f3F000000;
+ div.rn.f32 %f569, %f568, %f563;
+ fma.rn.f32 %f139, %f569, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r269, [additive];
+ setp.eq.s32 %p95, %r269, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f548;}
+
+ // inline asm
+ @%p95 bra BB0_100;
+
+ mov.u64 %rd122, image_RNM1;
+ cvta.global.u64 %rd111, %rd122;
+ mov.u32 %r273, 8;
+ // inline asm
+ call (%rd110), _rt_buffer_get_64, (%rd111, %r92, %r273, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs53, %rs54, %rs55, %rs56}, [%rd110];
+ // inline asm
+ { cvt.f32.f16 %f570, %rs53;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f571, %rs54;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f572, %rs55;}
+
+ // inline asm
+ // inline asm
+ call (%rd116), _rt_buffer_get_64, (%rd111, %r92, %r273, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f573, %f137, %f570;
+ add.f32 %f574, %f137, %f571;
+ add.f32 %f575, %f137, %f572;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f575;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f574;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f573;}
+
+ // inline asm
+ st.v4.u16 [%rd116], {%rs50, %rs51, %rs52, %rs46};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd129, image_RNM1;
+ cvta.global.u64 %rd124, %rd129;
+ mov.u32 %r275, 8;
+ // inline asm
+ call (%rd123), _rt_buffer_get_64, (%rd124, %r92, %r275, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f137;}
+
+ // inline asm
+ st.v4.u16 [%rd123], {%rs57, %rs57, %rs57, %rs46};
+
+BB0_101:
+ ld.global.u32 %r276, [additive];
+ setp.eq.s32 %p96, %r276, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f548;}
+
+ // inline asm
+ @%p96 bra BB0_103;
+
+ mov.u64 %rd142, image_RNM2;
+ cvta.global.u64 %rd131, %rd142;
+ mov.u32 %r280, 8;
+ // inline asm
+ call (%rd130), _rt_buffer_get_64, (%rd131, %r92, %r280, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs65, %rs66, %rs67, %rs68}, [%rd130];
+ // inline asm
+ { cvt.f32.f16 %f578, %rs65;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f579, %rs66;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f580, %rs67;}
+
+ // inline asm
+ // inline asm
+ call (%rd136), _rt_buffer_get_64, (%rd131, %r92, %r280, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f581, %f138, %f578;
+ add.f32 %f582, %f138, %f579;
+ add.f32 %f583, %f138, %f580;
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f583;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs63, %f582;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs62, %f581;}
+
+ // inline asm
+ st.v4.u16 [%rd136], {%rs62, %rs63, %rs64, %rs58};
+ bra.uni BB0_104;
+
+BB0_103:
+ mov.u64 %rd149, image_RNM2;
+ cvta.global.u64 %rd144, %rd149;
+ mov.u32 %r282, 8;
+ // inline asm
+ call (%rd143), _rt_buffer_get_64, (%rd144, %r92, %r282, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f138;}
+
+ // inline asm
+ st.v4.u16 [%rd143], {%rs69, %rs69, %rs69, %rs58};
+
+BB0_104:
+ ld.global.u32 %r283, [additive];
+ setp.eq.s32 %p97, %r283, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f548;}
+
+ // inline asm
+ @%p97 bra BB0_106;
+
+ mov.u64 %rd162, image_RNM3;
+ cvta.global.u64 %rd151, %rd162;
+ mov.u32 %r287, 8;
+ // inline asm
+ call (%rd150), _rt_buffer_get_64, (%rd151, %r92, %r287, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs77, %rs78, %rs79, %rs80}, [%rd150];
+ // inline asm
+ { cvt.f32.f16 %f586, %rs77;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f587, %rs78;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f588, %rs79;}
+
+ // inline asm
+ // inline asm
+ call (%rd156), _rt_buffer_get_64, (%rd151, %r92, %r287, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f589, %f139, %f586;
+ add.f32 %f590, %f139, %f587;
+ add.f32 %f591, %f139, %f588;
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f591;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs75, %f590;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f589;}
+
+ // inline asm
+ st.v4.u16 [%rd156], {%rs74, %rs75, %rs76, %rs70};
+ bra.uni BB0_125;
+
+BB0_106:
+ mov.u64 %rd169, image_RNM3;
+ cvta.global.u64 %rd164, %rd169;
+ mov.u32 %r289, 8;
+ // inline asm
+ call (%rd163), _rt_buffer_get_64, (%rd164, %r92, %r289, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f139;}
+
+ // inline asm
+ st.v4.u16 [%rd163], {%rs81, %rs81, %rs81, %rs70};
+
+BB0_125:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyProbeSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyProbeSH.ptx.meta
new file mode 100644
index 00000000..df88e833
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyProbeSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 269f203d8c22e194a8024c8de727f6e5
+timeCreated: 1551472845
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyRNM.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyRNM.ptx
new file mode 100644
index 00000000..405d91e5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyRNM.ptx
@@ -0,0 +1,2025 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 uvtangent[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .texref sky;
+.global .align 4 .b8 skyColor[12];
+.global .align 4 .u32 samples;
+.global .align 4 .u32 hemispherical;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8skyColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13hemisphericalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8skyColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename13hemisphericalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8skyColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13hemisphericalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8skyColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13hemisphericalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8skyColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13hemisphericalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<110>;
+ .reg .b16 %rs<153>;
+ .reg .f32 %f<847>;
+ .reg .b32 %r<375>;
+ .reg .b64 %rd<276>;
+
+
+ mov.u64 %rd275, __local_depot0;
+ cvta.local.u64 %SP, %rd275;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r99, %r100}, [pixelID];
+ cvt.u64.u32 %rd24, %r99;
+ cvt.u64.u32 %rd25, %r100;
+ mov.u64 %rd28, uvnormal;
+ cvta.global.u64 %rd23, %rd28;
+ mov.u32 %r97, 2;
+ mov.u32 %r98, 4;
+ mov.u64 %rd27, 0;
+ // inline asm
+ call (%rd22), _rt_buffer_get_64, (%rd23, %r97, %r98, %rd24, %rd25, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r2, [%rd22];
+ shr.u32 %r103, %r2, 16;
+ cvt.u16.u32 %rs1, %r103;
+ and.b16 %rs6, %rs1, 255;
+ cvt.u16.u32 %rs7, %r2;
+ or.b16 %rs8, %rs7, %rs6;
+ setp.eq.s16 %p4, %rs8, 0;
+ mov.f32 %f798, 0f00000000;
+ mov.f32 %f799, %f798;
+ mov.f32 %f800, %f798;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs9, [%rd22+1];
+ and.b16 %rs11, %rs7, 255;
+ cvt.rn.f32.u16 %f170, %rs11;
+ div.rn.f32 %f171, %f170, 0f437F0000;
+ fma.rn.f32 %f172, %f171, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f173, %rs9;
+ div.rn.f32 %f174, %f173, 0f437F0000;
+ fma.rn.f32 %f175, %f174, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f176, %rs6;
+ div.rn.f32 %f177, %f176, 0f437F0000;
+ fma.rn.f32 %f178, %f177, 0f40000000, 0fBF800000;
+ mul.f32 %f179, %f175, %f175;
+ fma.rn.f32 %f180, %f172, %f172, %f179;
+ fma.rn.f32 %f181, %f178, %f178, %f180;
+ sqrt.rn.f32 %f182, %f181;
+ rcp.rn.f32 %f183, %f182;
+ mul.f32 %f798, %f172, %f183;
+ mul.f32 %f799, %f175, %f183;
+ mul.f32 %f800, %f178, %f183;
+
+BB0_2:
+ ld.global.v2.u32 {%r104, %r105}, [pixelID];
+ ld.global.v2.u32 {%r107, %r108}, [tileInfo];
+ add.s32 %r3, %r104, %r107;
+ add.s32 %r4, %r105, %r108;
+ setp.eq.f32 %p5, %f799, 0f00000000;
+ setp.eq.f32 %p6, %f798, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f800, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_110;
+ bra.uni BB0_3;
+
+BB0_110:
+ ld.global.u32 %r374, [imageEnabled];
+ and.b32 %r306, %r374, 1;
+ setp.eq.b32 %p104, %r306, 1;
+ @!%p104 bra BB0_112;
+ bra.uni BB0_111;
+
+BB0_111:
+ cvt.u64.u32 %rd176, %r4;
+ cvt.u64.u32 %rd175, %r3;
+ mov.u64 %rd179, image;
+ cvta.global.u64 %rd174, %rd179;
+ mov.u64 %rd178, 0;
+ // inline asm
+ call (%rd173), _rt_buffer_get_64, (%rd174, %r97, %r98, %rd175, %rd176, %rd178, %rd178);
+ // inline asm
+ mov.u16 %rs100, 0;
+ st.v4.u8 [%rd173], {%rs100, %rs100, %rs100, %rs100};
+ ld.global.u32 %r374, [imageEnabled];
+
+BB0_112:
+ cvt.u64.u32 %rd20, %r3;
+ cvt.u64.u32 %rd21, %r4;
+ and.b32 %r309, %r374, 4;
+ setp.eq.s32 %p105, %r309, 0;
+ @%p105 bra BB0_116;
+
+ ld.global.u32 %r310, [additive];
+ setp.eq.s32 %p106, %r310, 0;
+ @%p106 bra BB0_115;
+
+ mov.u64 %rd192, image_HDR;
+ cvta.global.u64 %rd181, %rd192;
+ mov.u32 %r314, 8;
+ mov.u64 %rd191, 0;
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd181, %r97, %r314, %rd20, %rd21, %rd191, %rd191);
+ // inline asm
+ ld.v4.u16 {%rs107, %rs108, %rs109, %rs110}, [%rd180];
+ // inline asm
+ { cvt.f32.f16 %f732, %rs107;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f733, %rs108;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f734, %rs109;}
+
+ // inline asm
+ // inline asm
+ call (%rd186), _rt_buffer_get_64, (%rd181, %r97, %r314, %rd20, %rd21, %rd191, %rd191);
+ // inline asm
+ add.f32 %f735, %f732, 0f00000000;
+ add.f32 %f736, %f733, 0f00000000;
+ add.f32 %f737, %f734, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs106, %f737;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f736;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f735;}
+
+ // inline asm
+ mov.u16 %rs111, 0;
+ st.v4.u16 [%rd186], {%rs104, %rs105, %rs106, %rs111};
+ bra.uni BB0_116;
+
+BB0_3:
+ ld.global.v2.u32 {%r118, %r119}, [pixelID];
+ cvt.u64.u32 %rd31, %r118;
+ cvt.u64.u32 %rd32, %r119;
+ mov.u64 %rd47, uvpos;
+ cvta.global.u64 %rd30, %rd47;
+ mov.u32 %r113, 12;
+ // inline asm
+ call (%rd29), _rt_buffer_get_64, (%rd30, %r97, %r113, %rd31, %rd32, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f187, [%rd29+8];
+ ld.f32 %f188, [%rd29+4];
+ ld.f32 %f189, [%rd29];
+ mul.f32 %f190, %f189, 0f3456BF95;
+ mul.f32 %f191, %f188, 0f3456BF95;
+ mul.f32 %f192, %f187, 0f3456BF95;
+ abs.f32 %f193, %f798;
+ div.rn.f32 %f194, %f190, %f193;
+ abs.f32 %f195, %f799;
+ div.rn.f32 %f196, %f191, %f195;
+ abs.f32 %f197, %f800;
+ div.rn.f32 %f198, %f192, %f197;
+ abs.f32 %f199, %f194;
+ abs.f32 %f200, %f196;
+ abs.f32 %f201, %f198;
+ mov.f32 %f202, 0f38D1B717;
+ max.f32 %f203, %f199, %f202;
+ max.f32 %f204, %f200, %f202;
+ max.f32 %f205, %f201, %f202;
+ fma.rn.f32 %f7, %f798, %f203, %f189;
+ fma.rn.f32 %f8, %f799, %f204, %f188;
+ fma.rn.f32 %f9, %f800, %f205, %f187;
+ ld.global.u32 %r5, [hemispherical];
+ setp.gt.f32 %p10, %f193, %f197;
+ neg.f32 %f206, %f799;
+ selp.f32 %f207, %f206, 0f00000000, %p10;
+ neg.f32 %f208, %f800;
+ selp.f32 %f209, %f798, %f208, %p10;
+ selp.f32 %f210, 0f00000000, %f799, %p10;
+ mul.f32 %f211, %f209, %f209;
+ fma.rn.f32 %f212, %f207, %f207, %f211;
+ fma.rn.f32 %f213, %f210, %f210, %f212;
+ sqrt.rn.f32 %f214, %f213;
+ rcp.rn.f32 %f215, %f214;
+ mul.f32 %f10, %f207, %f215;
+ mul.f32 %f11, %f209, %f215;
+ mul.f32 %f12, %f210, %f215;
+ ld.global.v2.u32 {%r122, %r123}, [pixelID];
+ cvt.u64.u32 %rd37, %r122;
+ cvt.u64.u32 %rd38, %r123;
+ mov.u64 %rd48, rnd_seeds;
+ cvta.global.u64 %rd36, %rd48;
+ // inline asm
+ call (%rd35), _rt_buffer_get_64, (%rd36, %r97, %r98, %rd37, %rd38, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r352, [%rd35];
+ ld.global.v2.u32 {%r126, %r127}, [pixelID];
+ cvt.u64.u32 %rd43, %r126;
+ cvt.u64.u32 %rd44, %r127;
+ mov.u64 %rd49, uvtangent;
+ cvta.global.u64 %rd42, %rd49;
+ // inline asm
+ call (%rd41), _rt_buffer_get_64, (%rd42, %r97, %r98, %rd43, %rd44, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r7, [%rd41];
+ shr.u32 %r8, %r7, 16;
+ cvt.u16.u32 %rs13, %r8;
+ and.b16 %rs14, %rs13, 255;
+ cvt.u16.u32 %rs15, %r7;
+ or.b16 %rs16, %rs15, %rs14;
+ setp.eq.s16 %p11, %rs16, 0;
+ mov.f32 %f833, 0f00000000;
+ mov.f32 %f801, %f833;
+ mov.f32 %f802, %f833;
+ mov.f32 %f803, %f833;
+ @%p11 bra BB0_5;
+
+ ld.u8 %rs17, [%rd41+1];
+ and.b16 %rs19, %rs15, 255;
+ cvt.rn.f32.u16 %f216, %rs19;
+ div.rn.f32 %f217, %f216, 0f437F0000;
+ fma.rn.f32 %f218, %f217, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f219, %rs17;
+ div.rn.f32 %f220, %f219, 0f437F0000;
+ fma.rn.f32 %f221, %f220, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f222, %rs14;
+ div.rn.f32 %f223, %f222, 0f437F0000;
+ fma.rn.f32 %f224, %f223, 0f40000000, 0fBF800000;
+ mul.f32 %f225, %f221, %f221;
+ fma.rn.f32 %f226, %f218, %f218, %f225;
+ fma.rn.f32 %f227, %f224, %f224, %f226;
+ sqrt.rn.f32 %f228, %f227;
+ rcp.rn.f32 %f229, %f228;
+ mul.f32 %f801, %f218, %f229;
+ mul.f32 %f802, %f221, %f229;
+ mul.f32 %f803, %f224, %f229;
+
+BB0_5:
+ mul.f32 %f233, %f800, %f802;
+ mul.f32 %f234, %f799, %f803;
+ sub.f32 %f235, %f234, %f233;
+ mul.f32 %f236, %f798, %f803;
+ mul.f32 %f237, %f800, %f801;
+ sub.f32 %f238, %f237, %f236;
+ mul.f32 %f239, %f799, %f801;
+ mul.f32 %f240, %f798, %f802;
+ sub.f32 %f241, %f240, %f239;
+ setp.lt.u32 %p12, %r7, 16777216;
+ selp.f32 %f242, 0fBF800000, 0f3F800000, %p12;
+ mul.f32 %f243, %f235, %f242;
+ mul.f32 %f244, %f238, %f242;
+ mul.f32 %f245, %f241, %f242;
+ mul.f32 %f246, %f243, 0f00000000;
+ mul.f32 %f247, %f244, 0f00000000;
+ mul.f32 %f248, %f245, 0f00000000;
+ fma.rn.f32 %f249, %f801, 0f3F5105EC, %f246;
+ fma.rn.f32 %f250, %f802, 0f3F5105EC, %f247;
+ fma.rn.f32 %f251, %f803, 0f3F5105EC, %f248;
+ mul.f32 %f19, %f798, 0f3F13CD3A;
+ add.f32 %f20, %f19, %f249;
+ mul.f32 %f21, %f799, 0f3F13CD3A;
+ add.f32 %f22, %f21, %f250;
+ mul.f32 %f23, %f800, 0f3F13CD3A;
+ add.f32 %f24, %f23, %f251;
+ ld.global.v2.u32 {%r132, %r133}, [pixelID];
+ cvt.u64.u32 %rd52, %r132;
+ cvt.u64.u32 %rd53, %r133;
+ // inline asm
+ call (%rd50), _rt_buffer_get_64, (%rd42, %r97, %r98, %rd52, %rd53, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r9, [%rd50];
+ shr.u32 %r10, %r9, 16;
+ cvt.u16.u32 %rs22, %r10;
+ and.b16 %rs23, %rs22, 255;
+ cvt.u16.u32 %rs24, %r9;
+ or.b16 %rs25, %rs24, %rs23;
+ setp.eq.s16 %p13, %rs25, 0;
+ mov.f32 %f804, %f833;
+ mov.f32 %f805, %f833;
+ mov.f32 %f806, %f833;
+ @%p13 bra BB0_7;
+
+ ld.u8 %rs26, [%rd50+1];
+ and.b16 %rs28, %rs24, 255;
+ cvt.rn.f32.u16 %f252, %rs28;
+ div.rn.f32 %f253, %f252, 0f437F0000;
+ fma.rn.f32 %f254, %f253, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f255, %rs26;
+ div.rn.f32 %f256, %f255, 0f437F0000;
+ fma.rn.f32 %f257, %f256, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f258, %rs23;
+ div.rn.f32 %f259, %f258, 0f437F0000;
+ fma.rn.f32 %f260, %f259, 0f40000000, 0fBF800000;
+ mul.f32 %f261, %f257, %f257;
+ fma.rn.f32 %f262, %f254, %f254, %f261;
+ fma.rn.f32 %f263, %f260, %f260, %f262;
+ sqrt.rn.f32 %f264, %f263;
+ rcp.rn.f32 %f265, %f264;
+ mul.f32 %f804, %f254, %f265;
+ mul.f32 %f805, %f257, %f265;
+ mul.f32 %f806, %f260, %f265;
+
+BB0_7:
+ mul.f32 %f269, %f800, %f805;
+ mul.f32 %f270, %f799, %f806;
+ sub.f32 %f271, %f270, %f269;
+ mul.f32 %f272, %f798, %f806;
+ mul.f32 %f273, %f800, %f804;
+ sub.f32 %f274, %f273, %f272;
+ mul.f32 %f275, %f799, %f804;
+ mul.f32 %f276, %f798, %f805;
+ sub.f32 %f277, %f276, %f275;
+ setp.lt.u32 %p14, %r9, 16777216;
+ selp.f32 %f278, 0fBF800000, 0f3F800000, %p14;
+ mul.f32 %f279, %f271, %f278;
+ mul.f32 %f280, %f274, %f278;
+ mul.f32 %f281, %f277, %f278;
+ mul.f32 %f282, %f279, 0f3F3504F3;
+ mul.f32 %f283, %f280, 0f3F3504F3;
+ mul.f32 %f284, %f281, 0f3F3504F3;
+ fma.rn.f32 %f285, %f804, 0fBED105EC, %f282;
+ fma.rn.f32 %f286, %f805, 0fBED105EC, %f283;
+ fma.rn.f32 %f287, %f806, 0fBED105EC, %f284;
+ add.f32 %f31, %f19, %f285;
+ add.f32 %f32, %f21, %f286;
+ add.f32 %f33, %f23, %f287;
+ ld.global.v2.u32 {%r138, %r139}, [pixelID];
+ cvt.u64.u32 %rd59, %r138;
+ cvt.u64.u32 %rd60, %r139;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd42, %r97, %r98, %rd59, %rd60, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r11, [%rd57];
+ shr.u32 %r12, %r11, 16;
+ cvt.u16.u32 %rs31, %r12;
+ and.b16 %rs32, %rs31, 255;
+ cvt.u16.u32 %rs33, %r11;
+ or.b16 %rs34, %rs33, %rs32;
+ setp.eq.s16 %p15, %rs34, 0;
+ mov.f32 %f807, %f833;
+ mov.f32 %f808, %f833;
+ mov.f32 %f809, %f833;
+ @%p15 bra BB0_9;
+
+ ld.u8 %rs35, [%rd57+1];
+ and.b16 %rs37, %rs33, 255;
+ cvt.rn.f32.u16 %f288, %rs37;
+ div.rn.f32 %f289, %f288, 0f437F0000;
+ fma.rn.f32 %f290, %f289, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f291, %rs35;
+ div.rn.f32 %f292, %f291, 0f437F0000;
+ fma.rn.f32 %f293, %f292, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f294, %rs32;
+ div.rn.f32 %f295, %f294, 0f437F0000;
+ fma.rn.f32 %f296, %f295, 0f40000000, 0fBF800000;
+ mul.f32 %f297, %f293, %f293;
+ fma.rn.f32 %f298, %f290, %f290, %f297;
+ fma.rn.f32 %f299, %f296, %f296, %f298;
+ sqrt.rn.f32 %f300, %f299;
+ rcp.rn.f32 %f301, %f300;
+ mul.f32 %f807, %f290, %f301;
+ mul.f32 %f808, %f293, %f301;
+ mul.f32 %f809, %f296, %f301;
+
+BB0_9:
+ mul.f32 %f306, %f800, %f808;
+ mul.f32 %f307, %f799, %f809;
+ sub.f32 %f308, %f307, %f306;
+ mul.f32 %f309, %f798, %f809;
+ mul.f32 %f310, %f800, %f807;
+ sub.f32 %f311, %f310, %f309;
+ mul.f32 %f312, %f799, %f807;
+ mul.f32 %f313, %f798, %f808;
+ sub.f32 %f314, %f313, %f312;
+ setp.lt.u32 %p16, %r11, 16777216;
+ selp.f32 %f315, 0fBF800000, 0f3F800000, %p16;
+ mul.f32 %f316, %f308, %f315;
+ mul.f32 %f317, %f311, %f315;
+ mul.f32 %f318, %f314, %f315;
+ mul.f32 %f319, %f316, 0fBF3504F3;
+ mul.f32 %f320, %f317, 0fBF3504F3;
+ mul.f32 %f321, %f318, 0fBF3504F3;
+ fma.rn.f32 %f322, %f807, 0fBED105EC, %f319;
+ fma.rn.f32 %f323, %f808, 0fBED105EC, %f320;
+ fma.rn.f32 %f324, %f809, 0fBED105EC, %f321;
+ add.f32 %f40, %f19, %f322;
+ add.f32 %f41, %f21, %f323;
+ add.f32 %f42, %f23, %f324;
+ setp.lt.s32 %p17, %r1, 1;
+ mov.f32 %f832, %f833;
+ mov.f32 %f831, %f833;
+ mov.f32 %f830, %f833;
+ @%p17 bra BB0_62;
+
+ cvt.rn.f32.s32 %f329, %r1;
+ rcp.rn.f32 %f43, %f329;
+ mul.f32 %f44, %f7, 0f3456BF95;
+ mul.f32 %f45, %f8, 0f3456BF95;
+ mul.f32 %f46, %f9, 0f3456BF95;
+ mul.f32 %f330, %f800, %f11;
+ mul.f32 %f331, %f799, %f12;
+ sub.f32 %f47, %f330, %f331;
+ mul.f32 %f332, %f798, %f12;
+ mul.f32 %f333, %f800, %f10;
+ sub.f32 %f48, %f332, %f333;
+ mul.f32 %f334, %f799, %f10;
+ mul.f32 %f335, %f798, %f11;
+ sub.f32 %f49, %f334, %f335;
+ mov.f32 %f833, 0f00000000;
+ mov.u32 %r142, 0;
+ abs.f32 %f409, %f45;
+ abs.f32 %f410, %f44;
+ max.f32 %f411, %f410, %f409;
+ abs.f32 %f412, %f46;
+ max.f32 %f413, %f411, %f412;
+ mov.u32 %r349, %r142;
+ mov.f32 %f832, %f833;
+ mov.f32 %f831, %f833;
+ mov.f32 %f830, %f833;
+
+BB0_11:
+ mov.u32 %r351, %r142;
+
+BB0_12:
+ cvt.rn.f32.s32 %f794, %r349;
+ mad.lo.s32 %r144, %r352, 1664525, 1013904223;
+ and.b32 %r145, %r144, 16777215;
+ cvt.rn.f32.u32 %f336, %r145;
+ fma.rn.f32 %f337, %f336, 0f33800000, %f794;
+ mul.f32 %f59, %f43, %f337;
+ mad.lo.s32 %r352, %r144, 1664525, 1013904223;
+ and.b32 %r146, %r352, 16777215;
+ cvt.rn.f32.u32 %f338, %r146;
+ cvt.rn.f32.s32 %f339, %r351;
+ fma.rn.f32 %f340, %f338, 0f33800000, %f339;
+ mul.f32 %f341, %f43, %f340;
+ mul.f32 %f342, %f59, %f59;
+ mov.f32 %f343, 0f3F800000;
+ sub.f32 %f344, %f343, %f342;
+ mov.f32 %f345, 0f00000000;
+ max.f32 %f346, %f345, %f344;
+ sqrt.rn.f32 %f60, %f346;
+ mul.f32 %f824, %f341, 0f40C90FDB;
+ abs.f32 %f62, %f824;
+ setp.neu.f32 %p18, %f62, 0f7F800000;
+ mov.f32 %f818, %f824;
+ @%p18 bra BB0_14;
+
+ mul.rn.f32 %f818, %f824, %f345;
+
+BB0_14:
+ mul.f32 %f348, %f818, 0f3F22F983;
+ cvt.rni.s32.f32 %r362, %f348;
+ cvt.rn.f32.s32 %f349, %r362;
+ neg.f32 %f350, %f349;
+ mov.f32 %f351, 0f3FC90FDA;
+ fma.rn.f32 %f352, %f350, %f351, %f818;
+ mov.f32 %f353, 0f33A22168;
+ fma.rn.f32 %f354, %f350, %f353, %f352;
+ mov.f32 %f355, 0f27C234C5;
+ fma.rn.f32 %f819, %f350, %f355, %f354;
+ abs.f32 %f356, %f818;
+ setp.leu.f32 %p19, %f356, 0f47CE4780;
+ @%p19 bra BB0_25;
+
+ add.u64 %rd65, %SP, 4;
+ cvta.to.local.u64 %rd5, %rd65;
+ mov.b32 %r19, %f818;
+ shr.u32 %r20, %r19, 23;
+ shl.b32 %r149, %r19, 8;
+ or.b32 %r21, %r149, -2147483648;
+ mov.u32 %r353, 0;
+ mov.u64 %rd272, 0;
+ mov.u64 %rd271, %rd5;
+ mov.u32 %r354, %r353;
+
+BB0_16:
+ .pragma "nounroll";
+ shl.b64 %rd66, %rd272, 2;
+ mov.u64 %rd67, __cudart_i2opi_f;
+ add.s64 %rd68, %rd67, %rd66;
+ ld.const.u32 %r152, [%rd68];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r150, %r152, %r21, %r354;
+ madc.hi.u32 %r354, %r152, %r21, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd271], %r150;
+ add.s32 %r353, %r353, 1;
+ cvt.s64.s32 %rd272, %r353;
+ mul.wide.s32 %rd71, %r353, 4;
+ add.s64 %rd271, %rd5, %rd71;
+ setp.ne.s32 %p20, %r353, 6;
+ @%p20 bra BB0_16;
+
+ add.u64 %rd269, %SP, 4;
+ and.b32 %r155, %r20, 255;
+ add.s32 %r156, %r155, -128;
+ shr.u32 %r157, %r156, 5;
+ and.b32 %r26, %r19, -2147483648;
+ cvta.to.local.u64 %rd73, %rd269;
+ st.local.u32 [%rd73+24], %r354;
+ mov.u32 %r158, 6;
+ sub.s32 %r159, %r158, %r157;
+ mul.wide.s32 %rd74, %r159, 4;
+ add.s64 %rd10, %rd73, %rd74;
+ ld.local.u32 %r355, [%rd10];
+ ld.local.u32 %r356, [%rd10+-4];
+ and.b32 %r29, %r20, 31;
+ setp.eq.s32 %p21, %r29, 0;
+ @%p21 bra BB0_19;
+
+ mov.u32 %r160, 32;
+ sub.s32 %r161, %r160, %r29;
+ shr.u32 %r162, %r356, %r161;
+ shl.b32 %r163, %r355, %r29;
+ add.s32 %r355, %r162, %r163;
+ ld.local.u32 %r164, [%rd10+-8];
+ shr.u32 %r165, %r164, %r161;
+ shl.b32 %r166, %r356, %r29;
+ add.s32 %r356, %r165, %r166;
+
+BB0_19:
+ shr.u32 %r167, %r356, 30;
+ shl.b32 %r168, %r355, 2;
+ add.s32 %r357, %r167, %r168;
+ shl.b32 %r35, %r356, 2;
+ shr.u32 %r169, %r357, 31;
+ shr.u32 %r170, %r355, 30;
+ add.s32 %r36, %r169, %r170;
+ setp.eq.s32 %p22, %r169, 0;
+ @%p22 bra BB0_20;
+ bra.uni BB0_21;
+
+BB0_20:
+ mov.u32 %r358, %r26;
+ mov.u32 %r359, %r35;
+ bra.uni BB0_22;
+
+BB0_21:
+ not.b32 %r171, %r357;
+ neg.s32 %r359, %r35;
+ setp.eq.s32 %p23, %r35, 0;
+ selp.u32 %r172, 1, 0, %p23;
+ add.s32 %r357, %r172, %r171;
+ xor.b32 %r358, %r26, -2147483648;
+
+BB0_22:
+ clz.b32 %r361, %r357;
+ setp.eq.s32 %p24, %r361, 0;
+ shl.b32 %r173, %r357, %r361;
+ mov.u32 %r174, 32;
+ sub.s32 %r175, %r174, %r361;
+ shr.u32 %r176, %r359, %r175;
+ add.s32 %r177, %r176, %r173;
+ selp.b32 %r44, %r357, %r177, %p24;
+ mov.u32 %r178, -921707870;
+ mul.hi.u32 %r360, %r44, %r178;
+ setp.eq.s32 %p25, %r26, 0;
+ neg.s32 %r179, %r36;
+ selp.b32 %r362, %r36, %r179, %p25;
+ setp.lt.s32 %p26, %r360, 1;
+ @%p26 bra BB0_24;
+
+ mul.lo.s32 %r180, %r44, -921707870;
+ shr.u32 %r181, %r180, 31;
+ shl.b32 %r182, %r360, 1;
+ add.s32 %r360, %r181, %r182;
+ add.s32 %r361, %r361, 1;
+
+BB0_24:
+ mov.u32 %r183, 126;
+ sub.s32 %r184, %r183, %r361;
+ shl.b32 %r185, %r184, 23;
+ add.s32 %r186, %r360, 1;
+ shr.u32 %r187, %r186, 7;
+ add.s32 %r188, %r187, 1;
+ shr.u32 %r189, %r188, 1;
+ add.s32 %r190, %r189, %r185;
+ or.b32 %r191, %r190, %r358;
+ mov.b32 %f819, %r191;
+
+BB0_25:
+ mul.rn.f32 %f68, %f819, %f819;
+ add.s32 %r52, %r362, 1;
+ and.b32 %r53, %r52, 1;
+ setp.eq.s32 %p27, %r53, 0;
+ @%p27 bra BB0_27;
+ bra.uni BB0_26;
+
+BB0_27:
+ mov.f32 %f359, 0f3C08839E;
+ mov.f32 %f360, 0fB94CA1F9;
+ fma.rn.f32 %f820, %f360, %f68, %f359;
+ bra.uni BB0_28;
+
+BB0_26:
+ mov.f32 %f357, 0fBAB6061A;
+ mov.f32 %f358, 0f37CCF5CE;
+ fma.rn.f32 %f820, %f358, %f68, %f357;
+
+BB0_28:
+ @%p27 bra BB0_30;
+ bra.uni BB0_29;
+
+BB0_30:
+ mov.f32 %f364, 0fBE2AAAA3;
+ fma.rn.f32 %f365, %f820, %f68, %f364;
+ fma.rn.f32 %f821, %f365, %f68, %f345;
+ bra.uni BB0_31;
+
+BB0_29:
+ mov.f32 %f361, 0f3D2AAAA5;
+ fma.rn.f32 %f362, %f820, %f68, %f361;
+ mov.f32 %f363, 0fBF000000;
+ fma.rn.f32 %f821, %f362, %f68, %f363;
+
+BB0_31:
+ fma.rn.f32 %f822, %f821, %f819, %f819;
+ @%p27 bra BB0_33;
+
+ fma.rn.f32 %f822, %f821, %f68, %f343;
+
+BB0_33:
+ and.b32 %r192, %r52, 2;
+ setp.eq.s32 %p30, %r192, 0;
+ @%p30 bra BB0_35;
+
+ mov.f32 %f369, 0fBF800000;
+ fma.rn.f32 %f822, %f822, %f369, %f345;
+
+BB0_35:
+ @%p18 bra BB0_37;
+
+ mul.rn.f32 %f824, %f824, %f345;
+
+BB0_37:
+ mov.f32 %f793, 0f27C234C5;
+ mov.f32 %f792, 0f33A22168;
+ mov.f32 %f791, 0f3FC90FDA;
+ mul.f32 %f371, %f824, 0f3F22F983;
+ cvt.rni.s32.f32 %r372, %f371;
+ cvt.rn.f32.s32 %f372, %r372;
+ neg.f32 %f373, %f372;
+ fma.rn.f32 %f375, %f373, %f791, %f824;
+ fma.rn.f32 %f377, %f373, %f792, %f375;
+ fma.rn.f32 %f825, %f373, %f793, %f377;
+ abs.f32 %f379, %f824;
+ setp.leu.f32 %p32, %f379, 0f47CE4780;
+ @%p32 bra BB0_48;
+
+ mov.u64 %rd274, 0;
+ add.u64 %rd76, %SP, 4;
+ cvta.to.local.u64 %rd11, %rd76;
+ mov.b32 %r55, %f824;
+ shr.u32 %r56, %r55, 23;
+ shl.b32 %r195, %r55, 8;
+ or.b32 %r57, %r195, -2147483648;
+ mov.u32 %r363, 0;
+ mov.u64 %rd273, %rd11;
+ mov.u32 %r364, %r363;
+
+BB0_39:
+ .pragma "nounroll";
+ shl.b64 %rd77, %rd274, 2;
+ mov.u64 %rd78, __cudart_i2opi_f;
+ add.s64 %rd79, %rd78, %rd77;
+ ld.const.u32 %r198, [%rd79];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r196, %r198, %r57, %r364;
+ madc.hi.u32 %r364, %r198, %r57, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd273], %r196;
+ add.s32 %r363, %r363, 1;
+ cvt.s64.s32 %rd274, %r363;
+ mul.wide.s32 %rd80, %r363, 4;
+ add.s64 %rd273, %rd11, %rd80;
+ setp.ne.s32 %p33, %r363, 6;
+ @%p33 bra BB0_39;
+
+ and.b32 %r201, %r56, 255;
+ add.s32 %r202, %r201, -128;
+ shr.u32 %r203, %r202, 5;
+ and.b32 %r62, %r55, -2147483648;
+ cvta.to.local.u64 %rd82, %rd76;
+ st.local.u32 [%rd82+24], %r364;
+ mov.u32 %r204, 6;
+ sub.s32 %r205, %r204, %r203;
+ mul.wide.s32 %rd83, %r205, 4;
+ add.s64 %rd17, %rd82, %rd83;
+ ld.local.u32 %r365, [%rd17];
+ ld.local.u32 %r366, [%rd17+-4];
+ and.b32 %r65, %r56, 31;
+ setp.eq.s32 %p34, %r65, 0;
+ @%p34 bra BB0_42;
+
+ mov.u32 %r206, 32;
+ sub.s32 %r207, %r206, %r65;
+ shr.u32 %r208, %r366, %r207;
+ shl.b32 %r209, %r365, %r65;
+ add.s32 %r365, %r208, %r209;
+ ld.local.u32 %r210, [%rd17+-8];
+ shr.u32 %r211, %r210, %r207;
+ shl.b32 %r212, %r366, %r65;
+ add.s32 %r366, %r211, %r212;
+
+BB0_42:
+ shr.u32 %r213, %r366, 30;
+ shl.b32 %r214, %r365, 2;
+ add.s32 %r367, %r213, %r214;
+ shl.b32 %r71, %r366, 2;
+ shr.u32 %r215, %r367, 31;
+ shr.u32 %r216, %r365, 30;
+ add.s32 %r72, %r215, %r216;
+ setp.eq.s32 %p35, %r215, 0;
+ @%p35 bra BB0_43;
+ bra.uni BB0_44;
+
+BB0_43:
+ mov.u32 %r368, %r62;
+ mov.u32 %r369, %r71;
+ bra.uni BB0_45;
+
+BB0_44:
+ not.b32 %r217, %r367;
+ neg.s32 %r369, %r71;
+ setp.eq.s32 %p36, %r71, 0;
+ selp.u32 %r218, 1, 0, %p36;
+ add.s32 %r367, %r218, %r217;
+ xor.b32 %r368, %r62, -2147483648;
+
+BB0_45:
+ clz.b32 %r371, %r367;
+ setp.eq.s32 %p37, %r371, 0;
+ shl.b32 %r219, %r367, %r371;
+ mov.u32 %r220, 32;
+ sub.s32 %r221, %r220, %r371;
+ shr.u32 %r222, %r369, %r221;
+ add.s32 %r223, %r222, %r219;
+ selp.b32 %r80, %r367, %r223, %p37;
+ mov.u32 %r224, -921707870;
+ mul.hi.u32 %r370, %r80, %r224;
+ setp.eq.s32 %p38, %r62, 0;
+ neg.s32 %r225, %r72;
+ selp.b32 %r372, %r72, %r225, %p38;
+ setp.lt.s32 %p39, %r370, 1;
+ @%p39 bra BB0_47;
+
+ mul.lo.s32 %r226, %r80, -921707870;
+ shr.u32 %r227, %r226, 31;
+ shl.b32 %r228, %r370, 1;
+ add.s32 %r370, %r227, %r228;
+ add.s32 %r371, %r371, 1;
+
+BB0_47:
+ mov.u32 %r229, 126;
+ sub.s32 %r230, %r229, %r371;
+ shl.b32 %r231, %r230, 23;
+ add.s32 %r232, %r370, 1;
+ shr.u32 %r233, %r232, 7;
+ add.s32 %r234, %r233, 1;
+ shr.u32 %r235, %r234, 1;
+ add.s32 %r236, %r235, %r231;
+ or.b32 %r237, %r236, %r368;
+ mov.b32 %f825, %r237;
+
+BB0_48:
+ mul.rn.f32 %f85, %f825, %f825;
+ and.b32 %r88, %r372, 1;
+ setp.eq.s32 %p40, %r88, 0;
+ @%p40 bra BB0_50;
+ bra.uni BB0_49;
+
+BB0_50:
+ mov.f32 %f382, 0f3C08839E;
+ mov.f32 %f383, 0fB94CA1F9;
+ fma.rn.f32 %f826, %f383, %f85, %f382;
+ bra.uni BB0_51;
+
+BB0_49:
+ mov.f32 %f380, 0fBAB6061A;
+ mov.f32 %f381, 0f37CCF5CE;
+ fma.rn.f32 %f826, %f381, %f85, %f380;
+
+BB0_51:
+ @%p40 bra BB0_53;
+ bra.uni BB0_52;
+
+BB0_53:
+ mov.f32 %f387, 0fBE2AAAA3;
+ fma.rn.f32 %f388, %f826, %f85, %f387;
+ fma.rn.f32 %f827, %f388, %f85, %f345;
+ bra.uni BB0_54;
+
+BB0_52:
+ mov.f32 %f384, 0f3D2AAAA5;
+ fma.rn.f32 %f385, %f826, %f85, %f384;
+ mov.f32 %f386, 0fBF000000;
+ fma.rn.f32 %f827, %f385, %f85, %f386;
+
+BB0_54:
+ fma.rn.f32 %f828, %f827, %f825, %f825;
+ @%p40 bra BB0_56;
+
+ fma.rn.f32 %f828, %f827, %f85, %f343;
+
+BB0_56:
+ and.b32 %r238, %r372, 2;
+ setp.eq.s32 %p43, %r238, 0;
+ @%p43 bra BB0_58;
+
+ mov.f32 %f392, 0fBF800000;
+ fma.rn.f32 %f828, %f828, %f392, %f345;
+
+BB0_58:
+ mul.f32 %f393, %f60, %f822;
+ mul.f32 %f394, %f60, %f828;
+ mul.f32 %f395, %f10, %f394;
+ mul.f32 %f396, %f11, %f394;
+ mul.f32 %f397, %f12, %f394;
+ fma.rn.f32 %f398, %f47, %f393, %f395;
+ fma.rn.f32 %f399, %f48, %f393, %f396;
+ fma.rn.f32 %f400, %f49, %f393, %f397;
+ fma.rn.f32 %f97, %f798, %f59, %f398;
+ fma.rn.f32 %f98, %f799, %f59, %f399;
+ fma.rn.f32 %f99, %f800, %f59, %f400;
+ setp.gt.f32 %p44, %f98, 0f00000000;
+ setp.eq.s32 %p45, %r5, 0;
+ or.pred %p46, %p45, %p44;
+ @!%p46 bra BB0_60;
+ bra.uni BB0_59;
+
+BB0_59:
+ mov.u32 %r348, 4;
+ add.u64 %rd84, %SP, 0;
+ cvta.to.local.u64 %rd85, %rd84;
+ max.f32 %f407, %f413, %f202;
+ mov.u32 %r242, 1065353216;
+ st.local.u32 [%rd85], %r242;
+ ld.global.u32 %r239, [root];
+ mov.u32 %r240, 1;
+ mov.f32 %f408, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r239, %f7, %f8, %f9, %f97, %f98, %f99, %r240, %f407, %f408, %rd84, %r348);
+ // inline asm
+ mul.f32 %f415, %f22, %f98;
+ fma.rn.f32 %f416, %f20, %f97, %f415;
+ fma.rn.f32 %f417, %f24, %f99, %f416;
+ cvt.sat.f32.f32 %f418, %f417;
+ ld.local.f32 %f419, [%rd85];
+ fma.rn.f32 %f831, %f418, %f419, %f831;
+ mul.f32 %f420, %f32, %f98;
+ fma.rn.f32 %f421, %f31, %f97, %f420;
+ fma.rn.f32 %f422, %f33, %f99, %f421;
+ cvt.sat.f32.f32 %f423, %f422;
+ fma.rn.f32 %f832, %f423, %f419, %f832;
+ mul.f32 %f424, %f41, %f98;
+ fma.rn.f32 %f425, %f40, %f97, %f424;
+ fma.rn.f32 %f426, %f42, %f99, %f425;
+ cvt.sat.f32.f32 %f427, %f426;
+ fma.rn.f32 %f833, %f427, %f419, %f833;
+ mul.f32 %f428, %f799, %f98;
+ fma.rn.f32 %f429, %f798, %f97, %f428;
+ fma.rn.f32 %f430, %f800, %f99, %f429;
+ cvt.sat.f32.f32 %f431, %f430;
+ fma.rn.f32 %f830, %f431, %f419, %f830;
+
+BB0_60:
+ add.s32 %r351, %r351, 1;
+ setp.lt.s32 %p47, %r351, %r1;
+ @%p47 bra BB0_12;
+
+ add.s32 %r349, %r349, 1;
+ setp.lt.s32 %p48, %r349, %r1;
+ @%p48 bra BB0_11;
+
+BB0_62:
+ mul.lo.s32 %r243, %r1, %r1;
+ cvt.rn.f32.s32 %f432, %r243;
+ div.rn.f32 %f433, %f830, %f432;
+ div.rn.f32 %f112, %f831, %f432;
+ div.rn.f32 %f113, %f832, %f432;
+ div.rn.f32 %f114, %f833, %f432;
+ add.f32 %f115, %f433, %f433;
+ ld.global.f32 %f434, [skyColor];
+ mul.f32 %f116, %f115, %f434;
+ ld.global.f32 %f435, [skyColor+4];
+ mul.f32 %f117, %f115, %f435;
+ ld.global.f32 %f436, [skyColor+8];
+ mul.f32 %f118, %f115, %f436;
+ ld.global.u32 %r373, [imageEnabled];
+ and.b32 %r244, %r373, 1;
+ setp.eq.b32 %p49, %r244, 1;
+ @!%p49 bra BB0_97;
+ bra.uni BB0_63;
+
+BB0_63:
+ abs.f32 %f120, %f116;
+ setp.lt.f32 %p50, %f120, 0f00800000;
+ mul.f32 %f442, %f120, 0f4B800000;
+ selp.f32 %f443, 0fC3170000, 0fC2FE0000, %p50;
+ selp.f32 %f444, %f442, %f120, %p50;
+ mov.b32 %r245, %f444;
+ and.b32 %r246, %r245, 8388607;
+ or.b32 %r247, %r246, 1065353216;
+ mov.b32 %f445, %r247;
+ shr.u32 %r248, %r245, 23;
+ cvt.rn.f32.u32 %f446, %r248;
+ add.f32 %f447, %f443, %f446;
+ setp.gt.f32 %p51, %f445, 0f3FB504F3;
+ mul.f32 %f448, %f445, 0f3F000000;
+ add.f32 %f449, %f447, 0f3F800000;
+ selp.f32 %f450, %f448, %f445, %p51;
+ selp.f32 %f451, %f449, %f447, %p51;
+ add.f32 %f452, %f450, 0fBF800000;
+ add.f32 %f438, %f450, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f437,%f438;
+ // inline asm
+ add.f32 %f453, %f452, %f452;
+ mul.f32 %f454, %f437, %f453;
+ mul.f32 %f455, %f454, %f454;
+ mov.f32 %f456, 0f3C4CAF63;
+ mov.f32 %f457, 0f3B18F0FE;
+ fma.rn.f32 %f458, %f457, %f455, %f456;
+ mov.f32 %f459, 0f3DAAAABD;
+ fma.rn.f32 %f460, %f458, %f455, %f459;
+ mul.rn.f32 %f461, %f460, %f455;
+ mul.rn.f32 %f462, %f461, %f454;
+ sub.f32 %f463, %f452, %f454;
+ neg.f32 %f464, %f454;
+ add.f32 %f465, %f463, %f463;
+ fma.rn.f32 %f466, %f464, %f452, %f465;
+ mul.rn.f32 %f467, %f437, %f466;
+ add.f32 %f468, %f462, %f454;
+ sub.f32 %f469, %f454, %f468;
+ add.f32 %f470, %f462, %f469;
+ add.f32 %f471, %f467, %f470;
+ add.f32 %f472, %f468, %f471;
+ sub.f32 %f473, %f468, %f472;
+ add.f32 %f474, %f471, %f473;
+ mov.f32 %f475, 0f3F317200;
+ mul.rn.f32 %f476, %f451, %f475;
+ mov.f32 %f477, 0f35BFBE8E;
+ mul.rn.f32 %f478, %f451, %f477;
+ add.f32 %f479, %f476, %f472;
+ sub.f32 %f480, %f476, %f479;
+ add.f32 %f481, %f472, %f480;
+ add.f32 %f482, %f474, %f481;
+ add.f32 %f483, %f478, %f482;
+ add.f32 %f484, %f479, %f483;
+ sub.f32 %f485, %f479, %f484;
+ add.f32 %f486, %f483, %f485;
+ mov.f32 %f487, 0f3EE66666;
+ mul.rn.f32 %f488, %f487, %f484;
+ neg.f32 %f489, %f488;
+ fma.rn.f32 %f490, %f487, %f484, %f489;
+ fma.rn.f32 %f491, %f487, %f486, %f490;
+ mov.f32 %f492, 0f00000000;
+ fma.rn.f32 %f493, %f492, %f484, %f491;
+ add.rn.f32 %f494, %f488, %f493;
+ neg.f32 %f495, %f494;
+ add.rn.f32 %f496, %f488, %f495;
+ add.rn.f32 %f497, %f496, %f493;
+ mov.b32 %r249, %f494;
+ setp.eq.s32 %p52, %r249, 1118925336;
+ add.s32 %r250, %r249, -1;
+ mov.b32 %f498, %r250;
+ add.f32 %f499, %f497, 0f37000000;
+ selp.f32 %f500, %f498, %f494, %p52;
+ selp.f32 %f121, %f499, %f497, %p52;
+ mul.f32 %f501, %f500, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f502, %f501;
+ mov.f32 %f503, 0fBF317200;
+ fma.rn.f32 %f504, %f502, %f503, %f500;
+ mov.f32 %f505, 0fB5BFBE8E;
+ fma.rn.f32 %f506, %f502, %f505, %f504;
+ mul.f32 %f507, %f506, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f508, %f507;
+ add.f32 %f509, %f502, 0f00000000;
+ ex2.approx.f32 %f510, %f509;
+ mul.f32 %f511, %f508, %f510;
+ setp.lt.f32 %p53, %f500, 0fC2D20000;
+ selp.f32 %f512, 0f00000000, %f511, %p53;
+ setp.gt.f32 %p54, %f500, 0f42D20000;
+ selp.f32 %f838, 0f7F800000, %f512, %p54;
+ setp.eq.f32 %p55, %f838, 0f7F800000;
+ @%p55 bra BB0_65;
+
+ fma.rn.f32 %f838, %f838, %f121, %f838;
+
+BB0_65:
+ mov.f32 %f763, 0f3E666666;
+ cvt.rzi.f32.f32 %f762, %f763;
+ fma.rn.f32 %f761, %f762, 0fC0000000, 0f3EE66666;
+ abs.f32 %f760, %f761;
+ setp.lt.f32 %p56, %f116, 0f00000000;
+ setp.eq.f32 %p57, %f760, 0f3F800000;
+ and.pred %p1, %p56, %p57;
+ mov.b32 %r251, %f838;
+ xor.b32 %r252, %r251, -2147483648;
+ mov.b32 %f513, %r252;
+ selp.f32 %f840, %f513, %f838, %p1;
+ setp.eq.f32 %p58, %f116, 0f00000000;
+ @%p58 bra BB0_68;
+ bra.uni BB0_66;
+
+BB0_68:
+ add.f32 %f516, %f116, %f116;
+ selp.f32 %f840, %f516, 0f00000000, %p57;
+ bra.uni BB0_69;
+
+BB0_115:
+ mov.u64 %rd199, image_HDR;
+ cvta.global.u64 %rd194, %rd199;
+ mov.u32 %r316, 8;
+ mov.u64 %rd198, 0;
+ // inline asm
+ call (%rd193), _rt_buffer_get_64, (%rd194, %r97, %r316, %rd20, %rd21, %rd198, %rd198);
+ // inline asm
+ mov.f32 %f738, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs112, %f738;}
+
+ // inline asm
+ mov.u16 %rs113, 0;
+ st.v4.u16 [%rd193], {%rs112, %rs112, %rs112, %rs113};
+
+BB0_116:
+ ld.global.u32 %r317, [additive];
+ setp.eq.s32 %p107, %r317, 0;
+ @%p107 bra BB0_118;
+
+ mov.u64 %rd212, image_RNM0;
+ cvta.global.u64 %rd201, %rd212;
+ mov.u32 %r321, 8;
+ mov.u64 %rd211, 0;
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd201, %r97, %r321, %rd20, %rd21, %rd211, %rd211);
+ // inline asm
+ ld.v4.u16 {%rs120, %rs121, %rs122, %rs123}, [%rd200];
+ // inline asm
+ { cvt.f32.f16 %f739, %rs120;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f740, %rs121;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f741, %rs122;}
+
+ // inline asm
+ // inline asm
+ call (%rd206), _rt_buffer_get_64, (%rd201, %r97, %r321, %rd20, %rd21, %rd211, %rd211);
+ // inline asm
+ add.f32 %f742, %f739, 0f00000000;
+ add.f32 %f743, %f740, 0f00000000;
+ add.f32 %f744, %f741, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs119, %f744;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs118, %f743;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f742;}
+
+ // inline asm
+ mov.u16 %rs124, 0;
+ st.v4.u16 [%rd206], {%rs117, %rs118, %rs119, %rs124};
+ bra.uni BB0_119;
+
+BB0_118:
+ mov.u64 %rd219, image_RNM0;
+ cvta.global.u64 %rd214, %rd219;
+ mov.u32 %r323, 8;
+ mov.u64 %rd218, 0;
+ // inline asm
+ call (%rd213), _rt_buffer_get_64, (%rd214, %r97, %r323, %rd20, %rd21, %rd218, %rd218);
+ // inline asm
+ mov.f32 %f745, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs125, %f745;}
+
+ // inline asm
+ mov.u16 %rs126, 0;
+ st.v4.u16 [%rd213], {%rs125, %rs125, %rs125, %rs126};
+
+BB0_119:
+ ld.global.u32 %r324, [additive];
+ setp.eq.s32 %p108, %r324, 0;
+ @%p108 bra BB0_121;
+
+ mov.u64 %rd232, image_RNM1;
+ cvta.global.u64 %rd221, %rd232;
+ mov.u32 %r328, 8;
+ mov.u64 %rd231, 0;
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd221, %r97, %r328, %rd20, %rd21, %rd231, %rd231);
+ // inline asm
+ ld.v4.u16 {%rs133, %rs134, %rs135, %rs136}, [%rd220];
+ // inline asm
+ { cvt.f32.f16 %f746, %rs133;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f747, %rs134;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f748, %rs135;}
+
+ // inline asm
+ // inline asm
+ call (%rd226), _rt_buffer_get_64, (%rd221, %r97, %r328, %rd20, %rd21, %rd231, %rd231);
+ // inline asm
+ add.f32 %f749, %f746, 0f00000000;
+ add.f32 %f750, %f747, 0f00000000;
+ add.f32 %f751, %f748, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs132, %f751;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs131, %f750;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f749;}
+
+ // inline asm
+ mov.u16 %rs137, 0;
+ st.v4.u16 [%rd226], {%rs130, %rs131, %rs132, %rs137};
+ bra.uni BB0_122;
+
+BB0_121:
+ mov.u64 %rd239, image_RNM1;
+ cvta.global.u64 %rd234, %rd239;
+ mov.u32 %r330, 8;
+ mov.u64 %rd238, 0;
+ // inline asm
+ call (%rd233), _rt_buffer_get_64, (%rd234, %r97, %r330, %rd20, %rd21, %rd238, %rd238);
+ // inline asm
+ mov.f32 %f752, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs138, %f752;}
+
+ // inline asm
+ mov.u16 %rs139, 0;
+ st.v4.u16 [%rd233], {%rs138, %rs138, %rs138, %rs139};
+
+BB0_122:
+ ld.global.u32 %r331, [additive];
+ setp.eq.s32 %p109, %r331, 0;
+ @%p109 bra BB0_124;
+
+ mov.u64 %rd252, image_RNM2;
+ cvta.global.u64 %rd241, %rd252;
+ mov.u32 %r335, 8;
+ mov.u64 %rd251, 0;
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd241, %r97, %r335, %rd20, %rd21, %rd251, %rd251);
+ // inline asm
+ ld.v4.u16 {%rs146, %rs147, %rs148, %rs149}, [%rd240];
+ // inline asm
+ { cvt.f32.f16 %f753, %rs146;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f754, %rs147;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f755, %rs148;}
+
+ // inline asm
+ // inline asm
+ call (%rd246), _rt_buffer_get_64, (%rd241, %r97, %r335, %rd20, %rd21, %rd251, %rd251);
+ // inline asm
+ add.f32 %f756, %f753, 0f00000000;
+ add.f32 %f757, %f754, 0f00000000;
+ add.f32 %f758, %f755, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs145, %f758;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs144, %f757;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f756;}
+
+ // inline asm
+ mov.u16 %rs150, 0;
+ st.v4.u16 [%rd246], {%rs143, %rs144, %rs145, %rs150};
+ bra.uni BB0_125;
+
+BB0_124:
+ mov.u64 %rd259, image_RNM2;
+ cvta.global.u64 %rd254, %rd259;
+ mov.u32 %r337, 8;
+ mov.u64 %rd258, 0;
+ // inline asm
+ call (%rd253), _rt_buffer_get_64, (%rd254, %r97, %r337, %rd20, %rd21, %rd258, %rd258);
+ // inline asm
+ mov.f32 %f759, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs151, %f759;}
+
+ // inline asm
+ mov.u16 %rs152, 0;
+ st.v4.u16 [%rd253], {%rs151, %rs151, %rs151, %rs152};
+ bra.uni BB0_125;
+
+BB0_66:
+ setp.geu.f32 %p59, %f116, 0f00000000;
+ @%p59 bra BB0_69;
+
+ mov.f32 %f787, 0f3EE66666;
+ cvt.rzi.f32.f32 %f515, %f787;
+ setp.neu.f32 %p60, %f515, 0f3EE66666;
+ selp.f32 %f840, 0f7FFFFFFF, %f840, %p60;
+
+BB0_69:
+ abs.f32 %f764, %f116;
+ add.f32 %f517, %f764, 0f3EE66666;
+ mov.b32 %r253, %f517;
+ setp.lt.s32 %p62, %r253, 2139095040;
+ @%p62 bra BB0_74;
+
+ abs.f32 %f785, %f116;
+ setp.gtu.f32 %p63, %f785, 0f7F800000;
+ @%p63 bra BB0_73;
+ bra.uni BB0_71;
+
+BB0_73:
+ add.f32 %f840, %f116, 0f3EE66666;
+ bra.uni BB0_74;
+
+BB0_71:
+ abs.f32 %f786, %f116;
+ setp.neu.f32 %p64, %f786, 0f7F800000;
+ @%p64 bra BB0_74;
+
+ selp.f32 %f840, 0fFF800000, 0f7F800000, %p1;
+
+BB0_74:
+ mov.f32 %f773, 0fB5BFBE8E;
+ mov.f32 %f772, 0fBF317200;
+ mov.f32 %f771, 0f00000000;
+ mov.f32 %f770, 0f35BFBE8E;
+ mov.f32 %f769, 0f3F317200;
+ mov.f32 %f768, 0f3DAAAABD;
+ mov.f32 %f767, 0f3C4CAF63;
+ mov.f32 %f766, 0f3B18F0FE;
+ mov.f32 %f765, 0f3EE66666;
+ setp.eq.f32 %p65, %f116, 0f3F800000;
+ selp.f32 %f132, 0f3F800000, %f840, %p65;
+ abs.f32 %f133, %f117;
+ setp.lt.f32 %p66, %f133, 0f00800000;
+ mul.f32 %f520, %f133, 0f4B800000;
+ selp.f32 %f521, 0fC3170000, 0fC2FE0000, %p66;
+ selp.f32 %f522, %f520, %f133, %p66;
+ mov.b32 %r254, %f522;
+ and.b32 %r255, %r254, 8388607;
+ or.b32 %r256, %r255, 1065353216;
+ mov.b32 %f523, %r256;
+ shr.u32 %r257, %r254, 23;
+ cvt.rn.f32.u32 %f524, %r257;
+ add.f32 %f525, %f521, %f524;
+ setp.gt.f32 %p67, %f523, 0f3FB504F3;
+ mul.f32 %f526, %f523, 0f3F000000;
+ add.f32 %f527, %f525, 0f3F800000;
+ selp.f32 %f528, %f526, %f523, %p67;
+ selp.f32 %f529, %f527, %f525, %p67;
+ add.f32 %f530, %f528, 0fBF800000;
+ add.f32 %f519, %f528, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f518,%f519;
+ // inline asm
+ add.f32 %f531, %f530, %f530;
+ mul.f32 %f532, %f518, %f531;
+ mul.f32 %f533, %f532, %f532;
+ fma.rn.f32 %f536, %f766, %f533, %f767;
+ fma.rn.f32 %f538, %f536, %f533, %f768;
+ mul.rn.f32 %f539, %f538, %f533;
+ mul.rn.f32 %f540, %f539, %f532;
+ sub.f32 %f541, %f530, %f532;
+ neg.f32 %f542, %f532;
+ add.f32 %f543, %f541, %f541;
+ fma.rn.f32 %f544, %f542, %f530, %f543;
+ mul.rn.f32 %f545, %f518, %f544;
+ add.f32 %f546, %f540, %f532;
+ sub.f32 %f547, %f532, %f546;
+ add.f32 %f548, %f540, %f547;
+ add.f32 %f549, %f545, %f548;
+ add.f32 %f550, %f546, %f549;
+ sub.f32 %f551, %f546, %f550;
+ add.f32 %f552, %f549, %f551;
+ mul.rn.f32 %f554, %f529, %f769;
+ mul.rn.f32 %f556, %f529, %f770;
+ add.f32 %f557, %f554, %f550;
+ sub.f32 %f558, %f554, %f557;
+ add.f32 %f559, %f550, %f558;
+ add.f32 %f560, %f552, %f559;
+ add.f32 %f561, %f556, %f560;
+ add.f32 %f562, %f557, %f561;
+ sub.f32 %f563, %f557, %f562;
+ add.f32 %f564, %f561, %f563;
+ mul.rn.f32 %f566, %f765, %f562;
+ neg.f32 %f567, %f566;
+ fma.rn.f32 %f568, %f765, %f562, %f567;
+ fma.rn.f32 %f569, %f765, %f564, %f568;
+ fma.rn.f32 %f571, %f771, %f562, %f569;
+ add.rn.f32 %f572, %f566, %f571;
+ neg.f32 %f573, %f572;
+ add.rn.f32 %f574, %f566, %f573;
+ add.rn.f32 %f575, %f574, %f571;
+ mov.b32 %r258, %f572;
+ setp.eq.s32 %p68, %r258, 1118925336;
+ add.s32 %r259, %r258, -1;
+ mov.b32 %f576, %r259;
+ add.f32 %f577, %f575, 0f37000000;
+ selp.f32 %f578, %f576, %f572, %p68;
+ selp.f32 %f134, %f577, %f575, %p68;
+ mul.f32 %f579, %f578, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f580, %f579;
+ fma.rn.f32 %f582, %f580, %f772, %f578;
+ fma.rn.f32 %f584, %f580, %f773, %f582;
+ mul.f32 %f585, %f584, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f586, %f585;
+ add.f32 %f587, %f580, 0f00000000;
+ ex2.approx.f32 %f588, %f587;
+ mul.f32 %f589, %f586, %f588;
+ setp.lt.f32 %p69, %f578, 0fC2D20000;
+ selp.f32 %f590, 0f00000000, %f589, %p69;
+ setp.gt.f32 %p70, %f578, 0f42D20000;
+ selp.f32 %f841, 0f7F800000, %f590, %p70;
+ setp.eq.f32 %p71, %f841, 0f7F800000;
+ @%p71 bra BB0_76;
+
+ fma.rn.f32 %f841, %f841, %f134, %f841;
+
+BB0_76:
+ setp.lt.f32 %p72, %f117, 0f00000000;
+ and.pred %p2, %p72, %p57;
+ mov.b32 %r260, %f841;
+ xor.b32 %r261, %r260, -2147483648;
+ mov.b32 %f591, %r261;
+ selp.f32 %f843, %f591, %f841, %p2;
+ setp.eq.f32 %p74, %f117, 0f00000000;
+ @%p74 bra BB0_79;
+ bra.uni BB0_77;
+
+BB0_79:
+ add.f32 %f594, %f117, %f117;
+ selp.f32 %f843, %f594, 0f00000000, %p57;
+ bra.uni BB0_80;
+
+BB0_77:
+ setp.geu.f32 %p75, %f117, 0f00000000;
+ @%p75 bra BB0_80;
+
+ mov.f32 %f784, 0f3EE66666;
+ cvt.rzi.f32.f32 %f593, %f784;
+ setp.neu.f32 %p76, %f593, 0f3EE66666;
+ selp.f32 %f843, 0f7FFFFFFF, %f843, %p76;
+
+BB0_80:
+ abs.f32 %f788, %f117;
+ add.f32 %f595, %f788, 0f3EE66666;
+ mov.b32 %r262, %f595;
+ setp.lt.s32 %p78, %r262, 2139095040;
+ @%p78 bra BB0_85;
+
+ abs.f32 %f789, %f117;
+ setp.gtu.f32 %p79, %f789, 0f7F800000;
+ @%p79 bra BB0_84;
+ bra.uni BB0_82;
+
+BB0_84:
+ add.f32 %f843, %f117, 0f3EE66666;
+ bra.uni BB0_85;
+
+BB0_82:
+ abs.f32 %f790, %f117;
+ setp.neu.f32 %p80, %f790, 0f7F800000;
+ @%p80 bra BB0_85;
+
+ selp.f32 %f843, 0fFF800000, 0f7F800000, %p2;
+
+BB0_85:
+ mov.f32 %f782, 0fB5BFBE8E;
+ mov.f32 %f781, 0fBF317200;
+ mov.f32 %f780, 0f00000000;
+ mov.f32 %f779, 0f35BFBE8E;
+ mov.f32 %f778, 0f3F317200;
+ mov.f32 %f777, 0f3DAAAABD;
+ mov.f32 %f776, 0f3C4CAF63;
+ mov.f32 %f775, 0f3B18F0FE;
+ mov.f32 %f774, 0f3EE66666;
+ setp.eq.f32 %p81, %f117, 0f3F800000;
+ selp.f32 %f145, 0f3F800000, %f843, %p81;
+ abs.f32 %f146, %f118;
+ setp.lt.f32 %p82, %f146, 0f00800000;
+ mul.f32 %f598, %f146, 0f4B800000;
+ selp.f32 %f599, 0fC3170000, 0fC2FE0000, %p82;
+ selp.f32 %f600, %f598, %f146, %p82;
+ mov.b32 %r263, %f600;
+ and.b32 %r264, %r263, 8388607;
+ or.b32 %r265, %r264, 1065353216;
+ mov.b32 %f601, %r265;
+ shr.u32 %r266, %r263, 23;
+ cvt.rn.f32.u32 %f602, %r266;
+ add.f32 %f603, %f599, %f602;
+ setp.gt.f32 %p83, %f601, 0f3FB504F3;
+ mul.f32 %f604, %f601, 0f3F000000;
+ add.f32 %f605, %f603, 0f3F800000;
+ selp.f32 %f606, %f604, %f601, %p83;
+ selp.f32 %f607, %f605, %f603, %p83;
+ add.f32 %f608, %f606, 0fBF800000;
+ add.f32 %f597, %f606, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f596,%f597;
+ // inline asm
+ add.f32 %f609, %f608, %f608;
+ mul.f32 %f610, %f596, %f609;
+ mul.f32 %f611, %f610, %f610;
+ fma.rn.f32 %f614, %f775, %f611, %f776;
+ fma.rn.f32 %f616, %f614, %f611, %f777;
+ mul.rn.f32 %f617, %f616, %f611;
+ mul.rn.f32 %f618, %f617, %f610;
+ sub.f32 %f619, %f608, %f610;
+ neg.f32 %f620, %f610;
+ add.f32 %f621, %f619, %f619;
+ fma.rn.f32 %f622, %f620, %f608, %f621;
+ mul.rn.f32 %f623, %f596, %f622;
+ add.f32 %f624, %f618, %f610;
+ sub.f32 %f625, %f610, %f624;
+ add.f32 %f626, %f618, %f625;
+ add.f32 %f627, %f623, %f626;
+ add.f32 %f628, %f624, %f627;
+ sub.f32 %f629, %f624, %f628;
+ add.f32 %f630, %f627, %f629;
+ mul.rn.f32 %f632, %f607, %f778;
+ mul.rn.f32 %f634, %f607, %f779;
+ add.f32 %f635, %f632, %f628;
+ sub.f32 %f636, %f632, %f635;
+ add.f32 %f637, %f628, %f636;
+ add.f32 %f638, %f630, %f637;
+ add.f32 %f639, %f634, %f638;
+ add.f32 %f640, %f635, %f639;
+ sub.f32 %f641, %f635, %f640;
+ add.f32 %f642, %f639, %f641;
+ mul.rn.f32 %f644, %f774, %f640;
+ neg.f32 %f645, %f644;
+ fma.rn.f32 %f646, %f774, %f640, %f645;
+ fma.rn.f32 %f647, %f774, %f642, %f646;
+ fma.rn.f32 %f649, %f780, %f640, %f647;
+ add.rn.f32 %f650, %f644, %f649;
+ neg.f32 %f651, %f650;
+ add.rn.f32 %f652, %f644, %f651;
+ add.rn.f32 %f653, %f652, %f649;
+ mov.b32 %r267, %f650;
+ setp.eq.s32 %p84, %r267, 1118925336;
+ add.s32 %r268, %r267, -1;
+ mov.b32 %f654, %r268;
+ add.f32 %f655, %f653, 0f37000000;
+ selp.f32 %f656, %f654, %f650, %p84;
+ selp.f32 %f147, %f655, %f653, %p84;
+ mul.f32 %f657, %f656, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f658, %f657;
+ fma.rn.f32 %f660, %f658, %f781, %f656;
+ fma.rn.f32 %f662, %f658, %f782, %f660;
+ mul.f32 %f663, %f662, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f664, %f663;
+ add.f32 %f665, %f658, 0f00000000;
+ ex2.approx.f32 %f666, %f665;
+ mul.f32 %f667, %f664, %f666;
+ setp.lt.f32 %p85, %f656, 0fC2D20000;
+ selp.f32 %f668, 0f00000000, %f667, %p85;
+ setp.gt.f32 %p86, %f656, 0f42D20000;
+ selp.f32 %f844, 0f7F800000, %f668, %p86;
+ setp.eq.f32 %p87, %f844, 0f7F800000;
+ @%p87 bra BB0_87;
+
+ fma.rn.f32 %f844, %f844, %f147, %f844;
+
+BB0_87:
+ setp.lt.f32 %p88, %f118, 0f00000000;
+ and.pred %p3, %p88, %p57;
+ mov.b32 %r269, %f844;
+ xor.b32 %r270, %r269, -2147483648;
+ mov.b32 %f669, %r270;
+ selp.f32 %f846, %f669, %f844, %p3;
+ setp.eq.f32 %p90, %f118, 0f00000000;
+ @%p90 bra BB0_90;
+ bra.uni BB0_88;
+
+BB0_90:
+ add.f32 %f672, %f118, %f118;
+ selp.f32 %f846, %f672, 0f00000000, %p57;
+ bra.uni BB0_91;
+
+BB0_88:
+ setp.geu.f32 %p91, %f118, 0f00000000;
+ @%p91 bra BB0_91;
+
+ mov.f32 %f783, 0f3EE66666;
+ cvt.rzi.f32.f32 %f671, %f783;
+ setp.neu.f32 %p92, %f671, 0f3EE66666;
+ selp.f32 %f846, 0f7FFFFFFF, %f846, %p92;
+
+BB0_91:
+ abs.f32 %f795, %f118;
+ add.f32 %f673, %f795, 0f3EE66666;
+ mov.b32 %r271, %f673;
+ setp.lt.s32 %p94, %r271, 2139095040;
+ @%p94 bra BB0_96;
+
+ abs.f32 %f796, %f118;
+ setp.gtu.f32 %p95, %f796, 0f7F800000;
+ @%p95 bra BB0_95;
+ bra.uni BB0_93;
+
+BB0_95:
+ add.f32 %f846, %f118, 0f3EE66666;
+ bra.uni BB0_96;
+
+BB0_93:
+ abs.f32 %f797, %f118;
+ setp.neu.f32 %p96, %f797, 0f7F800000;
+ @%p96 bra BB0_96;
+
+ selp.f32 %f846, 0fFF800000, 0f7F800000, %p3;
+
+BB0_96:
+ mov.u32 %r339, 4;
+ mov.u64 %rd260, 0;
+ mov.u32 %r338, 2;
+ setp.eq.f32 %p97, %f118, 0f3F800000;
+ selp.f32 %f674, 0f3F800000, %f846, %p97;
+ cvt.u64.u32 %rd89, %r4;
+ cvt.u64.u32 %rd88, %r3;
+ mov.u64 %rd92, image;
+ cvta.global.u64 %rd87, %rd92;
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd87, %r338, %r339, %rd88, %rd89, %rd260, %rd260);
+ // inline asm
+ cvt.sat.f32.f32 %f675, %f674;
+ mul.f32 %f676, %f675, 0f437FFD71;
+ cvt.rzi.u32.f32 %r274, %f676;
+ cvt.sat.f32.f32 %f677, %f145;
+ mul.f32 %f678, %f677, 0f437FFD71;
+ cvt.rzi.u32.f32 %r275, %f678;
+ cvt.sat.f32.f32 %f679, %f132;
+ mul.f32 %f680, %f679, 0f437FFD71;
+ cvt.rzi.u32.f32 %r276, %f680;
+ cvt.u16.u32 %rs40, %r274;
+ cvt.u16.u32 %rs41, %r276;
+ cvt.u16.u32 %rs42, %r275;
+ mov.u16 %rs43, 255;
+ st.v4.u8 [%rd86], {%rs40, %rs42, %rs41, %rs43};
+ ld.global.u32 %r373, [imageEnabled];
+
+BB0_97:
+ cvt.u64.u32 %rd18, %r3;
+ cvt.u64.u32 %rd19, %r4;
+ and.b32 %r277, %r373, 4;
+ setp.eq.s32 %p98, %r277, 0;
+ @%p98 bra BB0_101;
+
+ ld.global.u32 %r278, [additive];
+ setp.eq.s32 %p99, %r278, 0;
+ mov.f32 %f681, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f681;}
+
+ // inline asm
+ @%p99 bra BB0_100;
+
+ mov.u64 %rd261, 0;
+ mov.u32 %r340, 2;
+ mov.u64 %rd105, image_HDR;
+ cvta.global.u64 %rd94, %rd105;
+ mov.u32 %r282, 8;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd94, %r340, %r282, %rd18, %rd19, %rd261, %rd261);
+ // inline asm
+ ld.v4.u16 {%rs51, %rs52, %rs53, %rs54}, [%rd93];
+ // inline asm
+ { cvt.f32.f16 %f682, %rs51;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f683, %rs52;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f684, %rs53;}
+
+ // inline asm
+ // inline asm
+ call (%rd99), _rt_buffer_get_64, (%rd94, %r340, %r282, %rd18, %rd19, %rd261, %rd261);
+ // inline asm
+ add.f32 %f685, %f116, %f682;
+ add.f32 %f686, %f117, %f683;
+ add.f32 %f687, %f118, %f684;
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f687;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs49, %f686;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f685;}
+
+ // inline asm
+ st.v4.u16 [%rd99], {%rs48, %rs49, %rs50, %rs44};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd262, 0;
+ mov.u32 %r341, 2;
+ mov.u64 %rd112, image_HDR;
+ cvta.global.u64 %rd107, %rd112;
+ mov.u32 %r284, 8;
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd107, %r341, %r284, %rd18, %rd19, %rd262, %rd262);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f118;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs56, %f117;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs55, %f116;}
+
+ // inline asm
+ st.v4.u16 [%rd106], {%rs55, %rs56, %rs57, %rs44};
+
+BB0_101:
+ add.f32 %f692, %f112, %f113;
+ add.f32 %f693, %f692, %f114;
+ mul.f32 %f694, %f693, 0f3F13CD3A;
+ div.rn.f32 %f695, %f115, %f694;
+ setp.eq.f32 %p100, %f115, 0f00000000;
+ selp.f32 %f696, 0f00000000, %f695, %p100;
+ mul.f32 %f697, %f112, %f696;
+ mul.f32 %f698, %f113, %f696;
+ mul.f32 %f699, %f114, %f696;
+ ld.global.f32 %f700, [skyColor];
+ mul.f32 %f158, %f700, %f697;
+ ld.global.f32 %f701, [skyColor+4];
+ mul.f32 %f159, %f701, %f697;
+ ld.global.f32 %f702, [skyColor+8];
+ mul.f32 %f160, %f697, %f702;
+ mul.f32 %f161, %f700, %f698;
+ mul.f32 %f162, %f701, %f698;
+ mul.f32 %f163, %f698, %f702;
+ mul.f32 %f164, %f699, %f700;
+ mul.f32 %f165, %f699, %f701;
+ mul.f32 %f166, %f699, %f702;
+ ld.global.u32 %r285, [additive];
+ setp.eq.s32 %p101, %r285, 0;
+ mov.f32 %f691, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f691;}
+
+ // inline asm
+ @%p101 bra BB0_103;
+
+ mov.u64 %rd263, 0;
+ mov.u32 %r342, 2;
+ mov.u64 %rd125, image_RNM0;
+ cvta.global.u64 %rd114, %rd125;
+ mov.u32 %r289, 8;
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd114, %r342, %r289, %rd18, %rd19, %rd263, %rd263);
+ // inline asm
+ ld.v4.u16 {%rs65, %rs66, %rs67, %rs68}, [%rd113];
+ // inline asm
+ { cvt.f32.f16 %f703, %rs65;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f704, %rs66;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f705, %rs67;}
+
+ // inline asm
+ // inline asm
+ call (%rd119), _rt_buffer_get_64, (%rd114, %r342, %r289, %rd18, %rd19, %rd263, %rd263);
+ // inline asm
+ add.f32 %f706, %f158, %f703;
+ add.f32 %f707, %f159, %f704;
+ add.f32 %f708, %f160, %f705;
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f708;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs63, %f707;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs62, %f706;}
+
+ // inline asm
+ st.v4.u16 [%rd119], {%rs62, %rs63, %rs64, %rs58};
+ bra.uni BB0_104;
+
+BB0_103:
+ mov.u64 %rd268, 0;
+ mov.u32 %r347, 2;
+ mov.u64 %rd132, image_RNM0;
+ cvta.global.u64 %rd127, %rd132;
+ mov.u32 %r291, 8;
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd127, %r347, %r291, %rd18, %rd19, %rd268, %rd268);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f160;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f159;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f158;}
+
+ // inline asm
+ st.v4.u16 [%rd126], {%rs69, %rs70, %rs71, %rs58};
+
+BB0_104:
+ ld.global.u32 %r292, [additive];
+ setp.eq.s32 %p102, %r292, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f691;}
+
+ // inline asm
+ @%p102 bra BB0_106;
+
+ mov.u64 %rd264, 0;
+ mov.u32 %r343, 2;
+ mov.u64 %rd145, image_RNM1;
+ cvta.global.u64 %rd134, %rd145;
+ mov.u32 %r296, 8;
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd134, %r343, %r296, %rd18, %rd19, %rd264, %rd264);
+ // inline asm
+ ld.v4.u16 {%rs79, %rs80, %rs81, %rs82}, [%rd133];
+ // inline asm
+ { cvt.f32.f16 %f713, %rs79;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f714, %rs80;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f715, %rs81;}
+
+ // inline asm
+ // inline asm
+ call (%rd139), _rt_buffer_get_64, (%rd134, %r343, %r296, %rd18, %rd19, %rd264, %rd264);
+ // inline asm
+ add.f32 %f716, %f161, %f713;
+ add.f32 %f717, %f162, %f714;
+ add.f32 %f718, %f163, %f715;
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f718;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f717;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f716;}
+
+ // inline asm
+ st.v4.u16 [%rd139], {%rs76, %rs77, %rs78, %rs72};
+ bra.uni BB0_107;
+
+BB0_106:
+ mov.u64 %rd267, 0;
+ mov.u32 %r346, 2;
+ mov.u64 %rd152, image_RNM1;
+ cvta.global.u64 %rd147, %rd152;
+ mov.u32 %r298, 8;
+ // inline asm
+ call (%rd146), _rt_buffer_get_64, (%rd147, %r346, %r298, %rd18, %rd19, %rd267, %rd267);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f163;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs84, %f162;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f161;}
+
+ // inline asm
+ st.v4.u16 [%rd146], {%rs83, %rs84, %rs85, %rs72};
+
+BB0_107:
+ ld.global.u32 %r299, [additive];
+ setp.eq.s32 %p103, %r299, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f691;}
+
+ // inline asm
+ @%p103 bra BB0_109;
+
+ mov.u64 %rd265, 0;
+ mov.u32 %r344, 2;
+ mov.u64 %rd165, image_RNM2;
+ cvta.global.u64 %rd154, %rd165;
+ mov.u32 %r303, 8;
+ // inline asm
+ call (%rd153), _rt_buffer_get_64, (%rd154, %r344, %r303, %rd18, %rd19, %rd265, %rd265);
+ // inline asm
+ ld.v4.u16 {%rs93, %rs94, %rs95, %rs96}, [%rd153];
+ // inline asm
+ { cvt.f32.f16 %f723, %rs93;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f724, %rs94;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f725, %rs95;}
+
+ // inline asm
+ // inline asm
+ call (%rd159), _rt_buffer_get_64, (%rd154, %r344, %r303, %rd18, %rd19, %rd265, %rd265);
+ // inline asm
+ add.f32 %f726, %f164, %f723;
+ add.f32 %f727, %f165, %f724;
+ add.f32 %f728, %f166, %f725;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f728;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f727;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f726;}
+
+ // inline asm
+ st.v4.u16 [%rd159], {%rs90, %rs91, %rs92, %rs86};
+ bra.uni BB0_125;
+
+BB0_109:
+ mov.u64 %rd266, 0;
+ mov.u32 %r345, 2;
+ mov.u64 %rd172, image_RNM2;
+ cvta.global.u64 %rd167, %rd172;
+ mov.u32 %r305, 8;
+ // inline asm
+ call (%rd166), _rt_buffer_get_64, (%rd167, %r345, %r305, %rd18, %rd19, %rd266, %rd266);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f166;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f165;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f164;}
+
+ // inline asm
+ st.v4.u16 [%rd166], {%rs97, %rs98, %rs99, %rs86};
+
+BB0_125:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyRNM.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyRNM.ptx.meta
new file mode 100644
index 00000000..bc249d5e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyRNM.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 951d73c4d08f7584da38815f9fee17f1
+timeCreated: 1537526771
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkySH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkySH.ptx
new file mode 100644
index 00000000..b20c28b8
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkySH.ptx
@@ -0,0 +1,1914 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .texref sky;
+.global .align 4 .b8 skyColor[12];
+.global .align 4 .u32 samples;
+.global .align 4 .u32 hemispherical;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8skyColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13hemisphericalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8skyColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename13hemisphericalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8skyColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13hemisphericalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8skyColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13hemisphericalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8skyColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13hemisphericalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<105>;
+ .reg .b16 %rs<148>;
+ .reg .f32 %f<710>;
+ .reg .b32 %r<355>;
+ .reg .b64 %rd<283>;
+
+
+ mov.u64 %rd282, __local_depot0;
+ cvta.local.u64 %SP, %rd282;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r93, %r94}, [pixelID];
+ cvt.u64.u32 %rd22, %r93;
+ cvt.u64.u32 %rd23, %r94;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r91, 2;
+ mov.u32 %r92, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r91, %r92, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r2, [%rd20];
+ shr.u32 %r97, %r2, 16;
+ cvt.u16.u32 %rs1, %r97;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r2;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p4, %rs9, 0;
+ mov.f32 %f666, 0f00000000;
+ mov.f32 %f667, %f666;
+ mov.f32 %f668, %f666;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs10, [%rd20+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f143, %rs12;
+ div.rn.f32 %f144, %f143, 0f437F0000;
+ fma.rn.f32 %f145, %f144, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f146, %rs10;
+ div.rn.f32 %f147, %f146, 0f437F0000;
+ fma.rn.f32 %f148, %f147, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f149, %rs7;
+ div.rn.f32 %f150, %f149, 0f437F0000;
+ fma.rn.f32 %f151, %f150, 0f40000000, 0fBF800000;
+ mul.f32 %f152, %f148, %f148;
+ fma.rn.f32 %f153, %f145, %f145, %f152;
+ fma.rn.f32 %f154, %f151, %f151, %f153;
+ sqrt.rn.f32 %f155, %f154;
+ rcp.rn.f32 %f156, %f155;
+ mul.f32 %f666, %f145, %f156;
+ mul.f32 %f667, %f148, %f156;
+ mul.f32 %f668, %f151, %f156;
+
+BB0_2:
+ ld.global.v2.u32 {%r98, %r99}, [pixelID];
+ ld.global.v2.u32 {%r101, %r102}, [tileInfo];
+ add.s32 %r3, %r98, %r101;
+ add.s32 %r4, %r99, %r102;
+ setp.eq.f32 %p5, %f667, 0f00000000;
+ setp.eq.f32 %p6, %f666, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f668, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_107;
+ bra.uni BB0_3;
+
+BB0_107:
+ ld.global.u32 %r354, [imageEnabled];
+ and.b32 %r289, %r354, 1;
+ setp.eq.b32 %p98, %r289, 1;
+ @!%p98 bra BB0_109;
+ bra.uni BB0_108;
+
+BB0_108:
+ cvt.u64.u32 %rd173, %r4;
+ cvt.u64.u32 %rd172, %r3;
+ mov.u64 %rd176, image;
+ cvta.global.u64 %rd171, %rd176;
+ mov.u64 %rd175, 0;
+ // inline asm
+ call (%rd170), _rt_buffer_get_64, (%rd171, %r91, %r92, %rd172, %rd173, %rd175, %rd175);
+ // inline asm
+ mov.u16 %rs82, 0;
+ st.v4.u8 [%rd170], {%rs82, %rs82, %rs82, %rs82};
+ ld.global.u32 %r354, [imageEnabled];
+
+BB0_109:
+ cvt.u64.u32 %rd18, %r3;
+ cvt.u64.u32 %rd19, %r4;
+ and.b32 %r292, %r354, 4;
+ setp.eq.s32 %p99, %r292, 0;
+ @%p99 bra BB0_113;
+
+ ld.global.u32 %r293, [additive];
+ setp.eq.s32 %p100, %r293, 0;
+ @%p100 bra BB0_112;
+
+ mov.u64 %rd189, image_HDR;
+ cvta.global.u64 %rd178, %rd189;
+ mov.u32 %r297, 8;
+ mov.u64 %rd188, 0;
+ // inline asm
+ call (%rd177), _rt_buffer_get_64, (%rd178, %r91, %r297, %rd18, %rd19, %rd188, %rd188);
+ // inline asm
+ ld.v4.u16 {%rs89, %rs90, %rs91, %rs92}, [%rd177];
+ // inline asm
+ { cvt.f32.f16 %f595, %rs89;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f596, %rs90;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f597, %rs91;}
+
+ // inline asm
+ // inline asm
+ call (%rd183), _rt_buffer_get_64, (%rd178, %r91, %r297, %rd18, %rd19, %rd188, %rd188);
+ // inline asm
+ add.f32 %f598, %f595, 0f00000000;
+ add.f32 %f599, %f596, 0f00000000;
+ add.f32 %f600, %f597, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f600;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f599;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f598;}
+
+ // inline asm
+ mov.u16 %rs93, 0;
+ st.v4.u16 [%rd183], {%rs86, %rs87, %rs88, %rs93};
+ bra.uni BB0_113;
+
+BB0_3:
+ ld.global.v2.u32 {%r110, %r111}, [pixelID];
+ cvt.u64.u32 %rd29, %r110;
+ cvt.u64.u32 %rd30, %r111;
+ mov.u64 %rd39, uvpos;
+ cvta.global.u64 %rd28, %rd39;
+ mov.u32 %r107, 12;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r91, %r107, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f162, [%rd27+8];
+ ld.f32 %f163, [%rd27+4];
+ ld.f32 %f164, [%rd27];
+ mul.f32 %f165, %f164, 0f3456BF95;
+ mul.f32 %f166, %f163, 0f3456BF95;
+ mul.f32 %f167, %f162, 0f3456BF95;
+ abs.f32 %f168, %f666;
+ div.rn.f32 %f169, %f165, %f168;
+ abs.f32 %f170, %f667;
+ div.rn.f32 %f171, %f166, %f170;
+ abs.f32 %f172, %f668;
+ div.rn.f32 %f173, %f167, %f172;
+ abs.f32 %f174, %f169;
+ abs.f32 %f175, %f171;
+ abs.f32 %f176, %f173;
+ mov.f32 %f177, 0f38D1B717;
+ max.f32 %f178, %f174, %f177;
+ max.f32 %f179, %f175, %f177;
+ max.f32 %f180, %f176, %f177;
+ fma.rn.f32 %f7, %f666, %f178, %f164;
+ fma.rn.f32 %f8, %f667, %f179, %f163;
+ fma.rn.f32 %f9, %f668, %f180, %f162;
+ ld.global.u32 %r5, [hemispherical];
+ setp.gt.f32 %p10, %f168, %f172;
+ neg.f32 %f181, %f667;
+ selp.f32 %f182, %f181, 0f00000000, %p10;
+ neg.f32 %f183, %f668;
+ selp.f32 %f184, %f666, %f183, %p10;
+ selp.f32 %f185, 0f00000000, %f667, %p10;
+ mul.f32 %f186, %f184, %f184;
+ fma.rn.f32 %f187, %f182, %f182, %f186;
+ fma.rn.f32 %f188, %f185, %f185, %f187;
+ sqrt.rn.f32 %f189, %f188;
+ rcp.rn.f32 %f190, %f189;
+ mul.f32 %f10, %f182, %f190;
+ mul.f32 %f11, %f184, %f190;
+ mul.f32 %f12, %f185, %f190;
+ ld.global.v2.u32 {%r114, %r115}, [pixelID];
+ cvt.u64.u32 %rd35, %r114;
+ cvt.u64.u32 %rd36, %r115;
+ mov.u64 %rd40, rnd_seeds;
+ cvta.global.u64 %rd34, %rd40;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r91, %r92, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f695, 0f00000000;
+ setp.lt.s32 %p11, %r1, 1;
+ mov.f32 %f694, %f695;
+ mov.f32 %f693, %f695;
+ mov.f32 %f692, %f695;
+ mov.f32 %f691, %f695;
+ @%p11 bra BB0_56;
+
+ cvt.rn.f32.s32 %f196, %r1;
+ rcp.rn.f32 %f13, %f196;
+ ld.u32 %r332, [%rd33];
+ mul.f32 %f14, %f7, 0f3456BF95;
+ mul.f32 %f15, %f8, 0f3456BF95;
+ mul.f32 %f16, %f9, 0f3456BF95;
+ mul.f32 %f197, %f666, %f11;
+ mul.f32 %f198, %f667, %f10;
+ sub.f32 %f17, %f198, %f197;
+ mul.f32 %f199, %f668, %f10;
+ mul.f32 %f200, %f666, %f12;
+ sub.f32 %f18, %f200, %f199;
+ mul.f32 %f201, %f667, %f12;
+ mul.f32 %f202, %f668, %f11;
+ sub.f32 %f19, %f202, %f201;
+ mov.f32 %f695, 0f00000000;
+ mov.u32 %r118, 0;
+ abs.f32 %f276, %f15;
+ abs.f32 %f277, %f14;
+ max.f32 %f278, %f277, %f276;
+ abs.f32 %f279, %f16;
+ max.f32 %f280, %f278, %f279;
+ mov.u32 %r329, %r118;
+ mov.f32 %f694, %f695;
+ mov.f32 %f693, %f695;
+ mov.f32 %f692, %f695;
+ mov.f32 %f691, %f695;
+
+BB0_5:
+ mov.u32 %r331, %r118;
+
+BB0_6:
+ cvt.rn.f32.s32 %f664, %r329;
+ mad.lo.s32 %r120, %r332, 1664525, 1013904223;
+ and.b32 %r121, %r120, 16777215;
+ cvt.rn.f32.u32 %f203, %r121;
+ fma.rn.f32 %f204, %f203, 0f33800000, %f664;
+ mul.f32 %f31, %f13, %f204;
+ mad.lo.s32 %r332, %r120, 1664525, 1013904223;
+ and.b32 %r122, %r332, 16777215;
+ cvt.rn.f32.u32 %f205, %r122;
+ cvt.rn.f32.s32 %f206, %r331;
+ fma.rn.f32 %f207, %f205, 0f33800000, %f206;
+ mul.f32 %f208, %f13, %f207;
+ mul.f32 %f209, %f31, %f31;
+ mov.f32 %f210, 0f3F800000;
+ sub.f32 %f211, %f210, %f209;
+ mov.f32 %f212, 0f00000000;
+ max.f32 %f213, %f212, %f211;
+ sqrt.rn.f32 %f32, %f213;
+ mul.f32 %f685, %f208, 0f40C90FDB;
+ abs.f32 %f34, %f685;
+ setp.neu.f32 %p12, %f34, 0f7F800000;
+ mov.f32 %f679, %f685;
+ @%p12 bra BB0_8;
+
+ mul.rn.f32 %f679, %f685, %f212;
+
+BB0_8:
+ mul.f32 %f215, %f679, 0f3F22F983;
+ cvt.rni.s32.f32 %r342, %f215;
+ cvt.rn.f32.s32 %f216, %r342;
+ neg.f32 %f217, %f216;
+ mov.f32 %f218, 0f3FC90FDA;
+ fma.rn.f32 %f219, %f217, %f218, %f679;
+ mov.f32 %f220, 0f33A22168;
+ fma.rn.f32 %f221, %f217, %f220, %f219;
+ mov.f32 %f222, 0f27C234C5;
+ fma.rn.f32 %f680, %f217, %f222, %f221;
+ abs.f32 %f223, %f679;
+ setp.leu.f32 %p13, %f223, 0f47CE4780;
+ @%p13 bra BB0_19;
+
+ add.u64 %rd42, %SP, 4;
+ cvta.to.local.u64 %rd3, %rd42;
+ mov.b32 %r13, %f679;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r125, %r13, 8;
+ or.b32 %r15, %r125, -2147483648;
+ mov.u32 %r333, 0;
+ mov.u64 %rd279, 0;
+ mov.u64 %rd278, %rd3;
+ mov.u32 %r334, %r333;
+
+BB0_10:
+ .pragma "nounroll";
+ shl.b64 %rd43, %rd279, 2;
+ mov.u64 %rd44, __cudart_i2opi_f;
+ add.s64 %rd45, %rd44, %rd43;
+ ld.const.u32 %r128, [%rd45];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r126, %r128, %r15, %r334;
+ madc.hi.u32 %r334, %r128, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd278], %r126;
+ add.s32 %r333, %r333, 1;
+ cvt.s64.s32 %rd279, %r333;
+ mul.wide.s32 %rd48, %r333, 4;
+ add.s64 %rd278, %rd3, %rd48;
+ setp.ne.s32 %p14, %r333, 6;
+ @%p14 bra BB0_10;
+
+ add.u64 %rd277, %SP, 4;
+ and.b32 %r131, %r14, 255;
+ add.s32 %r132, %r131, -128;
+ shr.u32 %r133, %r132, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd50, %rd277;
+ st.local.u32 [%rd50+24], %r334;
+ mov.u32 %r134, 6;
+ sub.s32 %r135, %r134, %r133;
+ mul.wide.s32 %rd51, %r135, 4;
+ add.s64 %rd8, %rd50, %rd51;
+ ld.local.u32 %r335, [%rd8];
+ ld.local.u32 %r336, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p15, %r23, 0;
+ @%p15 bra BB0_13;
+
+ mov.u32 %r136, 32;
+ sub.s32 %r137, %r136, %r23;
+ shr.u32 %r138, %r336, %r137;
+ shl.b32 %r139, %r335, %r23;
+ add.s32 %r335, %r138, %r139;
+ ld.local.u32 %r140, [%rd8+-8];
+ shr.u32 %r141, %r140, %r137;
+ shl.b32 %r142, %r336, %r23;
+ add.s32 %r336, %r141, %r142;
+
+BB0_13:
+ shr.u32 %r143, %r336, 30;
+ shl.b32 %r144, %r335, 2;
+ add.s32 %r337, %r143, %r144;
+ shl.b32 %r29, %r336, 2;
+ shr.u32 %r145, %r337, 31;
+ shr.u32 %r146, %r335, 30;
+ add.s32 %r30, %r145, %r146;
+ setp.eq.s32 %p16, %r145, 0;
+ @%p16 bra BB0_14;
+ bra.uni BB0_15;
+
+BB0_14:
+ mov.u32 %r338, %r20;
+ mov.u32 %r339, %r29;
+ bra.uni BB0_16;
+
+BB0_15:
+ not.b32 %r147, %r337;
+ neg.s32 %r339, %r29;
+ setp.eq.s32 %p17, %r29, 0;
+ selp.u32 %r148, 1, 0, %p17;
+ add.s32 %r337, %r148, %r147;
+ xor.b32 %r338, %r20, -2147483648;
+
+BB0_16:
+ clz.b32 %r341, %r337;
+ setp.eq.s32 %p18, %r341, 0;
+ shl.b32 %r149, %r337, %r341;
+ mov.u32 %r150, 32;
+ sub.s32 %r151, %r150, %r341;
+ shr.u32 %r152, %r339, %r151;
+ add.s32 %r153, %r152, %r149;
+ selp.b32 %r38, %r337, %r153, %p18;
+ mov.u32 %r154, -921707870;
+ mul.hi.u32 %r340, %r38, %r154;
+ setp.eq.s32 %p19, %r20, 0;
+ neg.s32 %r155, %r30;
+ selp.b32 %r342, %r30, %r155, %p19;
+ setp.lt.s32 %p20, %r340, 1;
+ @%p20 bra BB0_18;
+
+ mul.lo.s32 %r156, %r38, -921707870;
+ shr.u32 %r157, %r156, 31;
+ shl.b32 %r158, %r340, 1;
+ add.s32 %r340, %r157, %r158;
+ add.s32 %r341, %r341, 1;
+
+BB0_18:
+ mov.u32 %r159, 126;
+ sub.s32 %r160, %r159, %r341;
+ shl.b32 %r161, %r160, 23;
+ add.s32 %r162, %r340, 1;
+ shr.u32 %r163, %r162, 7;
+ add.s32 %r164, %r163, 1;
+ shr.u32 %r165, %r164, 1;
+ add.s32 %r166, %r165, %r161;
+ or.b32 %r167, %r166, %r338;
+ mov.b32 %f680, %r167;
+
+BB0_19:
+ mul.rn.f32 %f40, %f680, %f680;
+ add.s32 %r46, %r342, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p21, %r47, 0;
+ @%p21 bra BB0_21;
+ bra.uni BB0_20;
+
+BB0_21:
+ mov.f32 %f226, 0f3C08839E;
+ mov.f32 %f227, 0fB94CA1F9;
+ fma.rn.f32 %f681, %f227, %f40, %f226;
+ bra.uni BB0_22;
+
+BB0_20:
+ mov.f32 %f224, 0fBAB6061A;
+ mov.f32 %f225, 0f37CCF5CE;
+ fma.rn.f32 %f681, %f225, %f40, %f224;
+
+BB0_22:
+ @%p21 bra BB0_24;
+ bra.uni BB0_23;
+
+BB0_24:
+ mov.f32 %f231, 0fBE2AAAA3;
+ fma.rn.f32 %f232, %f681, %f40, %f231;
+ fma.rn.f32 %f682, %f232, %f40, %f212;
+ bra.uni BB0_25;
+
+BB0_23:
+ mov.f32 %f228, 0f3D2AAAA5;
+ fma.rn.f32 %f229, %f681, %f40, %f228;
+ mov.f32 %f230, 0fBF000000;
+ fma.rn.f32 %f682, %f229, %f40, %f230;
+
+BB0_25:
+ fma.rn.f32 %f683, %f682, %f680, %f680;
+ @%p21 bra BB0_27;
+
+ fma.rn.f32 %f683, %f682, %f40, %f210;
+
+BB0_27:
+ and.b32 %r168, %r46, 2;
+ setp.eq.s32 %p24, %r168, 0;
+ @%p24 bra BB0_29;
+
+ mov.f32 %f236, 0fBF800000;
+ fma.rn.f32 %f683, %f683, %f236, %f212;
+
+BB0_29:
+ @%p12 bra BB0_31;
+
+ mul.rn.f32 %f685, %f685, %f212;
+
+BB0_31:
+ mov.f32 %f665, 0f3FC90FDA;
+ mul.f32 %f238, %f685, 0f3F22F983;
+ cvt.rni.s32.f32 %r352, %f238;
+ cvt.rn.f32.s32 %f239, %r352;
+ neg.f32 %f240, %f239;
+ fma.rn.f32 %f242, %f240, %f665, %f685;
+ fma.rn.f32 %f244, %f240, %f220, %f242;
+ fma.rn.f32 %f686, %f240, %f222, %f244;
+ abs.f32 %f246, %f685;
+ setp.leu.f32 %p26, %f246, 0f47CE4780;
+ @%p26 bra BB0_42;
+
+ add.u64 %rd53, %SP, 4;
+ cvta.to.local.u64 %rd9, %rd53;
+ mov.b32 %r49, %f685;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r171, %r49, 8;
+ or.b32 %r51, %r171, -2147483648;
+ mov.u32 %r343, 0;
+ mov.u64 %rd280, %rd9;
+ mov.u64 %rd281, %rd25;
+ mov.u32 %r344, %r343;
+
+BB0_33:
+ .pragma "nounroll";
+ shl.b64 %rd54, %rd281, 2;
+ mov.u64 %rd55, __cudart_i2opi_f;
+ add.s64 %rd56, %rd55, %rd54;
+ ld.const.u32 %r174, [%rd56];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r172, %r174, %r51, %r344;
+ madc.hi.u32 %r344, %r174, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd280], %r172;
+ add.s32 %r343, %r343, 1;
+ cvt.s64.s32 %rd281, %r343;
+ mul.wide.s32 %rd57, %r343, 4;
+ add.s64 %rd280, %rd9, %rd57;
+ setp.ne.s32 %p27, %r343, 6;
+ @%p27 bra BB0_33;
+
+ and.b32 %r177, %r50, 255;
+ add.s32 %r178, %r177, -128;
+ shr.u32 %r179, %r178, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd59, %rd53;
+ st.local.u32 [%rd59+24], %r344;
+ mov.u32 %r180, 6;
+ sub.s32 %r181, %r180, %r179;
+ mul.wide.s32 %rd60, %r181, 4;
+ add.s64 %rd15, %rd59, %rd60;
+ ld.local.u32 %r345, [%rd15];
+ ld.local.u32 %r346, [%rd15+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p28, %r59, 0;
+ @%p28 bra BB0_36;
+
+ mov.u32 %r182, 32;
+ sub.s32 %r183, %r182, %r59;
+ shr.u32 %r184, %r346, %r183;
+ shl.b32 %r185, %r345, %r59;
+ add.s32 %r345, %r184, %r185;
+ ld.local.u32 %r186, [%rd15+-8];
+ shr.u32 %r187, %r186, %r183;
+ shl.b32 %r188, %r346, %r59;
+ add.s32 %r346, %r187, %r188;
+
+BB0_36:
+ shr.u32 %r189, %r346, 30;
+ shl.b32 %r190, %r345, 2;
+ add.s32 %r347, %r189, %r190;
+ shl.b32 %r65, %r346, 2;
+ shr.u32 %r191, %r347, 31;
+ shr.u32 %r192, %r345, 30;
+ add.s32 %r66, %r191, %r192;
+ setp.eq.s32 %p29, %r191, 0;
+ @%p29 bra BB0_37;
+ bra.uni BB0_38;
+
+BB0_37:
+ mov.u32 %r348, %r56;
+ mov.u32 %r349, %r65;
+ bra.uni BB0_39;
+
+BB0_38:
+ not.b32 %r193, %r347;
+ neg.s32 %r349, %r65;
+ setp.eq.s32 %p30, %r65, 0;
+ selp.u32 %r194, 1, 0, %p30;
+ add.s32 %r347, %r194, %r193;
+ xor.b32 %r348, %r56, -2147483648;
+
+BB0_39:
+ clz.b32 %r351, %r347;
+ setp.eq.s32 %p31, %r351, 0;
+ shl.b32 %r195, %r347, %r351;
+ mov.u32 %r196, 32;
+ sub.s32 %r197, %r196, %r351;
+ shr.u32 %r198, %r349, %r197;
+ add.s32 %r199, %r198, %r195;
+ selp.b32 %r74, %r347, %r199, %p31;
+ mov.u32 %r200, -921707870;
+ mul.hi.u32 %r350, %r74, %r200;
+ setp.eq.s32 %p32, %r56, 0;
+ neg.s32 %r201, %r66;
+ selp.b32 %r352, %r66, %r201, %p32;
+ setp.lt.s32 %p33, %r350, 1;
+ @%p33 bra BB0_41;
+
+ mul.lo.s32 %r202, %r74, -921707870;
+ shr.u32 %r203, %r202, 31;
+ shl.b32 %r204, %r350, 1;
+ add.s32 %r350, %r203, %r204;
+ add.s32 %r351, %r351, 1;
+
+BB0_41:
+ mov.u32 %r205, 126;
+ sub.s32 %r206, %r205, %r351;
+ shl.b32 %r207, %r206, 23;
+ add.s32 %r208, %r350, 1;
+ shr.u32 %r209, %r208, 7;
+ add.s32 %r210, %r209, 1;
+ shr.u32 %r211, %r210, 1;
+ add.s32 %r212, %r211, %r207;
+ or.b32 %r213, %r212, %r348;
+ mov.b32 %f686, %r213;
+
+BB0_42:
+ mul.rn.f32 %f57, %f686, %f686;
+ and.b32 %r82, %r352, 1;
+ setp.eq.s32 %p34, %r82, 0;
+ @%p34 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mov.f32 %f249, 0f3C08839E;
+ mov.f32 %f250, 0fB94CA1F9;
+ fma.rn.f32 %f687, %f250, %f57, %f249;
+ bra.uni BB0_45;
+
+BB0_43:
+ mov.f32 %f247, 0fBAB6061A;
+ mov.f32 %f248, 0f37CCF5CE;
+ fma.rn.f32 %f687, %f248, %f57, %f247;
+
+BB0_45:
+ @%p34 bra BB0_47;
+ bra.uni BB0_46;
+
+BB0_47:
+ mov.f32 %f254, 0fBE2AAAA3;
+ fma.rn.f32 %f255, %f687, %f57, %f254;
+ fma.rn.f32 %f688, %f255, %f57, %f212;
+ bra.uni BB0_48;
+
+BB0_46:
+ mov.f32 %f251, 0f3D2AAAA5;
+ fma.rn.f32 %f252, %f687, %f57, %f251;
+ mov.f32 %f253, 0fBF000000;
+ fma.rn.f32 %f688, %f252, %f57, %f253;
+
+BB0_48:
+ fma.rn.f32 %f689, %f688, %f686, %f686;
+ @%p34 bra BB0_50;
+
+ fma.rn.f32 %f689, %f688, %f57, %f210;
+
+BB0_50:
+ and.b32 %r214, %r352, 2;
+ setp.eq.s32 %p37, %r214, 0;
+ @%p37 bra BB0_52;
+
+ mov.f32 %f259, 0fBF800000;
+ fma.rn.f32 %f689, %f689, %f259, %f212;
+
+BB0_52:
+ mul.f32 %f260, %f32, %f683;
+ mul.f32 %f261, %f32, %f689;
+ mul.f32 %f262, %f10, %f261;
+ mul.f32 %f263, %f11, %f261;
+ mul.f32 %f264, %f12, %f261;
+ fma.rn.f32 %f265, %f19, %f260, %f262;
+ fma.rn.f32 %f266, %f18, %f260, %f263;
+ fma.rn.f32 %f267, %f17, %f260, %f264;
+ fma.rn.f32 %f69, %f666, %f31, %f265;
+ fma.rn.f32 %f70, %f667, %f31, %f266;
+ fma.rn.f32 %f71, %f668, %f31, %f267;
+ setp.gt.f32 %p38, %f70, 0f00000000;
+ setp.eq.s32 %p39, %r5, 0;
+ or.pred %p40, %p39, %p38;
+ @!%p40 bra BB0_54;
+ bra.uni BB0_53;
+
+BB0_53:
+ add.u64 %rd61, %SP, 0;
+ cvta.to.local.u64 %rd62, %rd61;
+ max.f32 %f274, %f280, %f177;
+ mov.u32 %r218, 1065353216;
+ st.local.u32 [%rd62], %r218;
+ ld.global.u32 %r215, [root];
+ mov.u32 %r216, 1;
+ mov.f32 %f275, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r215, %f7, %f8, %f9, %f69, %f70, %f71, %r216, %f274, %f275, %rd61, %r92);
+ // inline asm
+ mul.f32 %f282, %f667, %f70;
+ fma.rn.f32 %f283, %f666, %f69, %f282;
+ fma.rn.f32 %f284, %f668, %f71, %f283;
+ mul.f32 %f285, %f284, 0f40800000;
+ cvt.sat.f32.f32 %f286, %f285;
+ ld.local.f32 %f287, [%rd62];
+ mul.f32 %f288, %f287, %f286;
+ fma.rn.f32 %f693, %f69, %f288, %f693;
+ fma.rn.f32 %f694, %f70, %f288, %f694;
+ fma.rn.f32 %f695, %f71, %f288, %f695;
+ add.f32 %f692, %f692, %f288;
+ cvt.sat.f32.f32 %f289, %f284;
+ fma.rn.f32 %f691, %f289, %f287, %f691;
+
+BB0_54:
+ add.s32 %r331, %r331, 1;
+ setp.lt.s32 %p41, %r331, %r1;
+ @%p41 bra BB0_6;
+
+ add.s32 %r329, %r329, 1;
+ setp.lt.s32 %p42, %r329, %r1;
+ @%p42 bra BB0_5;
+
+BB0_56:
+ mul.lo.s32 %r219, %r1, %r1;
+ cvt.rn.f32.s32 %f290, %r219;
+ div.rn.f32 %f291, %f691, %f290;
+ div.rn.f32 %f87, %f692, %f290;
+ div.rn.f32 %f88, %f693, %f290;
+ div.rn.f32 %f89, %f694, %f290;
+ div.rn.f32 %f90, %f695, %f290;
+ add.f32 %f292, %f291, %f291;
+ ld.global.f32 %f293, [skyColor];
+ mul.f32 %f91, %f292, %f293;
+ ld.global.f32 %f294, [skyColor+4];
+ mul.f32 %f92, %f292, %f294;
+ ld.global.f32 %f295, [skyColor+8];
+ mul.f32 %f93, %f292, %f295;
+ ld.global.u32 %r353, [imageEnabled];
+ and.b32 %r220, %r353, 1;
+ setp.eq.b32 %p43, %r220, 1;
+ @!%p43 bra BB0_91;
+ bra.uni BB0_57;
+
+BB0_57:
+ abs.f32 %f95, %f91;
+ setp.lt.f32 %p44, %f95, 0f00800000;
+ mul.f32 %f301, %f95, 0f4B800000;
+ selp.f32 %f302, 0fC3170000, 0fC2FE0000, %p44;
+ selp.f32 %f303, %f301, %f95, %p44;
+ mov.b32 %r221, %f303;
+ and.b32 %r222, %r221, 8388607;
+ or.b32 %r223, %r222, 1065353216;
+ mov.b32 %f304, %r223;
+ shr.u32 %r224, %r221, 23;
+ cvt.rn.f32.u32 %f305, %r224;
+ add.f32 %f306, %f302, %f305;
+ setp.gt.f32 %p45, %f304, 0f3FB504F3;
+ mul.f32 %f307, %f304, 0f3F000000;
+ add.f32 %f308, %f306, 0f3F800000;
+ selp.f32 %f309, %f307, %f304, %p45;
+ selp.f32 %f310, %f308, %f306, %p45;
+ add.f32 %f311, %f309, 0fBF800000;
+ add.f32 %f297, %f309, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f296,%f297;
+ // inline asm
+ add.f32 %f312, %f311, %f311;
+ mul.f32 %f313, %f296, %f312;
+ mul.f32 %f314, %f313, %f313;
+ mov.f32 %f315, 0f3C4CAF63;
+ mov.f32 %f316, 0f3B18F0FE;
+ fma.rn.f32 %f317, %f316, %f314, %f315;
+ mov.f32 %f318, 0f3DAAAABD;
+ fma.rn.f32 %f319, %f317, %f314, %f318;
+ mul.rn.f32 %f320, %f319, %f314;
+ mul.rn.f32 %f321, %f320, %f313;
+ sub.f32 %f322, %f311, %f313;
+ neg.f32 %f323, %f313;
+ add.f32 %f324, %f322, %f322;
+ fma.rn.f32 %f325, %f323, %f311, %f324;
+ mul.rn.f32 %f326, %f296, %f325;
+ add.f32 %f327, %f321, %f313;
+ sub.f32 %f328, %f313, %f327;
+ add.f32 %f329, %f321, %f328;
+ add.f32 %f330, %f326, %f329;
+ add.f32 %f331, %f327, %f330;
+ sub.f32 %f332, %f327, %f331;
+ add.f32 %f333, %f330, %f332;
+ mov.f32 %f334, 0f3F317200;
+ mul.rn.f32 %f335, %f310, %f334;
+ mov.f32 %f336, 0f35BFBE8E;
+ mul.rn.f32 %f337, %f310, %f336;
+ add.f32 %f338, %f335, %f331;
+ sub.f32 %f339, %f335, %f338;
+ add.f32 %f340, %f331, %f339;
+ add.f32 %f341, %f333, %f340;
+ add.f32 %f342, %f337, %f341;
+ add.f32 %f343, %f338, %f342;
+ sub.f32 %f344, %f338, %f343;
+ add.f32 %f345, %f342, %f344;
+ mov.f32 %f346, 0f3EE66666;
+ mul.rn.f32 %f347, %f346, %f343;
+ neg.f32 %f348, %f347;
+ fma.rn.f32 %f349, %f346, %f343, %f348;
+ fma.rn.f32 %f350, %f346, %f345, %f349;
+ mov.f32 %f351, 0f00000000;
+ fma.rn.f32 %f352, %f351, %f343, %f350;
+ add.rn.f32 %f353, %f347, %f352;
+ neg.f32 %f354, %f353;
+ add.rn.f32 %f355, %f347, %f354;
+ add.rn.f32 %f356, %f355, %f352;
+ mov.b32 %r225, %f353;
+ setp.eq.s32 %p46, %r225, 1118925336;
+ add.s32 %r226, %r225, -1;
+ mov.b32 %f357, %r226;
+ add.f32 %f358, %f356, 0f37000000;
+ selp.f32 %f359, %f357, %f353, %p46;
+ selp.f32 %f96, %f358, %f356, %p46;
+ mul.f32 %f360, %f359, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f361, %f360;
+ mov.f32 %f362, 0fBF317200;
+ fma.rn.f32 %f363, %f361, %f362, %f359;
+ mov.f32 %f364, 0fB5BFBE8E;
+ fma.rn.f32 %f365, %f361, %f364, %f363;
+ mul.f32 %f366, %f365, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f367, %f366;
+ add.f32 %f368, %f361, 0f00000000;
+ ex2.approx.f32 %f369, %f368;
+ mul.f32 %f370, %f367, %f369;
+ setp.lt.f32 %p47, %f359, 0fC2D20000;
+ selp.f32 %f371, 0f00000000, %f370, %p47;
+ setp.gt.f32 %p48, %f359, 0f42D20000;
+ selp.f32 %f701, 0f7F800000, %f371, %p48;
+ setp.eq.f32 %p49, %f701, 0f7F800000;
+ @%p49 bra BB0_59;
+
+ fma.rn.f32 %f701, %f701, %f96, %f701;
+
+BB0_59:
+ mov.f32 %f633, 0f3E666666;
+ cvt.rzi.f32.f32 %f632, %f633;
+ fma.rn.f32 %f631, %f632, 0fC0000000, 0f3EE66666;
+ abs.f32 %f630, %f631;
+ setp.lt.f32 %p50, %f91, 0f00000000;
+ setp.eq.f32 %p51, %f630, 0f3F800000;
+ and.pred %p1, %p50, %p51;
+ mov.b32 %r227, %f701;
+ xor.b32 %r228, %r227, -2147483648;
+ mov.b32 %f372, %r228;
+ selp.f32 %f703, %f372, %f701, %p1;
+ setp.eq.f32 %p52, %f91, 0f00000000;
+ @%p52 bra BB0_62;
+ bra.uni BB0_60;
+
+BB0_62:
+ add.f32 %f375, %f91, %f91;
+ selp.f32 %f703, %f375, 0f00000000, %p51;
+ bra.uni BB0_63;
+
+BB0_112:
+ mov.u64 %rd196, image_HDR;
+ cvta.global.u64 %rd191, %rd196;
+ mov.u32 %r299, 8;
+ mov.u64 %rd195, 0;
+ // inline asm
+ call (%rd190), _rt_buffer_get_64, (%rd191, %r91, %r299, %rd18, %rd19, %rd195, %rd195);
+ // inline asm
+ mov.f32 %f601, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs94, %f601;}
+
+ // inline asm
+ mov.u16 %rs95, 0;
+ st.v4.u16 [%rd190], {%rs94, %rs94, %rs94, %rs95};
+
+BB0_113:
+ ld.global.u32 %r300, [additive];
+ setp.eq.s32 %p101, %r300, 0;
+ @%p101 bra BB0_115;
+
+ mov.u64 %rd209, image_RNM0;
+ cvta.global.u64 %rd198, %rd209;
+ mov.u32 %r304, 8;
+ mov.u64 %rd208, 0;
+ // inline asm
+ call (%rd197), _rt_buffer_get_64, (%rd198, %r91, %r304, %rd18, %rd19, %rd208, %rd208);
+ // inline asm
+ ld.v4.u16 {%rs102, %rs103, %rs104, %rs105}, [%rd197];
+ // inline asm
+ { cvt.f32.f16 %f602, %rs102;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f603, %rs103;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f604, %rs104;}
+
+ // inline asm
+ // inline asm
+ call (%rd203), _rt_buffer_get_64, (%rd198, %r91, %r304, %rd18, %rd19, %rd208, %rd208);
+ // inline asm
+ add.f32 %f605, %f602, 0f00000000;
+ add.f32 %f606, %f603, 0f00000000;
+ add.f32 %f607, %f604, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs101, %f607;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs100, %f606;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f605;}
+
+ // inline asm
+ mov.u16 %rs106, 0;
+ st.v4.u16 [%rd203], {%rs99, %rs100, %rs101, %rs106};
+ bra.uni BB0_116;
+
+BB0_115:
+ mov.u64 %rd216, image_RNM0;
+ cvta.global.u64 %rd211, %rd216;
+ mov.u32 %r306, 8;
+ mov.u64 %rd215, 0;
+ // inline asm
+ call (%rd210), _rt_buffer_get_64, (%rd211, %r91, %r306, %rd18, %rd19, %rd215, %rd215);
+ // inline asm
+ mov.f32 %f608, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs107, %f608;}
+
+ // inline asm
+ mov.u16 %rs108, 0;
+ st.v4.u16 [%rd210], {%rs107, %rs107, %rs107, %rs108};
+
+BB0_116:
+ ld.global.u32 %r307, [additive];
+ setp.eq.s32 %p102, %r307, 0;
+ @%p102 bra BB0_118;
+
+ mov.u64 %rd229, image_RNM1;
+ cvta.global.u64 %rd218, %rd229;
+ mov.u32 %r311, 8;
+ mov.u64 %rd228, 0;
+ // inline asm
+ call (%rd217), _rt_buffer_get_64, (%rd218, %r91, %r311, %rd18, %rd19, %rd228, %rd228);
+ // inline asm
+ ld.v4.u16 {%rs115, %rs116, %rs117, %rs118}, [%rd217];
+ // inline asm
+ { cvt.f32.f16 %f609, %rs115;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f610, %rs116;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f611, %rs117;}
+
+ // inline asm
+ // inline asm
+ call (%rd223), _rt_buffer_get_64, (%rd218, %r91, %r311, %rd18, %rd19, %rd228, %rd228);
+ // inline asm
+ add.f32 %f612, %f609, 0f00000000;
+ add.f32 %f613, %f610, 0f00000000;
+ add.f32 %f614, %f611, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs114, %f614;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs113, %f613;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs112, %f612;}
+
+ // inline asm
+ mov.u16 %rs119, 0;
+ st.v4.u16 [%rd223], {%rs112, %rs113, %rs114, %rs119};
+ bra.uni BB0_119;
+
+BB0_118:
+ mov.u64 %rd236, image_RNM1;
+ cvta.global.u64 %rd231, %rd236;
+ mov.u32 %r313, 8;
+ mov.u64 %rd235, 0;
+ // inline asm
+ call (%rd230), _rt_buffer_get_64, (%rd231, %r91, %r313, %rd18, %rd19, %rd235, %rd235);
+ // inline asm
+ mov.f32 %f615, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs120, %f615;}
+
+ // inline asm
+ mov.u16 %rs121, 0;
+ st.v4.u16 [%rd230], {%rs120, %rs120, %rs120, %rs121};
+
+BB0_119:
+ ld.global.u32 %r314, [additive];
+ setp.eq.s32 %p103, %r314, 0;
+ @%p103 bra BB0_121;
+
+ mov.u64 %rd249, image_RNM2;
+ cvta.global.u64 %rd238, %rd249;
+ mov.u32 %r318, 8;
+ mov.u64 %rd248, 0;
+ // inline asm
+ call (%rd237), _rt_buffer_get_64, (%rd238, %r91, %r318, %rd18, %rd19, %rd248, %rd248);
+ // inline asm
+ ld.v4.u16 {%rs128, %rs129, %rs130, %rs131}, [%rd237];
+ // inline asm
+ { cvt.f32.f16 %f616, %rs128;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f617, %rs129;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f618, %rs130;}
+
+ // inline asm
+ // inline asm
+ call (%rd243), _rt_buffer_get_64, (%rd238, %r91, %r318, %rd18, %rd19, %rd248, %rd248);
+ // inline asm
+ add.f32 %f619, %f616, 0f00000000;
+ add.f32 %f620, %f617, 0f00000000;
+ add.f32 %f621, %f618, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs127, %f621;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs126, %f620;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs125, %f619;}
+
+ // inline asm
+ mov.u16 %rs132, 0;
+ st.v4.u16 [%rd243], {%rs125, %rs126, %rs127, %rs132};
+ bra.uni BB0_122;
+
+BB0_121:
+ mov.u64 %rd256, image_RNM2;
+ cvta.global.u64 %rd251, %rd256;
+ mov.u32 %r320, 8;
+ mov.u64 %rd255, 0;
+ // inline asm
+ call (%rd250), _rt_buffer_get_64, (%rd251, %r91, %r320, %rd18, %rd19, %rd255, %rd255);
+ // inline asm
+ mov.f32 %f622, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs133, %f622;}
+
+ // inline asm
+ mov.u16 %rs134, 0;
+ st.v4.u16 [%rd250], {%rs133, %rs133, %rs133, %rs134};
+
+BB0_122:
+ ld.global.u32 %r321, [additive];
+ setp.eq.s32 %p104, %r321, 0;
+ @%p104 bra BB0_124;
+
+ mov.u64 %rd269, image_RNM3;
+ cvta.global.u64 %rd258, %rd269;
+ mov.u32 %r325, 8;
+ mov.u64 %rd268, 0;
+ // inline asm
+ call (%rd257), _rt_buffer_get_64, (%rd258, %r91, %r325, %rd18, %rd19, %rd268, %rd268);
+ // inline asm
+ ld.v4.u16 {%rs141, %rs142, %rs143, %rs144}, [%rd257];
+ // inline asm
+ { cvt.f32.f16 %f623, %rs141;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f624, %rs142;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f625, %rs143;}
+
+ // inline asm
+ // inline asm
+ call (%rd263), _rt_buffer_get_64, (%rd258, %r91, %r325, %rd18, %rd19, %rd268, %rd268);
+ // inline asm
+ add.f32 %f626, %f623, 0f00000000;
+ add.f32 %f627, %f624, 0f00000000;
+ add.f32 %f628, %f625, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f628;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs139, %f627;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs138, %f626;}
+
+ // inline asm
+ mov.u16 %rs145, 0;
+ st.v4.u16 [%rd263], {%rs138, %rs139, %rs140, %rs145};
+ bra.uni BB0_125;
+
+BB0_124:
+ mov.u64 %rd276, image_RNM3;
+ cvta.global.u64 %rd271, %rd276;
+ mov.u32 %r327, 8;
+ mov.u64 %rd275, 0;
+ // inline asm
+ call (%rd270), _rt_buffer_get_64, (%rd271, %r91, %r327, %rd18, %rd19, %rd275, %rd275);
+ // inline asm
+ mov.f32 %f629, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs146, %f629;}
+
+ // inline asm
+ mov.u16 %rs147, 0;
+ st.v4.u16 [%rd270], {%rs146, %rs146, %rs146, %rs147};
+ bra.uni BB0_125;
+
+BB0_60:
+ setp.geu.f32 %p53, %f91, 0f00000000;
+ @%p53 bra BB0_63;
+
+ mov.f32 %f657, 0f3EE66666;
+ cvt.rzi.f32.f32 %f374, %f657;
+ setp.neu.f32 %p54, %f374, 0f3EE66666;
+ selp.f32 %f703, 0f7FFFFFFF, %f703, %p54;
+
+BB0_63:
+ abs.f32 %f634, %f91;
+ add.f32 %f376, %f634, 0f3EE66666;
+ mov.b32 %r229, %f376;
+ setp.lt.s32 %p56, %r229, 2139095040;
+ @%p56 bra BB0_68;
+
+ abs.f32 %f655, %f91;
+ setp.gtu.f32 %p57, %f655, 0f7F800000;
+ @%p57 bra BB0_67;
+ bra.uni BB0_65;
+
+BB0_67:
+ add.f32 %f703, %f91, 0f3EE66666;
+ bra.uni BB0_68;
+
+BB0_65:
+ abs.f32 %f656, %f91;
+ setp.neu.f32 %p58, %f656, 0f7F800000;
+ @%p58 bra BB0_68;
+
+ selp.f32 %f703, 0fFF800000, 0f7F800000, %p1;
+
+BB0_68:
+ mov.f32 %f643, 0fB5BFBE8E;
+ mov.f32 %f642, 0fBF317200;
+ mov.f32 %f641, 0f00000000;
+ mov.f32 %f640, 0f35BFBE8E;
+ mov.f32 %f639, 0f3F317200;
+ mov.f32 %f638, 0f3DAAAABD;
+ mov.f32 %f637, 0f3C4CAF63;
+ mov.f32 %f636, 0f3B18F0FE;
+ mov.f32 %f635, 0f3EE66666;
+ setp.eq.f32 %p59, %f91, 0f3F800000;
+ selp.f32 %f107, 0f3F800000, %f703, %p59;
+ abs.f32 %f108, %f92;
+ setp.lt.f32 %p60, %f108, 0f00800000;
+ mul.f32 %f379, %f108, 0f4B800000;
+ selp.f32 %f380, 0fC3170000, 0fC2FE0000, %p60;
+ selp.f32 %f381, %f379, %f108, %p60;
+ mov.b32 %r230, %f381;
+ and.b32 %r231, %r230, 8388607;
+ or.b32 %r232, %r231, 1065353216;
+ mov.b32 %f382, %r232;
+ shr.u32 %r233, %r230, 23;
+ cvt.rn.f32.u32 %f383, %r233;
+ add.f32 %f384, %f380, %f383;
+ setp.gt.f32 %p61, %f382, 0f3FB504F3;
+ mul.f32 %f385, %f382, 0f3F000000;
+ add.f32 %f386, %f384, 0f3F800000;
+ selp.f32 %f387, %f385, %f382, %p61;
+ selp.f32 %f388, %f386, %f384, %p61;
+ add.f32 %f389, %f387, 0fBF800000;
+ add.f32 %f378, %f387, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f377,%f378;
+ // inline asm
+ add.f32 %f390, %f389, %f389;
+ mul.f32 %f391, %f377, %f390;
+ mul.f32 %f392, %f391, %f391;
+ fma.rn.f32 %f395, %f636, %f392, %f637;
+ fma.rn.f32 %f397, %f395, %f392, %f638;
+ mul.rn.f32 %f398, %f397, %f392;
+ mul.rn.f32 %f399, %f398, %f391;
+ sub.f32 %f400, %f389, %f391;
+ neg.f32 %f401, %f391;
+ add.f32 %f402, %f400, %f400;
+ fma.rn.f32 %f403, %f401, %f389, %f402;
+ mul.rn.f32 %f404, %f377, %f403;
+ add.f32 %f405, %f399, %f391;
+ sub.f32 %f406, %f391, %f405;
+ add.f32 %f407, %f399, %f406;
+ add.f32 %f408, %f404, %f407;
+ add.f32 %f409, %f405, %f408;
+ sub.f32 %f410, %f405, %f409;
+ add.f32 %f411, %f408, %f410;
+ mul.rn.f32 %f413, %f388, %f639;
+ mul.rn.f32 %f415, %f388, %f640;
+ add.f32 %f416, %f413, %f409;
+ sub.f32 %f417, %f413, %f416;
+ add.f32 %f418, %f409, %f417;
+ add.f32 %f419, %f411, %f418;
+ add.f32 %f420, %f415, %f419;
+ add.f32 %f421, %f416, %f420;
+ sub.f32 %f422, %f416, %f421;
+ add.f32 %f423, %f420, %f422;
+ mul.rn.f32 %f425, %f635, %f421;
+ neg.f32 %f426, %f425;
+ fma.rn.f32 %f427, %f635, %f421, %f426;
+ fma.rn.f32 %f428, %f635, %f423, %f427;
+ fma.rn.f32 %f430, %f641, %f421, %f428;
+ add.rn.f32 %f431, %f425, %f430;
+ neg.f32 %f432, %f431;
+ add.rn.f32 %f433, %f425, %f432;
+ add.rn.f32 %f434, %f433, %f430;
+ mov.b32 %r234, %f431;
+ setp.eq.s32 %p62, %r234, 1118925336;
+ add.s32 %r235, %r234, -1;
+ mov.b32 %f435, %r235;
+ add.f32 %f436, %f434, 0f37000000;
+ selp.f32 %f437, %f435, %f431, %p62;
+ selp.f32 %f109, %f436, %f434, %p62;
+ mul.f32 %f438, %f437, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f439, %f438;
+ fma.rn.f32 %f441, %f439, %f642, %f437;
+ fma.rn.f32 %f443, %f439, %f643, %f441;
+ mul.f32 %f444, %f443, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f445, %f444;
+ add.f32 %f446, %f439, 0f00000000;
+ ex2.approx.f32 %f447, %f446;
+ mul.f32 %f448, %f445, %f447;
+ setp.lt.f32 %p63, %f437, 0fC2D20000;
+ selp.f32 %f449, 0f00000000, %f448, %p63;
+ setp.gt.f32 %p64, %f437, 0f42D20000;
+ selp.f32 %f704, 0f7F800000, %f449, %p64;
+ setp.eq.f32 %p65, %f704, 0f7F800000;
+ @%p65 bra BB0_70;
+
+ fma.rn.f32 %f704, %f704, %f109, %f704;
+
+BB0_70:
+ setp.lt.f32 %p66, %f92, 0f00000000;
+ and.pred %p2, %p66, %p51;
+ mov.b32 %r236, %f704;
+ xor.b32 %r237, %r236, -2147483648;
+ mov.b32 %f450, %r237;
+ selp.f32 %f706, %f450, %f704, %p2;
+ setp.eq.f32 %p68, %f92, 0f00000000;
+ @%p68 bra BB0_73;
+ bra.uni BB0_71;
+
+BB0_73:
+ add.f32 %f453, %f92, %f92;
+ selp.f32 %f706, %f453, 0f00000000, %p51;
+ bra.uni BB0_74;
+
+BB0_71:
+ setp.geu.f32 %p69, %f92, 0f00000000;
+ @%p69 bra BB0_74;
+
+ mov.f32 %f654, 0f3EE66666;
+ cvt.rzi.f32.f32 %f452, %f654;
+ setp.neu.f32 %p70, %f452, 0f3EE66666;
+ selp.f32 %f706, 0f7FFFFFFF, %f706, %p70;
+
+BB0_74:
+ abs.f32 %f658, %f92;
+ add.f32 %f454, %f658, 0f3EE66666;
+ mov.b32 %r238, %f454;
+ setp.lt.s32 %p72, %r238, 2139095040;
+ @%p72 bra BB0_79;
+
+ abs.f32 %f659, %f92;
+ setp.gtu.f32 %p73, %f659, 0f7F800000;
+ @%p73 bra BB0_78;
+ bra.uni BB0_76;
+
+BB0_78:
+ add.f32 %f706, %f92, 0f3EE66666;
+ bra.uni BB0_79;
+
+BB0_76:
+ abs.f32 %f660, %f92;
+ setp.neu.f32 %p74, %f660, 0f7F800000;
+ @%p74 bra BB0_79;
+
+ selp.f32 %f706, 0fFF800000, 0f7F800000, %p2;
+
+BB0_79:
+ mov.f32 %f652, 0fB5BFBE8E;
+ mov.f32 %f651, 0fBF317200;
+ mov.f32 %f650, 0f00000000;
+ mov.f32 %f649, 0f35BFBE8E;
+ mov.f32 %f648, 0f3F317200;
+ mov.f32 %f647, 0f3DAAAABD;
+ mov.f32 %f646, 0f3C4CAF63;
+ mov.f32 %f645, 0f3B18F0FE;
+ mov.f32 %f644, 0f3EE66666;
+ setp.eq.f32 %p75, %f92, 0f3F800000;
+ selp.f32 %f120, 0f3F800000, %f706, %p75;
+ abs.f32 %f121, %f93;
+ setp.lt.f32 %p76, %f121, 0f00800000;
+ mul.f32 %f457, %f121, 0f4B800000;
+ selp.f32 %f458, 0fC3170000, 0fC2FE0000, %p76;
+ selp.f32 %f459, %f457, %f121, %p76;
+ mov.b32 %r239, %f459;
+ and.b32 %r240, %r239, 8388607;
+ or.b32 %r241, %r240, 1065353216;
+ mov.b32 %f460, %r241;
+ shr.u32 %r242, %r239, 23;
+ cvt.rn.f32.u32 %f461, %r242;
+ add.f32 %f462, %f458, %f461;
+ setp.gt.f32 %p77, %f460, 0f3FB504F3;
+ mul.f32 %f463, %f460, 0f3F000000;
+ add.f32 %f464, %f462, 0f3F800000;
+ selp.f32 %f465, %f463, %f460, %p77;
+ selp.f32 %f466, %f464, %f462, %p77;
+ add.f32 %f467, %f465, 0fBF800000;
+ add.f32 %f456, %f465, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f455,%f456;
+ // inline asm
+ add.f32 %f468, %f467, %f467;
+ mul.f32 %f469, %f455, %f468;
+ mul.f32 %f470, %f469, %f469;
+ fma.rn.f32 %f473, %f645, %f470, %f646;
+ fma.rn.f32 %f475, %f473, %f470, %f647;
+ mul.rn.f32 %f476, %f475, %f470;
+ mul.rn.f32 %f477, %f476, %f469;
+ sub.f32 %f478, %f467, %f469;
+ neg.f32 %f479, %f469;
+ add.f32 %f480, %f478, %f478;
+ fma.rn.f32 %f481, %f479, %f467, %f480;
+ mul.rn.f32 %f482, %f455, %f481;
+ add.f32 %f483, %f477, %f469;
+ sub.f32 %f484, %f469, %f483;
+ add.f32 %f485, %f477, %f484;
+ add.f32 %f486, %f482, %f485;
+ add.f32 %f487, %f483, %f486;
+ sub.f32 %f488, %f483, %f487;
+ add.f32 %f489, %f486, %f488;
+ mul.rn.f32 %f491, %f466, %f648;
+ mul.rn.f32 %f493, %f466, %f649;
+ add.f32 %f494, %f491, %f487;
+ sub.f32 %f495, %f491, %f494;
+ add.f32 %f496, %f487, %f495;
+ add.f32 %f497, %f489, %f496;
+ add.f32 %f498, %f493, %f497;
+ add.f32 %f499, %f494, %f498;
+ sub.f32 %f500, %f494, %f499;
+ add.f32 %f501, %f498, %f500;
+ mul.rn.f32 %f503, %f644, %f499;
+ neg.f32 %f504, %f503;
+ fma.rn.f32 %f505, %f644, %f499, %f504;
+ fma.rn.f32 %f506, %f644, %f501, %f505;
+ fma.rn.f32 %f508, %f650, %f499, %f506;
+ add.rn.f32 %f509, %f503, %f508;
+ neg.f32 %f510, %f509;
+ add.rn.f32 %f511, %f503, %f510;
+ add.rn.f32 %f512, %f511, %f508;
+ mov.b32 %r243, %f509;
+ setp.eq.s32 %p78, %r243, 1118925336;
+ add.s32 %r244, %r243, -1;
+ mov.b32 %f513, %r244;
+ add.f32 %f514, %f512, 0f37000000;
+ selp.f32 %f515, %f513, %f509, %p78;
+ selp.f32 %f122, %f514, %f512, %p78;
+ mul.f32 %f516, %f515, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f517, %f516;
+ fma.rn.f32 %f519, %f517, %f651, %f515;
+ fma.rn.f32 %f521, %f517, %f652, %f519;
+ mul.f32 %f522, %f521, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f523, %f522;
+ add.f32 %f524, %f517, 0f00000000;
+ ex2.approx.f32 %f525, %f524;
+ mul.f32 %f526, %f523, %f525;
+ setp.lt.f32 %p79, %f515, 0fC2D20000;
+ selp.f32 %f527, 0f00000000, %f526, %p79;
+ setp.gt.f32 %p80, %f515, 0f42D20000;
+ selp.f32 %f707, 0f7F800000, %f527, %p80;
+ setp.eq.f32 %p81, %f707, 0f7F800000;
+ @%p81 bra BB0_81;
+
+ fma.rn.f32 %f707, %f707, %f122, %f707;
+
+BB0_81:
+ setp.lt.f32 %p82, %f93, 0f00000000;
+ and.pred %p3, %p82, %p51;
+ mov.b32 %r245, %f707;
+ xor.b32 %r246, %r245, -2147483648;
+ mov.b32 %f528, %r246;
+ selp.f32 %f709, %f528, %f707, %p3;
+ setp.eq.f32 %p84, %f93, 0f00000000;
+ @%p84 bra BB0_84;
+ bra.uni BB0_82;
+
+BB0_84:
+ add.f32 %f531, %f93, %f93;
+ selp.f32 %f709, %f531, 0f00000000, %p51;
+ bra.uni BB0_85;
+
+BB0_82:
+ setp.geu.f32 %p85, %f93, 0f00000000;
+ @%p85 bra BB0_85;
+
+ mov.f32 %f653, 0f3EE66666;
+ cvt.rzi.f32.f32 %f530, %f653;
+ setp.neu.f32 %p86, %f530, 0f3EE66666;
+ selp.f32 %f709, 0f7FFFFFFF, %f709, %p86;
+
+BB0_85:
+ abs.f32 %f661, %f93;
+ add.f32 %f532, %f661, 0f3EE66666;
+ mov.b32 %r247, %f532;
+ setp.lt.s32 %p88, %r247, 2139095040;
+ @%p88 bra BB0_90;
+
+ abs.f32 %f662, %f93;
+ setp.gtu.f32 %p89, %f662, 0f7F800000;
+ @%p89 bra BB0_89;
+ bra.uni BB0_87;
+
+BB0_89:
+ add.f32 %f709, %f93, 0f3EE66666;
+ bra.uni BB0_90;
+
+BB0_87:
+ abs.f32 %f663, %f93;
+ setp.neu.f32 %p90, %f663, 0f7F800000;
+ @%p90 bra BB0_90;
+
+ selp.f32 %f709, 0fFF800000, 0f7F800000, %p3;
+
+BB0_90:
+ mov.u32 %r328, 4;
+ setp.eq.f32 %p91, %f93, 0f3F800000;
+ selp.f32 %f533, 0f3F800000, %f709, %p91;
+ cvt.u64.u32 %rd66, %r4;
+ cvt.u64.u32 %rd65, %r3;
+ mov.u64 %rd69, image;
+ cvta.global.u64 %rd64, %rd69;
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd64, %r91, %r328, %rd65, %rd66, %rd25, %rd25);
+ // inline asm
+ cvt.sat.f32.f32 %f534, %f533;
+ mul.f32 %f535, %f534, 0f437FFD71;
+ cvt.rzi.u32.f32 %r250, %f535;
+ cvt.sat.f32.f32 %f536, %f120;
+ mul.f32 %f537, %f536, 0f437FFD71;
+ cvt.rzi.u32.f32 %r251, %f537;
+ cvt.sat.f32.f32 %f538, %f107;
+ mul.f32 %f539, %f538, 0f437FFD71;
+ cvt.rzi.u32.f32 %r252, %f539;
+ cvt.u16.u32 %rs14, %r250;
+ cvt.u16.u32 %rs15, %r252;
+ cvt.u16.u32 %rs16, %r251;
+ mov.u16 %rs17, 255;
+ st.v4.u8 [%rd63], {%rs14, %rs16, %rs15, %rs17};
+ ld.global.u32 %r353, [imageEnabled];
+
+BB0_91:
+ cvt.u64.u32 %rd16, %r3;
+ cvt.u64.u32 %rd17, %r4;
+ and.b32 %r253, %r353, 4;
+ setp.eq.s32 %p92, %r253, 0;
+ @%p92 bra BB0_95;
+
+ ld.global.u32 %r254, [additive];
+ setp.eq.s32 %p93, %r254, 0;
+ mov.f32 %f540, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs18, %f540;}
+
+ // inline asm
+ @%p93 bra BB0_94;
+
+ mov.u64 %rd82, image_HDR;
+ cvta.global.u64 %rd71, %rd82;
+ mov.u32 %r258, 8;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd71, %r91, %r258, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs25, %rs26, %rs27, %rs28}, [%rd70];
+ // inline asm
+ { cvt.f32.f16 %f541, %rs25;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f542, %rs26;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f543, %rs27;}
+
+ // inline asm
+ // inline asm
+ call (%rd76), _rt_buffer_get_64, (%rd71, %r91, %r258, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f544, %f91, %f541;
+ add.f32 %f545, %f92, %f542;
+ add.f32 %f546, %f93, %f543;
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f546;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f545;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f544;}
+
+ // inline asm
+ st.v4.u16 [%rd76], {%rs22, %rs23, %rs24, %rs18};
+ bra.uni BB0_95;
+
+BB0_94:
+ mov.u64 %rd89, image_HDR;
+ cvta.global.u64 %rd84, %rd89;
+ mov.u32 %r260, 8;
+ // inline asm
+ call (%rd83), _rt_buffer_get_64, (%rd84, %r91, %r260, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f93;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f92;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f91;}
+
+ // inline asm
+ st.v4.u16 [%rd83], {%rs29, %rs30, %rs31, %rs18};
+
+BB0_95:
+ mul.f32 %f133, %f87, 0f3F000000;
+ ld.global.f32 %f551, [skyColor];
+ mul.f32 %f134, %f133, %f551;
+ ld.global.f32 %f552, [skyColor+4];
+ mul.f32 %f135, %f133, %f552;
+ ld.global.f32 %f553, [skyColor+8];
+ mul.f32 %f136, %f133, %f553;
+ ld.global.u32 %r261, [additive];
+ setp.eq.s32 %p94, %r261, 0;
+ mov.f32 %f550, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f550;}
+
+ // inline asm
+ @%p94 bra BB0_97;
+
+ mov.u64 %rd102, image_RNM0;
+ cvta.global.u64 %rd91, %rd102;
+ mov.u32 %r265, 8;
+ // inline asm
+ call (%rd90), _rt_buffer_get_64, (%rd91, %r91, %r265, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs39, %rs40, %rs41, %rs42}, [%rd90];
+ // inline asm
+ { cvt.f32.f16 %f554, %rs39;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f555, %rs40;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f556, %rs41;}
+
+ // inline asm
+ // inline asm
+ call (%rd96), _rt_buffer_get_64, (%rd91, %r91, %r265, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f557, %f134, %f554;
+ add.f32 %f558, %f135, %f555;
+ add.f32 %f559, %f136, %f556;
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f559;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f558;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f557;}
+
+ // inline asm
+ st.v4.u16 [%rd96], {%rs36, %rs37, %rs38, %rs32};
+ bra.uni BB0_98;
+
+BB0_97:
+ mov.u64 %rd109, image_RNM0;
+ cvta.global.u64 %rd104, %rd109;
+ mov.u32 %r267, 8;
+ // inline asm
+ call (%rd103), _rt_buffer_get_64, (%rd104, %r91, %r267, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f136;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f135;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f134;}
+
+ // inline asm
+ st.v4.u16 [%rd103], {%rs43, %rs44, %rs45, %rs32};
+
+BB0_98:
+ mov.f32 %f564, 0f34000000;
+ max.f32 %f565, %f133, %f564;
+ mul.f32 %f566, %f88, 0f3F000000;
+ div.rn.f32 %f567, %f566, %f565;
+ fma.rn.f32 %f137, %f567, 0f3F000000, 0f3F000000;
+ mul.f32 %f568, %f89, 0f3F000000;
+ div.rn.f32 %f569, %f568, %f565;
+ fma.rn.f32 %f138, %f569, 0f3F000000, 0f3F000000;
+ mul.f32 %f570, %f90, 0f3F000000;
+ div.rn.f32 %f571, %f570, %f565;
+ fma.rn.f32 %f139, %f571, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r268, [additive];
+ setp.eq.s32 %p95, %r268, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f550;}
+
+ // inline asm
+ @%p95 bra BB0_100;
+
+ mov.u64 %rd122, image_RNM1;
+ cvta.global.u64 %rd111, %rd122;
+ mov.u32 %r272, 8;
+ // inline asm
+ call (%rd110), _rt_buffer_get_64, (%rd111, %r91, %r272, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs53, %rs54, %rs55, %rs56}, [%rd110];
+ // inline asm
+ { cvt.f32.f16 %f572, %rs53;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f573, %rs54;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f574, %rs55;}
+
+ // inline asm
+ // inline asm
+ call (%rd116), _rt_buffer_get_64, (%rd111, %r91, %r272, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f575, %f137, %f572;
+ add.f32 %f576, %f137, %f573;
+ add.f32 %f577, %f137, %f574;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f577;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f576;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f575;}
+
+ // inline asm
+ st.v4.u16 [%rd116], {%rs50, %rs51, %rs52, %rs46};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd129, image_RNM1;
+ cvta.global.u64 %rd124, %rd129;
+ mov.u32 %r274, 8;
+ // inline asm
+ call (%rd123), _rt_buffer_get_64, (%rd124, %r91, %r274, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f137;}
+
+ // inline asm
+ st.v4.u16 [%rd123], {%rs57, %rs57, %rs57, %rs46};
+
+BB0_101:
+ ld.global.u32 %r275, [additive];
+ setp.eq.s32 %p96, %r275, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f550;}
+
+ // inline asm
+ @%p96 bra BB0_103;
+
+ mov.u64 %rd142, image_RNM2;
+ cvta.global.u64 %rd131, %rd142;
+ mov.u32 %r279, 8;
+ // inline asm
+ call (%rd130), _rt_buffer_get_64, (%rd131, %r91, %r279, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs65, %rs66, %rs67, %rs68}, [%rd130];
+ // inline asm
+ { cvt.f32.f16 %f580, %rs65;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f581, %rs66;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f582, %rs67;}
+
+ // inline asm
+ // inline asm
+ call (%rd136), _rt_buffer_get_64, (%rd131, %r91, %r279, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f583, %f138, %f580;
+ add.f32 %f584, %f138, %f581;
+ add.f32 %f585, %f138, %f582;
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f585;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs63, %f584;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs62, %f583;}
+
+ // inline asm
+ st.v4.u16 [%rd136], {%rs62, %rs63, %rs64, %rs58};
+ bra.uni BB0_104;
+
+BB0_103:
+ mov.u64 %rd149, image_RNM2;
+ cvta.global.u64 %rd144, %rd149;
+ mov.u32 %r281, 8;
+ // inline asm
+ call (%rd143), _rt_buffer_get_64, (%rd144, %r91, %r281, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f138;}
+
+ // inline asm
+ st.v4.u16 [%rd143], {%rs69, %rs69, %rs69, %rs58};
+
+BB0_104:
+ ld.global.u32 %r282, [additive];
+ setp.eq.s32 %p97, %r282, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f550;}
+
+ // inline asm
+ @%p97 bra BB0_106;
+
+ mov.u64 %rd162, image_RNM3;
+ cvta.global.u64 %rd151, %rd162;
+ mov.u32 %r286, 8;
+ // inline asm
+ call (%rd150), _rt_buffer_get_64, (%rd151, %r91, %r286, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs77, %rs78, %rs79, %rs80}, [%rd150];
+ // inline asm
+ { cvt.f32.f16 %f588, %rs77;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f589, %rs78;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f590, %rs79;}
+
+ // inline asm
+ // inline asm
+ call (%rd156), _rt_buffer_get_64, (%rd151, %r91, %r286, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f591, %f139, %f588;
+ add.f32 %f592, %f139, %f589;
+ add.f32 %f593, %f139, %f590;
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f593;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs75, %f592;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f591;}
+
+ // inline asm
+ st.v4.u16 [%rd156], {%rs74, %rs75, %rs76, %rs70};
+ bra.uni BB0_125;
+
+BB0_106:
+ mov.u64 %rd169, image_RNM3;
+ cvta.global.u64 %rd164, %rd169;
+ mov.u32 %r288, 8;
+ // inline asm
+ call (%rd163), _rt_buffer_get_64, (%rd164, %r91, %r288, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f139;}
+
+ // inline asm
+ st.v4.u16 [%rd163], {%rs81, %rs81, %rs81, %rs70};
+
+BB0_125:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkySH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkySH.ptx.meta
new file mode 100644
index 00000000..21c78fc8
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkySH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8da7a58258ed783468d439092348f0b2
+timeCreated: 1537817234
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTangentSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTangentSH.ptx
new file mode 100644
index 00000000..987b9061
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTangentSH.ptx
@@ -0,0 +1,2126 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvtangent[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .texref sky;
+.global .align 4 .b8 skyColor[12];
+.global .align 4 .u32 samples;
+.global .align 4 .u32 hemispherical;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8skyColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13hemisphericalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8skyColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename13hemisphericalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8skyColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13hemisphericalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8skyColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13hemisphericalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8skyColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13hemisphericalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<111>;
+ .reg .b16 %rs<175>;
+ .reg .f32 %f<873>;
+ .reg .b32 %r<380>;
+ .reg .b64 %rd<311>;
+
+
+ mov.u64 %rd310, __local_depot0;
+ cvta.local.u64 %SP, %rd310;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r99, %r100}, [pixelID];
+ cvt.u64.u32 %rd24, %r99;
+ cvt.u64.u32 %rd25, %r100;
+ mov.u64 %rd28, uvnormal;
+ cvta.global.u64 %rd23, %rd28;
+ mov.u32 %r97, 2;
+ mov.u32 %r98, 4;
+ mov.u64 %rd27, 0;
+ // inline asm
+ call (%rd22), _rt_buffer_get_64, (%rd23, %r97, %r98, %rd24, %rd25, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r2, [%rd22];
+ shr.u32 %r103, %r2, 16;
+ cvt.u16.u32 %rs1, %r103;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r2;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p4, %rs9, 0;
+ mov.f32 %f820, 0f00000000;
+ mov.f32 %f821, %f820;
+ mov.f32 %f822, %f820;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs10, [%rd22+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f176, %rs12;
+ div.rn.f32 %f177, %f176, 0f437F0000;
+ fma.rn.f32 %f178, %f177, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f179, %rs10;
+ div.rn.f32 %f180, %f179, 0f437F0000;
+ fma.rn.f32 %f181, %f180, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f182, %rs7;
+ div.rn.f32 %f183, %f182, 0f437F0000;
+ fma.rn.f32 %f184, %f183, 0f40000000, 0fBF800000;
+ mul.f32 %f185, %f181, %f181;
+ fma.rn.f32 %f186, %f178, %f178, %f185;
+ fma.rn.f32 %f187, %f184, %f184, %f186;
+ sqrt.rn.f32 %f188, %f187;
+ rcp.rn.f32 %f189, %f188;
+ mul.f32 %f820, %f178, %f189;
+ mul.f32 %f821, %f181, %f189;
+ mul.f32 %f822, %f184, %f189;
+
+BB0_2:
+ ld.global.v2.u32 {%r104, %r105}, [pixelID];
+ ld.global.v2.u32 {%r107, %r108}, [tileInfo];
+ add.s32 %r3, %r104, %r107;
+ add.s32 %r4, %r105, %r108;
+ setp.eq.f32 %p5, %f821, 0f00000000;
+ setp.eq.f32 %p6, %f820, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f822, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_113;
+ bra.uni BB0_3;
+
+BB0_113:
+ ld.global.u32 %r379, [imageEnabled];
+ and.b32 %r313, %r379, 1;
+ setp.eq.b32 %p104, %r313, 1;
+ @!%p104 bra BB0_115;
+ bra.uni BB0_114;
+
+BB0_114:
+ cvt.u64.u32 %rd196, %r4;
+ cvt.u64.u32 %rd195, %r3;
+ mov.u64 %rd199, image;
+ cvta.global.u64 %rd194, %rd199;
+ mov.u64 %rd198, 0;
+ // inline asm
+ call (%rd193), _rt_buffer_get_64, (%rd194, %r97, %r98, %rd195, %rd196, %rd198, %rd198);
+ // inline asm
+ mov.u16 %rs109, 0;
+ st.v4.u8 [%rd193], {%rs109, %rs109, %rs109, %rs109};
+ ld.global.u32 %r379, [imageEnabled];
+
+BB0_115:
+ cvt.u64.u32 %rd20, %r3;
+ cvt.u64.u32 %rd21, %r4;
+ and.b32 %r316, %r379, 4;
+ setp.eq.s32 %p105, %r316, 0;
+ @%p105 bra BB0_119;
+
+ ld.global.u32 %r317, [additive];
+ setp.eq.s32 %p106, %r317, 0;
+ @%p106 bra BB0_118;
+
+ mov.u64 %rd212, image_HDR;
+ cvta.global.u64 %rd201, %rd212;
+ mov.u32 %r321, 8;
+ mov.u64 %rd211, 0;
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd201, %r97, %r321, %rd20, %rd21, %rd211, %rd211);
+ // inline asm
+ ld.v4.u16 {%rs116, %rs117, %rs118, %rs119}, [%rd200];
+ // inline asm
+ { cvt.f32.f16 %f739, %rs116;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f740, %rs117;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f741, %rs118;}
+
+ // inline asm
+ // inline asm
+ call (%rd206), _rt_buffer_get_64, (%rd201, %r97, %r321, %rd20, %rd21, %rd211, %rd211);
+ // inline asm
+ add.f32 %f742, %f739, 0f00000000;
+ add.f32 %f743, %f740, 0f00000000;
+ add.f32 %f744, %f741, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs115, %f744;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs114, %f743;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs113, %f742;}
+
+ // inline asm
+ mov.u16 %rs120, 0;
+ st.v4.u16 [%rd206], {%rs113, %rs114, %rs115, %rs120};
+ bra.uni BB0_119;
+
+BB0_3:
+ ld.global.v2.u32 {%r118, %r119}, [pixelID];
+ cvt.u64.u32 %rd31, %r118;
+ cvt.u64.u32 %rd32, %r119;
+ mov.u64 %rd47, uvpos;
+ cvta.global.u64 %rd30, %rd47;
+ mov.u32 %r113, 12;
+ // inline asm
+ call (%rd29), _rt_buffer_get_64, (%rd30, %r97, %r113, %rd31, %rd32, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f193, [%rd29+8];
+ ld.f32 %f194, [%rd29+4];
+ ld.f32 %f195, [%rd29];
+ mul.f32 %f196, %f195, 0f3456BF95;
+ mul.f32 %f197, %f194, 0f3456BF95;
+ mul.f32 %f198, %f193, 0f3456BF95;
+ abs.f32 %f199, %f820;
+ div.rn.f32 %f200, %f196, %f199;
+ abs.f32 %f201, %f821;
+ div.rn.f32 %f202, %f197, %f201;
+ abs.f32 %f203, %f822;
+ div.rn.f32 %f204, %f198, %f203;
+ abs.f32 %f205, %f200;
+ abs.f32 %f206, %f202;
+ abs.f32 %f207, %f204;
+ mov.f32 %f208, 0f38D1B717;
+ max.f32 %f209, %f205, %f208;
+ max.f32 %f210, %f206, %f208;
+ max.f32 %f211, %f207, %f208;
+ fma.rn.f32 %f7, %f820, %f209, %f195;
+ fma.rn.f32 %f8, %f821, %f210, %f194;
+ fma.rn.f32 %f9, %f822, %f211, %f193;
+ ld.global.u32 %r5, [hemispherical];
+ setp.gt.f32 %p10, %f199, %f203;
+ neg.f32 %f212, %f821;
+ selp.f32 %f213, %f212, 0f00000000, %p10;
+ neg.f32 %f214, %f822;
+ selp.f32 %f215, %f820, %f214, %p10;
+ selp.f32 %f216, 0f00000000, %f821, %p10;
+ mul.f32 %f217, %f215, %f215;
+ fma.rn.f32 %f218, %f213, %f213, %f217;
+ fma.rn.f32 %f219, %f216, %f216, %f218;
+ sqrt.rn.f32 %f220, %f219;
+ rcp.rn.f32 %f221, %f220;
+ mul.f32 %f10, %f213, %f221;
+ mul.f32 %f11, %f215, %f221;
+ mul.f32 %f12, %f216, %f221;
+ ld.global.v2.u32 {%r122, %r123}, [pixelID];
+ cvt.u64.u32 %rd37, %r122;
+ cvt.u64.u32 %rd38, %r123;
+ mov.u64 %rd48, rnd_seeds;
+ cvta.global.u64 %rd36, %rd48;
+ // inline asm
+ call (%rd35), _rt_buffer_get_64, (%rd36, %r97, %r98, %rd37, %rd38, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r357, [%rd35];
+ ld.global.v2.u32 {%r126, %r127}, [pixelID];
+ cvt.u64.u32 %rd43, %r126;
+ cvt.u64.u32 %rd44, %r127;
+ mov.u64 %rd49, uvtangent;
+ cvta.global.u64 %rd42, %rd49;
+ // inline asm
+ call (%rd41), _rt_buffer_get_64, (%rd42, %r97, %r98, %rd43, %rd44, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r7, [%rd41];
+ shr.u32 %r8, %r7, 16;
+ cvt.u16.u32 %rs14, %r8;
+ and.b16 %rs15, %rs14, 255;
+ cvt.u16.u32 %rs16, %r7;
+ or.b16 %rs17, %rs16, %rs15;
+ setp.eq.s16 %p11, %rs17, 0;
+ mov.f32 %f858, 0f00000000;
+ mov.f32 %f823, %f858;
+ mov.f32 %f824, %f858;
+ mov.f32 %f825, %f858;
+ @%p11 bra BB0_5;
+
+ ld.u8 %rs18, [%rd41+1];
+ and.b16 %rs20, %rs16, 255;
+ cvt.rn.f32.u16 %f222, %rs20;
+ div.rn.f32 %f223, %f222, 0f437F0000;
+ fma.rn.f32 %f224, %f223, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f225, %rs18;
+ div.rn.f32 %f226, %f225, 0f437F0000;
+ fma.rn.f32 %f227, %f226, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f228, %rs15;
+ div.rn.f32 %f229, %f228, 0f437F0000;
+ fma.rn.f32 %f230, %f229, 0f40000000, 0fBF800000;
+ mul.f32 %f231, %f227, %f227;
+ fma.rn.f32 %f232, %f224, %f224, %f231;
+ fma.rn.f32 %f233, %f230, %f230, %f232;
+ sqrt.rn.f32 %f234, %f233;
+ rcp.rn.f32 %f235, %f234;
+ mul.f32 %f823, %f224, %f235;
+ mul.f32 %f824, %f227, %f235;
+ mul.f32 %f825, %f230, %f235;
+
+BB0_5:
+ mul.f32 %f239, %f822, %f824;
+ mul.f32 %f240, %f821, %f825;
+ sub.f32 %f241, %f240, %f239;
+ mul.f32 %f242, %f820, %f825;
+ mul.f32 %f243, %f822, %f823;
+ sub.f32 %f244, %f243, %f242;
+ mul.f32 %f245, %f821, %f823;
+ mul.f32 %f246, %f820, %f824;
+ sub.f32 %f247, %f246, %f245;
+ setp.lt.u32 %p12, %r7, 16777216;
+ selp.f32 %f248, 0fBF800000, 0f3F800000, %p12;
+ mul.f32 %f249, %f241, %f248;
+ mul.f32 %f250, %f244, %f248;
+ mul.f32 %f251, %f247, %f248;
+ fma.rn.f32 %f252, %f249, 0f00000000, %f823;
+ fma.rn.f32 %f253, %f250, 0f00000000, %f824;
+ fma.rn.f32 %f254, %f251, 0f00000000, %f825;
+ mul.f32 %f19, %f820, 0f00000000;
+ add.f32 %f20, %f19, %f252;
+ mul.f32 %f21, %f821, 0f00000000;
+ add.f32 %f22, %f21, %f253;
+ mul.f32 %f23, %f822, 0f00000000;
+ add.f32 %f24, %f23, %f254;
+ ld.global.v2.u32 {%r132, %r133}, [pixelID];
+ cvt.u64.u32 %rd52, %r132;
+ cvt.u64.u32 %rd53, %r133;
+ // inline asm
+ call (%rd50), _rt_buffer_get_64, (%rd42, %r97, %r98, %rd52, %rd53, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r9, [%rd50];
+ shr.u32 %r10, %r9, 16;
+ cvt.u16.u32 %rs23, %r10;
+ and.b16 %rs24, %rs23, 255;
+ cvt.u16.u32 %rs25, %r9;
+ or.b16 %rs26, %rs25, %rs24;
+ setp.eq.s16 %p13, %rs26, 0;
+ mov.f32 %f826, %f858;
+ mov.f32 %f827, %f858;
+ mov.f32 %f828, %f858;
+ @%p13 bra BB0_7;
+
+ ld.u8 %rs27, [%rd50+1];
+ and.b16 %rs29, %rs25, 255;
+ cvt.rn.f32.u16 %f255, %rs29;
+ div.rn.f32 %f256, %f255, 0f437F0000;
+ fma.rn.f32 %f257, %f256, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f258, %rs27;
+ div.rn.f32 %f259, %f258, 0f437F0000;
+ fma.rn.f32 %f260, %f259, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f261, %rs24;
+ div.rn.f32 %f262, %f261, 0f437F0000;
+ fma.rn.f32 %f263, %f262, 0f40000000, 0fBF800000;
+ mul.f32 %f264, %f260, %f260;
+ fma.rn.f32 %f265, %f257, %f257, %f264;
+ fma.rn.f32 %f266, %f263, %f263, %f265;
+ sqrt.rn.f32 %f267, %f266;
+ rcp.rn.f32 %f268, %f267;
+ mul.f32 %f826, %f257, %f268;
+ mul.f32 %f827, %f260, %f268;
+ mul.f32 %f828, %f263, %f268;
+
+BB0_7:
+ mul.f32 %f272, %f822, %f827;
+ mul.f32 %f273, %f821, %f828;
+ sub.f32 %f274, %f273, %f272;
+ mul.f32 %f275, %f820, %f828;
+ mul.f32 %f276, %f822, %f826;
+ sub.f32 %f277, %f276, %f275;
+ mul.f32 %f278, %f821, %f826;
+ mul.f32 %f279, %f820, %f827;
+ sub.f32 %f280, %f279, %f278;
+ setp.lt.u32 %p14, %r9, 16777216;
+ selp.f32 %f281, 0fBF800000, 0f3F800000, %p14;
+ mul.f32 %f282, %f274, %f281;
+ mul.f32 %f283, %f277, %f281;
+ mul.f32 %f284, %f280, %f281;
+ fma.rn.f32 %f285, %f826, 0f00000000, %f282;
+ fma.rn.f32 %f286, %f827, 0f00000000, %f283;
+ fma.rn.f32 %f287, %f828, 0f00000000, %f284;
+ add.f32 %f31, %f19, %f285;
+ add.f32 %f32, %f21, %f286;
+ add.f32 %f33, %f23, %f287;
+ ld.global.v2.u32 {%r138, %r139}, [pixelID];
+ cvt.u64.u32 %rd59, %r138;
+ cvt.u64.u32 %rd60, %r139;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd42, %r97, %r98, %rd59, %rd60, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r11, [%rd57];
+ shr.u32 %r12, %r11, 16;
+ cvt.u16.u32 %rs32, %r12;
+ and.b16 %rs33, %rs32, 255;
+ cvt.u16.u32 %rs34, %r11;
+ or.b16 %rs35, %rs34, %rs33;
+ setp.eq.s16 %p15, %rs35, 0;
+ mov.f32 %f829, %f858;
+ mov.f32 %f830, %f858;
+ mov.f32 %f831, %f858;
+ @%p15 bra BB0_9;
+
+ ld.u8 %rs36, [%rd57+1];
+ and.b16 %rs38, %rs34, 255;
+ cvt.rn.f32.u16 %f288, %rs38;
+ div.rn.f32 %f289, %f288, 0f437F0000;
+ fma.rn.f32 %f290, %f289, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f291, %rs36;
+ div.rn.f32 %f292, %f291, 0f437F0000;
+ fma.rn.f32 %f293, %f292, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f294, %rs33;
+ div.rn.f32 %f295, %f294, 0f437F0000;
+ fma.rn.f32 %f296, %f295, 0f40000000, 0fBF800000;
+ mul.f32 %f297, %f293, %f293;
+ fma.rn.f32 %f298, %f290, %f290, %f297;
+ fma.rn.f32 %f299, %f296, %f296, %f298;
+ sqrt.rn.f32 %f300, %f299;
+ rcp.rn.f32 %f301, %f300;
+ mul.f32 %f829, %f290, %f301;
+ mul.f32 %f830, %f293, %f301;
+ mul.f32 %f831, %f296, %f301;
+
+BB0_9:
+ mul.f32 %f307, %f822, %f830;
+ mul.f32 %f308, %f821, %f831;
+ sub.f32 %f309, %f308, %f307;
+ mul.f32 %f310, %f820, %f831;
+ mul.f32 %f311, %f822, %f829;
+ sub.f32 %f312, %f311, %f310;
+ mul.f32 %f313, %f821, %f829;
+ mul.f32 %f314, %f820, %f830;
+ sub.f32 %f315, %f314, %f313;
+ setp.lt.u32 %p16, %r11, 16777216;
+ selp.f32 %f316, 0fBF800000, 0f3F800000, %p16;
+ mul.f32 %f317, %f309, %f316;
+ mul.f32 %f318, %f312, %f316;
+ mul.f32 %f319, %f315, %f316;
+ mul.f32 %f320, %f317, 0f00000000;
+ mul.f32 %f321, %f318, 0f00000000;
+ mul.f32 %f322, %f319, 0f00000000;
+ fma.rn.f32 %f40, %f829, 0f00000000, %f320;
+ fma.rn.f32 %f41, %f830, 0f00000000, %f321;
+ fma.rn.f32 %f42, %f831, 0f00000000, %f322;
+ setp.lt.s32 %p17, %r1, 1;
+ mov.f32 %f857, %f858;
+ mov.f32 %f856, %f858;
+ mov.f32 %f855, %f858;
+ mov.f32 %f854, %f858;
+ @%p17 bra BB0_62;
+
+ cvt.rn.f32.s32 %f328, %r1;
+ rcp.rn.f32 %f43, %f328;
+ mul.f32 %f44, %f7, 0f3456BF95;
+ mul.f32 %f45, %f8, 0f3456BF95;
+ mul.f32 %f46, %f9, 0f3456BF95;
+ mul.f32 %f329, %f822, %f11;
+ mul.f32 %f330, %f821, %f12;
+ sub.f32 %f47, %f329, %f330;
+ mul.f32 %f331, %f820, %f12;
+ mul.f32 %f332, %f822, %f10;
+ sub.f32 %f48, %f331, %f332;
+ mul.f32 %f333, %f821, %f10;
+ mul.f32 %f334, %f820, %f11;
+ sub.f32 %f49, %f333, %f334;
+ add.f32 %f50, %f822, %f42;
+ add.f32 %f51, %f821, %f41;
+ add.f32 %f52, %f820, %f40;
+ mov.f32 %f858, 0f00000000;
+ mov.u32 %r142, 0;
+ abs.f32 %f408, %f45;
+ abs.f32 %f409, %f44;
+ max.f32 %f410, %f409, %f408;
+ abs.f32 %f411, %f46;
+ max.f32 %f412, %f410, %f411;
+ mov.u32 %r354, %r142;
+ mov.f32 %f857, %f858;
+ mov.f32 %f856, %f858;
+ mov.f32 %f855, %f858;
+ mov.f32 %f854, %f858;
+
+BB0_11:
+ mov.u32 %r356, %r142;
+
+BB0_12:
+ cvt.rn.f32.s32 %f812, %r354;
+ mad.lo.s32 %r144, %r357, 1664525, 1013904223;
+ and.b32 %r145, %r144, 16777215;
+ cvt.rn.f32.u32 %f335, %r145;
+ fma.rn.f32 %f336, %f335, 0f33800000, %f812;
+ mul.f32 %f64, %f43, %f336;
+ mad.lo.s32 %r357, %r144, 1664525, 1013904223;
+ and.b32 %r146, %r357, 16777215;
+ cvt.rn.f32.u32 %f337, %r146;
+ cvt.rn.f32.s32 %f338, %r356;
+ fma.rn.f32 %f339, %f337, 0f33800000, %f338;
+ mul.f32 %f340, %f43, %f339;
+ mul.f32 %f341, %f64, %f64;
+ mov.f32 %f342, 0f3F800000;
+ sub.f32 %f343, %f342, %f341;
+ mov.f32 %f344, 0f00000000;
+ max.f32 %f345, %f344, %f343;
+ sqrt.rn.f32 %f65, %f345;
+ mul.f32 %f848, %f340, 0f40C90FDB;
+ abs.f32 %f67, %f848;
+ setp.neu.f32 %p18, %f67, 0f7F800000;
+ mov.f32 %f842, %f848;
+ @%p18 bra BB0_14;
+
+ mov.f32 %f813, 0f00000000;
+ mul.rn.f32 %f842, %f848, %f813;
+
+BB0_14:
+ mul.f32 %f347, %f842, 0f3F22F983;
+ cvt.rni.s32.f32 %r367, %f347;
+ cvt.rn.f32.s32 %f348, %r367;
+ neg.f32 %f349, %f348;
+ mov.f32 %f350, 0f3FC90FDA;
+ fma.rn.f32 %f351, %f349, %f350, %f842;
+ mov.f32 %f352, 0f33A22168;
+ fma.rn.f32 %f353, %f349, %f352, %f351;
+ mov.f32 %f354, 0f27C234C5;
+ fma.rn.f32 %f843, %f349, %f354, %f353;
+ abs.f32 %f355, %f842;
+ setp.leu.f32 %p19, %f355, 0f47CE4780;
+ @%p19 bra BB0_25;
+
+ add.u64 %rd65, %SP, 4;
+ cvta.to.local.u64 %rd306, %rd65;
+ mov.b32 %r19, %f842;
+ shr.u32 %r20, %r19, 23;
+ shl.b32 %r149, %r19, 8;
+ or.b32 %r21, %r149, -2147483648;
+ mov.u32 %r358, 0;
+ mov.u64 %rd307, 0;
+ mov.u32 %r359, %r358;
+
+BB0_16:
+ .pragma "nounroll";
+ add.u64 %rd303, %SP, 4;
+ cvta.to.local.u64 %rd302, %rd303;
+ shl.b64 %rd66, %rd307, 2;
+ mov.u64 %rd67, __cudart_i2opi_f;
+ add.s64 %rd68, %rd67, %rd66;
+ ld.const.u32 %r152, [%rd68];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r150, %r152, %r21, %r359;
+ madc.hi.u32 %r359, %r152, %r21, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd306], %r150;
+ add.s32 %r358, %r358, 1;
+ cvt.s64.s32 %rd307, %r358;
+ mul.wide.s32 %rd71, %r358, 4;
+ add.s64 %rd306, %rd302, %rd71;
+ setp.ne.s32 %p20, %r358, 6;
+ @%p20 bra BB0_16;
+
+ add.u64 %rd300, %SP, 4;
+ and.b32 %r155, %r20, 255;
+ add.s32 %r156, %r155, -128;
+ shr.u32 %r157, %r156, 5;
+ and.b32 %r26, %r19, -2147483648;
+ cvta.to.local.u64 %rd73, %rd300;
+ st.local.u32 [%rd73+24], %r359;
+ mov.u32 %r158, 6;
+ sub.s32 %r159, %r158, %r157;
+ mul.wide.s32 %rd74, %r159, 4;
+ add.s64 %rd10, %rd73, %rd74;
+ ld.local.u32 %r360, [%rd10];
+ ld.local.u32 %r361, [%rd10+-4];
+ and.b32 %r29, %r20, 31;
+ setp.eq.s32 %p21, %r29, 0;
+ @%p21 bra BB0_19;
+
+ mov.u32 %r160, 32;
+ sub.s32 %r161, %r160, %r29;
+ shr.u32 %r162, %r361, %r161;
+ shl.b32 %r163, %r360, %r29;
+ add.s32 %r360, %r162, %r163;
+ ld.local.u32 %r164, [%rd10+-8];
+ shr.u32 %r165, %r164, %r161;
+ shl.b32 %r166, %r361, %r29;
+ add.s32 %r361, %r165, %r166;
+
+BB0_19:
+ shr.u32 %r167, %r361, 30;
+ shl.b32 %r168, %r360, 2;
+ add.s32 %r362, %r167, %r168;
+ shl.b32 %r35, %r361, 2;
+ shr.u32 %r169, %r362, 31;
+ shr.u32 %r170, %r360, 30;
+ add.s32 %r36, %r169, %r170;
+ setp.eq.s32 %p22, %r169, 0;
+ @%p22 bra BB0_20;
+ bra.uni BB0_21;
+
+BB0_20:
+ mov.u32 %r363, %r26;
+ mov.u32 %r364, %r35;
+ bra.uni BB0_22;
+
+BB0_21:
+ not.b32 %r171, %r362;
+ neg.s32 %r364, %r35;
+ setp.eq.s32 %p23, %r35, 0;
+ selp.u32 %r172, 1, 0, %p23;
+ add.s32 %r362, %r172, %r171;
+ xor.b32 %r363, %r26, -2147483648;
+
+BB0_22:
+ clz.b32 %r366, %r362;
+ setp.eq.s32 %p24, %r366, 0;
+ shl.b32 %r173, %r362, %r366;
+ mov.u32 %r174, 32;
+ sub.s32 %r175, %r174, %r366;
+ shr.u32 %r176, %r364, %r175;
+ add.s32 %r177, %r176, %r173;
+ selp.b32 %r44, %r362, %r177, %p24;
+ mov.u32 %r178, -921707870;
+ mul.hi.u32 %r365, %r44, %r178;
+ setp.eq.s32 %p25, %r26, 0;
+ neg.s32 %r179, %r36;
+ selp.b32 %r367, %r36, %r179, %p25;
+ setp.lt.s32 %p26, %r365, 1;
+ @%p26 bra BB0_24;
+
+ mul.lo.s32 %r180, %r44, -921707870;
+ shr.u32 %r181, %r180, 31;
+ shl.b32 %r182, %r365, 1;
+ add.s32 %r365, %r181, %r182;
+ add.s32 %r366, %r366, 1;
+
+BB0_24:
+ mov.u32 %r183, 126;
+ sub.s32 %r184, %r183, %r366;
+ shl.b32 %r185, %r184, 23;
+ add.s32 %r186, %r365, 1;
+ shr.u32 %r187, %r186, 7;
+ add.s32 %r188, %r187, 1;
+ shr.u32 %r189, %r188, 1;
+ add.s32 %r190, %r189, %r185;
+ or.b32 %r191, %r190, %r363;
+ mov.b32 %f843, %r191;
+
+BB0_25:
+ mul.rn.f32 %f73, %f843, %f843;
+ add.s32 %r52, %r367, 1;
+ and.b32 %r53, %r52, 1;
+ setp.eq.s32 %p27, %r53, 0;
+ @%p27 bra BB0_27;
+ bra.uni BB0_26;
+
+BB0_27:
+ mov.f32 %f358, 0f3C08839E;
+ mov.f32 %f359, 0fB94CA1F9;
+ fma.rn.f32 %f844, %f359, %f73, %f358;
+ bra.uni BB0_28;
+
+BB0_26:
+ mov.f32 %f356, 0fBAB6061A;
+ mov.f32 %f357, 0f37CCF5CE;
+ fma.rn.f32 %f844, %f357, %f73, %f356;
+
+BB0_28:
+ @%p27 bra BB0_30;
+ bra.uni BB0_29;
+
+BB0_30:
+ mov.f32 %f816, 0f00000000;
+ mov.f32 %f363, 0fBE2AAAA3;
+ fma.rn.f32 %f364, %f844, %f73, %f363;
+ fma.rn.f32 %f845, %f364, %f73, %f816;
+ bra.uni BB0_31;
+
+BB0_29:
+ mov.f32 %f360, 0f3D2AAAA5;
+ fma.rn.f32 %f361, %f844, %f73, %f360;
+ mov.f32 %f362, 0fBF000000;
+ fma.rn.f32 %f845, %f361, %f73, %f362;
+
+BB0_31:
+ fma.rn.f32 %f846, %f845, %f843, %f843;
+ @%p27 bra BB0_33;
+
+ mov.f32 %f805, 0f3F800000;
+ fma.rn.f32 %f846, %f845, %f73, %f805;
+
+BB0_33:
+ and.b32 %r192, %r52, 2;
+ setp.eq.s32 %p30, %r192, 0;
+ @%p30 bra BB0_35;
+
+ mov.f32 %f806, 0f00000000;
+ mov.f32 %f368, 0fBF800000;
+ fma.rn.f32 %f846, %f846, %f368, %f806;
+
+BB0_35:
+ @%p18 bra BB0_37;
+
+ mov.f32 %f815, 0f00000000;
+ mul.rn.f32 %f848, %f848, %f815;
+
+BB0_37:
+ mov.f32 %f809, 0f27C234C5;
+ mov.f32 %f808, 0f33A22168;
+ mov.f32 %f807, 0f3FC90FDA;
+ mul.f32 %f370, %f848, 0f3F22F983;
+ cvt.rni.s32.f32 %r377, %f370;
+ cvt.rn.f32.s32 %f371, %r377;
+ neg.f32 %f372, %f371;
+ fma.rn.f32 %f374, %f372, %f807, %f848;
+ fma.rn.f32 %f376, %f372, %f808, %f374;
+ fma.rn.f32 %f849, %f372, %f809, %f376;
+ abs.f32 %f378, %f848;
+ setp.leu.f32 %p32, %f378, 0f47CE4780;
+ @%p32 bra BB0_48;
+
+ add.u64 %rd76, %SP, 4;
+ cvta.to.local.u64 %rd308, %rd76;
+ mov.b32 %r55, %f848;
+ shr.u32 %r56, %r55, 23;
+ shl.b32 %r195, %r55, 8;
+ or.b32 %r57, %r195, -2147483648;
+ mov.u32 %r368, 0;
+ mov.u64 %rd309, %rd27;
+ mov.u32 %r369, %r368;
+
+BB0_39:
+ .pragma "nounroll";
+ add.u64 %rd305, %SP, 4;
+ cvta.to.local.u64 %rd304, %rd305;
+ shl.b64 %rd77, %rd309, 2;
+ mov.u64 %rd78, __cudart_i2opi_f;
+ add.s64 %rd79, %rd78, %rd77;
+ ld.const.u32 %r198, [%rd79];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r196, %r198, %r57, %r369;
+ madc.hi.u32 %r369, %r198, %r57, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd308], %r196;
+ add.s32 %r368, %r368, 1;
+ cvt.s64.s32 %rd309, %r368;
+ mul.wide.s32 %rd80, %r368, 4;
+ add.s64 %rd308, %rd304, %rd80;
+ setp.ne.s32 %p33, %r368, 6;
+ @%p33 bra BB0_39;
+
+ add.u64 %rd301, %SP, 4;
+ and.b32 %r201, %r56, 255;
+ add.s32 %r202, %r201, -128;
+ shr.u32 %r203, %r202, 5;
+ and.b32 %r62, %r55, -2147483648;
+ cvta.to.local.u64 %rd82, %rd301;
+ st.local.u32 [%rd82+24], %r369;
+ mov.u32 %r204, 6;
+ sub.s32 %r205, %r204, %r203;
+ mul.wide.s32 %rd83, %r205, 4;
+ add.s64 %rd17, %rd82, %rd83;
+ ld.local.u32 %r370, [%rd17];
+ ld.local.u32 %r371, [%rd17+-4];
+ and.b32 %r65, %r56, 31;
+ setp.eq.s32 %p34, %r65, 0;
+ @%p34 bra BB0_42;
+
+ mov.u32 %r206, 32;
+ sub.s32 %r207, %r206, %r65;
+ shr.u32 %r208, %r371, %r207;
+ shl.b32 %r209, %r370, %r65;
+ add.s32 %r370, %r208, %r209;
+ ld.local.u32 %r210, [%rd17+-8];
+ shr.u32 %r211, %r210, %r207;
+ shl.b32 %r212, %r371, %r65;
+ add.s32 %r371, %r211, %r212;
+
+BB0_42:
+ shr.u32 %r213, %r371, 30;
+ shl.b32 %r214, %r370, 2;
+ add.s32 %r372, %r213, %r214;
+ shl.b32 %r71, %r371, 2;
+ shr.u32 %r215, %r372, 31;
+ shr.u32 %r216, %r370, 30;
+ add.s32 %r72, %r215, %r216;
+ setp.eq.s32 %p35, %r215, 0;
+ @%p35 bra BB0_43;
+ bra.uni BB0_44;
+
+BB0_43:
+ mov.u32 %r373, %r62;
+ mov.u32 %r374, %r71;
+ bra.uni BB0_45;
+
+BB0_44:
+ not.b32 %r217, %r372;
+ neg.s32 %r374, %r71;
+ setp.eq.s32 %p36, %r71, 0;
+ selp.u32 %r218, 1, 0, %p36;
+ add.s32 %r372, %r218, %r217;
+ xor.b32 %r373, %r62, -2147483648;
+
+BB0_45:
+ clz.b32 %r376, %r372;
+ setp.eq.s32 %p37, %r376, 0;
+ shl.b32 %r219, %r372, %r376;
+ mov.u32 %r220, 32;
+ sub.s32 %r221, %r220, %r376;
+ shr.u32 %r222, %r374, %r221;
+ add.s32 %r223, %r222, %r219;
+ selp.b32 %r80, %r372, %r223, %p37;
+ mov.u32 %r224, -921707870;
+ mul.hi.u32 %r375, %r80, %r224;
+ setp.eq.s32 %p38, %r62, 0;
+ neg.s32 %r225, %r72;
+ selp.b32 %r377, %r72, %r225, %p38;
+ setp.lt.s32 %p39, %r375, 1;
+ @%p39 bra BB0_47;
+
+ mul.lo.s32 %r226, %r80, -921707870;
+ shr.u32 %r227, %r226, 31;
+ shl.b32 %r228, %r375, 1;
+ add.s32 %r375, %r227, %r228;
+ add.s32 %r376, %r376, 1;
+
+BB0_47:
+ mov.u32 %r229, 126;
+ sub.s32 %r230, %r229, %r376;
+ shl.b32 %r231, %r230, 23;
+ add.s32 %r232, %r375, 1;
+ shr.u32 %r233, %r232, 7;
+ add.s32 %r234, %r233, 1;
+ shr.u32 %r235, %r234, 1;
+ add.s32 %r236, %r235, %r231;
+ or.b32 %r237, %r236, %r373;
+ mov.b32 %f849, %r237;
+
+BB0_48:
+ mul.rn.f32 %f90, %f849, %f849;
+ and.b32 %r88, %r377, 1;
+ setp.eq.s32 %p40, %r88, 0;
+ @%p40 bra BB0_50;
+ bra.uni BB0_49;
+
+BB0_50:
+ mov.f32 %f381, 0f3C08839E;
+ mov.f32 %f382, 0fB94CA1F9;
+ fma.rn.f32 %f850, %f382, %f90, %f381;
+ bra.uni BB0_51;
+
+BB0_49:
+ mov.f32 %f379, 0fBAB6061A;
+ mov.f32 %f380, 0f37CCF5CE;
+ fma.rn.f32 %f850, %f380, %f90, %f379;
+
+BB0_51:
+ @%p40 bra BB0_53;
+ bra.uni BB0_52;
+
+BB0_53:
+ mov.f32 %f814, 0f00000000;
+ mov.f32 %f386, 0fBE2AAAA3;
+ fma.rn.f32 %f387, %f850, %f90, %f386;
+ fma.rn.f32 %f851, %f387, %f90, %f814;
+ bra.uni BB0_54;
+
+BB0_52:
+ mov.f32 %f383, 0f3D2AAAA5;
+ fma.rn.f32 %f384, %f850, %f90, %f383;
+ mov.f32 %f385, 0fBF000000;
+ fma.rn.f32 %f851, %f384, %f90, %f385;
+
+BB0_54:
+ fma.rn.f32 %f852, %f851, %f849, %f849;
+ @%p40 bra BB0_56;
+
+ mov.f32 %f810, 0f3F800000;
+ fma.rn.f32 %f852, %f851, %f90, %f810;
+
+BB0_56:
+ and.b32 %r238, %r377, 2;
+ setp.eq.s32 %p43, %r238, 0;
+ @%p43 bra BB0_58;
+
+ mov.f32 %f811, 0f00000000;
+ mov.f32 %f391, 0fBF800000;
+ fma.rn.f32 %f852, %f852, %f391, %f811;
+
+BB0_58:
+ mul.f32 %f392, %f65, %f846;
+ mul.f32 %f393, %f65, %f852;
+ mul.f32 %f394, %f10, %f393;
+ mul.f32 %f395, %f11, %f393;
+ mul.f32 %f396, %f12, %f393;
+ fma.rn.f32 %f397, %f47, %f392, %f394;
+ fma.rn.f32 %f398, %f48, %f392, %f395;
+ fma.rn.f32 %f399, %f49, %f392, %f396;
+ fma.rn.f32 %f102, %f820, %f64, %f397;
+ fma.rn.f32 %f103, %f821, %f64, %f398;
+ fma.rn.f32 %f104, %f822, %f64, %f399;
+ setp.gt.f32 %p44, %f103, 0f00000000;
+ setp.eq.s32 %p45, %r5, 0;
+ or.pred %p46, %p45, %p44;
+ @!%p46 bra BB0_60;
+ bra.uni BB0_59;
+
+BB0_59:
+ mov.u32 %r353, 4;
+ add.u64 %rd84, %SP, 0;
+ cvta.to.local.u64 %rd85, %rd84;
+ max.f32 %f406, %f412, %f208;
+ mov.u32 %r242, 1065353216;
+ st.local.u32 [%rd85], %r242;
+ ld.global.u32 %r239, [root];
+ mov.u32 %r240, 1;
+ mov.f32 %f407, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r239, %f7, %f8, %f9, %f102, %f103, %f104, %r240, %f406, %f407, %rd84, %r353);
+ // inline asm
+ mul.f32 %f414, %f821, %f103;
+ fma.rn.f32 %f415, %f820, %f102, %f414;
+ fma.rn.f32 %f416, %f822, %f104, %f415;
+ mul.f32 %f417, %f416, 0f40800000;
+ cvt.sat.f32.f32 %f418, %f417;
+ ld.local.f32 %f419, [%rd85];
+ mul.f32 %f420, %f419, %f418;
+ mul.f32 %f421, %f22, %f103;
+ fma.rn.f32 %f422, %f20, %f102, %f421;
+ fma.rn.f32 %f423, %f24, %f104, %f422;
+ cvt.sat.f32.f32 %f424, %f423;
+ fma.rn.f32 %f856, %f424, %f420, %f856;
+ mul.f32 %f425, %f32, %f103;
+ fma.rn.f32 %f426, %f31, %f102, %f425;
+ fma.rn.f32 %f427, %f33, %f104, %f426;
+ cvt.sat.f32.f32 %f428, %f427;
+ fma.rn.f32 %f857, %f420, %f428, %f857;
+ mul.f32 %f429, %f51, %f103;
+ fma.rn.f32 %f430, %f52, %f102, %f429;
+ fma.rn.f32 %f431, %f50, %f104, %f430;
+ cvt.sat.f32.f32 %f432, %f431;
+ fma.rn.f32 %f858, %f420, %f432, %f858;
+ add.f32 %f855, %f855, %f420;
+ cvt.sat.f32.f32 %f433, %f416;
+ fma.rn.f32 %f854, %f433, %f419, %f854;
+
+BB0_60:
+ add.s32 %r356, %r356, 1;
+ setp.lt.s32 %p47, %r356, %r1;
+ @%p47 bra BB0_12;
+
+ add.s32 %r354, %r354, 1;
+ setp.lt.s32 %p48, %r354, %r1;
+ @%p48 bra BB0_11;
+
+BB0_62:
+ mul.lo.s32 %r243, %r1, %r1;
+ cvt.rn.f32.s32 %f434, %r243;
+ div.rn.f32 %f435, %f854, %f434;
+ div.rn.f32 %f120, %f855, %f434;
+ div.rn.f32 %f121, %f856, %f434;
+ div.rn.f32 %f122, %f857, %f434;
+ div.rn.f32 %f123, %f858, %f434;
+ add.f32 %f436, %f435, %f435;
+ ld.global.f32 %f437, [skyColor];
+ mul.f32 %f124, %f436, %f437;
+ ld.global.f32 %f438, [skyColor+4];
+ mul.f32 %f125, %f436, %f438;
+ ld.global.f32 %f439, [skyColor+8];
+ mul.f32 %f126, %f436, %f439;
+ ld.global.u32 %r378, [imageEnabled];
+ and.b32 %r244, %r378, 1;
+ setp.eq.b32 %p49, %r244, 1;
+ @!%p49 bra BB0_97;
+ bra.uni BB0_63;
+
+BB0_63:
+ abs.f32 %f128, %f124;
+ setp.lt.f32 %p50, %f128, 0f00800000;
+ mul.f32 %f445, %f128, 0f4B800000;
+ selp.f32 %f446, 0fC3170000, 0fC2FE0000, %p50;
+ selp.f32 %f447, %f445, %f128, %p50;
+ mov.b32 %r245, %f447;
+ and.b32 %r246, %r245, 8388607;
+ or.b32 %r247, %r246, 1065353216;
+ mov.b32 %f448, %r247;
+ shr.u32 %r248, %r245, 23;
+ cvt.rn.f32.u32 %f449, %r248;
+ add.f32 %f450, %f446, %f449;
+ setp.gt.f32 %p51, %f448, 0f3FB504F3;
+ mul.f32 %f451, %f448, 0f3F000000;
+ add.f32 %f452, %f450, 0f3F800000;
+ selp.f32 %f453, %f451, %f448, %p51;
+ selp.f32 %f454, %f452, %f450, %p51;
+ add.f32 %f455, %f453, 0fBF800000;
+ add.f32 %f441, %f453, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f440,%f441;
+ // inline asm
+ add.f32 %f456, %f455, %f455;
+ mul.f32 %f457, %f440, %f456;
+ mul.f32 %f458, %f457, %f457;
+ mov.f32 %f459, 0f3C4CAF63;
+ mov.f32 %f460, 0f3B18F0FE;
+ fma.rn.f32 %f461, %f460, %f458, %f459;
+ mov.f32 %f462, 0f3DAAAABD;
+ fma.rn.f32 %f463, %f461, %f458, %f462;
+ mul.rn.f32 %f464, %f463, %f458;
+ mul.rn.f32 %f465, %f464, %f457;
+ sub.f32 %f466, %f455, %f457;
+ neg.f32 %f467, %f457;
+ add.f32 %f468, %f466, %f466;
+ fma.rn.f32 %f469, %f467, %f455, %f468;
+ mul.rn.f32 %f470, %f440, %f469;
+ add.f32 %f471, %f465, %f457;
+ sub.f32 %f472, %f457, %f471;
+ add.f32 %f473, %f465, %f472;
+ add.f32 %f474, %f470, %f473;
+ add.f32 %f475, %f471, %f474;
+ sub.f32 %f476, %f471, %f475;
+ add.f32 %f477, %f474, %f476;
+ mov.f32 %f478, 0f3F317200;
+ mul.rn.f32 %f479, %f454, %f478;
+ mov.f32 %f480, 0f35BFBE8E;
+ mul.rn.f32 %f481, %f454, %f480;
+ add.f32 %f482, %f479, %f475;
+ sub.f32 %f483, %f479, %f482;
+ add.f32 %f484, %f475, %f483;
+ add.f32 %f485, %f477, %f484;
+ add.f32 %f486, %f481, %f485;
+ add.f32 %f487, %f482, %f486;
+ sub.f32 %f488, %f482, %f487;
+ add.f32 %f489, %f486, %f488;
+ mov.f32 %f490, 0f3EE66666;
+ mul.rn.f32 %f491, %f490, %f487;
+ neg.f32 %f492, %f491;
+ fma.rn.f32 %f493, %f490, %f487, %f492;
+ fma.rn.f32 %f494, %f490, %f489, %f493;
+ mov.f32 %f495, 0f00000000;
+ fma.rn.f32 %f496, %f495, %f487, %f494;
+ add.rn.f32 %f497, %f491, %f496;
+ neg.f32 %f498, %f497;
+ add.rn.f32 %f499, %f491, %f498;
+ add.rn.f32 %f500, %f499, %f496;
+ mov.b32 %r249, %f497;
+ setp.eq.s32 %p52, %r249, 1118925336;
+ add.s32 %r250, %r249, -1;
+ mov.b32 %f501, %r250;
+ add.f32 %f502, %f500, 0f37000000;
+ selp.f32 %f503, %f501, %f497, %p52;
+ selp.f32 %f129, %f502, %f500, %p52;
+ mul.f32 %f504, %f503, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f505, %f504;
+ mov.f32 %f506, 0fBF317200;
+ fma.rn.f32 %f507, %f505, %f506, %f503;
+ mov.f32 %f508, 0fB5BFBE8E;
+ fma.rn.f32 %f509, %f505, %f508, %f507;
+ mul.f32 %f510, %f509, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f511, %f510;
+ add.f32 %f512, %f505, 0f00000000;
+ ex2.approx.f32 %f513, %f512;
+ mul.f32 %f514, %f511, %f513;
+ setp.lt.f32 %p53, %f503, 0fC2D20000;
+ selp.f32 %f515, 0f00000000, %f514, %p53;
+ setp.gt.f32 %p54, %f503, 0f42D20000;
+ selp.f32 %f864, 0f7F800000, %f515, %p54;
+ setp.eq.f32 %p55, %f864, 0f7F800000;
+ @%p55 bra BB0_65;
+
+ fma.rn.f32 %f864, %f864, %f129, %f864;
+
+BB0_65:
+ mov.f32 %f777, 0f3E666666;
+ cvt.rzi.f32.f32 %f776, %f777;
+ fma.rn.f32 %f775, %f776, 0fC0000000, 0f3EE66666;
+ abs.f32 %f774, %f775;
+ setp.lt.f32 %p56, %f124, 0f00000000;
+ setp.eq.f32 %p57, %f774, 0f3F800000;
+ and.pred %p1, %p56, %p57;
+ mov.b32 %r251, %f864;
+ xor.b32 %r252, %r251, -2147483648;
+ mov.b32 %f516, %r252;
+ selp.f32 %f866, %f516, %f864, %p1;
+ setp.eq.f32 %p58, %f124, 0f00000000;
+ @%p58 bra BB0_68;
+ bra.uni BB0_66;
+
+BB0_68:
+ add.f32 %f519, %f124, %f124;
+ selp.f32 %f866, %f519, 0f00000000, %p57;
+ bra.uni BB0_69;
+
+BB0_118:
+ mov.u64 %rd219, image_HDR;
+ cvta.global.u64 %rd214, %rd219;
+ mov.u32 %r323, 8;
+ mov.u64 %rd218, 0;
+ // inline asm
+ call (%rd213), _rt_buffer_get_64, (%rd214, %r97, %r323, %rd20, %rd21, %rd218, %rd218);
+ // inline asm
+ mov.f32 %f745, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f745;}
+
+ // inline asm
+ mov.u16 %rs122, 0;
+ st.v4.u16 [%rd213], {%rs121, %rs121, %rs121, %rs122};
+
+BB0_119:
+ ld.global.u32 %r324, [additive];
+ setp.eq.s32 %p107, %r324, 0;
+ @%p107 bra BB0_121;
+
+ mov.u64 %rd232, image_RNM0;
+ cvta.global.u64 %rd221, %rd232;
+ mov.u32 %r328, 8;
+ mov.u64 %rd231, 0;
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd221, %r97, %r328, %rd20, %rd21, %rd231, %rd231);
+ // inline asm
+ ld.v4.u16 {%rs129, %rs130, %rs131, %rs132}, [%rd220];
+ // inline asm
+ { cvt.f32.f16 %f746, %rs129;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f747, %rs130;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f748, %rs131;}
+
+ // inline asm
+ // inline asm
+ call (%rd226), _rt_buffer_get_64, (%rd221, %r97, %r328, %rd20, %rd21, %rd231, %rd231);
+ // inline asm
+ add.f32 %f749, %f746, 0f00000000;
+ add.f32 %f750, %f747, 0f00000000;
+ add.f32 %f751, %f748, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs128, %f751;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs127, %f750;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs126, %f749;}
+
+ // inline asm
+ mov.u16 %rs133, 0;
+ st.v4.u16 [%rd226], {%rs126, %rs127, %rs128, %rs133};
+ bra.uni BB0_122;
+
+BB0_121:
+ mov.u64 %rd239, image_RNM0;
+ cvta.global.u64 %rd234, %rd239;
+ mov.u32 %r330, 8;
+ mov.u64 %rd238, 0;
+ // inline asm
+ call (%rd233), _rt_buffer_get_64, (%rd234, %r97, %r330, %rd20, %rd21, %rd238, %rd238);
+ // inline asm
+ mov.f32 %f752, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f752;}
+
+ // inline asm
+ mov.u16 %rs135, 0;
+ st.v4.u16 [%rd233], {%rs134, %rs134, %rs134, %rs135};
+
+BB0_122:
+ ld.global.u32 %r331, [additive];
+ setp.eq.s32 %p108, %r331, 0;
+ @%p108 bra BB0_124;
+
+ mov.u64 %rd252, image_RNM1;
+ cvta.global.u64 %rd241, %rd252;
+ mov.u32 %r335, 8;
+ mov.u64 %rd251, 0;
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd241, %r97, %r335, %rd20, %rd21, %rd251, %rd251);
+ // inline asm
+ ld.v4.u16 {%rs142, %rs143, %rs144, %rs145}, [%rd240];
+ // inline asm
+ { cvt.f32.f16 %f753, %rs142;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f754, %rs143;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f755, %rs144;}
+
+ // inline asm
+ // inline asm
+ call (%rd246), _rt_buffer_get_64, (%rd241, %r97, %r335, %rd20, %rd21, %rd251, %rd251);
+ // inline asm
+ add.f32 %f756, %f753, 0f00000000;
+ add.f32 %f757, %f754, 0f00000000;
+ add.f32 %f758, %f755, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs141, %f758;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs140, %f757;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs139, %f756;}
+
+ // inline asm
+ mov.u16 %rs146, 0;
+ st.v4.u16 [%rd246], {%rs139, %rs140, %rs141, %rs146};
+ bra.uni BB0_125;
+
+BB0_124:
+ mov.u64 %rd259, image_RNM1;
+ cvta.global.u64 %rd254, %rd259;
+ mov.u32 %r337, 8;
+ mov.u64 %rd258, 0;
+ // inline asm
+ call (%rd253), _rt_buffer_get_64, (%rd254, %r97, %r337, %rd20, %rd21, %rd258, %rd258);
+ // inline asm
+ mov.f32 %f759, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f759;}
+
+ // inline asm
+ mov.u16 %rs148, 0;
+ st.v4.u16 [%rd253], {%rs147, %rs147, %rs147, %rs148};
+
+BB0_125:
+ ld.global.u32 %r338, [additive];
+ setp.eq.s32 %p109, %r338, 0;
+ @%p109 bra BB0_127;
+
+ mov.u64 %rd272, image_RNM2;
+ cvta.global.u64 %rd261, %rd272;
+ mov.u32 %r342, 8;
+ mov.u64 %rd271, 0;
+ // inline asm
+ call (%rd260), _rt_buffer_get_64, (%rd261, %r97, %r342, %rd20, %rd21, %rd271, %rd271);
+ // inline asm
+ ld.v4.u16 {%rs155, %rs156, %rs157, %rs158}, [%rd260];
+ // inline asm
+ { cvt.f32.f16 %f760, %rs155;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f761, %rs156;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f762, %rs157;}
+
+ // inline asm
+ // inline asm
+ call (%rd266), _rt_buffer_get_64, (%rd261, %r97, %r342, %rd20, %rd21, %rd271, %rd271);
+ // inline asm
+ add.f32 %f763, %f760, 0f00000000;
+ add.f32 %f764, %f761, 0f00000000;
+ add.f32 %f765, %f762, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs154, %f765;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs153, %f764;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs152, %f763;}
+
+ // inline asm
+ mov.u16 %rs159, 0;
+ st.v4.u16 [%rd266], {%rs152, %rs153, %rs154, %rs159};
+ bra.uni BB0_128;
+
+BB0_127:
+ mov.u64 %rd279, image_RNM2;
+ cvta.global.u64 %rd274, %rd279;
+ mov.u32 %r344, 8;
+ mov.u64 %rd278, 0;
+ // inline asm
+ call (%rd273), _rt_buffer_get_64, (%rd274, %r97, %r344, %rd20, %rd21, %rd278, %rd278);
+ // inline asm
+ mov.f32 %f766, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs160, %f766;}
+
+ // inline asm
+ mov.u16 %rs161, 0;
+ st.v4.u16 [%rd273], {%rs160, %rs160, %rs160, %rs161};
+
+BB0_128:
+ ld.global.u32 %r345, [additive];
+ setp.eq.s32 %p110, %r345, 0;
+ @%p110 bra BB0_130;
+
+ mov.u64 %rd292, image_RNM3;
+ cvta.global.u64 %rd281, %rd292;
+ mov.u32 %r349, 8;
+ mov.u64 %rd291, 0;
+ // inline asm
+ call (%rd280), _rt_buffer_get_64, (%rd281, %r97, %r349, %rd20, %rd21, %rd291, %rd291);
+ // inline asm
+ ld.v4.u16 {%rs168, %rs169, %rs170, %rs171}, [%rd280];
+ // inline asm
+ { cvt.f32.f16 %f767, %rs168;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f768, %rs169;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f769, %rs170;}
+
+ // inline asm
+ // inline asm
+ call (%rd286), _rt_buffer_get_64, (%rd281, %r97, %r349, %rd20, %rd21, %rd291, %rd291);
+ // inline asm
+ add.f32 %f770, %f767, 0f00000000;
+ add.f32 %f771, %f768, 0f00000000;
+ add.f32 %f772, %f769, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs167, %f772;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs166, %f771;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs165, %f770;}
+
+ // inline asm
+ mov.u16 %rs172, 0;
+ st.v4.u16 [%rd286], {%rs165, %rs166, %rs167, %rs172};
+ bra.uni BB0_131;
+
+BB0_130:
+ mov.u64 %rd299, image_RNM3;
+ cvta.global.u64 %rd294, %rd299;
+ mov.u32 %r351, 8;
+ mov.u64 %rd298, 0;
+ // inline asm
+ call (%rd293), _rt_buffer_get_64, (%rd294, %r97, %r351, %rd20, %rd21, %rd298, %rd298);
+ // inline asm
+ mov.f32 %f773, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs173, %f773;}
+
+ // inline asm
+ mov.u16 %rs174, 0;
+ st.v4.u16 [%rd293], {%rs173, %rs173, %rs173, %rs174};
+ bra.uni BB0_131;
+
+BB0_66:
+ setp.geu.f32 %p59, %f124, 0f00000000;
+ @%p59 bra BB0_69;
+
+ mov.f32 %f801, 0f3EE66666;
+ cvt.rzi.f32.f32 %f518, %f801;
+ setp.neu.f32 %p60, %f518, 0f3EE66666;
+ selp.f32 %f866, 0f7FFFFFFF, %f866, %p60;
+
+BB0_69:
+ abs.f32 %f778, %f124;
+ add.f32 %f520, %f778, 0f3EE66666;
+ mov.b32 %r253, %f520;
+ setp.lt.s32 %p62, %r253, 2139095040;
+ @%p62 bra BB0_74;
+
+ abs.f32 %f799, %f124;
+ setp.gtu.f32 %p63, %f799, 0f7F800000;
+ @%p63 bra BB0_73;
+ bra.uni BB0_71;
+
+BB0_73:
+ add.f32 %f866, %f124, 0f3EE66666;
+ bra.uni BB0_74;
+
+BB0_71:
+ abs.f32 %f800, %f124;
+ setp.neu.f32 %p64, %f800, 0f7F800000;
+ @%p64 bra BB0_74;
+
+ selp.f32 %f866, 0fFF800000, 0f7F800000, %p1;
+
+BB0_74:
+ mov.f32 %f787, 0fB5BFBE8E;
+ mov.f32 %f786, 0fBF317200;
+ mov.f32 %f785, 0f00000000;
+ mov.f32 %f784, 0f35BFBE8E;
+ mov.f32 %f783, 0f3F317200;
+ mov.f32 %f782, 0f3DAAAABD;
+ mov.f32 %f781, 0f3C4CAF63;
+ mov.f32 %f780, 0f3B18F0FE;
+ mov.f32 %f779, 0f3EE66666;
+ setp.eq.f32 %p65, %f124, 0f3F800000;
+ selp.f32 %f140, 0f3F800000, %f866, %p65;
+ abs.f32 %f141, %f125;
+ setp.lt.f32 %p66, %f141, 0f00800000;
+ mul.f32 %f523, %f141, 0f4B800000;
+ selp.f32 %f524, 0fC3170000, 0fC2FE0000, %p66;
+ selp.f32 %f525, %f523, %f141, %p66;
+ mov.b32 %r254, %f525;
+ and.b32 %r255, %r254, 8388607;
+ or.b32 %r256, %r255, 1065353216;
+ mov.b32 %f526, %r256;
+ shr.u32 %r257, %r254, 23;
+ cvt.rn.f32.u32 %f527, %r257;
+ add.f32 %f528, %f524, %f527;
+ setp.gt.f32 %p67, %f526, 0f3FB504F3;
+ mul.f32 %f529, %f526, 0f3F000000;
+ add.f32 %f530, %f528, 0f3F800000;
+ selp.f32 %f531, %f529, %f526, %p67;
+ selp.f32 %f532, %f530, %f528, %p67;
+ add.f32 %f533, %f531, 0fBF800000;
+ add.f32 %f522, %f531, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f521,%f522;
+ // inline asm
+ add.f32 %f534, %f533, %f533;
+ mul.f32 %f535, %f521, %f534;
+ mul.f32 %f536, %f535, %f535;
+ fma.rn.f32 %f539, %f780, %f536, %f781;
+ fma.rn.f32 %f541, %f539, %f536, %f782;
+ mul.rn.f32 %f542, %f541, %f536;
+ mul.rn.f32 %f543, %f542, %f535;
+ sub.f32 %f544, %f533, %f535;
+ neg.f32 %f545, %f535;
+ add.f32 %f546, %f544, %f544;
+ fma.rn.f32 %f547, %f545, %f533, %f546;
+ mul.rn.f32 %f548, %f521, %f547;
+ add.f32 %f549, %f543, %f535;
+ sub.f32 %f550, %f535, %f549;
+ add.f32 %f551, %f543, %f550;
+ add.f32 %f552, %f548, %f551;
+ add.f32 %f553, %f549, %f552;
+ sub.f32 %f554, %f549, %f553;
+ add.f32 %f555, %f552, %f554;
+ mul.rn.f32 %f557, %f532, %f783;
+ mul.rn.f32 %f559, %f532, %f784;
+ add.f32 %f560, %f557, %f553;
+ sub.f32 %f561, %f557, %f560;
+ add.f32 %f562, %f553, %f561;
+ add.f32 %f563, %f555, %f562;
+ add.f32 %f564, %f559, %f563;
+ add.f32 %f565, %f560, %f564;
+ sub.f32 %f566, %f560, %f565;
+ add.f32 %f567, %f564, %f566;
+ mul.rn.f32 %f569, %f779, %f565;
+ neg.f32 %f570, %f569;
+ fma.rn.f32 %f571, %f779, %f565, %f570;
+ fma.rn.f32 %f572, %f779, %f567, %f571;
+ fma.rn.f32 %f574, %f785, %f565, %f572;
+ add.rn.f32 %f575, %f569, %f574;
+ neg.f32 %f576, %f575;
+ add.rn.f32 %f577, %f569, %f576;
+ add.rn.f32 %f578, %f577, %f574;
+ mov.b32 %r258, %f575;
+ setp.eq.s32 %p68, %r258, 1118925336;
+ add.s32 %r259, %r258, -1;
+ mov.b32 %f579, %r259;
+ add.f32 %f580, %f578, 0f37000000;
+ selp.f32 %f581, %f579, %f575, %p68;
+ selp.f32 %f142, %f580, %f578, %p68;
+ mul.f32 %f582, %f581, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f583, %f582;
+ fma.rn.f32 %f585, %f583, %f786, %f581;
+ fma.rn.f32 %f587, %f583, %f787, %f585;
+ mul.f32 %f588, %f587, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f589, %f588;
+ add.f32 %f590, %f583, 0f00000000;
+ ex2.approx.f32 %f591, %f590;
+ mul.f32 %f592, %f589, %f591;
+ setp.lt.f32 %p69, %f581, 0fC2D20000;
+ selp.f32 %f593, 0f00000000, %f592, %p69;
+ setp.gt.f32 %p70, %f581, 0f42D20000;
+ selp.f32 %f867, 0f7F800000, %f593, %p70;
+ setp.eq.f32 %p71, %f867, 0f7F800000;
+ @%p71 bra BB0_76;
+
+ fma.rn.f32 %f867, %f867, %f142, %f867;
+
+BB0_76:
+ setp.lt.f32 %p72, %f125, 0f00000000;
+ and.pred %p2, %p72, %p57;
+ mov.b32 %r260, %f867;
+ xor.b32 %r261, %r260, -2147483648;
+ mov.b32 %f594, %r261;
+ selp.f32 %f869, %f594, %f867, %p2;
+ setp.eq.f32 %p74, %f125, 0f00000000;
+ @%p74 bra BB0_79;
+ bra.uni BB0_77;
+
+BB0_79:
+ add.f32 %f597, %f125, %f125;
+ selp.f32 %f869, %f597, 0f00000000, %p57;
+ bra.uni BB0_80;
+
+BB0_77:
+ setp.geu.f32 %p75, %f125, 0f00000000;
+ @%p75 bra BB0_80;
+
+ mov.f32 %f798, 0f3EE66666;
+ cvt.rzi.f32.f32 %f596, %f798;
+ setp.neu.f32 %p76, %f596, 0f3EE66666;
+ selp.f32 %f869, 0f7FFFFFFF, %f869, %p76;
+
+BB0_80:
+ abs.f32 %f802, %f125;
+ add.f32 %f598, %f802, 0f3EE66666;
+ mov.b32 %r262, %f598;
+ setp.lt.s32 %p78, %r262, 2139095040;
+ @%p78 bra BB0_85;
+
+ abs.f32 %f803, %f125;
+ setp.gtu.f32 %p79, %f803, 0f7F800000;
+ @%p79 bra BB0_84;
+ bra.uni BB0_82;
+
+BB0_84:
+ add.f32 %f869, %f125, 0f3EE66666;
+ bra.uni BB0_85;
+
+BB0_82:
+ abs.f32 %f804, %f125;
+ setp.neu.f32 %p80, %f804, 0f7F800000;
+ @%p80 bra BB0_85;
+
+ selp.f32 %f869, 0fFF800000, 0f7F800000, %p2;
+
+BB0_85:
+ mov.f32 %f796, 0fB5BFBE8E;
+ mov.f32 %f795, 0fBF317200;
+ mov.f32 %f794, 0f00000000;
+ mov.f32 %f793, 0f35BFBE8E;
+ mov.f32 %f792, 0f3F317200;
+ mov.f32 %f791, 0f3DAAAABD;
+ mov.f32 %f790, 0f3C4CAF63;
+ mov.f32 %f789, 0f3B18F0FE;
+ mov.f32 %f788, 0f3EE66666;
+ setp.eq.f32 %p81, %f125, 0f3F800000;
+ selp.f32 %f153, 0f3F800000, %f869, %p81;
+ abs.f32 %f154, %f126;
+ setp.lt.f32 %p82, %f154, 0f00800000;
+ mul.f32 %f601, %f154, 0f4B800000;
+ selp.f32 %f602, 0fC3170000, 0fC2FE0000, %p82;
+ selp.f32 %f603, %f601, %f154, %p82;
+ mov.b32 %r263, %f603;
+ and.b32 %r264, %r263, 8388607;
+ or.b32 %r265, %r264, 1065353216;
+ mov.b32 %f604, %r265;
+ shr.u32 %r266, %r263, 23;
+ cvt.rn.f32.u32 %f605, %r266;
+ add.f32 %f606, %f602, %f605;
+ setp.gt.f32 %p83, %f604, 0f3FB504F3;
+ mul.f32 %f607, %f604, 0f3F000000;
+ add.f32 %f608, %f606, 0f3F800000;
+ selp.f32 %f609, %f607, %f604, %p83;
+ selp.f32 %f610, %f608, %f606, %p83;
+ add.f32 %f611, %f609, 0fBF800000;
+ add.f32 %f600, %f609, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f599,%f600;
+ // inline asm
+ add.f32 %f612, %f611, %f611;
+ mul.f32 %f613, %f599, %f612;
+ mul.f32 %f614, %f613, %f613;
+ fma.rn.f32 %f617, %f789, %f614, %f790;
+ fma.rn.f32 %f619, %f617, %f614, %f791;
+ mul.rn.f32 %f620, %f619, %f614;
+ mul.rn.f32 %f621, %f620, %f613;
+ sub.f32 %f622, %f611, %f613;
+ neg.f32 %f623, %f613;
+ add.f32 %f624, %f622, %f622;
+ fma.rn.f32 %f625, %f623, %f611, %f624;
+ mul.rn.f32 %f626, %f599, %f625;
+ add.f32 %f627, %f621, %f613;
+ sub.f32 %f628, %f613, %f627;
+ add.f32 %f629, %f621, %f628;
+ add.f32 %f630, %f626, %f629;
+ add.f32 %f631, %f627, %f630;
+ sub.f32 %f632, %f627, %f631;
+ add.f32 %f633, %f630, %f632;
+ mul.rn.f32 %f635, %f610, %f792;
+ mul.rn.f32 %f637, %f610, %f793;
+ add.f32 %f638, %f635, %f631;
+ sub.f32 %f639, %f635, %f638;
+ add.f32 %f640, %f631, %f639;
+ add.f32 %f641, %f633, %f640;
+ add.f32 %f642, %f637, %f641;
+ add.f32 %f643, %f638, %f642;
+ sub.f32 %f644, %f638, %f643;
+ add.f32 %f645, %f642, %f644;
+ mul.rn.f32 %f647, %f788, %f643;
+ neg.f32 %f648, %f647;
+ fma.rn.f32 %f649, %f788, %f643, %f648;
+ fma.rn.f32 %f650, %f788, %f645, %f649;
+ fma.rn.f32 %f652, %f794, %f643, %f650;
+ add.rn.f32 %f653, %f647, %f652;
+ neg.f32 %f654, %f653;
+ add.rn.f32 %f655, %f647, %f654;
+ add.rn.f32 %f656, %f655, %f652;
+ mov.b32 %r267, %f653;
+ setp.eq.s32 %p84, %r267, 1118925336;
+ add.s32 %r268, %r267, -1;
+ mov.b32 %f657, %r268;
+ add.f32 %f658, %f656, 0f37000000;
+ selp.f32 %f659, %f657, %f653, %p84;
+ selp.f32 %f155, %f658, %f656, %p84;
+ mul.f32 %f660, %f659, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f661, %f660;
+ fma.rn.f32 %f663, %f661, %f795, %f659;
+ fma.rn.f32 %f665, %f661, %f796, %f663;
+ mul.f32 %f666, %f665, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f667, %f666;
+ add.f32 %f668, %f661, 0f00000000;
+ ex2.approx.f32 %f669, %f668;
+ mul.f32 %f670, %f667, %f669;
+ setp.lt.f32 %p85, %f659, 0fC2D20000;
+ selp.f32 %f671, 0f00000000, %f670, %p85;
+ setp.gt.f32 %p86, %f659, 0f42D20000;
+ selp.f32 %f870, 0f7F800000, %f671, %p86;
+ setp.eq.f32 %p87, %f870, 0f7F800000;
+ @%p87 bra BB0_87;
+
+ fma.rn.f32 %f870, %f870, %f155, %f870;
+
+BB0_87:
+ setp.lt.f32 %p88, %f126, 0f00000000;
+ and.pred %p3, %p88, %p57;
+ mov.b32 %r269, %f870;
+ xor.b32 %r270, %r269, -2147483648;
+ mov.b32 %f672, %r270;
+ selp.f32 %f872, %f672, %f870, %p3;
+ setp.eq.f32 %p90, %f126, 0f00000000;
+ @%p90 bra BB0_90;
+ bra.uni BB0_88;
+
+BB0_90:
+ add.f32 %f675, %f126, %f126;
+ selp.f32 %f872, %f675, 0f00000000, %p57;
+ bra.uni BB0_91;
+
+BB0_88:
+ setp.geu.f32 %p91, %f126, 0f00000000;
+ @%p91 bra BB0_91;
+
+ mov.f32 %f797, 0f3EE66666;
+ cvt.rzi.f32.f32 %f674, %f797;
+ setp.neu.f32 %p92, %f674, 0f3EE66666;
+ selp.f32 %f872, 0f7FFFFFFF, %f872, %p92;
+
+BB0_91:
+ abs.f32 %f817, %f126;
+ add.f32 %f676, %f817, 0f3EE66666;
+ mov.b32 %r271, %f676;
+ setp.lt.s32 %p94, %r271, 2139095040;
+ @%p94 bra BB0_96;
+
+ abs.f32 %f818, %f126;
+ setp.gtu.f32 %p95, %f818, 0f7F800000;
+ @%p95 bra BB0_95;
+ bra.uni BB0_93;
+
+BB0_95:
+ add.f32 %f872, %f126, 0f3EE66666;
+ bra.uni BB0_96;
+
+BB0_93:
+ abs.f32 %f819, %f126;
+ setp.neu.f32 %p96, %f819, 0f7F800000;
+ @%p96 bra BB0_96;
+
+ selp.f32 %f872, 0fFF800000, 0f7F800000, %p3;
+
+BB0_96:
+ mov.u32 %r352, 4;
+ setp.eq.f32 %p97, %f126, 0f3F800000;
+ selp.f32 %f677, 0f3F800000, %f872, %p97;
+ cvt.u64.u32 %rd89, %r4;
+ cvt.u64.u32 %rd88, %r3;
+ mov.u64 %rd92, image;
+ cvta.global.u64 %rd87, %rd92;
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd87, %r97, %r352, %rd88, %rd89, %rd27, %rd27);
+ // inline asm
+ cvt.sat.f32.f32 %f678, %f677;
+ mul.f32 %f679, %f678, 0f437FFD71;
+ cvt.rzi.u32.f32 %r274, %f679;
+ cvt.sat.f32.f32 %f680, %f153;
+ mul.f32 %f681, %f680, 0f437FFD71;
+ cvt.rzi.u32.f32 %r275, %f681;
+ cvt.sat.f32.f32 %f682, %f140;
+ mul.f32 %f683, %f682, 0f437FFD71;
+ cvt.rzi.u32.f32 %r276, %f683;
+ cvt.u16.u32 %rs41, %r274;
+ cvt.u16.u32 %rs42, %r276;
+ cvt.u16.u32 %rs43, %r275;
+ mov.u16 %rs44, 255;
+ st.v4.u8 [%rd86], {%rs41, %rs43, %rs42, %rs44};
+ ld.global.u32 %r378, [imageEnabled];
+
+BB0_97:
+ cvt.u64.u32 %rd18, %r3;
+ cvt.u64.u32 %rd19, %r4;
+ and.b32 %r277, %r378, 4;
+ setp.eq.s32 %p98, %r277, 0;
+ @%p98 bra BB0_101;
+
+ ld.global.u32 %r278, [additive];
+ setp.eq.s32 %p99, %r278, 0;
+ mov.f32 %f684, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f684;}
+
+ // inline asm
+ @%p99 bra BB0_100;
+
+ mov.u64 %rd105, image_HDR;
+ cvta.global.u64 %rd94, %rd105;
+ mov.u32 %r282, 8;
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd94, %r97, %r282, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ ld.v4.u16 {%rs52, %rs53, %rs54, %rs55}, [%rd93];
+ // inline asm
+ { cvt.f32.f16 %f685, %rs52;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f686, %rs53;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f687, %rs54;}
+
+ // inline asm
+ // inline asm
+ call (%rd99), _rt_buffer_get_64, (%rd94, %r97, %r282, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ add.f32 %f688, %f124, %f685;
+ add.f32 %f689, %f125, %f686;
+ add.f32 %f690, %f126, %f687;
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f690;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f689;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs49, %f688;}
+
+ // inline asm
+ st.v4.u16 [%rd99], {%rs49, %rs50, %rs51, %rs45};
+ bra.uni BB0_101;
+
+BB0_100:
+ mov.u64 %rd112, image_HDR;
+ cvta.global.u64 %rd107, %rd112;
+ mov.u32 %r284, 8;
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd107, %r97, %r284, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f126;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f125;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs56, %f124;}
+
+ // inline asm
+ st.v4.u16 [%rd106], {%rs56, %rs57, %rs58, %rs45};
+
+BB0_101:
+ mul.f32 %f166, %f120, 0f3F000000;
+ ld.global.f32 %f695, [skyColor];
+ mul.f32 %f167, %f166, %f695;
+ ld.global.f32 %f696, [skyColor+4];
+ mul.f32 %f168, %f166, %f696;
+ ld.global.f32 %f697, [skyColor+8];
+ mul.f32 %f169, %f166, %f697;
+ ld.global.u32 %r285, [additive];
+ setp.eq.s32 %p100, %r285, 0;
+ mov.f32 %f694, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f694;}
+
+ // inline asm
+ @%p100 bra BB0_103;
+
+ mov.u64 %rd125, image_RNM0;
+ cvta.global.u64 %rd114, %rd125;
+ mov.u32 %r289, 8;
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd114, %r97, %r289, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ ld.v4.u16 {%rs66, %rs67, %rs68, %rs69}, [%rd113];
+ // inline asm
+ { cvt.f32.f16 %f698, %rs66;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f699, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f700, %rs68;}
+
+ // inline asm
+ // inline asm
+ call (%rd119), _rt_buffer_get_64, (%rd114, %r97, %r289, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ add.f32 %f701, %f167, %f698;
+ add.f32 %f702, %f168, %f699;
+ add.f32 %f703, %f169, %f700;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f703;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f702;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs63, %f701;}
+
+ // inline asm
+ st.v4.u16 [%rd119], {%rs63, %rs64, %rs65, %rs59};
+ bra.uni BB0_104;
+
+BB0_103:
+ mov.u64 %rd132, image_RNM0;
+ cvta.global.u64 %rd127, %rd132;
+ mov.u32 %r291, 8;
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd127, %r97, %r291, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f169;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f168;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f167;}
+
+ // inline asm
+ st.v4.u16 [%rd126], {%rs70, %rs71, %rs72, %rs59};
+
+BB0_104:
+ mov.f32 %f708, 0f34000000;
+ max.f32 %f709, %f166, %f708;
+ mul.f32 %f710, %f121, 0f3F000000;
+ div.rn.f32 %f711, %f710, %f709;
+ fma.rn.f32 %f170, %f711, 0f3F000000, 0f3F000000;
+ mul.f32 %f712, %f122, 0f3F000000;
+ div.rn.f32 %f713, %f712, %f709;
+ fma.rn.f32 %f171, %f713, 0f3F000000, 0f3F000000;
+ mul.f32 %f714, %f123, 0f3F000000;
+ div.rn.f32 %f715, %f714, %f709;
+ fma.rn.f32 %f172, %f715, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r292, [additive];
+ setp.eq.s32 %p101, %r292, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f694;}
+
+ // inline asm
+ @%p101 bra BB0_106;
+
+ mov.u64 %rd145, image_RNM1;
+ cvta.global.u64 %rd134, %rd145;
+ mov.u32 %r296, 8;
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd134, %r97, %r296, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ ld.v4.u16 {%rs80, %rs81, %rs82, %rs83}, [%rd133];
+ // inline asm
+ { cvt.f32.f16 %f716, %rs80;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f717, %rs81;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f718, %rs82;}
+
+ // inline asm
+ // inline asm
+ call (%rd139), _rt_buffer_get_64, (%rd134, %r97, %r296, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ add.f32 %f719, %f170, %f716;
+ add.f32 %f720, %f170, %f717;
+ add.f32 %f721, %f170, %f718;
+ // inline asm
+ { cvt.rn.f16.f32 %rs79, %f721;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f720;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f719;}
+
+ // inline asm
+ st.v4.u16 [%rd139], {%rs77, %rs78, %rs79, %rs73};
+ bra.uni BB0_107;
+
+BB0_106:
+ mov.u64 %rd152, image_RNM1;
+ cvta.global.u64 %rd147, %rd152;
+ mov.u32 %r298, 8;
+ // inline asm
+ call (%rd146), _rt_buffer_get_64, (%rd147, %r97, %r298, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs84, %f170;}
+
+ // inline asm
+ st.v4.u16 [%rd146], {%rs84, %rs84, %rs84, %rs73};
+
+BB0_107:
+ ld.global.u32 %r299, [additive];
+ setp.eq.s32 %p102, %r299, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f694;}
+
+ // inline asm
+ @%p102 bra BB0_109;
+
+ mov.u64 %rd165, image_RNM2;
+ cvta.global.u64 %rd154, %rd165;
+ mov.u32 %r303, 8;
+ // inline asm
+ call (%rd153), _rt_buffer_get_64, (%rd154, %r97, %r303, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ ld.v4.u16 {%rs92, %rs93, %rs94, %rs95}, [%rd153];
+ // inline asm
+ { cvt.f32.f16 %f724, %rs92;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f725, %rs93;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f726, %rs94;}
+
+ // inline asm
+ // inline asm
+ call (%rd159), _rt_buffer_get_64, (%rd154, %r97, %r303, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ add.f32 %f727, %f171, %f724;
+ add.f32 %f728, %f171, %f725;
+ add.f32 %f729, %f171, %f726;
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f729;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f728;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs89, %f727;}
+
+ // inline asm
+ st.v4.u16 [%rd159], {%rs89, %rs90, %rs91, %rs85};
+ bra.uni BB0_110;
+
+BB0_109:
+ mov.u64 %rd172, image_RNM2;
+ cvta.global.u64 %rd167, %rd172;
+ mov.u32 %r305, 8;
+ // inline asm
+ call (%rd166), _rt_buffer_get_64, (%rd167, %r97, %r305, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs96, %f171;}
+
+ // inline asm
+ st.v4.u16 [%rd166], {%rs96, %rs96, %rs96, %rs85};
+
+BB0_110:
+ ld.global.u32 %r306, [additive];
+ setp.eq.s32 %p103, %r306, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f694;}
+
+ // inline asm
+ @%p103 bra BB0_112;
+
+ mov.u64 %rd185, image_RNM3;
+ cvta.global.u64 %rd174, %rd185;
+ mov.u32 %r310, 8;
+ // inline asm
+ call (%rd173), _rt_buffer_get_64, (%rd174, %r97, %r310, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ ld.v4.u16 {%rs104, %rs105, %rs106, %rs107}, [%rd173];
+ // inline asm
+ { cvt.f32.f16 %f732, %rs104;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f733, %rs105;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f734, %rs106;}
+
+ // inline asm
+ // inline asm
+ call (%rd179), _rt_buffer_get_64, (%rd174, %r97, %r310, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ add.f32 %f735, %f172, %f732;
+ add.f32 %f736, %f172, %f733;
+ add.f32 %f737, %f172, %f734;
+ // inline asm
+ { cvt.rn.f16.f32 %rs103, %f737;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs102, %f736;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs101, %f735;}
+
+ // inline asm
+ st.v4.u16 [%rd179], {%rs101, %rs102, %rs103, %rs97};
+ bra.uni BB0_131;
+
+BB0_112:
+ mov.u64 %rd192, image_RNM3;
+ cvta.global.u64 %rd187, %rd192;
+ mov.u32 %r312, 8;
+ // inline asm
+ call (%rd186), _rt_buffer_get_64, (%rd187, %r97, %r312, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs108, %f172;}
+
+ // inline asm
+ st.v4.u16 [%rd186], {%rs108, %rs108, %rs108, %rs97};
+
+BB0_131:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTangentSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTangentSH.ptx.meta
new file mode 100644
index 00000000..09a602a9
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTangentSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 087e7fdd5cf349544a70811a4f31f629
+timeCreated: 1540383433
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTex.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTex.ptx
new file mode 100644
index 00000000..d00c818d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTex.ptx
@@ -0,0 +1,1483 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .texref sky;
+.global .align 4 .b8 skyColor[12];
+.global .align 4 .u32 samples;
+.global .align 4 .u32 hemispherical;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8skyColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo13hemisphericalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8skyColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename13hemisphericalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8skyColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum13hemisphericalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8skyColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic13hemisphericalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8skyColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation13hemisphericalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<109>;
+ .reg .b16 %rs<42>;
+ .reg .f32 %f<662>;
+ .reg .b32 %r<326>;
+ .reg .b64 %rd<126>;
+
+
+ mov.u64 %rd125, __local_depot0;
+ cvta.local.u64 %SP, %rd125;
+ ld.global.v2.u32 {%r102, %r103}, [pixelID];
+ cvt.u64.u32 %rd22, %r102;
+ cvt.u64.u32 %rd23, %r103;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r100, 2;
+ mov.u32 %r101, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r100, %r101, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r1, [%rd20];
+ shr.u32 %r106, %r1, 16;
+ cvt.u16.u32 %rs1, %r106;
+ and.b16 %rs3, %rs1, 255;
+ cvt.u16.u32 %rs4, %r1;
+ or.b16 %rs5, %rs4, %rs3;
+ setp.eq.s16 %p4, %rs5, 0;
+ mov.f32 %f622, 0f00000000;
+ mov.f32 %f623, %f622;
+ mov.f32 %f624, %f622;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs6, [%rd20+1];
+ and.b16 %rs8, %rs4, 255;
+ cvt.rn.f32.u16 %f131, %rs8;
+ div.rn.f32 %f132, %f131, 0f437F0000;
+ fma.rn.f32 %f133, %f132, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f134, %rs6;
+ div.rn.f32 %f135, %f134, 0f437F0000;
+ fma.rn.f32 %f136, %f135, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f137, %rs3;
+ div.rn.f32 %f138, %f137, 0f437F0000;
+ fma.rn.f32 %f139, %f138, 0f40000000, 0fBF800000;
+ mul.f32 %f140, %f136, %f136;
+ fma.rn.f32 %f141, %f133, %f133, %f140;
+ fma.rn.f32 %f142, %f139, %f139, %f141;
+ sqrt.rn.f32 %f143, %f142;
+ rcp.rn.f32 %f144, %f143;
+ mul.f32 %f622, %f133, %f144;
+ mul.f32 %f623, %f136, %f144;
+ mul.f32 %f624, %f139, %f144;
+
+BB0_2:
+ ld.global.v2.u32 {%r107, %r108}, [pixelID];
+ ld.global.v2.u32 {%r110, %r111}, [tileInfo];
+ add.s32 %r2, %r107, %r110;
+ add.s32 %r3, %r108, %r111;
+ setp.eq.f32 %p5, %f623, 0f00000000;
+ setp.eq.f32 %p6, %f622, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f624, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_102;
+ bra.uni BB0_3;
+
+BB0_102:
+ ld.global.u32 %r325, [imageEnabled];
+ and.b32 %r279, %r325, 1;
+ setp.eq.b32 %p106, %r279, 1;
+ @!%p106 bra BB0_104;
+ bra.uni BB0_103;
+
+BB0_103:
+ cvt.u64.u32 %rd93, %r2;
+ cvt.u64.u32 %rd94, %r3;
+ mov.u64 %rd97, image;
+ cvta.global.u64 %rd92, %rd97;
+ mov.u64 %rd96, 0;
+ // inline asm
+ call (%rd91), _rt_buffer_get_64, (%rd92, %r100, %r101, %rd93, %rd94, %rd96, %rd96);
+ // inline asm
+ mov.u16 %rs28, 0;
+ st.v4.u8 [%rd91], {%rs28, %rs28, %rs28, %rs28};
+ ld.global.u32 %r325, [imageEnabled];
+
+BB0_104:
+ and.b32 %r282, %r325, 4;
+ setp.eq.s32 %p107, %r282, 0;
+ @%p107 bra BB0_108;
+
+ ld.global.u32 %r283, [additive];
+ setp.eq.s32 %p108, %r283, 0;
+ cvt.u64.u32 %rd18, %r2;
+ cvt.u64.u32 %rd19, %r3;
+ @%p108 bra BB0_107;
+
+ mov.u64 %rd110, image_HDR;
+ cvta.global.u64 %rd99, %rd110;
+ mov.u32 %r287, 8;
+ mov.u64 %rd109, 0;
+ // inline asm
+ call (%rd98), _rt_buffer_get_64, (%rd99, %r100, %r287, %rd18, %rd19, %rd109, %rd109);
+ // inline asm
+ ld.v4.u16 {%rs35, %rs36, %rs37, %rs38}, [%rd98];
+ // inline asm
+ { cvt.f32.f16 %f594, %rs35;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f595, %rs36;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f596, %rs37;}
+
+ // inline asm
+ // inline asm
+ call (%rd104), _rt_buffer_get_64, (%rd99, %r100, %r287, %rd18, %rd19, %rd109, %rd109);
+ // inline asm
+ add.f32 %f597, %f594, 0f00000000;
+ add.f32 %f598, %f595, 0f00000000;
+ add.f32 %f599, %f596, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f599;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f598;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f597;}
+
+ // inline asm
+ mov.u16 %rs39, 0;
+ st.v4.u16 [%rd104], {%rs32, %rs33, %rs34, %rs39};
+ bra.uni BB0_108;
+
+BB0_3:
+ ld.global.v2.u32 {%r119, %r120}, [pixelID];
+ cvt.u64.u32 %rd29, %r119;
+ cvt.u64.u32 %rd30, %r120;
+ mov.u64 %rd39, uvpos;
+ cvta.global.u64 %rd28, %rd39;
+ mov.u32 %r116, 12;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r100, %r116, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f148, [%rd27+8];
+ ld.f32 %f149, [%rd27+4];
+ ld.f32 %f150, [%rd27];
+ mul.f32 %f151, %f150, 0f3456BF95;
+ mul.f32 %f152, %f149, 0f3456BF95;
+ mul.f32 %f153, %f148, 0f3456BF95;
+ abs.f32 %f154, %f622;
+ div.rn.f32 %f155, %f151, %f154;
+ abs.f32 %f156, %f623;
+ div.rn.f32 %f157, %f152, %f156;
+ abs.f32 %f158, %f624;
+ div.rn.f32 %f159, %f153, %f158;
+ abs.f32 %f160, %f155;
+ abs.f32 %f161, %f157;
+ abs.f32 %f162, %f159;
+ mov.f32 %f163, 0f38D1B717;
+ max.f32 %f164, %f160, %f163;
+ max.f32 %f165, %f161, %f163;
+ max.f32 %f166, %f162, %f163;
+ fma.rn.f32 %f7, %f622, %f164, %f150;
+ fma.rn.f32 %f8, %f623, %f165, %f149;
+ fma.rn.f32 %f9, %f624, %f166, %f148;
+ ld.global.u32 %r4, [hemispherical];
+ setp.gt.f32 %p10, %f154, %f158;
+ neg.f32 %f167, %f623;
+ selp.f32 %f168, %f167, 0f00000000, %p10;
+ neg.f32 %f169, %f624;
+ selp.f32 %f170, %f622, %f169, %p10;
+ selp.f32 %f171, 0f00000000, %f623, %p10;
+ mul.f32 %f172, %f170, %f170;
+ fma.rn.f32 %f173, %f168, %f168, %f172;
+ fma.rn.f32 %f174, %f171, %f171, %f173;
+ sqrt.rn.f32 %f175, %f174;
+ rcp.rn.f32 %f176, %f175;
+ mul.f32 %f10, %f168, %f176;
+ mul.f32 %f11, %f170, %f176;
+ mul.f32 %f12, %f171, %f176;
+ ld.global.v2.u32 {%r123, %r124}, [pixelID];
+ cvt.u64.u32 %rd35, %r123;
+ cvt.u64.u32 %rd36, %r124;
+ mov.u64 %rd40, rnd_seeds;
+ cvta.global.u64 %rd34, %rd40;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r100, %r101, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ ld.global.u32 %r320, [samples];
+ mov.f32 %f646, 0f00000000;
+ setp.lt.s32 %p11, %r320, 1;
+ @%p11 bra BB0_4;
+
+ cvt.rn.f32.s32 %f180, %r320;
+ rcp.rn.f32 %f13, %f180;
+ ld.u32 %r322, [%rd33];
+ mul.f32 %f14, %f7, 0f3456BF95;
+ mul.f32 %f15, %f8, 0f3456BF95;
+ mul.f32 %f16, %f9, 0f3456BF95;
+ mul.f32 %f181, %f622, %f11;
+ mul.f32 %f182, %f623, %f10;
+ sub.f32 %f17, %f182, %f181;
+ mul.f32 %f183, %f624, %f10;
+ mul.f32 %f184, %f622, %f12;
+ sub.f32 %f18, %f184, %f183;
+ mul.f32 %f185, %f623, %f12;
+ mul.f32 %f186, %f624, %f11;
+ sub.f32 %f19, %f186, %f185;
+ mov.f32 %f646, 0f00000000;
+ mov.u32 %r295, 0;
+ abs.f32 %f256, %f14;
+ abs.f32 %f257, %f15;
+ max.f32 %f258, %f256, %f257;
+ abs.f32 %f259, %f16;
+ max.f32 %f260, %f258, %f259;
+ mov.f32 %f645, %f646;
+ mov.f32 %f644, %f646;
+
+BB0_6:
+ setp.lt.s32 %p12, %r320, 1;
+ @%p12 bra BB0_62;
+
+ cvt.rn.f32.s32 %f23, %r295;
+ mov.u32 %r298, 0;
+
+BB0_8:
+ mad.lo.s32 %r129, %r322, 1664525, 1013904223;
+ and.b32 %r130, %r129, 16777215;
+ cvt.rn.f32.u32 %f187, %r130;
+ fma.rn.f32 %f188, %f187, 0f33800000, %f23;
+ mul.f32 %f189, %f13, %f188;
+ mad.lo.s32 %r322, %r129, 1664525, 1013904223;
+ and.b32 %r131, %r322, 16777215;
+ cvt.rn.f32.u32 %f190, %r131;
+ cvt.rn.f32.s32 %f191, %r298;
+ fma.rn.f32 %f192, %f190, 0f33800000, %f191;
+ mul.f32 %f193, %f13, %f192;
+ sqrt.rn.f32 %f27, %f189;
+ mul.f32 %f637, %f193, 0f40C90FDB;
+ abs.f32 %f29, %f637;
+ setp.neu.f32 %p13, %f29, 0f7F800000;
+ mov.f32 %f631, %f637;
+ @%p13 bra BB0_10;
+
+ mov.f32 %f194, 0f00000000;
+ mul.rn.f32 %f631, %f637, %f194;
+
+BB0_10:
+ mul.f32 %f195, %f631, 0f3F22F983;
+ cvt.rni.s32.f32 %r309, %f195;
+ cvt.rn.f32.s32 %f196, %r309;
+ neg.f32 %f197, %f196;
+ mov.f32 %f198, 0f3FC90FDA;
+ fma.rn.f32 %f199, %f197, %f198, %f631;
+ mov.f32 %f200, 0f33A22168;
+ fma.rn.f32 %f201, %f197, %f200, %f199;
+ mov.f32 %f202, 0f27C234C5;
+ fma.rn.f32 %f632, %f197, %f202, %f201;
+ abs.f32 %f203, %f631;
+ setp.leu.f32 %p14, %f203, 0f47CE4780;
+ @%p14 bra BB0_21;
+
+ add.u64 %rd42, %SP, 0;
+ cvta.to.local.u64 %rd3, %rd42;
+ mov.b32 %r15, %f631;
+ shr.u32 %r16, %r15, 23;
+ shl.b32 %r134, %r15, 8;
+ or.b32 %r17, %r134, -2147483648;
+ mov.u32 %r300, 0;
+ mov.u64 %rd122, 0;
+ mov.u64 %rd121, %rd3;
+ mov.u32 %r301, %r300;
+
+BB0_12:
+ .pragma "nounroll";
+ shl.b64 %rd43, %rd122, 2;
+ mov.u64 %rd44, __cudart_i2opi_f;
+ add.s64 %rd45, %rd44, %rd43;
+ ld.const.u32 %r137, [%rd45];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r135, %r137, %r17, %r301;
+ madc.hi.u32 %r301, %r137, %r17, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd121], %r135;
+ add.s32 %r300, %r300, 1;
+ cvt.s64.s32 %rd122, %r300;
+ mul.wide.s32 %rd48, %r300, 4;
+ add.s64 %rd121, %rd3, %rd48;
+ setp.ne.s32 %p15, %r300, 6;
+ @%p15 bra BB0_12;
+
+ and.b32 %r140, %r16, 255;
+ add.s32 %r141, %r140, -128;
+ shr.u32 %r142, %r141, 5;
+ and.b32 %r22, %r15, -2147483648;
+ cvta.to.local.u64 %rd50, %rd42;
+ st.local.u32 [%rd50+24], %r301;
+ mov.u32 %r143, 6;
+ sub.s32 %r144, %r143, %r142;
+ mul.wide.s32 %rd51, %r144, 4;
+ add.s64 %rd8, %rd50, %rd51;
+ ld.local.u32 %r302, [%rd8];
+ ld.local.u32 %r303, [%rd8+-4];
+ and.b32 %r25, %r16, 31;
+ setp.eq.s32 %p16, %r25, 0;
+ @%p16 bra BB0_15;
+
+ mov.u32 %r145, 32;
+ sub.s32 %r146, %r145, %r25;
+ shr.u32 %r147, %r303, %r146;
+ shl.b32 %r148, %r302, %r25;
+ add.s32 %r302, %r147, %r148;
+ ld.local.u32 %r149, [%rd8+-8];
+ shr.u32 %r150, %r149, %r146;
+ shl.b32 %r151, %r303, %r25;
+ add.s32 %r303, %r150, %r151;
+
+BB0_15:
+ shr.u32 %r152, %r303, 30;
+ shl.b32 %r153, %r302, 2;
+ add.s32 %r304, %r152, %r153;
+ shl.b32 %r31, %r303, 2;
+ shr.u32 %r154, %r304, 31;
+ shr.u32 %r155, %r302, 30;
+ add.s32 %r32, %r154, %r155;
+ setp.eq.s32 %p17, %r154, 0;
+ @%p17 bra BB0_16;
+ bra.uni BB0_17;
+
+BB0_16:
+ mov.u32 %r305, %r22;
+ mov.u32 %r306, %r31;
+ bra.uni BB0_18;
+
+BB0_17:
+ not.b32 %r156, %r304;
+ neg.s32 %r306, %r31;
+ setp.eq.s32 %p18, %r31, 0;
+ selp.u32 %r157, 1, 0, %p18;
+ add.s32 %r304, %r157, %r156;
+ xor.b32 %r305, %r22, -2147483648;
+
+BB0_18:
+ clz.b32 %r308, %r304;
+ setp.eq.s32 %p19, %r308, 0;
+ shl.b32 %r158, %r304, %r308;
+ mov.u32 %r159, 32;
+ sub.s32 %r160, %r159, %r308;
+ shr.u32 %r161, %r306, %r160;
+ add.s32 %r162, %r161, %r158;
+ selp.b32 %r40, %r304, %r162, %p19;
+ mov.u32 %r163, -921707870;
+ mul.hi.u32 %r307, %r40, %r163;
+ setp.eq.s32 %p20, %r22, 0;
+ neg.s32 %r164, %r32;
+ selp.b32 %r309, %r32, %r164, %p20;
+ setp.lt.s32 %p21, %r307, 1;
+ @%p21 bra BB0_20;
+
+ mul.lo.s32 %r165, %r40, -921707870;
+ shr.u32 %r166, %r165, 31;
+ shl.b32 %r167, %r307, 1;
+ add.s32 %r307, %r166, %r167;
+ add.s32 %r308, %r308, 1;
+
+BB0_20:
+ mov.u32 %r168, 126;
+ sub.s32 %r169, %r168, %r308;
+ shl.b32 %r170, %r169, 23;
+ add.s32 %r171, %r307, 1;
+ shr.u32 %r172, %r171, 7;
+ add.s32 %r173, %r172, 1;
+ shr.u32 %r174, %r173, 1;
+ add.s32 %r175, %r174, %r170;
+ or.b32 %r176, %r175, %r305;
+ mov.b32 %f632, %r176;
+
+BB0_21:
+ mul.rn.f32 %f35, %f632, %f632;
+ add.s32 %r48, %r309, 1;
+ and.b32 %r49, %r48, 1;
+ setp.eq.s32 %p22, %r49, 0;
+ @%p22 bra BB0_23;
+ bra.uni BB0_22;
+
+BB0_23:
+ mov.f32 %f206, 0f3C08839E;
+ mov.f32 %f207, 0fB94CA1F9;
+ fma.rn.f32 %f633, %f207, %f35, %f206;
+ bra.uni BB0_24;
+
+BB0_22:
+ mov.f32 %f204, 0fBAB6061A;
+ mov.f32 %f205, 0f37CCF5CE;
+ fma.rn.f32 %f633, %f205, %f35, %f204;
+
+BB0_24:
+ @%p22 bra BB0_26;
+ bra.uni BB0_25;
+
+BB0_26:
+ mov.f32 %f211, 0fBE2AAAA3;
+ fma.rn.f32 %f212, %f633, %f35, %f211;
+ mov.f32 %f213, 0f00000000;
+ fma.rn.f32 %f634, %f212, %f35, %f213;
+ bra.uni BB0_27;
+
+BB0_25:
+ mov.f32 %f208, 0f3D2AAAA5;
+ fma.rn.f32 %f209, %f633, %f35, %f208;
+ mov.f32 %f210, 0fBF000000;
+ fma.rn.f32 %f634, %f209, %f35, %f210;
+
+BB0_27:
+ fma.rn.f32 %f635, %f634, %f632, %f632;
+ @%p22 bra BB0_29;
+
+ mov.f32 %f214, 0f3F800000;
+ fma.rn.f32 %f635, %f634, %f35, %f214;
+
+BB0_29:
+ and.b32 %r177, %r48, 2;
+ setp.eq.s32 %p25, %r177, 0;
+ @%p25 bra BB0_31;
+
+ mov.f32 %f215, 0f00000000;
+ mov.f32 %f216, 0fBF800000;
+ fma.rn.f32 %f635, %f635, %f216, %f215;
+
+BB0_31:
+ @%p13 bra BB0_33;
+
+ mov.f32 %f217, 0f00000000;
+ mul.rn.f32 %f637, %f637, %f217;
+
+BB0_33:
+ mul.f32 %f218, %f637, 0f3F22F983;
+ cvt.rni.s32.f32 %r319, %f218;
+ cvt.rn.f32.s32 %f219, %r319;
+ neg.f32 %f220, %f219;
+ fma.rn.f32 %f222, %f220, %f198, %f637;
+ fma.rn.f32 %f224, %f220, %f200, %f222;
+ fma.rn.f32 %f638, %f220, %f202, %f224;
+ abs.f32 %f226, %f637;
+ setp.leu.f32 %p27, %f226, 0f47CE4780;
+ @%p27 bra BB0_44;
+
+ add.u64 %rd53, %SP, 0;
+ cvta.to.local.u64 %rd9, %rd53;
+ mov.b32 %r51, %f637;
+ shr.u32 %r52, %r51, 23;
+ shl.b32 %r180, %r51, 8;
+ or.b32 %r53, %r180, -2147483648;
+ mov.u32 %r310, 0;
+ mov.u64 %rd123, %rd9;
+ mov.u64 %rd124, %rd25;
+ mov.u32 %r311, %r310;
+
+BB0_35:
+ .pragma "nounroll";
+ shl.b64 %rd54, %rd124, 2;
+ mov.u64 %rd55, __cudart_i2opi_f;
+ add.s64 %rd56, %rd55, %rd54;
+ ld.const.u32 %r183, [%rd56];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r181, %r183, %r53, %r311;
+ madc.hi.u32 %r311, %r183, %r53, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd123], %r181;
+ add.s32 %r310, %r310, 1;
+ cvt.s64.s32 %rd124, %r310;
+ mul.wide.s32 %rd57, %r310, 4;
+ add.s64 %rd123, %rd9, %rd57;
+ setp.ne.s32 %p28, %r310, 6;
+ @%p28 bra BB0_35;
+
+ and.b32 %r186, %r52, 255;
+ add.s32 %r187, %r186, -128;
+ shr.u32 %r188, %r187, 5;
+ and.b32 %r58, %r51, -2147483648;
+ cvta.to.local.u64 %rd59, %rd53;
+ st.local.u32 [%rd59+24], %r311;
+ mov.u32 %r189, 6;
+ sub.s32 %r190, %r189, %r188;
+ mul.wide.s32 %rd60, %r190, 4;
+ add.s64 %rd15, %rd59, %rd60;
+ ld.local.u32 %r312, [%rd15];
+ ld.local.u32 %r313, [%rd15+-4];
+ and.b32 %r61, %r52, 31;
+ setp.eq.s32 %p29, %r61, 0;
+ @%p29 bra BB0_38;
+
+ mov.u32 %r191, 32;
+ sub.s32 %r192, %r191, %r61;
+ shr.u32 %r193, %r313, %r192;
+ shl.b32 %r194, %r312, %r61;
+ add.s32 %r312, %r193, %r194;
+ ld.local.u32 %r195, [%rd15+-8];
+ shr.u32 %r196, %r195, %r192;
+ shl.b32 %r197, %r313, %r61;
+ add.s32 %r313, %r196, %r197;
+
+BB0_38:
+ shr.u32 %r198, %r313, 30;
+ shl.b32 %r199, %r312, 2;
+ add.s32 %r314, %r198, %r199;
+ shl.b32 %r67, %r313, 2;
+ shr.u32 %r200, %r314, 31;
+ shr.u32 %r201, %r312, 30;
+ add.s32 %r68, %r200, %r201;
+ setp.eq.s32 %p30, %r200, 0;
+ @%p30 bra BB0_39;
+ bra.uni BB0_40;
+
+BB0_39:
+ mov.u32 %r315, %r58;
+ mov.u32 %r316, %r67;
+ bra.uni BB0_41;
+
+BB0_40:
+ not.b32 %r202, %r314;
+ neg.s32 %r316, %r67;
+ setp.eq.s32 %p31, %r67, 0;
+ selp.u32 %r203, 1, 0, %p31;
+ add.s32 %r314, %r203, %r202;
+ xor.b32 %r315, %r58, -2147483648;
+
+BB0_41:
+ clz.b32 %r318, %r314;
+ setp.eq.s32 %p32, %r318, 0;
+ shl.b32 %r204, %r314, %r318;
+ mov.u32 %r205, 32;
+ sub.s32 %r206, %r205, %r318;
+ shr.u32 %r207, %r316, %r206;
+ add.s32 %r208, %r207, %r204;
+ selp.b32 %r76, %r314, %r208, %p32;
+ mov.u32 %r209, -921707870;
+ mul.hi.u32 %r317, %r76, %r209;
+ setp.eq.s32 %p33, %r58, 0;
+ neg.s32 %r210, %r68;
+ selp.b32 %r319, %r68, %r210, %p33;
+ setp.lt.s32 %p34, %r317, 1;
+ @%p34 bra BB0_43;
+
+ mul.lo.s32 %r211, %r76, -921707870;
+ shr.u32 %r212, %r211, 31;
+ shl.b32 %r213, %r317, 1;
+ add.s32 %r317, %r212, %r213;
+ add.s32 %r318, %r318, 1;
+
+BB0_43:
+ mov.u32 %r214, 126;
+ sub.s32 %r215, %r214, %r318;
+ shl.b32 %r216, %r215, 23;
+ add.s32 %r217, %r317, 1;
+ shr.u32 %r218, %r217, 7;
+ add.s32 %r219, %r218, 1;
+ shr.u32 %r220, %r219, 1;
+ add.s32 %r221, %r220, %r216;
+ or.b32 %r222, %r221, %r315;
+ mov.b32 %f638, %r222;
+
+BB0_44:
+ mul.rn.f32 %f52, %f638, %f638;
+ and.b32 %r84, %r319, 1;
+ setp.eq.s32 %p35, %r84, 0;
+ @%p35 bra BB0_46;
+ bra.uni BB0_45;
+
+BB0_46:
+ mov.f32 %f229, 0f3C08839E;
+ mov.f32 %f230, 0fB94CA1F9;
+ fma.rn.f32 %f639, %f230, %f52, %f229;
+ bra.uni BB0_47;
+
+BB0_45:
+ mov.f32 %f227, 0fBAB6061A;
+ mov.f32 %f228, 0f37CCF5CE;
+ fma.rn.f32 %f639, %f228, %f52, %f227;
+
+BB0_47:
+ @%p35 bra BB0_49;
+ bra.uni BB0_48;
+
+BB0_49:
+ mov.f32 %f234, 0fBE2AAAA3;
+ fma.rn.f32 %f235, %f639, %f52, %f234;
+ mov.f32 %f236, 0f00000000;
+ fma.rn.f32 %f640, %f235, %f52, %f236;
+ bra.uni BB0_50;
+
+BB0_48:
+ mov.f32 %f231, 0f3D2AAAA5;
+ fma.rn.f32 %f232, %f639, %f52, %f231;
+ mov.f32 %f233, 0fBF000000;
+ fma.rn.f32 %f640, %f232, %f52, %f233;
+
+BB0_50:
+ fma.rn.f32 %f641, %f640, %f638, %f638;
+ @%p35 bra BB0_52;
+
+ mov.f32 %f237, 0f3F800000;
+ fma.rn.f32 %f641, %f640, %f52, %f237;
+
+BB0_52:
+ and.b32 %r223, %r319, 2;
+ setp.eq.s32 %p38, %r223, 0;
+ @%p38 bra BB0_54;
+
+ mov.f32 %f238, 0f00000000;
+ mov.f32 %f239, 0fBF800000;
+ fma.rn.f32 %f641, %f641, %f239, %f238;
+
+BB0_54:
+ mul.f32 %f240, %f27, %f635;
+ mul.f32 %f241, %f240, %f240;
+ mov.f32 %f242, 0f3F800000;
+ sub.f32 %f243, %f242, %f241;
+ mul.f32 %f244, %f27, %f641;
+ mul.f32 %f245, %f244, %f244;
+ sub.f32 %f246, %f243, %f245;
+ mov.f32 %f247, 0f00000000;
+ max.f32 %f248, %f247, %f246;
+ sqrt.rn.f32 %f249, %f248;
+ mul.f32 %f250, %f10, %f244;
+ mul.f32 %f251, %f11, %f244;
+ mul.f32 %f252, %f12, %f244;
+ fma.rn.f32 %f253, %f19, %f240, %f250;
+ fma.rn.f32 %f254, %f18, %f240, %f251;
+ fma.rn.f32 %f255, %f17, %f240, %f252;
+ fma.rn.f32 %f64, %f622, %f249, %f253;
+ fma.rn.f32 %f65, %f623, %f249, %f254;
+ fma.rn.f32 %f66, %f624, %f249, %f255;
+ setp.gt.f32 %p39, %f65, 0f00000000;
+ setp.eq.s32 %p40, %r4, 0;
+ or.pred %p41, %p40, %p39;
+ @!%p41 bra BB0_61;
+ bra.uni BB0_55;
+
+BB0_55:
+ max.f32 %f67, %f260, %f163;
+ abs.f32 %f68, %f66;
+ setp.eq.f32 %p42, %f68, 0f00000000;
+ abs.f32 %f69, %f64;
+ setp.eq.f32 %p43, %f69, 0f00000000;
+ and.pred %p44, %p42, %p43;
+ mov.b32 %r85, %f66;
+ mov.b32 %r224, %f64;
+ and.b32 %r86, %r224, -2147483648;
+ @%p44 bra BB0_59;
+ bra.uni BB0_56;
+
+BB0_59:
+ shr.s32 %r231, %r85, 31;
+ and.b32 %r232, %r231, 1078530011;
+ or.b32 %r233, %r232, %r86;
+ mov.b32 %f643, %r233;
+ bra.uni BB0_60;
+
+BB0_56:
+ setp.eq.f32 %p45, %f68, 0f7F800000;
+ setp.eq.f32 %p46, %f69, 0f7F800000;
+ and.pred %p47, %p45, %p46;
+ @%p47 bra BB0_58;
+ bra.uni BB0_57;
+
+BB0_58:
+ shr.s32 %r227, %r85, 31;
+ and.b32 %r228, %r227, 13483017;
+ add.s32 %r229, %r228, 1061752795;
+ or.b32 %r230, %r229, %r86;
+ mov.b32 %f643, %r230;
+ bra.uni BB0_60;
+
+BB0_57:
+ max.f32 %f262, %f69, %f68;
+ min.f32 %f263, %f69, %f68;
+ div.rn.f32 %f264, %f263, %f262;
+ mul.rn.f32 %f265, %f264, %f264;
+ mov.f32 %f266, 0fC0B59883;
+ mov.f32 %f267, 0fBF52C7EA;
+ fma.rn.f32 %f268, %f265, %f267, %f266;
+ mov.f32 %f269, 0fC0D21907;
+ fma.rn.f32 %f270, %f268, %f265, %f269;
+ mul.f32 %f271, %f265, %f270;
+ mul.f32 %f272, %f264, %f271;
+ add.f32 %f273, %f265, 0f41355DC0;
+ mov.f32 %f274, 0f41E6BD60;
+ fma.rn.f32 %f275, %f273, %f265, %f274;
+ mov.f32 %f276, 0f419D92C8;
+ fma.rn.f32 %f277, %f275, %f265, %f276;
+ rcp.rn.f32 %f278, %f277;
+ fma.rn.f32 %f279, %f272, %f278, %f264;
+ mov.f32 %f280, 0f3FC90FDB;
+ sub.f32 %f281, %f280, %f279;
+ setp.gt.f32 %p48, %f69, %f68;
+ selp.f32 %f282, %f281, %f279, %p48;
+ mov.f32 %f283, 0f40490FDB;
+ sub.f32 %f284, %f283, %f282;
+ setp.lt.s32 %p49, %r85, 0;
+ selp.f32 %f285, %f284, %f282, %p49;
+ mov.b32 %r225, %f285;
+ or.b32 %r226, %r225, %r86;
+ mov.b32 %f286, %r226;
+ add.f32 %f287, %f68, %f69;
+ setp.gtu.f32 %p50, %f287, 0f7F800000;
+ selp.f32 %f643, %f287, %f286, %p50;
+
+BB0_60:
+ add.u64 %rd61, %SP, 28;
+ cvta.to.local.u64 %rd62, %rd61;
+ add.f32 %f296, %f643, 0f40490FDB;
+ mul.f32 %f297, %f296, 0f3E22F983;
+ neg.f32 %f298, %f65;
+ abs.f32 %f299, %f298;
+ sub.f32 %f301, %f242, %f299;
+ mul.f32 %f302, %f301, 0f3F000000;
+ sqrt.rn.f32 %f303, %f302;
+ setp.gt.f32 %p51, %f299, 0f3F11EB85;
+ selp.f32 %f304, %f303, %f299, %p51;
+ mul.f32 %f305, %f304, %f304;
+ mov.f32 %f306, 0f3C94D2E9;
+ mov.f32 %f307, 0f3D53F941;
+ fma.rn.f32 %f308, %f307, %f305, %f306;
+ mov.f32 %f309, 0f3D3F841F;
+ fma.rn.f32 %f310, %f308, %f305, %f309;
+ mov.f32 %f311, 0f3D994929;
+ fma.rn.f32 %f312, %f310, %f305, %f311;
+ mov.f32 %f313, 0f3E2AAB94;
+ fma.rn.f32 %f314, %f312, %f305, %f313;
+ mul.f32 %f315, %f305, %f314;
+ fma.rn.f32 %f316, %f315, %f304, %f304;
+ mov.f32 %f317, 0f3FC90FDB;
+ sub.f32 %f318, %f317, %f316;
+ add.f32 %f319, %f316, %f316;
+ selp.f32 %f320, %f319, %f318, %p51;
+ mov.f32 %f321, 0f40490FDB;
+ sub.f32 %f322, %f321, %f320;
+ setp.gt.f32 %p52, %f65, 0f80000000;
+ selp.f32 %f323, %f322, %f320, %p52;
+ fma.rn.f32 %f324, %f323, 0fBEA2F983, 0f3F800000;
+ tex.2d.v4.f32.f32 {%f325, %f326, %f327, %f328}, [sky, {%f297, %f324}];
+ st.local.f32 [%rd62], %f325;
+ st.local.f32 [%rd62+4], %f326;
+ st.local.f32 [%rd62+8], %f327;
+ ld.global.u32 %r234, [root];
+ mov.u32 %r235, 1;
+ mov.f32 %f295, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r234, %f7, %f8, %f9, %f64, %f65, %f66, %r235, %f67, %f295, %rd61, %r116);
+ // inline asm
+ ld.local.f32 %f329, [%rd62];
+ add.f32 %f644, %f644, %f329;
+ ld.local.f32 %f330, [%rd62+4];
+ add.f32 %f645, %f645, %f330;
+ ld.local.f32 %f331, [%rd62+8];
+ add.f32 %f646, %f646, %f331;
+ ld.global.u32 %r320, [samples];
+
+BB0_61:
+ add.s32 %r298, %r298, 1;
+ setp.lt.s32 %p53, %r298, %r320;
+ @%p53 bra BB0_8;
+
+BB0_62:
+ add.s32 %r295, %r295, 1;
+ setp.lt.s32 %p54, %r295, %r320;
+ @%p54 bra BB0_6;
+ bra.uni BB0_63;
+
+BB0_4:
+ mov.f32 %f645, %f646;
+ mov.f32 %f644, %f646;
+
+BB0_63:
+ mul.lo.s32 %r237, %r320, %r320;
+ cvt.rn.f32.s32 %f332, %r237;
+ rcp.rn.f32 %f333, %f332;
+ mul.f32 %f334, %f644, %f333;
+ mul.f32 %f335, %f645, %f333;
+ mul.f32 %f336, %f646, %f333;
+ ld.global.f32 %f337, [skyColor];
+ mul.f32 %f86, %f334, %f337;
+ ld.global.f32 %f338, [skyColor+4];
+ mul.f32 %f87, %f335, %f338;
+ ld.global.f32 %f339, [skyColor+8];
+ mul.f32 %f88, %f336, %f339;
+ ld.global.u32 %r324, [imageEnabled];
+ and.b32 %r238, %r324, 1;
+ setp.eq.b32 %p55, %r238, 1;
+ @!%p55 bra BB0_98;
+ bra.uni BB0_64;
+
+BB0_64:
+ mov.f32 %f342, 0f3E666666;
+ cvt.rzi.f32.f32 %f343, %f342;
+ fma.rn.f32 %f344, %f343, 0fC0000000, 0f3EE66666;
+ abs.f32 %f89, %f344;
+ abs.f32 %f90, %f86;
+ setp.lt.f32 %p56, %f90, 0f00800000;
+ mul.f32 %f345, %f90, 0f4B800000;
+ selp.f32 %f346, 0fC3170000, 0fC2FE0000, %p56;
+ selp.f32 %f347, %f345, %f90, %p56;
+ mov.b32 %r239, %f347;
+ and.b32 %r240, %r239, 8388607;
+ or.b32 %r241, %r240, 1065353216;
+ mov.b32 %f348, %r241;
+ shr.u32 %r242, %r239, 23;
+ cvt.rn.f32.u32 %f349, %r242;
+ add.f32 %f350, %f346, %f349;
+ setp.gt.f32 %p57, %f348, 0f3FB504F3;
+ mul.f32 %f351, %f348, 0f3F000000;
+ add.f32 %f352, %f350, 0f3F800000;
+ selp.f32 %f353, %f351, %f348, %p57;
+ selp.f32 %f354, %f352, %f350, %p57;
+ add.f32 %f355, %f353, 0fBF800000;
+ add.f32 %f341, %f353, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f340,%f341;
+ // inline asm
+ add.f32 %f356, %f355, %f355;
+ mul.f32 %f357, %f340, %f356;
+ mul.f32 %f358, %f357, %f357;
+ mov.f32 %f359, 0f3C4CAF63;
+ mov.f32 %f360, 0f3B18F0FE;
+ fma.rn.f32 %f361, %f360, %f358, %f359;
+ mov.f32 %f362, 0f3DAAAABD;
+ fma.rn.f32 %f363, %f361, %f358, %f362;
+ mul.rn.f32 %f364, %f363, %f358;
+ mul.rn.f32 %f365, %f364, %f357;
+ sub.f32 %f366, %f355, %f357;
+ neg.f32 %f367, %f357;
+ add.f32 %f368, %f366, %f366;
+ fma.rn.f32 %f369, %f367, %f355, %f368;
+ mul.rn.f32 %f370, %f340, %f369;
+ add.f32 %f371, %f365, %f357;
+ sub.f32 %f372, %f357, %f371;
+ add.f32 %f373, %f365, %f372;
+ add.f32 %f374, %f370, %f373;
+ add.f32 %f375, %f371, %f374;
+ sub.f32 %f376, %f371, %f375;
+ add.f32 %f377, %f374, %f376;
+ mov.f32 %f378, 0f3F317200;
+ mul.rn.f32 %f379, %f354, %f378;
+ mov.f32 %f380, 0f35BFBE8E;
+ mul.rn.f32 %f381, %f354, %f380;
+ add.f32 %f382, %f379, %f375;
+ sub.f32 %f383, %f379, %f382;
+ add.f32 %f384, %f375, %f383;
+ add.f32 %f385, %f377, %f384;
+ add.f32 %f386, %f381, %f385;
+ add.f32 %f387, %f382, %f386;
+ sub.f32 %f388, %f382, %f387;
+ add.f32 %f389, %f386, %f388;
+ mov.f32 %f390, 0f3EE66666;
+ mul.rn.f32 %f391, %f390, %f387;
+ neg.f32 %f392, %f391;
+ fma.rn.f32 %f393, %f390, %f387, %f392;
+ fma.rn.f32 %f394, %f390, %f389, %f393;
+ mov.f32 %f395, 0f00000000;
+ fma.rn.f32 %f396, %f395, %f387, %f394;
+ add.rn.f32 %f397, %f391, %f396;
+ neg.f32 %f398, %f397;
+ add.rn.f32 %f399, %f391, %f398;
+ add.rn.f32 %f400, %f399, %f396;
+ mov.b32 %r243, %f397;
+ setp.eq.s32 %p58, %r243, 1118925336;
+ add.s32 %r244, %r243, -1;
+ mov.b32 %f401, %r244;
+ add.f32 %f402, %f400, 0f37000000;
+ selp.f32 %f403, %f401, %f397, %p58;
+ selp.f32 %f91, %f402, %f400, %p58;
+ mul.f32 %f404, %f403, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f405, %f404;
+ mov.f32 %f406, 0fBF317200;
+ fma.rn.f32 %f407, %f405, %f406, %f403;
+ mov.f32 %f408, 0fB5BFBE8E;
+ fma.rn.f32 %f409, %f405, %f408, %f407;
+ mul.f32 %f410, %f409, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f411, %f410;
+ add.f32 %f412, %f405, 0f00000000;
+ ex2.approx.f32 %f413, %f412;
+ mul.f32 %f414, %f411, %f413;
+ setp.lt.f32 %p59, %f403, 0fC2D20000;
+ selp.f32 %f415, 0f00000000, %f414, %p59;
+ setp.gt.f32 %p60, %f403, 0f42D20000;
+ selp.f32 %f653, 0f7F800000, %f415, %p60;
+ setp.eq.f32 %p61, %f653, 0f7F800000;
+ @%p61 bra BB0_66;
+
+ fma.rn.f32 %f653, %f653, %f91, %f653;
+
+BB0_66:
+ setp.lt.f32 %p62, %f86, 0f00000000;
+ setp.eq.f32 %p63, %f89, 0f3F800000;
+ and.pred %p1, %p62, %p63;
+ mov.b32 %r245, %f653;
+ xor.b32 %r246, %r245, -2147483648;
+ mov.b32 %f416, %r246;
+ selp.f32 %f655, %f416, %f653, %p1;
+ setp.eq.f32 %p64, %f86, 0f00000000;
+ @%p64 bra BB0_69;
+ bra.uni BB0_67;
+
+BB0_69:
+ add.f32 %f419, %f86, %f86;
+ selp.f32 %f655, %f419, 0f00000000, %p63;
+ bra.uni BB0_70;
+
+BB0_107:
+ mov.u64 %rd117, image_HDR;
+ cvta.global.u64 %rd112, %rd117;
+ mov.u32 %r289, 8;
+ mov.u64 %rd116, 0;
+ // inline asm
+ call (%rd111), _rt_buffer_get_64, (%rd112, %r100, %r289, %rd18, %rd19, %rd116, %rd116);
+ // inline asm
+ mov.f32 %f600, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f600;}
+
+ // inline asm
+ mov.u16 %rs41, 0;
+ st.v4.u16 [%rd111], {%rs40, %rs40, %rs40, %rs41};
+ bra.uni BB0_108;
+
+BB0_67:
+ setp.geu.f32 %p65, %f86, 0f00000000;
+ @%p65 bra BB0_70;
+
+ mov.f32 %f621, 0f3EE66666;
+ cvt.rzi.f32.f32 %f418, %f621;
+ setp.neu.f32 %p66, %f418, 0f3EE66666;
+ selp.f32 %f655, 0f7FFFFFFF, %f655, %p66;
+
+BB0_70:
+ add.f32 %f420, %f90, 0f3EE66666;
+ mov.b32 %r247, %f420;
+ setp.lt.s32 %p68, %r247, 2139095040;
+ @%p68 bra BB0_75;
+
+ setp.gtu.f32 %p69, %f90, 0f7F800000;
+ @%p69 bra BB0_74;
+ bra.uni BB0_72;
+
+BB0_74:
+ add.f32 %f655, %f86, 0f3EE66666;
+ bra.uni BB0_75;
+
+BB0_72:
+ setp.neu.f32 %p70, %f90, 0f7F800000;
+ @%p70 bra BB0_75;
+
+ selp.f32 %f655, 0fFF800000, 0f7F800000, %p1;
+
+BB0_75:
+ mov.f32 %f609, 0fB5BFBE8E;
+ mov.f32 %f608, 0fBF317200;
+ mov.f32 %f607, 0f00000000;
+ mov.f32 %f606, 0f35BFBE8E;
+ mov.f32 %f605, 0f3F317200;
+ mov.f32 %f604, 0f3DAAAABD;
+ mov.f32 %f603, 0f3C4CAF63;
+ mov.f32 %f602, 0f3B18F0FE;
+ mov.f32 %f601, 0f3EE66666;
+ setp.eq.f32 %p71, %f86, 0f3F800000;
+ selp.f32 %f102, 0f3F800000, %f655, %p71;
+ abs.f32 %f103, %f87;
+ setp.lt.f32 %p72, %f103, 0f00800000;
+ mul.f32 %f423, %f103, 0f4B800000;
+ selp.f32 %f424, 0fC3170000, 0fC2FE0000, %p72;
+ selp.f32 %f425, %f423, %f103, %p72;
+ mov.b32 %r248, %f425;
+ and.b32 %r249, %r248, 8388607;
+ or.b32 %r250, %r249, 1065353216;
+ mov.b32 %f426, %r250;
+ shr.u32 %r251, %r248, 23;
+ cvt.rn.f32.u32 %f427, %r251;
+ add.f32 %f428, %f424, %f427;
+ setp.gt.f32 %p73, %f426, 0f3FB504F3;
+ mul.f32 %f429, %f426, 0f3F000000;
+ add.f32 %f430, %f428, 0f3F800000;
+ selp.f32 %f431, %f429, %f426, %p73;
+ selp.f32 %f432, %f430, %f428, %p73;
+ add.f32 %f433, %f431, 0fBF800000;
+ add.f32 %f422, %f431, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f421,%f422;
+ // inline asm
+ add.f32 %f434, %f433, %f433;
+ mul.f32 %f435, %f421, %f434;
+ mul.f32 %f436, %f435, %f435;
+ fma.rn.f32 %f439, %f602, %f436, %f603;
+ fma.rn.f32 %f441, %f439, %f436, %f604;
+ mul.rn.f32 %f442, %f441, %f436;
+ mul.rn.f32 %f443, %f442, %f435;
+ sub.f32 %f444, %f433, %f435;
+ neg.f32 %f445, %f435;
+ add.f32 %f446, %f444, %f444;
+ fma.rn.f32 %f447, %f445, %f433, %f446;
+ mul.rn.f32 %f448, %f421, %f447;
+ add.f32 %f449, %f443, %f435;
+ sub.f32 %f450, %f435, %f449;
+ add.f32 %f451, %f443, %f450;
+ add.f32 %f452, %f448, %f451;
+ add.f32 %f453, %f449, %f452;
+ sub.f32 %f454, %f449, %f453;
+ add.f32 %f455, %f452, %f454;
+ mul.rn.f32 %f457, %f432, %f605;
+ mul.rn.f32 %f459, %f432, %f606;
+ add.f32 %f460, %f457, %f453;
+ sub.f32 %f461, %f457, %f460;
+ add.f32 %f462, %f453, %f461;
+ add.f32 %f463, %f455, %f462;
+ add.f32 %f464, %f459, %f463;
+ add.f32 %f465, %f460, %f464;
+ sub.f32 %f466, %f460, %f465;
+ add.f32 %f467, %f464, %f466;
+ mul.rn.f32 %f469, %f601, %f465;
+ neg.f32 %f470, %f469;
+ fma.rn.f32 %f471, %f601, %f465, %f470;
+ fma.rn.f32 %f472, %f601, %f467, %f471;
+ fma.rn.f32 %f474, %f607, %f465, %f472;
+ add.rn.f32 %f475, %f469, %f474;
+ neg.f32 %f476, %f475;
+ add.rn.f32 %f477, %f469, %f476;
+ add.rn.f32 %f478, %f477, %f474;
+ mov.b32 %r252, %f475;
+ setp.eq.s32 %p74, %r252, 1118925336;
+ add.s32 %r253, %r252, -1;
+ mov.b32 %f479, %r253;
+ add.f32 %f480, %f478, 0f37000000;
+ selp.f32 %f481, %f479, %f475, %p74;
+ selp.f32 %f104, %f480, %f478, %p74;
+ mul.f32 %f482, %f481, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f483, %f482;
+ fma.rn.f32 %f485, %f483, %f608, %f481;
+ fma.rn.f32 %f487, %f483, %f609, %f485;
+ mul.f32 %f488, %f487, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f489, %f488;
+ add.f32 %f490, %f483, 0f00000000;
+ ex2.approx.f32 %f491, %f490;
+ mul.f32 %f492, %f489, %f491;
+ setp.lt.f32 %p75, %f481, 0fC2D20000;
+ selp.f32 %f493, 0f00000000, %f492, %p75;
+ setp.gt.f32 %p76, %f481, 0f42D20000;
+ selp.f32 %f656, 0f7F800000, %f493, %p76;
+ setp.eq.f32 %p77, %f656, 0f7F800000;
+ @%p77 bra BB0_77;
+
+ fma.rn.f32 %f656, %f656, %f104, %f656;
+
+BB0_77:
+ setp.lt.f32 %p78, %f87, 0f00000000;
+ and.pred %p2, %p78, %p63;
+ mov.b32 %r254, %f656;
+ xor.b32 %r255, %r254, -2147483648;
+ mov.b32 %f494, %r255;
+ selp.f32 %f658, %f494, %f656, %p2;
+ setp.eq.f32 %p80, %f87, 0f00000000;
+ @%p80 bra BB0_80;
+ bra.uni BB0_78;
+
+BB0_80:
+ add.f32 %f497, %f87, %f87;
+ selp.f32 %f658, %f497, 0f00000000, %p63;
+ bra.uni BB0_81;
+
+BB0_78:
+ setp.geu.f32 %p81, %f87, 0f00000000;
+ @%p81 bra BB0_81;
+
+ mov.f32 %f620, 0f3EE66666;
+ cvt.rzi.f32.f32 %f496, %f620;
+ setp.neu.f32 %p82, %f496, 0f3EE66666;
+ selp.f32 %f658, 0f7FFFFFFF, %f658, %p82;
+
+BB0_81:
+ add.f32 %f498, %f103, 0f3EE66666;
+ mov.b32 %r256, %f498;
+ setp.lt.s32 %p84, %r256, 2139095040;
+ @%p84 bra BB0_86;
+
+ setp.gtu.f32 %p85, %f103, 0f7F800000;
+ @%p85 bra BB0_85;
+ bra.uni BB0_83;
+
+BB0_85:
+ add.f32 %f658, %f87, 0f3EE66666;
+ bra.uni BB0_86;
+
+BB0_83:
+ setp.neu.f32 %p86, %f103, 0f7F800000;
+ @%p86 bra BB0_86;
+
+ selp.f32 %f658, 0fFF800000, 0f7F800000, %p2;
+
+BB0_86:
+ mov.f32 %f618, 0fB5BFBE8E;
+ mov.f32 %f617, 0fBF317200;
+ mov.f32 %f616, 0f00000000;
+ mov.f32 %f615, 0f35BFBE8E;
+ mov.f32 %f614, 0f3F317200;
+ mov.f32 %f613, 0f3DAAAABD;
+ mov.f32 %f612, 0f3C4CAF63;
+ mov.f32 %f611, 0f3B18F0FE;
+ mov.f32 %f610, 0f3EE66666;
+ setp.eq.f32 %p87, %f87, 0f3F800000;
+ selp.f32 %f115, 0f3F800000, %f658, %p87;
+ abs.f32 %f116, %f88;
+ setp.lt.f32 %p88, %f116, 0f00800000;
+ mul.f32 %f501, %f116, 0f4B800000;
+ selp.f32 %f502, 0fC3170000, 0fC2FE0000, %p88;
+ selp.f32 %f503, %f501, %f116, %p88;
+ mov.b32 %r257, %f503;
+ and.b32 %r258, %r257, 8388607;
+ or.b32 %r259, %r258, 1065353216;
+ mov.b32 %f504, %r259;
+ shr.u32 %r260, %r257, 23;
+ cvt.rn.f32.u32 %f505, %r260;
+ add.f32 %f506, %f502, %f505;
+ setp.gt.f32 %p89, %f504, 0f3FB504F3;
+ mul.f32 %f507, %f504, 0f3F000000;
+ add.f32 %f508, %f506, 0f3F800000;
+ selp.f32 %f509, %f507, %f504, %p89;
+ selp.f32 %f510, %f508, %f506, %p89;
+ add.f32 %f511, %f509, 0fBF800000;
+ add.f32 %f500, %f509, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f499,%f500;
+ // inline asm
+ add.f32 %f512, %f511, %f511;
+ mul.f32 %f513, %f499, %f512;
+ mul.f32 %f514, %f513, %f513;
+ fma.rn.f32 %f517, %f611, %f514, %f612;
+ fma.rn.f32 %f519, %f517, %f514, %f613;
+ mul.rn.f32 %f520, %f519, %f514;
+ mul.rn.f32 %f521, %f520, %f513;
+ sub.f32 %f522, %f511, %f513;
+ neg.f32 %f523, %f513;
+ add.f32 %f524, %f522, %f522;
+ fma.rn.f32 %f525, %f523, %f511, %f524;
+ mul.rn.f32 %f526, %f499, %f525;
+ add.f32 %f527, %f521, %f513;
+ sub.f32 %f528, %f513, %f527;
+ add.f32 %f529, %f521, %f528;
+ add.f32 %f530, %f526, %f529;
+ add.f32 %f531, %f527, %f530;
+ sub.f32 %f532, %f527, %f531;
+ add.f32 %f533, %f530, %f532;
+ mul.rn.f32 %f535, %f510, %f614;
+ mul.rn.f32 %f537, %f510, %f615;
+ add.f32 %f538, %f535, %f531;
+ sub.f32 %f539, %f535, %f538;
+ add.f32 %f540, %f531, %f539;
+ add.f32 %f541, %f533, %f540;
+ add.f32 %f542, %f537, %f541;
+ add.f32 %f543, %f538, %f542;
+ sub.f32 %f544, %f538, %f543;
+ add.f32 %f545, %f542, %f544;
+ mul.rn.f32 %f547, %f610, %f543;
+ neg.f32 %f548, %f547;
+ fma.rn.f32 %f549, %f610, %f543, %f548;
+ fma.rn.f32 %f550, %f610, %f545, %f549;
+ fma.rn.f32 %f552, %f616, %f543, %f550;
+ add.rn.f32 %f553, %f547, %f552;
+ neg.f32 %f554, %f553;
+ add.rn.f32 %f555, %f547, %f554;
+ add.rn.f32 %f556, %f555, %f552;
+ mov.b32 %r261, %f553;
+ setp.eq.s32 %p90, %r261, 1118925336;
+ add.s32 %r262, %r261, -1;
+ mov.b32 %f557, %r262;
+ add.f32 %f558, %f556, 0f37000000;
+ selp.f32 %f559, %f557, %f553, %p90;
+ selp.f32 %f117, %f558, %f556, %p90;
+ mul.f32 %f560, %f559, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f561, %f560;
+ fma.rn.f32 %f563, %f561, %f617, %f559;
+ fma.rn.f32 %f565, %f561, %f618, %f563;
+ mul.f32 %f566, %f565, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f567, %f566;
+ add.f32 %f568, %f561, 0f00000000;
+ ex2.approx.f32 %f569, %f568;
+ mul.f32 %f570, %f567, %f569;
+ setp.lt.f32 %p91, %f559, 0fC2D20000;
+ selp.f32 %f571, 0f00000000, %f570, %p91;
+ setp.gt.f32 %p92, %f559, 0f42D20000;
+ selp.f32 %f659, 0f7F800000, %f571, %p92;
+ setp.eq.f32 %p93, %f659, 0f7F800000;
+ @%p93 bra BB0_88;
+
+ fma.rn.f32 %f659, %f659, %f117, %f659;
+
+BB0_88:
+ setp.lt.f32 %p94, %f88, 0f00000000;
+ and.pred %p3, %p94, %p63;
+ mov.b32 %r263, %f659;
+ xor.b32 %r264, %r263, -2147483648;
+ mov.b32 %f572, %r264;
+ selp.f32 %f661, %f572, %f659, %p3;
+ setp.eq.f32 %p96, %f88, 0f00000000;
+ @%p96 bra BB0_91;
+ bra.uni BB0_89;
+
+BB0_91:
+ add.f32 %f575, %f88, %f88;
+ selp.f32 %f661, %f575, 0f00000000, %p63;
+ bra.uni BB0_92;
+
+BB0_89:
+ setp.geu.f32 %p97, %f88, 0f00000000;
+ @%p97 bra BB0_92;
+
+ mov.f32 %f619, 0f3EE66666;
+ cvt.rzi.f32.f32 %f574, %f619;
+ setp.neu.f32 %p98, %f574, 0f3EE66666;
+ selp.f32 %f661, 0f7FFFFFFF, %f661, %p98;
+
+BB0_92:
+ add.f32 %f576, %f116, 0f3EE66666;
+ mov.b32 %r265, %f576;
+ setp.lt.s32 %p100, %r265, 2139095040;
+ @%p100 bra BB0_97;
+
+ setp.gtu.f32 %p101, %f116, 0f7F800000;
+ @%p101 bra BB0_96;
+ bra.uni BB0_94;
+
+BB0_96:
+ add.f32 %f661, %f88, 0f3EE66666;
+ bra.uni BB0_97;
+
+BB0_94:
+ setp.neu.f32 %p102, %f116, 0f7F800000;
+ @%p102 bra BB0_97;
+
+ selp.f32 %f661, 0fFF800000, 0f7F800000, %p3;
+
+BB0_97:
+ mov.u32 %r291, 4;
+ mov.u64 %rd118, 0;
+ mov.u32 %r290, 2;
+ setp.eq.f32 %p103, %f88, 0f3F800000;
+ selp.f32 %f577, 0f3F800000, %f661, %p103;
+ cvt.u64.u32 %rd67, %r3;
+ cvt.u64.u32 %rd66, %r2;
+ mov.u64 %rd70, image;
+ cvta.global.u64 %rd65, %rd70;
+ // inline asm
+ call (%rd64), _rt_buffer_get_64, (%rd65, %r290, %r291, %rd66, %rd67, %rd118, %rd118);
+ // inline asm
+ cvt.sat.f32.f32 %f578, %f577;
+ mul.f32 %f579, %f578, 0f437FFD71;
+ cvt.rzi.u32.f32 %r268, %f579;
+ cvt.sat.f32.f32 %f580, %f115;
+ mul.f32 %f581, %f580, 0f437FFD71;
+ cvt.rzi.u32.f32 %r269, %f581;
+ cvt.sat.f32.f32 %f582, %f102;
+ mul.f32 %f583, %f582, 0f437FFD71;
+ cvt.rzi.u32.f32 %r270, %f583;
+ cvt.u16.u32 %rs10, %r268;
+ cvt.u16.u32 %rs11, %r270;
+ cvt.u16.u32 %rs12, %r269;
+ mov.u16 %rs13, 255;
+ st.v4.u8 [%rd64], {%rs10, %rs12, %rs11, %rs13};
+ ld.global.u32 %r324, [imageEnabled];
+
+BB0_98:
+ and.b32 %r271, %r324, 4;
+ setp.eq.s32 %p104, %r271, 0;
+ @%p104 bra BB0_108;
+
+ ld.global.u32 %r272, [additive];
+ setp.eq.s32 %p105, %r272, 0;
+ cvt.u64.u32 %rd16, %r2;
+ cvt.u64.u32 %rd17, %r3;
+ mov.f32 %f584, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs14, %f584;}
+
+ // inline asm
+ @%p105 bra BB0_101;
+
+ mov.u64 %rd119, 0;
+ mov.u32 %r292, 2;
+ mov.u64 %rd83, image_HDR;
+ cvta.global.u64 %rd72, %rd83;
+ mov.u32 %r276, 8;
+ // inline asm
+ call (%rd71), _rt_buffer_get_64, (%rd72, %r292, %r276, %rd16, %rd17, %rd119, %rd119);
+ // inline asm
+ ld.v4.u16 {%rs21, %rs22, %rs23, %rs24}, [%rd71];
+ // inline asm
+ { cvt.f32.f16 %f585, %rs21;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f586, %rs22;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f587, %rs23;}
+
+ // inline asm
+ // inline asm
+ call (%rd77), _rt_buffer_get_64, (%rd72, %r292, %r276, %rd16, %rd17, %rd119, %rd119);
+ // inline asm
+ add.f32 %f588, %f86, %f585;
+ add.f32 %f589, %f87, %f586;
+ add.f32 %f590, %f88, %f587;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f590;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs19, %f589;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs18, %f588;}
+
+ // inline asm
+ st.v4.u16 [%rd77], {%rs18, %rs19, %rs20, %rs14};
+ bra.uni BB0_108;
+
+BB0_101:
+ mov.u64 %rd120, 0;
+ mov.u32 %r293, 2;
+ mov.u64 %rd90, image_HDR;
+ cvta.global.u64 %rd85, %rd90;
+ mov.u32 %r278, 8;
+ // inline asm
+ call (%rd84), _rt_buffer_get_64, (%rd85, %r293, %r278, %rd16, %rd17, %rd120, %rd120);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f88;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f87;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f86;}
+
+ // inline asm
+ st.v4.u16 [%rd84], {%rs25, %rs26, %rs27, %rs14};
+
+BB0_108:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTex.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTex.ptx.meta
new file mode 100644
index 00000000..59248b67
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSkyTex.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 39bce8f7738731b429502ed36b911ffc
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSun.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSun.ptx
new file mode 100644
index 00000000..e10ae529
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSun.ptx
@@ -0,0 +1,1787 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_Dir[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .b8 directDir[12];
+.global .align 4 .b8 directColor[12];
+.global .align 4 .f32 shadowSpread;
+.global .align 4 .u32 samples;
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9directDirE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11directColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12shadowSpreadE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9directDirE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11directColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12shadowSpreadE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9directDirE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11directColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12shadowSpreadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9directDirE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11directColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12shadowSpreadE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9directDirE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11directColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12shadowSpreadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<129>;
+ .reg .b16 %rs<76>;
+ .reg .f32 %f<729>;
+ .reg .b32 %r<371>;
+ .reg .b64 %rd<187>;
+
+
+ mov.u64 %rd186, __local_depot0;
+ cvta.local.u64 %SP, %rd186;
+ ld.global.v2.u32 {%r106, %r107}, [pixelID];
+ cvt.u64.u32 %rd24, %r106;
+ cvt.u64.u32 %rd25, %r107;
+ mov.u64 %rd28, uvnormal;
+ cvta.global.u64 %rd23, %rd28;
+ mov.u32 %r104, 2;
+ mov.u32 %r105, 4;
+ mov.u64 %rd27, 0;
+ // inline asm
+ call (%rd22), _rt_buffer_get_64, (%rd23, %r104, %r105, %rd24, %rd25, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r1, [%rd22];
+ shr.u32 %r110, %r1, 16;
+ cvt.u16.u32 %rs1, %r110;
+ and.b16 %rs4, %rs1, 255;
+ cvt.u16.u32 %rs5, %r1;
+ or.b16 %rs6, %rs5, %rs4;
+ setp.eq.s16 %p5, %rs6, 0;
+ mov.f32 %f697, 0f00000000;
+ mov.f32 %f698, %f697;
+ mov.f32 %f699, %f697;
+ @%p5 bra BB0_2;
+
+ ld.u8 %rs7, [%rd22+1];
+ and.b16 %rs9, %rs5, 255;
+ cvt.rn.f32.u16 %f128, %rs9;
+ div.rn.f32 %f129, %f128, 0f437F0000;
+ fma.rn.f32 %f130, %f129, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f131, %rs7;
+ div.rn.f32 %f132, %f131, 0f437F0000;
+ fma.rn.f32 %f133, %f132, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f134, %rs4;
+ div.rn.f32 %f135, %f134, 0f437F0000;
+ fma.rn.f32 %f136, %f135, 0f40000000, 0fBF800000;
+ mul.f32 %f137, %f133, %f133;
+ fma.rn.f32 %f138, %f130, %f130, %f137;
+ fma.rn.f32 %f139, %f136, %f136, %f138;
+ sqrt.rn.f32 %f140, %f139;
+ rcp.rn.f32 %f141, %f140;
+ mul.f32 %f697, %f130, %f141;
+ mul.f32 %f698, %f133, %f141;
+ mul.f32 %f699, %f136, %f141;
+
+BB0_2:
+ ld.global.v2.u32 {%r111, %r112}, [pixelID];
+ ld.global.v2.u32 {%r114, %r115}, [tileInfo];
+ add.s32 %r2, %r111, %r114;
+ add.s32 %r3, %r112, %r115;
+ setp.eq.f32 %p6, %f698, 0f00000000;
+ setp.eq.f32 %p7, %f697, 0f00000000;
+ and.pred %p8, %p7, %p6;
+ setp.eq.f32 %p9, %f699, 0f00000000;
+ and.pred %p10, %p8, %p9;
+ @%p10 bra BB0_122;
+ bra.uni BB0_3;
+
+BB0_122:
+ ld.global.u32 %r370, [imageEnabled];
+ and.b32 %r314, %r370, 1;
+ setp.eq.b32 %p124, %r314, 1;
+ @!%p124 bra BB0_124;
+ bra.uni BB0_123;
+
+BB0_123:
+ cvt.u64.u32 %rd139, %r2;
+ cvt.u64.u32 %rd140, %r3;
+ mov.u64 %rd143, image;
+ cvta.global.u64 %rd138, %rd143;
+ // inline asm
+ call (%rd137), _rt_buffer_get_64, (%rd138, %r104, %r105, %rd139, %rd140, %rd27, %rd27);
+ // inline asm
+ mov.u16 %rs57, 0;
+ st.v4.u8 [%rd137], {%rs57, %rs57, %rs57, %rs57};
+ ld.global.u32 %r370, [imageEnabled];
+
+BB0_124:
+ and.b32 %r317, %r370, 8;
+ setp.eq.s32 %p125, %r317, 0;
+ @%p125 bra BB0_126;
+
+ cvt.u64.u32 %rd146, %r2;
+ cvt.u64.u32 %rd147, %r3;
+ mov.u64 %rd150, image_Mask;
+ cvta.global.u64 %rd145, %rd150;
+ // inline asm
+ call (%rd144), _rt_buffer_get_64, (%rd145, %r104, %r104, %rd146, %rd147, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f661, 0f00000000;
+ cvt.rzi.u32.f32 %r320, %f661;
+ cvt.u16.u32 %rs58, %r320;
+ mov.u16 %rs59, 0;
+ st.v2.u8 [%rd144], {%rs58, %rs59};
+ ld.global.u32 %r370, [imageEnabled];
+
+BB0_126:
+ and.b32 %r321, %r370, 4;
+ setp.eq.s32 %p126, %r321, 0;
+ @%p126 bra BB0_130;
+
+ ld.global.u32 %r322, [additive];
+ setp.eq.s32 %p127, %r322, 0;
+ cvt.u64.u32 %rd20, %r2;
+ cvt.u64.u32 %rd21, %r3;
+ @%p127 bra BB0_129;
+
+ mov.u64 %rd163, image_HDR;
+ cvta.global.u64 %rd152, %rd163;
+ mov.u32 %r326, 8;
+ // inline asm
+ call (%rd151), _rt_buffer_get_64, (%rd152, %r104, %r326, %rd20, %rd21, %rd27, %rd27);
+ // inline asm
+ ld.v4.u16 {%rs66, %rs67, %rs68, %rs69}, [%rd151];
+ // inline asm
+ { cvt.f32.f16 %f662, %rs66;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f663, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f664, %rs68;}
+
+ // inline asm
+ // inline asm
+ call (%rd157), _rt_buffer_get_64, (%rd152, %r104, %r326, %rd20, %rd21, %rd27, %rd27);
+ // inline asm
+ add.f32 %f665, %f662, 0f00000000;
+ add.f32 %f666, %f663, 0f00000000;
+ add.f32 %f667, %f664, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f667;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f666;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs63, %f665;}
+
+ // inline asm
+ mov.u16 %rs70, 0;
+ st.v4.u16 [%rd157], {%rs63, %rs64, %rs65, %rs70};
+ bra.uni BB0_130;
+
+BB0_3:
+ ld.global.f32 %f9, [directDir+8];
+ ld.global.f32 %f8, [directDir+4];
+ ld.global.f32 %f7, [directDir];
+ mul.f32 %f142, %f697, %f7;
+ mul.f32 %f143, %f698, %f8;
+ neg.f32 %f144, %f143;
+ sub.f32 %f145, %f144, %f142;
+ mul.f32 %f146, %f699, %f9;
+ sub.f32 %f10, %f145, %f146;
+ ld.global.u32 %r119, [ignoreNormal];
+ setp.eq.s32 %p11, %r119, 0;
+ setp.le.f32 %p12, %f10, 0f00000000;
+ and.pred %p13, %p11, %p12;
+ ld.global.u32 %r368, [imageEnabled];
+ and.b32 %r120, %r368, 32;
+ setp.eq.s32 %p14, %r120, 0;
+ and.pred %p15, %p13, %p14;
+ @%p15 bra BB0_112;
+ bra.uni BB0_4;
+
+BB0_112:
+ and.b32 %r297, %r368, 1;
+ setp.eq.b32 %p119, %r297, 1;
+ @!%p119 bra BB0_114;
+ bra.uni BB0_113;
+
+BB0_113:
+ cvt.u64.u32 %rd98, %r2;
+ cvt.u64.u32 %rd99, %r3;
+ mov.u64 %rd102, image;
+ cvta.global.u64 %rd97, %rd102;
+ // inline asm
+ call (%rd96), _rt_buffer_get_64, (%rd97, %r104, %r105, %rd98, %rd99, %rd27, %rd27);
+ // inline asm
+ mov.u16 %rs37, 255;
+ mov.u16 %rs38, 0;
+ st.v4.u8 [%rd96], {%rs38, %rs38, %rs38, %rs37};
+ ld.global.u32 %r368, [imageEnabled];
+
+BB0_114:
+ and.b32 %r300, %r368, 8;
+ setp.eq.s32 %p120, %r300, 0;
+ @%p120 bra BB0_116;
+
+ cvt.u64.u32 %rd105, %r2;
+ cvt.u64.u32 %rd106, %r3;
+ mov.u64 %rd109, image_Mask;
+ cvta.global.u64 %rd104, %rd109;
+ // inline asm
+ call (%rd103), _rt_buffer_get_64, (%rd104, %r104, %r104, %rd105, %rd106, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f650, 0f00000000;
+ cvt.rzi.u32.f32 %r303, %f650;
+ cvt.u16.u32 %rs39, %r303;
+ mov.u16 %rs40, 255;
+ st.v2.u8 [%rd103], {%rs39, %rs40};
+ ld.global.u32 %r368, [imageEnabled];
+
+BB0_116:
+ and.b32 %r304, %r368, 4;
+ setp.eq.s32 %p121, %r304, 0;
+ @%p121 bra BB0_120;
+
+ ld.global.u32 %r305, [additive];
+ setp.eq.s32 %p122, %r305, 0;
+ cvt.u64.u32 %rd18, %r2;
+ cvt.u64.u32 %rd19, %r3;
+ mov.f32 %f651, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs41, %f651;}
+
+ // inline asm
+ @%p122 bra BB0_119;
+
+ mov.u64 %rd122, image_HDR;
+ cvta.global.u64 %rd111, %rd122;
+ mov.u32 %r309, 8;
+ // inline asm
+ call (%rd110), _rt_buffer_get_64, (%rd111, %r104, %r309, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ ld.v4.u16 {%rs48, %rs49, %rs50, %rs51}, [%rd110];
+ // inline asm
+ { cvt.f32.f16 %f652, %rs48;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f653, %rs49;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f654, %rs50;}
+
+ // inline asm
+ // inline asm
+ call (%rd116), _rt_buffer_get_64, (%rd111, %r104, %r309, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ add.f32 %f655, %f652, 0f00000000;
+ add.f32 %f656, %f653, 0f00000000;
+ add.f32 %f657, %f654, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f657;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f656;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f655;}
+
+ // inline asm
+ st.v4.u16 [%rd116], {%rs45, %rs46, %rs47, %rs41};
+ bra.uni BB0_120;
+
+BB0_4:
+ ld.global.v2.u32 {%r125, %r126}, [pixelID];
+ cvt.u64.u32 %rd31, %r125;
+ cvt.u64.u32 %rd32, %r126;
+ mov.u64 %rd41, uvpos;
+ cvta.global.u64 %rd30, %rd41;
+ mov.u32 %r122, 12;
+ // inline asm
+ call (%rd29), _rt_buffer_get_64, (%rd30, %r104, %r122, %rd31, %rd32, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f148, [%rd29+8];
+ ld.f32 %f149, [%rd29+4];
+ ld.f32 %f150, [%rd29];
+ mul.f32 %f151, %f150, 0f3456BF95;
+ mul.f32 %f152, %f149, 0f3456BF95;
+ mul.f32 %f153, %f148, 0f3456BF95;
+ abs.f32 %f154, %f697;
+ div.rn.f32 %f155, %f151, %f154;
+ abs.f32 %f156, %f698;
+ div.rn.f32 %f157, %f152, %f156;
+ abs.f32 %f158, %f699;
+ div.rn.f32 %f159, %f153, %f158;
+ abs.f32 %f160, %f155;
+ abs.f32 %f161, %f157;
+ abs.f32 %f162, %f159;
+ mov.f32 %f163, 0f38D1B717;
+ max.f32 %f164, %f160, %f163;
+ max.f32 %f165, %f161, %f163;
+ max.f32 %f166, %f162, %f163;
+ fma.rn.f32 %f11, %f697, %f164, %f150;
+ fma.rn.f32 %f12, %f698, %f165, %f149;
+ fma.rn.f32 %f13, %f699, %f166, %f148;
+ abs.f32 %f167, %f9;
+ abs.f32 %f168, %f7;
+ setp.gt.f32 %p16, %f168, %f167;
+ neg.f32 %f169, %f8;
+ selp.f32 %f170, %f169, 0f00000000, %p16;
+ neg.f32 %f171, %f9;
+ selp.f32 %f172, %f7, %f171, %p16;
+ selp.f32 %f173, 0f00000000, %f8, %p16;
+ mul.f32 %f174, %f172, %f172;
+ fma.rn.f32 %f175, %f170, %f170, %f174;
+ fma.rn.f32 %f176, %f173, %f173, %f175;
+ sqrt.rn.f32 %f177, %f176;
+ rcp.rn.f32 %f178, %f177;
+ mul.f32 %f14, %f170, %f178;
+ mul.f32 %f15, %f172, %f178;
+ mul.f32 %f16, %f173, %f178;
+ ld.global.v2.u32 {%r129, %r130}, [pixelID];
+ cvt.u64.u32 %rd37, %r129;
+ cvt.u64.u32 %rd38, %r130;
+ mov.u64 %rd42, rnd_seeds;
+ cvta.global.u64 %rd36, %rd42;
+ // inline asm
+ call (%rd35), _rt_buffer_get_64, (%rd36, %r104, %r105, %rd37, %rd38, %rd27, %rd27);
+ // inline asm
+ ld.global.u32 %r337, [samples];
+ mov.f32 %f714, 0f00000000;
+ setp.lt.s32 %p17, %r337, 1;
+ @%p17 bra BB0_56;
+
+ cvt.rn.f32.s32 %f180, %r337;
+ rcp.rn.f32 %f17, %f180;
+ ld.u32 %r363, [%rd35];
+ mul.f32 %f18, %f11, 0f3456BF95;
+ mul.f32 %f19, %f12, 0f3456BF95;
+ mul.f32 %f20, %f13, 0f3456BF95;
+ mul.f32 %f181, %f7, %f15;
+ mul.f32 %f182, %f8, %f14;
+ sub.f32 %f21, %f182, %f181;
+ mul.f32 %f183, %f9, %f14;
+ mul.f32 %f184, %f7, %f16;
+ sub.f32 %f22, %f184, %f183;
+ mul.f32 %f185, %f8, %f16;
+ mul.f32 %f186, %f9, %f15;
+ sub.f32 %f23, %f186, %f185;
+ mov.f32 %f714, 0f00000000;
+ mov.u32 %r338, 0;
+ abs.f32 %f187, %f19;
+ abs.f32 %f188, %f18;
+ max.f32 %f189, %f188, %f187;
+ abs.f32 %f190, %f20;
+ max.f32 %f191, %f189, %f190;
+
+BB0_6:
+ setp.lt.s32 %p18, %r337, 1;
+ @%p18 bra BB0_55;
+
+ cvt.rn.f32.s32 %f25, %r338;
+ max.f32 %f26, %f191, %f163;
+ mov.u32 %r340, 0;
+
+BB0_8:
+ mad.lo.s32 %r135, %r363, 1664525, 1013904223;
+ and.b32 %r136, %r135, 16777215;
+ cvt.rn.f32.u32 %f193, %r136;
+ fma.rn.f32 %f194, %f193, 0f33800000, %f25;
+ mul.f32 %f195, %f17, %f194;
+ mad.lo.s32 %r363, %r135, 1664525, 1013904223;
+ and.b32 %r137, %r363, 16777215;
+ cvt.rn.f32.u32 %f196, %r137;
+ cvt.rn.f32.s32 %f197, %r340;
+ fma.rn.f32 %f198, %f196, 0f33800000, %f197;
+ mul.f32 %f199, %f17, %f198;
+ sqrt.rn.f32 %f28, %f195;
+ mul.f32 %f708, %f199, 0f40C90FDB;
+ abs.f32 %f30, %f708;
+ setp.neu.f32 %p19, %f30, 0f7F800000;
+ mov.f32 %f702, %f708;
+ @%p19 bra BB0_10;
+
+ mov.f32 %f200, 0f00000000;
+ mul.rn.f32 %f702, %f708, %f200;
+
+BB0_10:
+ mul.f32 %f201, %f702, 0f3F22F983;
+ cvt.rni.s32.f32 %r351, %f201;
+ cvt.rn.f32.s32 %f202, %r351;
+ neg.f32 %f203, %f202;
+ mov.f32 %f204, 0f3FC90FDA;
+ fma.rn.f32 %f205, %f203, %f204, %f702;
+ mov.f32 %f206, 0f33A22168;
+ fma.rn.f32 %f207, %f203, %f206, %f205;
+ mov.f32 %f208, 0f27C234C5;
+ fma.rn.f32 %f703, %f203, %f208, %f207;
+ abs.f32 %f209, %f702;
+ setp.leu.f32 %p20, %f209, 0f47CE4780;
+ @%p20 bra BB0_21;
+
+ mov.b32 %r14, %f702;
+ shr.u32 %r15, %r14, 23;
+ shl.b32 %r140, %r14, 8;
+ or.b32 %r16, %r140, -2147483648;
+ add.u64 %rd44, %SP, 0;
+ cvta.to.local.u64 %rd183, %rd44;
+ mov.u32 %r343, 0;
+ mov.u64 %rd182, __cudart_i2opi_f;
+ mov.u32 %r342, -6;
+
+BB0_12:
+ .pragma "nounroll";
+ ld.const.u32 %r143, [%rd182];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r141, %r143, %r16, %r343;
+ madc.hi.u32 %r343, %r143, %r16, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd183], %r141;
+ add.s64 %rd183, %rd183, 4;
+ add.s64 %rd182, %rd182, 4;
+ add.s32 %r342, %r342, 1;
+ setp.ne.s32 %p21, %r342, 0;
+ @%p21 bra BB0_12;
+
+ and.b32 %r146, %r15, 255;
+ add.s32 %r147, %r146, -128;
+ shr.u32 %r148, %r147, 5;
+ and.b32 %r21, %r14, -2147483648;
+ cvta.to.local.u64 %rd46, %rd44;
+ st.local.u32 [%rd46+24], %r343;
+ mov.u32 %r149, 6;
+ sub.s32 %r150, %r149, %r148;
+ mul.wide.s32 %rd47, %r150, 4;
+ add.s64 %rd8, %rd46, %rd47;
+ ld.local.u32 %r344, [%rd8];
+ ld.local.u32 %r345, [%rd8+-4];
+ and.b32 %r24, %r15, 31;
+ setp.eq.s32 %p22, %r24, 0;
+ @%p22 bra BB0_15;
+
+ mov.u32 %r151, 32;
+ sub.s32 %r152, %r151, %r24;
+ shr.u32 %r153, %r345, %r152;
+ shl.b32 %r154, %r344, %r24;
+ add.s32 %r344, %r153, %r154;
+ ld.local.u32 %r155, [%rd8+-8];
+ shr.u32 %r156, %r155, %r152;
+ shl.b32 %r157, %r345, %r24;
+ add.s32 %r345, %r156, %r157;
+
+BB0_15:
+ shr.u32 %r158, %r345, 30;
+ shl.b32 %r159, %r344, 2;
+ add.s32 %r346, %r158, %r159;
+ shl.b32 %r30, %r345, 2;
+ shr.u32 %r160, %r346, 31;
+ shr.u32 %r161, %r344, 30;
+ add.s32 %r31, %r160, %r161;
+ setp.eq.s32 %p23, %r160, 0;
+ @%p23 bra BB0_16;
+ bra.uni BB0_17;
+
+BB0_16:
+ mov.u32 %r347, %r21;
+ mov.u32 %r348, %r30;
+ bra.uni BB0_18;
+
+BB0_17:
+ not.b32 %r162, %r346;
+ neg.s32 %r348, %r30;
+ setp.eq.s32 %p24, %r30, 0;
+ selp.u32 %r163, 1, 0, %p24;
+ add.s32 %r346, %r163, %r162;
+ xor.b32 %r347, %r21, -2147483648;
+
+BB0_18:
+ clz.b32 %r350, %r346;
+ setp.eq.s32 %p25, %r350, 0;
+ shl.b32 %r164, %r346, %r350;
+ mov.u32 %r165, 32;
+ sub.s32 %r166, %r165, %r350;
+ shr.u32 %r167, %r348, %r166;
+ add.s32 %r168, %r167, %r164;
+ selp.b32 %r39, %r346, %r168, %p25;
+ mov.u32 %r169, -921707870;
+ mul.hi.u32 %r349, %r39, %r169;
+ setp.eq.s32 %p26, %r21, 0;
+ neg.s32 %r170, %r31;
+ selp.b32 %r351, %r31, %r170, %p26;
+ setp.lt.s32 %p27, %r349, 1;
+ @%p27 bra BB0_20;
+
+ mul.lo.s32 %r171, %r39, -921707870;
+ shr.u32 %r172, %r171, 31;
+ shl.b32 %r173, %r349, 1;
+ add.s32 %r349, %r172, %r173;
+ add.s32 %r350, %r350, 1;
+
+BB0_20:
+ mov.u32 %r174, 126;
+ sub.s32 %r175, %r174, %r350;
+ shl.b32 %r176, %r175, 23;
+ add.s32 %r177, %r349, 1;
+ shr.u32 %r178, %r177, 7;
+ add.s32 %r179, %r178, 1;
+ shr.u32 %r180, %r179, 1;
+ add.s32 %r181, %r180, %r176;
+ or.b32 %r182, %r181, %r347;
+ mov.b32 %f703, %r182;
+
+BB0_21:
+ mul.rn.f32 %f36, %f703, %f703;
+ add.s32 %r47, %r351, 1;
+ and.b32 %r48, %r47, 1;
+ setp.eq.s32 %p28, %r48, 0;
+ @%p28 bra BB0_23;
+ bra.uni BB0_22;
+
+BB0_23:
+ mov.f32 %f212, 0f3C08839E;
+ mov.f32 %f213, 0fB94CA1F9;
+ fma.rn.f32 %f704, %f213, %f36, %f212;
+ bra.uni BB0_24;
+
+BB0_22:
+ mov.f32 %f210, 0fBAB6061A;
+ mov.f32 %f211, 0f37CCF5CE;
+ fma.rn.f32 %f704, %f211, %f36, %f210;
+
+BB0_24:
+ @%p28 bra BB0_26;
+ bra.uni BB0_25;
+
+BB0_26:
+ mov.f32 %f217, 0fBE2AAAA3;
+ fma.rn.f32 %f218, %f704, %f36, %f217;
+ mov.f32 %f219, 0f00000000;
+ fma.rn.f32 %f705, %f218, %f36, %f219;
+ bra.uni BB0_27;
+
+BB0_25:
+ mov.f32 %f214, 0f3D2AAAA5;
+ fma.rn.f32 %f215, %f704, %f36, %f214;
+ mov.f32 %f216, 0fBF000000;
+ fma.rn.f32 %f705, %f215, %f36, %f216;
+
+BB0_27:
+ fma.rn.f32 %f706, %f705, %f703, %f703;
+ @%p28 bra BB0_29;
+
+ mov.f32 %f220, 0f3F800000;
+ fma.rn.f32 %f706, %f705, %f36, %f220;
+
+BB0_29:
+ and.b32 %r183, %r47, 2;
+ setp.eq.s32 %p31, %r183, 0;
+ @%p31 bra BB0_31;
+
+ mov.f32 %f221, 0f00000000;
+ mov.f32 %f222, 0fBF800000;
+ fma.rn.f32 %f706, %f706, %f222, %f221;
+
+BB0_31:
+ @%p19 bra BB0_33;
+
+ mov.f32 %f223, 0f00000000;
+ mul.rn.f32 %f708, %f708, %f223;
+
+BB0_33:
+ mul.f32 %f224, %f708, 0f3F22F983;
+ cvt.rni.s32.f32 %r361, %f224;
+ cvt.rn.f32.s32 %f225, %r361;
+ neg.f32 %f226, %f225;
+ fma.rn.f32 %f228, %f226, %f204, %f708;
+ fma.rn.f32 %f230, %f226, %f206, %f228;
+ fma.rn.f32 %f709, %f226, %f208, %f230;
+ abs.f32 %f232, %f708;
+ setp.leu.f32 %p33, %f232, 0f47CE4780;
+ @%p33 bra BB0_44;
+
+ mov.b32 %r50, %f708;
+ shr.u32 %r51, %r50, 23;
+ shl.b32 %r186, %r50, 8;
+ or.b32 %r52, %r186, -2147483648;
+ add.u64 %rd49, %SP, 0;
+ cvta.to.local.u64 %rd185, %rd49;
+ mov.u32 %r353, 0;
+ mov.u64 %rd184, __cudart_i2opi_f;
+ mov.u32 %r352, -6;
+
+BB0_35:
+ .pragma "nounroll";
+ ld.const.u32 %r189, [%rd184];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r187, %r189, %r52, %r353;
+ madc.hi.u32 %r353, %r189, %r52, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd185], %r187;
+ add.s64 %rd185, %rd185, 4;
+ add.s64 %rd184, %rd184, 4;
+ add.s32 %r352, %r352, 1;
+ setp.ne.s32 %p34, %r352, 0;
+ @%p34 bra BB0_35;
+
+ and.b32 %r192, %r51, 255;
+ add.s32 %r193, %r192, -128;
+ shr.u32 %r194, %r193, 5;
+ and.b32 %r57, %r50, -2147483648;
+ cvta.to.local.u64 %rd51, %rd49;
+ st.local.u32 [%rd51+24], %r353;
+ mov.u32 %r195, 6;
+ sub.s32 %r196, %r195, %r194;
+ mul.wide.s32 %rd52, %r196, 4;
+ add.s64 %rd14, %rd51, %rd52;
+ ld.local.u32 %r354, [%rd14];
+ ld.local.u32 %r355, [%rd14+-4];
+ and.b32 %r60, %r51, 31;
+ setp.eq.s32 %p35, %r60, 0;
+ @%p35 bra BB0_38;
+
+ mov.u32 %r197, 32;
+ sub.s32 %r198, %r197, %r60;
+ shr.u32 %r199, %r355, %r198;
+ shl.b32 %r200, %r354, %r60;
+ add.s32 %r354, %r199, %r200;
+ ld.local.u32 %r201, [%rd14+-8];
+ shr.u32 %r202, %r201, %r198;
+ shl.b32 %r203, %r355, %r60;
+ add.s32 %r355, %r202, %r203;
+
+BB0_38:
+ shr.u32 %r204, %r355, 30;
+ shl.b32 %r205, %r354, 2;
+ add.s32 %r356, %r204, %r205;
+ shl.b32 %r66, %r355, 2;
+ shr.u32 %r206, %r356, 31;
+ shr.u32 %r207, %r354, 30;
+ add.s32 %r67, %r206, %r207;
+ setp.eq.s32 %p36, %r206, 0;
+ @%p36 bra BB0_39;
+ bra.uni BB0_40;
+
+BB0_39:
+ mov.u32 %r357, %r57;
+ mov.u32 %r358, %r66;
+ bra.uni BB0_41;
+
+BB0_40:
+ not.b32 %r208, %r356;
+ neg.s32 %r358, %r66;
+ setp.eq.s32 %p37, %r66, 0;
+ selp.u32 %r209, 1, 0, %p37;
+ add.s32 %r356, %r209, %r208;
+ xor.b32 %r357, %r57, -2147483648;
+
+BB0_41:
+ clz.b32 %r360, %r356;
+ setp.eq.s32 %p38, %r360, 0;
+ shl.b32 %r210, %r356, %r360;
+ mov.u32 %r211, 32;
+ sub.s32 %r212, %r211, %r360;
+ shr.u32 %r213, %r358, %r212;
+ add.s32 %r214, %r213, %r210;
+ selp.b32 %r75, %r356, %r214, %p38;
+ mov.u32 %r215, -921707870;
+ mul.hi.u32 %r359, %r75, %r215;
+ setp.eq.s32 %p39, %r57, 0;
+ neg.s32 %r216, %r67;
+ selp.b32 %r361, %r67, %r216, %p39;
+ setp.lt.s32 %p40, %r359, 1;
+ @%p40 bra BB0_43;
+
+ mul.lo.s32 %r217, %r75, -921707870;
+ shr.u32 %r218, %r217, 31;
+ shl.b32 %r219, %r359, 1;
+ add.s32 %r359, %r218, %r219;
+ add.s32 %r360, %r360, 1;
+
+BB0_43:
+ mov.u32 %r220, 126;
+ sub.s32 %r221, %r220, %r360;
+ shl.b32 %r222, %r221, 23;
+ add.s32 %r223, %r359, 1;
+ shr.u32 %r224, %r223, 7;
+ add.s32 %r225, %r224, 1;
+ shr.u32 %r226, %r225, 1;
+ add.s32 %r227, %r226, %r222;
+ or.b32 %r228, %r227, %r357;
+ mov.b32 %f709, %r228;
+
+BB0_44:
+ mul.rn.f32 %f53, %f709, %f709;
+ and.b32 %r83, %r361, 1;
+ setp.eq.s32 %p41, %r83, 0;
+ @%p41 bra BB0_46;
+ bra.uni BB0_45;
+
+BB0_46:
+ mov.f32 %f235, 0f3C08839E;
+ mov.f32 %f236, 0fB94CA1F9;
+ fma.rn.f32 %f710, %f236, %f53, %f235;
+ bra.uni BB0_47;
+
+BB0_45:
+ mov.f32 %f233, 0fBAB6061A;
+ mov.f32 %f234, 0f37CCF5CE;
+ fma.rn.f32 %f710, %f234, %f53, %f233;
+
+BB0_47:
+ @%p41 bra BB0_49;
+ bra.uni BB0_48;
+
+BB0_49:
+ mov.f32 %f240, 0fBE2AAAA3;
+ fma.rn.f32 %f241, %f710, %f53, %f240;
+ mov.f32 %f242, 0f00000000;
+ fma.rn.f32 %f711, %f241, %f53, %f242;
+ bra.uni BB0_50;
+
+BB0_48:
+ mov.f32 %f237, 0f3D2AAAA5;
+ fma.rn.f32 %f238, %f710, %f53, %f237;
+ mov.f32 %f239, 0fBF000000;
+ fma.rn.f32 %f711, %f238, %f53, %f239;
+
+BB0_50:
+ fma.rn.f32 %f712, %f711, %f709, %f709;
+ @%p41 bra BB0_52;
+
+ mov.f32 %f243, 0f3F800000;
+ fma.rn.f32 %f712, %f711, %f53, %f243;
+
+BB0_52:
+ and.b32 %r229, %r361, 2;
+ setp.eq.s32 %p44, %r229, 0;
+ @%p44 bra BB0_54;
+
+ mov.f32 %f244, 0f00000000;
+ mov.f32 %f245, 0fBF800000;
+ fma.rn.f32 %f712, %f712, %f245, %f244;
+
+BB0_54:
+ mul.f32 %f254, %f28, %f706;
+ add.u64 %rd53, %SP, 28;
+ cvta.to.local.u64 %rd54, %rd53;
+ mul.f32 %f255, %f254, %f254;
+ mov.f32 %f256, 0f3F800000;
+ sub.f32 %f257, %f256, %f255;
+ mul.f32 %f258, %f28, %f712;
+ mul.f32 %f259, %f258, %f258;
+ sub.f32 %f260, %f257, %f259;
+ mov.f32 %f261, 0f00000000;
+ max.f32 %f262, %f261, %f260;
+ sqrt.rn.f32 %f263, %f262;
+ mul.f32 %f264, %f14, %f258;
+ mul.f32 %f265, %f15, %f258;
+ mul.f32 %f266, %f16, %f258;
+ fma.rn.f32 %f267, %f23, %f254, %f264;
+ fma.rn.f32 %f268, %f22, %f254, %f265;
+ fma.rn.f32 %f269, %f21, %f254, %f266;
+ fma.rn.f32 %f270, %f7, %f263, %f267;
+ fma.rn.f32 %f271, %f8, %f263, %f268;
+ fma.rn.f32 %f272, %f9, %f263, %f269;
+ add.f32 %f273, %f7, %f270;
+ add.f32 %f274, %f8, %f271;
+ add.f32 %f275, %f9, %f272;
+ ld.global.f32 %f276, [shadowSpread];
+ mul.f32 %f277, %f276, %f273;
+ mul.f32 %f278, %f276, %f274;
+ mul.f32 %f279, %f276, %f275;
+ sub.f32 %f280, %f277, %f7;
+ sub.f32 %f281, %f278, %f8;
+ sub.f32 %f282, %f279, %f9;
+ mul.f32 %f283, %f281, %f281;
+ fma.rn.f32 %f284, %f280, %f280, %f283;
+ fma.rn.f32 %f285, %f282, %f282, %f284;
+ sqrt.rn.f32 %f286, %f285;
+ rcp.rn.f32 %f287, %f286;
+ mul.f32 %f249, %f287, %f280;
+ mul.f32 %f250, %f287, %f281;
+ mul.f32 %f251, %f287, %f282;
+ ld.global.u32 %r233, [imageEnabled];
+ and.b32 %r234, %r233, 32;
+ setp.eq.s32 %p45, %r234, 0;
+ selp.f32 %f288, 0f3F800000, 0f41200000, %p45;
+ mul.f32 %f252, %f288, %f26;
+ mov.u32 %r235, 1065353216;
+ st.local.u32 [%rd54], %r235;
+ ld.global.u32 %r230, [root];
+ mov.u32 %r231, 1;
+ mov.f32 %f253, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r230, %f11, %f12, %f13, %f249, %f250, %f251, %r231, %f252, %f253, %rd53, %r105);
+ // inline asm
+ ld.local.f32 %f289, [%rd54];
+ add.f32 %f714, %f714, %f289;
+ ld.global.u32 %r337, [samples];
+ add.s32 %r340, %r340, 1;
+ setp.lt.s32 %p46, %r340, %r337;
+ @%p46 bra BB0_8;
+
+BB0_55:
+ add.s32 %r338, %r338, 1;
+ setp.lt.s32 %p47, %r338, %r337;
+ @%p47 bra BB0_6;
+
+BB0_56:
+ setp.eq.s32 %p48, %r337, 0;
+ mov.f32 %f716, 0f3F800000;
+ @%p48 bra BB0_58;
+
+ mul.lo.s32 %r236, %r337, %r337;
+ cvt.rn.f32.s32 %f291, %r236;
+ div.rn.f32 %f716, %f714, %f291;
+
+BB0_58:
+ ld.global.f32 %f292, [directColor];
+ mul.f32 %f293, %f716, %f292;
+ ld.global.f32 %f294, [directColor+4];
+ mul.f32 %f295, %f716, %f294;
+ ld.global.f32 %f296, [directColor+8];
+ mul.f32 %f297, %f716, %f296;
+ cvt.sat.f32.f32 %f298, %f10;
+ mul.f32 %f299, %f293, %f298;
+ mul.f32 %f300, %f295, %f298;
+ mul.f32 %f301, %f297, %f298;
+ ld.global.u32 %r237, [ignoreNormal];
+ setp.eq.s32 %p49, %r237, 0;
+ selp.f32 %f70, %f299, %f293, %p49;
+ selp.f32 %f71, %f300, %f295, %p49;
+ selp.f32 %f72, %f301, %f297, %p49;
+ ld.global.u32 %r366, [imageEnabled];
+ and.b32 %r238, %r366, 8;
+ setp.eq.s32 %p50, %r238, 0;
+ @%p50 bra BB0_71;
+
+ cvt.u64.u32 %rd57, %r2;
+ cvt.u64.u32 %rd58, %r3;
+ mov.u64 %rd61, image_Mask;
+ cvta.global.u64 %rd56, %rd61;
+ // inline asm
+ call (%rd55), _rt_buffer_get_64, (%rd56, %r104, %r104, %rd57, %rd58, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f304, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f305, %f304;
+ fma.rn.f32 %f306, %f305, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f73, %f306;
+ abs.f32 %f74, %f716;
+ setp.lt.f32 %p51, %f74, 0f00800000;
+ mul.f32 %f307, %f74, 0f4B800000;
+ selp.f32 %f308, 0fC3170000, 0fC2FE0000, %p51;
+ selp.f32 %f309, %f307, %f74, %p51;
+ mov.b32 %r241, %f309;
+ and.b32 %r242, %r241, 8388607;
+ or.b32 %r243, %r242, 1065353216;
+ mov.b32 %f310, %r243;
+ shr.u32 %r244, %r241, 23;
+ cvt.rn.f32.u32 %f311, %r244;
+ add.f32 %f312, %f308, %f311;
+ setp.gt.f32 %p52, %f310, 0f3FB504F3;
+ mul.f32 %f313, %f310, 0f3F000000;
+ add.f32 %f314, %f312, 0f3F800000;
+ selp.f32 %f315, %f313, %f310, %p52;
+ selp.f32 %f316, %f314, %f312, %p52;
+ add.f32 %f317, %f315, 0fBF800000;
+ add.f32 %f303, %f315, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f302,%f303;
+ // inline asm
+ add.f32 %f318, %f317, %f317;
+ mul.f32 %f319, %f302, %f318;
+ mul.f32 %f320, %f319, %f319;
+ mov.f32 %f321, 0f3C4CAF63;
+ mov.f32 %f322, 0f3B18F0FE;
+ fma.rn.f32 %f323, %f322, %f320, %f321;
+ mov.f32 %f324, 0f3DAAAABD;
+ fma.rn.f32 %f325, %f323, %f320, %f324;
+ mul.rn.f32 %f326, %f325, %f320;
+ mul.rn.f32 %f327, %f326, %f319;
+ sub.f32 %f328, %f317, %f319;
+ neg.f32 %f329, %f319;
+ add.f32 %f330, %f328, %f328;
+ fma.rn.f32 %f331, %f329, %f317, %f330;
+ mul.rn.f32 %f332, %f302, %f331;
+ add.f32 %f333, %f327, %f319;
+ sub.f32 %f334, %f319, %f333;
+ add.f32 %f335, %f327, %f334;
+ add.f32 %f336, %f332, %f335;
+ add.f32 %f337, %f333, %f336;
+ sub.f32 %f338, %f333, %f337;
+ add.f32 %f339, %f336, %f338;
+ mov.f32 %f340, 0f3F317200;
+ mul.rn.f32 %f341, %f316, %f340;
+ mov.f32 %f342, 0f35BFBE8E;
+ mul.rn.f32 %f343, %f316, %f342;
+ add.f32 %f344, %f341, %f337;
+ sub.f32 %f345, %f341, %f344;
+ add.f32 %f346, %f337, %f345;
+ add.f32 %f347, %f339, %f346;
+ add.f32 %f348, %f343, %f347;
+ add.f32 %f349, %f344, %f348;
+ sub.f32 %f350, %f344, %f349;
+ add.f32 %f351, %f348, %f350;
+ mov.f32 %f352, 0f3EE8BA2E;
+ mul.rn.f32 %f353, %f352, %f349;
+ neg.f32 %f354, %f353;
+ fma.rn.f32 %f355, %f352, %f349, %f354;
+ fma.rn.f32 %f356, %f352, %f351, %f355;
+ mov.f32 %f357, 0f00000000;
+ fma.rn.f32 %f358, %f357, %f349, %f356;
+ add.rn.f32 %f359, %f353, %f358;
+ neg.f32 %f360, %f359;
+ add.rn.f32 %f361, %f353, %f360;
+ add.rn.f32 %f362, %f361, %f358;
+ mov.b32 %r245, %f359;
+ setp.eq.s32 %p53, %r245, 1118925336;
+ add.s32 %r246, %r245, -1;
+ mov.b32 %f363, %r246;
+ add.f32 %f364, %f362, 0f37000000;
+ selp.f32 %f365, %f363, %f359, %p53;
+ selp.f32 %f75, %f364, %f362, %p53;
+ mul.f32 %f366, %f365, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f367, %f366;
+ mov.f32 %f368, 0fBF317200;
+ fma.rn.f32 %f369, %f367, %f368, %f365;
+ mov.f32 %f370, 0fB5BFBE8E;
+ fma.rn.f32 %f371, %f367, %f370, %f369;
+ mul.f32 %f372, %f371, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f373, %f372;
+ add.f32 %f374, %f367, 0f00000000;
+ ex2.approx.f32 %f375, %f374;
+ mul.f32 %f376, %f373, %f375;
+ setp.lt.f32 %p54, %f365, 0fC2D20000;
+ selp.f32 %f377, 0f00000000, %f376, %p54;
+ setp.gt.f32 %p55, %f365, 0f42D20000;
+ selp.f32 %f717, 0f7F800000, %f377, %p55;
+ setp.eq.f32 %p56, %f717, 0f7F800000;
+ @%p56 bra BB0_61;
+
+ fma.rn.f32 %f717, %f717, %f75, %f717;
+
+BB0_61:
+ setp.lt.f32 %p57, %f716, 0f00000000;
+ setp.eq.f32 %p58, %f73, 0f3F800000;
+ and.pred %p1, %p57, %p58;
+ mov.b32 %r247, %f717;
+ xor.b32 %r248, %r247, -2147483648;
+ mov.b32 %f378, %r248;
+ selp.f32 %f719, %f378, %f717, %p1;
+ setp.eq.f32 %p59, %f716, 0f00000000;
+ @%p59 bra BB0_64;
+ bra.uni BB0_62;
+
+BB0_64:
+ add.f32 %f381, %f716, %f716;
+ selp.f32 %f719, %f381, 0f00000000, %p58;
+ bra.uni BB0_65;
+
+BB0_129:
+ mov.u64 %rd170, image_HDR;
+ cvta.global.u64 %rd165, %rd170;
+ mov.u32 %r328, 8;
+ // inline asm
+ call (%rd164), _rt_buffer_get_64, (%rd165, %r104, %r328, %rd20, %rd21, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f668, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f668;}
+
+ // inline asm
+ mov.u16 %rs72, 0;
+ st.v4.u16 [%rd164], {%rs71, %rs71, %rs71, %rs72};
+
+BB0_130:
+ ld.global.u8 %rs73, [imageEnabled];
+ and.b16 %rs74, %rs73, 64;
+ setp.eq.s16 %p128, %rs74, 0;
+ @%p128 bra BB0_132;
+
+ cvt.u64.u32 %rd173, %r2;
+ cvt.u64.u32 %rd174, %r3;
+ mov.u64 %rd177, image_Dir;
+ cvta.global.u64 %rd172, %rd177;
+ // inline asm
+ call (%rd171), _rt_buffer_get_64, (%rd172, %r104, %r105, %rd173, %rd174, %rd27, %rd27);
+ // inline asm
+ mov.u16 %rs75, 0;
+ st.v4.u8 [%rd171], {%rs75, %rs75, %rs75, %rs75};
+ bra.uni BB0_132;
+
+BB0_119:
+ mov.u64 %rd129, image_HDR;
+ cvta.global.u64 %rd124, %rd129;
+ mov.u32 %r311, 8;
+ // inline asm
+ call (%rd123), _rt_buffer_get_64, (%rd124, %r104, %r311, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f658, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f658;}
+
+ // inline asm
+ st.v4.u16 [%rd123], {%rs52, %rs52, %rs52, %rs41};
+
+BB0_120:
+ ld.global.u8 %rs53, [imageEnabled];
+ and.b16 %rs54, %rs53, 64;
+ setp.eq.s16 %p123, %rs54, 0;
+ @%p123 bra BB0_132;
+
+ cvt.u64.u32 %rd132, %r2;
+ cvt.u64.u32 %rd133, %r3;
+ mov.u64 %rd136, image_Dir;
+ cvta.global.u64 %rd131, %rd136;
+ // inline asm
+ call (%rd130), _rt_buffer_get_64, (%rd131, %r104, %r105, %rd132, %rd133, %rd27, %rd27);
+ // inline asm
+ mov.u16 %rs55, 255;
+ mov.u16 %rs56, 0;
+ st.v4.u8 [%rd130], {%rs56, %rs56, %rs56, %rs55};
+ bra.uni BB0_132;
+
+BB0_62:
+ setp.geu.f32 %p60, %f716, 0f00000000;
+ @%p60 bra BB0_65;
+
+ cvt.rzi.f32.f32 %f380, %f352;
+ setp.neu.f32 %p61, %f380, 0f3EE8BA2E;
+ selp.f32 %f719, 0f7FFFFFFF, %f719, %p61;
+
+BB0_65:
+ add.f32 %f382, %f74, 0f3EE8BA2E;
+ mov.b32 %r249, %f382;
+ setp.lt.s32 %p63, %r249, 2139095040;
+ @%p63 bra BB0_70;
+
+ setp.gtu.f32 %p64, %f74, 0f7F800000;
+ @%p64 bra BB0_69;
+ bra.uni BB0_67;
+
+BB0_69:
+ add.f32 %f719, %f716, 0f3EE8BA2E;
+ bra.uni BB0_70;
+
+BB0_67:
+ setp.neu.f32 %p65, %f74, 0f7F800000;
+ @%p65 bra BB0_70;
+
+ selp.f32 %f719, 0fFF800000, 0f7F800000, %p1;
+
+BB0_70:
+ mul.f32 %f383, %f719, 0f437F0000;
+ setp.eq.f32 %p66, %f716, 0f3F800000;
+ selp.f32 %f384, 0f437F0000, %f383, %p66;
+ cvt.rzi.u32.f32 %r250, %f384;
+ cvt.u16.u32 %rs11, %r250;
+ mov.u16 %rs12, 255;
+ st.v2.u8 [%rd55], {%rs11, %rs12};
+ ld.global.u32 %r366, [imageEnabled];
+
+BB0_71:
+ and.b32 %r251, %r366, 1;
+ setp.eq.b32 %p67, %r251, 1;
+ @!%p67 bra BB0_106;
+ bra.uni BB0_72;
+
+BB0_72:
+ mov.f32 %f387, 0f3E666666;
+ cvt.rzi.f32.f32 %f388, %f387;
+ fma.rn.f32 %f389, %f388, 0fC0000000, 0f3EE66666;
+ abs.f32 %f86, %f389;
+ abs.f32 %f87, %f70;
+ setp.lt.f32 %p68, %f87, 0f00800000;
+ mul.f32 %f390, %f87, 0f4B800000;
+ selp.f32 %f391, 0fC3170000, 0fC2FE0000, %p68;
+ selp.f32 %f392, %f390, %f87, %p68;
+ mov.b32 %r252, %f392;
+ and.b32 %r253, %r252, 8388607;
+ or.b32 %r254, %r253, 1065353216;
+ mov.b32 %f393, %r254;
+ shr.u32 %r255, %r252, 23;
+ cvt.rn.f32.u32 %f394, %r255;
+ add.f32 %f395, %f391, %f394;
+ setp.gt.f32 %p69, %f393, 0f3FB504F3;
+ mul.f32 %f396, %f393, 0f3F000000;
+ add.f32 %f397, %f395, 0f3F800000;
+ selp.f32 %f398, %f396, %f393, %p69;
+ selp.f32 %f399, %f397, %f395, %p69;
+ add.f32 %f400, %f398, 0fBF800000;
+ add.f32 %f386, %f398, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f385,%f386;
+ // inline asm
+ add.f32 %f401, %f400, %f400;
+ mul.f32 %f402, %f385, %f401;
+ mul.f32 %f403, %f402, %f402;
+ mov.f32 %f404, 0f3C4CAF63;
+ mov.f32 %f405, 0f3B18F0FE;
+ fma.rn.f32 %f406, %f405, %f403, %f404;
+ mov.f32 %f407, 0f3DAAAABD;
+ fma.rn.f32 %f408, %f406, %f403, %f407;
+ mul.rn.f32 %f409, %f408, %f403;
+ mul.rn.f32 %f410, %f409, %f402;
+ sub.f32 %f411, %f400, %f402;
+ neg.f32 %f412, %f402;
+ add.f32 %f413, %f411, %f411;
+ fma.rn.f32 %f414, %f412, %f400, %f413;
+ mul.rn.f32 %f415, %f385, %f414;
+ add.f32 %f416, %f410, %f402;
+ sub.f32 %f417, %f402, %f416;
+ add.f32 %f418, %f410, %f417;
+ add.f32 %f419, %f415, %f418;
+ add.f32 %f420, %f416, %f419;
+ sub.f32 %f421, %f416, %f420;
+ add.f32 %f422, %f419, %f421;
+ mov.f32 %f423, 0f3F317200;
+ mul.rn.f32 %f424, %f399, %f423;
+ mov.f32 %f425, 0f35BFBE8E;
+ mul.rn.f32 %f426, %f399, %f425;
+ add.f32 %f427, %f424, %f420;
+ sub.f32 %f428, %f424, %f427;
+ add.f32 %f429, %f420, %f428;
+ add.f32 %f430, %f422, %f429;
+ add.f32 %f431, %f426, %f430;
+ add.f32 %f432, %f427, %f431;
+ sub.f32 %f433, %f427, %f432;
+ add.f32 %f434, %f431, %f433;
+ mov.f32 %f435, 0f3EE66666;
+ mul.rn.f32 %f436, %f435, %f432;
+ neg.f32 %f437, %f436;
+ fma.rn.f32 %f438, %f435, %f432, %f437;
+ fma.rn.f32 %f439, %f435, %f434, %f438;
+ mov.f32 %f440, 0f00000000;
+ fma.rn.f32 %f441, %f440, %f432, %f439;
+ add.rn.f32 %f442, %f436, %f441;
+ neg.f32 %f443, %f442;
+ add.rn.f32 %f444, %f436, %f443;
+ add.rn.f32 %f445, %f444, %f441;
+ mov.b32 %r256, %f442;
+ setp.eq.s32 %p70, %r256, 1118925336;
+ add.s32 %r257, %r256, -1;
+ mov.b32 %f446, %r257;
+ add.f32 %f447, %f445, 0f37000000;
+ selp.f32 %f448, %f446, %f442, %p70;
+ selp.f32 %f88, %f447, %f445, %p70;
+ mul.f32 %f449, %f448, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f450, %f449;
+ mov.f32 %f451, 0fBF317200;
+ fma.rn.f32 %f452, %f450, %f451, %f448;
+ mov.f32 %f453, 0fB5BFBE8E;
+ fma.rn.f32 %f454, %f450, %f453, %f452;
+ mul.f32 %f455, %f454, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f456, %f455;
+ add.f32 %f457, %f450, 0f00000000;
+ ex2.approx.f32 %f458, %f457;
+ mul.f32 %f459, %f456, %f458;
+ setp.lt.f32 %p71, %f448, 0fC2D20000;
+ selp.f32 %f460, 0f00000000, %f459, %p71;
+ setp.gt.f32 %p72, %f448, 0f42D20000;
+ selp.f32 %f720, 0f7F800000, %f460, %p72;
+ setp.eq.f32 %p73, %f720, 0f7F800000;
+ @%p73 bra BB0_74;
+
+ fma.rn.f32 %f720, %f720, %f88, %f720;
+
+BB0_74:
+ setp.lt.f32 %p74, %f70, 0f00000000;
+ setp.eq.f32 %p75, %f86, 0f3F800000;
+ and.pred %p2, %p74, %p75;
+ mov.b32 %r258, %f720;
+ xor.b32 %r259, %r258, -2147483648;
+ mov.b32 %f461, %r259;
+ selp.f32 %f722, %f461, %f720, %p2;
+ setp.eq.f32 %p76, %f70, 0f00000000;
+ @%p76 bra BB0_77;
+ bra.uni BB0_75;
+
+BB0_77:
+ add.f32 %f464, %f70, %f70;
+ selp.f32 %f722, %f464, 0f00000000, %p75;
+ bra.uni BB0_78;
+
+BB0_75:
+ setp.geu.f32 %p77, %f70, 0f00000000;
+ @%p77 bra BB0_78;
+
+ cvt.rzi.f32.f32 %f463, %f435;
+ setp.neu.f32 %p78, %f463, 0f3EE66666;
+ selp.f32 %f722, 0f7FFFFFFF, %f722, %p78;
+
+BB0_78:
+ abs.f32 %f669, %f70;
+ add.f32 %f465, %f669, 0f3EE66666;
+ mov.b32 %r260, %f465;
+ setp.lt.s32 %p80, %r260, 2139095040;
+ @%p80 bra BB0_83;
+
+ abs.f32 %f686, %f70;
+ setp.gtu.f32 %p81, %f686, 0f7F800000;
+ @%p81 bra BB0_82;
+ bra.uni BB0_80;
+
+BB0_82:
+ add.f32 %f722, %f70, 0f3EE66666;
+ bra.uni BB0_83;
+
+BB0_80:
+ abs.f32 %f687, %f70;
+ setp.neu.f32 %p82, %f687, 0f7F800000;
+ @%p82 bra BB0_83;
+
+ selp.f32 %f722, 0fFF800000, 0f7F800000, %p2;
+
+BB0_83:
+ mov.f32 %f677, 0fB5BFBE8E;
+ mov.f32 %f676, 0fBF317200;
+ mov.f32 %f675, 0f00000000;
+ mov.f32 %f674, 0f35BFBE8E;
+ mov.f32 %f673, 0f3F317200;
+ mov.f32 %f672, 0f3DAAAABD;
+ mov.f32 %f671, 0f3C4CAF63;
+ mov.f32 %f670, 0f3B18F0FE;
+ setp.eq.f32 %p83, %f70, 0f3F800000;
+ selp.f32 %f99, 0f3F800000, %f722, %p83;
+ abs.f32 %f100, %f71;
+ setp.lt.f32 %p84, %f100, 0f00800000;
+ mul.f32 %f468, %f100, 0f4B800000;
+ selp.f32 %f469, 0fC3170000, 0fC2FE0000, %p84;
+ selp.f32 %f470, %f468, %f100, %p84;
+ mov.b32 %r261, %f470;
+ and.b32 %r262, %r261, 8388607;
+ or.b32 %r263, %r262, 1065353216;
+ mov.b32 %f471, %r263;
+ shr.u32 %r264, %r261, 23;
+ cvt.rn.f32.u32 %f472, %r264;
+ add.f32 %f473, %f469, %f472;
+ setp.gt.f32 %p85, %f471, 0f3FB504F3;
+ mul.f32 %f474, %f471, 0f3F000000;
+ add.f32 %f475, %f473, 0f3F800000;
+ selp.f32 %f476, %f474, %f471, %p85;
+ selp.f32 %f477, %f475, %f473, %p85;
+ add.f32 %f478, %f476, 0fBF800000;
+ add.f32 %f467, %f476, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f466,%f467;
+ // inline asm
+ add.f32 %f479, %f478, %f478;
+ mul.f32 %f480, %f466, %f479;
+ mul.f32 %f481, %f480, %f480;
+ fma.rn.f32 %f484, %f670, %f481, %f671;
+ fma.rn.f32 %f486, %f484, %f481, %f672;
+ mul.rn.f32 %f487, %f486, %f481;
+ mul.rn.f32 %f488, %f487, %f480;
+ sub.f32 %f489, %f478, %f480;
+ neg.f32 %f490, %f480;
+ add.f32 %f491, %f489, %f489;
+ fma.rn.f32 %f492, %f490, %f478, %f491;
+ mul.rn.f32 %f493, %f466, %f492;
+ add.f32 %f494, %f488, %f480;
+ sub.f32 %f495, %f480, %f494;
+ add.f32 %f496, %f488, %f495;
+ add.f32 %f497, %f493, %f496;
+ add.f32 %f498, %f494, %f497;
+ sub.f32 %f499, %f494, %f498;
+ add.f32 %f500, %f497, %f499;
+ mul.rn.f32 %f502, %f477, %f673;
+ mul.rn.f32 %f504, %f477, %f674;
+ add.f32 %f505, %f502, %f498;
+ sub.f32 %f506, %f502, %f505;
+ add.f32 %f507, %f498, %f506;
+ add.f32 %f508, %f500, %f507;
+ add.f32 %f509, %f504, %f508;
+ add.f32 %f510, %f505, %f509;
+ sub.f32 %f511, %f505, %f510;
+ add.f32 %f512, %f509, %f511;
+ mul.rn.f32 %f514, %f435, %f510;
+ neg.f32 %f515, %f514;
+ fma.rn.f32 %f516, %f435, %f510, %f515;
+ fma.rn.f32 %f517, %f435, %f512, %f516;
+ fma.rn.f32 %f519, %f675, %f510, %f517;
+ add.rn.f32 %f520, %f514, %f519;
+ neg.f32 %f521, %f520;
+ add.rn.f32 %f522, %f514, %f521;
+ add.rn.f32 %f523, %f522, %f519;
+ mov.b32 %r265, %f520;
+ setp.eq.s32 %p86, %r265, 1118925336;
+ add.s32 %r266, %r265, -1;
+ mov.b32 %f524, %r266;
+ add.f32 %f525, %f523, 0f37000000;
+ selp.f32 %f526, %f524, %f520, %p86;
+ selp.f32 %f101, %f525, %f523, %p86;
+ mul.f32 %f527, %f526, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f528, %f527;
+ fma.rn.f32 %f530, %f528, %f676, %f526;
+ fma.rn.f32 %f532, %f528, %f677, %f530;
+ mul.f32 %f533, %f532, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f534, %f533;
+ add.f32 %f535, %f528, 0f00000000;
+ ex2.approx.f32 %f536, %f535;
+ mul.f32 %f537, %f534, %f536;
+ setp.lt.f32 %p87, %f526, 0fC2D20000;
+ selp.f32 %f538, 0f00000000, %f537, %p87;
+ setp.gt.f32 %p88, %f526, 0f42D20000;
+ selp.f32 %f723, 0f7F800000, %f538, %p88;
+ setp.eq.f32 %p89, %f723, 0f7F800000;
+ @%p89 bra BB0_85;
+
+ fma.rn.f32 %f723, %f723, %f101, %f723;
+
+BB0_85:
+ setp.lt.f32 %p90, %f71, 0f00000000;
+ and.pred %p3, %p90, %p75;
+ mov.b32 %r267, %f723;
+ xor.b32 %r268, %r267, -2147483648;
+ mov.b32 %f539, %r268;
+ selp.f32 %f725, %f539, %f723, %p3;
+ setp.eq.f32 %p92, %f71, 0f00000000;
+ @%p92 bra BB0_88;
+ bra.uni BB0_86;
+
+BB0_88:
+ add.f32 %f542, %f71, %f71;
+ selp.f32 %f725, %f542, 0f00000000, %p75;
+ bra.uni BB0_89;
+
+BB0_86:
+ setp.geu.f32 %p93, %f71, 0f00000000;
+ @%p93 bra BB0_89;
+
+ mov.f32 %f693, 0f3EE66666;
+ cvt.rzi.f32.f32 %f541, %f693;
+ setp.neu.f32 %p94, %f541, 0f3EE66666;
+ selp.f32 %f725, 0f7FFFFFFF, %f725, %p94;
+
+BB0_89:
+ abs.f32 %f688, %f71;
+ add.f32 %f543, %f688, 0f3EE66666;
+ mov.b32 %r269, %f543;
+ setp.lt.s32 %p96, %r269, 2139095040;
+ @%p96 bra BB0_94;
+
+ abs.f32 %f691, %f71;
+ setp.gtu.f32 %p97, %f691, 0f7F800000;
+ @%p97 bra BB0_93;
+ bra.uni BB0_91;
+
+BB0_93:
+ add.f32 %f725, %f71, 0f3EE66666;
+ bra.uni BB0_94;
+
+BB0_91:
+ abs.f32 %f692, %f71;
+ setp.neu.f32 %p98, %f692, 0f7F800000;
+ @%p98 bra BB0_94;
+
+ selp.f32 %f725, 0fFF800000, 0f7F800000, %p3;
+
+BB0_94:
+ mov.f32 %f689, 0f3EE66666;
+ mov.f32 %f685, 0fB5BFBE8E;
+ mov.f32 %f684, 0fBF317200;
+ mov.f32 %f683, 0f00000000;
+ mov.f32 %f682, 0f35BFBE8E;
+ mov.f32 %f681, 0f3F317200;
+ mov.f32 %f680, 0f3DAAAABD;
+ mov.f32 %f679, 0f3C4CAF63;
+ mov.f32 %f678, 0f3B18F0FE;
+ setp.eq.f32 %p99, %f71, 0f3F800000;
+ selp.f32 %f112, 0f3F800000, %f725, %p99;
+ abs.f32 %f113, %f72;
+ setp.lt.f32 %p100, %f113, 0f00800000;
+ mul.f32 %f546, %f113, 0f4B800000;
+ selp.f32 %f547, 0fC3170000, 0fC2FE0000, %p100;
+ selp.f32 %f548, %f546, %f113, %p100;
+ mov.b32 %r270, %f548;
+ and.b32 %r271, %r270, 8388607;
+ or.b32 %r272, %r271, 1065353216;
+ mov.b32 %f549, %r272;
+ shr.u32 %r273, %r270, 23;
+ cvt.rn.f32.u32 %f550, %r273;
+ add.f32 %f551, %f547, %f550;
+ setp.gt.f32 %p101, %f549, 0f3FB504F3;
+ mul.f32 %f552, %f549, 0f3F000000;
+ add.f32 %f553, %f551, 0f3F800000;
+ selp.f32 %f554, %f552, %f549, %p101;
+ selp.f32 %f555, %f553, %f551, %p101;
+ add.f32 %f556, %f554, 0fBF800000;
+ add.f32 %f545, %f554, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f544,%f545;
+ // inline asm
+ add.f32 %f557, %f556, %f556;
+ mul.f32 %f558, %f544, %f557;
+ mul.f32 %f559, %f558, %f558;
+ fma.rn.f32 %f562, %f678, %f559, %f679;
+ fma.rn.f32 %f564, %f562, %f559, %f680;
+ mul.rn.f32 %f565, %f564, %f559;
+ mul.rn.f32 %f566, %f565, %f558;
+ sub.f32 %f567, %f556, %f558;
+ neg.f32 %f568, %f558;
+ add.f32 %f569, %f567, %f567;
+ fma.rn.f32 %f570, %f568, %f556, %f569;
+ mul.rn.f32 %f571, %f544, %f570;
+ add.f32 %f572, %f566, %f558;
+ sub.f32 %f573, %f558, %f572;
+ add.f32 %f574, %f566, %f573;
+ add.f32 %f575, %f571, %f574;
+ add.f32 %f576, %f572, %f575;
+ sub.f32 %f577, %f572, %f576;
+ add.f32 %f578, %f575, %f577;
+ mul.rn.f32 %f580, %f555, %f681;
+ mul.rn.f32 %f582, %f555, %f682;
+ add.f32 %f583, %f580, %f576;
+ sub.f32 %f584, %f580, %f583;
+ add.f32 %f585, %f576, %f584;
+ add.f32 %f586, %f578, %f585;
+ add.f32 %f587, %f582, %f586;
+ add.f32 %f588, %f583, %f587;
+ sub.f32 %f589, %f583, %f588;
+ add.f32 %f590, %f587, %f589;
+ mul.rn.f32 %f592, %f689, %f588;
+ neg.f32 %f593, %f592;
+ fma.rn.f32 %f594, %f689, %f588, %f593;
+ fma.rn.f32 %f595, %f689, %f590, %f594;
+ fma.rn.f32 %f597, %f683, %f588, %f595;
+ add.rn.f32 %f598, %f592, %f597;
+ neg.f32 %f599, %f598;
+ add.rn.f32 %f600, %f592, %f599;
+ add.rn.f32 %f601, %f600, %f597;
+ mov.b32 %r274, %f598;
+ setp.eq.s32 %p102, %r274, 1118925336;
+ add.s32 %r275, %r274, -1;
+ mov.b32 %f602, %r275;
+ add.f32 %f603, %f601, 0f37000000;
+ selp.f32 %f604, %f602, %f598, %p102;
+ selp.f32 %f114, %f603, %f601, %p102;
+ mul.f32 %f605, %f604, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f606, %f605;
+ fma.rn.f32 %f608, %f606, %f684, %f604;
+ fma.rn.f32 %f610, %f606, %f685, %f608;
+ mul.f32 %f611, %f610, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f612, %f611;
+ add.f32 %f613, %f606, 0f00000000;
+ ex2.approx.f32 %f614, %f613;
+ mul.f32 %f615, %f612, %f614;
+ setp.lt.f32 %p103, %f604, 0fC2D20000;
+ selp.f32 %f616, 0f00000000, %f615, %p103;
+ setp.gt.f32 %p104, %f604, 0f42D20000;
+ selp.f32 %f726, 0f7F800000, %f616, %p104;
+ setp.eq.f32 %p105, %f726, 0f7F800000;
+ @%p105 bra BB0_96;
+
+ fma.rn.f32 %f726, %f726, %f114, %f726;
+
+BB0_96:
+ setp.lt.f32 %p106, %f72, 0f00000000;
+ and.pred %p4, %p106, %p75;
+ mov.b32 %r276, %f726;
+ xor.b32 %r277, %r276, -2147483648;
+ mov.b32 %f617, %r277;
+ selp.f32 %f728, %f617, %f726, %p4;
+ setp.eq.f32 %p108, %f72, 0f00000000;
+ @%p108 bra BB0_99;
+ bra.uni BB0_97;
+
+BB0_99:
+ add.f32 %f620, %f72, %f72;
+ selp.f32 %f728, %f620, 0f00000000, %p75;
+ bra.uni BB0_100;
+
+BB0_97:
+ setp.geu.f32 %p109, %f72, 0f00000000;
+ @%p109 bra BB0_100;
+
+ mov.f32 %f690, 0f3EE66666;
+ cvt.rzi.f32.f32 %f619, %f690;
+ setp.neu.f32 %p110, %f619, 0f3EE66666;
+ selp.f32 %f728, 0f7FFFFFFF, %f728, %p110;
+
+BB0_100:
+ abs.f32 %f694, %f72;
+ add.f32 %f621, %f694, 0f3EE66666;
+ mov.b32 %r278, %f621;
+ setp.lt.s32 %p112, %r278, 2139095040;
+ @%p112 bra BB0_105;
+
+ abs.f32 %f695, %f72;
+ setp.gtu.f32 %p113, %f695, 0f7F800000;
+ @%p113 bra BB0_104;
+ bra.uni BB0_102;
+
+BB0_104:
+ add.f32 %f728, %f72, 0f3EE66666;
+ bra.uni BB0_105;
+
+BB0_102:
+ abs.f32 %f696, %f72;
+ setp.neu.f32 %p114, %f696, 0f7F800000;
+ @%p114 bra BB0_105;
+
+ selp.f32 %f728, 0fFF800000, 0f7F800000, %p4;
+
+BB0_105:
+ mov.u32 %r332, 4;
+ mov.u64 %rd178, 0;
+ mov.u32 %r331, 2;
+ setp.eq.f32 %p115, %f72, 0f3F800000;
+ selp.f32 %f622, 0f3F800000, %f728, %p115;
+ cvt.u64.u32 %rd65, %r3;
+ cvt.u64.u32 %rd64, %r2;
+ mov.u64 %rd68, image;
+ cvta.global.u64 %rd63, %rd68;
+ // inline asm
+ call (%rd62), _rt_buffer_get_64, (%rd63, %r331, %r332, %rd64, %rd65, %rd178, %rd178);
+ // inline asm
+ cvt.sat.f32.f32 %f623, %f622;
+ mul.f32 %f624, %f623, 0f437FFD71;
+ cvt.rzi.u32.f32 %r281, %f624;
+ cvt.sat.f32.f32 %f625, %f112;
+ mul.f32 %f626, %f625, 0f437FFD71;
+ cvt.rzi.u32.f32 %r282, %f626;
+ cvt.sat.f32.f32 %f627, %f99;
+ mul.f32 %f628, %f627, 0f437FFD71;
+ cvt.rzi.u32.f32 %r283, %f628;
+ cvt.u16.u32 %rs13, %r281;
+ cvt.u16.u32 %rs14, %r283;
+ cvt.u16.u32 %rs15, %r282;
+ mov.u16 %rs16, 255;
+ st.v4.u8 [%rd62], {%rs13, %rs15, %rs14, %rs16};
+ ld.global.u32 %r366, [imageEnabled];
+
+BB0_106:
+ and.b32 %r284, %r366, 4;
+ setp.eq.s32 %p116, %r284, 0;
+ @%p116 bra BB0_110;
+
+ ld.global.u32 %r285, [additive];
+ setp.eq.s32 %p117, %r285, 0;
+ cvt.u64.u32 %rd16, %r2;
+ cvt.u64.u32 %rd17, %r3;
+ mov.f32 %f629, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs17, %f629;}
+
+ // inline asm
+ @%p117 bra BB0_109;
+
+ mov.u64 %rd179, 0;
+ mov.u32 %r333, 2;
+ mov.u64 %rd81, image_HDR;
+ cvta.global.u64 %rd70, %rd81;
+ mov.u32 %r289, 8;
+ // inline asm
+ call (%rd69), _rt_buffer_get_64, (%rd70, %r333, %r289, %rd16, %rd17, %rd179, %rd179);
+ // inline asm
+ ld.v4.u16 {%rs24, %rs25, %rs26, %rs27}, [%rd69];
+ // inline asm
+ { cvt.f32.f16 %f630, %rs24;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f631, %rs25;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f632, %rs26;}
+
+ // inline asm
+ // inline asm
+ call (%rd75), _rt_buffer_get_64, (%rd70, %r333, %r289, %rd16, %rd17, %rd179, %rd179);
+ // inline asm
+ add.f32 %f633, %f70, %f630;
+ add.f32 %f634, %f71, %f631;
+ add.f32 %f635, %f72, %f632;
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f635;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f634;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs21, %f633;}
+
+ // inline asm
+ st.v4.u16 [%rd75], {%rs21, %rs22, %rs23, %rs17};
+ bra.uni BB0_110;
+
+BB0_109:
+ mov.u64 %rd180, 0;
+ mov.u32 %r334, 2;
+ mov.u64 %rd88, image_HDR;
+ cvta.global.u64 %rd83, %rd88;
+ mov.u32 %r291, 8;
+ // inline asm
+ call (%rd82), _rt_buffer_get_64, (%rd83, %r334, %r291, %rd16, %rd17, %rd180, %rd180);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f72;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f71;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f70;}
+
+ // inline asm
+ st.v4.u16 [%rd82], {%rs28, %rs29, %rs30, %rs17};
+
+BB0_110:
+ ld.global.u8 %rs31, [imageEnabled];
+ and.b16 %rs32, %rs31, 64;
+ setp.eq.s16 %p118, %rs32, 0;
+ @%p118 bra BB0_132;
+
+ mov.u32 %r336, 4;
+ mov.u64 %rd181, 0;
+ mov.u32 %r335, 2;
+ ld.global.f32 %f639, [directDir];
+ ld.global.f32 %f640, [directDir+4];
+ ld.global.f32 %f641, [directDir+8];
+ cvt.u64.u32 %rd92, %r3;
+ cvt.u64.u32 %rd91, %r2;
+ mov.u64 %rd95, image_Dir;
+ cvta.global.u64 %rd90, %rd95;
+ // inline asm
+ call (%rd89), _rt_buffer_get_64, (%rd90, %r335, %r336, %rd91, %rd92, %rd181, %rd181);
+ // inline asm
+ fma.rn.f32 %f642, %f639, 0fBF000000, 0f3F000000;
+ mul.f32 %f643, %f642, 0f437F0000;
+ cvt.rzi.u32.f32 %r294, %f643;
+ fma.rn.f32 %f644, %f640, 0fBF000000, 0f3F000000;
+ mul.f32 %f645, %f644, 0f437F0000;
+ cvt.rzi.u32.f32 %r295, %f645;
+ fma.rn.f32 %f646, %f641, 0fBF000000, 0f3F000000;
+ mul.f32 %f647, %f646, 0f437F0000;
+ cvt.rzi.u32.f32 %r296, %f647;
+ cvt.u16.u32 %rs33, %r296;
+ cvt.u16.u32 %rs34, %r295;
+ cvt.u16.u32 %rs35, %r294;
+ mov.u16 %rs36, 255;
+ st.v4.u8 [%rd89], {%rs35, %rs34, %rs33, %rs36};
+
+BB0_132:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSun.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSun.ptx.meta
new file mode 100644
index 00000000..1c965c79
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSun.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dcf09917846defb47b792613da34357e
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadow.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadow.ptx
new file mode 100644
index 00000000..87296a0c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadow.ptx
@@ -0,0 +1,1811 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_Dir[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .b8 directDir[12];
+.global .align 4 .b8 directColor[12];
+.global .align 4 .f32 shadowSpread;
+.global .align 4 .u32 samples;
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .u32 lightCookie;
+.global .align 16 .b8 lightTilingOffset[16];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9directDirE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11directColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12shadowSpreadE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightCookieE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo17lightTilingOffsetE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9directDirE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11directColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12shadowSpreadE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename11lightCookieE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename17lightTilingOffsetE[7] = {102, 108, 111, 97, 116, 52, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9directDirE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11directColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12shadowSpreadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightCookieE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum17lightTilingOffsetE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9directDirE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11directColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12shadowSpreadE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightCookieE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic17lightTilingOffsetE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9directDirE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11directColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12shadowSpreadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightCookieE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation17lightTilingOffsetE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<129>;
+ .reg .b16 %rs<76>;
+ .reg .f32 %f<751>;
+ .reg .b32 %r<373>;
+ .reg .b64 %rd<187>;
+
+
+ mov.u64 %rd186, __local_depot0;
+ cvta.local.u64 %SP, %rd186;
+ ld.global.v2.u32 {%r106, %r107}, [pixelID];
+ cvt.u64.u32 %rd24, %r106;
+ cvt.u64.u32 %rd25, %r107;
+ mov.u64 %rd28, uvnormal;
+ cvta.global.u64 %rd23, %rd28;
+ mov.u32 %r104, 2;
+ mov.u32 %r105, 4;
+ mov.u64 %rd27, 0;
+ // inline asm
+ call (%rd22), _rt_buffer_get_64, (%rd23, %r104, %r105, %rd24, %rd25, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r1, [%rd22];
+ shr.u32 %r110, %r1, 16;
+ cvt.u16.u32 %rs1, %r110;
+ and.b16 %rs4, %rs1, 255;
+ cvt.u16.u32 %rs5, %r1;
+ or.b16 %rs6, %rs5, %rs4;
+ setp.eq.s16 %p5, %rs6, 0;
+ mov.f32 %f719, 0f00000000;
+ mov.f32 %f720, %f719;
+ mov.f32 %f721, %f719;
+ @%p5 bra BB0_2;
+
+ ld.u8 %rs7, [%rd22+1];
+ and.b16 %rs9, %rs5, 255;
+ cvt.rn.f32.u16 %f132, %rs9;
+ div.rn.f32 %f133, %f132, 0f437F0000;
+ fma.rn.f32 %f134, %f133, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f135, %rs7;
+ div.rn.f32 %f136, %f135, 0f437F0000;
+ fma.rn.f32 %f137, %f136, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f138, %rs4;
+ div.rn.f32 %f139, %f138, 0f437F0000;
+ fma.rn.f32 %f140, %f139, 0f40000000, 0fBF800000;
+ mul.f32 %f141, %f137, %f137;
+ fma.rn.f32 %f142, %f134, %f134, %f141;
+ fma.rn.f32 %f143, %f140, %f140, %f142;
+ sqrt.rn.f32 %f144, %f143;
+ rcp.rn.f32 %f145, %f144;
+ mul.f32 %f719, %f134, %f145;
+ mul.f32 %f720, %f137, %f145;
+ mul.f32 %f721, %f140, %f145;
+
+BB0_2:
+ ld.global.v2.u32 {%r111, %r112}, [pixelID];
+ ld.global.v2.u32 {%r114, %r115}, [tileInfo];
+ add.s32 %r2, %r111, %r114;
+ add.s32 %r3, %r112, %r115;
+ setp.eq.f32 %p6, %f720, 0f00000000;
+ setp.eq.f32 %p7, %f719, 0f00000000;
+ and.pred %p8, %p7, %p6;
+ setp.eq.f32 %p9, %f721, 0f00000000;
+ and.pred %p10, %p8, %p9;
+ @%p10 bra BB0_122;
+ bra.uni BB0_3;
+
+BB0_122:
+ ld.global.u32 %r372, [imageEnabled];
+ and.b32 %r316, %r372, 1;
+ setp.eq.b32 %p124, %r316, 1;
+ @!%p124 bra BB0_124;
+ bra.uni BB0_123;
+
+BB0_123:
+ cvt.u64.u32 %rd139, %r2;
+ cvt.u64.u32 %rd140, %r3;
+ mov.u64 %rd143, image;
+ cvta.global.u64 %rd138, %rd143;
+ // inline asm
+ call (%rd137), _rt_buffer_get_64, (%rd138, %r104, %r105, %rd139, %rd140, %rd27, %rd27);
+ // inline asm
+ mov.u16 %rs57, 0;
+ st.v4.u8 [%rd137], {%rs57, %rs57, %rs57, %rs57};
+ ld.global.u32 %r372, [imageEnabled];
+
+BB0_124:
+ and.b32 %r319, %r372, 8;
+ setp.eq.s32 %p125, %r319, 0;
+ @%p125 bra BB0_126;
+
+ cvt.u64.u32 %rd146, %r2;
+ cvt.u64.u32 %rd147, %r3;
+ mov.u64 %rd150, image_Mask;
+ cvta.global.u64 %rd145, %rd150;
+ // inline asm
+ call (%rd144), _rt_buffer_get_64, (%rd145, %r104, %r104, %rd146, %rd147, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f684, 0f00000000;
+ cvt.rzi.u32.f32 %r322, %f684;
+ cvt.u16.u32 %rs58, %r322;
+ mov.u16 %rs59, 0;
+ st.v2.u8 [%rd144], {%rs58, %rs59};
+ ld.global.u32 %r372, [imageEnabled];
+
+BB0_126:
+ and.b32 %r323, %r372, 4;
+ setp.eq.s32 %p126, %r323, 0;
+ @%p126 bra BB0_130;
+
+ ld.global.u32 %r324, [additive];
+ setp.eq.s32 %p127, %r324, 0;
+ cvt.u64.u32 %rd20, %r2;
+ cvt.u64.u32 %rd21, %r3;
+ @%p127 bra BB0_129;
+
+ mov.u64 %rd163, image_HDR;
+ cvta.global.u64 %rd152, %rd163;
+ mov.u32 %r328, 8;
+ // inline asm
+ call (%rd151), _rt_buffer_get_64, (%rd152, %r104, %r328, %rd20, %rd21, %rd27, %rd27);
+ // inline asm
+ ld.v4.u16 {%rs66, %rs67, %rs68, %rs69}, [%rd151];
+ // inline asm
+ { cvt.f32.f16 %f685, %rs66;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f686, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f687, %rs68;}
+
+ // inline asm
+ // inline asm
+ call (%rd157), _rt_buffer_get_64, (%rd152, %r104, %r328, %rd20, %rd21, %rd27, %rd27);
+ // inline asm
+ add.f32 %f688, %f685, 0f00000000;
+ add.f32 %f689, %f686, 0f00000000;
+ add.f32 %f690, %f687, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f690;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f689;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs63, %f688;}
+
+ // inline asm
+ mov.u16 %rs70, 0;
+ st.v4.u16 [%rd157], {%rs63, %rs64, %rs65, %rs70};
+ bra.uni BB0_130;
+
+BB0_3:
+ ld.global.f32 %f9, [directDir+8];
+ ld.global.f32 %f8, [directDir+4];
+ ld.global.f32 %f7, [directDir];
+ mul.f32 %f146, %f719, %f7;
+ mul.f32 %f147, %f720, %f8;
+ neg.f32 %f148, %f147;
+ sub.f32 %f149, %f148, %f146;
+ mul.f32 %f150, %f721, %f9;
+ sub.f32 %f10, %f149, %f150;
+ ld.global.u32 %r119, [ignoreNormal];
+ setp.eq.s32 %p11, %r119, 0;
+ setp.le.f32 %p12, %f10, 0f00000000;
+ and.pred %p13, %p11, %p12;
+ ld.global.u32 %r370, [imageEnabled];
+ and.b32 %r120, %r370, 32;
+ setp.eq.s32 %p14, %r120, 0;
+ and.pred %p15, %p13, %p14;
+ @%p15 bra BB0_112;
+ bra.uni BB0_4;
+
+BB0_112:
+ and.b32 %r299, %r370, 1;
+ setp.eq.b32 %p119, %r299, 1;
+ @!%p119 bra BB0_114;
+ bra.uni BB0_113;
+
+BB0_113:
+ cvt.u64.u32 %rd98, %r2;
+ cvt.u64.u32 %rd99, %r3;
+ mov.u64 %rd102, image;
+ cvta.global.u64 %rd97, %rd102;
+ // inline asm
+ call (%rd96), _rt_buffer_get_64, (%rd97, %r104, %r105, %rd98, %rd99, %rd27, %rd27);
+ // inline asm
+ mov.u16 %rs37, 255;
+ mov.u16 %rs38, 0;
+ st.v4.u8 [%rd96], {%rs38, %rs38, %rs38, %rs37};
+ ld.global.u32 %r370, [imageEnabled];
+
+BB0_114:
+ and.b32 %r302, %r370, 8;
+ setp.eq.s32 %p120, %r302, 0;
+ @%p120 bra BB0_116;
+
+ cvt.u64.u32 %rd105, %r2;
+ cvt.u64.u32 %rd106, %r3;
+ mov.u64 %rd109, image_Mask;
+ cvta.global.u64 %rd104, %rd109;
+ // inline asm
+ call (%rd103), _rt_buffer_get_64, (%rd104, %r104, %r104, %rd105, %rd106, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f673, 0f00000000;
+ cvt.rzi.u32.f32 %r305, %f673;
+ cvt.u16.u32 %rs39, %r305;
+ mov.u16 %rs40, 255;
+ st.v2.u8 [%rd103], {%rs39, %rs40};
+ ld.global.u32 %r370, [imageEnabled];
+
+BB0_116:
+ and.b32 %r306, %r370, 4;
+ setp.eq.s32 %p121, %r306, 0;
+ @%p121 bra BB0_120;
+
+ ld.global.u32 %r307, [additive];
+ setp.eq.s32 %p122, %r307, 0;
+ cvt.u64.u32 %rd18, %r2;
+ cvt.u64.u32 %rd19, %r3;
+ mov.f32 %f674, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs41, %f674;}
+
+ // inline asm
+ @%p122 bra BB0_119;
+
+ mov.u64 %rd122, image_HDR;
+ cvta.global.u64 %rd111, %rd122;
+ mov.u32 %r311, 8;
+ // inline asm
+ call (%rd110), _rt_buffer_get_64, (%rd111, %r104, %r311, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ ld.v4.u16 {%rs48, %rs49, %rs50, %rs51}, [%rd110];
+ // inline asm
+ { cvt.f32.f16 %f675, %rs48;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f676, %rs49;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f677, %rs50;}
+
+ // inline asm
+ // inline asm
+ call (%rd116), _rt_buffer_get_64, (%rd111, %r104, %r311, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ add.f32 %f678, %f675, 0f00000000;
+ add.f32 %f679, %f676, 0f00000000;
+ add.f32 %f680, %f677, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f680;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f679;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f678;}
+
+ // inline asm
+ st.v4.u16 [%rd116], {%rs45, %rs46, %rs47, %rs41};
+ bra.uni BB0_120;
+
+BB0_4:
+ ld.global.v2.u32 {%r125, %r126}, [pixelID];
+ cvt.u64.u32 %rd31, %r125;
+ cvt.u64.u32 %rd32, %r126;
+ mov.u64 %rd41, uvpos;
+ cvta.global.u64 %rd30, %rd41;
+ mov.u32 %r122, 12;
+ // inline asm
+ call (%rd29), _rt_buffer_get_64, (%rd30, %r104, %r122, %rd31, %rd32, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f13, [%rd29+8];
+ ld.f32 %f12, [%rd29+4];
+ ld.f32 %f11, [%rd29];
+ mul.f32 %f152, %f11, 0f3456BF95;
+ mul.f32 %f153, %f12, 0f3456BF95;
+ mul.f32 %f154, %f13, 0f3456BF95;
+ abs.f32 %f155, %f719;
+ div.rn.f32 %f156, %f152, %f155;
+ abs.f32 %f157, %f720;
+ div.rn.f32 %f158, %f153, %f157;
+ abs.f32 %f159, %f721;
+ div.rn.f32 %f160, %f154, %f159;
+ abs.f32 %f161, %f156;
+ abs.f32 %f162, %f158;
+ abs.f32 %f163, %f160;
+ mov.f32 %f164, 0f38D1B717;
+ max.f32 %f165, %f161, %f164;
+ max.f32 %f166, %f162, %f164;
+ max.f32 %f167, %f163, %f164;
+ fma.rn.f32 %f14, %f719, %f165, %f11;
+ fma.rn.f32 %f15, %f720, %f166, %f12;
+ fma.rn.f32 %f16, %f721, %f167, %f13;
+ abs.f32 %f168, %f9;
+ abs.f32 %f169, %f7;
+ setp.gt.f32 %p16, %f169, %f168;
+ neg.f32 %f170, %f8;
+ selp.f32 %f171, %f170, 0f00000000, %p16;
+ neg.f32 %f172, %f9;
+ selp.f32 %f173, %f7, %f172, %p16;
+ selp.f32 %f174, 0f00000000, %f8, %p16;
+ mul.f32 %f175, %f173, %f173;
+ fma.rn.f32 %f176, %f171, %f171, %f175;
+ fma.rn.f32 %f177, %f174, %f174, %f176;
+ sqrt.rn.f32 %f178, %f177;
+ rcp.rn.f32 %f179, %f178;
+ mul.f32 %f17, %f171, %f179;
+ mul.f32 %f18, %f173, %f179;
+ mul.f32 %f19, %f174, %f179;
+ mul.f32 %f180, %f9, %f18;
+ mul.f32 %f181, %f8, %f19;
+ sub.f32 %f20, %f180, %f181;
+ mul.f32 %f182, %f7, %f19;
+ mul.f32 %f183, %f9, %f17;
+ sub.f32 %f21, %f182, %f183;
+ mul.f32 %f184, %f8, %f17;
+ mul.f32 %f185, %f7, %f18;
+ sub.f32 %f22, %f184, %f185;
+ ld.global.v2.u32 {%r129, %r130}, [pixelID];
+ cvt.u64.u32 %rd37, %r129;
+ cvt.u64.u32 %rd38, %r130;
+ mov.u64 %rd42, rnd_seeds;
+ cvta.global.u64 %rd36, %rd42;
+ // inline asm
+ call (%rd35), _rt_buffer_get_64, (%rd36, %r104, %r105, %rd37, %rd38, %rd27, %rd27);
+ // inline asm
+ ld.global.u32 %r339, [samples];
+ mov.f32 %f736, 0f00000000;
+ setp.lt.s32 %p17, %r339, 1;
+ @%p17 bra BB0_56;
+
+ cvt.rn.f32.s32 %f187, %r339;
+ rcp.rn.f32 %f23, %f187;
+ ld.u32 %r365, [%rd35];
+ mul.f32 %f24, %f14, 0f3456BF95;
+ mul.f32 %f25, %f15, 0f3456BF95;
+ mul.f32 %f26, %f16, 0f3456BF95;
+ mov.f32 %f736, 0f00000000;
+ mov.u32 %r340, 0;
+ abs.f32 %f188, %f25;
+ abs.f32 %f189, %f24;
+ max.f32 %f190, %f189, %f188;
+ abs.f32 %f191, %f26;
+ max.f32 %f192, %f190, %f191;
+
+BB0_6:
+ setp.lt.s32 %p18, %r339, 1;
+ @%p18 bra BB0_55;
+
+ cvt.rn.f32.s32 %f28, %r340;
+ max.f32 %f29, %f192, %f164;
+ mov.u32 %r342, 0;
+
+BB0_8:
+ mad.lo.s32 %r135, %r365, 1664525, 1013904223;
+ and.b32 %r136, %r135, 16777215;
+ cvt.rn.f32.u32 %f194, %r136;
+ fma.rn.f32 %f195, %f194, 0f33800000, %f28;
+ mul.f32 %f196, %f23, %f195;
+ mad.lo.s32 %r365, %r135, 1664525, 1013904223;
+ and.b32 %r137, %r365, 16777215;
+ cvt.rn.f32.u32 %f197, %r137;
+ cvt.rn.f32.s32 %f198, %r342;
+ fma.rn.f32 %f199, %f197, 0f33800000, %f198;
+ mul.f32 %f200, %f23, %f199;
+ sqrt.rn.f32 %f31, %f196;
+ mul.f32 %f730, %f200, 0f40C90FDB;
+ abs.f32 %f33, %f730;
+ setp.neu.f32 %p19, %f33, 0f7F800000;
+ mov.f32 %f724, %f730;
+ @%p19 bra BB0_10;
+
+ mov.f32 %f201, 0f00000000;
+ mul.rn.f32 %f724, %f730, %f201;
+
+BB0_10:
+ mul.f32 %f202, %f724, 0f3F22F983;
+ cvt.rni.s32.f32 %r353, %f202;
+ cvt.rn.f32.s32 %f203, %r353;
+ neg.f32 %f204, %f203;
+ mov.f32 %f205, 0f3FC90FDA;
+ fma.rn.f32 %f206, %f204, %f205, %f724;
+ mov.f32 %f207, 0f33A22168;
+ fma.rn.f32 %f208, %f204, %f207, %f206;
+ mov.f32 %f209, 0f27C234C5;
+ fma.rn.f32 %f725, %f204, %f209, %f208;
+ abs.f32 %f210, %f724;
+ setp.leu.f32 %p20, %f210, 0f47CE4780;
+ @%p20 bra BB0_21;
+
+ mov.b32 %r14, %f724;
+ shr.u32 %r15, %r14, 23;
+ shl.b32 %r140, %r14, 8;
+ or.b32 %r16, %r140, -2147483648;
+ add.u64 %rd44, %SP, 0;
+ cvta.to.local.u64 %rd183, %rd44;
+ mov.u32 %r345, 0;
+ mov.u64 %rd182, __cudart_i2opi_f;
+ mov.u32 %r344, -6;
+
+BB0_12:
+ .pragma "nounroll";
+ ld.const.u32 %r143, [%rd182];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r141, %r143, %r16, %r345;
+ madc.hi.u32 %r345, %r143, %r16, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd183], %r141;
+ add.s64 %rd183, %rd183, 4;
+ add.s64 %rd182, %rd182, 4;
+ add.s32 %r344, %r344, 1;
+ setp.ne.s32 %p21, %r344, 0;
+ @%p21 bra BB0_12;
+
+ and.b32 %r146, %r15, 255;
+ add.s32 %r147, %r146, -128;
+ shr.u32 %r148, %r147, 5;
+ and.b32 %r21, %r14, -2147483648;
+ cvta.to.local.u64 %rd46, %rd44;
+ st.local.u32 [%rd46+24], %r345;
+ mov.u32 %r149, 6;
+ sub.s32 %r150, %r149, %r148;
+ mul.wide.s32 %rd47, %r150, 4;
+ add.s64 %rd8, %rd46, %rd47;
+ ld.local.u32 %r346, [%rd8];
+ ld.local.u32 %r347, [%rd8+-4];
+ and.b32 %r24, %r15, 31;
+ setp.eq.s32 %p22, %r24, 0;
+ @%p22 bra BB0_15;
+
+ mov.u32 %r151, 32;
+ sub.s32 %r152, %r151, %r24;
+ shr.u32 %r153, %r347, %r152;
+ shl.b32 %r154, %r346, %r24;
+ add.s32 %r346, %r153, %r154;
+ ld.local.u32 %r155, [%rd8+-8];
+ shr.u32 %r156, %r155, %r152;
+ shl.b32 %r157, %r347, %r24;
+ add.s32 %r347, %r156, %r157;
+
+BB0_15:
+ shr.u32 %r158, %r347, 30;
+ shl.b32 %r159, %r346, 2;
+ add.s32 %r348, %r158, %r159;
+ shl.b32 %r30, %r347, 2;
+ shr.u32 %r160, %r348, 31;
+ shr.u32 %r161, %r346, 30;
+ add.s32 %r31, %r160, %r161;
+ setp.eq.s32 %p23, %r160, 0;
+ @%p23 bra BB0_16;
+ bra.uni BB0_17;
+
+BB0_16:
+ mov.u32 %r349, %r21;
+ mov.u32 %r350, %r30;
+ bra.uni BB0_18;
+
+BB0_17:
+ not.b32 %r162, %r348;
+ neg.s32 %r350, %r30;
+ setp.eq.s32 %p24, %r30, 0;
+ selp.u32 %r163, 1, 0, %p24;
+ add.s32 %r348, %r163, %r162;
+ xor.b32 %r349, %r21, -2147483648;
+
+BB0_18:
+ clz.b32 %r352, %r348;
+ setp.eq.s32 %p25, %r352, 0;
+ shl.b32 %r164, %r348, %r352;
+ mov.u32 %r165, 32;
+ sub.s32 %r166, %r165, %r352;
+ shr.u32 %r167, %r350, %r166;
+ add.s32 %r168, %r167, %r164;
+ selp.b32 %r39, %r348, %r168, %p25;
+ mov.u32 %r169, -921707870;
+ mul.hi.u32 %r351, %r39, %r169;
+ setp.eq.s32 %p26, %r21, 0;
+ neg.s32 %r170, %r31;
+ selp.b32 %r353, %r31, %r170, %p26;
+ setp.lt.s32 %p27, %r351, 1;
+ @%p27 bra BB0_20;
+
+ mul.lo.s32 %r171, %r39, -921707870;
+ shr.u32 %r172, %r171, 31;
+ shl.b32 %r173, %r351, 1;
+ add.s32 %r351, %r172, %r173;
+ add.s32 %r352, %r352, 1;
+
+BB0_20:
+ mov.u32 %r174, 126;
+ sub.s32 %r175, %r174, %r352;
+ shl.b32 %r176, %r175, 23;
+ add.s32 %r177, %r351, 1;
+ shr.u32 %r178, %r177, 7;
+ add.s32 %r179, %r178, 1;
+ shr.u32 %r180, %r179, 1;
+ add.s32 %r181, %r180, %r176;
+ or.b32 %r182, %r181, %r349;
+ mov.b32 %f725, %r182;
+
+BB0_21:
+ mul.rn.f32 %f39, %f725, %f725;
+ add.s32 %r47, %r353, 1;
+ and.b32 %r48, %r47, 1;
+ setp.eq.s32 %p28, %r48, 0;
+ @%p28 bra BB0_23;
+ bra.uni BB0_22;
+
+BB0_23:
+ mov.f32 %f213, 0f3C08839E;
+ mov.f32 %f214, 0fB94CA1F9;
+ fma.rn.f32 %f726, %f214, %f39, %f213;
+ bra.uni BB0_24;
+
+BB0_22:
+ mov.f32 %f211, 0fBAB6061A;
+ mov.f32 %f212, 0f37CCF5CE;
+ fma.rn.f32 %f726, %f212, %f39, %f211;
+
+BB0_24:
+ @%p28 bra BB0_26;
+ bra.uni BB0_25;
+
+BB0_26:
+ mov.f32 %f218, 0fBE2AAAA3;
+ fma.rn.f32 %f219, %f726, %f39, %f218;
+ mov.f32 %f220, 0f00000000;
+ fma.rn.f32 %f727, %f219, %f39, %f220;
+ bra.uni BB0_27;
+
+BB0_25:
+ mov.f32 %f215, 0f3D2AAAA5;
+ fma.rn.f32 %f216, %f726, %f39, %f215;
+ mov.f32 %f217, 0fBF000000;
+ fma.rn.f32 %f727, %f216, %f39, %f217;
+
+BB0_27:
+ fma.rn.f32 %f728, %f727, %f725, %f725;
+ @%p28 bra BB0_29;
+
+ mov.f32 %f221, 0f3F800000;
+ fma.rn.f32 %f728, %f727, %f39, %f221;
+
+BB0_29:
+ and.b32 %r183, %r47, 2;
+ setp.eq.s32 %p31, %r183, 0;
+ @%p31 bra BB0_31;
+
+ mov.f32 %f222, 0f00000000;
+ mov.f32 %f223, 0fBF800000;
+ fma.rn.f32 %f728, %f728, %f223, %f222;
+
+BB0_31:
+ @%p19 bra BB0_33;
+
+ mov.f32 %f224, 0f00000000;
+ mul.rn.f32 %f730, %f730, %f224;
+
+BB0_33:
+ mul.f32 %f225, %f730, 0f3F22F983;
+ cvt.rni.s32.f32 %r363, %f225;
+ cvt.rn.f32.s32 %f226, %r363;
+ neg.f32 %f227, %f226;
+ fma.rn.f32 %f229, %f227, %f205, %f730;
+ fma.rn.f32 %f231, %f227, %f207, %f229;
+ fma.rn.f32 %f731, %f227, %f209, %f231;
+ abs.f32 %f233, %f730;
+ setp.leu.f32 %p33, %f233, 0f47CE4780;
+ @%p33 bra BB0_44;
+
+ mov.b32 %r50, %f730;
+ shr.u32 %r51, %r50, 23;
+ shl.b32 %r186, %r50, 8;
+ or.b32 %r52, %r186, -2147483648;
+ add.u64 %rd49, %SP, 0;
+ cvta.to.local.u64 %rd185, %rd49;
+ mov.u32 %r355, 0;
+ mov.u64 %rd184, __cudart_i2opi_f;
+ mov.u32 %r354, -6;
+
+BB0_35:
+ .pragma "nounroll";
+ ld.const.u32 %r189, [%rd184];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r187, %r189, %r52, %r355;
+ madc.hi.u32 %r355, %r189, %r52, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd185], %r187;
+ add.s64 %rd185, %rd185, 4;
+ add.s64 %rd184, %rd184, 4;
+ add.s32 %r354, %r354, 1;
+ setp.ne.s32 %p34, %r354, 0;
+ @%p34 bra BB0_35;
+
+ and.b32 %r192, %r51, 255;
+ add.s32 %r193, %r192, -128;
+ shr.u32 %r194, %r193, 5;
+ and.b32 %r57, %r50, -2147483648;
+ cvta.to.local.u64 %rd51, %rd49;
+ st.local.u32 [%rd51+24], %r355;
+ mov.u32 %r195, 6;
+ sub.s32 %r196, %r195, %r194;
+ mul.wide.s32 %rd52, %r196, 4;
+ add.s64 %rd14, %rd51, %rd52;
+ ld.local.u32 %r356, [%rd14];
+ ld.local.u32 %r357, [%rd14+-4];
+ and.b32 %r60, %r51, 31;
+ setp.eq.s32 %p35, %r60, 0;
+ @%p35 bra BB0_38;
+
+ mov.u32 %r197, 32;
+ sub.s32 %r198, %r197, %r60;
+ shr.u32 %r199, %r357, %r198;
+ shl.b32 %r200, %r356, %r60;
+ add.s32 %r356, %r199, %r200;
+ ld.local.u32 %r201, [%rd14+-8];
+ shr.u32 %r202, %r201, %r198;
+ shl.b32 %r203, %r357, %r60;
+ add.s32 %r357, %r202, %r203;
+
+BB0_38:
+ shr.u32 %r204, %r357, 30;
+ shl.b32 %r205, %r356, 2;
+ add.s32 %r358, %r204, %r205;
+ shl.b32 %r66, %r357, 2;
+ shr.u32 %r206, %r358, 31;
+ shr.u32 %r207, %r356, 30;
+ add.s32 %r67, %r206, %r207;
+ setp.eq.s32 %p36, %r206, 0;
+ @%p36 bra BB0_39;
+ bra.uni BB0_40;
+
+BB0_39:
+ mov.u32 %r359, %r57;
+ mov.u32 %r360, %r66;
+ bra.uni BB0_41;
+
+BB0_40:
+ not.b32 %r208, %r358;
+ neg.s32 %r360, %r66;
+ setp.eq.s32 %p37, %r66, 0;
+ selp.u32 %r209, 1, 0, %p37;
+ add.s32 %r358, %r209, %r208;
+ xor.b32 %r359, %r57, -2147483648;
+
+BB0_41:
+ clz.b32 %r362, %r358;
+ setp.eq.s32 %p38, %r362, 0;
+ shl.b32 %r210, %r358, %r362;
+ mov.u32 %r211, 32;
+ sub.s32 %r212, %r211, %r362;
+ shr.u32 %r213, %r360, %r212;
+ add.s32 %r214, %r213, %r210;
+ selp.b32 %r75, %r358, %r214, %p38;
+ mov.u32 %r215, -921707870;
+ mul.hi.u32 %r361, %r75, %r215;
+ setp.eq.s32 %p39, %r57, 0;
+ neg.s32 %r216, %r67;
+ selp.b32 %r363, %r67, %r216, %p39;
+ setp.lt.s32 %p40, %r361, 1;
+ @%p40 bra BB0_43;
+
+ mul.lo.s32 %r217, %r75, -921707870;
+ shr.u32 %r218, %r217, 31;
+ shl.b32 %r219, %r361, 1;
+ add.s32 %r361, %r218, %r219;
+ add.s32 %r362, %r362, 1;
+
+BB0_43:
+ mov.u32 %r220, 126;
+ sub.s32 %r221, %r220, %r362;
+ shl.b32 %r222, %r221, 23;
+ add.s32 %r223, %r361, 1;
+ shr.u32 %r224, %r223, 7;
+ add.s32 %r225, %r224, 1;
+ shr.u32 %r226, %r225, 1;
+ add.s32 %r227, %r226, %r222;
+ or.b32 %r228, %r227, %r359;
+ mov.b32 %f731, %r228;
+
+BB0_44:
+ mul.rn.f32 %f56, %f731, %f731;
+ and.b32 %r83, %r363, 1;
+ setp.eq.s32 %p41, %r83, 0;
+ @%p41 bra BB0_46;
+ bra.uni BB0_45;
+
+BB0_46:
+ mov.f32 %f236, 0f3C08839E;
+ mov.f32 %f237, 0fB94CA1F9;
+ fma.rn.f32 %f732, %f237, %f56, %f236;
+ bra.uni BB0_47;
+
+BB0_45:
+ mov.f32 %f234, 0fBAB6061A;
+ mov.f32 %f235, 0f37CCF5CE;
+ fma.rn.f32 %f732, %f235, %f56, %f234;
+
+BB0_47:
+ @%p41 bra BB0_49;
+ bra.uni BB0_48;
+
+BB0_49:
+ mov.f32 %f241, 0fBE2AAAA3;
+ fma.rn.f32 %f242, %f732, %f56, %f241;
+ mov.f32 %f243, 0f00000000;
+ fma.rn.f32 %f733, %f242, %f56, %f243;
+ bra.uni BB0_50;
+
+BB0_48:
+ mov.f32 %f238, 0f3D2AAAA5;
+ fma.rn.f32 %f239, %f732, %f56, %f238;
+ mov.f32 %f240, 0fBF000000;
+ fma.rn.f32 %f733, %f239, %f56, %f240;
+
+BB0_50:
+ fma.rn.f32 %f734, %f733, %f731, %f731;
+ @%p41 bra BB0_52;
+
+ mov.f32 %f244, 0f3F800000;
+ fma.rn.f32 %f734, %f733, %f56, %f244;
+
+BB0_52:
+ and.b32 %r229, %r363, 2;
+ setp.eq.s32 %p44, %r229, 0;
+ @%p44 bra BB0_54;
+
+ mov.f32 %f245, 0f00000000;
+ mov.f32 %f246, 0fBF800000;
+ fma.rn.f32 %f734, %f734, %f246, %f245;
+
+BB0_54:
+ mul.f32 %f255, %f31, %f728;
+ add.u64 %rd53, %SP, 28;
+ cvta.to.local.u64 %rd54, %rd53;
+ mul.f32 %f256, %f255, %f255;
+ mov.f32 %f257, 0f3F800000;
+ sub.f32 %f258, %f257, %f256;
+ mul.f32 %f259, %f31, %f734;
+ mul.f32 %f260, %f259, %f259;
+ sub.f32 %f261, %f258, %f260;
+ mov.f32 %f262, 0f00000000;
+ max.f32 %f263, %f262, %f261;
+ sqrt.rn.f32 %f264, %f263;
+ mul.f32 %f265, %f17, %f259;
+ mul.f32 %f266, %f18, %f259;
+ mul.f32 %f267, %f19, %f259;
+ fma.rn.f32 %f268, %f20, %f255, %f265;
+ fma.rn.f32 %f269, %f21, %f255, %f266;
+ fma.rn.f32 %f270, %f22, %f255, %f267;
+ fma.rn.f32 %f271, %f7, %f264, %f268;
+ fma.rn.f32 %f272, %f8, %f264, %f269;
+ fma.rn.f32 %f273, %f9, %f264, %f270;
+ add.f32 %f274, %f7, %f271;
+ add.f32 %f275, %f8, %f272;
+ add.f32 %f276, %f9, %f273;
+ ld.global.f32 %f277, [shadowSpread];
+ mul.f32 %f278, %f277, %f274;
+ mul.f32 %f279, %f277, %f275;
+ mul.f32 %f280, %f277, %f276;
+ sub.f32 %f281, %f278, %f7;
+ sub.f32 %f282, %f279, %f8;
+ sub.f32 %f283, %f280, %f9;
+ mul.f32 %f284, %f282, %f282;
+ fma.rn.f32 %f285, %f281, %f281, %f284;
+ fma.rn.f32 %f286, %f283, %f283, %f285;
+ sqrt.rn.f32 %f287, %f286;
+ rcp.rn.f32 %f288, %f287;
+ mul.f32 %f250, %f288, %f281;
+ mul.f32 %f251, %f288, %f282;
+ mul.f32 %f252, %f288, %f283;
+ ld.global.u32 %r233, [imageEnabled];
+ and.b32 %r234, %r233, 32;
+ setp.eq.s32 %p45, %r234, 0;
+ selp.f32 %f289, 0f3F800000, 0f41200000, %p45;
+ mul.f32 %f253, %f289, %f29;
+ mov.u32 %r235, 1065353216;
+ st.local.u32 [%rd54], %r235;
+ ld.global.u32 %r230, [root];
+ mov.u32 %r231, 1;
+ mov.f32 %f254, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r230, %f14, %f15, %f16, %f250, %f251, %f252, %r231, %f253, %f254, %rd53, %r105);
+ // inline asm
+ ld.local.f32 %f290, [%rd54];
+ add.f32 %f736, %f736, %f290;
+ ld.global.u32 %r339, [samples];
+ add.s32 %r342, %r342, 1;
+ setp.lt.s32 %p46, %r342, %r339;
+ @%p46 bra BB0_8;
+
+BB0_55:
+ add.s32 %r340, %r340, 1;
+ setp.lt.s32 %p47, %r340, %r339;
+ @%p47 bra BB0_6;
+
+BB0_56:
+ setp.eq.s32 %p48, %r339, 0;
+ mov.f32 %f738, 0f3F800000;
+ @%p48 bra BB0_58;
+
+ mul.lo.s32 %r236, %r339, %r339;
+ cvt.rn.f32.s32 %f292, %r236;
+ div.rn.f32 %f738, %f736, %f292;
+
+BB0_58:
+ mul.f32 %f301, %f12, %f21;
+ fma.rn.f32 %f302, %f11, %f20, %f301;
+ fma.rn.f32 %f303, %f13, %f22, %f302;
+ ld.global.v4.f32 {%f304, %f305, %f306, %f307}, [lightTilingOffset];
+ fma.rn.f32 %f297, %f303, %f304, %f306;
+ mul.f32 %f310, %f12, %f18;
+ fma.rn.f32 %f311, %f11, %f17, %f310;
+ fma.rn.f32 %f312, %f13, %f19, %f311;
+ fma.rn.f32 %f298, %f312, %f305, %f307;
+ ld.global.u32 %r237, [lightCookie];
+ mov.f32 %f300, 0f00000000;
+ // inline asm
+ call (%f293, %f294, %f295, %f296), _rt_texture_get_f_id, (%r237, %r104, %f297, %f298, %f300, %f300);
+ // inline asm
+ mul.f32 %f73, %f738, %f293;
+ ld.global.f32 %f315, [directColor];
+ mul.f32 %f316, %f315, %f73;
+ ld.global.f32 %f317, [directColor+4];
+ mul.f32 %f318, %f317, %f73;
+ ld.global.f32 %f319, [directColor+8];
+ mul.f32 %f320, %f73, %f319;
+ cvt.sat.f32.f32 %f321, %f10;
+ mul.f32 %f322, %f316, %f321;
+ mul.f32 %f323, %f318, %f321;
+ mul.f32 %f324, %f320, %f321;
+ ld.global.u32 %r239, [ignoreNormal];
+ setp.eq.s32 %p49, %r239, 0;
+ selp.f32 %f74, %f322, %f316, %p49;
+ selp.f32 %f75, %f323, %f318, %p49;
+ selp.f32 %f76, %f324, %f320, %p49;
+ ld.global.u32 %r368, [imageEnabled];
+ and.b32 %r240, %r368, 8;
+ setp.eq.s32 %p50, %r240, 0;
+ @%p50 bra BB0_71;
+
+ cvt.u64.u32 %rd57, %r2;
+ cvt.u64.u32 %rd58, %r3;
+ mov.u64 %rd61, image_Mask;
+ cvta.global.u64 %rd56, %rd61;
+ // inline asm
+ call (%rd55), _rt_buffer_get_64, (%rd56, %r104, %r104, %rd57, %rd58, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f327, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f328, %f327;
+ fma.rn.f32 %f329, %f328, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f77, %f329;
+ abs.f32 %f78, %f73;
+ setp.lt.f32 %p51, %f78, 0f00800000;
+ mul.f32 %f330, %f78, 0f4B800000;
+ selp.f32 %f331, 0fC3170000, 0fC2FE0000, %p51;
+ selp.f32 %f332, %f330, %f78, %p51;
+ mov.b32 %r243, %f332;
+ and.b32 %r244, %r243, 8388607;
+ or.b32 %r245, %r244, 1065353216;
+ mov.b32 %f333, %r245;
+ shr.u32 %r246, %r243, 23;
+ cvt.rn.f32.u32 %f334, %r246;
+ add.f32 %f335, %f331, %f334;
+ setp.gt.f32 %p52, %f333, 0f3FB504F3;
+ mul.f32 %f336, %f333, 0f3F000000;
+ add.f32 %f337, %f335, 0f3F800000;
+ selp.f32 %f338, %f336, %f333, %p52;
+ selp.f32 %f339, %f337, %f335, %p52;
+ add.f32 %f340, %f338, 0fBF800000;
+ add.f32 %f326, %f338, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f325,%f326;
+ // inline asm
+ add.f32 %f341, %f340, %f340;
+ mul.f32 %f342, %f325, %f341;
+ mul.f32 %f343, %f342, %f342;
+ mov.f32 %f344, 0f3C4CAF63;
+ mov.f32 %f345, 0f3B18F0FE;
+ fma.rn.f32 %f346, %f345, %f343, %f344;
+ mov.f32 %f347, 0f3DAAAABD;
+ fma.rn.f32 %f348, %f346, %f343, %f347;
+ mul.rn.f32 %f349, %f348, %f343;
+ mul.rn.f32 %f350, %f349, %f342;
+ sub.f32 %f351, %f340, %f342;
+ neg.f32 %f352, %f342;
+ add.f32 %f353, %f351, %f351;
+ fma.rn.f32 %f354, %f352, %f340, %f353;
+ mul.rn.f32 %f355, %f325, %f354;
+ add.f32 %f356, %f350, %f342;
+ sub.f32 %f357, %f342, %f356;
+ add.f32 %f358, %f350, %f357;
+ add.f32 %f359, %f355, %f358;
+ add.f32 %f360, %f356, %f359;
+ sub.f32 %f361, %f356, %f360;
+ add.f32 %f362, %f359, %f361;
+ mov.f32 %f363, 0f3F317200;
+ mul.rn.f32 %f364, %f339, %f363;
+ mov.f32 %f365, 0f35BFBE8E;
+ mul.rn.f32 %f366, %f339, %f365;
+ add.f32 %f367, %f364, %f360;
+ sub.f32 %f368, %f364, %f367;
+ add.f32 %f369, %f360, %f368;
+ add.f32 %f370, %f362, %f369;
+ add.f32 %f371, %f366, %f370;
+ add.f32 %f372, %f367, %f371;
+ sub.f32 %f373, %f367, %f372;
+ add.f32 %f374, %f371, %f373;
+ mov.f32 %f375, 0f3EE8BA2E;
+ mul.rn.f32 %f376, %f375, %f372;
+ neg.f32 %f377, %f376;
+ fma.rn.f32 %f378, %f375, %f372, %f377;
+ fma.rn.f32 %f379, %f375, %f374, %f378;
+ fma.rn.f32 %f381, %f300, %f372, %f379;
+ add.rn.f32 %f382, %f376, %f381;
+ neg.f32 %f383, %f382;
+ add.rn.f32 %f384, %f376, %f383;
+ add.rn.f32 %f385, %f384, %f381;
+ mov.b32 %r247, %f382;
+ setp.eq.s32 %p53, %r247, 1118925336;
+ add.s32 %r248, %r247, -1;
+ mov.b32 %f386, %r248;
+ add.f32 %f387, %f385, 0f37000000;
+ selp.f32 %f388, %f386, %f382, %p53;
+ selp.f32 %f79, %f387, %f385, %p53;
+ mul.f32 %f389, %f388, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f390, %f389;
+ mov.f32 %f391, 0fBF317200;
+ fma.rn.f32 %f392, %f390, %f391, %f388;
+ mov.f32 %f393, 0fB5BFBE8E;
+ fma.rn.f32 %f394, %f390, %f393, %f392;
+ mul.f32 %f395, %f394, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f396, %f395;
+ add.f32 %f397, %f390, 0f00000000;
+ ex2.approx.f32 %f398, %f397;
+ mul.f32 %f399, %f396, %f398;
+ setp.lt.f32 %p54, %f388, 0fC2D20000;
+ selp.f32 %f400, 0f00000000, %f399, %p54;
+ setp.gt.f32 %p55, %f388, 0f42D20000;
+ selp.f32 %f739, 0f7F800000, %f400, %p55;
+ setp.eq.f32 %p56, %f739, 0f7F800000;
+ @%p56 bra BB0_61;
+
+ fma.rn.f32 %f739, %f739, %f79, %f739;
+
+BB0_61:
+ setp.lt.f32 %p57, %f73, 0f00000000;
+ setp.eq.f32 %p58, %f77, 0f3F800000;
+ and.pred %p1, %p57, %p58;
+ mov.b32 %r249, %f739;
+ xor.b32 %r250, %r249, -2147483648;
+ mov.b32 %f401, %r250;
+ selp.f32 %f741, %f401, %f739, %p1;
+ setp.eq.f32 %p59, %f73, 0f00000000;
+ @%p59 bra BB0_64;
+ bra.uni BB0_62;
+
+BB0_64:
+ add.f32 %f404, %f73, %f73;
+ selp.f32 %f741, %f404, 0f00000000, %p58;
+ bra.uni BB0_65;
+
+BB0_129:
+ mov.u64 %rd170, image_HDR;
+ cvta.global.u64 %rd165, %rd170;
+ mov.u32 %r330, 8;
+ // inline asm
+ call (%rd164), _rt_buffer_get_64, (%rd165, %r104, %r330, %rd20, %rd21, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f691, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f691;}
+
+ // inline asm
+ mov.u16 %rs72, 0;
+ st.v4.u16 [%rd164], {%rs71, %rs71, %rs71, %rs72};
+
+BB0_130:
+ ld.global.u8 %rs73, [imageEnabled];
+ and.b16 %rs74, %rs73, 64;
+ setp.eq.s16 %p128, %rs74, 0;
+ @%p128 bra BB0_132;
+
+ cvt.u64.u32 %rd173, %r2;
+ cvt.u64.u32 %rd174, %r3;
+ mov.u64 %rd177, image_Dir;
+ cvta.global.u64 %rd172, %rd177;
+ // inline asm
+ call (%rd171), _rt_buffer_get_64, (%rd172, %r104, %r105, %rd173, %rd174, %rd27, %rd27);
+ // inline asm
+ mov.u16 %rs75, 0;
+ st.v4.u8 [%rd171], {%rs75, %rs75, %rs75, %rs75};
+ bra.uni BB0_132;
+
+BB0_119:
+ mov.u64 %rd129, image_HDR;
+ cvta.global.u64 %rd124, %rd129;
+ mov.u32 %r313, 8;
+ // inline asm
+ call (%rd123), _rt_buffer_get_64, (%rd124, %r104, %r313, %rd18, %rd19, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f681, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f681;}
+
+ // inline asm
+ st.v4.u16 [%rd123], {%rs52, %rs52, %rs52, %rs41};
+
+BB0_120:
+ ld.global.u8 %rs53, [imageEnabled];
+ and.b16 %rs54, %rs53, 64;
+ setp.eq.s16 %p123, %rs54, 0;
+ @%p123 bra BB0_132;
+
+ cvt.u64.u32 %rd132, %r2;
+ cvt.u64.u32 %rd133, %r3;
+ mov.u64 %rd136, image_Dir;
+ cvta.global.u64 %rd131, %rd136;
+ // inline asm
+ call (%rd130), _rt_buffer_get_64, (%rd131, %r104, %r105, %rd132, %rd133, %rd27, %rd27);
+ // inline asm
+ mov.u16 %rs55, 255;
+ mov.u16 %rs56, 0;
+ st.v4.u8 [%rd130], {%rs56, %rs56, %rs56, %rs55};
+ bra.uni BB0_132;
+
+BB0_62:
+ setp.geu.f32 %p60, %f73, 0f00000000;
+ @%p60 bra BB0_65;
+
+ mov.f32 %f718, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f403, %f718;
+ setp.neu.f32 %p61, %f403, 0f3EE8BA2E;
+ selp.f32 %f741, 0f7FFFFFFF, %f741, %p61;
+
+BB0_65:
+ add.f32 %f405, %f78, 0f3EE8BA2E;
+ mov.b32 %r251, %f405;
+ setp.lt.s32 %p63, %r251, 2139095040;
+ @%p63 bra BB0_70;
+
+ setp.gtu.f32 %p64, %f78, 0f7F800000;
+ @%p64 bra BB0_69;
+ bra.uni BB0_67;
+
+BB0_69:
+ add.f32 %f741, %f73, 0f3EE8BA2E;
+ bra.uni BB0_70;
+
+BB0_67:
+ setp.neu.f32 %p65, %f78, 0f7F800000;
+ @%p65 bra BB0_70;
+
+ selp.f32 %f741, 0fFF800000, 0f7F800000, %p1;
+
+BB0_70:
+ mul.f32 %f406, %f741, 0f437F0000;
+ setp.eq.f32 %p66, %f73, 0f3F800000;
+ selp.f32 %f407, 0f437F0000, %f406, %p66;
+ cvt.rzi.u32.f32 %r252, %f407;
+ cvt.u16.u32 %rs11, %r252;
+ mov.u16 %rs12, 255;
+ st.v2.u8 [%rd55], {%rs11, %rs12};
+ ld.global.u32 %r368, [imageEnabled];
+
+BB0_71:
+ and.b32 %r253, %r368, 1;
+ setp.eq.b32 %p67, %r253, 1;
+ @!%p67 bra BB0_106;
+ bra.uni BB0_72;
+
+BB0_72:
+ mov.f32 %f717, 0f00000000;
+ mov.f32 %f410, 0f3E666666;
+ cvt.rzi.f32.f32 %f411, %f410;
+ fma.rn.f32 %f412, %f411, 0fC0000000, 0f3EE66666;
+ abs.f32 %f90, %f412;
+ abs.f32 %f91, %f74;
+ setp.lt.f32 %p68, %f91, 0f00800000;
+ mul.f32 %f413, %f91, 0f4B800000;
+ selp.f32 %f414, 0fC3170000, 0fC2FE0000, %p68;
+ selp.f32 %f415, %f413, %f91, %p68;
+ mov.b32 %r254, %f415;
+ and.b32 %r255, %r254, 8388607;
+ or.b32 %r256, %r255, 1065353216;
+ mov.b32 %f416, %r256;
+ shr.u32 %r257, %r254, 23;
+ cvt.rn.f32.u32 %f417, %r257;
+ add.f32 %f418, %f414, %f417;
+ setp.gt.f32 %p69, %f416, 0f3FB504F3;
+ mul.f32 %f419, %f416, 0f3F000000;
+ add.f32 %f420, %f418, 0f3F800000;
+ selp.f32 %f421, %f419, %f416, %p69;
+ selp.f32 %f422, %f420, %f418, %p69;
+ add.f32 %f423, %f421, 0fBF800000;
+ add.f32 %f409, %f421, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f408,%f409;
+ // inline asm
+ add.f32 %f424, %f423, %f423;
+ mul.f32 %f425, %f408, %f424;
+ mul.f32 %f426, %f425, %f425;
+ mov.f32 %f427, 0f3C4CAF63;
+ mov.f32 %f428, 0f3B18F0FE;
+ fma.rn.f32 %f429, %f428, %f426, %f427;
+ mov.f32 %f430, 0f3DAAAABD;
+ fma.rn.f32 %f431, %f429, %f426, %f430;
+ mul.rn.f32 %f432, %f431, %f426;
+ mul.rn.f32 %f433, %f432, %f425;
+ sub.f32 %f434, %f423, %f425;
+ neg.f32 %f435, %f425;
+ add.f32 %f436, %f434, %f434;
+ fma.rn.f32 %f437, %f435, %f423, %f436;
+ mul.rn.f32 %f438, %f408, %f437;
+ add.f32 %f439, %f433, %f425;
+ sub.f32 %f440, %f425, %f439;
+ add.f32 %f441, %f433, %f440;
+ add.f32 %f442, %f438, %f441;
+ add.f32 %f443, %f439, %f442;
+ sub.f32 %f444, %f439, %f443;
+ add.f32 %f445, %f442, %f444;
+ mov.f32 %f446, 0f3F317200;
+ mul.rn.f32 %f447, %f422, %f446;
+ mov.f32 %f448, 0f35BFBE8E;
+ mul.rn.f32 %f449, %f422, %f448;
+ add.f32 %f450, %f447, %f443;
+ sub.f32 %f451, %f447, %f450;
+ add.f32 %f452, %f443, %f451;
+ add.f32 %f453, %f445, %f452;
+ add.f32 %f454, %f449, %f453;
+ add.f32 %f455, %f450, %f454;
+ sub.f32 %f456, %f450, %f455;
+ add.f32 %f457, %f454, %f456;
+ mov.f32 %f458, 0f3EE66666;
+ mul.rn.f32 %f459, %f458, %f455;
+ neg.f32 %f460, %f459;
+ fma.rn.f32 %f461, %f458, %f455, %f460;
+ fma.rn.f32 %f462, %f458, %f457, %f461;
+ fma.rn.f32 %f464, %f717, %f455, %f462;
+ add.rn.f32 %f465, %f459, %f464;
+ neg.f32 %f466, %f465;
+ add.rn.f32 %f467, %f459, %f466;
+ add.rn.f32 %f468, %f467, %f464;
+ mov.b32 %r258, %f465;
+ setp.eq.s32 %p70, %r258, 1118925336;
+ add.s32 %r259, %r258, -1;
+ mov.b32 %f469, %r259;
+ add.f32 %f470, %f468, 0f37000000;
+ selp.f32 %f471, %f469, %f465, %p70;
+ selp.f32 %f92, %f470, %f468, %p70;
+ mul.f32 %f472, %f471, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f473, %f472;
+ mov.f32 %f474, 0fBF317200;
+ fma.rn.f32 %f475, %f473, %f474, %f471;
+ mov.f32 %f476, 0fB5BFBE8E;
+ fma.rn.f32 %f477, %f473, %f476, %f475;
+ mul.f32 %f478, %f477, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f479, %f478;
+ add.f32 %f480, %f473, 0f00000000;
+ ex2.approx.f32 %f481, %f480;
+ mul.f32 %f482, %f479, %f481;
+ setp.lt.f32 %p71, %f471, 0fC2D20000;
+ selp.f32 %f483, 0f00000000, %f482, %p71;
+ setp.gt.f32 %p72, %f471, 0f42D20000;
+ selp.f32 %f742, 0f7F800000, %f483, %p72;
+ setp.eq.f32 %p73, %f742, 0f7F800000;
+ @%p73 bra BB0_74;
+
+ fma.rn.f32 %f742, %f742, %f92, %f742;
+
+BB0_74:
+ setp.lt.f32 %p74, %f74, 0f00000000;
+ setp.eq.f32 %p75, %f90, 0f3F800000;
+ and.pred %p2, %p74, %p75;
+ mov.b32 %r260, %f742;
+ xor.b32 %r261, %r260, -2147483648;
+ mov.b32 %f484, %r261;
+ selp.f32 %f744, %f484, %f742, %p2;
+ setp.eq.f32 %p76, %f74, 0f00000000;
+ @%p76 bra BB0_77;
+ bra.uni BB0_75;
+
+BB0_77:
+ add.f32 %f487, %f74, %f74;
+ selp.f32 %f744, %f487, 0f00000000, %p75;
+ bra.uni BB0_78;
+
+BB0_75:
+ setp.geu.f32 %p77, %f74, 0f00000000;
+ @%p77 bra BB0_78;
+
+ cvt.rzi.f32.f32 %f486, %f458;
+ setp.neu.f32 %p78, %f486, 0f3EE66666;
+ selp.f32 %f744, 0f7FFFFFFF, %f744, %p78;
+
+BB0_78:
+ abs.f32 %f692, %f74;
+ add.f32 %f488, %f692, 0f3EE66666;
+ mov.b32 %r262, %f488;
+ setp.lt.s32 %p80, %r262, 2139095040;
+ @%p80 bra BB0_83;
+
+ abs.f32 %f709, %f74;
+ setp.gtu.f32 %p81, %f709, 0f7F800000;
+ @%p81 bra BB0_82;
+ bra.uni BB0_80;
+
+BB0_82:
+ add.f32 %f744, %f74, 0f3EE66666;
+ bra.uni BB0_83;
+
+BB0_80:
+ abs.f32 %f710, %f74;
+ setp.neu.f32 %p82, %f710, 0f7F800000;
+ @%p82 bra BB0_83;
+
+ selp.f32 %f744, 0fFF800000, 0f7F800000, %p2;
+
+BB0_83:
+ mov.f32 %f700, 0fB5BFBE8E;
+ mov.f32 %f699, 0fBF317200;
+ mov.f32 %f698, 0f35BFBE8E;
+ mov.f32 %f697, 0f3F317200;
+ mov.f32 %f696, 0f3DAAAABD;
+ mov.f32 %f695, 0f3C4CAF63;
+ mov.f32 %f694, 0f3B18F0FE;
+ mov.f32 %f693, 0f00000000;
+ setp.eq.f32 %p83, %f74, 0f3F800000;
+ selp.f32 %f103, 0f3F800000, %f744, %p83;
+ abs.f32 %f104, %f75;
+ setp.lt.f32 %p84, %f104, 0f00800000;
+ mul.f32 %f491, %f104, 0f4B800000;
+ selp.f32 %f492, 0fC3170000, 0fC2FE0000, %p84;
+ selp.f32 %f493, %f491, %f104, %p84;
+ mov.b32 %r263, %f493;
+ and.b32 %r264, %r263, 8388607;
+ or.b32 %r265, %r264, 1065353216;
+ mov.b32 %f494, %r265;
+ shr.u32 %r266, %r263, 23;
+ cvt.rn.f32.u32 %f495, %r266;
+ add.f32 %f496, %f492, %f495;
+ setp.gt.f32 %p85, %f494, 0f3FB504F3;
+ mul.f32 %f497, %f494, 0f3F000000;
+ add.f32 %f498, %f496, 0f3F800000;
+ selp.f32 %f499, %f497, %f494, %p85;
+ selp.f32 %f500, %f498, %f496, %p85;
+ add.f32 %f501, %f499, 0fBF800000;
+ add.f32 %f490, %f499, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f489,%f490;
+ // inline asm
+ add.f32 %f502, %f501, %f501;
+ mul.f32 %f503, %f489, %f502;
+ mul.f32 %f504, %f503, %f503;
+ fma.rn.f32 %f507, %f694, %f504, %f695;
+ fma.rn.f32 %f509, %f507, %f504, %f696;
+ mul.rn.f32 %f510, %f509, %f504;
+ mul.rn.f32 %f511, %f510, %f503;
+ sub.f32 %f512, %f501, %f503;
+ neg.f32 %f513, %f503;
+ add.f32 %f514, %f512, %f512;
+ fma.rn.f32 %f515, %f513, %f501, %f514;
+ mul.rn.f32 %f516, %f489, %f515;
+ add.f32 %f517, %f511, %f503;
+ sub.f32 %f518, %f503, %f517;
+ add.f32 %f519, %f511, %f518;
+ add.f32 %f520, %f516, %f519;
+ add.f32 %f521, %f517, %f520;
+ sub.f32 %f522, %f517, %f521;
+ add.f32 %f523, %f520, %f522;
+ mul.rn.f32 %f525, %f500, %f697;
+ mul.rn.f32 %f527, %f500, %f698;
+ add.f32 %f528, %f525, %f521;
+ sub.f32 %f529, %f525, %f528;
+ add.f32 %f530, %f521, %f529;
+ add.f32 %f531, %f523, %f530;
+ add.f32 %f532, %f527, %f531;
+ add.f32 %f533, %f528, %f532;
+ sub.f32 %f534, %f528, %f533;
+ add.f32 %f535, %f532, %f534;
+ mul.rn.f32 %f537, %f458, %f533;
+ neg.f32 %f538, %f537;
+ fma.rn.f32 %f539, %f458, %f533, %f538;
+ fma.rn.f32 %f540, %f458, %f535, %f539;
+ fma.rn.f32 %f542, %f693, %f533, %f540;
+ add.rn.f32 %f543, %f537, %f542;
+ neg.f32 %f544, %f543;
+ add.rn.f32 %f545, %f537, %f544;
+ add.rn.f32 %f546, %f545, %f542;
+ mov.b32 %r267, %f543;
+ setp.eq.s32 %p86, %r267, 1118925336;
+ add.s32 %r268, %r267, -1;
+ mov.b32 %f547, %r268;
+ add.f32 %f548, %f546, 0f37000000;
+ selp.f32 %f549, %f547, %f543, %p86;
+ selp.f32 %f105, %f548, %f546, %p86;
+ mul.f32 %f550, %f549, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f551, %f550;
+ fma.rn.f32 %f553, %f551, %f699, %f549;
+ fma.rn.f32 %f555, %f551, %f700, %f553;
+ mul.f32 %f556, %f555, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f557, %f556;
+ add.f32 %f558, %f551, 0f00000000;
+ ex2.approx.f32 %f559, %f558;
+ mul.f32 %f560, %f557, %f559;
+ setp.lt.f32 %p87, %f549, 0fC2D20000;
+ selp.f32 %f561, 0f00000000, %f560, %p87;
+ setp.gt.f32 %p88, %f549, 0f42D20000;
+ selp.f32 %f745, 0f7F800000, %f561, %p88;
+ setp.eq.f32 %p89, %f745, 0f7F800000;
+ @%p89 bra BB0_85;
+
+ fma.rn.f32 %f745, %f745, %f105, %f745;
+
+BB0_85:
+ setp.lt.f32 %p90, %f75, 0f00000000;
+ and.pred %p3, %p90, %p75;
+ mov.b32 %r269, %f745;
+ xor.b32 %r270, %r269, -2147483648;
+ mov.b32 %f562, %r270;
+ selp.f32 %f747, %f562, %f745, %p3;
+ setp.eq.f32 %p92, %f75, 0f00000000;
+ @%p92 bra BB0_88;
+ bra.uni BB0_86;
+
+BB0_88:
+ add.f32 %f565, %f75, %f75;
+ selp.f32 %f747, %f565, 0f00000000, %p75;
+ bra.uni BB0_89;
+
+BB0_86:
+ setp.geu.f32 %p93, %f75, 0f00000000;
+ @%p93 bra BB0_89;
+
+ mov.f32 %f716, 0f3EE66666;
+ cvt.rzi.f32.f32 %f564, %f716;
+ setp.neu.f32 %p94, %f564, 0f3EE66666;
+ selp.f32 %f747, 0f7FFFFFFF, %f747, %p94;
+
+BB0_89:
+ abs.f32 %f711, %f75;
+ add.f32 %f566, %f711, 0f3EE66666;
+ mov.b32 %r271, %f566;
+ setp.lt.s32 %p96, %r271, 2139095040;
+ @%p96 bra BB0_94;
+
+ abs.f32 %f714, %f75;
+ setp.gtu.f32 %p97, %f714, 0f7F800000;
+ @%p97 bra BB0_93;
+ bra.uni BB0_91;
+
+BB0_93:
+ add.f32 %f747, %f75, 0f3EE66666;
+ bra.uni BB0_94;
+
+BB0_91:
+ abs.f32 %f715, %f75;
+ setp.neu.f32 %p98, %f715, 0f7F800000;
+ @%p98 bra BB0_94;
+
+ selp.f32 %f747, 0fFF800000, 0f7F800000, %p3;
+
+BB0_94:
+ mov.f32 %f712, 0f3EE66666;
+ mov.f32 %f708, 0fB5BFBE8E;
+ mov.f32 %f707, 0fBF317200;
+ mov.f32 %f706, 0f35BFBE8E;
+ mov.f32 %f705, 0f3F317200;
+ mov.f32 %f704, 0f3DAAAABD;
+ mov.f32 %f703, 0f3C4CAF63;
+ mov.f32 %f702, 0f3B18F0FE;
+ mov.f32 %f701, 0f00000000;
+ setp.eq.f32 %p99, %f75, 0f3F800000;
+ selp.f32 %f116, 0f3F800000, %f747, %p99;
+ abs.f32 %f117, %f76;
+ setp.lt.f32 %p100, %f117, 0f00800000;
+ mul.f32 %f569, %f117, 0f4B800000;
+ selp.f32 %f570, 0fC3170000, 0fC2FE0000, %p100;
+ selp.f32 %f571, %f569, %f117, %p100;
+ mov.b32 %r272, %f571;
+ and.b32 %r273, %r272, 8388607;
+ or.b32 %r274, %r273, 1065353216;
+ mov.b32 %f572, %r274;
+ shr.u32 %r275, %r272, 23;
+ cvt.rn.f32.u32 %f573, %r275;
+ add.f32 %f574, %f570, %f573;
+ setp.gt.f32 %p101, %f572, 0f3FB504F3;
+ mul.f32 %f575, %f572, 0f3F000000;
+ add.f32 %f576, %f574, 0f3F800000;
+ selp.f32 %f577, %f575, %f572, %p101;
+ selp.f32 %f578, %f576, %f574, %p101;
+ add.f32 %f579, %f577, 0fBF800000;
+ add.f32 %f568, %f577, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f567,%f568;
+ // inline asm
+ add.f32 %f580, %f579, %f579;
+ mul.f32 %f581, %f567, %f580;
+ mul.f32 %f582, %f581, %f581;
+ fma.rn.f32 %f585, %f702, %f582, %f703;
+ fma.rn.f32 %f587, %f585, %f582, %f704;
+ mul.rn.f32 %f588, %f587, %f582;
+ mul.rn.f32 %f589, %f588, %f581;
+ sub.f32 %f590, %f579, %f581;
+ neg.f32 %f591, %f581;
+ add.f32 %f592, %f590, %f590;
+ fma.rn.f32 %f593, %f591, %f579, %f592;
+ mul.rn.f32 %f594, %f567, %f593;
+ add.f32 %f595, %f589, %f581;
+ sub.f32 %f596, %f581, %f595;
+ add.f32 %f597, %f589, %f596;
+ add.f32 %f598, %f594, %f597;
+ add.f32 %f599, %f595, %f598;
+ sub.f32 %f600, %f595, %f599;
+ add.f32 %f601, %f598, %f600;
+ mul.rn.f32 %f603, %f578, %f705;
+ mul.rn.f32 %f605, %f578, %f706;
+ add.f32 %f606, %f603, %f599;
+ sub.f32 %f607, %f603, %f606;
+ add.f32 %f608, %f599, %f607;
+ add.f32 %f609, %f601, %f608;
+ add.f32 %f610, %f605, %f609;
+ add.f32 %f611, %f606, %f610;
+ sub.f32 %f612, %f606, %f611;
+ add.f32 %f613, %f610, %f612;
+ mul.rn.f32 %f615, %f712, %f611;
+ neg.f32 %f616, %f615;
+ fma.rn.f32 %f617, %f712, %f611, %f616;
+ fma.rn.f32 %f618, %f712, %f613, %f617;
+ fma.rn.f32 %f620, %f701, %f611, %f618;
+ add.rn.f32 %f621, %f615, %f620;
+ neg.f32 %f622, %f621;
+ add.rn.f32 %f623, %f615, %f622;
+ add.rn.f32 %f624, %f623, %f620;
+ mov.b32 %r276, %f621;
+ setp.eq.s32 %p102, %r276, 1118925336;
+ add.s32 %r277, %r276, -1;
+ mov.b32 %f625, %r277;
+ add.f32 %f626, %f624, 0f37000000;
+ selp.f32 %f627, %f625, %f621, %p102;
+ selp.f32 %f118, %f626, %f624, %p102;
+ mul.f32 %f628, %f627, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f629, %f628;
+ fma.rn.f32 %f631, %f629, %f707, %f627;
+ fma.rn.f32 %f633, %f629, %f708, %f631;
+ mul.f32 %f634, %f633, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f635, %f634;
+ add.f32 %f636, %f629, 0f00000000;
+ ex2.approx.f32 %f637, %f636;
+ mul.f32 %f638, %f635, %f637;
+ setp.lt.f32 %p103, %f627, 0fC2D20000;
+ selp.f32 %f639, 0f00000000, %f638, %p103;
+ setp.gt.f32 %p104, %f627, 0f42D20000;
+ selp.f32 %f748, 0f7F800000, %f639, %p104;
+ setp.eq.f32 %p105, %f748, 0f7F800000;
+ @%p105 bra BB0_96;
+
+ fma.rn.f32 %f748, %f748, %f118, %f748;
+
+BB0_96:
+ setp.lt.f32 %p106, %f76, 0f00000000;
+ and.pred %p4, %p106, %p75;
+ mov.b32 %r278, %f748;
+ xor.b32 %r279, %r278, -2147483648;
+ mov.b32 %f640, %r279;
+ selp.f32 %f750, %f640, %f748, %p4;
+ setp.eq.f32 %p108, %f76, 0f00000000;
+ @%p108 bra BB0_99;
+ bra.uni BB0_97;
+
+BB0_99:
+ add.f32 %f643, %f76, %f76;
+ selp.f32 %f750, %f643, 0f00000000, %p75;
+ bra.uni BB0_100;
+
+BB0_97:
+ setp.geu.f32 %p109, %f76, 0f00000000;
+ @%p109 bra BB0_100;
+
+ mov.f32 %f713, 0f3EE66666;
+ cvt.rzi.f32.f32 %f642, %f713;
+ setp.neu.f32 %p110, %f642, 0f3EE66666;
+ selp.f32 %f750, 0f7FFFFFFF, %f750, %p110;
+
+BB0_100:
+ add.f32 %f644, %f117, 0f3EE66666;
+ mov.b32 %r280, %f644;
+ setp.lt.s32 %p112, %r280, 2139095040;
+ @%p112 bra BB0_105;
+
+ setp.gtu.f32 %p113, %f117, 0f7F800000;
+ @%p113 bra BB0_104;
+ bra.uni BB0_102;
+
+BB0_104:
+ add.f32 %f750, %f76, 0f3EE66666;
+ bra.uni BB0_105;
+
+BB0_102:
+ setp.neu.f32 %p114, %f117, 0f7F800000;
+ @%p114 bra BB0_105;
+
+ selp.f32 %f750, 0fFF800000, 0f7F800000, %p4;
+
+BB0_105:
+ mov.u32 %r334, 4;
+ mov.u64 %rd178, 0;
+ mov.u32 %r333, 2;
+ setp.eq.f32 %p115, %f76, 0f3F800000;
+ selp.f32 %f645, 0f3F800000, %f750, %p115;
+ cvt.u64.u32 %rd65, %r3;
+ cvt.u64.u32 %rd64, %r2;
+ mov.u64 %rd68, image;
+ cvta.global.u64 %rd63, %rd68;
+ // inline asm
+ call (%rd62), _rt_buffer_get_64, (%rd63, %r333, %r334, %rd64, %rd65, %rd178, %rd178);
+ // inline asm
+ cvt.sat.f32.f32 %f646, %f645;
+ mul.f32 %f647, %f646, 0f437FFD71;
+ cvt.rzi.u32.f32 %r283, %f647;
+ cvt.sat.f32.f32 %f648, %f116;
+ mul.f32 %f649, %f648, 0f437FFD71;
+ cvt.rzi.u32.f32 %r284, %f649;
+ cvt.sat.f32.f32 %f650, %f103;
+ mul.f32 %f651, %f650, 0f437FFD71;
+ cvt.rzi.u32.f32 %r285, %f651;
+ cvt.u16.u32 %rs13, %r283;
+ cvt.u16.u32 %rs14, %r285;
+ cvt.u16.u32 %rs15, %r284;
+ mov.u16 %rs16, 255;
+ st.v4.u8 [%rd62], {%rs13, %rs15, %rs14, %rs16};
+ ld.global.u32 %r368, [imageEnabled];
+
+BB0_106:
+ and.b32 %r286, %r368, 4;
+ setp.eq.s32 %p116, %r286, 0;
+ @%p116 bra BB0_110;
+
+ ld.global.u32 %r287, [additive];
+ setp.eq.s32 %p117, %r287, 0;
+ cvt.u64.u32 %rd16, %r2;
+ cvt.u64.u32 %rd17, %r3;
+ mov.f32 %f652, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs17, %f652;}
+
+ // inline asm
+ @%p117 bra BB0_109;
+
+ mov.u64 %rd179, 0;
+ mov.u32 %r335, 2;
+ mov.u64 %rd81, image_HDR;
+ cvta.global.u64 %rd70, %rd81;
+ mov.u32 %r291, 8;
+ // inline asm
+ call (%rd69), _rt_buffer_get_64, (%rd70, %r335, %r291, %rd16, %rd17, %rd179, %rd179);
+ // inline asm
+ ld.v4.u16 {%rs24, %rs25, %rs26, %rs27}, [%rd69];
+ // inline asm
+ { cvt.f32.f16 %f653, %rs24;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f654, %rs25;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f655, %rs26;}
+
+ // inline asm
+ // inline asm
+ call (%rd75), _rt_buffer_get_64, (%rd70, %r335, %r291, %rd16, %rd17, %rd179, %rd179);
+ // inline asm
+ add.f32 %f656, %f74, %f653;
+ add.f32 %f657, %f75, %f654;
+ add.f32 %f658, %f76, %f655;
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f658;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f657;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs21, %f656;}
+
+ // inline asm
+ st.v4.u16 [%rd75], {%rs21, %rs22, %rs23, %rs17};
+ bra.uni BB0_110;
+
+BB0_109:
+ mov.u64 %rd180, 0;
+ mov.u32 %r336, 2;
+ mov.u64 %rd88, image_HDR;
+ cvta.global.u64 %rd83, %rd88;
+ mov.u32 %r293, 8;
+ // inline asm
+ call (%rd82), _rt_buffer_get_64, (%rd83, %r336, %r293, %rd16, %rd17, %rd180, %rd180);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f76;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f75;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f74;}
+
+ // inline asm
+ st.v4.u16 [%rd82], {%rs28, %rs29, %rs30, %rs17};
+
+BB0_110:
+ ld.global.u8 %rs31, [imageEnabled];
+ and.b16 %rs32, %rs31, 64;
+ setp.eq.s16 %p118, %rs32, 0;
+ @%p118 bra BB0_132;
+
+ mov.u32 %r338, 4;
+ mov.u64 %rd181, 0;
+ mov.u32 %r337, 2;
+ ld.global.f32 %f662, [directDir];
+ ld.global.f32 %f663, [directDir+4];
+ ld.global.f32 %f664, [directDir+8];
+ cvt.u64.u32 %rd92, %r3;
+ cvt.u64.u32 %rd91, %r2;
+ mov.u64 %rd95, image_Dir;
+ cvta.global.u64 %rd90, %rd95;
+ // inline asm
+ call (%rd89), _rt_buffer_get_64, (%rd90, %r337, %r338, %rd91, %rd92, %rd181, %rd181);
+ // inline asm
+ fma.rn.f32 %f665, %f662, 0fBF000000, 0f3F000000;
+ mul.f32 %f666, %f665, 0f437F0000;
+ cvt.rzi.u32.f32 %r296, %f666;
+ fma.rn.f32 %f667, %f663, 0fBF000000, 0f3F000000;
+ mul.f32 %f668, %f667, 0f437F0000;
+ cvt.rzi.u32.f32 %r297, %f668;
+ fma.rn.f32 %f669, %f664, 0fBF000000, 0f3F000000;
+ mul.f32 %f670, %f669, 0f437F0000;
+ cvt.rzi.u32.f32 %r298, %f670;
+ cvt.u16.u32 %rs33, %r298;
+ cvt.u16.u32 %rs34, %r297;
+ cvt.u16.u32 %rs35, %r296;
+ mov.u16 %rs36, 255;
+ st.v4.u8 [%rd89], {%rs35, %rs34, %rs33, %rs36};
+
+BB0_132:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadow.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadow.ptx.meta
new file mode 100644
index 00000000..2b994b15
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadow.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 22a23f40220350645b1ad4b887eeebc1
+timeCreated: 1581075098
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowProbeSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowProbeSH.ptx
new file mode 100644
index 00000000..0d302f81
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowProbeSH.ptx
@@ -0,0 +1,2133 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .b8 directDir[12];
+.global .align 4 .b8 directColor[12];
+.global .align 4 .f32 shadowSpread;
+.global .align 4 .u32 samples;
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .u32 lightCookie;
+.global .align 16 .b8 lightTilingOffset[16];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9directDirE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11directColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12shadowSpreadE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightCookieE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo17lightTilingOffsetE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9directDirE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11directColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12shadowSpreadE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename11lightCookieE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename17lightTilingOffsetE[7] = {102, 108, 111, 97, 116, 52, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9directDirE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11directColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12shadowSpreadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightCookieE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum17lightTilingOffsetE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9directDirE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11directColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12shadowSpreadE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightCookieE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic17lightTilingOffsetE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9directDirE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11directColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12shadowSpreadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightCookieE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation17lightTilingOffsetE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<124>;
+ .reg .b16 %rs<152>;
+ .reg .f32 %f<815>;
+ .reg .b32 %r<390>;
+ .reg .b64 %rd<286>;
+
+
+ mov.u64 %rd285, __local_depot0;
+ cvta.local.u64 %SP, %rd285;
+ ld.global.v2.u32 {%r101, %r102}, [pixelID];
+ cvt.u64.u32 %rd22, %r101;
+ cvt.u64.u32 %rd23, %r102;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r99, 2;
+ mov.u32 %r100, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r99, %r100, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r1, [%rd20];
+ shr.u32 %r105, %r1, 16;
+ cvt.u16.u32 %rs1, %r105;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r1;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p5, %rs9, 0;
+ mov.f32 %f783, 0f00000000;
+ mov.f32 %f784, %f783;
+ mov.f32 %f785, %f783;
+ @%p5 bra BB0_2;
+
+ ld.u8 %rs10, [%rd20+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f138, %rs12;
+ div.rn.f32 %f139, %f138, 0f437F0000;
+ fma.rn.f32 %f140, %f139, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f141, %rs10;
+ div.rn.f32 %f142, %f141, 0f437F0000;
+ fma.rn.f32 %f143, %f142, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f144, %rs7;
+ div.rn.f32 %f145, %f144, 0f437F0000;
+ fma.rn.f32 %f146, %f145, 0f40000000, 0fBF800000;
+ mul.f32 %f147, %f143, %f143;
+ fma.rn.f32 %f148, %f140, %f140, %f147;
+ fma.rn.f32 %f149, %f146, %f146, %f148;
+ sqrt.rn.f32 %f150, %f149;
+ rcp.rn.f32 %f151, %f150;
+ mul.f32 %f783, %f140, %f151;
+ mul.f32 %f784, %f143, %f151;
+ mul.f32 %f785, %f146, %f151;
+
+BB0_2:
+ ld.global.v2.u32 {%r106, %r107}, [pixelID];
+ ld.global.v2.u32 {%r109, %r110}, [tileInfo];
+ add.s32 %r2, %r106, %r109;
+ add.s32 %r3, %r107, %r110;
+ setp.eq.f32 %p6, %f784, 0f00000000;
+ setp.eq.f32 %p7, %f783, 0f00000000;
+ and.pred %p8, %p7, %p6;
+ setp.eq.f32 %p9, %f785, 0f00000000;
+ and.pred %p10, %p8, %p9;
+ @%p10 bra BB0_121;
+ bra.uni BB0_3;
+
+BB0_121:
+ ld.global.u32 %r389, [imageEnabled];
+ and.b32 %r314, %r389, 1;
+ setp.eq.b32 %p116, %r314, 1;
+ @!%p116 bra BB0_123;
+ bra.uni BB0_122;
+
+BB0_122:
+ cvt.u64.u32 %rd169, %r2;
+ cvt.u64.u32 %rd170, %r3;
+ mov.u64 %rd173, image;
+ cvta.global.u64 %rd168, %rd173;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r99, %r100, %rd169, %rd170, %rd25, %rd25);
+ // inline asm
+ mov.u16 %rs84, 0;
+ st.v4.u8 [%rd167], {%rs84, %rs84, %rs84, %rs84};
+ ld.global.u32 %r389, [imageEnabled];
+
+BB0_123:
+ and.b32 %r317, %r389, 8;
+ setp.eq.s32 %p117, %r317, 0;
+ @%p117 bra BB0_125;
+
+ cvt.u64.u32 %rd177, %r3;
+ cvt.u64.u32 %rd176, %r2;
+ mov.u64 %rd180, image_Mask;
+ cvta.global.u64 %rd175, %rd180;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r99, %r99, %rd176, %rd177, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f704, 0f00000000;
+ cvt.rzi.u32.f32 %r320, %f704;
+ cvt.u16.u32 %rs85, %r320;
+ mov.u16 %rs86, 0;
+ st.v2.u8 [%rd174], {%rs85, %rs86};
+ ld.global.u32 %r389, [imageEnabled];
+
+BB0_125:
+ cvt.u64.u32 %rd18, %r2;
+ cvt.u64.u32 %rd19, %r3;
+ and.b32 %r321, %r389, 4;
+ setp.eq.s32 %p118, %r321, 0;
+ @%p118 bra BB0_129;
+
+ ld.global.u32 %r322, [additive];
+ setp.eq.s32 %p119, %r322, 0;
+ @%p119 bra BB0_128;
+
+ mov.u64 %rd193, image_HDR;
+ cvta.global.u64 %rd182, %rd193;
+ mov.u32 %r326, 8;
+ // inline asm
+ call (%rd181), _rt_buffer_get_64, (%rd182, %r99, %r326, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs93, %rs94, %rs95, %rs96}, [%rd181];
+ // inline asm
+ { cvt.f32.f16 %f705, %rs93;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f706, %rs94;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f707, %rs95;}
+
+ // inline asm
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd182, %r99, %r326, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f708, %f705, 0f00000000;
+ add.f32 %f709, %f706, 0f00000000;
+ add.f32 %f710, %f707, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f710;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f709;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f708;}
+
+ // inline asm
+ mov.u16 %rs97, 0;
+ st.v4.u16 [%rd187], {%rs90, %rs91, %rs92, %rs97};
+ bra.uni BB0_129;
+
+BB0_3:
+ ld.global.f32 %f9, [directDir+8];
+ ld.global.f32 %f8, [directDir+4];
+ ld.global.f32 %f7, [directDir];
+ mul.f32 %f153, %f783, %f7;
+ mul.f32 %f154, %f784, %f8;
+ neg.f32 %f155, %f154;
+ sub.f32 %f156, %f155, %f153;
+ mul.f32 %f157, %f785, %f9;
+ sub.f32 %f10, %f156, %f157;
+ ld.global.v2.u32 {%r118, %r119}, [pixelID];
+ cvt.u64.u32 %rd29, %r118;
+ cvt.u64.u32 %rd30, %r119;
+ mov.u64 %rd39, uvpos;
+ cvta.global.u64 %rd28, %rd39;
+ mov.u32 %r115, 12;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r99, %r115, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f13, [%rd27+8];
+ ld.f32 %f12, [%rd27+4];
+ ld.f32 %f11, [%rd27];
+ mul.f32 %f158, %f11, 0f3456BF95;
+ mul.f32 %f159, %f12, 0f3456BF95;
+ mul.f32 %f160, %f13, 0f3456BF95;
+ abs.f32 %f161, %f783;
+ div.rn.f32 %f162, %f158, %f161;
+ abs.f32 %f163, %f784;
+ div.rn.f32 %f164, %f159, %f163;
+ abs.f32 %f165, %f785;
+ div.rn.f32 %f166, %f160, %f165;
+ abs.f32 %f167, %f162;
+ abs.f32 %f168, %f164;
+ abs.f32 %f169, %f166;
+ mov.f32 %f170, 0f38D1B717;
+ max.f32 %f171, %f167, %f170;
+ max.f32 %f172, %f168, %f170;
+ max.f32 %f173, %f169, %f170;
+ fma.rn.f32 %f14, %f783, %f171, %f11;
+ fma.rn.f32 %f15, %f784, %f172, %f12;
+ fma.rn.f32 %f16, %f785, %f173, %f13;
+ abs.f32 %f174, %f7;
+ abs.f32 %f175, %f9;
+ setp.gt.f32 %p11, %f174, %f175;
+ neg.f32 %f176, %f8;
+ neg.f32 %f177, %f9;
+ selp.f32 %f178, %f176, 0f00000000, %p11;
+ selp.f32 %f179, %f7, %f177, %p11;
+ selp.f32 %f180, 0f00000000, %f8, %p11;
+ mul.f32 %f181, %f179, %f179;
+ fma.rn.f32 %f182, %f178, %f178, %f181;
+ fma.rn.f32 %f183, %f180, %f180, %f182;
+ sqrt.rn.f32 %f184, %f183;
+ rcp.rn.f32 %f185, %f184;
+ mul.f32 %f17, %f178, %f185;
+ mul.f32 %f18, %f179, %f185;
+ mul.f32 %f19, %f180, %f185;
+ mul.f32 %f186, %f9, %f18;
+ mul.f32 %f187, %f8, %f19;
+ sub.f32 %f20, %f186, %f187;
+ mul.f32 %f188, %f7, %f19;
+ mul.f32 %f189, %f9, %f17;
+ sub.f32 %f21, %f188, %f189;
+ mul.f32 %f190, %f8, %f17;
+ mul.f32 %f191, %f7, %f18;
+ sub.f32 %f22, %f190, %f191;
+ ld.global.v2.u32 {%r122, %r123}, [pixelID];
+ cvt.u64.u32 %rd35, %r122;
+ cvt.u64.u32 %rd36, %r123;
+ mov.u64 %rd40, rnd_seeds;
+ cvta.global.u64 %rd34, %rd40;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r99, %r100, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ ld.global.u32 %r358, [samples];
+ mov.f32 %f800, 0f00000000;
+ setp.lt.s32 %p12, %r358, 1;
+ @%p12 bra BB0_55;
+
+ cvt.rn.f32.s32 %f193, %r358;
+ rcp.rn.f32 %f23, %f193;
+ ld.u32 %r384, [%rd33];
+ mul.f32 %f24, %f14, 0f3456BF95;
+ mul.f32 %f25, %f15, 0f3456BF95;
+ mul.f32 %f26, %f16, 0f3456BF95;
+ mov.f32 %f800, 0f00000000;
+ mov.u32 %r359, 0;
+ abs.f32 %f194, %f25;
+ abs.f32 %f195, %f24;
+ max.f32 %f196, %f195, %f194;
+ abs.f32 %f197, %f26;
+ max.f32 %f198, %f196, %f197;
+
+BB0_5:
+ setp.lt.s32 %p13, %r358, 1;
+ @%p13 bra BB0_54;
+
+ cvt.rn.f32.s32 %f28, %r359;
+ max.f32 %f29, %f198, %f170;
+ mov.u32 %r361, 0;
+
+BB0_7:
+ mad.lo.s32 %r128, %r384, 1664525, 1013904223;
+ and.b32 %r129, %r128, 16777215;
+ cvt.rn.f32.u32 %f200, %r129;
+ fma.rn.f32 %f201, %f200, 0f33800000, %f28;
+ mul.f32 %f202, %f23, %f201;
+ mad.lo.s32 %r384, %r128, 1664525, 1013904223;
+ and.b32 %r130, %r384, 16777215;
+ cvt.rn.f32.u32 %f203, %r130;
+ cvt.rn.f32.s32 %f204, %r361;
+ fma.rn.f32 %f205, %f203, 0f33800000, %f204;
+ mul.f32 %f206, %f23, %f205;
+ sqrt.rn.f32 %f31, %f202;
+ mul.f32 %f794, %f206, 0f40C90FDB;
+ abs.f32 %f33, %f794;
+ setp.neu.f32 %p14, %f33, 0f7F800000;
+ mov.f32 %f788, %f794;
+ @%p14 bra BB0_9;
+
+ mov.f32 %f207, 0f00000000;
+ mul.rn.f32 %f788, %f794, %f207;
+
+BB0_9:
+ mul.f32 %f208, %f788, 0f3F22F983;
+ cvt.rni.s32.f32 %r372, %f208;
+ cvt.rn.f32.s32 %f209, %r372;
+ neg.f32 %f210, %f209;
+ mov.f32 %f211, 0f3FC90FDA;
+ fma.rn.f32 %f212, %f210, %f211, %f788;
+ mov.f32 %f213, 0f33A22168;
+ fma.rn.f32 %f214, %f210, %f213, %f212;
+ mov.f32 %f215, 0f27C234C5;
+ fma.rn.f32 %f789, %f210, %f215, %f214;
+ abs.f32 %f216, %f788;
+ setp.leu.f32 %p15, %f216, 0f47CE4780;
+ @%p15 bra BB0_20;
+
+ mov.b32 %r13, %f788;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r133, %r13, 8;
+ or.b32 %r15, %r133, -2147483648;
+ add.u64 %rd42, %SP, 4;
+ cvta.to.local.u64 %rd282, %rd42;
+ mov.u32 %r364, 0;
+ mov.u64 %rd281, __cudart_i2opi_f;
+ mov.u32 %r363, -6;
+
+BB0_11:
+ .pragma "nounroll";
+ ld.const.u32 %r136, [%rd281];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r134, %r136, %r15, %r364;
+ madc.hi.u32 %r364, %r136, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd282], %r134;
+ add.s64 %rd282, %rd282, 4;
+ add.s64 %rd281, %rd281, 4;
+ add.s32 %r363, %r363, 1;
+ setp.ne.s32 %p16, %r363, 0;
+ @%p16 bra BB0_11;
+
+ and.b32 %r139, %r14, 255;
+ add.s32 %r140, %r139, -128;
+ shr.u32 %r141, %r140, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd44, %rd42;
+ st.local.u32 [%rd44+24], %r364;
+ mov.u32 %r142, 6;
+ sub.s32 %r143, %r142, %r141;
+ mul.wide.s32 %rd45, %r143, 4;
+ add.s64 %rd8, %rd44, %rd45;
+ ld.local.u32 %r365, [%rd8];
+ ld.local.u32 %r366, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p17, %r23, 0;
+ @%p17 bra BB0_14;
+
+ mov.u32 %r144, 32;
+ sub.s32 %r145, %r144, %r23;
+ shr.u32 %r146, %r366, %r145;
+ shl.b32 %r147, %r365, %r23;
+ add.s32 %r365, %r146, %r147;
+ ld.local.u32 %r148, [%rd8+-8];
+ shr.u32 %r149, %r148, %r145;
+ shl.b32 %r150, %r366, %r23;
+ add.s32 %r366, %r149, %r150;
+
+BB0_14:
+ shr.u32 %r151, %r366, 30;
+ shl.b32 %r152, %r365, 2;
+ add.s32 %r367, %r151, %r152;
+ shl.b32 %r29, %r366, 2;
+ shr.u32 %r153, %r367, 31;
+ shr.u32 %r154, %r365, 30;
+ add.s32 %r30, %r153, %r154;
+ setp.eq.s32 %p18, %r153, 0;
+ @%p18 bra BB0_15;
+ bra.uni BB0_16;
+
+BB0_15:
+ mov.u32 %r368, %r20;
+ mov.u32 %r369, %r29;
+ bra.uni BB0_17;
+
+BB0_16:
+ not.b32 %r155, %r367;
+ neg.s32 %r369, %r29;
+ setp.eq.s32 %p19, %r29, 0;
+ selp.u32 %r156, 1, 0, %p19;
+ add.s32 %r367, %r156, %r155;
+ xor.b32 %r368, %r20, -2147483648;
+
+BB0_17:
+ clz.b32 %r371, %r367;
+ setp.eq.s32 %p20, %r371, 0;
+ shl.b32 %r157, %r367, %r371;
+ mov.u32 %r158, 32;
+ sub.s32 %r159, %r158, %r371;
+ shr.u32 %r160, %r369, %r159;
+ add.s32 %r161, %r160, %r157;
+ selp.b32 %r38, %r367, %r161, %p20;
+ mov.u32 %r162, -921707870;
+ mul.hi.u32 %r370, %r38, %r162;
+ setp.eq.s32 %p21, %r20, 0;
+ neg.s32 %r163, %r30;
+ selp.b32 %r372, %r30, %r163, %p21;
+ setp.lt.s32 %p22, %r370, 1;
+ @%p22 bra BB0_19;
+
+ mul.lo.s32 %r164, %r38, -921707870;
+ shr.u32 %r165, %r164, 31;
+ shl.b32 %r166, %r370, 1;
+ add.s32 %r370, %r165, %r166;
+ add.s32 %r371, %r371, 1;
+
+BB0_19:
+ mov.u32 %r167, 126;
+ sub.s32 %r168, %r167, %r371;
+ shl.b32 %r169, %r168, 23;
+ add.s32 %r170, %r370, 1;
+ shr.u32 %r171, %r170, 7;
+ add.s32 %r172, %r171, 1;
+ shr.u32 %r173, %r172, 1;
+ add.s32 %r174, %r173, %r169;
+ or.b32 %r175, %r174, %r368;
+ mov.b32 %f789, %r175;
+
+BB0_20:
+ mul.rn.f32 %f39, %f789, %f789;
+ add.s32 %r46, %r372, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p23, %r47, 0;
+ @%p23 bra BB0_22;
+ bra.uni BB0_21;
+
+BB0_22:
+ mov.f32 %f219, 0f3C08839E;
+ mov.f32 %f220, 0fB94CA1F9;
+ fma.rn.f32 %f790, %f220, %f39, %f219;
+ bra.uni BB0_23;
+
+BB0_21:
+ mov.f32 %f217, 0fBAB6061A;
+ mov.f32 %f218, 0f37CCF5CE;
+ fma.rn.f32 %f790, %f218, %f39, %f217;
+
+BB0_23:
+ @%p23 bra BB0_25;
+ bra.uni BB0_24;
+
+BB0_25:
+ mov.f32 %f224, 0fBE2AAAA3;
+ fma.rn.f32 %f225, %f790, %f39, %f224;
+ mov.f32 %f226, 0f00000000;
+ fma.rn.f32 %f791, %f225, %f39, %f226;
+ bra.uni BB0_26;
+
+BB0_24:
+ mov.f32 %f221, 0f3D2AAAA5;
+ fma.rn.f32 %f222, %f790, %f39, %f221;
+ mov.f32 %f223, 0fBF000000;
+ fma.rn.f32 %f791, %f222, %f39, %f223;
+
+BB0_26:
+ fma.rn.f32 %f792, %f791, %f789, %f789;
+ @%p23 bra BB0_28;
+
+ mov.f32 %f227, 0f3F800000;
+ fma.rn.f32 %f792, %f791, %f39, %f227;
+
+BB0_28:
+ and.b32 %r176, %r46, 2;
+ setp.eq.s32 %p26, %r176, 0;
+ @%p26 bra BB0_30;
+
+ mov.f32 %f228, 0f00000000;
+ mov.f32 %f229, 0fBF800000;
+ fma.rn.f32 %f792, %f792, %f229, %f228;
+
+BB0_30:
+ @%p14 bra BB0_32;
+
+ mov.f32 %f230, 0f00000000;
+ mul.rn.f32 %f794, %f794, %f230;
+
+BB0_32:
+ mul.f32 %f231, %f794, 0f3F22F983;
+ cvt.rni.s32.f32 %r382, %f231;
+ cvt.rn.f32.s32 %f232, %r382;
+ neg.f32 %f233, %f232;
+ fma.rn.f32 %f235, %f233, %f211, %f794;
+ fma.rn.f32 %f237, %f233, %f213, %f235;
+ fma.rn.f32 %f795, %f233, %f215, %f237;
+ abs.f32 %f239, %f794;
+ setp.leu.f32 %p28, %f239, 0f47CE4780;
+ @%p28 bra BB0_43;
+
+ mov.b32 %r49, %f794;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r179, %r49, 8;
+ or.b32 %r51, %r179, -2147483648;
+ add.u64 %rd47, %SP, 4;
+ cvta.to.local.u64 %rd284, %rd47;
+ mov.u32 %r374, 0;
+ mov.u64 %rd283, __cudart_i2opi_f;
+ mov.u32 %r373, -6;
+
+BB0_34:
+ .pragma "nounroll";
+ ld.const.u32 %r182, [%rd283];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r180, %r182, %r51, %r374;
+ madc.hi.u32 %r374, %r182, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd284], %r180;
+ add.s64 %rd284, %rd284, 4;
+ add.s64 %rd283, %rd283, 4;
+ add.s32 %r373, %r373, 1;
+ setp.ne.s32 %p29, %r373, 0;
+ @%p29 bra BB0_34;
+
+ and.b32 %r185, %r50, 255;
+ add.s32 %r186, %r185, -128;
+ shr.u32 %r187, %r186, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd49, %rd47;
+ st.local.u32 [%rd49+24], %r374;
+ mov.u32 %r188, 6;
+ sub.s32 %r189, %r188, %r187;
+ mul.wide.s32 %rd50, %r189, 4;
+ add.s64 %rd14, %rd49, %rd50;
+ ld.local.u32 %r375, [%rd14];
+ ld.local.u32 %r376, [%rd14+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p30, %r59, 0;
+ @%p30 bra BB0_37;
+
+ mov.u32 %r190, 32;
+ sub.s32 %r191, %r190, %r59;
+ shr.u32 %r192, %r376, %r191;
+ shl.b32 %r193, %r375, %r59;
+ add.s32 %r375, %r192, %r193;
+ ld.local.u32 %r194, [%rd14+-8];
+ shr.u32 %r195, %r194, %r191;
+ shl.b32 %r196, %r376, %r59;
+ add.s32 %r376, %r195, %r196;
+
+BB0_37:
+ shr.u32 %r197, %r376, 30;
+ shl.b32 %r198, %r375, 2;
+ add.s32 %r377, %r197, %r198;
+ shl.b32 %r65, %r376, 2;
+ shr.u32 %r199, %r377, 31;
+ shr.u32 %r200, %r375, 30;
+ add.s32 %r66, %r199, %r200;
+ setp.eq.s32 %p31, %r199, 0;
+ @%p31 bra BB0_38;
+ bra.uni BB0_39;
+
+BB0_38:
+ mov.u32 %r378, %r56;
+ mov.u32 %r379, %r65;
+ bra.uni BB0_40;
+
+BB0_39:
+ not.b32 %r201, %r377;
+ neg.s32 %r379, %r65;
+ setp.eq.s32 %p32, %r65, 0;
+ selp.u32 %r202, 1, 0, %p32;
+ add.s32 %r377, %r202, %r201;
+ xor.b32 %r378, %r56, -2147483648;
+
+BB0_40:
+ clz.b32 %r381, %r377;
+ setp.eq.s32 %p33, %r381, 0;
+ shl.b32 %r203, %r377, %r381;
+ mov.u32 %r204, 32;
+ sub.s32 %r205, %r204, %r381;
+ shr.u32 %r206, %r379, %r205;
+ add.s32 %r207, %r206, %r203;
+ selp.b32 %r74, %r377, %r207, %p33;
+ mov.u32 %r208, -921707870;
+ mul.hi.u32 %r380, %r74, %r208;
+ setp.eq.s32 %p34, %r56, 0;
+ neg.s32 %r209, %r66;
+ selp.b32 %r382, %r66, %r209, %p34;
+ setp.lt.s32 %p35, %r380, 1;
+ @%p35 bra BB0_42;
+
+ mul.lo.s32 %r210, %r74, -921707870;
+ shr.u32 %r211, %r210, 31;
+ shl.b32 %r212, %r380, 1;
+ add.s32 %r380, %r211, %r212;
+ add.s32 %r381, %r381, 1;
+
+BB0_42:
+ mov.u32 %r213, 126;
+ sub.s32 %r214, %r213, %r381;
+ shl.b32 %r215, %r214, 23;
+ add.s32 %r216, %r380, 1;
+ shr.u32 %r217, %r216, 7;
+ add.s32 %r218, %r217, 1;
+ shr.u32 %r219, %r218, 1;
+ add.s32 %r220, %r219, %r215;
+ or.b32 %r221, %r220, %r378;
+ mov.b32 %f795, %r221;
+
+BB0_43:
+ mul.rn.f32 %f56, %f795, %f795;
+ and.b32 %r82, %r382, 1;
+ setp.eq.s32 %p36, %r82, 0;
+ @%p36 bra BB0_45;
+ bra.uni BB0_44;
+
+BB0_45:
+ mov.f32 %f242, 0f3C08839E;
+ mov.f32 %f243, 0fB94CA1F9;
+ fma.rn.f32 %f796, %f243, %f56, %f242;
+ bra.uni BB0_46;
+
+BB0_44:
+ mov.f32 %f240, 0fBAB6061A;
+ mov.f32 %f241, 0f37CCF5CE;
+ fma.rn.f32 %f796, %f241, %f56, %f240;
+
+BB0_46:
+ @%p36 bra BB0_48;
+ bra.uni BB0_47;
+
+BB0_48:
+ mov.f32 %f247, 0fBE2AAAA3;
+ fma.rn.f32 %f248, %f796, %f56, %f247;
+ mov.f32 %f249, 0f00000000;
+ fma.rn.f32 %f797, %f248, %f56, %f249;
+ bra.uni BB0_49;
+
+BB0_47:
+ mov.f32 %f244, 0f3D2AAAA5;
+ fma.rn.f32 %f245, %f796, %f56, %f244;
+ mov.f32 %f246, 0fBF000000;
+ fma.rn.f32 %f797, %f245, %f56, %f246;
+
+BB0_49:
+ fma.rn.f32 %f798, %f797, %f795, %f795;
+ @%p36 bra BB0_51;
+
+ mov.f32 %f250, 0f3F800000;
+ fma.rn.f32 %f798, %f797, %f56, %f250;
+
+BB0_51:
+ and.b32 %r222, %r382, 2;
+ setp.eq.s32 %p39, %r222, 0;
+ @%p39 bra BB0_53;
+
+ mov.f32 %f251, 0f00000000;
+ mov.f32 %f252, 0fBF800000;
+ fma.rn.f32 %f798, %f798, %f252, %f251;
+
+BB0_53:
+ mul.f32 %f261, %f31, %f792;
+ add.u64 %rd51, %SP, 0;
+ cvta.to.local.u64 %rd52, %rd51;
+ mul.f32 %f262, %f261, %f261;
+ mov.f32 %f263, 0f3F800000;
+ sub.f32 %f264, %f263, %f262;
+ mul.f32 %f265, %f31, %f798;
+ mul.f32 %f266, %f265, %f265;
+ sub.f32 %f267, %f264, %f266;
+ mov.f32 %f268, 0f00000000;
+ max.f32 %f269, %f268, %f267;
+ sqrt.rn.f32 %f270, %f269;
+ mul.f32 %f271, %f17, %f265;
+ mul.f32 %f272, %f18, %f265;
+ mul.f32 %f273, %f19, %f265;
+ fma.rn.f32 %f274, %f20, %f261, %f271;
+ fma.rn.f32 %f275, %f21, %f261, %f272;
+ fma.rn.f32 %f276, %f22, %f261, %f273;
+ fma.rn.f32 %f277, %f7, %f270, %f274;
+ fma.rn.f32 %f278, %f8, %f270, %f275;
+ fma.rn.f32 %f279, %f9, %f270, %f276;
+ add.f32 %f280, %f7, %f277;
+ add.f32 %f281, %f8, %f278;
+ add.f32 %f282, %f9, %f279;
+ ld.global.f32 %f283, [shadowSpread];
+ mul.f32 %f284, %f283, %f280;
+ mul.f32 %f285, %f283, %f281;
+ mul.f32 %f286, %f283, %f282;
+ sub.f32 %f287, %f284, %f7;
+ sub.f32 %f288, %f285, %f8;
+ sub.f32 %f289, %f286, %f9;
+ mul.f32 %f290, %f288, %f288;
+ fma.rn.f32 %f291, %f287, %f287, %f290;
+ fma.rn.f32 %f292, %f289, %f289, %f291;
+ sqrt.rn.f32 %f293, %f292;
+ rcp.rn.f32 %f294, %f293;
+ mul.f32 %f256, %f294, %f287;
+ mul.f32 %f257, %f294, %f288;
+ mul.f32 %f258, %f294, %f289;
+ ld.global.u32 %r226, [imageEnabled];
+ and.b32 %r227, %r226, 32;
+ setp.eq.s32 %p40, %r227, 0;
+ selp.f32 %f295, 0f3F800000, 0f41200000, %p40;
+ mul.f32 %f259, %f295, %f29;
+ mov.u32 %r228, 1065353216;
+ st.local.u32 [%rd52], %r228;
+ ld.global.u32 %r223, [root];
+ mov.u32 %r224, 1;
+ mov.f32 %f260, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r223, %f14, %f15, %f16, %f256, %f257, %f258, %r224, %f259, %f260, %rd51, %r100);
+ // inline asm
+ ld.local.f32 %f296, [%rd52];
+ add.f32 %f800, %f800, %f296;
+ ld.global.u32 %r358, [samples];
+ add.s32 %r361, %r361, 1;
+ setp.lt.s32 %p41, %r361, %r358;
+ @%p41 bra BB0_7;
+
+BB0_54:
+ add.s32 %r359, %r359, 1;
+ setp.lt.s32 %p42, %r359, %r358;
+ @%p42 bra BB0_5;
+
+BB0_55:
+ setp.eq.s32 %p43, %r358, 0;
+ mov.f32 %f802, 0f3F800000;
+ @%p43 bra BB0_57;
+
+ mul.lo.s32 %r229, %r358, %r358;
+ cvt.rn.f32.s32 %f298, %r229;
+ div.rn.f32 %f802, %f800, %f298;
+
+BB0_57:
+ mul.f32 %f307, %f12, %f21;
+ fma.rn.f32 %f308, %f11, %f20, %f307;
+ fma.rn.f32 %f309, %f13, %f22, %f308;
+ ld.global.v4.f32 {%f310, %f311, %f312, %f313}, [lightTilingOffset];
+ fma.rn.f32 %f303, %f309, %f310, %f312;
+ mul.f32 %f316, %f12, %f18;
+ fma.rn.f32 %f317, %f11, %f17, %f316;
+ fma.rn.f32 %f318, %f13, %f19, %f317;
+ fma.rn.f32 %f304, %f318, %f311, %f313;
+ ld.global.u32 %r230, [lightCookie];
+ mov.f32 %f306, 0f00000000;
+ // inline asm
+ call (%f299, %f300, %f301, %f302), _rt_texture_get_f_id, (%r230, %r99, %f303, %f304, %f306, %f306);
+ // inline asm
+ mul.f32 %f73, %f802, %f299;
+ ld.global.f32 %f321, [directColor];
+ mul.f32 %f322, %f321, %f73;
+ ld.global.f32 %f323, [directColor+4];
+ mul.f32 %f324, %f323, %f73;
+ ld.global.f32 %f325, [directColor+8];
+ mul.f32 %f326, %f73, %f325;
+ cvt.sat.f32.f32 %f327, %f10;
+ mul.f32 %f74, %f322, %f327;
+ mul.f32 %f75, %f324, %f327;
+ mul.f32 %f76, %f326, %f327;
+ mul.f32 %f77, %f322, 0f3E800000;
+ mul.f32 %f78, %f324, 0f3E800000;
+ mul.f32 %f79, %f326, 0f3E800000;
+ ld.global.u32 %r387, [imageEnabled];
+ and.b32 %r232, %r387, 8;
+ setp.eq.s32 %p44, %r232, 0;
+ @%p44 bra BB0_70;
+
+ cvt.u64.u32 %rd55, %r2;
+ cvt.u64.u32 %rd56, %r3;
+ mov.u64 %rd59, image_Mask;
+ cvta.global.u64 %rd54, %rd59;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r99, %r99, %rd55, %rd56, %rd25, %rd25);
+ // inline asm
+ abs.f32 %f81, %f73;
+ setp.lt.f32 %p45, %f81, 0f00800000;
+ mul.f32 %f333, %f81, 0f4B800000;
+ selp.f32 %f334, 0fC3170000, 0fC2FE0000, %p45;
+ selp.f32 %f335, %f333, %f81, %p45;
+ mov.b32 %r235, %f335;
+ and.b32 %r236, %r235, 8388607;
+ or.b32 %r237, %r236, 1065353216;
+ mov.b32 %f336, %r237;
+ shr.u32 %r238, %r235, 23;
+ cvt.rn.f32.u32 %f337, %r238;
+ add.f32 %f338, %f334, %f337;
+ setp.gt.f32 %p46, %f336, 0f3FB504F3;
+ mul.f32 %f339, %f336, 0f3F000000;
+ add.f32 %f340, %f338, 0f3F800000;
+ selp.f32 %f341, %f339, %f336, %p46;
+ selp.f32 %f342, %f340, %f338, %p46;
+ add.f32 %f343, %f341, 0fBF800000;
+ add.f32 %f329, %f341, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f328,%f329;
+ // inline asm
+ add.f32 %f344, %f343, %f343;
+ mul.f32 %f345, %f328, %f344;
+ mul.f32 %f346, %f345, %f345;
+ mov.f32 %f347, 0f3C4CAF63;
+ mov.f32 %f348, 0f3B18F0FE;
+ fma.rn.f32 %f349, %f348, %f346, %f347;
+ mov.f32 %f350, 0f3DAAAABD;
+ fma.rn.f32 %f351, %f349, %f346, %f350;
+ mul.rn.f32 %f352, %f351, %f346;
+ mul.rn.f32 %f353, %f352, %f345;
+ sub.f32 %f354, %f343, %f345;
+ neg.f32 %f355, %f345;
+ add.f32 %f356, %f354, %f354;
+ fma.rn.f32 %f357, %f355, %f343, %f356;
+ mul.rn.f32 %f358, %f328, %f357;
+ add.f32 %f359, %f353, %f345;
+ sub.f32 %f360, %f345, %f359;
+ add.f32 %f361, %f353, %f360;
+ add.f32 %f362, %f358, %f361;
+ add.f32 %f363, %f359, %f362;
+ sub.f32 %f364, %f359, %f363;
+ add.f32 %f365, %f362, %f364;
+ mov.f32 %f366, 0f3F317200;
+ mul.rn.f32 %f367, %f342, %f366;
+ mov.f32 %f368, 0f35BFBE8E;
+ mul.rn.f32 %f369, %f342, %f368;
+ add.f32 %f370, %f367, %f363;
+ sub.f32 %f371, %f367, %f370;
+ add.f32 %f372, %f363, %f371;
+ add.f32 %f373, %f365, %f372;
+ add.f32 %f374, %f369, %f373;
+ add.f32 %f375, %f370, %f374;
+ sub.f32 %f376, %f370, %f375;
+ add.f32 %f377, %f374, %f376;
+ mov.f32 %f378, 0f3EE8BA2E;
+ mul.rn.f32 %f379, %f378, %f375;
+ neg.f32 %f380, %f379;
+ fma.rn.f32 %f381, %f378, %f375, %f380;
+ fma.rn.f32 %f382, %f378, %f377, %f381;
+ fma.rn.f32 %f384, %f306, %f375, %f382;
+ add.rn.f32 %f385, %f379, %f384;
+ neg.f32 %f386, %f385;
+ add.rn.f32 %f387, %f379, %f386;
+ add.rn.f32 %f388, %f387, %f384;
+ mov.b32 %r239, %f385;
+ setp.eq.s32 %p47, %r239, 1118925336;
+ add.s32 %r240, %r239, -1;
+ mov.b32 %f389, %r240;
+ add.f32 %f390, %f388, 0f37000000;
+ selp.f32 %f391, %f389, %f385, %p47;
+ selp.f32 %f82, %f390, %f388, %p47;
+ mul.f32 %f392, %f391, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f393, %f392;
+ mov.f32 %f394, 0fBF317200;
+ fma.rn.f32 %f395, %f393, %f394, %f391;
+ mov.f32 %f396, 0fB5BFBE8E;
+ fma.rn.f32 %f397, %f393, %f396, %f395;
+ mul.f32 %f398, %f397, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f399, %f398;
+ add.f32 %f400, %f393, 0f00000000;
+ ex2.approx.f32 %f401, %f400;
+ mul.f32 %f402, %f399, %f401;
+ setp.lt.f32 %p48, %f391, 0fC2D20000;
+ selp.f32 %f403, 0f00000000, %f402, %p48;
+ setp.gt.f32 %p49, %f391, 0f42D20000;
+ selp.f32 %f803, 0f7F800000, %f403, %p49;
+ setp.eq.f32 %p50, %f803, 0f7F800000;
+ @%p50 bra BB0_60;
+
+ fma.rn.f32 %f803, %f803, %f82, %f803;
+
+BB0_60:
+ mov.f32 %f774, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f773, %f774;
+ fma.rn.f32 %f772, %f773, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f771, %f772;
+ setp.lt.f32 %p51, %f73, 0f00000000;
+ setp.eq.f32 %p52, %f771, 0f3F800000;
+ and.pred %p1, %p51, %p52;
+ mov.b32 %r241, %f803;
+ xor.b32 %r242, %r241, -2147483648;
+ mov.b32 %f404, %r242;
+ selp.f32 %f805, %f404, %f803, %p1;
+ setp.eq.f32 %p53, %f73, 0f00000000;
+ @%p53 bra BB0_63;
+ bra.uni BB0_61;
+
+BB0_63:
+ add.f32 %f407, %f73, %f73;
+ selp.f32 %f805, %f407, 0f00000000, %p52;
+ bra.uni BB0_64;
+
+BB0_128:
+ mov.u64 %rd200, image_HDR;
+ cvta.global.u64 %rd195, %rd200;
+ mov.u32 %r328, 8;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r99, %r328, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f711, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f711;}
+
+ // inline asm
+ mov.u16 %rs99, 0;
+ st.v4.u16 [%rd194], {%rs98, %rs98, %rs98, %rs99};
+
+BB0_129:
+ ld.global.u32 %r329, [additive];
+ setp.eq.s32 %p120, %r329, 0;
+ @%p120 bra BB0_131;
+
+ mov.u64 %rd213, image_RNM0;
+ cvta.global.u64 %rd202, %rd213;
+ mov.u32 %r333, 8;
+ // inline asm
+ call (%rd201), _rt_buffer_get_64, (%rd202, %r99, %r333, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs106, %rs107, %rs108, %rs109}, [%rd201];
+ // inline asm
+ { cvt.f32.f16 %f712, %rs106;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f713, %rs107;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f714, %rs108;}
+
+ // inline asm
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd202, %r99, %r333, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f715, %f712, 0f00000000;
+ add.f32 %f716, %f713, 0f00000000;
+ add.f32 %f717, %f714, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f717;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f716;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs103, %f715;}
+
+ // inline asm
+ mov.u16 %rs110, 0;
+ st.v4.u16 [%rd207], {%rs103, %rs104, %rs105, %rs110};
+ bra.uni BB0_132;
+
+BB0_131:
+ mov.u64 %rd220, image_RNM0;
+ cvta.global.u64 %rd215, %rd220;
+ mov.u32 %r335, 8;
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd215, %r99, %r335, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f718, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f718;}
+
+ // inline asm
+ mov.u16 %rs112, 0;
+ st.v4.u16 [%rd214], {%rs111, %rs111, %rs111, %rs112};
+
+BB0_132:
+ ld.global.u32 %r336, [additive];
+ setp.eq.s32 %p121, %r336, 0;
+ @%p121 bra BB0_134;
+
+ mov.u64 %rd233, image_RNM1;
+ cvta.global.u64 %rd222, %rd233;
+ mov.u32 %r340, 8;
+ // inline asm
+ call (%rd221), _rt_buffer_get_64, (%rd222, %r99, %r340, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs119, %rs120, %rs121, %rs122}, [%rd221];
+ // inline asm
+ { cvt.f32.f16 %f719, %rs119;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f720, %rs120;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f721, %rs121;}
+
+ // inline asm
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd222, %r99, %r340, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f722, %f719, 0f00000000;
+ add.f32 %f723, %f720, 0f00000000;
+ add.f32 %f724, %f721, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs118, %f724;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f723;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f722;}
+
+ // inline asm
+ mov.u16 %rs123, 0;
+ st.v4.u16 [%rd227], {%rs116, %rs117, %rs118, %rs123};
+ bra.uni BB0_135;
+
+BB0_134:
+ mov.u64 %rd240, image_RNM1;
+ cvta.global.u64 %rd235, %rd240;
+ mov.u32 %r342, 8;
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd235, %r99, %r342, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f725, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs124, %f725;}
+
+ // inline asm
+ mov.u16 %rs125, 0;
+ st.v4.u16 [%rd234], {%rs124, %rs124, %rs124, %rs125};
+
+BB0_135:
+ ld.global.u32 %r343, [additive];
+ setp.eq.s32 %p122, %r343, 0;
+ @%p122 bra BB0_137;
+
+ mov.u64 %rd253, image_RNM2;
+ cvta.global.u64 %rd242, %rd253;
+ mov.u32 %r347, 8;
+ // inline asm
+ call (%rd241), _rt_buffer_get_64, (%rd242, %r99, %r347, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs132, %rs133, %rs134, %rs135}, [%rd241];
+ // inline asm
+ { cvt.f32.f16 %f726, %rs132;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f727, %rs133;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f728, %rs134;}
+
+ // inline asm
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd242, %r99, %r347, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f729, %f726, 0f00000000;
+ add.f32 %f730, %f727, 0f00000000;
+ add.f32 %f731, %f728, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs131, %f731;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f730;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f729;}
+
+ // inline asm
+ mov.u16 %rs136, 0;
+ st.v4.u16 [%rd247], {%rs129, %rs130, %rs131, %rs136};
+ bra.uni BB0_138;
+
+BB0_137:
+ mov.u64 %rd260, image_RNM2;
+ cvta.global.u64 %rd255, %rd260;
+ mov.u32 %r349, 8;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r99, %r349, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f732, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs137, %f732;}
+
+ // inline asm
+ mov.u16 %rs138, 0;
+ st.v4.u16 [%rd254], {%rs137, %rs137, %rs137, %rs138};
+
+BB0_138:
+ ld.global.u32 %r350, [additive];
+ setp.eq.s32 %p123, %r350, 0;
+ @%p123 bra BB0_140;
+
+ mov.u64 %rd273, image_RNM3;
+ cvta.global.u64 %rd262, %rd273;
+ mov.u32 %r354, 8;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r99, %r354, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs145, %rs146, %rs147, %rs148}, [%rd261];
+ // inline asm
+ { cvt.f32.f16 %f733, %rs145;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f734, %rs146;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f735, %rs147;}
+
+ // inline asm
+ // inline asm
+ call (%rd267), _rt_buffer_get_64, (%rd262, %r99, %r354, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f736, %f733, 0f00000000;
+ add.f32 %f737, %f734, 0f00000000;
+ add.f32 %f738, %f735, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs144, %f738;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f737;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs142, %f736;}
+
+ // inline asm
+ mov.u16 %rs149, 0;
+ st.v4.u16 [%rd267], {%rs142, %rs143, %rs144, %rs149};
+ bra.uni BB0_141;
+
+BB0_140:
+ mov.u64 %rd280, image_RNM3;
+ cvta.global.u64 %rd275, %rd280;
+ mov.u32 %r356, 8;
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd275, %r99, %r356, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f739, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f739;}
+
+ // inline asm
+ mov.u16 %rs151, 0;
+ st.v4.u16 [%rd274], {%rs150, %rs150, %rs150, %rs151};
+ bra.uni BB0_141;
+
+BB0_61:
+ setp.geu.f32 %p54, %f73, 0f00000000;
+ @%p54 bra BB0_64;
+
+ mov.f32 %f779, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f406, %f779;
+ setp.neu.f32 %p55, %f406, 0f3EE8BA2E;
+ selp.f32 %f805, 0f7FFFFFFF, %f805, %p55;
+
+BB0_64:
+ abs.f32 %f775, %f73;
+ add.f32 %f408, %f775, 0f3EE8BA2E;
+ mov.b32 %r243, %f408;
+ setp.lt.s32 %p57, %r243, 2139095040;
+ @%p57 bra BB0_69;
+
+ abs.f32 %f777, %f73;
+ setp.gtu.f32 %p58, %f777, 0f7F800000;
+ @%p58 bra BB0_68;
+ bra.uni BB0_66;
+
+BB0_68:
+ add.f32 %f805, %f73, 0f3EE8BA2E;
+ bra.uni BB0_69;
+
+BB0_66:
+ abs.f32 %f778, %f73;
+ setp.neu.f32 %p59, %f778, 0f7F800000;
+ @%p59 bra BB0_69;
+
+ selp.f32 %f805, 0fFF800000, 0f7F800000, %p1;
+
+BB0_69:
+ mul.f32 %f409, %f805, 0f437F0000;
+ setp.eq.f32 %p60, %f73, 0f3F800000;
+ selp.f32 %f410, 0f437F0000, %f409, %p60;
+ cvt.rzi.u32.f32 %r244, %f410;
+ cvt.u16.u32 %rs14, %r244;
+ mov.u16 %rs15, 255;
+ st.v2.u8 [%rd53], {%rs14, %rs15};
+ ld.global.u32 %r387, [imageEnabled];
+
+BB0_70:
+ and.b32 %r245, %r387, 1;
+ setp.eq.b32 %p61, %r245, 1;
+ @!%p61 bra BB0_105;
+ bra.uni BB0_71;
+
+BB0_71:
+ mov.f32 %f776, 0f00000000;
+ abs.f32 %f94, %f74;
+ setp.lt.f32 %p62, %f94, 0f00800000;
+ mul.f32 %f416, %f94, 0f4B800000;
+ selp.f32 %f417, 0fC3170000, 0fC2FE0000, %p62;
+ selp.f32 %f418, %f416, %f94, %p62;
+ mov.b32 %r246, %f418;
+ and.b32 %r247, %r246, 8388607;
+ or.b32 %r248, %r247, 1065353216;
+ mov.b32 %f419, %r248;
+ shr.u32 %r249, %r246, 23;
+ cvt.rn.f32.u32 %f420, %r249;
+ add.f32 %f421, %f417, %f420;
+ setp.gt.f32 %p63, %f419, 0f3FB504F3;
+ mul.f32 %f422, %f419, 0f3F000000;
+ add.f32 %f423, %f421, 0f3F800000;
+ selp.f32 %f424, %f422, %f419, %p63;
+ selp.f32 %f425, %f423, %f421, %p63;
+ add.f32 %f426, %f424, 0fBF800000;
+ add.f32 %f412, %f424, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f411,%f412;
+ // inline asm
+ add.f32 %f427, %f426, %f426;
+ mul.f32 %f428, %f411, %f427;
+ mul.f32 %f429, %f428, %f428;
+ mov.f32 %f430, 0f3C4CAF63;
+ mov.f32 %f431, 0f3B18F0FE;
+ fma.rn.f32 %f432, %f431, %f429, %f430;
+ mov.f32 %f433, 0f3DAAAABD;
+ fma.rn.f32 %f434, %f432, %f429, %f433;
+ mul.rn.f32 %f435, %f434, %f429;
+ mul.rn.f32 %f436, %f435, %f428;
+ sub.f32 %f437, %f426, %f428;
+ neg.f32 %f438, %f428;
+ add.f32 %f439, %f437, %f437;
+ fma.rn.f32 %f440, %f438, %f426, %f439;
+ mul.rn.f32 %f441, %f411, %f440;
+ add.f32 %f442, %f436, %f428;
+ sub.f32 %f443, %f428, %f442;
+ add.f32 %f444, %f436, %f443;
+ add.f32 %f445, %f441, %f444;
+ add.f32 %f446, %f442, %f445;
+ sub.f32 %f447, %f442, %f446;
+ add.f32 %f448, %f445, %f447;
+ mov.f32 %f449, 0f3F317200;
+ mul.rn.f32 %f450, %f425, %f449;
+ mov.f32 %f451, 0f35BFBE8E;
+ mul.rn.f32 %f452, %f425, %f451;
+ add.f32 %f453, %f450, %f446;
+ sub.f32 %f454, %f450, %f453;
+ add.f32 %f455, %f446, %f454;
+ add.f32 %f456, %f448, %f455;
+ add.f32 %f457, %f452, %f456;
+ add.f32 %f458, %f453, %f457;
+ sub.f32 %f459, %f453, %f458;
+ add.f32 %f460, %f457, %f459;
+ mov.f32 %f461, 0f3EE66666;
+ mul.rn.f32 %f462, %f461, %f458;
+ neg.f32 %f463, %f462;
+ fma.rn.f32 %f464, %f461, %f458, %f463;
+ fma.rn.f32 %f465, %f461, %f460, %f464;
+ fma.rn.f32 %f467, %f776, %f458, %f465;
+ add.rn.f32 %f468, %f462, %f467;
+ neg.f32 %f469, %f468;
+ add.rn.f32 %f470, %f462, %f469;
+ add.rn.f32 %f471, %f470, %f467;
+ mov.b32 %r250, %f468;
+ setp.eq.s32 %p64, %r250, 1118925336;
+ add.s32 %r251, %r250, -1;
+ mov.b32 %f472, %r251;
+ add.f32 %f473, %f471, 0f37000000;
+ selp.f32 %f474, %f472, %f468, %p64;
+ selp.f32 %f95, %f473, %f471, %p64;
+ mul.f32 %f475, %f474, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f476, %f475;
+ mov.f32 %f477, 0fBF317200;
+ fma.rn.f32 %f478, %f476, %f477, %f474;
+ mov.f32 %f479, 0fB5BFBE8E;
+ fma.rn.f32 %f480, %f476, %f479, %f478;
+ mul.f32 %f481, %f480, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f482, %f481;
+ add.f32 %f483, %f476, 0f00000000;
+ ex2.approx.f32 %f484, %f483;
+ mul.f32 %f485, %f482, %f484;
+ setp.lt.f32 %p65, %f474, 0fC2D20000;
+ selp.f32 %f486, 0f00000000, %f485, %p65;
+ setp.gt.f32 %p66, %f474, 0f42D20000;
+ selp.f32 %f806, 0f7F800000, %f486, %p66;
+ setp.eq.f32 %p67, %f806, 0f7F800000;
+ @%p67 bra BB0_73;
+
+ fma.rn.f32 %f806, %f806, %f95, %f806;
+
+BB0_73:
+ mov.f32 %f743, 0f3E666666;
+ cvt.rzi.f32.f32 %f742, %f743;
+ fma.rn.f32 %f741, %f742, 0fC0000000, 0f3EE66666;
+ abs.f32 %f740, %f741;
+ setp.lt.f32 %p68, %f74, 0f00000000;
+ setp.eq.f32 %p69, %f740, 0f3F800000;
+ and.pred %p2, %p68, %p69;
+ mov.b32 %r252, %f806;
+ xor.b32 %r253, %r252, -2147483648;
+ mov.b32 %f487, %r253;
+ selp.f32 %f808, %f487, %f806, %p2;
+ setp.eq.f32 %p70, %f74, 0f00000000;
+ @%p70 bra BB0_76;
+ bra.uni BB0_74;
+
+BB0_76:
+ add.f32 %f490, %f74, %f74;
+ selp.f32 %f808, %f490, 0f00000000, %p69;
+ bra.uni BB0_77;
+
+BB0_74:
+ setp.geu.f32 %p71, %f74, 0f00000000;
+ @%p71 bra BB0_77;
+
+ mov.f32 %f767, 0f3EE66666;
+ cvt.rzi.f32.f32 %f489, %f767;
+ setp.neu.f32 %p72, %f489, 0f3EE66666;
+ selp.f32 %f808, 0f7FFFFFFF, %f808, %p72;
+
+BB0_77:
+ abs.f32 %f744, %f74;
+ add.f32 %f491, %f744, 0f3EE66666;
+ mov.b32 %r254, %f491;
+ setp.lt.s32 %p74, %r254, 2139095040;
+ @%p74 bra BB0_82;
+
+ abs.f32 %f765, %f74;
+ setp.gtu.f32 %p75, %f765, 0f7F800000;
+ @%p75 bra BB0_81;
+ bra.uni BB0_79;
+
+BB0_81:
+ add.f32 %f808, %f74, 0f3EE66666;
+ bra.uni BB0_82;
+
+BB0_79:
+ abs.f32 %f766, %f74;
+ setp.neu.f32 %p76, %f766, 0f7F800000;
+ @%p76 bra BB0_82;
+
+ selp.f32 %f808, 0fFF800000, 0f7F800000, %p2;
+
+BB0_82:
+ mov.f32 %f753, 0fB5BFBE8E;
+ mov.f32 %f752, 0fBF317200;
+ mov.f32 %f751, 0f35BFBE8E;
+ mov.f32 %f750, 0f3F317200;
+ mov.f32 %f749, 0f3DAAAABD;
+ mov.f32 %f748, 0f3C4CAF63;
+ mov.f32 %f747, 0f3B18F0FE;
+ mov.f32 %f746, 0f3EE66666;
+ mov.f32 %f745, 0f00000000;
+ setp.eq.f32 %p77, %f74, 0f3F800000;
+ selp.f32 %f106, 0f3F800000, %f808, %p77;
+ abs.f32 %f107, %f75;
+ setp.lt.f32 %p78, %f107, 0f00800000;
+ mul.f32 %f494, %f107, 0f4B800000;
+ selp.f32 %f495, 0fC3170000, 0fC2FE0000, %p78;
+ selp.f32 %f496, %f494, %f107, %p78;
+ mov.b32 %r255, %f496;
+ and.b32 %r256, %r255, 8388607;
+ or.b32 %r257, %r256, 1065353216;
+ mov.b32 %f497, %r257;
+ shr.u32 %r258, %r255, 23;
+ cvt.rn.f32.u32 %f498, %r258;
+ add.f32 %f499, %f495, %f498;
+ setp.gt.f32 %p79, %f497, 0f3FB504F3;
+ mul.f32 %f500, %f497, 0f3F000000;
+ add.f32 %f501, %f499, 0f3F800000;
+ selp.f32 %f502, %f500, %f497, %p79;
+ selp.f32 %f503, %f501, %f499, %p79;
+ add.f32 %f504, %f502, 0fBF800000;
+ add.f32 %f493, %f502, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f492,%f493;
+ // inline asm
+ add.f32 %f505, %f504, %f504;
+ mul.f32 %f506, %f492, %f505;
+ mul.f32 %f507, %f506, %f506;
+ fma.rn.f32 %f510, %f747, %f507, %f748;
+ fma.rn.f32 %f512, %f510, %f507, %f749;
+ mul.rn.f32 %f513, %f512, %f507;
+ mul.rn.f32 %f514, %f513, %f506;
+ sub.f32 %f515, %f504, %f506;
+ neg.f32 %f516, %f506;
+ add.f32 %f517, %f515, %f515;
+ fma.rn.f32 %f518, %f516, %f504, %f517;
+ mul.rn.f32 %f519, %f492, %f518;
+ add.f32 %f520, %f514, %f506;
+ sub.f32 %f521, %f506, %f520;
+ add.f32 %f522, %f514, %f521;
+ add.f32 %f523, %f519, %f522;
+ add.f32 %f524, %f520, %f523;
+ sub.f32 %f525, %f520, %f524;
+ add.f32 %f526, %f523, %f525;
+ mul.rn.f32 %f528, %f503, %f750;
+ mul.rn.f32 %f530, %f503, %f751;
+ add.f32 %f531, %f528, %f524;
+ sub.f32 %f532, %f528, %f531;
+ add.f32 %f533, %f524, %f532;
+ add.f32 %f534, %f526, %f533;
+ add.f32 %f535, %f530, %f534;
+ add.f32 %f536, %f531, %f535;
+ sub.f32 %f537, %f531, %f536;
+ add.f32 %f538, %f535, %f537;
+ mul.rn.f32 %f540, %f746, %f536;
+ neg.f32 %f541, %f540;
+ fma.rn.f32 %f542, %f746, %f536, %f541;
+ fma.rn.f32 %f543, %f746, %f538, %f542;
+ fma.rn.f32 %f545, %f745, %f536, %f543;
+ add.rn.f32 %f546, %f540, %f545;
+ neg.f32 %f547, %f546;
+ add.rn.f32 %f548, %f540, %f547;
+ add.rn.f32 %f549, %f548, %f545;
+ mov.b32 %r259, %f546;
+ setp.eq.s32 %p80, %r259, 1118925336;
+ add.s32 %r260, %r259, -1;
+ mov.b32 %f550, %r260;
+ add.f32 %f551, %f549, 0f37000000;
+ selp.f32 %f552, %f550, %f546, %p80;
+ selp.f32 %f108, %f551, %f549, %p80;
+ mul.f32 %f553, %f552, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f554, %f553;
+ fma.rn.f32 %f556, %f554, %f752, %f552;
+ fma.rn.f32 %f558, %f554, %f753, %f556;
+ mul.f32 %f559, %f558, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f560, %f559;
+ add.f32 %f561, %f554, 0f00000000;
+ ex2.approx.f32 %f562, %f561;
+ mul.f32 %f563, %f560, %f562;
+ setp.lt.f32 %p81, %f552, 0fC2D20000;
+ selp.f32 %f564, 0f00000000, %f563, %p81;
+ setp.gt.f32 %p82, %f552, 0f42D20000;
+ selp.f32 %f809, 0f7F800000, %f564, %p82;
+ setp.eq.f32 %p83, %f809, 0f7F800000;
+ @%p83 bra BB0_84;
+
+ fma.rn.f32 %f809, %f809, %f108, %f809;
+
+BB0_84:
+ setp.lt.f32 %p84, %f75, 0f00000000;
+ and.pred %p3, %p84, %p69;
+ mov.b32 %r261, %f809;
+ xor.b32 %r262, %r261, -2147483648;
+ mov.b32 %f565, %r262;
+ selp.f32 %f811, %f565, %f809, %p3;
+ setp.eq.f32 %p86, %f75, 0f00000000;
+ @%p86 bra BB0_87;
+ bra.uni BB0_85;
+
+BB0_87:
+ add.f32 %f568, %f75, %f75;
+ selp.f32 %f811, %f568, 0f00000000, %p69;
+ bra.uni BB0_88;
+
+BB0_85:
+ setp.geu.f32 %p87, %f75, 0f00000000;
+ @%p87 bra BB0_88;
+
+ mov.f32 %f764, 0f3EE66666;
+ cvt.rzi.f32.f32 %f567, %f764;
+ setp.neu.f32 %p88, %f567, 0f3EE66666;
+ selp.f32 %f811, 0f7FFFFFFF, %f811, %p88;
+
+BB0_88:
+ abs.f32 %f768, %f75;
+ add.f32 %f569, %f768, 0f3EE66666;
+ mov.b32 %r263, %f569;
+ setp.lt.s32 %p90, %r263, 2139095040;
+ @%p90 bra BB0_93;
+
+ abs.f32 %f769, %f75;
+ setp.gtu.f32 %p91, %f769, 0f7F800000;
+ @%p91 bra BB0_92;
+ bra.uni BB0_90;
+
+BB0_92:
+ add.f32 %f811, %f75, 0f3EE66666;
+ bra.uni BB0_93;
+
+BB0_90:
+ abs.f32 %f770, %f75;
+ setp.neu.f32 %p92, %f770, 0f7F800000;
+ @%p92 bra BB0_93;
+
+ selp.f32 %f811, 0fFF800000, 0f7F800000, %p3;
+
+BB0_93:
+ mov.f32 %f762, 0fB5BFBE8E;
+ mov.f32 %f761, 0fBF317200;
+ mov.f32 %f760, 0f35BFBE8E;
+ mov.f32 %f759, 0f3F317200;
+ mov.f32 %f758, 0f3DAAAABD;
+ mov.f32 %f757, 0f3C4CAF63;
+ mov.f32 %f756, 0f3B18F0FE;
+ mov.f32 %f755, 0f3EE66666;
+ mov.f32 %f754, 0f00000000;
+ setp.eq.f32 %p93, %f75, 0f3F800000;
+ selp.f32 %f119, 0f3F800000, %f811, %p93;
+ abs.f32 %f120, %f76;
+ setp.lt.f32 %p94, %f120, 0f00800000;
+ mul.f32 %f572, %f120, 0f4B800000;
+ selp.f32 %f573, 0fC3170000, 0fC2FE0000, %p94;
+ selp.f32 %f574, %f572, %f120, %p94;
+ mov.b32 %r264, %f574;
+ and.b32 %r265, %r264, 8388607;
+ or.b32 %r266, %r265, 1065353216;
+ mov.b32 %f575, %r266;
+ shr.u32 %r267, %r264, 23;
+ cvt.rn.f32.u32 %f576, %r267;
+ add.f32 %f577, %f573, %f576;
+ setp.gt.f32 %p95, %f575, 0f3FB504F3;
+ mul.f32 %f578, %f575, 0f3F000000;
+ add.f32 %f579, %f577, 0f3F800000;
+ selp.f32 %f580, %f578, %f575, %p95;
+ selp.f32 %f581, %f579, %f577, %p95;
+ add.f32 %f582, %f580, 0fBF800000;
+ add.f32 %f571, %f580, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f570,%f571;
+ // inline asm
+ add.f32 %f583, %f582, %f582;
+ mul.f32 %f584, %f570, %f583;
+ mul.f32 %f585, %f584, %f584;
+ fma.rn.f32 %f588, %f756, %f585, %f757;
+ fma.rn.f32 %f590, %f588, %f585, %f758;
+ mul.rn.f32 %f591, %f590, %f585;
+ mul.rn.f32 %f592, %f591, %f584;
+ sub.f32 %f593, %f582, %f584;
+ neg.f32 %f594, %f584;
+ add.f32 %f595, %f593, %f593;
+ fma.rn.f32 %f596, %f594, %f582, %f595;
+ mul.rn.f32 %f597, %f570, %f596;
+ add.f32 %f598, %f592, %f584;
+ sub.f32 %f599, %f584, %f598;
+ add.f32 %f600, %f592, %f599;
+ add.f32 %f601, %f597, %f600;
+ add.f32 %f602, %f598, %f601;
+ sub.f32 %f603, %f598, %f602;
+ add.f32 %f604, %f601, %f603;
+ mul.rn.f32 %f606, %f581, %f759;
+ mul.rn.f32 %f608, %f581, %f760;
+ add.f32 %f609, %f606, %f602;
+ sub.f32 %f610, %f606, %f609;
+ add.f32 %f611, %f602, %f610;
+ add.f32 %f612, %f604, %f611;
+ add.f32 %f613, %f608, %f612;
+ add.f32 %f614, %f609, %f613;
+ sub.f32 %f615, %f609, %f614;
+ add.f32 %f616, %f613, %f615;
+ mul.rn.f32 %f618, %f755, %f614;
+ neg.f32 %f619, %f618;
+ fma.rn.f32 %f620, %f755, %f614, %f619;
+ fma.rn.f32 %f621, %f755, %f616, %f620;
+ fma.rn.f32 %f623, %f754, %f614, %f621;
+ add.rn.f32 %f624, %f618, %f623;
+ neg.f32 %f625, %f624;
+ add.rn.f32 %f626, %f618, %f625;
+ add.rn.f32 %f627, %f626, %f623;
+ mov.b32 %r268, %f624;
+ setp.eq.s32 %p96, %r268, 1118925336;
+ add.s32 %r269, %r268, -1;
+ mov.b32 %f628, %r269;
+ add.f32 %f629, %f627, 0f37000000;
+ selp.f32 %f630, %f628, %f624, %p96;
+ selp.f32 %f121, %f629, %f627, %p96;
+ mul.f32 %f631, %f630, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f632, %f631;
+ fma.rn.f32 %f634, %f632, %f761, %f630;
+ fma.rn.f32 %f636, %f632, %f762, %f634;
+ mul.f32 %f637, %f636, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f638, %f637;
+ add.f32 %f639, %f632, 0f00000000;
+ ex2.approx.f32 %f640, %f639;
+ mul.f32 %f641, %f638, %f640;
+ setp.lt.f32 %p97, %f630, 0fC2D20000;
+ selp.f32 %f642, 0f00000000, %f641, %p97;
+ setp.gt.f32 %p98, %f630, 0f42D20000;
+ selp.f32 %f812, 0f7F800000, %f642, %p98;
+ setp.eq.f32 %p99, %f812, 0f7F800000;
+ @%p99 bra BB0_95;
+
+ fma.rn.f32 %f812, %f812, %f121, %f812;
+
+BB0_95:
+ setp.lt.f32 %p100, %f76, 0f00000000;
+ and.pred %p4, %p100, %p69;
+ mov.b32 %r270, %f812;
+ xor.b32 %r271, %r270, -2147483648;
+ mov.b32 %f643, %r271;
+ selp.f32 %f814, %f643, %f812, %p4;
+ setp.eq.f32 %p102, %f76, 0f00000000;
+ @%p102 bra BB0_98;
+ bra.uni BB0_96;
+
+BB0_98:
+ add.f32 %f646, %f76, %f76;
+ selp.f32 %f814, %f646, 0f00000000, %p69;
+ bra.uni BB0_99;
+
+BB0_96:
+ setp.geu.f32 %p103, %f76, 0f00000000;
+ @%p103 bra BB0_99;
+
+ mov.f32 %f763, 0f3EE66666;
+ cvt.rzi.f32.f32 %f645, %f763;
+ setp.neu.f32 %p104, %f645, 0f3EE66666;
+ selp.f32 %f814, 0f7FFFFFFF, %f814, %p104;
+
+BB0_99:
+ abs.f32 %f780, %f76;
+ add.f32 %f647, %f780, 0f3EE66666;
+ mov.b32 %r272, %f647;
+ setp.lt.s32 %p106, %r272, 2139095040;
+ @%p106 bra BB0_104;
+
+ abs.f32 %f781, %f76;
+ setp.gtu.f32 %p107, %f781, 0f7F800000;
+ @%p107 bra BB0_103;
+ bra.uni BB0_101;
+
+BB0_103:
+ add.f32 %f814, %f76, 0f3EE66666;
+ bra.uni BB0_104;
+
+BB0_101:
+ abs.f32 %f782, %f76;
+ setp.neu.f32 %p108, %f782, 0f7F800000;
+ @%p108 bra BB0_104;
+
+ selp.f32 %f814, 0fFF800000, 0f7F800000, %p4;
+
+BB0_104:
+ mov.u32 %r357, 4;
+ setp.eq.f32 %p109, %f76, 0f3F800000;
+ selp.f32 %f648, 0f3F800000, %f814, %p109;
+ cvt.u64.u32 %rd63, %r3;
+ cvt.u64.u32 %rd62, %r2;
+ mov.u64 %rd66, image;
+ cvta.global.u64 %rd61, %rd66;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r99, %r357, %rd62, %rd63, %rd25, %rd25);
+ // inline asm
+ cvt.sat.f32.f32 %f649, %f648;
+ mul.f32 %f650, %f649, 0f437FFD71;
+ cvt.rzi.u32.f32 %r275, %f650;
+ cvt.sat.f32.f32 %f651, %f119;
+ mul.f32 %f652, %f651, 0f437FFD71;
+ cvt.rzi.u32.f32 %r276, %f652;
+ cvt.sat.f32.f32 %f653, %f106;
+ mul.f32 %f654, %f653, 0f437FFD71;
+ cvt.rzi.u32.f32 %r277, %f654;
+ cvt.u16.u32 %rs16, %r275;
+ cvt.u16.u32 %rs17, %r277;
+ cvt.u16.u32 %rs18, %r276;
+ mov.u16 %rs19, 255;
+ st.v4.u8 [%rd60], {%rs16, %rs18, %rs17, %rs19};
+ ld.global.u32 %r387, [imageEnabled];
+
+BB0_105:
+ cvt.u64.u32 %rd16, %r2;
+ cvt.u64.u32 %rd17, %r3;
+ and.b32 %r278, %r387, 4;
+ setp.eq.s32 %p110, %r278, 0;
+ @%p110 bra BB0_109;
+
+ ld.global.u32 %r279, [additive];
+ setp.eq.s32 %p111, %r279, 0;
+ mov.f32 %f655, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f655;}
+
+ // inline asm
+ @%p111 bra BB0_108;
+
+ mov.u64 %rd79, image_HDR;
+ cvta.global.u64 %rd68, %rd79;
+ mov.u32 %r283, 8;
+ // inline asm
+ call (%rd67), _rt_buffer_get_64, (%rd68, %r99, %r283, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs27, %rs28, %rs29, %rs30}, [%rd67];
+ // inline asm
+ { cvt.f32.f16 %f656, %rs27;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f657, %rs28;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f658, %rs29;}
+
+ // inline asm
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd68, %r99, %r283, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f659, %f74, %f656;
+ add.f32 %f660, %f75, %f657;
+ add.f32 %f661, %f76, %f658;
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f661;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f660;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f659;}
+
+ // inline asm
+ st.v4.u16 [%rd73], {%rs24, %rs25, %rs26, %rs20};
+ bra.uni BB0_109;
+
+BB0_108:
+ mov.u64 %rd86, image_HDR;
+ cvta.global.u64 %rd81, %rd86;
+ mov.u32 %r285, 8;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r99, %r285, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f76;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f75;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f74;}
+
+ // inline asm
+ st.v4.u16 [%rd80], {%rs31, %rs32, %rs33, %rs20};
+
+BB0_109:
+ ld.global.u32 %r286, [additive];
+ setp.eq.s32 %p112, %r286, 0;
+ mov.f32 %f665, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f665;}
+
+ // inline asm
+ @%p112 bra BB0_111;
+
+ mov.u64 %rd99, image_RNM0;
+ cvta.global.u64 %rd88, %rd99;
+ mov.u32 %r290, 8;
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd88, %r99, %r290, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs41, %rs42, %rs43, %rs44}, [%rd87];
+ // inline asm
+ { cvt.f32.f16 %f666, %rs41;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f667, %rs42;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f668, %rs43;}
+
+ // inline asm
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd88, %r99, %r290, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f669, %f77, %f666;
+ add.f32 %f670, %f78, %f667;
+ add.f32 %f671, %f79, %f668;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f671;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f670;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f669;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs38, %rs39, %rs40, %rs34};
+ bra.uni BB0_112;
+
+BB0_111:
+ mov.u64 %rd106, image_RNM0;
+ cvta.global.u64 %rd101, %rd106;
+ mov.u32 %r292, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r99, %r292, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f79;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f78;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f77;}
+
+ // inline asm
+ st.v4.u16 [%rd100], {%rs45, %rs46, %rs47, %rs34};
+
+BB0_112:
+ ld.global.f32 %f676, [directDir];
+ fma.rn.f32 %f132, %f676, 0fBF000000, 0f3F000000;
+ ld.global.f32 %f677, [directDir+4];
+ fma.rn.f32 %f133, %f677, 0fBF000000, 0f3F000000;
+ ld.global.f32 %f678, [directDir+8];
+ fma.rn.f32 %f134, %f678, 0fBF000000, 0f3F000000;
+ ld.global.u32 %r293, [additive];
+ setp.eq.s32 %p113, %r293, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f665;}
+
+ // inline asm
+ @%p113 bra BB0_114;
+
+ mov.u64 %rd119, image_RNM1;
+ cvta.global.u64 %rd108, %rd119;
+ mov.u32 %r297, 8;
+ // inline asm
+ call (%rd107), _rt_buffer_get_64, (%rd108, %r99, %r297, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs55, %rs56, %rs57, %rs58}, [%rd107];
+ // inline asm
+ { cvt.f32.f16 %f679, %rs55;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f680, %rs56;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f681, %rs57;}
+
+ // inline asm
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd108, %r99, %r297, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f682, %f132, %f679;
+ add.f32 %f683, %f132, %f680;
+ add.f32 %f684, %f132, %f681;
+ // inline asm
+ { cvt.rn.f16.f32 %rs54, %f684;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f683;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f682;}
+
+ // inline asm
+ st.v4.u16 [%rd113], {%rs52, %rs53, %rs54, %rs48};
+ bra.uni BB0_115;
+
+BB0_114:
+ mov.u64 %rd126, image_RNM1;
+ cvta.global.u64 %rd121, %rd126;
+ mov.u32 %r299, 8;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd121, %r99, %r299, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f132;}
+
+ // inline asm
+ st.v4.u16 [%rd120], {%rs59, %rs59, %rs59, %rs48};
+
+BB0_115:
+ ld.global.u32 %r300, [additive];
+ setp.eq.s32 %p114, %r300, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f665;}
+
+ // inline asm
+ @%p114 bra BB0_117;
+
+ mov.u64 %rd139, image_RNM2;
+ cvta.global.u64 %rd128, %rd139;
+ mov.u32 %r304, 8;
+ // inline asm
+ call (%rd127), _rt_buffer_get_64, (%rd128, %r99, %r304, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd127];
+ // inline asm
+ { cvt.f32.f16 %f687, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f688, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f689, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd128, %r99, %r304, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f690, %f133, %f687;
+ add.f32 %f691, %f133, %f688;
+ add.f32 %f692, %f133, %f689;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f692;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f691;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f690;}
+
+ // inline asm
+ st.v4.u16 [%rd133], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_118;
+
+BB0_117:
+ mov.u64 %rd146, image_RNM2;
+ cvta.global.u64 %rd141, %rd146;
+ mov.u32 %r306, 8;
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd141, %r99, %r306, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f133;}
+
+ // inline asm
+ st.v4.u16 [%rd140], {%rs71, %rs71, %rs71, %rs60};
+
+BB0_118:
+ ld.global.u32 %r307, [additive];
+ setp.eq.s32 %p115, %r307, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f665;}
+
+ // inline asm
+ @%p115 bra BB0_120;
+
+ mov.u64 %rd159, image_RNM3;
+ cvta.global.u64 %rd148, %rd159;
+ mov.u32 %r311, 8;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r99, %r311, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs79, %rs80, %rs81, %rs82}, [%rd147];
+ // inline asm
+ { cvt.f32.f16 %f695, %rs79;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f696, %rs80;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f697, %rs81;}
+
+ // inline asm
+ // inline asm
+ call (%rd153), _rt_buffer_get_64, (%rd148, %r99, %r311, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f698, %f134, %f695;
+ add.f32 %f699, %f134, %f696;
+ add.f32 %f700, %f134, %f697;
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f700;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f699;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f698;}
+
+ // inline asm
+ st.v4.u16 [%rd153], {%rs76, %rs77, %rs78, %rs72};
+ bra.uni BB0_141;
+
+BB0_120:
+ mov.u64 %rd166, image_RNM3;
+ cvta.global.u64 %rd161, %rd166;
+ mov.u32 %r313, 8;
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd161, %r99, %r313, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f134;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs83, %rs83, %rs83, %rs72};
+
+BB0_141:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowProbeSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowProbeSH.ptx.meta
new file mode 100644
index 00000000..e1f18a7a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowProbeSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d0641dd9dcc34fd4ca2b410209dfc22d
+timeCreated: 1581075098
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowRNM.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowRNM.ptx
new file mode 100644
index 00000000..5b672018
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowRNM.ptx
@@ -0,0 +1,2449 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 uvtangent[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .b8 directDir[12];
+.global .align 4 .b8 directColor[12];
+.global .align 4 .f32 shadowSpread;
+.global .align 4 .u32 samples;
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .u32 lightCookie;
+.global .align 16 .b8 lightTilingOffset[16];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9directDirE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11directColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12shadowSpreadE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightCookieE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo17lightTilingOffsetE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9directDirE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11directColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12shadowSpreadE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename11lightCookieE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename17lightTilingOffsetE[7] = {102, 108, 111, 97, 116, 52, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9directDirE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11directColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12shadowSpreadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightCookieE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum17lightTilingOffsetE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9directDirE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11directColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12shadowSpreadE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightCookieE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic17lightTilingOffsetE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9directDirE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11directColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12shadowSpreadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightCookieE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation17lightTilingOffsetE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<148>;
+ .reg .b16 %rs<157>;
+ .reg .f32 %f<1129>;
+ .reg .b32 %r<412>;
+ .reg .b64 %rd<283>;
+
+
+ mov.u64 %rd282, __local_depot0;
+ cvta.local.u64 %SP, %rd282;
+ ld.global.v2.u32 {%r107, %r108}, [pixelID];
+ cvt.u64.u32 %rd28, %r107;
+ cvt.u64.u32 %rd29, %r108;
+ mov.u64 %rd32, uvnormal;
+ cvta.global.u64 %rd27, %rd32;
+ mov.u32 %r105, 2;
+ mov.u32 %r106, 4;
+ mov.u64 %rd31, 0;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r105, %r106, %rd28, %rd29, %rd31, %rd31);
+ // inline asm
+ ld.u32 %r1, [%rd26];
+ shr.u32 %r111, %r1, 16;
+ cvt.u16.u32 %rs1, %r111;
+ and.b16 %rs6, %rs1, 255;
+ cvt.u16.u32 %rs7, %r1;
+ or.b16 %rs8, %rs7, %rs6;
+ setp.eq.s16 %p6, %rs8, 0;
+ mov.f32 %f1085, 0f00000000;
+ mov.f32 %f1086, %f1085;
+ mov.f32 %f1087, %f1085;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs9, [%rd26+1];
+ and.b16 %rs11, %rs7, 255;
+ cvt.rn.f32.u16 %f188, %rs11;
+ div.rn.f32 %f189, %f188, 0f437F0000;
+ fma.rn.f32 %f190, %f189, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f191, %rs9;
+ div.rn.f32 %f192, %f191, 0f437F0000;
+ fma.rn.f32 %f193, %f192, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f194, %rs6;
+ div.rn.f32 %f195, %f194, 0f437F0000;
+ fma.rn.f32 %f196, %f195, 0f40000000, 0fBF800000;
+ mul.f32 %f197, %f193, %f193;
+ fma.rn.f32 %f198, %f190, %f190, %f197;
+ fma.rn.f32 %f199, %f196, %f196, %f198;
+ sqrt.rn.f32 %f200, %f199;
+ rcp.rn.f32 %f201, %f200;
+ mul.f32 %f1085, %f190, %f201;
+ mul.f32 %f1086, %f193, %f201;
+ mul.f32 %f1087, %f196, %f201;
+
+BB0_2:
+ ld.global.v2.u32 {%r112, %r113}, [pixelID];
+ ld.global.v2.u32 {%r115, %r116}, [tileInfo];
+ add.s32 %r2, %r112, %r115;
+ add.s32 %r3, %r113, %r116;
+ setp.eq.f32 %p7, %f1086, 0f00000000;
+ setp.eq.f32 %p8, %f1085, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f1087, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_135;
+ bra.uni BB0_3;
+
+BB0_135:
+ ld.global.u32 %r411, [imageEnabled];
+ and.b32 %r340, %r411, 1;
+ setp.eq.b32 %p141, %r340, 1;
+ @!%p141 bra BB0_137;
+ bra.uni BB0_136;
+
+BB0_136:
+ cvt.u64.u32 %rd186, %r2;
+ cvt.u64.u32 %rd187, %r3;
+ mov.u64 %rd190, image;
+ cvta.global.u64 %rd185, %rd190;
+ mov.u64 %rd189, 0;
+ // inline asm
+ call (%rd184), _rt_buffer_get_64, (%rd185, %r105, %r106, %rd186, %rd187, %rd189, %rd189);
+ // inline asm
+ mov.u16 %rs102, 0;
+ st.v4.u8 [%rd184], {%rs102, %rs102, %rs102, %rs102};
+ ld.global.u32 %r411, [imageEnabled];
+
+BB0_137:
+ and.b32 %r343, %r411, 8;
+ setp.eq.s32 %p142, %r343, 0;
+ @%p142 bra BB0_139;
+
+ cvt.u64.u32 %rd194, %r3;
+ cvt.u64.u32 %rd193, %r2;
+ mov.u64 %rd197, image_Mask;
+ cvta.global.u64 %rd192, %rd197;
+ mov.u64 %rd196, 0;
+ // inline asm
+ call (%rd191), _rt_buffer_get_64, (%rd192, %r105, %r105, %rd193, %rd194, %rd196, %rd196);
+ // inline asm
+ mov.f32 %f988, 0f00000000;
+ cvt.rzi.u32.f32 %r346, %f988;
+ cvt.u16.u32 %rs103, %r346;
+ mov.u16 %rs104, 0;
+ st.v2.u8 [%rd191], {%rs103, %rs104};
+ ld.global.u32 %r411, [imageEnabled];
+
+BB0_139:
+ cvt.u64.u32 %rd24, %r2;
+ cvt.u64.u32 %rd25, %r3;
+ and.b32 %r347, %r411, 4;
+ setp.eq.s32 %p143, %r347, 0;
+ @%p143 bra BB0_143;
+
+ ld.global.u32 %r348, [additive];
+ setp.eq.s32 %p144, %r348, 0;
+ @%p144 bra BB0_142;
+
+ mov.u64 %rd210, image_HDR;
+ cvta.global.u64 %rd199, %rd210;
+ mov.u32 %r352, 8;
+ mov.u64 %rd209, 0;
+ // inline asm
+ call (%rd198), _rt_buffer_get_64, (%rd199, %r105, %r352, %rd24, %rd25, %rd209, %rd209);
+ // inline asm
+ ld.v4.u16 {%rs111, %rs112, %rs113, %rs114}, [%rd198];
+ // inline asm
+ { cvt.f32.f16 %f989, %rs111;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f990, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f991, %rs113;}
+
+ // inline asm
+ // inline asm
+ call (%rd204), _rt_buffer_get_64, (%rd199, %r105, %r352, %rd24, %rd25, %rd209, %rd209);
+ // inline asm
+ add.f32 %f992, %f989, 0f00000000;
+ add.f32 %f993, %f990, 0f00000000;
+ add.f32 %f994, %f991, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f994;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f993;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs108, %f992;}
+
+ // inline asm
+ mov.u16 %rs115, 0;
+ st.v4.u16 [%rd204], {%rs108, %rs109, %rs110, %rs115};
+ bra.uni BB0_143;
+
+BB0_3:
+ ld.global.f32 %f8, [directDir+4];
+ ld.global.f32 %f9, [directDir+8];
+ ld.global.f32 %f7, [directDir];
+ ld.global.v2.u32 {%r124, %r125}, [pixelID];
+ cvt.u64.u32 %rd35, %r124;
+ cvt.u64.u32 %rd36, %r125;
+ mov.u64 %rd45, uvpos;
+ cvta.global.u64 %rd34, %rd45;
+ mov.u32 %r121, 12;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r105, %r121, %rd35, %rd36, %rd31, %rd31);
+ // inline asm
+ ld.f32 %f12, [%rd33+8];
+ ld.f32 %f11, [%rd33+4];
+ ld.f32 %f10, [%rd33];
+ mul.f32 %f203, %f10, 0f3456BF95;
+ mul.f32 %f204, %f11, 0f3456BF95;
+ mul.f32 %f205, %f12, 0f3456BF95;
+ abs.f32 %f206, %f1085;
+ div.rn.f32 %f207, %f203, %f206;
+ abs.f32 %f208, %f1086;
+ div.rn.f32 %f209, %f204, %f208;
+ abs.f32 %f210, %f1087;
+ div.rn.f32 %f211, %f205, %f210;
+ abs.f32 %f212, %f207;
+ abs.f32 %f213, %f209;
+ abs.f32 %f214, %f211;
+ mov.f32 %f215, 0f38D1B717;
+ max.f32 %f216, %f212, %f215;
+ max.f32 %f217, %f213, %f215;
+ max.f32 %f218, %f214, %f215;
+ fma.rn.f32 %f13, %f1085, %f216, %f10;
+ fma.rn.f32 %f14, %f1086, %f217, %f11;
+ fma.rn.f32 %f15, %f1087, %f218, %f12;
+ abs.f32 %f219, %f7;
+ abs.f32 %f220, %f9;
+ setp.gt.f32 %p12, %f219, %f220;
+ neg.f32 %f221, %f8;
+ neg.f32 %f222, %f9;
+ selp.f32 %f223, %f221, 0f00000000, %p12;
+ selp.f32 %f224, %f7, %f222, %p12;
+ selp.f32 %f225, 0f00000000, %f8, %p12;
+ mul.f32 %f226, %f224, %f224;
+ fma.rn.f32 %f227, %f223, %f223, %f226;
+ fma.rn.f32 %f228, %f225, %f225, %f227;
+ sqrt.rn.f32 %f229, %f228;
+ rcp.rn.f32 %f230, %f229;
+ mul.f32 %f16, %f223, %f230;
+ mul.f32 %f17, %f224, %f230;
+ mul.f32 %f18, %f225, %f230;
+ mul.f32 %f231, %f9, %f17;
+ mul.f32 %f232, %f8, %f18;
+ sub.f32 %f19, %f231, %f232;
+ mul.f32 %f233, %f7, %f18;
+ mul.f32 %f234, %f9, %f16;
+ sub.f32 %f20, %f233, %f234;
+ mul.f32 %f235, %f8, %f16;
+ mul.f32 %f236, %f7, %f17;
+ sub.f32 %f21, %f235, %f236;
+ ld.global.v2.u32 {%r128, %r129}, [pixelID];
+ cvt.u64.u32 %rd41, %r128;
+ cvt.u64.u32 %rd42, %r129;
+ mov.u64 %rd46, rnd_seeds;
+ cvta.global.u64 %rd40, %rd46;
+ // inline asm
+ call (%rd39), _rt_buffer_get_64, (%rd40, %r105, %r106, %rd41, %rd42, %rd31, %rd31);
+ // inline asm
+ ld.global.u32 %r380, [samples];
+ mov.f32 %f1102, 0f00000000;
+ setp.lt.s32 %p13, %r380, 1;
+ @%p13 bra BB0_55;
+
+ cvt.rn.f32.s32 %f238, %r380;
+ rcp.rn.f32 %f22, %f238;
+ ld.u32 %r406, [%rd39];
+ mul.f32 %f23, %f13, 0f3456BF95;
+ mul.f32 %f24, %f14, 0f3456BF95;
+ mul.f32 %f25, %f15, 0f3456BF95;
+ mov.f32 %f1102, 0f00000000;
+ mov.u32 %r381, 0;
+ abs.f32 %f239, %f24;
+ abs.f32 %f240, %f23;
+ max.f32 %f241, %f240, %f239;
+ abs.f32 %f242, %f25;
+ max.f32 %f243, %f241, %f242;
+
+BB0_5:
+ setp.lt.s32 %p14, %r380, 1;
+ @%p14 bra BB0_54;
+
+ cvt.rn.f32.s32 %f27, %r381;
+ max.f32 %f28, %f243, %f215;
+ mov.u32 %r383, 0;
+
+BB0_7:
+ mad.lo.s32 %r134, %r406, 1664525, 1013904223;
+ and.b32 %r135, %r134, 16777215;
+ cvt.rn.f32.u32 %f245, %r135;
+ fma.rn.f32 %f246, %f245, 0f33800000, %f27;
+ mul.f32 %f247, %f22, %f246;
+ mad.lo.s32 %r406, %r134, 1664525, 1013904223;
+ and.b32 %r136, %r406, 16777215;
+ cvt.rn.f32.u32 %f248, %r136;
+ cvt.rn.f32.s32 %f249, %r383;
+ fma.rn.f32 %f250, %f248, 0f33800000, %f249;
+ mul.f32 %f251, %f22, %f250;
+ sqrt.rn.f32 %f30, %f247;
+ mul.f32 %f1096, %f251, 0f40C90FDB;
+ abs.f32 %f32, %f1096;
+ setp.neu.f32 %p15, %f32, 0f7F800000;
+ mov.f32 %f1090, %f1096;
+ @%p15 bra BB0_9;
+
+ mov.f32 %f252, 0f00000000;
+ mul.rn.f32 %f1090, %f1096, %f252;
+
+BB0_9:
+ mul.f32 %f253, %f1090, 0f3F22F983;
+ cvt.rni.s32.f32 %r394, %f253;
+ cvt.rn.f32.s32 %f254, %r394;
+ neg.f32 %f255, %f254;
+ mov.f32 %f256, 0f3FC90FDA;
+ fma.rn.f32 %f257, %f255, %f256, %f1090;
+ mov.f32 %f258, 0f33A22168;
+ fma.rn.f32 %f259, %f255, %f258, %f257;
+ mov.f32 %f260, 0f27C234C5;
+ fma.rn.f32 %f1091, %f255, %f260, %f259;
+ abs.f32 %f261, %f1090;
+ setp.leu.f32 %p16, %f261, 0f47CE4780;
+ @%p16 bra BB0_20;
+
+ add.u64 %rd48, %SP, 4;
+ cvta.to.local.u64 %rd3, %rd48;
+ mov.b32 %r13, %f1090;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r139, %r13, 8;
+ or.b32 %r15, %r139, -2147483648;
+ mov.u32 %r385, 0;
+ mov.u64 %rd279, 0;
+ mov.u64 %rd278, %rd3;
+ mov.u32 %r386, %r385;
+
+BB0_11:
+ .pragma "nounroll";
+ shl.b64 %rd49, %rd279, 2;
+ mov.u64 %rd50, __cudart_i2opi_f;
+ add.s64 %rd51, %rd50, %rd49;
+ ld.const.u32 %r142, [%rd51];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r140, %r142, %r15, %r386;
+ madc.hi.u32 %r386, %r142, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd278], %r140;
+ add.s32 %r385, %r385, 1;
+ cvt.s64.s32 %rd279, %r385;
+ mul.wide.s32 %rd54, %r385, 4;
+ add.s64 %rd278, %rd3, %rd54;
+ setp.ne.s32 %p17, %r385, 6;
+ @%p17 bra BB0_11;
+
+ and.b32 %r145, %r14, 255;
+ add.s32 %r146, %r145, -128;
+ shr.u32 %r147, %r146, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd56, %rd48;
+ st.local.u32 [%rd56+24], %r386;
+ mov.u32 %r148, 6;
+ sub.s32 %r149, %r148, %r147;
+ mul.wide.s32 %rd57, %r149, 4;
+ add.s64 %rd8, %rd56, %rd57;
+ ld.local.u32 %r387, [%rd8];
+ ld.local.u32 %r388, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p18, %r23, 0;
+ @%p18 bra BB0_14;
+
+ mov.u32 %r150, 32;
+ sub.s32 %r151, %r150, %r23;
+ shr.u32 %r152, %r388, %r151;
+ shl.b32 %r153, %r387, %r23;
+ add.s32 %r387, %r152, %r153;
+ ld.local.u32 %r154, [%rd8+-8];
+ shr.u32 %r155, %r154, %r151;
+ shl.b32 %r156, %r388, %r23;
+ add.s32 %r388, %r155, %r156;
+
+BB0_14:
+ shr.u32 %r157, %r388, 30;
+ shl.b32 %r158, %r387, 2;
+ add.s32 %r389, %r157, %r158;
+ shl.b32 %r29, %r388, 2;
+ shr.u32 %r159, %r389, 31;
+ shr.u32 %r160, %r387, 30;
+ add.s32 %r30, %r159, %r160;
+ setp.eq.s32 %p19, %r159, 0;
+ @%p19 bra BB0_15;
+ bra.uni BB0_16;
+
+BB0_15:
+ mov.u32 %r390, %r20;
+ mov.u32 %r391, %r29;
+ bra.uni BB0_17;
+
+BB0_16:
+ not.b32 %r161, %r389;
+ neg.s32 %r391, %r29;
+ setp.eq.s32 %p20, %r29, 0;
+ selp.u32 %r162, 1, 0, %p20;
+ add.s32 %r389, %r162, %r161;
+ xor.b32 %r390, %r20, -2147483648;
+
+BB0_17:
+ clz.b32 %r393, %r389;
+ setp.eq.s32 %p21, %r393, 0;
+ shl.b32 %r163, %r389, %r393;
+ mov.u32 %r164, 32;
+ sub.s32 %r165, %r164, %r393;
+ shr.u32 %r166, %r391, %r165;
+ add.s32 %r167, %r166, %r163;
+ selp.b32 %r38, %r389, %r167, %p21;
+ mov.u32 %r168, -921707870;
+ mul.hi.u32 %r392, %r38, %r168;
+ setp.eq.s32 %p22, %r20, 0;
+ neg.s32 %r169, %r30;
+ selp.b32 %r394, %r30, %r169, %p22;
+ setp.lt.s32 %p23, %r392, 1;
+ @%p23 bra BB0_19;
+
+ mul.lo.s32 %r170, %r38, -921707870;
+ shr.u32 %r171, %r170, 31;
+ shl.b32 %r172, %r392, 1;
+ add.s32 %r392, %r171, %r172;
+ add.s32 %r393, %r393, 1;
+
+BB0_19:
+ mov.u32 %r173, 126;
+ sub.s32 %r174, %r173, %r393;
+ shl.b32 %r175, %r174, 23;
+ add.s32 %r176, %r392, 1;
+ shr.u32 %r177, %r176, 7;
+ add.s32 %r178, %r177, 1;
+ shr.u32 %r179, %r178, 1;
+ add.s32 %r180, %r179, %r175;
+ or.b32 %r181, %r180, %r390;
+ mov.b32 %f1091, %r181;
+
+BB0_20:
+ mul.rn.f32 %f38, %f1091, %f1091;
+ add.s32 %r46, %r394, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p24, %r47, 0;
+ @%p24 bra BB0_22;
+ bra.uni BB0_21;
+
+BB0_22:
+ mov.f32 %f264, 0f3C08839E;
+ mov.f32 %f265, 0fB94CA1F9;
+ fma.rn.f32 %f1092, %f265, %f38, %f264;
+ bra.uni BB0_23;
+
+BB0_21:
+ mov.f32 %f262, 0fBAB6061A;
+ mov.f32 %f263, 0f37CCF5CE;
+ fma.rn.f32 %f1092, %f263, %f38, %f262;
+
+BB0_23:
+ @%p24 bra BB0_25;
+ bra.uni BB0_24;
+
+BB0_25:
+ mov.f32 %f269, 0fBE2AAAA3;
+ fma.rn.f32 %f270, %f1092, %f38, %f269;
+ mov.f32 %f271, 0f00000000;
+ fma.rn.f32 %f1093, %f270, %f38, %f271;
+ bra.uni BB0_26;
+
+BB0_24:
+ mov.f32 %f266, 0f3D2AAAA5;
+ fma.rn.f32 %f267, %f1092, %f38, %f266;
+ mov.f32 %f268, 0fBF000000;
+ fma.rn.f32 %f1093, %f267, %f38, %f268;
+
+BB0_26:
+ fma.rn.f32 %f1094, %f1093, %f1091, %f1091;
+ @%p24 bra BB0_28;
+
+ mov.f32 %f272, 0f3F800000;
+ fma.rn.f32 %f1094, %f1093, %f38, %f272;
+
+BB0_28:
+ and.b32 %r182, %r46, 2;
+ setp.eq.s32 %p27, %r182, 0;
+ @%p27 bra BB0_30;
+
+ mov.f32 %f273, 0f00000000;
+ mov.f32 %f274, 0fBF800000;
+ fma.rn.f32 %f1094, %f1094, %f274, %f273;
+
+BB0_30:
+ @%p15 bra BB0_32;
+
+ mov.f32 %f275, 0f00000000;
+ mul.rn.f32 %f1096, %f1096, %f275;
+
+BB0_32:
+ mul.f32 %f276, %f1096, 0f3F22F983;
+ cvt.rni.s32.f32 %r404, %f276;
+ cvt.rn.f32.s32 %f277, %r404;
+ neg.f32 %f278, %f277;
+ fma.rn.f32 %f280, %f278, %f256, %f1096;
+ fma.rn.f32 %f282, %f278, %f258, %f280;
+ fma.rn.f32 %f1097, %f278, %f260, %f282;
+ abs.f32 %f284, %f1096;
+ setp.leu.f32 %p29, %f284, 0f47CE4780;
+ @%p29 bra BB0_43;
+
+ add.u64 %rd59, %SP, 4;
+ cvta.to.local.u64 %rd9, %rd59;
+ mov.b32 %r49, %f1096;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r185, %r49, 8;
+ or.b32 %r51, %r185, -2147483648;
+ mov.u32 %r395, 0;
+ mov.u64 %rd280, %rd9;
+ mov.u64 %rd281, %rd31;
+ mov.u32 %r396, %r395;
+
+BB0_34:
+ .pragma "nounroll";
+ shl.b64 %rd60, %rd281, 2;
+ mov.u64 %rd61, __cudart_i2opi_f;
+ add.s64 %rd62, %rd61, %rd60;
+ ld.const.u32 %r188, [%rd62];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r186, %r188, %r51, %r396;
+ madc.hi.u32 %r396, %r188, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd280], %r186;
+ add.s32 %r395, %r395, 1;
+ cvt.s64.s32 %rd281, %r395;
+ mul.wide.s32 %rd63, %r395, 4;
+ add.s64 %rd280, %rd9, %rd63;
+ setp.ne.s32 %p30, %r395, 6;
+ @%p30 bra BB0_34;
+
+ and.b32 %r191, %r50, 255;
+ add.s32 %r192, %r191, -128;
+ shr.u32 %r193, %r192, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd65, %rd59;
+ st.local.u32 [%rd65+24], %r396;
+ mov.u32 %r194, 6;
+ sub.s32 %r195, %r194, %r193;
+ mul.wide.s32 %rd66, %r195, 4;
+ add.s64 %rd15, %rd65, %rd66;
+ ld.local.u32 %r397, [%rd15];
+ ld.local.u32 %r398, [%rd15+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p31, %r59, 0;
+ @%p31 bra BB0_37;
+
+ mov.u32 %r196, 32;
+ sub.s32 %r197, %r196, %r59;
+ shr.u32 %r198, %r398, %r197;
+ shl.b32 %r199, %r397, %r59;
+ add.s32 %r397, %r198, %r199;
+ ld.local.u32 %r200, [%rd15+-8];
+ shr.u32 %r201, %r200, %r197;
+ shl.b32 %r202, %r398, %r59;
+ add.s32 %r398, %r201, %r202;
+
+BB0_37:
+ shr.u32 %r203, %r398, 30;
+ shl.b32 %r204, %r397, 2;
+ add.s32 %r399, %r203, %r204;
+ shl.b32 %r65, %r398, 2;
+ shr.u32 %r205, %r399, 31;
+ shr.u32 %r206, %r397, 30;
+ add.s32 %r66, %r205, %r206;
+ setp.eq.s32 %p32, %r205, 0;
+ @%p32 bra BB0_38;
+ bra.uni BB0_39;
+
+BB0_38:
+ mov.u32 %r400, %r56;
+ mov.u32 %r401, %r65;
+ bra.uni BB0_40;
+
+BB0_39:
+ not.b32 %r207, %r399;
+ neg.s32 %r401, %r65;
+ setp.eq.s32 %p33, %r65, 0;
+ selp.u32 %r208, 1, 0, %p33;
+ add.s32 %r399, %r208, %r207;
+ xor.b32 %r400, %r56, -2147483648;
+
+BB0_40:
+ clz.b32 %r403, %r399;
+ setp.eq.s32 %p34, %r403, 0;
+ shl.b32 %r209, %r399, %r403;
+ mov.u32 %r210, 32;
+ sub.s32 %r211, %r210, %r403;
+ shr.u32 %r212, %r401, %r211;
+ add.s32 %r213, %r212, %r209;
+ selp.b32 %r74, %r399, %r213, %p34;
+ mov.u32 %r214, -921707870;
+ mul.hi.u32 %r402, %r74, %r214;
+ setp.eq.s32 %p35, %r56, 0;
+ neg.s32 %r215, %r66;
+ selp.b32 %r404, %r66, %r215, %p35;
+ setp.lt.s32 %p36, %r402, 1;
+ @%p36 bra BB0_42;
+
+ mul.lo.s32 %r216, %r74, -921707870;
+ shr.u32 %r217, %r216, 31;
+ shl.b32 %r218, %r402, 1;
+ add.s32 %r402, %r217, %r218;
+ add.s32 %r403, %r403, 1;
+
+BB0_42:
+ mov.u32 %r219, 126;
+ sub.s32 %r220, %r219, %r403;
+ shl.b32 %r221, %r220, 23;
+ add.s32 %r222, %r402, 1;
+ shr.u32 %r223, %r222, 7;
+ add.s32 %r224, %r223, 1;
+ shr.u32 %r225, %r224, 1;
+ add.s32 %r226, %r225, %r221;
+ or.b32 %r227, %r226, %r400;
+ mov.b32 %f1097, %r227;
+
+BB0_43:
+ mul.rn.f32 %f55, %f1097, %f1097;
+ and.b32 %r82, %r404, 1;
+ setp.eq.s32 %p37, %r82, 0;
+ @%p37 bra BB0_45;
+ bra.uni BB0_44;
+
+BB0_45:
+ mov.f32 %f287, 0f3C08839E;
+ mov.f32 %f288, 0fB94CA1F9;
+ fma.rn.f32 %f1098, %f288, %f55, %f287;
+ bra.uni BB0_46;
+
+BB0_44:
+ mov.f32 %f285, 0fBAB6061A;
+ mov.f32 %f286, 0f37CCF5CE;
+ fma.rn.f32 %f1098, %f286, %f55, %f285;
+
+BB0_46:
+ @%p37 bra BB0_48;
+ bra.uni BB0_47;
+
+BB0_48:
+ mov.f32 %f292, 0fBE2AAAA3;
+ fma.rn.f32 %f293, %f1098, %f55, %f292;
+ mov.f32 %f294, 0f00000000;
+ fma.rn.f32 %f1099, %f293, %f55, %f294;
+ bra.uni BB0_49;
+
+BB0_47:
+ mov.f32 %f289, 0f3D2AAAA5;
+ fma.rn.f32 %f290, %f1098, %f55, %f289;
+ mov.f32 %f291, 0fBF000000;
+ fma.rn.f32 %f1099, %f290, %f55, %f291;
+
+BB0_49:
+ fma.rn.f32 %f1100, %f1099, %f1097, %f1097;
+ @%p37 bra BB0_51;
+
+ mov.f32 %f295, 0f3F800000;
+ fma.rn.f32 %f1100, %f1099, %f55, %f295;
+
+BB0_51:
+ and.b32 %r228, %r404, 2;
+ setp.eq.s32 %p40, %r228, 0;
+ @%p40 bra BB0_53;
+
+ mov.f32 %f296, 0f00000000;
+ mov.f32 %f297, 0fBF800000;
+ fma.rn.f32 %f1100, %f1100, %f297, %f296;
+
+BB0_53:
+ mul.f32 %f306, %f30, %f1094;
+ add.u64 %rd67, %SP, 0;
+ cvta.to.local.u64 %rd68, %rd67;
+ mul.f32 %f307, %f306, %f306;
+ mov.f32 %f308, 0f3F800000;
+ sub.f32 %f309, %f308, %f307;
+ mul.f32 %f310, %f30, %f1100;
+ mul.f32 %f311, %f310, %f310;
+ sub.f32 %f312, %f309, %f311;
+ mov.f32 %f313, 0f00000000;
+ max.f32 %f314, %f313, %f312;
+ sqrt.rn.f32 %f315, %f314;
+ mul.f32 %f316, %f16, %f310;
+ mul.f32 %f317, %f17, %f310;
+ mul.f32 %f318, %f18, %f310;
+ fma.rn.f32 %f319, %f19, %f306, %f316;
+ fma.rn.f32 %f320, %f20, %f306, %f317;
+ fma.rn.f32 %f321, %f21, %f306, %f318;
+ fma.rn.f32 %f322, %f7, %f315, %f319;
+ fma.rn.f32 %f323, %f8, %f315, %f320;
+ fma.rn.f32 %f324, %f9, %f315, %f321;
+ add.f32 %f325, %f7, %f322;
+ add.f32 %f326, %f8, %f323;
+ add.f32 %f327, %f9, %f324;
+ ld.global.f32 %f328, [shadowSpread];
+ mul.f32 %f329, %f328, %f325;
+ mul.f32 %f330, %f328, %f326;
+ mul.f32 %f331, %f328, %f327;
+ sub.f32 %f332, %f329, %f7;
+ sub.f32 %f333, %f330, %f8;
+ sub.f32 %f334, %f331, %f9;
+ mul.f32 %f335, %f333, %f333;
+ fma.rn.f32 %f336, %f332, %f332, %f335;
+ fma.rn.f32 %f337, %f334, %f334, %f336;
+ sqrt.rn.f32 %f338, %f337;
+ rcp.rn.f32 %f339, %f338;
+ mul.f32 %f301, %f339, %f332;
+ mul.f32 %f302, %f339, %f333;
+ mul.f32 %f303, %f339, %f334;
+ ld.global.u32 %r232, [imageEnabled];
+ and.b32 %r233, %r232, 32;
+ setp.eq.s32 %p41, %r233, 0;
+ selp.f32 %f340, 0f3F800000, 0f41200000, %p41;
+ mul.f32 %f304, %f340, %f28;
+ mov.u32 %r234, 1065353216;
+ st.local.u32 [%rd68], %r234;
+ ld.global.u32 %r229, [root];
+ mov.u32 %r230, 1;
+ mov.f32 %f305, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r229, %f13, %f14, %f15, %f301, %f302, %f303, %r230, %f304, %f305, %rd67, %r106);
+ // inline asm
+ ld.local.f32 %f341, [%rd68];
+ add.f32 %f1102, %f1102, %f341;
+ ld.global.u32 %r380, [samples];
+ add.s32 %r383, %r383, 1;
+ setp.lt.s32 %p42, %r383, %r380;
+ @%p42 bra BB0_7;
+
+BB0_54:
+ add.s32 %r381, %r381, 1;
+ setp.lt.s32 %p43, %r381, %r380;
+ @%p43 bra BB0_5;
+
+BB0_55:
+ mul.f32 %f343, %f1087, %f9;
+ mul.f32 %f344, %f1086, %f8;
+ neg.f32 %f345, %f344;
+ mul.f32 %f346, %f1085, %f7;
+ sub.f32 %f347, %f345, %f346;
+ sub.f32 %f70, %f347, %f343;
+ setp.eq.s32 %p44, %r380, 0;
+ mov.f32 %f1104, 0f3F800000;
+ @%p44 bra BB0_57;
+
+ mul.lo.s32 %r235, %r380, %r380;
+ cvt.rn.f32.s32 %f348, %r235;
+ div.rn.f32 %f1104, %f1102, %f348;
+
+BB0_57:
+ mul.f32 %f359, %f11, %f20;
+ fma.rn.f32 %f360, %f10, %f19, %f359;
+ fma.rn.f32 %f361, %f12, %f21, %f360;
+ ld.global.v4.f32 {%f362, %f363, %f364, %f365}, [lightTilingOffset];
+ fma.rn.f32 %f353, %f361, %f362, %f364;
+ mul.f32 %f368, %f11, %f17;
+ fma.rn.f32 %f369, %f10, %f16, %f368;
+ fma.rn.f32 %f370, %f12, %f18, %f369;
+ fma.rn.f32 %f354, %f370, %f363, %f365;
+ ld.global.u32 %r236, [lightCookie];
+ mov.f32 %f356, 0f00000000;
+ // inline asm
+ call (%f349, %f350, %f351, %f352), _rt_texture_get_f_id, (%r236, %r105, %f353, %f354, %f356, %f356);
+ // inline asm
+ mul.f32 %f73, %f1104, %f349;
+ ld.global.f32 %f373, [directColor];
+ mul.f32 %f74, %f373, %f73;
+ ld.global.f32 %f374, [directColor+4];
+ mul.f32 %f75, %f374, %f73;
+ ld.global.f32 %f375, [directColor+8];
+ mul.f32 %f76, %f73, %f375;
+ cvt.sat.f32.f32 %f376, %f70;
+ mul.f32 %f77, %f74, %f376;
+ mul.f32 %f78, %f75, %f376;
+ mul.f32 %f79, %f76, %f376;
+ fma.rn.f32 %f377, %f70, 0f3F000000, 0f3F000000;
+ cvt.sat.f32.f32 %f378, %f377;
+ add.f32 %f80, %f378, %f378;
+ mov.f32 %f382, 0f41A00000;
+ abs.f32 %f82, %f80;
+ setp.lt.f32 %p45, %f82, 0f00800000;
+ mul.f32 %f384, %f82, 0f4B800000;
+ selp.f32 %f385, 0fC3170000, 0fC2FE0000, %p45;
+ selp.f32 %f386, %f384, %f82, %p45;
+ mov.b32 %r238, %f386;
+ and.b32 %r239, %r238, 8388607;
+ or.b32 %r240, %r239, 1065353216;
+ mov.b32 %f387, %r240;
+ shr.u32 %r241, %r238, 23;
+ cvt.rn.f32.u32 %f388, %r241;
+ add.f32 %f389, %f385, %f388;
+ setp.gt.f32 %p46, %f387, 0f3FB504F3;
+ mul.f32 %f390, %f387, 0f3F000000;
+ add.f32 %f391, %f389, 0f3F800000;
+ selp.f32 %f392, %f390, %f387, %p46;
+ selp.f32 %f393, %f391, %f389, %p46;
+ add.f32 %f394, %f392, 0fBF800000;
+ add.f32 %f358, %f392, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f357,%f358;
+ // inline asm
+ add.f32 %f395, %f394, %f394;
+ mul.f32 %f396, %f357, %f395;
+ mul.f32 %f397, %f396, %f396;
+ mov.f32 %f398, 0f3C4CAF63;
+ mov.f32 %f399, 0f3B18F0FE;
+ fma.rn.f32 %f400, %f399, %f397, %f398;
+ mov.f32 %f401, 0f3DAAAABD;
+ fma.rn.f32 %f402, %f400, %f397, %f401;
+ mul.rn.f32 %f403, %f402, %f397;
+ mul.rn.f32 %f404, %f403, %f396;
+ sub.f32 %f405, %f394, %f396;
+ neg.f32 %f406, %f396;
+ add.f32 %f407, %f405, %f405;
+ fma.rn.f32 %f408, %f406, %f394, %f407;
+ mul.rn.f32 %f409, %f357, %f408;
+ add.f32 %f410, %f404, %f396;
+ sub.f32 %f411, %f396, %f410;
+ add.f32 %f412, %f404, %f411;
+ add.f32 %f413, %f409, %f412;
+ add.f32 %f414, %f410, %f413;
+ sub.f32 %f415, %f410, %f414;
+ add.f32 %f416, %f413, %f415;
+ mov.f32 %f417, 0f3F317200;
+ mul.rn.f32 %f418, %f393, %f417;
+ mov.f32 %f419, 0f35BFBE8E;
+ mul.rn.f32 %f420, %f393, %f419;
+ add.f32 %f421, %f418, %f414;
+ sub.f32 %f422, %f418, %f421;
+ add.f32 %f423, %f414, %f422;
+ add.f32 %f424, %f416, %f423;
+ add.f32 %f425, %f420, %f424;
+ add.f32 %f426, %f421, %f425;
+ sub.f32 %f427, %f421, %f426;
+ add.f32 %f428, %f425, %f427;
+ mul.rn.f32 %f429, %f382, %f426;
+ neg.f32 %f430, %f429;
+ fma.rn.f32 %f431, %f382, %f426, %f430;
+ fma.rn.f32 %f432, %f382, %f428, %f431;
+ fma.rn.f32 %f433, %f356, %f426, %f432;
+ add.rn.f32 %f434, %f429, %f433;
+ neg.f32 %f435, %f434;
+ add.rn.f32 %f436, %f429, %f435;
+ add.rn.f32 %f437, %f436, %f433;
+ mov.b32 %r242, %f434;
+ setp.eq.s32 %p47, %r242, 1118925336;
+ add.s32 %r243, %r242, -1;
+ mov.b32 %f438, %r243;
+ add.f32 %f439, %f437, 0f37000000;
+ selp.f32 %f440, %f438, %f434, %p47;
+ selp.f32 %f83, %f439, %f437, %p47;
+ mul.f32 %f441, %f440, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f442, %f441;
+ mov.f32 %f443, 0fBF317200;
+ fma.rn.f32 %f444, %f442, %f443, %f440;
+ mov.f32 %f445, 0fB5BFBE8E;
+ fma.rn.f32 %f446, %f442, %f445, %f444;
+ mul.f32 %f447, %f446, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f448, %f447;
+ add.f32 %f449, %f442, 0f00000000;
+ ex2.approx.f32 %f450, %f449;
+ mul.f32 %f451, %f448, %f450;
+ setp.lt.f32 %p48, %f440, 0fC2D20000;
+ selp.f32 %f452, 0f00000000, %f451, %p48;
+ setp.gt.f32 %p49, %f440, 0f42D20000;
+ selp.f32 %f1105, 0f7F800000, %f452, %p49;
+ setp.eq.f32 %p50, %f1105, 0f7F800000;
+ @%p50 bra BB0_59;
+
+ fma.rn.f32 %f1105, %f1105, %f83, %f1105;
+
+BB0_59:
+ mov.f32 %f1022, 0f41200000;
+ cvt.rzi.f32.f32 %f1021, %f1022;
+ add.f32 %f1020, %f1021, %f1021;
+ mov.f32 %f1019, 0f41A00000;
+ sub.f32 %f1018, %f1019, %f1020;
+ abs.f32 %f1017, %f1018;
+ setp.lt.f32 %p51, %f80, 0f00000000;
+ setp.eq.f32 %p52, %f1017, 0f3F800000;
+ and.pred %p1, %p51, %p52;
+ mov.b32 %r244, %f1105;
+ xor.b32 %r245, %r244, -2147483648;
+ mov.b32 %f453, %r245;
+ selp.f32 %f1107, %f453, %f1105, %p1;
+ setp.eq.f32 %p53, %f80, 0f00000000;
+ @%p53 bra BB0_62;
+ bra.uni BB0_60;
+
+BB0_62:
+ add.f32 %f456, %f80, %f80;
+ selp.f32 %f1107, %f456, 0f00000000, %p52;
+ bra.uni BB0_63;
+
+BB0_60:
+ setp.geu.f32 %p54, %f80, 0f00000000;
+ @%p54 bra BB0_63;
+
+ mov.f32 %f1058, 0f41A00000;
+ cvt.rzi.f32.f32 %f455, %f1058;
+ setp.neu.f32 %p55, %f455, 0f41A00000;
+ selp.f32 %f1107, 0f7FFFFFFF, %f1107, %p55;
+
+BB0_63:
+ add.f32 %f457, %f82, 0f41A00000;
+ mov.b32 %r246, %f457;
+ setp.lt.s32 %p57, %r246, 2139095040;
+ @%p57 bra BB0_68;
+
+ setp.gtu.f32 %p58, %f82, 0f7F800000;
+ @%p58 bra BB0_67;
+ bra.uni BB0_65;
+
+BB0_67:
+ add.f32 %f1107, %f80, 0f41A00000;
+ bra.uni BB0_68;
+
+BB0_65:
+ setp.neu.f32 %p59, %f82, 0f7F800000;
+ @%p59 bra BB0_68;
+
+ selp.f32 %f1107, 0fFF800000, 0f7F800000, %p1;
+
+BB0_68:
+ setp.eq.f32 %p60, %f80, 0f3F800000;
+ selp.f32 %f458, 0f3F800000, %f1107, %p60;
+ cvt.sat.f32.f32 %f459, %f458;
+ mul.f32 %f94, %f74, %f459;
+ mul.f32 %f95, %f75, %f459;
+ mul.f32 %f96, %f76, %f459;
+ ld.global.u32 %r409, [imageEnabled];
+ and.b32 %r247, %r409, 8;
+ setp.eq.s32 %p61, %r247, 0;
+ @%p61 bra BB0_81;
+
+ mov.f32 %f1030, 0fB5BFBE8E;
+ mov.f32 %f1029, 0fBF317200;
+ mov.f32 %f1028, 0f00000000;
+ mov.f32 %f1027, 0f35BFBE8E;
+ mov.f32 %f1026, 0f3F317200;
+ mov.f32 %f1025, 0f3DAAAABD;
+ mov.f32 %f1024, 0f3C4CAF63;
+ mov.f32 %f1023, 0f3B18F0FE;
+ cvt.u64.u32 %rd71, %r2;
+ cvt.u64.u32 %rd72, %r3;
+ mov.u64 %rd75, image_Mask;
+ cvta.global.u64 %rd70, %rd75;
+ // inline asm
+ call (%rd69), _rt_buffer_get_64, (%rd70, %r105, %r105, %rd71, %rd72, %rd31, %rd31);
+ // inline asm
+ abs.f32 %f98, %f73;
+ setp.lt.f32 %p62, %f98, 0f00800000;
+ mul.f32 %f465, %f98, 0f4B800000;
+ selp.f32 %f466, 0fC3170000, 0fC2FE0000, %p62;
+ selp.f32 %f467, %f465, %f98, %p62;
+ mov.b32 %r250, %f467;
+ and.b32 %r251, %r250, 8388607;
+ or.b32 %r252, %r251, 1065353216;
+ mov.b32 %f468, %r252;
+ shr.u32 %r253, %r250, 23;
+ cvt.rn.f32.u32 %f469, %r253;
+ add.f32 %f470, %f466, %f469;
+ setp.gt.f32 %p63, %f468, 0f3FB504F3;
+ mul.f32 %f471, %f468, 0f3F000000;
+ add.f32 %f472, %f470, 0f3F800000;
+ selp.f32 %f473, %f471, %f468, %p63;
+ selp.f32 %f474, %f472, %f470, %p63;
+ add.f32 %f475, %f473, 0fBF800000;
+ add.f32 %f461, %f473, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f460,%f461;
+ // inline asm
+ add.f32 %f476, %f475, %f475;
+ mul.f32 %f477, %f460, %f476;
+ mul.f32 %f478, %f477, %f477;
+ fma.rn.f32 %f481, %f1023, %f478, %f1024;
+ fma.rn.f32 %f483, %f481, %f478, %f1025;
+ mul.rn.f32 %f484, %f483, %f478;
+ mul.rn.f32 %f485, %f484, %f477;
+ sub.f32 %f486, %f475, %f477;
+ neg.f32 %f487, %f477;
+ add.f32 %f488, %f486, %f486;
+ fma.rn.f32 %f489, %f487, %f475, %f488;
+ mul.rn.f32 %f490, %f460, %f489;
+ add.f32 %f491, %f485, %f477;
+ sub.f32 %f492, %f477, %f491;
+ add.f32 %f493, %f485, %f492;
+ add.f32 %f494, %f490, %f493;
+ add.f32 %f495, %f491, %f494;
+ sub.f32 %f496, %f491, %f495;
+ add.f32 %f497, %f494, %f496;
+ mul.rn.f32 %f499, %f474, %f1026;
+ mul.rn.f32 %f501, %f474, %f1027;
+ add.f32 %f502, %f499, %f495;
+ sub.f32 %f503, %f499, %f502;
+ add.f32 %f504, %f495, %f503;
+ add.f32 %f505, %f497, %f504;
+ add.f32 %f506, %f501, %f505;
+ add.f32 %f507, %f502, %f506;
+ sub.f32 %f508, %f502, %f507;
+ add.f32 %f509, %f506, %f508;
+ mov.f32 %f510, 0f3EE8BA2E;
+ mul.rn.f32 %f511, %f510, %f507;
+ neg.f32 %f512, %f511;
+ fma.rn.f32 %f513, %f510, %f507, %f512;
+ fma.rn.f32 %f514, %f510, %f509, %f513;
+ fma.rn.f32 %f516, %f1028, %f507, %f514;
+ add.rn.f32 %f517, %f511, %f516;
+ neg.f32 %f518, %f517;
+ add.rn.f32 %f519, %f511, %f518;
+ add.rn.f32 %f520, %f519, %f516;
+ mov.b32 %r254, %f517;
+ setp.eq.s32 %p64, %r254, 1118925336;
+ add.s32 %r255, %r254, -1;
+ mov.b32 %f521, %r255;
+ add.f32 %f522, %f520, 0f37000000;
+ selp.f32 %f523, %f521, %f517, %p64;
+ selp.f32 %f99, %f522, %f520, %p64;
+ mul.f32 %f524, %f523, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f525, %f524;
+ fma.rn.f32 %f527, %f525, %f1029, %f523;
+ fma.rn.f32 %f529, %f525, %f1030, %f527;
+ mul.f32 %f530, %f529, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f531, %f530;
+ add.f32 %f532, %f525, 0f00000000;
+ ex2.approx.f32 %f533, %f532;
+ mul.f32 %f534, %f531, %f533;
+ setp.lt.f32 %p65, %f523, 0fC2D20000;
+ selp.f32 %f535, 0f00000000, %f534, %p65;
+ setp.gt.f32 %p66, %f523, 0f42D20000;
+ selp.f32 %f1108, 0f7F800000, %f535, %p66;
+ setp.eq.f32 %p67, %f1108, 0f7F800000;
+ @%p67 bra BB0_71;
+
+ fma.rn.f32 %f1108, %f1108, %f99, %f1108;
+
+BB0_71:
+ mov.f32 %f1062, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f1061, %f1062;
+ fma.rn.f32 %f1060, %f1061, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f1059, %f1060;
+ setp.lt.f32 %p68, %f73, 0f00000000;
+ setp.eq.f32 %p69, %f1059, 0f3F800000;
+ and.pred %p2, %p68, %p69;
+ mov.b32 %r256, %f1108;
+ xor.b32 %r257, %r256, -2147483648;
+ mov.b32 %f536, %r257;
+ selp.f32 %f1110, %f536, %f1108, %p2;
+ setp.eq.f32 %p70, %f73, 0f00000000;
+ @%p70 bra BB0_74;
+ bra.uni BB0_72;
+
+BB0_74:
+ add.f32 %f539, %f73, %f73;
+ selp.f32 %f1110, %f539, 0f00000000, %p69;
+ bra.uni BB0_75;
+
+BB0_142:
+ mov.u64 %rd217, image_HDR;
+ cvta.global.u64 %rd212, %rd217;
+ mov.u32 %r354, 8;
+ mov.u64 %rd216, 0;
+ // inline asm
+ call (%rd211), _rt_buffer_get_64, (%rd212, %r105, %r354, %rd24, %rd25, %rd216, %rd216);
+ // inline asm
+ mov.f32 %f995, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f995;}
+
+ // inline asm
+ mov.u16 %rs117, 0;
+ st.v4.u16 [%rd211], {%rs116, %rs116, %rs116, %rs117};
+
+BB0_143:
+ ld.global.u32 %r355, [additive];
+ setp.eq.s32 %p145, %r355, 0;
+ @%p145 bra BB0_145;
+
+ mov.u64 %rd230, image_RNM0;
+ cvta.global.u64 %rd219, %rd230;
+ mov.u32 %r359, 8;
+ mov.u64 %rd229, 0;
+ // inline asm
+ call (%rd218), _rt_buffer_get_64, (%rd219, %r105, %r359, %rd24, %rd25, %rd229, %rd229);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd218];
+ // inline asm
+ { cvt.f32.f16 %f996, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f997, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f998, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd224), _rt_buffer_get_64, (%rd219, %r105, %r359, %rd24, %rd25, %rd229, %rd229);
+ // inline asm
+ add.f32 %f999, %f996, 0f00000000;
+ add.f32 %f1000, %f997, 0f00000000;
+ add.f32 %f1001, %f998, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f1001;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f1000;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f999;}
+
+ // inline asm
+ mov.u16 %rs128, 0;
+ st.v4.u16 [%rd224], {%rs121, %rs122, %rs123, %rs128};
+ bra.uni BB0_146;
+
+BB0_145:
+ mov.u64 %rd237, image_RNM0;
+ cvta.global.u64 %rd232, %rd237;
+ mov.u32 %r361, 8;
+ mov.u64 %rd236, 0;
+ // inline asm
+ call (%rd231), _rt_buffer_get_64, (%rd232, %r105, %r361, %rd24, %rd25, %rd236, %rd236);
+ // inline asm
+ mov.f32 %f1002, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f1002;}
+
+ // inline asm
+ mov.u16 %rs130, 0;
+ st.v4.u16 [%rd231], {%rs129, %rs129, %rs129, %rs130};
+
+BB0_146:
+ ld.global.u32 %r362, [additive];
+ setp.eq.s32 %p146, %r362, 0;
+ @%p146 bra BB0_148;
+
+ mov.u64 %rd250, image_RNM1;
+ cvta.global.u64 %rd239, %rd250;
+ mov.u32 %r366, 8;
+ mov.u64 %rd249, 0;
+ // inline asm
+ call (%rd238), _rt_buffer_get_64, (%rd239, %r105, %r366, %rd24, %rd25, %rd249, %rd249);
+ // inline asm
+ ld.v4.u16 {%rs137, %rs138, %rs139, %rs140}, [%rd238];
+ // inline asm
+ { cvt.f32.f16 %f1003, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1004, %rs138;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1005, %rs139;}
+
+ // inline asm
+ // inline asm
+ call (%rd244), _rt_buffer_get_64, (%rd239, %r105, %r366, %rd24, %rd25, %rd249, %rd249);
+ // inline asm
+ add.f32 %f1006, %f1003, 0f00000000;
+ add.f32 %f1007, %f1004, 0f00000000;
+ add.f32 %f1008, %f1005, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs136, %f1008;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f1007;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f1006;}
+
+ // inline asm
+ mov.u16 %rs141, 0;
+ st.v4.u16 [%rd244], {%rs134, %rs135, %rs136, %rs141};
+ bra.uni BB0_149;
+
+BB0_148:
+ mov.u64 %rd257, image_RNM1;
+ cvta.global.u64 %rd252, %rd257;
+ mov.u32 %r368, 8;
+ mov.u64 %rd256, 0;
+ // inline asm
+ call (%rd251), _rt_buffer_get_64, (%rd252, %r105, %r368, %rd24, %rd25, %rd256, %rd256);
+ // inline asm
+ mov.f32 %f1009, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs142, %f1009;}
+
+ // inline asm
+ mov.u16 %rs143, 0;
+ st.v4.u16 [%rd251], {%rs142, %rs142, %rs142, %rs143};
+
+BB0_149:
+ ld.global.u32 %r369, [additive];
+ setp.eq.s32 %p147, %r369, 0;
+ @%p147 bra BB0_151;
+
+ mov.u64 %rd270, image_RNM2;
+ cvta.global.u64 %rd259, %rd270;
+ mov.u32 %r373, 8;
+ mov.u64 %rd269, 0;
+ // inline asm
+ call (%rd258), _rt_buffer_get_64, (%rd259, %r105, %r373, %rd24, %rd25, %rd269, %rd269);
+ // inline asm
+ ld.v4.u16 {%rs150, %rs151, %rs152, %rs153}, [%rd258];
+ // inline asm
+ { cvt.f32.f16 %f1010, %rs150;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1011, %rs151;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1012, %rs152;}
+
+ // inline asm
+ // inline asm
+ call (%rd264), _rt_buffer_get_64, (%rd259, %r105, %r373, %rd24, %rd25, %rd269, %rd269);
+ // inline asm
+ add.f32 %f1013, %f1010, 0f00000000;
+ add.f32 %f1014, %f1011, 0f00000000;
+ add.f32 %f1015, %f1012, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs149, %f1015;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs148, %f1014;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f1013;}
+
+ // inline asm
+ mov.u16 %rs154, 0;
+ st.v4.u16 [%rd264], {%rs147, %rs148, %rs149, %rs154};
+ bra.uni BB0_152;
+
+BB0_151:
+ mov.u64 %rd277, image_RNM2;
+ cvta.global.u64 %rd272, %rd277;
+ mov.u32 %r375, 8;
+ mov.u64 %rd276, 0;
+ // inline asm
+ call (%rd271), _rt_buffer_get_64, (%rd272, %r105, %r375, %rd24, %rd25, %rd276, %rd276);
+ // inline asm
+ mov.f32 %f1016, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs155, %f1016;}
+
+ // inline asm
+ mov.u16 %rs156, 0;
+ st.v4.u16 [%rd271], {%rs155, %rs155, %rs155, %rs156};
+ bra.uni BB0_152;
+
+BB0_72:
+ setp.geu.f32 %p71, %f73, 0f00000000;
+ @%p71 bra BB0_75;
+
+ mov.f32 %f1066, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f538, %f1066;
+ setp.neu.f32 %p72, %f538, 0f3EE8BA2E;
+ selp.f32 %f1110, 0f7FFFFFFF, %f1110, %p72;
+
+BB0_75:
+ abs.f32 %f1063, %f73;
+ add.f32 %f540, %f1063, 0f3EE8BA2E;
+ mov.b32 %r258, %f540;
+ setp.lt.s32 %p74, %r258, 2139095040;
+ @%p74 bra BB0_80;
+
+ abs.f32 %f1064, %f73;
+ setp.gtu.f32 %p75, %f1064, 0f7F800000;
+ @%p75 bra BB0_79;
+ bra.uni BB0_77;
+
+BB0_79:
+ add.f32 %f1110, %f73, 0f3EE8BA2E;
+ bra.uni BB0_80;
+
+BB0_77:
+ abs.f32 %f1065, %f73;
+ setp.neu.f32 %p76, %f1065, 0f7F800000;
+ @%p76 bra BB0_80;
+
+ selp.f32 %f1110, 0fFF800000, 0f7F800000, %p2;
+
+BB0_80:
+ mul.f32 %f541, %f1110, 0f437F0000;
+ setp.eq.f32 %p77, %f73, 0f3F800000;
+ selp.f32 %f542, 0f437F0000, %f541, %p77;
+ cvt.rzi.u32.f32 %r259, %f542;
+ cvt.u16.u32 %rs13, %r259;
+ mov.u16 %rs14, 255;
+ st.v2.u8 [%rd69], {%rs13, %rs14};
+ ld.global.u32 %r409, [imageEnabled];
+
+BB0_81:
+ and.b32 %r260, %r409, 1;
+ setp.eq.b32 %p78, %r260, 1;
+ @!%p78 bra BB0_116;
+ bra.uni BB0_82;
+
+BB0_82:
+ mov.f32 %f1038, 0fB5BFBE8E;
+ mov.f32 %f1037, 0fBF317200;
+ mov.f32 %f1036, 0f00000000;
+ mov.f32 %f1035, 0f35BFBE8E;
+ mov.f32 %f1034, 0f3F317200;
+ mov.f32 %f1033, 0f3DAAAABD;
+ mov.f32 %f1032, 0f3C4CAF63;
+ mov.f32 %f1031, 0f3B18F0FE;
+ abs.f32 %f111, %f77;
+ setp.lt.f32 %p79, %f111, 0f00800000;
+ mul.f32 %f548, %f111, 0f4B800000;
+ selp.f32 %f549, 0fC3170000, 0fC2FE0000, %p79;
+ selp.f32 %f550, %f548, %f111, %p79;
+ mov.b32 %r261, %f550;
+ and.b32 %r262, %r261, 8388607;
+ or.b32 %r263, %r262, 1065353216;
+ mov.b32 %f551, %r263;
+ shr.u32 %r264, %r261, 23;
+ cvt.rn.f32.u32 %f552, %r264;
+ add.f32 %f553, %f549, %f552;
+ setp.gt.f32 %p80, %f551, 0f3FB504F3;
+ mul.f32 %f554, %f551, 0f3F000000;
+ add.f32 %f555, %f553, 0f3F800000;
+ selp.f32 %f556, %f554, %f551, %p80;
+ selp.f32 %f557, %f555, %f553, %p80;
+ add.f32 %f558, %f556, 0fBF800000;
+ add.f32 %f544, %f556, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f543,%f544;
+ // inline asm
+ add.f32 %f559, %f558, %f558;
+ mul.f32 %f560, %f543, %f559;
+ mul.f32 %f561, %f560, %f560;
+ fma.rn.f32 %f564, %f1031, %f561, %f1032;
+ fma.rn.f32 %f566, %f564, %f561, %f1033;
+ mul.rn.f32 %f567, %f566, %f561;
+ mul.rn.f32 %f568, %f567, %f560;
+ sub.f32 %f569, %f558, %f560;
+ neg.f32 %f570, %f560;
+ add.f32 %f571, %f569, %f569;
+ fma.rn.f32 %f572, %f570, %f558, %f571;
+ mul.rn.f32 %f573, %f543, %f572;
+ add.f32 %f574, %f568, %f560;
+ sub.f32 %f575, %f560, %f574;
+ add.f32 %f576, %f568, %f575;
+ add.f32 %f577, %f573, %f576;
+ add.f32 %f578, %f574, %f577;
+ sub.f32 %f579, %f574, %f578;
+ add.f32 %f580, %f577, %f579;
+ mul.rn.f32 %f582, %f557, %f1034;
+ mul.rn.f32 %f584, %f557, %f1035;
+ add.f32 %f585, %f582, %f578;
+ sub.f32 %f586, %f582, %f585;
+ add.f32 %f587, %f578, %f586;
+ add.f32 %f588, %f580, %f587;
+ add.f32 %f589, %f584, %f588;
+ add.f32 %f590, %f585, %f589;
+ sub.f32 %f591, %f585, %f590;
+ add.f32 %f592, %f589, %f591;
+ mov.f32 %f593, 0f3EE66666;
+ mul.rn.f32 %f594, %f593, %f590;
+ neg.f32 %f595, %f594;
+ fma.rn.f32 %f596, %f593, %f590, %f595;
+ fma.rn.f32 %f597, %f593, %f592, %f596;
+ fma.rn.f32 %f599, %f1036, %f590, %f597;
+ add.rn.f32 %f600, %f594, %f599;
+ neg.f32 %f601, %f600;
+ add.rn.f32 %f602, %f594, %f601;
+ add.rn.f32 %f603, %f602, %f599;
+ mov.b32 %r265, %f600;
+ setp.eq.s32 %p81, %r265, 1118925336;
+ add.s32 %r266, %r265, -1;
+ mov.b32 %f604, %r266;
+ add.f32 %f605, %f603, 0f37000000;
+ selp.f32 %f606, %f604, %f600, %p81;
+ selp.f32 %f112, %f605, %f603, %p81;
+ mul.f32 %f607, %f606, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f608, %f607;
+ fma.rn.f32 %f610, %f608, %f1037, %f606;
+ fma.rn.f32 %f612, %f608, %f1038, %f610;
+ mul.f32 %f613, %f612, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f614, %f613;
+ add.f32 %f615, %f608, 0f00000000;
+ ex2.approx.f32 %f616, %f615;
+ mul.f32 %f617, %f614, %f616;
+ setp.lt.f32 %p82, %f606, 0fC2D20000;
+ selp.f32 %f618, 0f00000000, %f617, %p82;
+ setp.gt.f32 %p83, %f606, 0f42D20000;
+ selp.f32 %f1111, 0f7F800000, %f618, %p83;
+ setp.eq.f32 %p84, %f1111, 0f7F800000;
+ @%p84 bra BB0_84;
+
+ fma.rn.f32 %f1111, %f1111, %f112, %f1111;
+
+BB0_84:
+ mov.f32 %f1070, 0f3E666666;
+ cvt.rzi.f32.f32 %f1069, %f1070;
+ fma.rn.f32 %f1068, %f1069, 0fC0000000, 0f3EE66666;
+ abs.f32 %f1067, %f1068;
+ setp.lt.f32 %p85, %f77, 0f00000000;
+ setp.eq.f32 %p86, %f1067, 0f3F800000;
+ and.pred %p3, %p85, %p86;
+ mov.b32 %r267, %f1111;
+ xor.b32 %r268, %r267, -2147483648;
+ mov.b32 %f619, %r268;
+ selp.f32 %f1113, %f619, %f1111, %p3;
+ setp.eq.f32 %p87, %f77, 0f00000000;
+ @%p87 bra BB0_87;
+ bra.uni BB0_85;
+
+BB0_87:
+ add.f32 %f622, %f77, %f77;
+ selp.f32 %f1113, %f622, 0f00000000, %p86;
+ bra.uni BB0_88;
+
+BB0_85:
+ setp.geu.f32 %p88, %f77, 0f00000000;
+ @%p88 bra BB0_88;
+
+ mov.f32 %f1078, 0f3EE66666;
+ cvt.rzi.f32.f32 %f621, %f1078;
+ setp.neu.f32 %p89, %f621, 0f3EE66666;
+ selp.f32 %f1113, 0f7FFFFFFF, %f1113, %p89;
+
+BB0_88:
+ abs.f32 %f1071, %f77;
+ add.f32 %f623, %f1071, 0f3EE66666;
+ mov.b32 %r269, %f623;
+ setp.lt.s32 %p91, %r269, 2139095040;
+ @%p91 bra BB0_93;
+
+ abs.f32 %f1076, %f77;
+ setp.gtu.f32 %p92, %f1076, 0f7F800000;
+ @%p92 bra BB0_92;
+ bra.uni BB0_90;
+
+BB0_92:
+ add.f32 %f1113, %f77, 0f3EE66666;
+ bra.uni BB0_93;
+
+BB0_90:
+ abs.f32 %f1077, %f77;
+ setp.neu.f32 %p93, %f1077, 0f7F800000;
+ @%p93 bra BB0_93;
+
+ selp.f32 %f1113, 0fFF800000, 0f7F800000, %p3;
+
+BB0_93:
+ mov.f32 %f1072, 0f3EE66666;
+ mov.f32 %f1046, 0fB5BFBE8E;
+ mov.f32 %f1045, 0fBF317200;
+ mov.f32 %f1044, 0f00000000;
+ mov.f32 %f1043, 0f35BFBE8E;
+ mov.f32 %f1042, 0f3F317200;
+ mov.f32 %f1041, 0f3DAAAABD;
+ mov.f32 %f1040, 0f3C4CAF63;
+ mov.f32 %f1039, 0f3B18F0FE;
+ setp.eq.f32 %p94, %f77, 0f3F800000;
+ selp.f32 %f123, 0f3F800000, %f1113, %p94;
+ abs.f32 %f124, %f78;
+ setp.lt.f32 %p95, %f124, 0f00800000;
+ mul.f32 %f626, %f124, 0f4B800000;
+ selp.f32 %f627, 0fC3170000, 0fC2FE0000, %p95;
+ selp.f32 %f628, %f626, %f124, %p95;
+ mov.b32 %r270, %f628;
+ and.b32 %r271, %r270, 8388607;
+ or.b32 %r272, %r271, 1065353216;
+ mov.b32 %f629, %r272;
+ shr.u32 %r273, %r270, 23;
+ cvt.rn.f32.u32 %f630, %r273;
+ add.f32 %f631, %f627, %f630;
+ setp.gt.f32 %p96, %f629, 0f3FB504F3;
+ mul.f32 %f632, %f629, 0f3F000000;
+ add.f32 %f633, %f631, 0f3F800000;
+ selp.f32 %f634, %f632, %f629, %p96;
+ selp.f32 %f635, %f633, %f631, %p96;
+ add.f32 %f636, %f634, 0fBF800000;
+ add.f32 %f625, %f634, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f624,%f625;
+ // inline asm
+ add.f32 %f637, %f636, %f636;
+ mul.f32 %f638, %f624, %f637;
+ mul.f32 %f639, %f638, %f638;
+ fma.rn.f32 %f642, %f1039, %f639, %f1040;
+ fma.rn.f32 %f644, %f642, %f639, %f1041;
+ mul.rn.f32 %f645, %f644, %f639;
+ mul.rn.f32 %f646, %f645, %f638;
+ sub.f32 %f647, %f636, %f638;
+ neg.f32 %f648, %f638;
+ add.f32 %f649, %f647, %f647;
+ fma.rn.f32 %f650, %f648, %f636, %f649;
+ mul.rn.f32 %f651, %f624, %f650;
+ add.f32 %f652, %f646, %f638;
+ sub.f32 %f653, %f638, %f652;
+ add.f32 %f654, %f646, %f653;
+ add.f32 %f655, %f651, %f654;
+ add.f32 %f656, %f652, %f655;
+ sub.f32 %f657, %f652, %f656;
+ add.f32 %f658, %f655, %f657;
+ mul.rn.f32 %f660, %f635, %f1042;
+ mul.rn.f32 %f662, %f635, %f1043;
+ add.f32 %f663, %f660, %f656;
+ sub.f32 %f664, %f660, %f663;
+ add.f32 %f665, %f656, %f664;
+ add.f32 %f666, %f658, %f665;
+ add.f32 %f667, %f662, %f666;
+ add.f32 %f668, %f663, %f667;
+ sub.f32 %f669, %f663, %f668;
+ add.f32 %f670, %f667, %f669;
+ mul.rn.f32 %f672, %f1072, %f668;
+ neg.f32 %f673, %f672;
+ fma.rn.f32 %f674, %f1072, %f668, %f673;
+ fma.rn.f32 %f675, %f1072, %f670, %f674;
+ fma.rn.f32 %f677, %f1044, %f668, %f675;
+ add.rn.f32 %f678, %f672, %f677;
+ neg.f32 %f679, %f678;
+ add.rn.f32 %f680, %f672, %f679;
+ add.rn.f32 %f681, %f680, %f677;
+ mov.b32 %r274, %f678;
+ setp.eq.s32 %p97, %r274, 1118925336;
+ add.s32 %r275, %r274, -1;
+ mov.b32 %f682, %r275;
+ add.f32 %f683, %f681, 0f37000000;
+ selp.f32 %f684, %f682, %f678, %p97;
+ selp.f32 %f125, %f683, %f681, %p97;
+ mul.f32 %f685, %f684, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f686, %f685;
+ fma.rn.f32 %f688, %f686, %f1045, %f684;
+ fma.rn.f32 %f690, %f686, %f1046, %f688;
+ mul.f32 %f691, %f690, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f692, %f691;
+ add.f32 %f693, %f686, 0f00000000;
+ ex2.approx.f32 %f694, %f693;
+ mul.f32 %f695, %f692, %f694;
+ setp.lt.f32 %p98, %f684, 0fC2D20000;
+ selp.f32 %f696, 0f00000000, %f695, %p98;
+ setp.gt.f32 %p99, %f684, 0f42D20000;
+ selp.f32 %f1114, 0f7F800000, %f696, %p99;
+ setp.eq.f32 %p100, %f1114, 0f7F800000;
+ @%p100 bra BB0_95;
+
+ fma.rn.f32 %f1114, %f1114, %f125, %f1114;
+
+BB0_95:
+ setp.lt.f32 %p101, %f78, 0f00000000;
+ and.pred %p4, %p101, %p86;
+ mov.b32 %r276, %f1114;
+ xor.b32 %r277, %r276, -2147483648;
+ mov.b32 %f697, %r277;
+ selp.f32 %f1116, %f697, %f1114, %p4;
+ setp.eq.f32 %p103, %f78, 0f00000000;
+ @%p103 bra BB0_98;
+ bra.uni BB0_96;
+
+BB0_98:
+ add.f32 %f700, %f78, %f78;
+ selp.f32 %f1116, %f700, 0f00000000, %p86;
+ bra.uni BB0_99;
+
+BB0_96:
+ setp.geu.f32 %p104, %f78, 0f00000000;
+ @%p104 bra BB0_99;
+
+ mov.f32 %f1075, 0f3EE66666;
+ cvt.rzi.f32.f32 %f699, %f1075;
+ setp.neu.f32 %p105, %f699, 0f3EE66666;
+ selp.f32 %f1116, 0f7FFFFFFF, %f1116, %p105;
+
+BB0_99:
+ abs.f32 %f1079, %f78;
+ add.f32 %f701, %f1079, 0f3EE66666;
+ mov.b32 %r278, %f701;
+ setp.lt.s32 %p107, %r278, 2139095040;
+ @%p107 bra BB0_104;
+
+ abs.f32 %f1080, %f78;
+ setp.gtu.f32 %p108, %f1080, 0f7F800000;
+ @%p108 bra BB0_103;
+ bra.uni BB0_101;
+
+BB0_103:
+ add.f32 %f1116, %f78, 0f3EE66666;
+ bra.uni BB0_104;
+
+BB0_101:
+ abs.f32 %f1081, %f78;
+ setp.neu.f32 %p109, %f1081, 0f7F800000;
+ @%p109 bra BB0_104;
+
+ selp.f32 %f1116, 0fFF800000, 0f7F800000, %p4;
+
+BB0_104:
+ mov.f32 %f1073, 0f3EE66666;
+ mov.f32 %f1054, 0fB5BFBE8E;
+ mov.f32 %f1053, 0fBF317200;
+ mov.f32 %f1052, 0f00000000;
+ mov.f32 %f1051, 0f35BFBE8E;
+ mov.f32 %f1050, 0f3F317200;
+ mov.f32 %f1049, 0f3DAAAABD;
+ mov.f32 %f1048, 0f3C4CAF63;
+ mov.f32 %f1047, 0f3B18F0FE;
+ setp.eq.f32 %p110, %f78, 0f3F800000;
+ selp.f32 %f136, 0f3F800000, %f1116, %p110;
+ abs.f32 %f137, %f79;
+ setp.lt.f32 %p111, %f137, 0f00800000;
+ mul.f32 %f704, %f137, 0f4B800000;
+ selp.f32 %f705, 0fC3170000, 0fC2FE0000, %p111;
+ selp.f32 %f706, %f704, %f137, %p111;
+ mov.b32 %r279, %f706;
+ and.b32 %r280, %r279, 8388607;
+ or.b32 %r281, %r280, 1065353216;
+ mov.b32 %f707, %r281;
+ shr.u32 %r282, %r279, 23;
+ cvt.rn.f32.u32 %f708, %r282;
+ add.f32 %f709, %f705, %f708;
+ setp.gt.f32 %p112, %f707, 0f3FB504F3;
+ mul.f32 %f710, %f707, 0f3F000000;
+ add.f32 %f711, %f709, 0f3F800000;
+ selp.f32 %f712, %f710, %f707, %p112;
+ selp.f32 %f713, %f711, %f709, %p112;
+ add.f32 %f714, %f712, 0fBF800000;
+ add.f32 %f703, %f712, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f702,%f703;
+ // inline asm
+ add.f32 %f715, %f714, %f714;
+ mul.f32 %f716, %f702, %f715;
+ mul.f32 %f717, %f716, %f716;
+ fma.rn.f32 %f720, %f1047, %f717, %f1048;
+ fma.rn.f32 %f722, %f720, %f717, %f1049;
+ mul.rn.f32 %f723, %f722, %f717;
+ mul.rn.f32 %f724, %f723, %f716;
+ sub.f32 %f725, %f714, %f716;
+ neg.f32 %f726, %f716;
+ add.f32 %f727, %f725, %f725;
+ fma.rn.f32 %f728, %f726, %f714, %f727;
+ mul.rn.f32 %f729, %f702, %f728;
+ add.f32 %f730, %f724, %f716;
+ sub.f32 %f731, %f716, %f730;
+ add.f32 %f732, %f724, %f731;
+ add.f32 %f733, %f729, %f732;
+ add.f32 %f734, %f730, %f733;
+ sub.f32 %f735, %f730, %f734;
+ add.f32 %f736, %f733, %f735;
+ mul.rn.f32 %f738, %f713, %f1050;
+ mul.rn.f32 %f740, %f713, %f1051;
+ add.f32 %f741, %f738, %f734;
+ sub.f32 %f742, %f738, %f741;
+ add.f32 %f743, %f734, %f742;
+ add.f32 %f744, %f736, %f743;
+ add.f32 %f745, %f740, %f744;
+ add.f32 %f746, %f741, %f745;
+ sub.f32 %f747, %f741, %f746;
+ add.f32 %f748, %f745, %f747;
+ mul.rn.f32 %f750, %f1073, %f746;
+ neg.f32 %f751, %f750;
+ fma.rn.f32 %f752, %f1073, %f746, %f751;
+ fma.rn.f32 %f753, %f1073, %f748, %f752;
+ fma.rn.f32 %f755, %f1052, %f746, %f753;
+ add.rn.f32 %f756, %f750, %f755;
+ neg.f32 %f757, %f756;
+ add.rn.f32 %f758, %f750, %f757;
+ add.rn.f32 %f759, %f758, %f755;
+ mov.b32 %r283, %f756;
+ setp.eq.s32 %p113, %r283, 1118925336;
+ add.s32 %r284, %r283, -1;
+ mov.b32 %f760, %r284;
+ add.f32 %f761, %f759, 0f37000000;
+ selp.f32 %f762, %f760, %f756, %p113;
+ selp.f32 %f138, %f761, %f759, %p113;
+ mul.f32 %f763, %f762, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f764, %f763;
+ fma.rn.f32 %f766, %f764, %f1053, %f762;
+ fma.rn.f32 %f768, %f764, %f1054, %f766;
+ mul.f32 %f769, %f768, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f770, %f769;
+ add.f32 %f771, %f764, 0f00000000;
+ ex2.approx.f32 %f772, %f771;
+ mul.f32 %f773, %f770, %f772;
+ setp.lt.f32 %p114, %f762, 0fC2D20000;
+ selp.f32 %f774, 0f00000000, %f773, %p114;
+ setp.gt.f32 %p115, %f762, 0f42D20000;
+ selp.f32 %f1117, 0f7F800000, %f774, %p115;
+ setp.eq.f32 %p116, %f1117, 0f7F800000;
+ @%p116 bra BB0_106;
+
+ fma.rn.f32 %f1117, %f1117, %f138, %f1117;
+
+BB0_106:
+ setp.lt.f32 %p117, %f79, 0f00000000;
+ and.pred %p5, %p117, %p86;
+ mov.b32 %r285, %f1117;
+ xor.b32 %r286, %r285, -2147483648;
+ mov.b32 %f775, %r286;
+ selp.f32 %f1119, %f775, %f1117, %p5;
+ setp.eq.f32 %p119, %f79, 0f00000000;
+ @%p119 bra BB0_109;
+ bra.uni BB0_107;
+
+BB0_109:
+ add.f32 %f778, %f79, %f79;
+ selp.f32 %f1119, %f778, 0f00000000, %p86;
+ bra.uni BB0_110;
+
+BB0_107:
+ setp.geu.f32 %p120, %f79, 0f00000000;
+ @%p120 bra BB0_110;
+
+ mov.f32 %f1074, 0f3EE66666;
+ cvt.rzi.f32.f32 %f777, %f1074;
+ setp.neu.f32 %p121, %f777, 0f3EE66666;
+ selp.f32 %f1119, 0f7FFFFFFF, %f1119, %p121;
+
+BB0_110:
+ abs.f32 %f1082, %f79;
+ add.f32 %f779, %f1082, 0f3EE66666;
+ mov.b32 %r287, %f779;
+ setp.lt.s32 %p123, %r287, 2139095040;
+ @%p123 bra BB0_115;
+
+ abs.f32 %f1083, %f79;
+ setp.gtu.f32 %p124, %f1083, 0f7F800000;
+ @%p124 bra BB0_114;
+ bra.uni BB0_112;
+
+BB0_114:
+ add.f32 %f1119, %f79, 0f3EE66666;
+ bra.uni BB0_115;
+
+BB0_112:
+ abs.f32 %f1084, %f79;
+ setp.neu.f32 %p125, %f1084, 0f7F800000;
+ @%p125 bra BB0_115;
+
+ selp.f32 %f1119, 0fFF800000, 0f7F800000, %p5;
+
+BB0_115:
+ mov.u32 %r376, 4;
+ setp.eq.f32 %p126, %f79, 0f3F800000;
+ selp.f32 %f780, 0f3F800000, %f1119, %p126;
+ cvt.u64.u32 %rd79, %r3;
+ cvt.u64.u32 %rd78, %r2;
+ mov.u64 %rd82, image;
+ cvta.global.u64 %rd77, %rd82;
+ // inline asm
+ call (%rd76), _rt_buffer_get_64, (%rd77, %r105, %r376, %rd78, %rd79, %rd31, %rd31);
+ // inline asm
+ cvt.sat.f32.f32 %f781, %f780;
+ mul.f32 %f782, %f781, 0f437FFD71;
+ cvt.rzi.u32.f32 %r290, %f782;
+ cvt.sat.f32.f32 %f783, %f136;
+ mul.f32 %f784, %f783, 0f437FFD71;
+ cvt.rzi.u32.f32 %r291, %f784;
+ cvt.sat.f32.f32 %f785, %f123;
+ mul.f32 %f786, %f785, 0f437FFD71;
+ cvt.rzi.u32.f32 %r292, %f786;
+ cvt.u16.u32 %rs15, %r290;
+ cvt.u16.u32 %rs16, %r292;
+ cvt.u16.u32 %rs17, %r291;
+ mov.u16 %rs18, 255;
+ st.v4.u8 [%rd76], {%rs15, %rs17, %rs16, %rs18};
+ ld.global.u32 %r409, [imageEnabled];
+
+BB0_116:
+ and.b32 %r293, %r409, 4;
+ setp.eq.s32 %p127, %r293, 0;
+ @%p127 bra BB0_120;
+
+ ld.global.u32 %r294, [additive];
+ setp.eq.s32 %p128, %r294, 0;
+ cvt.u64.u32 %rd17, %r2;
+ cvt.u64.u32 %rd18, %r3;
+ mov.f32 %f787, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs19, %f787;}
+
+ // inline asm
+ @%p128 bra BB0_119;
+
+ mov.u64 %rd95, image_HDR;
+ cvta.global.u64 %rd84, %rd95;
+ mov.u32 %r298, 8;
+ // inline asm
+ call (%rd83), _rt_buffer_get_64, (%rd84, %r105, %r298, %rd17, %rd18, %rd31, %rd31);
+ // inline asm
+ ld.v4.u16 {%rs26, %rs27, %rs28, %rs29}, [%rd83];
+ // inline asm
+ { cvt.f32.f16 %f788, %rs26;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f789, %rs27;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f790, %rs28;}
+
+ // inline asm
+ // inline asm
+ call (%rd89), _rt_buffer_get_64, (%rd84, %r105, %r298, %rd17, %rd18, %rd31, %rd31);
+ // inline asm
+ add.f32 %f791, %f77, %f788;
+ add.f32 %f792, %f78, %f789;
+ add.f32 %f793, %f79, %f790;
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f793;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f792;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f791;}
+
+ // inline asm
+ st.v4.u16 [%rd89], {%rs23, %rs24, %rs25, %rs19};
+ bra.uni BB0_120;
+
+BB0_119:
+ mov.u64 %rd102, image_HDR;
+ cvta.global.u64 %rd97, %rd102;
+ mov.u32 %r300, 8;
+ // inline asm
+ call (%rd96), _rt_buffer_get_64, (%rd97, %r105, %r300, %rd17, %rd18, %rd31, %rd31);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f79;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f78;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f77;}
+
+ // inline asm
+ st.v4.u16 [%rd96], {%rs30, %rs31, %rs32, %rs19};
+
+BB0_120:
+ mov.f32 %f1120, 0f00000000;
+ mov.u32 %r377, 4;
+ ld.global.v2.u32 {%r303, %r304}, [pixelID];
+ cvt.u64.u32 %rd105, %r303;
+ cvt.u64.u32 %rd106, %r304;
+ mov.u64 %rd109, uvtangent;
+ cvta.global.u64 %rd104, %rd109;
+ // inline asm
+ call (%rd103), _rt_buffer_get_64, (%rd104, %r105, %r377, %rd105, %rd106, %rd31, %rd31);
+ // inline asm
+ ld.u32 %r94, [%rd103];
+ shr.u32 %r95, %r94, 16;
+ cvt.u16.u32 %rs33, %r95;
+ and.b16 %rs34, %rs33, 255;
+ cvt.u16.u32 %rs35, %r94;
+ or.b16 %rs36, %rs35, %rs34;
+ setp.eq.s16 %p129, %rs36, 0;
+ mov.f32 %f1121, %f1120;
+ mov.f32 %f1122, %f1120;
+ @%p129 bra BB0_122;
+
+ ld.u8 %rs37, [%rd103+1];
+ and.b16 %rs39, %rs35, 255;
+ cvt.rn.f32.u16 %f800, %rs39;
+ div.rn.f32 %f801, %f800, 0f437F0000;
+ fma.rn.f32 %f802, %f801, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f803, %rs37;
+ div.rn.f32 %f804, %f803, 0f437F0000;
+ fma.rn.f32 %f805, %f804, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f806, %rs34;
+ div.rn.f32 %f807, %f806, 0f437F0000;
+ fma.rn.f32 %f808, %f807, 0f40000000, 0fBF800000;
+ mul.f32 %f809, %f805, %f805;
+ fma.rn.f32 %f810, %f802, %f802, %f809;
+ fma.rn.f32 %f811, %f808, %f808, %f810;
+ sqrt.rn.f32 %f812, %f811;
+ rcp.rn.f32 %f813, %f812;
+ mul.f32 %f1120, %f802, %f813;
+ mul.f32 %f1121, %f805, %f813;
+ mul.f32 %f1122, %f808, %f813;
+
+BB0_122:
+ mov.f32 %f1123, 0f00000000;
+ mov.u32 %r378, 4;
+ mul.f32 %f817, %f1087, %f1121;
+ mul.f32 %f818, %f1086, %f1122;
+ sub.f32 %f819, %f818, %f817;
+ mul.f32 %f820, %f1085, %f1122;
+ mul.f32 %f821, %f1087, %f1120;
+ sub.f32 %f822, %f821, %f820;
+ mul.f32 %f823, %f1086, %f1120;
+ mul.f32 %f824, %f1085, %f1121;
+ sub.f32 %f825, %f824, %f823;
+ setp.lt.u32 %p130, %r94, 16777216;
+ selp.f32 %f826, 0fBF800000, 0f3F800000, %p130;
+ mul.f32 %f827, %f819, %f826;
+ mul.f32 %f828, %f822, %f826;
+ mul.f32 %f829, %f825, %f826;
+ mul.f32 %f830, %f827, 0f00000000;
+ mul.f32 %f831, %f828, 0f00000000;
+ mul.f32 %f832, %f829, 0f00000000;
+ fma.rn.f32 %f833, %f1120, 0f3F5105EC, %f830;
+ fma.rn.f32 %f834, %f1121, 0f3F5105EC, %f831;
+ fma.rn.f32 %f835, %f1122, 0f3F5105EC, %f832;
+ mul.f32 %f155, %f1085, 0f3F13CD3A;
+ add.f32 %f156, %f155, %f833;
+ mul.f32 %f157, %f1086, 0f3F13CD3A;
+ add.f32 %f158, %f157, %f834;
+ mul.f32 %f159, %f1087, 0f3F13CD3A;
+ add.f32 %f160, %f159, %f835;
+ ld.global.v2.u32 {%r309, %r310}, [pixelID];
+ cvt.u64.u32 %rd112, %r309;
+ cvt.u64.u32 %rd113, %r310;
+ // inline asm
+ call (%rd110), _rt_buffer_get_64, (%rd104, %r105, %r378, %rd112, %rd113, %rd31, %rd31);
+ // inline asm
+ ld.u32 %r96, [%rd110];
+ shr.u32 %r97, %r96, 16;
+ cvt.u16.u32 %rs42, %r97;
+ and.b16 %rs43, %rs42, 255;
+ cvt.u16.u32 %rs44, %r96;
+ or.b16 %rs45, %rs44, %rs43;
+ setp.eq.s16 %p131, %rs45, 0;
+ mov.f32 %f1124, %f1123;
+ mov.f32 %f1125, %f1123;
+ @%p131 bra BB0_124;
+
+ ld.u8 %rs46, [%rd110+1];
+ and.b16 %rs48, %rs44, 255;
+ cvt.rn.f32.u16 %f836, %rs48;
+ div.rn.f32 %f837, %f836, 0f437F0000;
+ fma.rn.f32 %f838, %f837, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f839, %rs46;
+ div.rn.f32 %f840, %f839, 0f437F0000;
+ fma.rn.f32 %f841, %f840, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f842, %rs43;
+ div.rn.f32 %f843, %f842, 0f437F0000;
+ fma.rn.f32 %f844, %f843, 0f40000000, 0fBF800000;
+ mul.f32 %f845, %f841, %f841;
+ fma.rn.f32 %f846, %f838, %f838, %f845;
+ fma.rn.f32 %f847, %f844, %f844, %f846;
+ sqrt.rn.f32 %f848, %f847;
+ rcp.rn.f32 %f849, %f848;
+ mul.f32 %f1123, %f838, %f849;
+ mul.f32 %f1124, %f841, %f849;
+ mul.f32 %f1125, %f844, %f849;
+
+BB0_124:
+ mov.f32 %f1126, 0f00000000;
+ mov.u32 %r379, 4;
+ mul.f32 %f853, %f1087, %f1124;
+ mul.f32 %f854, %f1086, %f1125;
+ sub.f32 %f855, %f854, %f853;
+ mul.f32 %f856, %f1085, %f1125;
+ mul.f32 %f857, %f1087, %f1123;
+ sub.f32 %f858, %f857, %f856;
+ mul.f32 %f859, %f1086, %f1123;
+ mul.f32 %f860, %f1085, %f1124;
+ sub.f32 %f861, %f860, %f859;
+ setp.lt.u32 %p132, %r96, 16777216;
+ selp.f32 %f862, 0fBF800000, 0f3F800000, %p132;
+ mul.f32 %f863, %f855, %f862;
+ mul.f32 %f864, %f858, %f862;
+ mul.f32 %f865, %f861, %f862;
+ mul.f32 %f866, %f863, 0f3F3504F3;
+ mul.f32 %f867, %f864, 0f3F3504F3;
+ mul.f32 %f868, %f865, 0f3F3504F3;
+ fma.rn.f32 %f869, %f1123, 0fBED105EC, %f866;
+ fma.rn.f32 %f870, %f1124, 0fBED105EC, %f867;
+ fma.rn.f32 %f871, %f1125, 0fBED105EC, %f868;
+ add.f32 %f167, %f155, %f869;
+ add.f32 %f168, %f157, %f870;
+ add.f32 %f169, %f159, %f871;
+ ld.global.v2.u32 {%r315, %r316}, [pixelID];
+ cvt.u64.u32 %rd119, %r315;
+ cvt.u64.u32 %rd120, %r316;
+ // inline asm
+ call (%rd117), _rt_buffer_get_64, (%rd104, %r105, %r379, %rd119, %rd120, %rd31, %rd31);
+ // inline asm
+ ld.u32 %r98, [%rd117];
+ shr.u32 %r99, %r98, 16;
+ cvt.u16.u32 %rs51, %r99;
+ and.b16 %rs52, %rs51, 255;
+ cvt.u16.u32 %rs53, %r98;
+ or.b16 %rs54, %rs53, %rs52;
+ setp.eq.s16 %p133, %rs54, 0;
+ mov.f32 %f1127, %f1126;
+ mov.f32 %f1128, %f1126;
+ @%p133 bra BB0_126;
+
+ ld.u8 %rs55, [%rd117+1];
+ and.b16 %rs57, %rs53, 255;
+ cvt.rn.f32.u16 %f872, %rs57;
+ div.rn.f32 %f873, %f872, 0f437F0000;
+ fma.rn.f32 %f874, %f873, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f875, %rs55;
+ div.rn.f32 %f876, %f875, 0f437F0000;
+ fma.rn.f32 %f877, %f876, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f878, %rs52;
+ div.rn.f32 %f879, %f878, 0f437F0000;
+ fma.rn.f32 %f880, %f879, 0f40000000, 0fBF800000;
+ mul.f32 %f881, %f877, %f877;
+ fma.rn.f32 %f882, %f874, %f874, %f881;
+ fma.rn.f32 %f883, %f880, %f880, %f882;
+ sqrt.rn.f32 %f884, %f883;
+ rcp.rn.f32 %f885, %f884;
+ mul.f32 %f1126, %f874, %f885;
+ mul.f32 %f1127, %f877, %f885;
+ mul.f32 %f1128, %f880, %f885;
+
+BB0_126:
+ mul.f32 %f887, %f1087, %f1127;
+ mul.f32 %f888, %f1086, %f1128;
+ sub.f32 %f889, %f888, %f887;
+ mul.f32 %f890, %f1085, %f1128;
+ mul.f32 %f891, %f1087, %f1126;
+ sub.f32 %f892, %f891, %f890;
+ mul.f32 %f893, %f1086, %f1126;
+ mul.f32 %f894, %f1085, %f1127;
+ sub.f32 %f895, %f894, %f893;
+ setp.lt.u32 %p134, %r98, 16777216;
+ selp.f32 %f896, 0fBF800000, 0f3F800000, %p134;
+ mul.f32 %f897, %f889, %f896;
+ mul.f32 %f898, %f892, %f896;
+ mul.f32 %f899, %f895, %f896;
+ mul.f32 %f900, %f897, 0fBF3504F3;
+ mul.f32 %f901, %f898, 0fBF3504F3;
+ mul.f32 %f902, %f899, 0fBF3504F3;
+ fma.rn.f32 %f903, %f1126, 0fBED105EC, %f900;
+ fma.rn.f32 %f904, %f1127, 0fBED105EC, %f901;
+ fma.rn.f32 %f905, %f1128, 0fBED105EC, %f902;
+ add.f32 %f906, %f155, %f903;
+ add.f32 %f907, %f157, %f904;
+ add.f32 %f908, %f159, %f905;
+ ld.global.f32 %f909, [directDir];
+ mul.f32 %f910, %f156, %f909;
+ ld.global.f32 %f911, [directDir+4];
+ mul.f32 %f912, %f158, %f911;
+ neg.f32 %f913, %f912;
+ sub.f32 %f914, %f913, %f910;
+ ld.global.f32 %f915, [directDir+8];
+ mul.f32 %f916, %f160, %f915;
+ sub.f32 %f917, %f914, %f916;
+ cvt.sat.f32.f32 %f918, %f917;
+ mul.f32 %f919, %f94, %f918;
+ mul.f32 %f920, %f95, %f918;
+ mul.f32 %f921, %f96, %f918;
+ mul.f32 %f922, %f167, %f909;
+ mul.f32 %f923, %f168, %f911;
+ neg.f32 %f924, %f923;
+ sub.f32 %f925, %f924, %f922;
+ mul.f32 %f926, %f169, %f915;
+ sub.f32 %f927, %f925, %f926;
+ cvt.sat.f32.f32 %f928, %f927;
+ mul.f32 %f929, %f94, %f928;
+ mul.f32 %f930, %f95, %f928;
+ mul.f32 %f931, %f96, %f928;
+ mul.f32 %f932, %f906, %f909;
+ mul.f32 %f933, %f907, %f911;
+ neg.f32 %f934, %f933;
+ sub.f32 %f935, %f934, %f932;
+ mul.f32 %f936, %f908, %f915;
+ sub.f32 %f937, %f935, %f936;
+ cvt.sat.f32.f32 %f938, %f937;
+ mul.f32 %f939, %f94, %f938;
+ mul.f32 %f940, %f95, %f938;
+ mul.f32 %f941, %f96, %f938;
+ add.f32 %f942, %f919, %f929;
+ add.f32 %f943, %f920, %f930;
+ add.f32 %f944, %f921, %f931;
+ add.f32 %f945, %f942, %f939;
+ add.f32 %f946, %f943, %f940;
+ add.f32 %f947, %f944, %f941;
+ mul.f32 %f948, %f945, 0f3F13CD3A;
+ mul.f32 %f949, %f946, 0f3F13CD3A;
+ mul.f32 %f950, %f947, 0f3F13CD3A;
+ div.rn.f32 %f951, %f77, %f948;
+ div.rn.f32 %f952, %f78, %f949;
+ div.rn.f32 %f953, %f79, %f950;
+ setp.eq.f32 %p135, %f77, 0f00000000;
+ selp.f32 %f954, 0f00000000, %f951, %p135;
+ setp.eq.f32 %p136, %f78, 0f00000000;
+ selp.f32 %f955, 0f00000000, %f952, %p136;
+ setp.eq.f32 %p137, %f79, 0f00000000;
+ selp.f32 %f956, 0f00000000, %f953, %p137;
+ mul.f32 %f176, %f919, %f954;
+ mul.f32 %f177, %f920, %f955;
+ mul.f32 %f178, %f921, %f956;
+ mul.f32 %f179, %f929, %f954;
+ mul.f32 %f180, %f930, %f955;
+ mul.f32 %f181, %f931, %f956;
+ mul.f32 %f182, %f939, %f954;
+ mul.f32 %f183, %f940, %f955;
+ mul.f32 %f184, %f941, %f956;
+ ld.global.u32 %r319, [additive];
+ setp.eq.s32 %p138, %r319, 0;
+ cvt.u64.u32 %rd22, %r2;
+ cvt.u64.u32 %rd23, %r3;
+ mov.f32 %f886, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f886;}
+
+ // inline asm
+ @%p138 bra BB0_128;
+
+ mov.u64 %rd136, image_RNM0;
+ cvta.global.u64 %rd125, %rd136;
+ mov.u32 %r323, 8;
+ // inline asm
+ call (%rd124), _rt_buffer_get_64, (%rd125, %r105, %r323, %rd22, %rd23, %rd31, %rd31);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd124];
+ // inline asm
+ { cvt.f32.f16 %f957, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f958, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f959, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd130), _rt_buffer_get_64, (%rd125, %r105, %r323, %rd22, %rd23, %rd31, %rd31);
+ // inline asm
+ add.f32 %f960, %f176, %f957;
+ add.f32 %f961, %f177, %f958;
+ add.f32 %f962, %f178, %f959;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f962;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f961;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f960;}
+
+ // inline asm
+ st.v4.u16 [%rd130], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_129;
+
+BB0_128:
+ mov.u64 %rd143, image_RNM0;
+ cvta.global.u64 %rd138, %rd143;
+ mov.u32 %r325, 8;
+ // inline asm
+ call (%rd137), _rt_buffer_get_64, (%rd138, %r105, %r325, %rd22, %rd23, %rd31, %rd31);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f178;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f177;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f176;}
+
+ // inline asm
+ st.v4.u16 [%rd137], {%rs71, %rs72, %rs73, %rs60};
+
+BB0_129:
+ ld.global.u32 %r326, [additive];
+ setp.eq.s32 %p139, %r326, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f886;}
+
+ // inline asm
+ @%p139 bra BB0_131;
+
+ mov.u64 %rd156, image_RNM1;
+ cvta.global.u64 %rd145, %rd156;
+ mov.u32 %r330, 8;
+ // inline asm
+ call (%rd144), _rt_buffer_get_64, (%rd145, %r105, %r330, %rd22, %rd23, %rd31, %rd31);
+ // inline asm
+ ld.v4.u16 {%rs81, %rs82, %rs83, %rs84}, [%rd144];
+ // inline asm
+ { cvt.f32.f16 %f967, %rs81;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f968, %rs82;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f969, %rs83;}
+
+ // inline asm
+ // inline asm
+ call (%rd150), _rt_buffer_get_64, (%rd145, %r105, %r330, %rd22, %rd23, %rd31, %rd31);
+ // inline asm
+ add.f32 %f970, %f179, %f967;
+ add.f32 %f971, %f180, %f968;
+ add.f32 %f972, %f181, %f969;
+ // inline asm
+ { cvt.rn.f16.f32 %rs80, %f972;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs79, %f971;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f970;}
+
+ // inline asm
+ st.v4.u16 [%rd150], {%rs78, %rs79, %rs80, %rs74};
+ bra.uni BB0_132;
+
+BB0_131:
+ mov.u64 %rd163, image_RNM1;
+ cvta.global.u64 %rd158, %rd163;
+ mov.u32 %r332, 8;
+ // inline asm
+ call (%rd157), _rt_buffer_get_64, (%rd158, %r105, %r332, %rd22, %rd23, %rd31, %rd31);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f181;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f180;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f179;}
+
+ // inline asm
+ st.v4.u16 [%rd157], {%rs85, %rs86, %rs87, %rs74};
+
+BB0_132:
+ ld.global.u32 %r333, [additive];
+ setp.eq.s32 %p140, %r333, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f886;}
+
+ // inline asm
+ @%p140 bra BB0_134;
+
+ mov.u64 %rd176, image_RNM2;
+ cvta.global.u64 %rd165, %rd176;
+ mov.u32 %r337, 8;
+ // inline asm
+ call (%rd164), _rt_buffer_get_64, (%rd165, %r105, %r337, %rd22, %rd23, %rd31, %rd31);
+ // inline asm
+ ld.v4.u16 {%rs95, %rs96, %rs97, %rs98}, [%rd164];
+ // inline asm
+ { cvt.f32.f16 %f977, %rs95;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f978, %rs96;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f979, %rs97;}
+
+ // inline asm
+ // inline asm
+ call (%rd170), _rt_buffer_get_64, (%rd165, %r105, %r337, %rd22, %rd23, %rd31, %rd31);
+ // inline asm
+ add.f32 %f980, %f182, %f977;
+ add.f32 %f981, %f183, %f978;
+ add.f32 %f982, %f184, %f979;
+ // inline asm
+ { cvt.rn.f16.f32 %rs94, %f982;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f981;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f980;}
+
+ // inline asm
+ st.v4.u16 [%rd170], {%rs92, %rs93, %rs94, %rs88};
+ bra.uni BB0_152;
+
+BB0_134:
+ mov.u64 %rd183, image_RNM2;
+ cvta.global.u64 %rd178, %rd183;
+ mov.u32 %r339, 8;
+ // inline asm
+ call (%rd177), _rt_buffer_get_64, (%rd178, %r105, %r339, %rd22, %rd23, %rd31, %rd31);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs101, %f184;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs100, %f183;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f182;}
+
+ // inline asm
+ st.v4.u16 [%rd177], {%rs99, %rs100, %rs101, %rs88};
+
+BB0_152:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowRNM.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowRNM.ptx.meta
new file mode 100644
index 00000000..7533c7ba
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowRNM.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 71b964c28dcad6445bfd6bb5ac39b20e
+timeCreated: 1581075098
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowSH.ptx
new file mode 100644
index 00000000..1e5f2f12
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowSH.ptx
@@ -0,0 +1,2138 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .b8 directDir[12];
+.global .align 4 .b8 directColor[12];
+.global .align 4 .f32 shadowSpread;
+.global .align 4 .u32 samples;
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .u32 lightCookie;
+.global .align 16 .b8 lightTilingOffset[16];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9directDirE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11directColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12shadowSpreadE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11lightCookieE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo17lightTilingOffsetE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9directDirE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11directColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12shadowSpreadE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename11lightCookieE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename17lightTilingOffsetE[7] = {102, 108, 111, 97, 116, 52, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9directDirE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11directColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12shadowSpreadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11lightCookieE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum17lightTilingOffsetE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9directDirE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11directColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12shadowSpreadE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11lightCookieE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic17lightTilingOffsetE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9directDirE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11directColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12shadowSpreadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11lightCookieE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation17lightTilingOffsetE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<124>;
+ .reg .b16 %rs<152>;
+ .reg .f32 %f<820>;
+ .reg .b32 %r<390>;
+ .reg .b64 %rd<286>;
+
+
+ mov.u64 %rd285, __local_depot0;
+ cvta.local.u64 %SP, %rd285;
+ ld.global.v2.u32 {%r101, %r102}, [pixelID];
+ cvt.u64.u32 %rd22, %r101;
+ cvt.u64.u32 %rd23, %r102;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r99, 2;
+ mov.u32 %r100, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r99, %r100, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r1, [%rd20];
+ shr.u32 %r105, %r1, 16;
+ cvt.u16.u32 %rs1, %r105;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r1;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p5, %rs9, 0;
+ mov.f32 %f788, 0f00000000;
+ mov.f32 %f789, %f788;
+ mov.f32 %f790, %f788;
+ @%p5 bra BB0_2;
+
+ ld.u8 %rs10, [%rd20+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f138, %rs12;
+ div.rn.f32 %f139, %f138, 0f437F0000;
+ fma.rn.f32 %f140, %f139, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f141, %rs10;
+ div.rn.f32 %f142, %f141, 0f437F0000;
+ fma.rn.f32 %f143, %f142, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f144, %rs7;
+ div.rn.f32 %f145, %f144, 0f437F0000;
+ fma.rn.f32 %f146, %f145, 0f40000000, 0fBF800000;
+ mul.f32 %f147, %f143, %f143;
+ fma.rn.f32 %f148, %f140, %f140, %f147;
+ fma.rn.f32 %f149, %f146, %f146, %f148;
+ sqrt.rn.f32 %f150, %f149;
+ rcp.rn.f32 %f151, %f150;
+ mul.f32 %f788, %f140, %f151;
+ mul.f32 %f789, %f143, %f151;
+ mul.f32 %f790, %f146, %f151;
+
+BB0_2:
+ ld.global.v2.u32 {%r106, %r107}, [pixelID];
+ ld.global.v2.u32 {%r109, %r110}, [tileInfo];
+ add.s32 %r2, %r106, %r109;
+ add.s32 %r3, %r107, %r110;
+ setp.eq.f32 %p6, %f789, 0f00000000;
+ setp.eq.f32 %p7, %f788, 0f00000000;
+ and.pred %p8, %p7, %p6;
+ setp.eq.f32 %p9, %f790, 0f00000000;
+ and.pred %p10, %p8, %p9;
+ @%p10 bra BB0_121;
+ bra.uni BB0_3;
+
+BB0_121:
+ ld.global.u32 %r389, [imageEnabled];
+ and.b32 %r314, %r389, 1;
+ setp.eq.b32 %p116, %r314, 1;
+ @!%p116 bra BB0_123;
+ bra.uni BB0_122;
+
+BB0_122:
+ cvt.u64.u32 %rd169, %r2;
+ cvt.u64.u32 %rd170, %r3;
+ mov.u64 %rd173, image;
+ cvta.global.u64 %rd168, %rd173;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r99, %r100, %rd169, %rd170, %rd25, %rd25);
+ // inline asm
+ mov.u16 %rs84, 0;
+ st.v4.u8 [%rd167], {%rs84, %rs84, %rs84, %rs84};
+ ld.global.u32 %r389, [imageEnabled];
+
+BB0_123:
+ and.b32 %r317, %r389, 8;
+ setp.eq.s32 %p117, %r317, 0;
+ @%p117 bra BB0_125;
+
+ cvt.u64.u32 %rd177, %r3;
+ cvt.u64.u32 %rd176, %r2;
+ mov.u64 %rd180, image_Mask;
+ cvta.global.u64 %rd175, %rd180;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r99, %r99, %rd176, %rd177, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f709, 0f00000000;
+ cvt.rzi.u32.f32 %r320, %f709;
+ cvt.u16.u32 %rs85, %r320;
+ mov.u16 %rs86, 0;
+ st.v2.u8 [%rd174], {%rs85, %rs86};
+ ld.global.u32 %r389, [imageEnabled];
+
+BB0_125:
+ cvt.u64.u32 %rd18, %r2;
+ cvt.u64.u32 %rd19, %r3;
+ and.b32 %r321, %r389, 4;
+ setp.eq.s32 %p118, %r321, 0;
+ @%p118 bra BB0_129;
+
+ ld.global.u32 %r322, [additive];
+ setp.eq.s32 %p119, %r322, 0;
+ @%p119 bra BB0_128;
+
+ mov.u64 %rd193, image_HDR;
+ cvta.global.u64 %rd182, %rd193;
+ mov.u32 %r326, 8;
+ // inline asm
+ call (%rd181), _rt_buffer_get_64, (%rd182, %r99, %r326, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs93, %rs94, %rs95, %rs96}, [%rd181];
+ // inline asm
+ { cvt.f32.f16 %f710, %rs93;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f711, %rs94;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f712, %rs95;}
+
+ // inline asm
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd182, %r99, %r326, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f713, %f710, 0f00000000;
+ add.f32 %f714, %f711, 0f00000000;
+ add.f32 %f715, %f712, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f715;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f714;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f713;}
+
+ // inline asm
+ mov.u16 %rs97, 0;
+ st.v4.u16 [%rd187], {%rs90, %rs91, %rs92, %rs97};
+ bra.uni BB0_129;
+
+BB0_3:
+ ld.global.f32 %f9, [directDir+8];
+ ld.global.f32 %f8, [directDir+4];
+ ld.global.f32 %f7, [directDir];
+ mul.f32 %f153, %f788, %f7;
+ mul.f32 %f154, %f789, %f8;
+ neg.f32 %f155, %f154;
+ sub.f32 %f156, %f155, %f153;
+ mul.f32 %f157, %f790, %f9;
+ sub.f32 %f10, %f156, %f157;
+ ld.global.v2.u32 {%r118, %r119}, [pixelID];
+ cvt.u64.u32 %rd29, %r118;
+ cvt.u64.u32 %rd30, %r119;
+ mov.u64 %rd39, uvpos;
+ cvta.global.u64 %rd28, %rd39;
+ mov.u32 %r115, 12;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r99, %r115, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f13, [%rd27+8];
+ ld.f32 %f12, [%rd27+4];
+ ld.f32 %f11, [%rd27];
+ mul.f32 %f158, %f11, 0f3456BF95;
+ mul.f32 %f159, %f12, 0f3456BF95;
+ mul.f32 %f160, %f13, 0f3456BF95;
+ abs.f32 %f161, %f788;
+ div.rn.f32 %f162, %f158, %f161;
+ abs.f32 %f163, %f789;
+ div.rn.f32 %f164, %f159, %f163;
+ abs.f32 %f165, %f790;
+ div.rn.f32 %f166, %f160, %f165;
+ abs.f32 %f167, %f162;
+ abs.f32 %f168, %f164;
+ abs.f32 %f169, %f166;
+ mov.f32 %f170, 0f38D1B717;
+ max.f32 %f171, %f167, %f170;
+ max.f32 %f172, %f168, %f170;
+ max.f32 %f173, %f169, %f170;
+ fma.rn.f32 %f14, %f788, %f171, %f11;
+ fma.rn.f32 %f15, %f789, %f172, %f12;
+ fma.rn.f32 %f16, %f790, %f173, %f13;
+ abs.f32 %f174, %f7;
+ abs.f32 %f175, %f9;
+ setp.gt.f32 %p11, %f174, %f175;
+ neg.f32 %f176, %f8;
+ neg.f32 %f177, %f9;
+ selp.f32 %f178, %f176, 0f00000000, %p11;
+ selp.f32 %f179, %f7, %f177, %p11;
+ selp.f32 %f180, 0f00000000, %f8, %p11;
+ mul.f32 %f181, %f179, %f179;
+ fma.rn.f32 %f182, %f178, %f178, %f181;
+ fma.rn.f32 %f183, %f180, %f180, %f182;
+ sqrt.rn.f32 %f184, %f183;
+ rcp.rn.f32 %f185, %f184;
+ mul.f32 %f17, %f178, %f185;
+ mul.f32 %f18, %f179, %f185;
+ mul.f32 %f19, %f180, %f185;
+ mul.f32 %f186, %f9, %f18;
+ mul.f32 %f187, %f8, %f19;
+ sub.f32 %f20, %f186, %f187;
+ mul.f32 %f188, %f7, %f19;
+ mul.f32 %f189, %f9, %f17;
+ sub.f32 %f21, %f188, %f189;
+ mul.f32 %f190, %f8, %f17;
+ mul.f32 %f191, %f7, %f18;
+ sub.f32 %f22, %f190, %f191;
+ ld.global.v2.u32 {%r122, %r123}, [pixelID];
+ cvt.u64.u32 %rd35, %r122;
+ cvt.u64.u32 %rd36, %r123;
+ mov.u64 %rd40, rnd_seeds;
+ cvta.global.u64 %rd34, %rd40;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r99, %r100, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ ld.global.u32 %r358, [samples];
+ mov.f32 %f805, 0f00000000;
+ setp.lt.s32 %p12, %r358, 1;
+ @%p12 bra BB0_55;
+
+ cvt.rn.f32.s32 %f193, %r358;
+ rcp.rn.f32 %f23, %f193;
+ ld.u32 %r384, [%rd33];
+ mul.f32 %f24, %f14, 0f3456BF95;
+ mul.f32 %f25, %f15, 0f3456BF95;
+ mul.f32 %f26, %f16, 0f3456BF95;
+ mov.f32 %f805, 0f00000000;
+ mov.u32 %r359, 0;
+ abs.f32 %f194, %f25;
+ abs.f32 %f195, %f24;
+ max.f32 %f196, %f195, %f194;
+ abs.f32 %f197, %f26;
+ max.f32 %f198, %f196, %f197;
+
+BB0_5:
+ setp.lt.s32 %p13, %r358, 1;
+ @%p13 bra BB0_54;
+
+ cvt.rn.f32.s32 %f28, %r359;
+ max.f32 %f29, %f198, %f170;
+ mov.u32 %r361, 0;
+
+BB0_7:
+ mad.lo.s32 %r128, %r384, 1664525, 1013904223;
+ and.b32 %r129, %r128, 16777215;
+ cvt.rn.f32.u32 %f200, %r129;
+ fma.rn.f32 %f201, %f200, 0f33800000, %f28;
+ mul.f32 %f202, %f23, %f201;
+ mad.lo.s32 %r384, %r128, 1664525, 1013904223;
+ and.b32 %r130, %r384, 16777215;
+ cvt.rn.f32.u32 %f203, %r130;
+ cvt.rn.f32.s32 %f204, %r361;
+ fma.rn.f32 %f205, %f203, 0f33800000, %f204;
+ mul.f32 %f206, %f23, %f205;
+ sqrt.rn.f32 %f31, %f202;
+ mul.f32 %f799, %f206, 0f40C90FDB;
+ abs.f32 %f33, %f799;
+ setp.neu.f32 %p14, %f33, 0f7F800000;
+ mov.f32 %f793, %f799;
+ @%p14 bra BB0_9;
+
+ mov.f32 %f207, 0f00000000;
+ mul.rn.f32 %f793, %f799, %f207;
+
+BB0_9:
+ mul.f32 %f208, %f793, 0f3F22F983;
+ cvt.rni.s32.f32 %r372, %f208;
+ cvt.rn.f32.s32 %f209, %r372;
+ neg.f32 %f210, %f209;
+ mov.f32 %f211, 0f3FC90FDA;
+ fma.rn.f32 %f212, %f210, %f211, %f793;
+ mov.f32 %f213, 0f33A22168;
+ fma.rn.f32 %f214, %f210, %f213, %f212;
+ mov.f32 %f215, 0f27C234C5;
+ fma.rn.f32 %f794, %f210, %f215, %f214;
+ abs.f32 %f216, %f793;
+ setp.leu.f32 %p15, %f216, 0f47CE4780;
+ @%p15 bra BB0_20;
+
+ mov.b32 %r13, %f793;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r133, %r13, 8;
+ or.b32 %r15, %r133, -2147483648;
+ add.u64 %rd42, %SP, 4;
+ cvta.to.local.u64 %rd282, %rd42;
+ mov.u32 %r364, 0;
+ mov.u64 %rd281, __cudart_i2opi_f;
+ mov.u32 %r363, -6;
+
+BB0_11:
+ .pragma "nounroll";
+ ld.const.u32 %r136, [%rd281];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r134, %r136, %r15, %r364;
+ madc.hi.u32 %r364, %r136, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd282], %r134;
+ add.s64 %rd282, %rd282, 4;
+ add.s64 %rd281, %rd281, 4;
+ add.s32 %r363, %r363, 1;
+ setp.ne.s32 %p16, %r363, 0;
+ @%p16 bra BB0_11;
+
+ and.b32 %r139, %r14, 255;
+ add.s32 %r140, %r139, -128;
+ shr.u32 %r141, %r140, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd44, %rd42;
+ st.local.u32 [%rd44+24], %r364;
+ mov.u32 %r142, 6;
+ sub.s32 %r143, %r142, %r141;
+ mul.wide.s32 %rd45, %r143, 4;
+ add.s64 %rd8, %rd44, %rd45;
+ ld.local.u32 %r365, [%rd8];
+ ld.local.u32 %r366, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p17, %r23, 0;
+ @%p17 bra BB0_14;
+
+ mov.u32 %r144, 32;
+ sub.s32 %r145, %r144, %r23;
+ shr.u32 %r146, %r366, %r145;
+ shl.b32 %r147, %r365, %r23;
+ add.s32 %r365, %r146, %r147;
+ ld.local.u32 %r148, [%rd8+-8];
+ shr.u32 %r149, %r148, %r145;
+ shl.b32 %r150, %r366, %r23;
+ add.s32 %r366, %r149, %r150;
+
+BB0_14:
+ shr.u32 %r151, %r366, 30;
+ shl.b32 %r152, %r365, 2;
+ add.s32 %r367, %r151, %r152;
+ shl.b32 %r29, %r366, 2;
+ shr.u32 %r153, %r367, 31;
+ shr.u32 %r154, %r365, 30;
+ add.s32 %r30, %r153, %r154;
+ setp.eq.s32 %p18, %r153, 0;
+ @%p18 bra BB0_15;
+ bra.uni BB0_16;
+
+BB0_15:
+ mov.u32 %r368, %r20;
+ mov.u32 %r369, %r29;
+ bra.uni BB0_17;
+
+BB0_16:
+ not.b32 %r155, %r367;
+ neg.s32 %r369, %r29;
+ setp.eq.s32 %p19, %r29, 0;
+ selp.u32 %r156, 1, 0, %p19;
+ add.s32 %r367, %r156, %r155;
+ xor.b32 %r368, %r20, -2147483648;
+
+BB0_17:
+ clz.b32 %r371, %r367;
+ setp.eq.s32 %p20, %r371, 0;
+ shl.b32 %r157, %r367, %r371;
+ mov.u32 %r158, 32;
+ sub.s32 %r159, %r158, %r371;
+ shr.u32 %r160, %r369, %r159;
+ add.s32 %r161, %r160, %r157;
+ selp.b32 %r38, %r367, %r161, %p20;
+ mov.u32 %r162, -921707870;
+ mul.hi.u32 %r370, %r38, %r162;
+ setp.eq.s32 %p21, %r20, 0;
+ neg.s32 %r163, %r30;
+ selp.b32 %r372, %r30, %r163, %p21;
+ setp.lt.s32 %p22, %r370, 1;
+ @%p22 bra BB0_19;
+
+ mul.lo.s32 %r164, %r38, -921707870;
+ shr.u32 %r165, %r164, 31;
+ shl.b32 %r166, %r370, 1;
+ add.s32 %r370, %r165, %r166;
+ add.s32 %r371, %r371, 1;
+
+BB0_19:
+ mov.u32 %r167, 126;
+ sub.s32 %r168, %r167, %r371;
+ shl.b32 %r169, %r168, 23;
+ add.s32 %r170, %r370, 1;
+ shr.u32 %r171, %r170, 7;
+ add.s32 %r172, %r171, 1;
+ shr.u32 %r173, %r172, 1;
+ add.s32 %r174, %r173, %r169;
+ or.b32 %r175, %r174, %r368;
+ mov.b32 %f794, %r175;
+
+BB0_20:
+ mul.rn.f32 %f39, %f794, %f794;
+ add.s32 %r46, %r372, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p23, %r47, 0;
+ @%p23 bra BB0_22;
+ bra.uni BB0_21;
+
+BB0_22:
+ mov.f32 %f219, 0f3C08839E;
+ mov.f32 %f220, 0fB94CA1F9;
+ fma.rn.f32 %f795, %f220, %f39, %f219;
+ bra.uni BB0_23;
+
+BB0_21:
+ mov.f32 %f217, 0fBAB6061A;
+ mov.f32 %f218, 0f37CCF5CE;
+ fma.rn.f32 %f795, %f218, %f39, %f217;
+
+BB0_23:
+ @%p23 bra BB0_25;
+ bra.uni BB0_24;
+
+BB0_25:
+ mov.f32 %f224, 0fBE2AAAA3;
+ fma.rn.f32 %f225, %f795, %f39, %f224;
+ mov.f32 %f226, 0f00000000;
+ fma.rn.f32 %f796, %f225, %f39, %f226;
+ bra.uni BB0_26;
+
+BB0_24:
+ mov.f32 %f221, 0f3D2AAAA5;
+ fma.rn.f32 %f222, %f795, %f39, %f221;
+ mov.f32 %f223, 0fBF000000;
+ fma.rn.f32 %f796, %f222, %f39, %f223;
+
+BB0_26:
+ fma.rn.f32 %f797, %f796, %f794, %f794;
+ @%p23 bra BB0_28;
+
+ mov.f32 %f227, 0f3F800000;
+ fma.rn.f32 %f797, %f796, %f39, %f227;
+
+BB0_28:
+ and.b32 %r176, %r46, 2;
+ setp.eq.s32 %p26, %r176, 0;
+ @%p26 bra BB0_30;
+
+ mov.f32 %f228, 0f00000000;
+ mov.f32 %f229, 0fBF800000;
+ fma.rn.f32 %f797, %f797, %f229, %f228;
+
+BB0_30:
+ @%p14 bra BB0_32;
+
+ mov.f32 %f230, 0f00000000;
+ mul.rn.f32 %f799, %f799, %f230;
+
+BB0_32:
+ mul.f32 %f231, %f799, 0f3F22F983;
+ cvt.rni.s32.f32 %r382, %f231;
+ cvt.rn.f32.s32 %f232, %r382;
+ neg.f32 %f233, %f232;
+ fma.rn.f32 %f235, %f233, %f211, %f799;
+ fma.rn.f32 %f237, %f233, %f213, %f235;
+ fma.rn.f32 %f800, %f233, %f215, %f237;
+ abs.f32 %f239, %f799;
+ setp.leu.f32 %p28, %f239, 0f47CE4780;
+ @%p28 bra BB0_43;
+
+ mov.b32 %r49, %f799;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r179, %r49, 8;
+ or.b32 %r51, %r179, -2147483648;
+ add.u64 %rd47, %SP, 4;
+ cvta.to.local.u64 %rd284, %rd47;
+ mov.u32 %r374, 0;
+ mov.u64 %rd283, __cudart_i2opi_f;
+ mov.u32 %r373, -6;
+
+BB0_34:
+ .pragma "nounroll";
+ ld.const.u32 %r182, [%rd283];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r180, %r182, %r51, %r374;
+ madc.hi.u32 %r374, %r182, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd284], %r180;
+ add.s64 %rd284, %rd284, 4;
+ add.s64 %rd283, %rd283, 4;
+ add.s32 %r373, %r373, 1;
+ setp.ne.s32 %p29, %r373, 0;
+ @%p29 bra BB0_34;
+
+ and.b32 %r185, %r50, 255;
+ add.s32 %r186, %r185, -128;
+ shr.u32 %r187, %r186, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd49, %rd47;
+ st.local.u32 [%rd49+24], %r374;
+ mov.u32 %r188, 6;
+ sub.s32 %r189, %r188, %r187;
+ mul.wide.s32 %rd50, %r189, 4;
+ add.s64 %rd14, %rd49, %rd50;
+ ld.local.u32 %r375, [%rd14];
+ ld.local.u32 %r376, [%rd14+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p30, %r59, 0;
+ @%p30 bra BB0_37;
+
+ mov.u32 %r190, 32;
+ sub.s32 %r191, %r190, %r59;
+ shr.u32 %r192, %r376, %r191;
+ shl.b32 %r193, %r375, %r59;
+ add.s32 %r375, %r192, %r193;
+ ld.local.u32 %r194, [%rd14+-8];
+ shr.u32 %r195, %r194, %r191;
+ shl.b32 %r196, %r376, %r59;
+ add.s32 %r376, %r195, %r196;
+
+BB0_37:
+ shr.u32 %r197, %r376, 30;
+ shl.b32 %r198, %r375, 2;
+ add.s32 %r377, %r197, %r198;
+ shl.b32 %r65, %r376, 2;
+ shr.u32 %r199, %r377, 31;
+ shr.u32 %r200, %r375, 30;
+ add.s32 %r66, %r199, %r200;
+ setp.eq.s32 %p31, %r199, 0;
+ @%p31 bra BB0_38;
+ bra.uni BB0_39;
+
+BB0_38:
+ mov.u32 %r378, %r56;
+ mov.u32 %r379, %r65;
+ bra.uni BB0_40;
+
+BB0_39:
+ not.b32 %r201, %r377;
+ neg.s32 %r379, %r65;
+ setp.eq.s32 %p32, %r65, 0;
+ selp.u32 %r202, 1, 0, %p32;
+ add.s32 %r377, %r202, %r201;
+ xor.b32 %r378, %r56, -2147483648;
+
+BB0_40:
+ clz.b32 %r381, %r377;
+ setp.eq.s32 %p33, %r381, 0;
+ shl.b32 %r203, %r377, %r381;
+ mov.u32 %r204, 32;
+ sub.s32 %r205, %r204, %r381;
+ shr.u32 %r206, %r379, %r205;
+ add.s32 %r207, %r206, %r203;
+ selp.b32 %r74, %r377, %r207, %p33;
+ mov.u32 %r208, -921707870;
+ mul.hi.u32 %r380, %r74, %r208;
+ setp.eq.s32 %p34, %r56, 0;
+ neg.s32 %r209, %r66;
+ selp.b32 %r382, %r66, %r209, %p34;
+ setp.lt.s32 %p35, %r380, 1;
+ @%p35 bra BB0_42;
+
+ mul.lo.s32 %r210, %r74, -921707870;
+ shr.u32 %r211, %r210, 31;
+ shl.b32 %r212, %r380, 1;
+ add.s32 %r380, %r211, %r212;
+ add.s32 %r381, %r381, 1;
+
+BB0_42:
+ mov.u32 %r213, 126;
+ sub.s32 %r214, %r213, %r381;
+ shl.b32 %r215, %r214, 23;
+ add.s32 %r216, %r380, 1;
+ shr.u32 %r217, %r216, 7;
+ add.s32 %r218, %r217, 1;
+ shr.u32 %r219, %r218, 1;
+ add.s32 %r220, %r219, %r215;
+ or.b32 %r221, %r220, %r378;
+ mov.b32 %f800, %r221;
+
+BB0_43:
+ mul.rn.f32 %f56, %f800, %f800;
+ and.b32 %r82, %r382, 1;
+ setp.eq.s32 %p36, %r82, 0;
+ @%p36 bra BB0_45;
+ bra.uni BB0_44;
+
+BB0_45:
+ mov.f32 %f242, 0f3C08839E;
+ mov.f32 %f243, 0fB94CA1F9;
+ fma.rn.f32 %f801, %f243, %f56, %f242;
+ bra.uni BB0_46;
+
+BB0_44:
+ mov.f32 %f240, 0fBAB6061A;
+ mov.f32 %f241, 0f37CCF5CE;
+ fma.rn.f32 %f801, %f241, %f56, %f240;
+
+BB0_46:
+ @%p36 bra BB0_48;
+ bra.uni BB0_47;
+
+BB0_48:
+ mov.f32 %f247, 0fBE2AAAA3;
+ fma.rn.f32 %f248, %f801, %f56, %f247;
+ mov.f32 %f249, 0f00000000;
+ fma.rn.f32 %f802, %f248, %f56, %f249;
+ bra.uni BB0_49;
+
+BB0_47:
+ mov.f32 %f244, 0f3D2AAAA5;
+ fma.rn.f32 %f245, %f801, %f56, %f244;
+ mov.f32 %f246, 0fBF000000;
+ fma.rn.f32 %f802, %f245, %f56, %f246;
+
+BB0_49:
+ fma.rn.f32 %f803, %f802, %f800, %f800;
+ @%p36 bra BB0_51;
+
+ mov.f32 %f250, 0f3F800000;
+ fma.rn.f32 %f803, %f802, %f56, %f250;
+
+BB0_51:
+ and.b32 %r222, %r382, 2;
+ setp.eq.s32 %p39, %r222, 0;
+ @%p39 bra BB0_53;
+
+ mov.f32 %f251, 0f00000000;
+ mov.f32 %f252, 0fBF800000;
+ fma.rn.f32 %f803, %f803, %f252, %f251;
+
+BB0_53:
+ mul.f32 %f261, %f31, %f797;
+ add.u64 %rd51, %SP, 0;
+ cvta.to.local.u64 %rd52, %rd51;
+ mul.f32 %f262, %f261, %f261;
+ mov.f32 %f263, 0f3F800000;
+ sub.f32 %f264, %f263, %f262;
+ mul.f32 %f265, %f31, %f803;
+ mul.f32 %f266, %f265, %f265;
+ sub.f32 %f267, %f264, %f266;
+ mov.f32 %f268, 0f00000000;
+ max.f32 %f269, %f268, %f267;
+ sqrt.rn.f32 %f270, %f269;
+ mul.f32 %f271, %f17, %f265;
+ mul.f32 %f272, %f18, %f265;
+ mul.f32 %f273, %f19, %f265;
+ fma.rn.f32 %f274, %f20, %f261, %f271;
+ fma.rn.f32 %f275, %f21, %f261, %f272;
+ fma.rn.f32 %f276, %f22, %f261, %f273;
+ fma.rn.f32 %f277, %f7, %f270, %f274;
+ fma.rn.f32 %f278, %f8, %f270, %f275;
+ fma.rn.f32 %f279, %f9, %f270, %f276;
+ add.f32 %f280, %f7, %f277;
+ add.f32 %f281, %f8, %f278;
+ add.f32 %f282, %f9, %f279;
+ ld.global.f32 %f283, [shadowSpread];
+ mul.f32 %f284, %f283, %f280;
+ mul.f32 %f285, %f283, %f281;
+ mul.f32 %f286, %f283, %f282;
+ sub.f32 %f287, %f284, %f7;
+ sub.f32 %f288, %f285, %f8;
+ sub.f32 %f289, %f286, %f9;
+ mul.f32 %f290, %f288, %f288;
+ fma.rn.f32 %f291, %f287, %f287, %f290;
+ fma.rn.f32 %f292, %f289, %f289, %f291;
+ sqrt.rn.f32 %f293, %f292;
+ rcp.rn.f32 %f294, %f293;
+ mul.f32 %f256, %f294, %f287;
+ mul.f32 %f257, %f294, %f288;
+ mul.f32 %f258, %f294, %f289;
+ ld.global.u32 %r226, [imageEnabled];
+ and.b32 %r227, %r226, 32;
+ setp.eq.s32 %p40, %r227, 0;
+ selp.f32 %f295, 0f3F800000, 0f41200000, %p40;
+ mul.f32 %f259, %f295, %f29;
+ mov.u32 %r228, 1065353216;
+ st.local.u32 [%rd52], %r228;
+ ld.global.u32 %r223, [root];
+ mov.u32 %r224, 1;
+ mov.f32 %f260, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r223, %f14, %f15, %f16, %f256, %f257, %f258, %r224, %f259, %f260, %rd51, %r100);
+ // inline asm
+ ld.local.f32 %f296, [%rd52];
+ add.f32 %f805, %f805, %f296;
+ ld.global.u32 %r358, [samples];
+ add.s32 %r361, %r361, 1;
+ setp.lt.s32 %p41, %r361, %r358;
+ @%p41 bra BB0_7;
+
+BB0_54:
+ add.s32 %r359, %r359, 1;
+ setp.lt.s32 %p42, %r359, %r358;
+ @%p42 bra BB0_5;
+
+BB0_55:
+ setp.eq.s32 %p43, %r358, 0;
+ mov.f32 %f807, 0f3F800000;
+ @%p43 bra BB0_57;
+
+ mul.lo.s32 %r229, %r358, %r358;
+ cvt.rn.f32.s32 %f298, %r229;
+ div.rn.f32 %f807, %f805, %f298;
+
+BB0_57:
+ mul.f32 %f307, %f12, %f21;
+ fma.rn.f32 %f308, %f11, %f20, %f307;
+ fma.rn.f32 %f309, %f13, %f22, %f308;
+ ld.global.v4.f32 {%f310, %f311, %f312, %f313}, [lightTilingOffset];
+ fma.rn.f32 %f303, %f309, %f310, %f312;
+ mul.f32 %f316, %f12, %f18;
+ fma.rn.f32 %f317, %f11, %f17, %f316;
+ fma.rn.f32 %f318, %f13, %f19, %f317;
+ fma.rn.f32 %f304, %f318, %f311, %f313;
+ ld.global.u32 %r230, [lightCookie];
+ mov.f32 %f306, 0f00000000;
+ // inline asm
+ call (%f299, %f300, %f301, %f302), _rt_texture_get_f_id, (%r230, %r99, %f303, %f304, %f306, %f306);
+ // inline asm
+ mul.f32 %f73, %f807, %f299;
+ ld.global.f32 %f321, [directColor];
+ mul.f32 %f322, %f321, %f73;
+ ld.global.f32 %f323, [directColor+4];
+ mul.f32 %f324, %f323, %f73;
+ ld.global.f32 %f325, [directColor+8];
+ mul.f32 %f326, %f73, %f325;
+ cvt.sat.f32.f32 %f327, %f10;
+ mul.f32 %f74, %f322, %f327;
+ mul.f32 %f75, %f324, %f327;
+ mul.f32 %f76, %f326, %f327;
+ mul.f32 %f328, %f10, 0f40800000;
+ cvt.sat.f32.f32 %f329, %f328;
+ mul.f32 %f330, %f322, %f329;
+ mul.f32 %f331, %f324, %f329;
+ mul.f32 %f332, %f326, %f329;
+ mul.f32 %f77, %f330, 0f3E800000;
+ mul.f32 %f78, %f331, 0f3E800000;
+ mul.f32 %f79, %f332, 0f3E800000;
+ ld.global.u32 %r387, [imageEnabled];
+ and.b32 %r232, %r387, 8;
+ setp.eq.s32 %p44, %r232, 0;
+ @%p44 bra BB0_70;
+
+ cvt.u64.u32 %rd55, %r2;
+ cvt.u64.u32 %rd56, %r3;
+ mov.u64 %rd59, image_Mask;
+ cvta.global.u64 %rd54, %rd59;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r99, %r99, %rd55, %rd56, %rd25, %rd25);
+ // inline asm
+ abs.f32 %f81, %f73;
+ setp.lt.f32 %p45, %f81, 0f00800000;
+ mul.f32 %f338, %f81, 0f4B800000;
+ selp.f32 %f339, 0fC3170000, 0fC2FE0000, %p45;
+ selp.f32 %f340, %f338, %f81, %p45;
+ mov.b32 %r235, %f340;
+ and.b32 %r236, %r235, 8388607;
+ or.b32 %r237, %r236, 1065353216;
+ mov.b32 %f341, %r237;
+ shr.u32 %r238, %r235, 23;
+ cvt.rn.f32.u32 %f342, %r238;
+ add.f32 %f343, %f339, %f342;
+ setp.gt.f32 %p46, %f341, 0f3FB504F3;
+ mul.f32 %f344, %f341, 0f3F000000;
+ add.f32 %f345, %f343, 0f3F800000;
+ selp.f32 %f346, %f344, %f341, %p46;
+ selp.f32 %f347, %f345, %f343, %p46;
+ add.f32 %f348, %f346, 0fBF800000;
+ add.f32 %f334, %f346, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f333,%f334;
+ // inline asm
+ add.f32 %f349, %f348, %f348;
+ mul.f32 %f350, %f333, %f349;
+ mul.f32 %f351, %f350, %f350;
+ mov.f32 %f352, 0f3C4CAF63;
+ mov.f32 %f353, 0f3B18F0FE;
+ fma.rn.f32 %f354, %f353, %f351, %f352;
+ mov.f32 %f355, 0f3DAAAABD;
+ fma.rn.f32 %f356, %f354, %f351, %f355;
+ mul.rn.f32 %f357, %f356, %f351;
+ mul.rn.f32 %f358, %f357, %f350;
+ sub.f32 %f359, %f348, %f350;
+ neg.f32 %f360, %f350;
+ add.f32 %f361, %f359, %f359;
+ fma.rn.f32 %f362, %f360, %f348, %f361;
+ mul.rn.f32 %f363, %f333, %f362;
+ add.f32 %f364, %f358, %f350;
+ sub.f32 %f365, %f350, %f364;
+ add.f32 %f366, %f358, %f365;
+ add.f32 %f367, %f363, %f366;
+ add.f32 %f368, %f364, %f367;
+ sub.f32 %f369, %f364, %f368;
+ add.f32 %f370, %f367, %f369;
+ mov.f32 %f371, 0f3F317200;
+ mul.rn.f32 %f372, %f347, %f371;
+ mov.f32 %f373, 0f35BFBE8E;
+ mul.rn.f32 %f374, %f347, %f373;
+ add.f32 %f375, %f372, %f368;
+ sub.f32 %f376, %f372, %f375;
+ add.f32 %f377, %f368, %f376;
+ add.f32 %f378, %f370, %f377;
+ add.f32 %f379, %f374, %f378;
+ add.f32 %f380, %f375, %f379;
+ sub.f32 %f381, %f375, %f380;
+ add.f32 %f382, %f379, %f381;
+ mov.f32 %f383, 0f3EE8BA2E;
+ mul.rn.f32 %f384, %f383, %f380;
+ neg.f32 %f385, %f384;
+ fma.rn.f32 %f386, %f383, %f380, %f385;
+ fma.rn.f32 %f387, %f383, %f382, %f386;
+ fma.rn.f32 %f389, %f306, %f380, %f387;
+ add.rn.f32 %f390, %f384, %f389;
+ neg.f32 %f391, %f390;
+ add.rn.f32 %f392, %f384, %f391;
+ add.rn.f32 %f393, %f392, %f389;
+ mov.b32 %r239, %f390;
+ setp.eq.s32 %p47, %r239, 1118925336;
+ add.s32 %r240, %r239, -1;
+ mov.b32 %f394, %r240;
+ add.f32 %f395, %f393, 0f37000000;
+ selp.f32 %f396, %f394, %f390, %p47;
+ selp.f32 %f82, %f395, %f393, %p47;
+ mul.f32 %f397, %f396, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f398, %f397;
+ mov.f32 %f399, 0fBF317200;
+ fma.rn.f32 %f400, %f398, %f399, %f396;
+ mov.f32 %f401, 0fB5BFBE8E;
+ fma.rn.f32 %f402, %f398, %f401, %f400;
+ mul.f32 %f403, %f402, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f404, %f403;
+ add.f32 %f405, %f398, 0f00000000;
+ ex2.approx.f32 %f406, %f405;
+ mul.f32 %f407, %f404, %f406;
+ setp.lt.f32 %p48, %f396, 0fC2D20000;
+ selp.f32 %f408, 0f00000000, %f407, %p48;
+ setp.gt.f32 %p49, %f396, 0f42D20000;
+ selp.f32 %f808, 0f7F800000, %f408, %p49;
+ setp.eq.f32 %p50, %f808, 0f7F800000;
+ @%p50 bra BB0_60;
+
+ fma.rn.f32 %f808, %f808, %f82, %f808;
+
+BB0_60:
+ mov.f32 %f779, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f778, %f779;
+ fma.rn.f32 %f777, %f778, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f776, %f777;
+ setp.lt.f32 %p51, %f73, 0f00000000;
+ setp.eq.f32 %p52, %f776, 0f3F800000;
+ and.pred %p1, %p51, %p52;
+ mov.b32 %r241, %f808;
+ xor.b32 %r242, %r241, -2147483648;
+ mov.b32 %f409, %r242;
+ selp.f32 %f810, %f409, %f808, %p1;
+ setp.eq.f32 %p53, %f73, 0f00000000;
+ @%p53 bra BB0_63;
+ bra.uni BB0_61;
+
+BB0_63:
+ add.f32 %f412, %f73, %f73;
+ selp.f32 %f810, %f412, 0f00000000, %p52;
+ bra.uni BB0_64;
+
+BB0_128:
+ mov.u64 %rd200, image_HDR;
+ cvta.global.u64 %rd195, %rd200;
+ mov.u32 %r328, 8;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r99, %r328, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f716, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f716;}
+
+ // inline asm
+ mov.u16 %rs99, 0;
+ st.v4.u16 [%rd194], {%rs98, %rs98, %rs98, %rs99};
+
+BB0_129:
+ ld.global.u32 %r329, [additive];
+ setp.eq.s32 %p120, %r329, 0;
+ @%p120 bra BB0_131;
+
+ mov.u64 %rd213, image_RNM0;
+ cvta.global.u64 %rd202, %rd213;
+ mov.u32 %r333, 8;
+ // inline asm
+ call (%rd201), _rt_buffer_get_64, (%rd202, %r99, %r333, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs106, %rs107, %rs108, %rs109}, [%rd201];
+ // inline asm
+ { cvt.f32.f16 %f717, %rs106;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f718, %rs107;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f719, %rs108;}
+
+ // inline asm
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd202, %r99, %r333, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f720, %f717, 0f00000000;
+ add.f32 %f721, %f718, 0f00000000;
+ add.f32 %f722, %f719, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f722;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f721;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs103, %f720;}
+
+ // inline asm
+ mov.u16 %rs110, 0;
+ st.v4.u16 [%rd207], {%rs103, %rs104, %rs105, %rs110};
+ bra.uni BB0_132;
+
+BB0_131:
+ mov.u64 %rd220, image_RNM0;
+ cvta.global.u64 %rd215, %rd220;
+ mov.u32 %r335, 8;
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd215, %r99, %r335, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f723, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f723;}
+
+ // inline asm
+ mov.u16 %rs112, 0;
+ st.v4.u16 [%rd214], {%rs111, %rs111, %rs111, %rs112};
+
+BB0_132:
+ ld.global.u32 %r336, [additive];
+ setp.eq.s32 %p121, %r336, 0;
+ @%p121 bra BB0_134;
+
+ mov.u64 %rd233, image_RNM1;
+ cvta.global.u64 %rd222, %rd233;
+ mov.u32 %r340, 8;
+ // inline asm
+ call (%rd221), _rt_buffer_get_64, (%rd222, %r99, %r340, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs119, %rs120, %rs121, %rs122}, [%rd221];
+ // inline asm
+ { cvt.f32.f16 %f724, %rs119;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f725, %rs120;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f726, %rs121;}
+
+ // inline asm
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd222, %r99, %r340, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f727, %f724, 0f00000000;
+ add.f32 %f728, %f725, 0f00000000;
+ add.f32 %f729, %f726, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs118, %f729;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f728;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f727;}
+
+ // inline asm
+ mov.u16 %rs123, 0;
+ st.v4.u16 [%rd227], {%rs116, %rs117, %rs118, %rs123};
+ bra.uni BB0_135;
+
+BB0_134:
+ mov.u64 %rd240, image_RNM1;
+ cvta.global.u64 %rd235, %rd240;
+ mov.u32 %r342, 8;
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd235, %r99, %r342, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f730, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs124, %f730;}
+
+ // inline asm
+ mov.u16 %rs125, 0;
+ st.v4.u16 [%rd234], {%rs124, %rs124, %rs124, %rs125};
+
+BB0_135:
+ ld.global.u32 %r343, [additive];
+ setp.eq.s32 %p122, %r343, 0;
+ @%p122 bra BB0_137;
+
+ mov.u64 %rd253, image_RNM2;
+ cvta.global.u64 %rd242, %rd253;
+ mov.u32 %r347, 8;
+ // inline asm
+ call (%rd241), _rt_buffer_get_64, (%rd242, %r99, %r347, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs132, %rs133, %rs134, %rs135}, [%rd241];
+ // inline asm
+ { cvt.f32.f16 %f731, %rs132;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f732, %rs133;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f733, %rs134;}
+
+ // inline asm
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd242, %r99, %r347, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f734, %f731, 0f00000000;
+ add.f32 %f735, %f732, 0f00000000;
+ add.f32 %f736, %f733, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs131, %f736;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f735;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f734;}
+
+ // inline asm
+ mov.u16 %rs136, 0;
+ st.v4.u16 [%rd247], {%rs129, %rs130, %rs131, %rs136};
+ bra.uni BB0_138;
+
+BB0_137:
+ mov.u64 %rd260, image_RNM2;
+ cvta.global.u64 %rd255, %rd260;
+ mov.u32 %r349, 8;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r99, %r349, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f737, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs137, %f737;}
+
+ // inline asm
+ mov.u16 %rs138, 0;
+ st.v4.u16 [%rd254], {%rs137, %rs137, %rs137, %rs138};
+
+BB0_138:
+ ld.global.u32 %r350, [additive];
+ setp.eq.s32 %p123, %r350, 0;
+ @%p123 bra BB0_140;
+
+ mov.u64 %rd273, image_RNM3;
+ cvta.global.u64 %rd262, %rd273;
+ mov.u32 %r354, 8;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r99, %r354, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs145, %rs146, %rs147, %rs148}, [%rd261];
+ // inline asm
+ { cvt.f32.f16 %f738, %rs145;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f739, %rs146;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f740, %rs147;}
+
+ // inline asm
+ // inline asm
+ call (%rd267), _rt_buffer_get_64, (%rd262, %r99, %r354, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f741, %f738, 0f00000000;
+ add.f32 %f742, %f739, 0f00000000;
+ add.f32 %f743, %f740, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs144, %f743;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f742;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs142, %f741;}
+
+ // inline asm
+ mov.u16 %rs149, 0;
+ st.v4.u16 [%rd267], {%rs142, %rs143, %rs144, %rs149};
+ bra.uni BB0_141;
+
+BB0_140:
+ mov.u64 %rd280, image_RNM3;
+ cvta.global.u64 %rd275, %rd280;
+ mov.u32 %r356, 8;
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd275, %r99, %r356, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f744, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f744;}
+
+ // inline asm
+ mov.u16 %rs151, 0;
+ st.v4.u16 [%rd274], {%rs150, %rs150, %rs150, %rs151};
+ bra.uni BB0_141;
+
+BB0_61:
+ setp.geu.f32 %p54, %f73, 0f00000000;
+ @%p54 bra BB0_64;
+
+ mov.f32 %f784, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f411, %f784;
+ setp.neu.f32 %p55, %f411, 0f3EE8BA2E;
+ selp.f32 %f810, 0f7FFFFFFF, %f810, %p55;
+
+BB0_64:
+ abs.f32 %f780, %f73;
+ add.f32 %f413, %f780, 0f3EE8BA2E;
+ mov.b32 %r243, %f413;
+ setp.lt.s32 %p57, %r243, 2139095040;
+ @%p57 bra BB0_69;
+
+ abs.f32 %f782, %f73;
+ setp.gtu.f32 %p58, %f782, 0f7F800000;
+ @%p58 bra BB0_68;
+ bra.uni BB0_66;
+
+BB0_68:
+ add.f32 %f810, %f73, 0f3EE8BA2E;
+ bra.uni BB0_69;
+
+BB0_66:
+ abs.f32 %f783, %f73;
+ setp.neu.f32 %p59, %f783, 0f7F800000;
+ @%p59 bra BB0_69;
+
+ selp.f32 %f810, 0fFF800000, 0f7F800000, %p1;
+
+BB0_69:
+ mul.f32 %f414, %f810, 0f437F0000;
+ setp.eq.f32 %p60, %f73, 0f3F800000;
+ selp.f32 %f415, 0f437F0000, %f414, %p60;
+ cvt.rzi.u32.f32 %r244, %f415;
+ cvt.u16.u32 %rs14, %r244;
+ mov.u16 %rs15, 255;
+ st.v2.u8 [%rd53], {%rs14, %rs15};
+ ld.global.u32 %r387, [imageEnabled];
+
+BB0_70:
+ and.b32 %r245, %r387, 1;
+ setp.eq.b32 %p61, %r245, 1;
+ @!%p61 bra BB0_105;
+ bra.uni BB0_71;
+
+BB0_71:
+ mov.f32 %f781, 0f00000000;
+ abs.f32 %f94, %f74;
+ setp.lt.f32 %p62, %f94, 0f00800000;
+ mul.f32 %f421, %f94, 0f4B800000;
+ selp.f32 %f422, 0fC3170000, 0fC2FE0000, %p62;
+ selp.f32 %f423, %f421, %f94, %p62;
+ mov.b32 %r246, %f423;
+ and.b32 %r247, %r246, 8388607;
+ or.b32 %r248, %r247, 1065353216;
+ mov.b32 %f424, %r248;
+ shr.u32 %r249, %r246, 23;
+ cvt.rn.f32.u32 %f425, %r249;
+ add.f32 %f426, %f422, %f425;
+ setp.gt.f32 %p63, %f424, 0f3FB504F3;
+ mul.f32 %f427, %f424, 0f3F000000;
+ add.f32 %f428, %f426, 0f3F800000;
+ selp.f32 %f429, %f427, %f424, %p63;
+ selp.f32 %f430, %f428, %f426, %p63;
+ add.f32 %f431, %f429, 0fBF800000;
+ add.f32 %f417, %f429, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f416,%f417;
+ // inline asm
+ add.f32 %f432, %f431, %f431;
+ mul.f32 %f433, %f416, %f432;
+ mul.f32 %f434, %f433, %f433;
+ mov.f32 %f435, 0f3C4CAF63;
+ mov.f32 %f436, 0f3B18F0FE;
+ fma.rn.f32 %f437, %f436, %f434, %f435;
+ mov.f32 %f438, 0f3DAAAABD;
+ fma.rn.f32 %f439, %f437, %f434, %f438;
+ mul.rn.f32 %f440, %f439, %f434;
+ mul.rn.f32 %f441, %f440, %f433;
+ sub.f32 %f442, %f431, %f433;
+ neg.f32 %f443, %f433;
+ add.f32 %f444, %f442, %f442;
+ fma.rn.f32 %f445, %f443, %f431, %f444;
+ mul.rn.f32 %f446, %f416, %f445;
+ add.f32 %f447, %f441, %f433;
+ sub.f32 %f448, %f433, %f447;
+ add.f32 %f449, %f441, %f448;
+ add.f32 %f450, %f446, %f449;
+ add.f32 %f451, %f447, %f450;
+ sub.f32 %f452, %f447, %f451;
+ add.f32 %f453, %f450, %f452;
+ mov.f32 %f454, 0f3F317200;
+ mul.rn.f32 %f455, %f430, %f454;
+ mov.f32 %f456, 0f35BFBE8E;
+ mul.rn.f32 %f457, %f430, %f456;
+ add.f32 %f458, %f455, %f451;
+ sub.f32 %f459, %f455, %f458;
+ add.f32 %f460, %f451, %f459;
+ add.f32 %f461, %f453, %f460;
+ add.f32 %f462, %f457, %f461;
+ add.f32 %f463, %f458, %f462;
+ sub.f32 %f464, %f458, %f463;
+ add.f32 %f465, %f462, %f464;
+ mov.f32 %f466, 0f3EE66666;
+ mul.rn.f32 %f467, %f466, %f463;
+ neg.f32 %f468, %f467;
+ fma.rn.f32 %f469, %f466, %f463, %f468;
+ fma.rn.f32 %f470, %f466, %f465, %f469;
+ fma.rn.f32 %f472, %f781, %f463, %f470;
+ add.rn.f32 %f473, %f467, %f472;
+ neg.f32 %f474, %f473;
+ add.rn.f32 %f475, %f467, %f474;
+ add.rn.f32 %f476, %f475, %f472;
+ mov.b32 %r250, %f473;
+ setp.eq.s32 %p64, %r250, 1118925336;
+ add.s32 %r251, %r250, -1;
+ mov.b32 %f477, %r251;
+ add.f32 %f478, %f476, 0f37000000;
+ selp.f32 %f479, %f477, %f473, %p64;
+ selp.f32 %f95, %f478, %f476, %p64;
+ mul.f32 %f480, %f479, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f481, %f480;
+ mov.f32 %f482, 0fBF317200;
+ fma.rn.f32 %f483, %f481, %f482, %f479;
+ mov.f32 %f484, 0fB5BFBE8E;
+ fma.rn.f32 %f485, %f481, %f484, %f483;
+ mul.f32 %f486, %f485, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f487, %f486;
+ add.f32 %f488, %f481, 0f00000000;
+ ex2.approx.f32 %f489, %f488;
+ mul.f32 %f490, %f487, %f489;
+ setp.lt.f32 %p65, %f479, 0fC2D20000;
+ selp.f32 %f491, 0f00000000, %f490, %p65;
+ setp.gt.f32 %p66, %f479, 0f42D20000;
+ selp.f32 %f811, 0f7F800000, %f491, %p66;
+ setp.eq.f32 %p67, %f811, 0f7F800000;
+ @%p67 bra BB0_73;
+
+ fma.rn.f32 %f811, %f811, %f95, %f811;
+
+BB0_73:
+ mov.f32 %f748, 0f3E666666;
+ cvt.rzi.f32.f32 %f747, %f748;
+ fma.rn.f32 %f746, %f747, 0fC0000000, 0f3EE66666;
+ abs.f32 %f745, %f746;
+ setp.lt.f32 %p68, %f74, 0f00000000;
+ setp.eq.f32 %p69, %f745, 0f3F800000;
+ and.pred %p2, %p68, %p69;
+ mov.b32 %r252, %f811;
+ xor.b32 %r253, %r252, -2147483648;
+ mov.b32 %f492, %r253;
+ selp.f32 %f813, %f492, %f811, %p2;
+ setp.eq.f32 %p70, %f74, 0f00000000;
+ @%p70 bra BB0_76;
+ bra.uni BB0_74;
+
+BB0_76:
+ add.f32 %f495, %f74, %f74;
+ selp.f32 %f813, %f495, 0f00000000, %p69;
+ bra.uni BB0_77;
+
+BB0_74:
+ setp.geu.f32 %p71, %f74, 0f00000000;
+ @%p71 bra BB0_77;
+
+ mov.f32 %f772, 0f3EE66666;
+ cvt.rzi.f32.f32 %f494, %f772;
+ setp.neu.f32 %p72, %f494, 0f3EE66666;
+ selp.f32 %f813, 0f7FFFFFFF, %f813, %p72;
+
+BB0_77:
+ abs.f32 %f749, %f74;
+ add.f32 %f496, %f749, 0f3EE66666;
+ mov.b32 %r254, %f496;
+ setp.lt.s32 %p74, %r254, 2139095040;
+ @%p74 bra BB0_82;
+
+ abs.f32 %f770, %f74;
+ setp.gtu.f32 %p75, %f770, 0f7F800000;
+ @%p75 bra BB0_81;
+ bra.uni BB0_79;
+
+BB0_81:
+ add.f32 %f813, %f74, 0f3EE66666;
+ bra.uni BB0_82;
+
+BB0_79:
+ abs.f32 %f771, %f74;
+ setp.neu.f32 %p76, %f771, 0f7F800000;
+ @%p76 bra BB0_82;
+
+ selp.f32 %f813, 0fFF800000, 0f7F800000, %p2;
+
+BB0_82:
+ mov.f32 %f758, 0fB5BFBE8E;
+ mov.f32 %f757, 0fBF317200;
+ mov.f32 %f756, 0f35BFBE8E;
+ mov.f32 %f755, 0f3F317200;
+ mov.f32 %f754, 0f3DAAAABD;
+ mov.f32 %f753, 0f3C4CAF63;
+ mov.f32 %f752, 0f3B18F0FE;
+ mov.f32 %f751, 0f3EE66666;
+ mov.f32 %f750, 0f00000000;
+ setp.eq.f32 %p77, %f74, 0f3F800000;
+ selp.f32 %f106, 0f3F800000, %f813, %p77;
+ abs.f32 %f107, %f75;
+ setp.lt.f32 %p78, %f107, 0f00800000;
+ mul.f32 %f499, %f107, 0f4B800000;
+ selp.f32 %f500, 0fC3170000, 0fC2FE0000, %p78;
+ selp.f32 %f501, %f499, %f107, %p78;
+ mov.b32 %r255, %f501;
+ and.b32 %r256, %r255, 8388607;
+ or.b32 %r257, %r256, 1065353216;
+ mov.b32 %f502, %r257;
+ shr.u32 %r258, %r255, 23;
+ cvt.rn.f32.u32 %f503, %r258;
+ add.f32 %f504, %f500, %f503;
+ setp.gt.f32 %p79, %f502, 0f3FB504F3;
+ mul.f32 %f505, %f502, 0f3F000000;
+ add.f32 %f506, %f504, 0f3F800000;
+ selp.f32 %f507, %f505, %f502, %p79;
+ selp.f32 %f508, %f506, %f504, %p79;
+ add.f32 %f509, %f507, 0fBF800000;
+ add.f32 %f498, %f507, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f497,%f498;
+ // inline asm
+ add.f32 %f510, %f509, %f509;
+ mul.f32 %f511, %f497, %f510;
+ mul.f32 %f512, %f511, %f511;
+ fma.rn.f32 %f515, %f752, %f512, %f753;
+ fma.rn.f32 %f517, %f515, %f512, %f754;
+ mul.rn.f32 %f518, %f517, %f512;
+ mul.rn.f32 %f519, %f518, %f511;
+ sub.f32 %f520, %f509, %f511;
+ neg.f32 %f521, %f511;
+ add.f32 %f522, %f520, %f520;
+ fma.rn.f32 %f523, %f521, %f509, %f522;
+ mul.rn.f32 %f524, %f497, %f523;
+ add.f32 %f525, %f519, %f511;
+ sub.f32 %f526, %f511, %f525;
+ add.f32 %f527, %f519, %f526;
+ add.f32 %f528, %f524, %f527;
+ add.f32 %f529, %f525, %f528;
+ sub.f32 %f530, %f525, %f529;
+ add.f32 %f531, %f528, %f530;
+ mul.rn.f32 %f533, %f508, %f755;
+ mul.rn.f32 %f535, %f508, %f756;
+ add.f32 %f536, %f533, %f529;
+ sub.f32 %f537, %f533, %f536;
+ add.f32 %f538, %f529, %f537;
+ add.f32 %f539, %f531, %f538;
+ add.f32 %f540, %f535, %f539;
+ add.f32 %f541, %f536, %f540;
+ sub.f32 %f542, %f536, %f541;
+ add.f32 %f543, %f540, %f542;
+ mul.rn.f32 %f545, %f751, %f541;
+ neg.f32 %f546, %f545;
+ fma.rn.f32 %f547, %f751, %f541, %f546;
+ fma.rn.f32 %f548, %f751, %f543, %f547;
+ fma.rn.f32 %f550, %f750, %f541, %f548;
+ add.rn.f32 %f551, %f545, %f550;
+ neg.f32 %f552, %f551;
+ add.rn.f32 %f553, %f545, %f552;
+ add.rn.f32 %f554, %f553, %f550;
+ mov.b32 %r259, %f551;
+ setp.eq.s32 %p80, %r259, 1118925336;
+ add.s32 %r260, %r259, -1;
+ mov.b32 %f555, %r260;
+ add.f32 %f556, %f554, 0f37000000;
+ selp.f32 %f557, %f555, %f551, %p80;
+ selp.f32 %f108, %f556, %f554, %p80;
+ mul.f32 %f558, %f557, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f559, %f558;
+ fma.rn.f32 %f561, %f559, %f757, %f557;
+ fma.rn.f32 %f563, %f559, %f758, %f561;
+ mul.f32 %f564, %f563, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f565, %f564;
+ add.f32 %f566, %f559, 0f00000000;
+ ex2.approx.f32 %f567, %f566;
+ mul.f32 %f568, %f565, %f567;
+ setp.lt.f32 %p81, %f557, 0fC2D20000;
+ selp.f32 %f569, 0f00000000, %f568, %p81;
+ setp.gt.f32 %p82, %f557, 0f42D20000;
+ selp.f32 %f814, 0f7F800000, %f569, %p82;
+ setp.eq.f32 %p83, %f814, 0f7F800000;
+ @%p83 bra BB0_84;
+
+ fma.rn.f32 %f814, %f814, %f108, %f814;
+
+BB0_84:
+ setp.lt.f32 %p84, %f75, 0f00000000;
+ and.pred %p3, %p84, %p69;
+ mov.b32 %r261, %f814;
+ xor.b32 %r262, %r261, -2147483648;
+ mov.b32 %f570, %r262;
+ selp.f32 %f816, %f570, %f814, %p3;
+ setp.eq.f32 %p86, %f75, 0f00000000;
+ @%p86 bra BB0_87;
+ bra.uni BB0_85;
+
+BB0_87:
+ add.f32 %f573, %f75, %f75;
+ selp.f32 %f816, %f573, 0f00000000, %p69;
+ bra.uni BB0_88;
+
+BB0_85:
+ setp.geu.f32 %p87, %f75, 0f00000000;
+ @%p87 bra BB0_88;
+
+ mov.f32 %f769, 0f3EE66666;
+ cvt.rzi.f32.f32 %f572, %f769;
+ setp.neu.f32 %p88, %f572, 0f3EE66666;
+ selp.f32 %f816, 0f7FFFFFFF, %f816, %p88;
+
+BB0_88:
+ abs.f32 %f773, %f75;
+ add.f32 %f574, %f773, 0f3EE66666;
+ mov.b32 %r263, %f574;
+ setp.lt.s32 %p90, %r263, 2139095040;
+ @%p90 bra BB0_93;
+
+ abs.f32 %f774, %f75;
+ setp.gtu.f32 %p91, %f774, 0f7F800000;
+ @%p91 bra BB0_92;
+ bra.uni BB0_90;
+
+BB0_92:
+ add.f32 %f816, %f75, 0f3EE66666;
+ bra.uni BB0_93;
+
+BB0_90:
+ abs.f32 %f775, %f75;
+ setp.neu.f32 %p92, %f775, 0f7F800000;
+ @%p92 bra BB0_93;
+
+ selp.f32 %f816, 0fFF800000, 0f7F800000, %p3;
+
+BB0_93:
+ mov.f32 %f767, 0fB5BFBE8E;
+ mov.f32 %f766, 0fBF317200;
+ mov.f32 %f765, 0f35BFBE8E;
+ mov.f32 %f764, 0f3F317200;
+ mov.f32 %f763, 0f3DAAAABD;
+ mov.f32 %f762, 0f3C4CAF63;
+ mov.f32 %f761, 0f3B18F0FE;
+ mov.f32 %f760, 0f3EE66666;
+ mov.f32 %f759, 0f00000000;
+ setp.eq.f32 %p93, %f75, 0f3F800000;
+ selp.f32 %f119, 0f3F800000, %f816, %p93;
+ abs.f32 %f120, %f76;
+ setp.lt.f32 %p94, %f120, 0f00800000;
+ mul.f32 %f577, %f120, 0f4B800000;
+ selp.f32 %f578, 0fC3170000, 0fC2FE0000, %p94;
+ selp.f32 %f579, %f577, %f120, %p94;
+ mov.b32 %r264, %f579;
+ and.b32 %r265, %r264, 8388607;
+ or.b32 %r266, %r265, 1065353216;
+ mov.b32 %f580, %r266;
+ shr.u32 %r267, %r264, 23;
+ cvt.rn.f32.u32 %f581, %r267;
+ add.f32 %f582, %f578, %f581;
+ setp.gt.f32 %p95, %f580, 0f3FB504F3;
+ mul.f32 %f583, %f580, 0f3F000000;
+ add.f32 %f584, %f582, 0f3F800000;
+ selp.f32 %f585, %f583, %f580, %p95;
+ selp.f32 %f586, %f584, %f582, %p95;
+ add.f32 %f587, %f585, 0fBF800000;
+ add.f32 %f576, %f585, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f575,%f576;
+ // inline asm
+ add.f32 %f588, %f587, %f587;
+ mul.f32 %f589, %f575, %f588;
+ mul.f32 %f590, %f589, %f589;
+ fma.rn.f32 %f593, %f761, %f590, %f762;
+ fma.rn.f32 %f595, %f593, %f590, %f763;
+ mul.rn.f32 %f596, %f595, %f590;
+ mul.rn.f32 %f597, %f596, %f589;
+ sub.f32 %f598, %f587, %f589;
+ neg.f32 %f599, %f589;
+ add.f32 %f600, %f598, %f598;
+ fma.rn.f32 %f601, %f599, %f587, %f600;
+ mul.rn.f32 %f602, %f575, %f601;
+ add.f32 %f603, %f597, %f589;
+ sub.f32 %f604, %f589, %f603;
+ add.f32 %f605, %f597, %f604;
+ add.f32 %f606, %f602, %f605;
+ add.f32 %f607, %f603, %f606;
+ sub.f32 %f608, %f603, %f607;
+ add.f32 %f609, %f606, %f608;
+ mul.rn.f32 %f611, %f586, %f764;
+ mul.rn.f32 %f613, %f586, %f765;
+ add.f32 %f614, %f611, %f607;
+ sub.f32 %f615, %f611, %f614;
+ add.f32 %f616, %f607, %f615;
+ add.f32 %f617, %f609, %f616;
+ add.f32 %f618, %f613, %f617;
+ add.f32 %f619, %f614, %f618;
+ sub.f32 %f620, %f614, %f619;
+ add.f32 %f621, %f618, %f620;
+ mul.rn.f32 %f623, %f760, %f619;
+ neg.f32 %f624, %f623;
+ fma.rn.f32 %f625, %f760, %f619, %f624;
+ fma.rn.f32 %f626, %f760, %f621, %f625;
+ fma.rn.f32 %f628, %f759, %f619, %f626;
+ add.rn.f32 %f629, %f623, %f628;
+ neg.f32 %f630, %f629;
+ add.rn.f32 %f631, %f623, %f630;
+ add.rn.f32 %f632, %f631, %f628;
+ mov.b32 %r268, %f629;
+ setp.eq.s32 %p96, %r268, 1118925336;
+ add.s32 %r269, %r268, -1;
+ mov.b32 %f633, %r269;
+ add.f32 %f634, %f632, 0f37000000;
+ selp.f32 %f635, %f633, %f629, %p96;
+ selp.f32 %f121, %f634, %f632, %p96;
+ mul.f32 %f636, %f635, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f637, %f636;
+ fma.rn.f32 %f639, %f637, %f766, %f635;
+ fma.rn.f32 %f641, %f637, %f767, %f639;
+ mul.f32 %f642, %f641, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f643, %f642;
+ add.f32 %f644, %f637, 0f00000000;
+ ex2.approx.f32 %f645, %f644;
+ mul.f32 %f646, %f643, %f645;
+ setp.lt.f32 %p97, %f635, 0fC2D20000;
+ selp.f32 %f647, 0f00000000, %f646, %p97;
+ setp.gt.f32 %p98, %f635, 0f42D20000;
+ selp.f32 %f817, 0f7F800000, %f647, %p98;
+ setp.eq.f32 %p99, %f817, 0f7F800000;
+ @%p99 bra BB0_95;
+
+ fma.rn.f32 %f817, %f817, %f121, %f817;
+
+BB0_95:
+ setp.lt.f32 %p100, %f76, 0f00000000;
+ and.pred %p4, %p100, %p69;
+ mov.b32 %r270, %f817;
+ xor.b32 %r271, %r270, -2147483648;
+ mov.b32 %f648, %r271;
+ selp.f32 %f819, %f648, %f817, %p4;
+ setp.eq.f32 %p102, %f76, 0f00000000;
+ @%p102 bra BB0_98;
+ bra.uni BB0_96;
+
+BB0_98:
+ add.f32 %f651, %f76, %f76;
+ selp.f32 %f819, %f651, 0f00000000, %p69;
+ bra.uni BB0_99;
+
+BB0_96:
+ setp.geu.f32 %p103, %f76, 0f00000000;
+ @%p103 bra BB0_99;
+
+ mov.f32 %f768, 0f3EE66666;
+ cvt.rzi.f32.f32 %f650, %f768;
+ setp.neu.f32 %p104, %f650, 0f3EE66666;
+ selp.f32 %f819, 0f7FFFFFFF, %f819, %p104;
+
+BB0_99:
+ abs.f32 %f785, %f76;
+ add.f32 %f652, %f785, 0f3EE66666;
+ mov.b32 %r272, %f652;
+ setp.lt.s32 %p106, %r272, 2139095040;
+ @%p106 bra BB0_104;
+
+ abs.f32 %f786, %f76;
+ setp.gtu.f32 %p107, %f786, 0f7F800000;
+ @%p107 bra BB0_103;
+ bra.uni BB0_101;
+
+BB0_103:
+ add.f32 %f819, %f76, 0f3EE66666;
+ bra.uni BB0_104;
+
+BB0_101:
+ abs.f32 %f787, %f76;
+ setp.neu.f32 %p108, %f787, 0f7F800000;
+ @%p108 bra BB0_104;
+
+ selp.f32 %f819, 0fFF800000, 0f7F800000, %p4;
+
+BB0_104:
+ mov.u32 %r357, 4;
+ setp.eq.f32 %p109, %f76, 0f3F800000;
+ selp.f32 %f653, 0f3F800000, %f819, %p109;
+ cvt.u64.u32 %rd63, %r3;
+ cvt.u64.u32 %rd62, %r2;
+ mov.u64 %rd66, image;
+ cvta.global.u64 %rd61, %rd66;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r99, %r357, %rd62, %rd63, %rd25, %rd25);
+ // inline asm
+ cvt.sat.f32.f32 %f654, %f653;
+ mul.f32 %f655, %f654, 0f437FFD71;
+ cvt.rzi.u32.f32 %r275, %f655;
+ cvt.sat.f32.f32 %f656, %f119;
+ mul.f32 %f657, %f656, 0f437FFD71;
+ cvt.rzi.u32.f32 %r276, %f657;
+ cvt.sat.f32.f32 %f658, %f106;
+ mul.f32 %f659, %f658, 0f437FFD71;
+ cvt.rzi.u32.f32 %r277, %f659;
+ cvt.u16.u32 %rs16, %r275;
+ cvt.u16.u32 %rs17, %r277;
+ cvt.u16.u32 %rs18, %r276;
+ mov.u16 %rs19, 255;
+ st.v4.u8 [%rd60], {%rs16, %rs18, %rs17, %rs19};
+ ld.global.u32 %r387, [imageEnabled];
+
+BB0_105:
+ cvt.u64.u32 %rd16, %r2;
+ cvt.u64.u32 %rd17, %r3;
+ and.b32 %r278, %r387, 4;
+ setp.eq.s32 %p110, %r278, 0;
+ @%p110 bra BB0_109;
+
+ ld.global.u32 %r279, [additive];
+ setp.eq.s32 %p111, %r279, 0;
+ mov.f32 %f660, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f660;}
+
+ // inline asm
+ @%p111 bra BB0_108;
+
+ mov.u64 %rd79, image_HDR;
+ cvta.global.u64 %rd68, %rd79;
+ mov.u32 %r283, 8;
+ // inline asm
+ call (%rd67), _rt_buffer_get_64, (%rd68, %r99, %r283, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs27, %rs28, %rs29, %rs30}, [%rd67];
+ // inline asm
+ { cvt.f32.f16 %f661, %rs27;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f662, %rs28;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f663, %rs29;}
+
+ // inline asm
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd68, %r99, %r283, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f664, %f74, %f661;
+ add.f32 %f665, %f75, %f662;
+ add.f32 %f666, %f76, %f663;
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f666;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f665;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f664;}
+
+ // inline asm
+ st.v4.u16 [%rd73], {%rs24, %rs25, %rs26, %rs20};
+ bra.uni BB0_109;
+
+BB0_108:
+ mov.u64 %rd86, image_HDR;
+ cvta.global.u64 %rd81, %rd86;
+ mov.u32 %r285, 8;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r99, %r285, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f76;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f75;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f74;}
+
+ // inline asm
+ st.v4.u16 [%rd80], {%rs31, %rs32, %rs33, %rs20};
+
+BB0_109:
+ ld.global.u32 %r286, [additive];
+ setp.eq.s32 %p112, %r286, 0;
+ mov.f32 %f670, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f670;}
+
+ // inline asm
+ @%p112 bra BB0_111;
+
+ mov.u64 %rd99, image_RNM0;
+ cvta.global.u64 %rd88, %rd99;
+ mov.u32 %r290, 8;
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd88, %r99, %r290, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs41, %rs42, %rs43, %rs44}, [%rd87];
+ // inline asm
+ { cvt.f32.f16 %f671, %rs41;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f672, %rs42;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f673, %rs43;}
+
+ // inline asm
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd88, %r99, %r290, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f674, %f77, %f671;
+ add.f32 %f675, %f78, %f672;
+ add.f32 %f676, %f79, %f673;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f676;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f675;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f674;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs38, %rs39, %rs40, %rs34};
+ bra.uni BB0_112;
+
+BB0_111:
+ mov.u64 %rd106, image_RNM0;
+ cvta.global.u64 %rd101, %rd106;
+ mov.u32 %r292, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r99, %r292, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f79;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f78;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f77;}
+
+ // inline asm
+ st.v4.u16 [%rd100], {%rs45, %rs46, %rs47, %rs34};
+
+BB0_112:
+ ld.global.f32 %f681, [directDir];
+ fma.rn.f32 %f132, %f681, 0fBF000000, 0f3F000000;
+ ld.global.f32 %f682, [directDir+4];
+ fma.rn.f32 %f133, %f682, 0fBF000000, 0f3F000000;
+ ld.global.f32 %f683, [directDir+8];
+ fma.rn.f32 %f134, %f683, 0fBF000000, 0f3F000000;
+ ld.global.u32 %r293, [additive];
+ setp.eq.s32 %p113, %r293, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f670;}
+
+ // inline asm
+ @%p113 bra BB0_114;
+
+ mov.u64 %rd119, image_RNM1;
+ cvta.global.u64 %rd108, %rd119;
+ mov.u32 %r297, 8;
+ // inline asm
+ call (%rd107), _rt_buffer_get_64, (%rd108, %r99, %r297, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs55, %rs56, %rs57, %rs58}, [%rd107];
+ // inline asm
+ { cvt.f32.f16 %f684, %rs55;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f685, %rs56;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f686, %rs57;}
+
+ // inline asm
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd108, %r99, %r297, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f687, %f132, %f684;
+ add.f32 %f688, %f132, %f685;
+ add.f32 %f689, %f132, %f686;
+ // inline asm
+ { cvt.rn.f16.f32 %rs54, %f689;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f688;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f687;}
+
+ // inline asm
+ st.v4.u16 [%rd113], {%rs52, %rs53, %rs54, %rs48};
+ bra.uni BB0_115;
+
+BB0_114:
+ mov.u64 %rd126, image_RNM1;
+ cvta.global.u64 %rd121, %rd126;
+ mov.u32 %r299, 8;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd121, %r99, %r299, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f132;}
+
+ // inline asm
+ st.v4.u16 [%rd120], {%rs59, %rs59, %rs59, %rs48};
+
+BB0_115:
+ ld.global.u32 %r300, [additive];
+ setp.eq.s32 %p114, %r300, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f670;}
+
+ // inline asm
+ @%p114 bra BB0_117;
+
+ mov.u64 %rd139, image_RNM2;
+ cvta.global.u64 %rd128, %rd139;
+ mov.u32 %r304, 8;
+ // inline asm
+ call (%rd127), _rt_buffer_get_64, (%rd128, %r99, %r304, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd127];
+ // inline asm
+ { cvt.f32.f16 %f692, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f693, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f694, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd128, %r99, %r304, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f695, %f133, %f692;
+ add.f32 %f696, %f133, %f693;
+ add.f32 %f697, %f133, %f694;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f697;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f696;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f695;}
+
+ // inline asm
+ st.v4.u16 [%rd133], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_118;
+
+BB0_117:
+ mov.u64 %rd146, image_RNM2;
+ cvta.global.u64 %rd141, %rd146;
+ mov.u32 %r306, 8;
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd141, %r99, %r306, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f133;}
+
+ // inline asm
+ st.v4.u16 [%rd140], {%rs71, %rs71, %rs71, %rs60};
+
+BB0_118:
+ ld.global.u32 %r307, [additive];
+ setp.eq.s32 %p115, %r307, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f670;}
+
+ // inline asm
+ @%p115 bra BB0_120;
+
+ mov.u64 %rd159, image_RNM3;
+ cvta.global.u64 %rd148, %rd159;
+ mov.u32 %r311, 8;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r99, %r311, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs79, %rs80, %rs81, %rs82}, [%rd147];
+ // inline asm
+ { cvt.f32.f16 %f700, %rs79;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f701, %rs80;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f702, %rs81;}
+
+ // inline asm
+ // inline asm
+ call (%rd153), _rt_buffer_get_64, (%rd148, %r99, %r311, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f703, %f134, %f700;
+ add.f32 %f704, %f134, %f701;
+ add.f32 %f705, %f134, %f702;
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f705;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f704;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f703;}
+
+ // inline asm
+ st.v4.u16 [%rd153], {%rs76, %rs77, %rs78, %rs72};
+ bra.uni BB0_141;
+
+BB0_120:
+ mov.u64 %rd166, image_RNM3;
+ cvta.global.u64 %rd161, %rd166;
+ mov.u32 %r313, 8;
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd161, %r99, %r313, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f134;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs83, %rs83, %rs83, %rs72};
+
+BB0_141:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowSH.ptx.meta
new file mode 100644
index 00000000..0c5373d9
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunCloudShadowSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e4243e3a90749dd4ca096a3e65dea571
+timeCreated: 1581075098
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunProbeSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunProbeSH.ptx
new file mode 100644
index 00000000..1096163d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunProbeSH.ptx
@@ -0,0 +1,2107 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .b8 directDir[12];
+.global .align 4 .b8 directColor[12];
+.global .align 4 .f32 shadowSpread;
+.global .align 4 .u32 samples;
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9directDirE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11directColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12shadowSpreadE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9directDirE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11directColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12shadowSpreadE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9directDirE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11directColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12shadowSpreadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9directDirE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11directColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12shadowSpreadE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9directDirE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11directColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12shadowSpreadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<124>;
+ .reg .b16 %rs<152>;
+ .reg .f32 %f<791>;
+ .reg .b32 %r<388>;
+ .reg .b64 %rd<286>;
+
+
+ mov.u64 %rd285, __local_depot0;
+ cvta.local.u64 %SP, %rd285;
+ ld.global.v2.u32 {%r101, %r102}, [pixelID];
+ cvt.u64.u32 %rd22, %r101;
+ cvt.u64.u32 %rd23, %r102;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r99, 2;
+ mov.u32 %r100, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r99, %r100, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r1, [%rd20];
+ shr.u32 %r105, %r1, 16;
+ cvt.u16.u32 %rs1, %r105;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r1;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p5, %rs9, 0;
+ mov.f32 %f759, 0f00000000;
+ mov.f32 %f760, %f759;
+ mov.f32 %f761, %f759;
+ @%p5 bra BB0_2;
+
+ ld.u8 %rs10, [%rd20+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f134, %rs12;
+ div.rn.f32 %f135, %f134, 0f437F0000;
+ fma.rn.f32 %f136, %f135, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f137, %rs10;
+ div.rn.f32 %f138, %f137, 0f437F0000;
+ fma.rn.f32 %f139, %f138, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f140, %rs7;
+ div.rn.f32 %f141, %f140, 0f437F0000;
+ fma.rn.f32 %f142, %f141, 0f40000000, 0fBF800000;
+ mul.f32 %f143, %f139, %f139;
+ fma.rn.f32 %f144, %f136, %f136, %f143;
+ fma.rn.f32 %f145, %f142, %f142, %f144;
+ sqrt.rn.f32 %f146, %f145;
+ rcp.rn.f32 %f147, %f146;
+ mul.f32 %f759, %f136, %f147;
+ mul.f32 %f760, %f139, %f147;
+ mul.f32 %f761, %f142, %f147;
+
+BB0_2:
+ ld.global.v2.u32 {%r106, %r107}, [pixelID];
+ ld.global.v2.u32 {%r109, %r110}, [tileInfo];
+ add.s32 %r2, %r106, %r109;
+ add.s32 %r3, %r107, %r110;
+ setp.eq.f32 %p6, %f760, 0f00000000;
+ setp.eq.f32 %p7, %f759, 0f00000000;
+ and.pred %p8, %p7, %p6;
+ setp.eq.f32 %p9, %f761, 0f00000000;
+ and.pred %p10, %p8, %p9;
+ @%p10 bra BB0_121;
+ bra.uni BB0_3;
+
+BB0_121:
+ ld.global.u32 %r387, [imageEnabled];
+ and.b32 %r312, %r387, 1;
+ setp.eq.b32 %p116, %r312, 1;
+ @!%p116 bra BB0_123;
+ bra.uni BB0_122;
+
+BB0_122:
+ cvt.u64.u32 %rd169, %r2;
+ cvt.u64.u32 %rd170, %r3;
+ mov.u64 %rd173, image;
+ cvta.global.u64 %rd168, %rd173;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r99, %r100, %rd169, %rd170, %rd25, %rd25);
+ // inline asm
+ mov.u16 %rs84, 0;
+ st.v4.u8 [%rd167], {%rs84, %rs84, %rs84, %rs84};
+ ld.global.u32 %r387, [imageEnabled];
+
+BB0_123:
+ and.b32 %r315, %r387, 8;
+ setp.eq.s32 %p117, %r315, 0;
+ @%p117 bra BB0_125;
+
+ cvt.u64.u32 %rd177, %r3;
+ cvt.u64.u32 %rd176, %r2;
+ mov.u64 %rd180, image_Mask;
+ cvta.global.u64 %rd175, %rd180;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r99, %r99, %rd176, %rd177, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f681, 0f00000000;
+ cvt.rzi.u32.f32 %r318, %f681;
+ cvt.u16.u32 %rs85, %r318;
+ mov.u16 %rs86, 0;
+ st.v2.u8 [%rd174], {%rs85, %rs86};
+ ld.global.u32 %r387, [imageEnabled];
+
+BB0_125:
+ cvt.u64.u32 %rd18, %r2;
+ cvt.u64.u32 %rd19, %r3;
+ and.b32 %r319, %r387, 4;
+ setp.eq.s32 %p118, %r319, 0;
+ @%p118 bra BB0_129;
+
+ ld.global.u32 %r320, [additive];
+ setp.eq.s32 %p119, %r320, 0;
+ @%p119 bra BB0_128;
+
+ mov.u64 %rd193, image_HDR;
+ cvta.global.u64 %rd182, %rd193;
+ mov.u32 %r324, 8;
+ // inline asm
+ call (%rd181), _rt_buffer_get_64, (%rd182, %r99, %r324, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs93, %rs94, %rs95, %rs96}, [%rd181];
+ // inline asm
+ { cvt.f32.f16 %f682, %rs93;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f683, %rs94;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f684, %rs95;}
+
+ // inline asm
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd182, %r99, %r324, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f685, %f682, 0f00000000;
+ add.f32 %f686, %f683, 0f00000000;
+ add.f32 %f687, %f684, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f687;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f686;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f685;}
+
+ // inline asm
+ mov.u16 %rs97, 0;
+ st.v4.u16 [%rd187], {%rs90, %rs91, %rs92, %rs97};
+ bra.uni BB0_129;
+
+BB0_3:
+ ld.global.f32 %f9, [directDir+8];
+ ld.global.f32 %f8, [directDir+4];
+ ld.global.f32 %f7, [directDir];
+ mul.f32 %f149, %f759, %f7;
+ mul.f32 %f150, %f760, %f8;
+ neg.f32 %f151, %f150;
+ sub.f32 %f152, %f151, %f149;
+ mul.f32 %f153, %f761, %f9;
+ sub.f32 %f10, %f152, %f153;
+ ld.global.v2.u32 {%r118, %r119}, [pixelID];
+ cvt.u64.u32 %rd29, %r118;
+ cvt.u64.u32 %rd30, %r119;
+ mov.u64 %rd39, uvpos;
+ cvta.global.u64 %rd28, %rd39;
+ mov.u32 %r115, 12;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r99, %r115, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f154, [%rd27+8];
+ ld.f32 %f155, [%rd27+4];
+ ld.f32 %f156, [%rd27];
+ mul.f32 %f157, %f156, 0f3456BF95;
+ mul.f32 %f158, %f155, 0f3456BF95;
+ mul.f32 %f159, %f154, 0f3456BF95;
+ abs.f32 %f160, %f759;
+ div.rn.f32 %f161, %f157, %f160;
+ abs.f32 %f162, %f760;
+ div.rn.f32 %f163, %f158, %f162;
+ abs.f32 %f164, %f761;
+ div.rn.f32 %f165, %f159, %f164;
+ abs.f32 %f166, %f161;
+ abs.f32 %f167, %f163;
+ abs.f32 %f168, %f165;
+ mov.f32 %f169, 0f38D1B717;
+ max.f32 %f170, %f166, %f169;
+ max.f32 %f171, %f167, %f169;
+ max.f32 %f172, %f168, %f169;
+ fma.rn.f32 %f11, %f759, %f170, %f156;
+ fma.rn.f32 %f12, %f760, %f171, %f155;
+ fma.rn.f32 %f13, %f761, %f172, %f154;
+ abs.f32 %f173, %f7;
+ abs.f32 %f174, %f9;
+ setp.gt.f32 %p11, %f173, %f174;
+ neg.f32 %f175, %f8;
+ neg.f32 %f176, %f9;
+ selp.f32 %f177, %f175, 0f00000000, %p11;
+ selp.f32 %f178, %f7, %f176, %p11;
+ selp.f32 %f179, 0f00000000, %f8, %p11;
+ mul.f32 %f180, %f178, %f178;
+ fma.rn.f32 %f181, %f177, %f177, %f180;
+ fma.rn.f32 %f182, %f179, %f179, %f181;
+ sqrt.rn.f32 %f183, %f182;
+ rcp.rn.f32 %f184, %f183;
+ mul.f32 %f14, %f177, %f184;
+ mul.f32 %f15, %f178, %f184;
+ mul.f32 %f16, %f179, %f184;
+ ld.global.v2.u32 {%r122, %r123}, [pixelID];
+ cvt.u64.u32 %rd35, %r122;
+ cvt.u64.u32 %rd36, %r123;
+ mov.u64 %rd40, rnd_seeds;
+ cvta.global.u64 %rd34, %rd40;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r99, %r100, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ ld.global.u32 %r356, [samples];
+ mov.f32 %f776, 0f00000000;
+ setp.lt.s32 %p12, %r356, 1;
+ @%p12 bra BB0_55;
+
+ cvt.rn.f32.s32 %f186, %r356;
+ rcp.rn.f32 %f17, %f186;
+ ld.u32 %r382, [%rd33];
+ mul.f32 %f18, %f11, 0f3456BF95;
+ mul.f32 %f19, %f12, 0f3456BF95;
+ mul.f32 %f20, %f13, 0f3456BF95;
+ mul.f32 %f187, %f7, %f15;
+ mul.f32 %f188, %f8, %f14;
+ sub.f32 %f21, %f188, %f187;
+ mul.f32 %f189, %f9, %f14;
+ mul.f32 %f190, %f7, %f16;
+ sub.f32 %f22, %f190, %f189;
+ mul.f32 %f191, %f8, %f16;
+ mul.f32 %f192, %f9, %f15;
+ sub.f32 %f23, %f192, %f191;
+ mov.f32 %f776, 0f00000000;
+ mov.u32 %r357, 0;
+ abs.f32 %f193, %f19;
+ abs.f32 %f194, %f18;
+ max.f32 %f195, %f194, %f193;
+ abs.f32 %f196, %f20;
+ max.f32 %f197, %f195, %f196;
+
+BB0_5:
+ setp.lt.s32 %p13, %r356, 1;
+ @%p13 bra BB0_54;
+
+ cvt.rn.f32.s32 %f25, %r357;
+ max.f32 %f26, %f197, %f169;
+ mov.u32 %r359, 0;
+
+BB0_7:
+ mad.lo.s32 %r128, %r382, 1664525, 1013904223;
+ and.b32 %r129, %r128, 16777215;
+ cvt.rn.f32.u32 %f199, %r129;
+ fma.rn.f32 %f200, %f199, 0f33800000, %f25;
+ mul.f32 %f201, %f17, %f200;
+ mad.lo.s32 %r382, %r128, 1664525, 1013904223;
+ and.b32 %r130, %r382, 16777215;
+ cvt.rn.f32.u32 %f202, %r130;
+ cvt.rn.f32.s32 %f203, %r359;
+ fma.rn.f32 %f204, %f202, 0f33800000, %f203;
+ mul.f32 %f205, %f17, %f204;
+ sqrt.rn.f32 %f28, %f201;
+ mul.f32 %f770, %f205, 0f40C90FDB;
+ abs.f32 %f30, %f770;
+ setp.neu.f32 %p14, %f30, 0f7F800000;
+ mov.f32 %f764, %f770;
+ @%p14 bra BB0_9;
+
+ mov.f32 %f206, 0f00000000;
+ mul.rn.f32 %f764, %f770, %f206;
+
+BB0_9:
+ mul.f32 %f207, %f764, 0f3F22F983;
+ cvt.rni.s32.f32 %r370, %f207;
+ cvt.rn.f32.s32 %f208, %r370;
+ neg.f32 %f209, %f208;
+ mov.f32 %f210, 0f3FC90FDA;
+ fma.rn.f32 %f211, %f209, %f210, %f764;
+ mov.f32 %f212, 0f33A22168;
+ fma.rn.f32 %f213, %f209, %f212, %f211;
+ mov.f32 %f214, 0f27C234C5;
+ fma.rn.f32 %f765, %f209, %f214, %f213;
+ abs.f32 %f215, %f764;
+ setp.leu.f32 %p15, %f215, 0f47CE4780;
+ @%p15 bra BB0_20;
+
+ mov.b32 %r13, %f764;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r133, %r13, 8;
+ or.b32 %r15, %r133, -2147483648;
+ add.u64 %rd42, %SP, 4;
+ cvta.to.local.u64 %rd282, %rd42;
+ mov.u32 %r362, 0;
+ mov.u64 %rd281, __cudart_i2opi_f;
+ mov.u32 %r361, -6;
+
+BB0_11:
+ .pragma "nounroll";
+ ld.const.u32 %r136, [%rd281];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r134, %r136, %r15, %r362;
+ madc.hi.u32 %r362, %r136, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd282], %r134;
+ add.s64 %rd282, %rd282, 4;
+ add.s64 %rd281, %rd281, 4;
+ add.s32 %r361, %r361, 1;
+ setp.ne.s32 %p16, %r361, 0;
+ @%p16 bra BB0_11;
+
+ and.b32 %r139, %r14, 255;
+ add.s32 %r140, %r139, -128;
+ shr.u32 %r141, %r140, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd44, %rd42;
+ st.local.u32 [%rd44+24], %r362;
+ mov.u32 %r142, 6;
+ sub.s32 %r143, %r142, %r141;
+ mul.wide.s32 %rd45, %r143, 4;
+ add.s64 %rd8, %rd44, %rd45;
+ ld.local.u32 %r363, [%rd8];
+ ld.local.u32 %r364, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p17, %r23, 0;
+ @%p17 bra BB0_14;
+
+ mov.u32 %r144, 32;
+ sub.s32 %r145, %r144, %r23;
+ shr.u32 %r146, %r364, %r145;
+ shl.b32 %r147, %r363, %r23;
+ add.s32 %r363, %r146, %r147;
+ ld.local.u32 %r148, [%rd8+-8];
+ shr.u32 %r149, %r148, %r145;
+ shl.b32 %r150, %r364, %r23;
+ add.s32 %r364, %r149, %r150;
+
+BB0_14:
+ shr.u32 %r151, %r364, 30;
+ shl.b32 %r152, %r363, 2;
+ add.s32 %r365, %r151, %r152;
+ shl.b32 %r29, %r364, 2;
+ shr.u32 %r153, %r365, 31;
+ shr.u32 %r154, %r363, 30;
+ add.s32 %r30, %r153, %r154;
+ setp.eq.s32 %p18, %r153, 0;
+ @%p18 bra BB0_15;
+ bra.uni BB0_16;
+
+BB0_15:
+ mov.u32 %r366, %r20;
+ mov.u32 %r367, %r29;
+ bra.uni BB0_17;
+
+BB0_16:
+ not.b32 %r155, %r365;
+ neg.s32 %r367, %r29;
+ setp.eq.s32 %p19, %r29, 0;
+ selp.u32 %r156, 1, 0, %p19;
+ add.s32 %r365, %r156, %r155;
+ xor.b32 %r366, %r20, -2147483648;
+
+BB0_17:
+ clz.b32 %r369, %r365;
+ setp.eq.s32 %p20, %r369, 0;
+ shl.b32 %r157, %r365, %r369;
+ mov.u32 %r158, 32;
+ sub.s32 %r159, %r158, %r369;
+ shr.u32 %r160, %r367, %r159;
+ add.s32 %r161, %r160, %r157;
+ selp.b32 %r38, %r365, %r161, %p20;
+ mov.u32 %r162, -921707870;
+ mul.hi.u32 %r368, %r38, %r162;
+ setp.eq.s32 %p21, %r20, 0;
+ neg.s32 %r163, %r30;
+ selp.b32 %r370, %r30, %r163, %p21;
+ setp.lt.s32 %p22, %r368, 1;
+ @%p22 bra BB0_19;
+
+ mul.lo.s32 %r164, %r38, -921707870;
+ shr.u32 %r165, %r164, 31;
+ shl.b32 %r166, %r368, 1;
+ add.s32 %r368, %r165, %r166;
+ add.s32 %r369, %r369, 1;
+
+BB0_19:
+ mov.u32 %r167, 126;
+ sub.s32 %r168, %r167, %r369;
+ shl.b32 %r169, %r168, 23;
+ add.s32 %r170, %r368, 1;
+ shr.u32 %r171, %r170, 7;
+ add.s32 %r172, %r171, 1;
+ shr.u32 %r173, %r172, 1;
+ add.s32 %r174, %r173, %r169;
+ or.b32 %r175, %r174, %r366;
+ mov.b32 %f765, %r175;
+
+BB0_20:
+ mul.rn.f32 %f36, %f765, %f765;
+ add.s32 %r46, %r370, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p23, %r47, 0;
+ @%p23 bra BB0_22;
+ bra.uni BB0_21;
+
+BB0_22:
+ mov.f32 %f218, 0f3C08839E;
+ mov.f32 %f219, 0fB94CA1F9;
+ fma.rn.f32 %f766, %f219, %f36, %f218;
+ bra.uni BB0_23;
+
+BB0_21:
+ mov.f32 %f216, 0fBAB6061A;
+ mov.f32 %f217, 0f37CCF5CE;
+ fma.rn.f32 %f766, %f217, %f36, %f216;
+
+BB0_23:
+ @%p23 bra BB0_25;
+ bra.uni BB0_24;
+
+BB0_25:
+ mov.f32 %f223, 0fBE2AAAA3;
+ fma.rn.f32 %f224, %f766, %f36, %f223;
+ mov.f32 %f225, 0f00000000;
+ fma.rn.f32 %f767, %f224, %f36, %f225;
+ bra.uni BB0_26;
+
+BB0_24:
+ mov.f32 %f220, 0f3D2AAAA5;
+ fma.rn.f32 %f221, %f766, %f36, %f220;
+ mov.f32 %f222, 0fBF000000;
+ fma.rn.f32 %f767, %f221, %f36, %f222;
+
+BB0_26:
+ fma.rn.f32 %f768, %f767, %f765, %f765;
+ @%p23 bra BB0_28;
+
+ mov.f32 %f226, 0f3F800000;
+ fma.rn.f32 %f768, %f767, %f36, %f226;
+
+BB0_28:
+ and.b32 %r176, %r46, 2;
+ setp.eq.s32 %p26, %r176, 0;
+ @%p26 bra BB0_30;
+
+ mov.f32 %f227, 0f00000000;
+ mov.f32 %f228, 0fBF800000;
+ fma.rn.f32 %f768, %f768, %f228, %f227;
+
+BB0_30:
+ @%p14 bra BB0_32;
+
+ mov.f32 %f229, 0f00000000;
+ mul.rn.f32 %f770, %f770, %f229;
+
+BB0_32:
+ mul.f32 %f230, %f770, 0f3F22F983;
+ cvt.rni.s32.f32 %r380, %f230;
+ cvt.rn.f32.s32 %f231, %r380;
+ neg.f32 %f232, %f231;
+ fma.rn.f32 %f234, %f232, %f210, %f770;
+ fma.rn.f32 %f236, %f232, %f212, %f234;
+ fma.rn.f32 %f771, %f232, %f214, %f236;
+ abs.f32 %f238, %f770;
+ setp.leu.f32 %p28, %f238, 0f47CE4780;
+ @%p28 bra BB0_43;
+
+ mov.b32 %r49, %f770;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r179, %r49, 8;
+ or.b32 %r51, %r179, -2147483648;
+ add.u64 %rd47, %SP, 4;
+ cvta.to.local.u64 %rd284, %rd47;
+ mov.u32 %r372, 0;
+ mov.u64 %rd283, __cudart_i2opi_f;
+ mov.u32 %r371, -6;
+
+BB0_34:
+ .pragma "nounroll";
+ ld.const.u32 %r182, [%rd283];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r180, %r182, %r51, %r372;
+ madc.hi.u32 %r372, %r182, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd284], %r180;
+ add.s64 %rd284, %rd284, 4;
+ add.s64 %rd283, %rd283, 4;
+ add.s32 %r371, %r371, 1;
+ setp.ne.s32 %p29, %r371, 0;
+ @%p29 bra BB0_34;
+
+ and.b32 %r185, %r50, 255;
+ add.s32 %r186, %r185, -128;
+ shr.u32 %r187, %r186, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd49, %rd47;
+ st.local.u32 [%rd49+24], %r372;
+ mov.u32 %r188, 6;
+ sub.s32 %r189, %r188, %r187;
+ mul.wide.s32 %rd50, %r189, 4;
+ add.s64 %rd14, %rd49, %rd50;
+ ld.local.u32 %r373, [%rd14];
+ ld.local.u32 %r374, [%rd14+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p30, %r59, 0;
+ @%p30 bra BB0_37;
+
+ mov.u32 %r190, 32;
+ sub.s32 %r191, %r190, %r59;
+ shr.u32 %r192, %r374, %r191;
+ shl.b32 %r193, %r373, %r59;
+ add.s32 %r373, %r192, %r193;
+ ld.local.u32 %r194, [%rd14+-8];
+ shr.u32 %r195, %r194, %r191;
+ shl.b32 %r196, %r374, %r59;
+ add.s32 %r374, %r195, %r196;
+
+BB0_37:
+ shr.u32 %r197, %r374, 30;
+ shl.b32 %r198, %r373, 2;
+ add.s32 %r375, %r197, %r198;
+ shl.b32 %r65, %r374, 2;
+ shr.u32 %r199, %r375, 31;
+ shr.u32 %r200, %r373, 30;
+ add.s32 %r66, %r199, %r200;
+ setp.eq.s32 %p31, %r199, 0;
+ @%p31 bra BB0_38;
+ bra.uni BB0_39;
+
+BB0_38:
+ mov.u32 %r376, %r56;
+ mov.u32 %r377, %r65;
+ bra.uni BB0_40;
+
+BB0_39:
+ not.b32 %r201, %r375;
+ neg.s32 %r377, %r65;
+ setp.eq.s32 %p32, %r65, 0;
+ selp.u32 %r202, 1, 0, %p32;
+ add.s32 %r375, %r202, %r201;
+ xor.b32 %r376, %r56, -2147483648;
+
+BB0_40:
+ clz.b32 %r379, %r375;
+ setp.eq.s32 %p33, %r379, 0;
+ shl.b32 %r203, %r375, %r379;
+ mov.u32 %r204, 32;
+ sub.s32 %r205, %r204, %r379;
+ shr.u32 %r206, %r377, %r205;
+ add.s32 %r207, %r206, %r203;
+ selp.b32 %r74, %r375, %r207, %p33;
+ mov.u32 %r208, -921707870;
+ mul.hi.u32 %r378, %r74, %r208;
+ setp.eq.s32 %p34, %r56, 0;
+ neg.s32 %r209, %r66;
+ selp.b32 %r380, %r66, %r209, %p34;
+ setp.lt.s32 %p35, %r378, 1;
+ @%p35 bra BB0_42;
+
+ mul.lo.s32 %r210, %r74, -921707870;
+ shr.u32 %r211, %r210, 31;
+ shl.b32 %r212, %r378, 1;
+ add.s32 %r378, %r211, %r212;
+ add.s32 %r379, %r379, 1;
+
+BB0_42:
+ mov.u32 %r213, 126;
+ sub.s32 %r214, %r213, %r379;
+ shl.b32 %r215, %r214, 23;
+ add.s32 %r216, %r378, 1;
+ shr.u32 %r217, %r216, 7;
+ add.s32 %r218, %r217, 1;
+ shr.u32 %r219, %r218, 1;
+ add.s32 %r220, %r219, %r215;
+ or.b32 %r221, %r220, %r376;
+ mov.b32 %f771, %r221;
+
+BB0_43:
+ mul.rn.f32 %f53, %f771, %f771;
+ and.b32 %r82, %r380, 1;
+ setp.eq.s32 %p36, %r82, 0;
+ @%p36 bra BB0_45;
+ bra.uni BB0_44;
+
+BB0_45:
+ mov.f32 %f241, 0f3C08839E;
+ mov.f32 %f242, 0fB94CA1F9;
+ fma.rn.f32 %f772, %f242, %f53, %f241;
+ bra.uni BB0_46;
+
+BB0_44:
+ mov.f32 %f239, 0fBAB6061A;
+ mov.f32 %f240, 0f37CCF5CE;
+ fma.rn.f32 %f772, %f240, %f53, %f239;
+
+BB0_46:
+ @%p36 bra BB0_48;
+ bra.uni BB0_47;
+
+BB0_48:
+ mov.f32 %f246, 0fBE2AAAA3;
+ fma.rn.f32 %f247, %f772, %f53, %f246;
+ mov.f32 %f248, 0f00000000;
+ fma.rn.f32 %f773, %f247, %f53, %f248;
+ bra.uni BB0_49;
+
+BB0_47:
+ mov.f32 %f243, 0f3D2AAAA5;
+ fma.rn.f32 %f244, %f772, %f53, %f243;
+ mov.f32 %f245, 0fBF000000;
+ fma.rn.f32 %f773, %f244, %f53, %f245;
+
+BB0_49:
+ fma.rn.f32 %f774, %f773, %f771, %f771;
+ @%p36 bra BB0_51;
+
+ mov.f32 %f249, 0f3F800000;
+ fma.rn.f32 %f774, %f773, %f53, %f249;
+
+BB0_51:
+ and.b32 %r222, %r380, 2;
+ setp.eq.s32 %p39, %r222, 0;
+ @%p39 bra BB0_53;
+
+ mov.f32 %f250, 0f00000000;
+ mov.f32 %f251, 0fBF800000;
+ fma.rn.f32 %f774, %f774, %f251, %f250;
+
+BB0_53:
+ mul.f32 %f260, %f28, %f768;
+ add.u64 %rd51, %SP, 0;
+ cvta.to.local.u64 %rd52, %rd51;
+ mul.f32 %f261, %f260, %f260;
+ mov.f32 %f262, 0f3F800000;
+ sub.f32 %f263, %f262, %f261;
+ mul.f32 %f264, %f28, %f774;
+ mul.f32 %f265, %f264, %f264;
+ sub.f32 %f266, %f263, %f265;
+ mov.f32 %f267, 0f00000000;
+ max.f32 %f268, %f267, %f266;
+ sqrt.rn.f32 %f269, %f268;
+ mul.f32 %f270, %f14, %f264;
+ mul.f32 %f271, %f15, %f264;
+ mul.f32 %f272, %f16, %f264;
+ fma.rn.f32 %f273, %f23, %f260, %f270;
+ fma.rn.f32 %f274, %f22, %f260, %f271;
+ fma.rn.f32 %f275, %f21, %f260, %f272;
+ fma.rn.f32 %f276, %f7, %f269, %f273;
+ fma.rn.f32 %f277, %f8, %f269, %f274;
+ fma.rn.f32 %f278, %f9, %f269, %f275;
+ add.f32 %f279, %f7, %f276;
+ add.f32 %f280, %f8, %f277;
+ add.f32 %f281, %f9, %f278;
+ ld.global.f32 %f282, [shadowSpread];
+ mul.f32 %f283, %f282, %f279;
+ mul.f32 %f284, %f282, %f280;
+ mul.f32 %f285, %f282, %f281;
+ sub.f32 %f286, %f283, %f7;
+ sub.f32 %f287, %f284, %f8;
+ sub.f32 %f288, %f285, %f9;
+ mul.f32 %f289, %f287, %f287;
+ fma.rn.f32 %f290, %f286, %f286, %f289;
+ fma.rn.f32 %f291, %f288, %f288, %f290;
+ sqrt.rn.f32 %f292, %f291;
+ rcp.rn.f32 %f293, %f292;
+ mul.f32 %f255, %f293, %f286;
+ mul.f32 %f256, %f293, %f287;
+ mul.f32 %f257, %f293, %f288;
+ ld.global.u32 %r226, [imageEnabled];
+ and.b32 %r227, %r226, 32;
+ setp.eq.s32 %p40, %r227, 0;
+ selp.f32 %f294, 0f3F800000, 0f41200000, %p40;
+ mul.f32 %f258, %f294, %f26;
+ mov.u32 %r228, 1065353216;
+ st.local.u32 [%rd52], %r228;
+ ld.global.u32 %r223, [root];
+ mov.u32 %r224, 1;
+ mov.f32 %f259, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r223, %f11, %f12, %f13, %f255, %f256, %f257, %r224, %f258, %f259, %rd51, %r100);
+ // inline asm
+ ld.local.f32 %f295, [%rd52];
+ add.f32 %f776, %f776, %f295;
+ ld.global.u32 %r356, [samples];
+ add.s32 %r359, %r359, 1;
+ setp.lt.s32 %p41, %r359, %r356;
+ @%p41 bra BB0_7;
+
+BB0_54:
+ add.s32 %r357, %r357, 1;
+ setp.lt.s32 %p42, %r357, %r356;
+ @%p42 bra BB0_5;
+
+BB0_55:
+ setp.eq.s32 %p43, %r356, 0;
+ mov.f32 %f778, 0f3F800000;
+ @%p43 bra BB0_57;
+
+ mul.lo.s32 %r229, %r356, %r356;
+ cvt.rn.f32.s32 %f297, %r229;
+ div.rn.f32 %f778, %f776, %f297;
+
+BB0_57:
+ ld.global.f32 %f298, [directColor];
+ mul.f32 %f299, %f778, %f298;
+ ld.global.f32 %f300, [directColor+4];
+ mul.f32 %f301, %f778, %f300;
+ ld.global.f32 %f302, [directColor+8];
+ mul.f32 %f303, %f778, %f302;
+ cvt.sat.f32.f32 %f304, %f10;
+ mul.f32 %f70, %f299, %f304;
+ mul.f32 %f71, %f301, %f304;
+ mul.f32 %f72, %f303, %f304;
+ mul.f32 %f73, %f299, 0f3E800000;
+ mul.f32 %f74, %f301, 0f3E800000;
+ mul.f32 %f75, %f303, 0f3E800000;
+ ld.global.u32 %r385, [imageEnabled];
+ and.b32 %r230, %r385, 8;
+ setp.eq.s32 %p44, %r230, 0;
+ @%p44 bra BB0_70;
+
+ cvt.u64.u32 %rd55, %r2;
+ cvt.u64.u32 %rd56, %r3;
+ mov.u64 %rd59, image_Mask;
+ cvta.global.u64 %rd54, %rd59;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r99, %r99, %rd55, %rd56, %rd25, %rd25);
+ // inline asm
+ abs.f32 %f77, %f778;
+ setp.lt.f32 %p45, %f77, 0f00800000;
+ mul.f32 %f310, %f77, 0f4B800000;
+ selp.f32 %f311, 0fC3170000, 0fC2FE0000, %p45;
+ selp.f32 %f312, %f310, %f77, %p45;
+ mov.b32 %r233, %f312;
+ and.b32 %r234, %r233, 8388607;
+ or.b32 %r235, %r234, 1065353216;
+ mov.b32 %f313, %r235;
+ shr.u32 %r236, %r233, 23;
+ cvt.rn.f32.u32 %f314, %r236;
+ add.f32 %f315, %f311, %f314;
+ setp.gt.f32 %p46, %f313, 0f3FB504F3;
+ mul.f32 %f316, %f313, 0f3F000000;
+ add.f32 %f317, %f315, 0f3F800000;
+ selp.f32 %f318, %f316, %f313, %p46;
+ selp.f32 %f319, %f317, %f315, %p46;
+ add.f32 %f320, %f318, 0fBF800000;
+ add.f32 %f306, %f318, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f305,%f306;
+ // inline asm
+ add.f32 %f321, %f320, %f320;
+ mul.f32 %f322, %f305, %f321;
+ mul.f32 %f323, %f322, %f322;
+ mov.f32 %f324, 0f3C4CAF63;
+ mov.f32 %f325, 0f3B18F0FE;
+ fma.rn.f32 %f326, %f325, %f323, %f324;
+ mov.f32 %f327, 0f3DAAAABD;
+ fma.rn.f32 %f328, %f326, %f323, %f327;
+ mul.rn.f32 %f329, %f328, %f323;
+ mul.rn.f32 %f330, %f329, %f322;
+ sub.f32 %f331, %f320, %f322;
+ neg.f32 %f332, %f322;
+ add.f32 %f333, %f331, %f331;
+ fma.rn.f32 %f334, %f332, %f320, %f333;
+ mul.rn.f32 %f335, %f305, %f334;
+ add.f32 %f336, %f330, %f322;
+ sub.f32 %f337, %f322, %f336;
+ add.f32 %f338, %f330, %f337;
+ add.f32 %f339, %f335, %f338;
+ add.f32 %f340, %f336, %f339;
+ sub.f32 %f341, %f336, %f340;
+ add.f32 %f342, %f339, %f341;
+ mov.f32 %f343, 0f3F317200;
+ mul.rn.f32 %f344, %f319, %f343;
+ mov.f32 %f345, 0f35BFBE8E;
+ mul.rn.f32 %f346, %f319, %f345;
+ add.f32 %f347, %f344, %f340;
+ sub.f32 %f348, %f344, %f347;
+ add.f32 %f349, %f340, %f348;
+ add.f32 %f350, %f342, %f349;
+ add.f32 %f351, %f346, %f350;
+ add.f32 %f352, %f347, %f351;
+ sub.f32 %f353, %f347, %f352;
+ add.f32 %f354, %f351, %f353;
+ mov.f32 %f355, 0f3EE8BA2E;
+ mul.rn.f32 %f356, %f355, %f352;
+ neg.f32 %f357, %f356;
+ fma.rn.f32 %f358, %f355, %f352, %f357;
+ fma.rn.f32 %f359, %f355, %f354, %f358;
+ mov.f32 %f360, 0f00000000;
+ fma.rn.f32 %f361, %f360, %f352, %f359;
+ add.rn.f32 %f362, %f356, %f361;
+ neg.f32 %f363, %f362;
+ add.rn.f32 %f364, %f356, %f363;
+ add.rn.f32 %f365, %f364, %f361;
+ mov.b32 %r237, %f362;
+ setp.eq.s32 %p47, %r237, 1118925336;
+ add.s32 %r238, %r237, -1;
+ mov.b32 %f366, %r238;
+ add.f32 %f367, %f365, 0f37000000;
+ selp.f32 %f368, %f366, %f362, %p47;
+ selp.f32 %f78, %f367, %f365, %p47;
+ mul.f32 %f369, %f368, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f370, %f369;
+ mov.f32 %f371, 0fBF317200;
+ fma.rn.f32 %f372, %f370, %f371, %f368;
+ mov.f32 %f373, 0fB5BFBE8E;
+ fma.rn.f32 %f374, %f370, %f373, %f372;
+ mul.f32 %f375, %f374, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f376, %f375;
+ add.f32 %f377, %f370, 0f00000000;
+ ex2.approx.f32 %f378, %f377;
+ mul.f32 %f379, %f376, %f378;
+ setp.lt.f32 %p48, %f368, 0fC2D20000;
+ selp.f32 %f380, 0f00000000, %f379, %p48;
+ setp.gt.f32 %p49, %f368, 0f42D20000;
+ selp.f32 %f779, 0f7F800000, %f380, %p49;
+ setp.eq.f32 %p50, %f779, 0f7F800000;
+ @%p50 bra BB0_60;
+
+ fma.rn.f32 %f779, %f779, %f78, %f779;
+
+BB0_60:
+ mov.f32 %f751, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f750, %f751;
+ fma.rn.f32 %f749, %f750, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f748, %f749;
+ setp.lt.f32 %p51, %f778, 0f00000000;
+ setp.eq.f32 %p52, %f748, 0f3F800000;
+ and.pred %p1, %p51, %p52;
+ mov.b32 %r239, %f779;
+ xor.b32 %r240, %r239, -2147483648;
+ mov.b32 %f381, %r240;
+ selp.f32 %f781, %f381, %f779, %p1;
+ setp.eq.f32 %p53, %f778, 0f00000000;
+ @%p53 bra BB0_63;
+ bra.uni BB0_61;
+
+BB0_63:
+ add.f32 %f384, %f778, %f778;
+ selp.f32 %f781, %f384, 0f00000000, %p52;
+ bra.uni BB0_64;
+
+BB0_128:
+ mov.u64 %rd200, image_HDR;
+ cvta.global.u64 %rd195, %rd200;
+ mov.u32 %r326, 8;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r99, %r326, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f688, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f688;}
+
+ // inline asm
+ mov.u16 %rs99, 0;
+ st.v4.u16 [%rd194], {%rs98, %rs98, %rs98, %rs99};
+
+BB0_129:
+ ld.global.u32 %r327, [additive];
+ setp.eq.s32 %p120, %r327, 0;
+ @%p120 bra BB0_131;
+
+ mov.u64 %rd213, image_RNM0;
+ cvta.global.u64 %rd202, %rd213;
+ mov.u32 %r331, 8;
+ // inline asm
+ call (%rd201), _rt_buffer_get_64, (%rd202, %r99, %r331, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs106, %rs107, %rs108, %rs109}, [%rd201];
+ // inline asm
+ { cvt.f32.f16 %f689, %rs106;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f690, %rs107;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f691, %rs108;}
+
+ // inline asm
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd202, %r99, %r331, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f692, %f689, 0f00000000;
+ add.f32 %f693, %f690, 0f00000000;
+ add.f32 %f694, %f691, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f694;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f693;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs103, %f692;}
+
+ // inline asm
+ mov.u16 %rs110, 0;
+ st.v4.u16 [%rd207], {%rs103, %rs104, %rs105, %rs110};
+ bra.uni BB0_132;
+
+BB0_131:
+ mov.u64 %rd220, image_RNM0;
+ cvta.global.u64 %rd215, %rd220;
+ mov.u32 %r333, 8;
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd215, %r99, %r333, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f695, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f695;}
+
+ // inline asm
+ mov.u16 %rs112, 0;
+ st.v4.u16 [%rd214], {%rs111, %rs111, %rs111, %rs112};
+
+BB0_132:
+ ld.global.u32 %r334, [additive];
+ setp.eq.s32 %p121, %r334, 0;
+ @%p121 bra BB0_134;
+
+ mov.u64 %rd233, image_RNM1;
+ cvta.global.u64 %rd222, %rd233;
+ mov.u32 %r338, 8;
+ // inline asm
+ call (%rd221), _rt_buffer_get_64, (%rd222, %r99, %r338, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs119, %rs120, %rs121, %rs122}, [%rd221];
+ // inline asm
+ { cvt.f32.f16 %f696, %rs119;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f697, %rs120;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f698, %rs121;}
+
+ // inline asm
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd222, %r99, %r338, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f699, %f696, 0f00000000;
+ add.f32 %f700, %f697, 0f00000000;
+ add.f32 %f701, %f698, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs118, %f701;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f700;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f699;}
+
+ // inline asm
+ mov.u16 %rs123, 0;
+ st.v4.u16 [%rd227], {%rs116, %rs117, %rs118, %rs123};
+ bra.uni BB0_135;
+
+BB0_134:
+ mov.u64 %rd240, image_RNM1;
+ cvta.global.u64 %rd235, %rd240;
+ mov.u32 %r340, 8;
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd235, %r99, %r340, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f702, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs124, %f702;}
+
+ // inline asm
+ mov.u16 %rs125, 0;
+ st.v4.u16 [%rd234], {%rs124, %rs124, %rs124, %rs125};
+
+BB0_135:
+ ld.global.u32 %r341, [additive];
+ setp.eq.s32 %p122, %r341, 0;
+ @%p122 bra BB0_137;
+
+ mov.u64 %rd253, image_RNM2;
+ cvta.global.u64 %rd242, %rd253;
+ mov.u32 %r345, 8;
+ // inline asm
+ call (%rd241), _rt_buffer_get_64, (%rd242, %r99, %r345, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs132, %rs133, %rs134, %rs135}, [%rd241];
+ // inline asm
+ { cvt.f32.f16 %f703, %rs132;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f704, %rs133;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f705, %rs134;}
+
+ // inline asm
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd242, %r99, %r345, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f706, %f703, 0f00000000;
+ add.f32 %f707, %f704, 0f00000000;
+ add.f32 %f708, %f705, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs131, %f708;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f707;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f706;}
+
+ // inline asm
+ mov.u16 %rs136, 0;
+ st.v4.u16 [%rd247], {%rs129, %rs130, %rs131, %rs136};
+ bra.uni BB0_138;
+
+BB0_137:
+ mov.u64 %rd260, image_RNM2;
+ cvta.global.u64 %rd255, %rd260;
+ mov.u32 %r347, 8;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r99, %r347, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f709, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs137, %f709;}
+
+ // inline asm
+ mov.u16 %rs138, 0;
+ st.v4.u16 [%rd254], {%rs137, %rs137, %rs137, %rs138};
+
+BB0_138:
+ ld.global.u32 %r348, [additive];
+ setp.eq.s32 %p123, %r348, 0;
+ @%p123 bra BB0_140;
+
+ mov.u64 %rd273, image_RNM3;
+ cvta.global.u64 %rd262, %rd273;
+ mov.u32 %r352, 8;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r99, %r352, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs145, %rs146, %rs147, %rs148}, [%rd261];
+ // inline asm
+ { cvt.f32.f16 %f710, %rs145;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f711, %rs146;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f712, %rs147;}
+
+ // inline asm
+ // inline asm
+ call (%rd267), _rt_buffer_get_64, (%rd262, %r99, %r352, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f713, %f710, 0f00000000;
+ add.f32 %f714, %f711, 0f00000000;
+ add.f32 %f715, %f712, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs144, %f715;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f714;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs142, %f713;}
+
+ // inline asm
+ mov.u16 %rs149, 0;
+ st.v4.u16 [%rd267], {%rs142, %rs143, %rs144, %rs149};
+ bra.uni BB0_141;
+
+BB0_140:
+ mov.u64 %rd280, image_RNM3;
+ cvta.global.u64 %rd275, %rd280;
+ mov.u32 %r354, 8;
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd275, %r99, %r354, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f716, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f716;}
+
+ // inline asm
+ mov.u16 %rs151, 0;
+ st.v4.u16 [%rd274], {%rs150, %rs150, %rs150, %rs151};
+ bra.uni BB0_141;
+
+BB0_61:
+ setp.geu.f32 %p54, %f778, 0f00000000;
+ @%p54 bra BB0_64;
+
+ mov.f32 %f755, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f383, %f755;
+ setp.neu.f32 %p55, %f383, 0f3EE8BA2E;
+ selp.f32 %f781, 0f7FFFFFFF, %f781, %p55;
+
+BB0_64:
+ abs.f32 %f752, %f778;
+ add.f32 %f385, %f752, 0f3EE8BA2E;
+ mov.b32 %r241, %f385;
+ setp.lt.s32 %p57, %r241, 2139095040;
+ @%p57 bra BB0_69;
+
+ abs.f32 %f753, %f778;
+ setp.gtu.f32 %p58, %f753, 0f7F800000;
+ @%p58 bra BB0_68;
+ bra.uni BB0_66;
+
+BB0_68:
+ add.f32 %f781, %f778, 0f3EE8BA2E;
+ bra.uni BB0_69;
+
+BB0_66:
+ abs.f32 %f754, %f778;
+ setp.neu.f32 %p59, %f754, 0f7F800000;
+ @%p59 bra BB0_69;
+
+ selp.f32 %f781, 0fFF800000, 0f7F800000, %p1;
+
+BB0_69:
+ mul.f32 %f386, %f781, 0f437F0000;
+ setp.eq.f32 %p60, %f778, 0f3F800000;
+ selp.f32 %f387, 0f437F0000, %f386, %p60;
+ cvt.rzi.u32.f32 %r242, %f387;
+ cvt.u16.u32 %rs14, %r242;
+ mov.u16 %rs15, 255;
+ st.v2.u8 [%rd53], {%rs14, %rs15};
+ ld.global.u32 %r385, [imageEnabled];
+
+BB0_70:
+ and.b32 %r243, %r385, 1;
+ setp.eq.b32 %p61, %r243, 1;
+ @!%p61 bra BB0_105;
+ bra.uni BB0_71;
+
+BB0_71:
+ abs.f32 %f90, %f70;
+ setp.lt.f32 %p62, %f90, 0f00800000;
+ mul.f32 %f393, %f90, 0f4B800000;
+ selp.f32 %f394, 0fC3170000, 0fC2FE0000, %p62;
+ selp.f32 %f395, %f393, %f90, %p62;
+ mov.b32 %r244, %f395;
+ and.b32 %r245, %r244, 8388607;
+ or.b32 %r246, %r245, 1065353216;
+ mov.b32 %f396, %r246;
+ shr.u32 %r247, %r244, 23;
+ cvt.rn.f32.u32 %f397, %r247;
+ add.f32 %f398, %f394, %f397;
+ setp.gt.f32 %p63, %f396, 0f3FB504F3;
+ mul.f32 %f399, %f396, 0f3F000000;
+ add.f32 %f400, %f398, 0f3F800000;
+ selp.f32 %f401, %f399, %f396, %p63;
+ selp.f32 %f402, %f400, %f398, %p63;
+ add.f32 %f403, %f401, 0fBF800000;
+ add.f32 %f389, %f401, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f388,%f389;
+ // inline asm
+ add.f32 %f404, %f403, %f403;
+ mul.f32 %f405, %f388, %f404;
+ mul.f32 %f406, %f405, %f405;
+ mov.f32 %f407, 0f3C4CAF63;
+ mov.f32 %f408, 0f3B18F0FE;
+ fma.rn.f32 %f409, %f408, %f406, %f407;
+ mov.f32 %f410, 0f3DAAAABD;
+ fma.rn.f32 %f411, %f409, %f406, %f410;
+ mul.rn.f32 %f412, %f411, %f406;
+ mul.rn.f32 %f413, %f412, %f405;
+ sub.f32 %f414, %f403, %f405;
+ neg.f32 %f415, %f405;
+ add.f32 %f416, %f414, %f414;
+ fma.rn.f32 %f417, %f415, %f403, %f416;
+ mul.rn.f32 %f418, %f388, %f417;
+ add.f32 %f419, %f413, %f405;
+ sub.f32 %f420, %f405, %f419;
+ add.f32 %f421, %f413, %f420;
+ add.f32 %f422, %f418, %f421;
+ add.f32 %f423, %f419, %f422;
+ sub.f32 %f424, %f419, %f423;
+ add.f32 %f425, %f422, %f424;
+ mov.f32 %f426, 0f3F317200;
+ mul.rn.f32 %f427, %f402, %f426;
+ mov.f32 %f428, 0f35BFBE8E;
+ mul.rn.f32 %f429, %f402, %f428;
+ add.f32 %f430, %f427, %f423;
+ sub.f32 %f431, %f427, %f430;
+ add.f32 %f432, %f423, %f431;
+ add.f32 %f433, %f425, %f432;
+ add.f32 %f434, %f429, %f433;
+ add.f32 %f435, %f430, %f434;
+ sub.f32 %f436, %f430, %f435;
+ add.f32 %f437, %f434, %f436;
+ mov.f32 %f438, 0f3EE66666;
+ mul.rn.f32 %f439, %f438, %f435;
+ neg.f32 %f440, %f439;
+ fma.rn.f32 %f441, %f438, %f435, %f440;
+ fma.rn.f32 %f442, %f438, %f437, %f441;
+ mov.f32 %f443, 0f00000000;
+ fma.rn.f32 %f444, %f443, %f435, %f442;
+ add.rn.f32 %f445, %f439, %f444;
+ neg.f32 %f446, %f445;
+ add.rn.f32 %f447, %f439, %f446;
+ add.rn.f32 %f448, %f447, %f444;
+ mov.b32 %r248, %f445;
+ setp.eq.s32 %p64, %r248, 1118925336;
+ add.s32 %r249, %r248, -1;
+ mov.b32 %f449, %r249;
+ add.f32 %f450, %f448, 0f37000000;
+ selp.f32 %f451, %f449, %f445, %p64;
+ selp.f32 %f91, %f450, %f448, %p64;
+ mul.f32 %f452, %f451, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f453, %f452;
+ mov.f32 %f454, 0fBF317200;
+ fma.rn.f32 %f455, %f453, %f454, %f451;
+ mov.f32 %f456, 0fB5BFBE8E;
+ fma.rn.f32 %f457, %f453, %f456, %f455;
+ mul.f32 %f458, %f457, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f459, %f458;
+ add.f32 %f460, %f453, 0f00000000;
+ ex2.approx.f32 %f461, %f460;
+ mul.f32 %f462, %f459, %f461;
+ setp.lt.f32 %p65, %f451, 0fC2D20000;
+ selp.f32 %f463, 0f00000000, %f462, %p65;
+ setp.gt.f32 %p66, %f451, 0f42D20000;
+ selp.f32 %f782, 0f7F800000, %f463, %p66;
+ setp.eq.f32 %p67, %f782, 0f7F800000;
+ @%p67 bra BB0_73;
+
+ fma.rn.f32 %f782, %f782, %f91, %f782;
+
+BB0_73:
+ mov.f32 %f720, 0f3E666666;
+ cvt.rzi.f32.f32 %f719, %f720;
+ fma.rn.f32 %f718, %f719, 0fC0000000, 0f3EE66666;
+ abs.f32 %f717, %f718;
+ setp.lt.f32 %p68, %f70, 0f00000000;
+ setp.eq.f32 %p69, %f717, 0f3F800000;
+ and.pred %p2, %p68, %p69;
+ mov.b32 %r250, %f782;
+ xor.b32 %r251, %r250, -2147483648;
+ mov.b32 %f464, %r251;
+ selp.f32 %f784, %f464, %f782, %p2;
+ setp.eq.f32 %p70, %f70, 0f00000000;
+ @%p70 bra BB0_76;
+ bra.uni BB0_74;
+
+BB0_76:
+ add.f32 %f467, %f70, %f70;
+ selp.f32 %f784, %f467, 0f00000000, %p69;
+ bra.uni BB0_77;
+
+BB0_74:
+ setp.geu.f32 %p71, %f70, 0f00000000;
+ @%p71 bra BB0_77;
+
+ mov.f32 %f744, 0f3EE66666;
+ cvt.rzi.f32.f32 %f466, %f744;
+ setp.neu.f32 %p72, %f466, 0f3EE66666;
+ selp.f32 %f784, 0f7FFFFFFF, %f784, %p72;
+
+BB0_77:
+ abs.f32 %f721, %f70;
+ add.f32 %f468, %f721, 0f3EE66666;
+ mov.b32 %r252, %f468;
+ setp.lt.s32 %p74, %r252, 2139095040;
+ @%p74 bra BB0_82;
+
+ abs.f32 %f742, %f70;
+ setp.gtu.f32 %p75, %f742, 0f7F800000;
+ @%p75 bra BB0_81;
+ bra.uni BB0_79;
+
+BB0_81:
+ add.f32 %f784, %f70, 0f3EE66666;
+ bra.uni BB0_82;
+
+BB0_79:
+ abs.f32 %f743, %f70;
+ setp.neu.f32 %p76, %f743, 0f7F800000;
+ @%p76 bra BB0_82;
+
+ selp.f32 %f784, 0fFF800000, 0f7F800000, %p2;
+
+BB0_82:
+ mov.f32 %f730, 0fB5BFBE8E;
+ mov.f32 %f729, 0fBF317200;
+ mov.f32 %f728, 0f00000000;
+ mov.f32 %f727, 0f35BFBE8E;
+ mov.f32 %f726, 0f3F317200;
+ mov.f32 %f725, 0f3DAAAABD;
+ mov.f32 %f724, 0f3C4CAF63;
+ mov.f32 %f723, 0f3B18F0FE;
+ mov.f32 %f722, 0f3EE66666;
+ setp.eq.f32 %p77, %f70, 0f3F800000;
+ selp.f32 %f102, 0f3F800000, %f784, %p77;
+ abs.f32 %f103, %f71;
+ setp.lt.f32 %p78, %f103, 0f00800000;
+ mul.f32 %f471, %f103, 0f4B800000;
+ selp.f32 %f472, 0fC3170000, 0fC2FE0000, %p78;
+ selp.f32 %f473, %f471, %f103, %p78;
+ mov.b32 %r253, %f473;
+ and.b32 %r254, %r253, 8388607;
+ or.b32 %r255, %r254, 1065353216;
+ mov.b32 %f474, %r255;
+ shr.u32 %r256, %r253, 23;
+ cvt.rn.f32.u32 %f475, %r256;
+ add.f32 %f476, %f472, %f475;
+ setp.gt.f32 %p79, %f474, 0f3FB504F3;
+ mul.f32 %f477, %f474, 0f3F000000;
+ add.f32 %f478, %f476, 0f3F800000;
+ selp.f32 %f479, %f477, %f474, %p79;
+ selp.f32 %f480, %f478, %f476, %p79;
+ add.f32 %f481, %f479, 0fBF800000;
+ add.f32 %f470, %f479, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f469,%f470;
+ // inline asm
+ add.f32 %f482, %f481, %f481;
+ mul.f32 %f483, %f469, %f482;
+ mul.f32 %f484, %f483, %f483;
+ fma.rn.f32 %f487, %f723, %f484, %f724;
+ fma.rn.f32 %f489, %f487, %f484, %f725;
+ mul.rn.f32 %f490, %f489, %f484;
+ mul.rn.f32 %f491, %f490, %f483;
+ sub.f32 %f492, %f481, %f483;
+ neg.f32 %f493, %f483;
+ add.f32 %f494, %f492, %f492;
+ fma.rn.f32 %f495, %f493, %f481, %f494;
+ mul.rn.f32 %f496, %f469, %f495;
+ add.f32 %f497, %f491, %f483;
+ sub.f32 %f498, %f483, %f497;
+ add.f32 %f499, %f491, %f498;
+ add.f32 %f500, %f496, %f499;
+ add.f32 %f501, %f497, %f500;
+ sub.f32 %f502, %f497, %f501;
+ add.f32 %f503, %f500, %f502;
+ mul.rn.f32 %f505, %f480, %f726;
+ mul.rn.f32 %f507, %f480, %f727;
+ add.f32 %f508, %f505, %f501;
+ sub.f32 %f509, %f505, %f508;
+ add.f32 %f510, %f501, %f509;
+ add.f32 %f511, %f503, %f510;
+ add.f32 %f512, %f507, %f511;
+ add.f32 %f513, %f508, %f512;
+ sub.f32 %f514, %f508, %f513;
+ add.f32 %f515, %f512, %f514;
+ mul.rn.f32 %f517, %f722, %f513;
+ neg.f32 %f518, %f517;
+ fma.rn.f32 %f519, %f722, %f513, %f518;
+ fma.rn.f32 %f520, %f722, %f515, %f519;
+ fma.rn.f32 %f522, %f728, %f513, %f520;
+ add.rn.f32 %f523, %f517, %f522;
+ neg.f32 %f524, %f523;
+ add.rn.f32 %f525, %f517, %f524;
+ add.rn.f32 %f526, %f525, %f522;
+ mov.b32 %r257, %f523;
+ setp.eq.s32 %p80, %r257, 1118925336;
+ add.s32 %r258, %r257, -1;
+ mov.b32 %f527, %r258;
+ add.f32 %f528, %f526, 0f37000000;
+ selp.f32 %f529, %f527, %f523, %p80;
+ selp.f32 %f104, %f528, %f526, %p80;
+ mul.f32 %f530, %f529, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f531, %f530;
+ fma.rn.f32 %f533, %f531, %f729, %f529;
+ fma.rn.f32 %f535, %f531, %f730, %f533;
+ mul.f32 %f536, %f535, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f537, %f536;
+ add.f32 %f538, %f531, 0f00000000;
+ ex2.approx.f32 %f539, %f538;
+ mul.f32 %f540, %f537, %f539;
+ setp.lt.f32 %p81, %f529, 0fC2D20000;
+ selp.f32 %f541, 0f00000000, %f540, %p81;
+ setp.gt.f32 %p82, %f529, 0f42D20000;
+ selp.f32 %f785, 0f7F800000, %f541, %p82;
+ setp.eq.f32 %p83, %f785, 0f7F800000;
+ @%p83 bra BB0_84;
+
+ fma.rn.f32 %f785, %f785, %f104, %f785;
+
+BB0_84:
+ setp.lt.f32 %p84, %f71, 0f00000000;
+ and.pred %p3, %p84, %p69;
+ mov.b32 %r259, %f785;
+ xor.b32 %r260, %r259, -2147483648;
+ mov.b32 %f542, %r260;
+ selp.f32 %f787, %f542, %f785, %p3;
+ setp.eq.f32 %p86, %f71, 0f00000000;
+ @%p86 bra BB0_87;
+ bra.uni BB0_85;
+
+BB0_87:
+ add.f32 %f545, %f71, %f71;
+ selp.f32 %f787, %f545, 0f00000000, %p69;
+ bra.uni BB0_88;
+
+BB0_85:
+ setp.geu.f32 %p87, %f71, 0f00000000;
+ @%p87 bra BB0_88;
+
+ mov.f32 %f741, 0f3EE66666;
+ cvt.rzi.f32.f32 %f544, %f741;
+ setp.neu.f32 %p88, %f544, 0f3EE66666;
+ selp.f32 %f787, 0f7FFFFFFF, %f787, %p88;
+
+BB0_88:
+ abs.f32 %f745, %f71;
+ add.f32 %f546, %f745, 0f3EE66666;
+ mov.b32 %r261, %f546;
+ setp.lt.s32 %p90, %r261, 2139095040;
+ @%p90 bra BB0_93;
+
+ abs.f32 %f746, %f71;
+ setp.gtu.f32 %p91, %f746, 0f7F800000;
+ @%p91 bra BB0_92;
+ bra.uni BB0_90;
+
+BB0_92:
+ add.f32 %f787, %f71, 0f3EE66666;
+ bra.uni BB0_93;
+
+BB0_90:
+ abs.f32 %f747, %f71;
+ setp.neu.f32 %p92, %f747, 0f7F800000;
+ @%p92 bra BB0_93;
+
+ selp.f32 %f787, 0fFF800000, 0f7F800000, %p3;
+
+BB0_93:
+ mov.f32 %f739, 0fB5BFBE8E;
+ mov.f32 %f738, 0fBF317200;
+ mov.f32 %f737, 0f00000000;
+ mov.f32 %f736, 0f35BFBE8E;
+ mov.f32 %f735, 0f3F317200;
+ mov.f32 %f734, 0f3DAAAABD;
+ mov.f32 %f733, 0f3C4CAF63;
+ mov.f32 %f732, 0f3B18F0FE;
+ mov.f32 %f731, 0f3EE66666;
+ setp.eq.f32 %p93, %f71, 0f3F800000;
+ selp.f32 %f115, 0f3F800000, %f787, %p93;
+ abs.f32 %f116, %f72;
+ setp.lt.f32 %p94, %f116, 0f00800000;
+ mul.f32 %f549, %f116, 0f4B800000;
+ selp.f32 %f550, 0fC3170000, 0fC2FE0000, %p94;
+ selp.f32 %f551, %f549, %f116, %p94;
+ mov.b32 %r262, %f551;
+ and.b32 %r263, %r262, 8388607;
+ or.b32 %r264, %r263, 1065353216;
+ mov.b32 %f552, %r264;
+ shr.u32 %r265, %r262, 23;
+ cvt.rn.f32.u32 %f553, %r265;
+ add.f32 %f554, %f550, %f553;
+ setp.gt.f32 %p95, %f552, 0f3FB504F3;
+ mul.f32 %f555, %f552, 0f3F000000;
+ add.f32 %f556, %f554, 0f3F800000;
+ selp.f32 %f557, %f555, %f552, %p95;
+ selp.f32 %f558, %f556, %f554, %p95;
+ add.f32 %f559, %f557, 0fBF800000;
+ add.f32 %f548, %f557, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f547,%f548;
+ // inline asm
+ add.f32 %f560, %f559, %f559;
+ mul.f32 %f561, %f547, %f560;
+ mul.f32 %f562, %f561, %f561;
+ fma.rn.f32 %f565, %f732, %f562, %f733;
+ fma.rn.f32 %f567, %f565, %f562, %f734;
+ mul.rn.f32 %f568, %f567, %f562;
+ mul.rn.f32 %f569, %f568, %f561;
+ sub.f32 %f570, %f559, %f561;
+ neg.f32 %f571, %f561;
+ add.f32 %f572, %f570, %f570;
+ fma.rn.f32 %f573, %f571, %f559, %f572;
+ mul.rn.f32 %f574, %f547, %f573;
+ add.f32 %f575, %f569, %f561;
+ sub.f32 %f576, %f561, %f575;
+ add.f32 %f577, %f569, %f576;
+ add.f32 %f578, %f574, %f577;
+ add.f32 %f579, %f575, %f578;
+ sub.f32 %f580, %f575, %f579;
+ add.f32 %f581, %f578, %f580;
+ mul.rn.f32 %f583, %f558, %f735;
+ mul.rn.f32 %f585, %f558, %f736;
+ add.f32 %f586, %f583, %f579;
+ sub.f32 %f587, %f583, %f586;
+ add.f32 %f588, %f579, %f587;
+ add.f32 %f589, %f581, %f588;
+ add.f32 %f590, %f585, %f589;
+ add.f32 %f591, %f586, %f590;
+ sub.f32 %f592, %f586, %f591;
+ add.f32 %f593, %f590, %f592;
+ mul.rn.f32 %f595, %f731, %f591;
+ neg.f32 %f596, %f595;
+ fma.rn.f32 %f597, %f731, %f591, %f596;
+ fma.rn.f32 %f598, %f731, %f593, %f597;
+ fma.rn.f32 %f600, %f737, %f591, %f598;
+ add.rn.f32 %f601, %f595, %f600;
+ neg.f32 %f602, %f601;
+ add.rn.f32 %f603, %f595, %f602;
+ add.rn.f32 %f604, %f603, %f600;
+ mov.b32 %r266, %f601;
+ setp.eq.s32 %p96, %r266, 1118925336;
+ add.s32 %r267, %r266, -1;
+ mov.b32 %f605, %r267;
+ add.f32 %f606, %f604, 0f37000000;
+ selp.f32 %f607, %f605, %f601, %p96;
+ selp.f32 %f117, %f606, %f604, %p96;
+ mul.f32 %f608, %f607, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f609, %f608;
+ fma.rn.f32 %f611, %f609, %f738, %f607;
+ fma.rn.f32 %f613, %f609, %f739, %f611;
+ mul.f32 %f614, %f613, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f615, %f614;
+ add.f32 %f616, %f609, 0f00000000;
+ ex2.approx.f32 %f617, %f616;
+ mul.f32 %f618, %f615, %f617;
+ setp.lt.f32 %p97, %f607, 0fC2D20000;
+ selp.f32 %f619, 0f00000000, %f618, %p97;
+ setp.gt.f32 %p98, %f607, 0f42D20000;
+ selp.f32 %f788, 0f7F800000, %f619, %p98;
+ setp.eq.f32 %p99, %f788, 0f7F800000;
+ @%p99 bra BB0_95;
+
+ fma.rn.f32 %f788, %f788, %f117, %f788;
+
+BB0_95:
+ setp.lt.f32 %p100, %f72, 0f00000000;
+ and.pred %p4, %p100, %p69;
+ mov.b32 %r268, %f788;
+ xor.b32 %r269, %r268, -2147483648;
+ mov.b32 %f620, %r269;
+ selp.f32 %f790, %f620, %f788, %p4;
+ setp.eq.f32 %p102, %f72, 0f00000000;
+ @%p102 bra BB0_98;
+ bra.uni BB0_96;
+
+BB0_98:
+ add.f32 %f623, %f72, %f72;
+ selp.f32 %f790, %f623, 0f00000000, %p69;
+ bra.uni BB0_99;
+
+BB0_96:
+ setp.geu.f32 %p103, %f72, 0f00000000;
+ @%p103 bra BB0_99;
+
+ mov.f32 %f740, 0f3EE66666;
+ cvt.rzi.f32.f32 %f622, %f740;
+ setp.neu.f32 %p104, %f622, 0f3EE66666;
+ selp.f32 %f790, 0f7FFFFFFF, %f790, %p104;
+
+BB0_99:
+ abs.f32 %f756, %f72;
+ add.f32 %f624, %f756, 0f3EE66666;
+ mov.b32 %r270, %f624;
+ setp.lt.s32 %p106, %r270, 2139095040;
+ @%p106 bra BB0_104;
+
+ abs.f32 %f757, %f72;
+ setp.gtu.f32 %p107, %f757, 0f7F800000;
+ @%p107 bra BB0_103;
+ bra.uni BB0_101;
+
+BB0_103:
+ add.f32 %f790, %f72, 0f3EE66666;
+ bra.uni BB0_104;
+
+BB0_101:
+ abs.f32 %f758, %f72;
+ setp.neu.f32 %p108, %f758, 0f7F800000;
+ @%p108 bra BB0_104;
+
+ selp.f32 %f790, 0fFF800000, 0f7F800000, %p4;
+
+BB0_104:
+ mov.u32 %r355, 4;
+ setp.eq.f32 %p109, %f72, 0f3F800000;
+ selp.f32 %f625, 0f3F800000, %f790, %p109;
+ cvt.u64.u32 %rd63, %r3;
+ cvt.u64.u32 %rd62, %r2;
+ mov.u64 %rd66, image;
+ cvta.global.u64 %rd61, %rd66;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r99, %r355, %rd62, %rd63, %rd25, %rd25);
+ // inline asm
+ cvt.sat.f32.f32 %f626, %f625;
+ mul.f32 %f627, %f626, 0f437FFD71;
+ cvt.rzi.u32.f32 %r273, %f627;
+ cvt.sat.f32.f32 %f628, %f115;
+ mul.f32 %f629, %f628, 0f437FFD71;
+ cvt.rzi.u32.f32 %r274, %f629;
+ cvt.sat.f32.f32 %f630, %f102;
+ mul.f32 %f631, %f630, 0f437FFD71;
+ cvt.rzi.u32.f32 %r275, %f631;
+ cvt.u16.u32 %rs16, %r273;
+ cvt.u16.u32 %rs17, %r275;
+ cvt.u16.u32 %rs18, %r274;
+ mov.u16 %rs19, 255;
+ st.v4.u8 [%rd60], {%rs16, %rs18, %rs17, %rs19};
+ ld.global.u32 %r385, [imageEnabled];
+
+BB0_105:
+ cvt.u64.u32 %rd16, %r2;
+ cvt.u64.u32 %rd17, %r3;
+ and.b32 %r276, %r385, 4;
+ setp.eq.s32 %p110, %r276, 0;
+ @%p110 bra BB0_109;
+
+ ld.global.u32 %r277, [additive];
+ setp.eq.s32 %p111, %r277, 0;
+ mov.f32 %f632, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f632;}
+
+ // inline asm
+ @%p111 bra BB0_108;
+
+ mov.u64 %rd79, image_HDR;
+ cvta.global.u64 %rd68, %rd79;
+ mov.u32 %r281, 8;
+ // inline asm
+ call (%rd67), _rt_buffer_get_64, (%rd68, %r99, %r281, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs27, %rs28, %rs29, %rs30}, [%rd67];
+ // inline asm
+ { cvt.f32.f16 %f633, %rs27;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f634, %rs28;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f635, %rs29;}
+
+ // inline asm
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd68, %r99, %r281, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f636, %f70, %f633;
+ add.f32 %f637, %f71, %f634;
+ add.f32 %f638, %f72, %f635;
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f638;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f637;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f636;}
+
+ // inline asm
+ st.v4.u16 [%rd73], {%rs24, %rs25, %rs26, %rs20};
+ bra.uni BB0_109;
+
+BB0_108:
+ mov.u64 %rd86, image_HDR;
+ cvta.global.u64 %rd81, %rd86;
+ mov.u32 %r283, 8;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r99, %r283, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f72;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f71;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f70;}
+
+ // inline asm
+ st.v4.u16 [%rd80], {%rs31, %rs32, %rs33, %rs20};
+
+BB0_109:
+ ld.global.u32 %r284, [additive];
+ setp.eq.s32 %p112, %r284, 0;
+ mov.f32 %f642, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f642;}
+
+ // inline asm
+ @%p112 bra BB0_111;
+
+ mov.u64 %rd99, image_RNM0;
+ cvta.global.u64 %rd88, %rd99;
+ mov.u32 %r288, 8;
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd88, %r99, %r288, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs41, %rs42, %rs43, %rs44}, [%rd87];
+ // inline asm
+ { cvt.f32.f16 %f643, %rs41;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f644, %rs42;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f645, %rs43;}
+
+ // inline asm
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd88, %r99, %r288, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f646, %f73, %f643;
+ add.f32 %f647, %f74, %f644;
+ add.f32 %f648, %f75, %f645;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f648;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f647;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f646;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs38, %rs39, %rs40, %rs34};
+ bra.uni BB0_112;
+
+BB0_111:
+ mov.u64 %rd106, image_RNM0;
+ cvta.global.u64 %rd101, %rd106;
+ mov.u32 %r290, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r99, %r290, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f75;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f74;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f73;}
+
+ // inline asm
+ st.v4.u16 [%rd100], {%rs45, %rs46, %rs47, %rs34};
+
+BB0_112:
+ ld.global.f32 %f653, [directDir];
+ fma.rn.f32 %f128, %f653, 0fBF000000, 0f3F000000;
+ ld.global.f32 %f654, [directDir+4];
+ fma.rn.f32 %f129, %f654, 0fBF000000, 0f3F000000;
+ ld.global.f32 %f655, [directDir+8];
+ fma.rn.f32 %f130, %f655, 0fBF000000, 0f3F000000;
+ ld.global.u32 %r291, [additive];
+ setp.eq.s32 %p113, %r291, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f642;}
+
+ // inline asm
+ @%p113 bra BB0_114;
+
+ mov.u64 %rd119, image_RNM1;
+ cvta.global.u64 %rd108, %rd119;
+ mov.u32 %r295, 8;
+ // inline asm
+ call (%rd107), _rt_buffer_get_64, (%rd108, %r99, %r295, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs55, %rs56, %rs57, %rs58}, [%rd107];
+ // inline asm
+ { cvt.f32.f16 %f656, %rs55;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f657, %rs56;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f658, %rs57;}
+
+ // inline asm
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd108, %r99, %r295, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f659, %f128, %f656;
+ add.f32 %f660, %f128, %f657;
+ add.f32 %f661, %f128, %f658;
+ // inline asm
+ { cvt.rn.f16.f32 %rs54, %f661;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f660;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f659;}
+
+ // inline asm
+ st.v4.u16 [%rd113], {%rs52, %rs53, %rs54, %rs48};
+ bra.uni BB0_115;
+
+BB0_114:
+ mov.u64 %rd126, image_RNM1;
+ cvta.global.u64 %rd121, %rd126;
+ mov.u32 %r297, 8;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd121, %r99, %r297, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f128;}
+
+ // inline asm
+ st.v4.u16 [%rd120], {%rs59, %rs59, %rs59, %rs48};
+
+BB0_115:
+ ld.global.u32 %r298, [additive];
+ setp.eq.s32 %p114, %r298, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f642;}
+
+ // inline asm
+ @%p114 bra BB0_117;
+
+ mov.u64 %rd139, image_RNM2;
+ cvta.global.u64 %rd128, %rd139;
+ mov.u32 %r302, 8;
+ // inline asm
+ call (%rd127), _rt_buffer_get_64, (%rd128, %r99, %r302, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd127];
+ // inline asm
+ { cvt.f32.f16 %f664, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f665, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f666, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd128, %r99, %r302, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f667, %f129, %f664;
+ add.f32 %f668, %f129, %f665;
+ add.f32 %f669, %f129, %f666;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f669;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f668;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f667;}
+
+ // inline asm
+ st.v4.u16 [%rd133], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_118;
+
+BB0_117:
+ mov.u64 %rd146, image_RNM2;
+ cvta.global.u64 %rd141, %rd146;
+ mov.u32 %r304, 8;
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd141, %r99, %r304, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f129;}
+
+ // inline asm
+ st.v4.u16 [%rd140], {%rs71, %rs71, %rs71, %rs60};
+
+BB0_118:
+ ld.global.u32 %r305, [additive];
+ setp.eq.s32 %p115, %r305, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f642;}
+
+ // inline asm
+ @%p115 bra BB0_120;
+
+ mov.u64 %rd159, image_RNM3;
+ cvta.global.u64 %rd148, %rd159;
+ mov.u32 %r309, 8;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r99, %r309, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs79, %rs80, %rs81, %rs82}, [%rd147];
+ // inline asm
+ { cvt.f32.f16 %f672, %rs79;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f673, %rs80;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f674, %rs81;}
+
+ // inline asm
+ // inline asm
+ call (%rd153), _rt_buffer_get_64, (%rd148, %r99, %r309, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f675, %f130, %f672;
+ add.f32 %f676, %f130, %f673;
+ add.f32 %f677, %f130, %f674;
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f677;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f676;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f675;}
+
+ // inline asm
+ st.v4.u16 [%rd153], {%rs76, %rs77, %rs78, %rs72};
+ bra.uni BB0_141;
+
+BB0_120:
+ mov.u64 %rd166, image_RNM3;
+ cvta.global.u64 %rd161, %rd166;
+ mov.u32 %r311, 8;
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd161, %r99, %r311, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f130;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs83, %rs83, %rs83, %rs72};
+
+BB0_141:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunProbeSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunProbeSH.ptx.meta
new file mode 100644
index 00000000..e0bd43ad
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunProbeSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 496b3cb37b8872b44b1992f6f675b390
+timeCreated: 1551472442
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunRNM.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunRNM.ptx
new file mode 100644
index 00000000..c3c59af8
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunRNM.ptx
@@ -0,0 +1,2403 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 uvtangent[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .b8 directDir[12];
+.global .align 4 .b8 directColor[12];
+.global .align 4 .f32 shadowSpread;
+.global .align 4 .u32 samples;
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9directDirE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11directColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12shadowSpreadE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9directDirE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11directColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12shadowSpreadE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9directDirE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11directColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12shadowSpreadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9directDirE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11directColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12shadowSpreadE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9directDirE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11directColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12shadowSpreadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<148>;
+ .reg .b16 %rs<157>;
+ .reg .f32 %f<1107>;
+ .reg .b32 %r<410>;
+ .reg .b64 %rd<272>;
+
+
+ mov.u64 %rd271, __local_depot0;
+ cvta.local.u64 %SP, %rd271;
+ ld.global.v2.u32 {%r107, %r108}, [pixelID];
+ cvt.u64.u32 %rd27, %r107;
+ cvt.u64.u32 %rd28, %r108;
+ mov.u64 %rd31, uvnormal;
+ cvta.global.u64 %rd26, %rd31;
+ mov.u32 %r105, 2;
+ mov.u32 %r106, 4;
+ mov.u64 %rd30, 0;
+ // inline asm
+ call (%rd25), _rt_buffer_get_64, (%rd26, %r105, %r106, %rd27, %rd28, %rd30, %rd30);
+ // inline asm
+ ld.u32 %r1, [%rd25];
+ shr.u32 %r111, %r1, 16;
+ cvt.u16.u32 %rs1, %r111;
+ and.b16 %rs6, %rs1, 255;
+ cvt.u16.u32 %rs7, %r1;
+ or.b16 %rs8, %rs7, %rs6;
+ setp.eq.s16 %p6, %rs8, 0;
+ mov.f32 %f1063, 0f00000000;
+ mov.f32 %f1064, %f1063;
+ mov.f32 %f1065, %f1063;
+ @%p6 bra BB0_2;
+
+ ld.u8 %rs9, [%rd25+1];
+ and.b16 %rs11, %rs7, 255;
+ cvt.rn.f32.u16 %f184, %rs11;
+ div.rn.f32 %f185, %f184, 0f437F0000;
+ fma.rn.f32 %f186, %f185, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f187, %rs9;
+ div.rn.f32 %f188, %f187, 0f437F0000;
+ fma.rn.f32 %f189, %f188, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f190, %rs6;
+ div.rn.f32 %f191, %f190, 0f437F0000;
+ fma.rn.f32 %f192, %f191, 0f40000000, 0fBF800000;
+ mul.f32 %f193, %f189, %f189;
+ fma.rn.f32 %f194, %f186, %f186, %f193;
+ fma.rn.f32 %f195, %f192, %f192, %f194;
+ sqrt.rn.f32 %f196, %f195;
+ rcp.rn.f32 %f197, %f196;
+ mul.f32 %f1063, %f186, %f197;
+ mul.f32 %f1064, %f189, %f197;
+ mul.f32 %f1065, %f192, %f197;
+
+BB0_2:
+ ld.global.v2.u32 {%r112, %r113}, [pixelID];
+ ld.global.v2.u32 {%r115, %r116}, [tileInfo];
+ add.s32 %r2, %r112, %r115;
+ add.s32 %r3, %r113, %r116;
+ setp.eq.f32 %p7, %f1064, 0f00000000;
+ setp.eq.f32 %p8, %f1063, 0f00000000;
+ and.pred %p9, %p8, %p7;
+ setp.eq.f32 %p10, %f1065, 0f00000000;
+ and.pred %p11, %p9, %p10;
+ @%p11 bra BB0_135;
+ bra.uni BB0_3;
+
+BB0_135:
+ ld.global.u32 %r409, [imageEnabled];
+ and.b32 %r338, %r409, 1;
+ setp.eq.b32 %p141, %r338, 1;
+ @!%p141 bra BB0_137;
+ bra.uni BB0_136;
+
+BB0_136:
+ cvt.u64.u32 %rd175, %r2;
+ cvt.u64.u32 %rd176, %r3;
+ mov.u64 %rd179, image;
+ cvta.global.u64 %rd174, %rd179;
+ // inline asm
+ call (%rd173), _rt_buffer_get_64, (%rd174, %r105, %r106, %rd175, %rd176, %rd30, %rd30);
+ // inline asm
+ mov.u16 %rs102, 0;
+ st.v4.u8 [%rd173], {%rs102, %rs102, %rs102, %rs102};
+ ld.global.u32 %r409, [imageEnabled];
+
+BB0_137:
+ and.b32 %r341, %r409, 8;
+ setp.eq.s32 %p142, %r341, 0;
+ @%p142 bra BB0_139;
+
+ cvt.u64.u32 %rd183, %r3;
+ cvt.u64.u32 %rd182, %r2;
+ mov.u64 %rd186, image_Mask;
+ cvta.global.u64 %rd181, %rd186;
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd181, %r105, %r105, %rd182, %rd183, %rd30, %rd30);
+ // inline asm
+ mov.f32 %f966, 0f00000000;
+ cvt.rzi.u32.f32 %r344, %f966;
+ cvt.u16.u32 %rs103, %r344;
+ mov.u16 %rs104, 0;
+ st.v2.u8 [%rd180], {%rs103, %rs104};
+ ld.global.u32 %r409, [imageEnabled];
+
+BB0_139:
+ cvt.u64.u32 %rd23, %r2;
+ cvt.u64.u32 %rd24, %r3;
+ and.b32 %r345, %r409, 4;
+ setp.eq.s32 %p143, %r345, 0;
+ @%p143 bra BB0_143;
+
+ ld.global.u32 %r346, [additive];
+ setp.eq.s32 %p144, %r346, 0;
+ @%p144 bra BB0_142;
+
+ mov.u64 %rd199, image_HDR;
+ cvta.global.u64 %rd188, %rd199;
+ mov.u32 %r350, 8;
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd188, %r105, %r350, %rd23, %rd24, %rd30, %rd30);
+ // inline asm
+ ld.v4.u16 {%rs111, %rs112, %rs113, %rs114}, [%rd187];
+ // inline asm
+ { cvt.f32.f16 %f967, %rs111;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f968, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f969, %rs113;}
+
+ // inline asm
+ // inline asm
+ call (%rd193), _rt_buffer_get_64, (%rd188, %r105, %r350, %rd23, %rd24, %rd30, %rd30);
+ // inline asm
+ add.f32 %f970, %f967, 0f00000000;
+ add.f32 %f971, %f968, 0f00000000;
+ add.f32 %f972, %f969, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f972;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f971;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs108, %f970;}
+
+ // inline asm
+ mov.u16 %rs115, 0;
+ st.v4.u16 [%rd193], {%rs108, %rs109, %rs110, %rs115};
+ bra.uni BB0_143;
+
+BB0_3:
+ ld.global.f32 %f8, [directDir+4];
+ ld.global.f32 %f9, [directDir+8];
+ ld.global.f32 %f7, [directDir];
+ ld.global.v2.u32 {%r124, %r125}, [pixelID];
+ cvt.u64.u32 %rd34, %r124;
+ cvt.u64.u32 %rd35, %r125;
+ mov.u64 %rd44, uvpos;
+ cvta.global.u64 %rd33, %rd44;
+ mov.u32 %r121, 12;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd33, %r105, %r121, %rd34, %rd35, %rd30, %rd30);
+ // inline asm
+ ld.f32 %f199, [%rd32+8];
+ ld.f32 %f200, [%rd32+4];
+ ld.f32 %f201, [%rd32];
+ mul.f32 %f202, %f201, 0f3456BF95;
+ mul.f32 %f203, %f200, 0f3456BF95;
+ mul.f32 %f204, %f199, 0f3456BF95;
+ abs.f32 %f205, %f1063;
+ div.rn.f32 %f206, %f202, %f205;
+ abs.f32 %f207, %f1064;
+ div.rn.f32 %f208, %f203, %f207;
+ abs.f32 %f209, %f1065;
+ div.rn.f32 %f210, %f204, %f209;
+ abs.f32 %f211, %f206;
+ abs.f32 %f212, %f208;
+ abs.f32 %f213, %f210;
+ mov.f32 %f214, 0f38D1B717;
+ max.f32 %f215, %f211, %f214;
+ max.f32 %f216, %f212, %f214;
+ max.f32 %f217, %f213, %f214;
+ fma.rn.f32 %f10, %f1063, %f215, %f201;
+ fma.rn.f32 %f11, %f1064, %f216, %f200;
+ fma.rn.f32 %f12, %f1065, %f217, %f199;
+ abs.f32 %f218, %f7;
+ abs.f32 %f219, %f9;
+ setp.gt.f32 %p12, %f218, %f219;
+ neg.f32 %f220, %f8;
+ neg.f32 %f221, %f9;
+ selp.f32 %f222, %f220, 0f00000000, %p12;
+ selp.f32 %f223, %f7, %f221, %p12;
+ selp.f32 %f224, 0f00000000, %f8, %p12;
+ mul.f32 %f225, %f223, %f223;
+ fma.rn.f32 %f226, %f222, %f222, %f225;
+ fma.rn.f32 %f227, %f224, %f224, %f226;
+ sqrt.rn.f32 %f228, %f227;
+ rcp.rn.f32 %f229, %f228;
+ mul.f32 %f13, %f222, %f229;
+ mul.f32 %f14, %f223, %f229;
+ mul.f32 %f15, %f224, %f229;
+ ld.global.v2.u32 {%r128, %r129}, [pixelID];
+ cvt.u64.u32 %rd40, %r128;
+ cvt.u64.u32 %rd41, %r129;
+ mov.u64 %rd45, rnd_seeds;
+ cvta.global.u64 %rd39, %rd45;
+ // inline asm
+ call (%rd38), _rt_buffer_get_64, (%rd39, %r105, %r106, %rd40, %rd41, %rd30, %rd30);
+ // inline asm
+ ld.global.u32 %r378, [samples];
+ mov.f32 %f1080, 0f00000000;
+ setp.lt.s32 %p13, %r378, 1;
+ @%p13 bra BB0_55;
+
+ cvt.rn.f32.s32 %f231, %r378;
+ rcp.rn.f32 %f16, %f231;
+ ld.u32 %r404, [%rd38];
+ mul.f32 %f17, %f10, 0f3456BF95;
+ mul.f32 %f18, %f11, 0f3456BF95;
+ mul.f32 %f19, %f12, 0f3456BF95;
+ mul.f32 %f232, %f7, %f14;
+ mul.f32 %f233, %f8, %f13;
+ sub.f32 %f20, %f233, %f232;
+ mul.f32 %f234, %f9, %f13;
+ mul.f32 %f235, %f7, %f15;
+ sub.f32 %f21, %f235, %f234;
+ mul.f32 %f236, %f8, %f15;
+ mul.f32 %f237, %f9, %f14;
+ sub.f32 %f22, %f237, %f236;
+ mov.f32 %f1080, 0f00000000;
+ mov.u32 %r379, 0;
+ abs.f32 %f238, %f18;
+ abs.f32 %f239, %f17;
+ max.f32 %f240, %f239, %f238;
+ abs.f32 %f241, %f19;
+ max.f32 %f242, %f240, %f241;
+
+BB0_5:
+ setp.lt.s32 %p14, %r378, 1;
+ @%p14 bra BB0_54;
+
+ cvt.rn.f32.s32 %f24, %r379;
+ max.f32 %f25, %f242, %f214;
+ mov.u32 %r381, 0;
+
+BB0_7:
+ mad.lo.s32 %r134, %r404, 1664525, 1013904223;
+ and.b32 %r135, %r134, 16777215;
+ cvt.rn.f32.u32 %f244, %r135;
+ fma.rn.f32 %f245, %f244, 0f33800000, %f24;
+ mul.f32 %f246, %f16, %f245;
+ mad.lo.s32 %r404, %r134, 1664525, 1013904223;
+ and.b32 %r136, %r404, 16777215;
+ cvt.rn.f32.u32 %f247, %r136;
+ cvt.rn.f32.s32 %f248, %r381;
+ fma.rn.f32 %f249, %f247, 0f33800000, %f248;
+ mul.f32 %f250, %f16, %f249;
+ sqrt.rn.f32 %f27, %f246;
+ mul.f32 %f1074, %f250, 0f40C90FDB;
+ abs.f32 %f29, %f1074;
+ setp.neu.f32 %p15, %f29, 0f7F800000;
+ mov.f32 %f1068, %f1074;
+ @%p15 bra BB0_9;
+
+ mov.f32 %f251, 0f00000000;
+ mul.rn.f32 %f1068, %f1074, %f251;
+
+BB0_9:
+ mul.f32 %f252, %f1068, 0f3F22F983;
+ cvt.rni.s32.f32 %r392, %f252;
+ cvt.rn.f32.s32 %f253, %r392;
+ neg.f32 %f254, %f253;
+ mov.f32 %f255, 0f3FC90FDA;
+ fma.rn.f32 %f256, %f254, %f255, %f1068;
+ mov.f32 %f257, 0f33A22168;
+ fma.rn.f32 %f258, %f254, %f257, %f256;
+ mov.f32 %f259, 0f27C234C5;
+ fma.rn.f32 %f1069, %f254, %f259, %f258;
+ abs.f32 %f260, %f1068;
+ setp.leu.f32 %p16, %f260, 0f47CE4780;
+ @%p16 bra BB0_20;
+
+ mov.b32 %r13, %f1068;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r139, %r13, 8;
+ or.b32 %r15, %r139, -2147483648;
+ add.u64 %rd47, %SP, 4;
+ cvta.to.local.u64 %rd268, %rd47;
+ mov.u32 %r384, 0;
+ mov.u64 %rd267, __cudart_i2opi_f;
+ mov.u32 %r383, -6;
+
+BB0_11:
+ .pragma "nounroll";
+ ld.const.u32 %r142, [%rd267];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r140, %r142, %r15, %r384;
+ madc.hi.u32 %r384, %r142, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd268], %r140;
+ add.s64 %rd268, %rd268, 4;
+ add.s64 %rd267, %rd267, 4;
+ add.s32 %r383, %r383, 1;
+ setp.ne.s32 %p17, %r383, 0;
+ @%p17 bra BB0_11;
+
+ and.b32 %r145, %r14, 255;
+ add.s32 %r146, %r145, -128;
+ shr.u32 %r147, %r146, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd49, %rd47;
+ st.local.u32 [%rd49+24], %r384;
+ mov.u32 %r148, 6;
+ sub.s32 %r149, %r148, %r147;
+ mul.wide.s32 %rd50, %r149, 4;
+ add.s64 %rd8, %rd49, %rd50;
+ ld.local.u32 %r385, [%rd8];
+ ld.local.u32 %r386, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p18, %r23, 0;
+ @%p18 bra BB0_14;
+
+ mov.u32 %r150, 32;
+ sub.s32 %r151, %r150, %r23;
+ shr.u32 %r152, %r386, %r151;
+ shl.b32 %r153, %r385, %r23;
+ add.s32 %r385, %r152, %r153;
+ ld.local.u32 %r154, [%rd8+-8];
+ shr.u32 %r155, %r154, %r151;
+ shl.b32 %r156, %r386, %r23;
+ add.s32 %r386, %r155, %r156;
+
+BB0_14:
+ shr.u32 %r157, %r386, 30;
+ shl.b32 %r158, %r385, 2;
+ add.s32 %r387, %r157, %r158;
+ shl.b32 %r29, %r386, 2;
+ shr.u32 %r159, %r387, 31;
+ shr.u32 %r160, %r385, 30;
+ add.s32 %r30, %r159, %r160;
+ setp.eq.s32 %p19, %r159, 0;
+ @%p19 bra BB0_15;
+ bra.uni BB0_16;
+
+BB0_15:
+ mov.u32 %r388, %r20;
+ mov.u32 %r389, %r29;
+ bra.uni BB0_17;
+
+BB0_16:
+ not.b32 %r161, %r387;
+ neg.s32 %r389, %r29;
+ setp.eq.s32 %p20, %r29, 0;
+ selp.u32 %r162, 1, 0, %p20;
+ add.s32 %r387, %r162, %r161;
+ xor.b32 %r388, %r20, -2147483648;
+
+BB0_17:
+ clz.b32 %r391, %r387;
+ setp.eq.s32 %p21, %r391, 0;
+ shl.b32 %r163, %r387, %r391;
+ mov.u32 %r164, 32;
+ sub.s32 %r165, %r164, %r391;
+ shr.u32 %r166, %r389, %r165;
+ add.s32 %r167, %r166, %r163;
+ selp.b32 %r38, %r387, %r167, %p21;
+ mov.u32 %r168, -921707870;
+ mul.hi.u32 %r390, %r38, %r168;
+ setp.eq.s32 %p22, %r20, 0;
+ neg.s32 %r169, %r30;
+ selp.b32 %r392, %r30, %r169, %p22;
+ setp.lt.s32 %p23, %r390, 1;
+ @%p23 bra BB0_19;
+
+ mul.lo.s32 %r170, %r38, -921707870;
+ shr.u32 %r171, %r170, 31;
+ shl.b32 %r172, %r390, 1;
+ add.s32 %r390, %r171, %r172;
+ add.s32 %r391, %r391, 1;
+
+BB0_19:
+ mov.u32 %r173, 126;
+ sub.s32 %r174, %r173, %r391;
+ shl.b32 %r175, %r174, 23;
+ add.s32 %r176, %r390, 1;
+ shr.u32 %r177, %r176, 7;
+ add.s32 %r178, %r177, 1;
+ shr.u32 %r179, %r178, 1;
+ add.s32 %r180, %r179, %r175;
+ or.b32 %r181, %r180, %r388;
+ mov.b32 %f1069, %r181;
+
+BB0_20:
+ mul.rn.f32 %f35, %f1069, %f1069;
+ add.s32 %r46, %r392, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p24, %r47, 0;
+ @%p24 bra BB0_22;
+ bra.uni BB0_21;
+
+BB0_22:
+ mov.f32 %f263, 0f3C08839E;
+ mov.f32 %f264, 0fB94CA1F9;
+ fma.rn.f32 %f1070, %f264, %f35, %f263;
+ bra.uni BB0_23;
+
+BB0_21:
+ mov.f32 %f261, 0fBAB6061A;
+ mov.f32 %f262, 0f37CCF5CE;
+ fma.rn.f32 %f1070, %f262, %f35, %f261;
+
+BB0_23:
+ @%p24 bra BB0_25;
+ bra.uni BB0_24;
+
+BB0_25:
+ mov.f32 %f268, 0fBE2AAAA3;
+ fma.rn.f32 %f269, %f1070, %f35, %f268;
+ mov.f32 %f270, 0f00000000;
+ fma.rn.f32 %f1071, %f269, %f35, %f270;
+ bra.uni BB0_26;
+
+BB0_24:
+ mov.f32 %f265, 0f3D2AAAA5;
+ fma.rn.f32 %f266, %f1070, %f35, %f265;
+ mov.f32 %f267, 0fBF000000;
+ fma.rn.f32 %f1071, %f266, %f35, %f267;
+
+BB0_26:
+ fma.rn.f32 %f1072, %f1071, %f1069, %f1069;
+ @%p24 bra BB0_28;
+
+ mov.f32 %f271, 0f3F800000;
+ fma.rn.f32 %f1072, %f1071, %f35, %f271;
+
+BB0_28:
+ and.b32 %r182, %r46, 2;
+ setp.eq.s32 %p27, %r182, 0;
+ @%p27 bra BB0_30;
+
+ mov.f32 %f272, 0f00000000;
+ mov.f32 %f273, 0fBF800000;
+ fma.rn.f32 %f1072, %f1072, %f273, %f272;
+
+BB0_30:
+ @%p15 bra BB0_32;
+
+ mov.f32 %f274, 0f00000000;
+ mul.rn.f32 %f1074, %f1074, %f274;
+
+BB0_32:
+ mul.f32 %f275, %f1074, 0f3F22F983;
+ cvt.rni.s32.f32 %r402, %f275;
+ cvt.rn.f32.s32 %f276, %r402;
+ neg.f32 %f277, %f276;
+ fma.rn.f32 %f279, %f277, %f255, %f1074;
+ fma.rn.f32 %f281, %f277, %f257, %f279;
+ fma.rn.f32 %f1075, %f277, %f259, %f281;
+ abs.f32 %f283, %f1074;
+ setp.leu.f32 %p29, %f283, 0f47CE4780;
+ @%p29 bra BB0_43;
+
+ mov.b32 %r49, %f1074;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r185, %r49, 8;
+ or.b32 %r51, %r185, -2147483648;
+ add.u64 %rd52, %SP, 4;
+ cvta.to.local.u64 %rd270, %rd52;
+ mov.u32 %r394, 0;
+ mov.u64 %rd269, __cudart_i2opi_f;
+ mov.u32 %r393, -6;
+
+BB0_34:
+ .pragma "nounroll";
+ ld.const.u32 %r188, [%rd269];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r186, %r188, %r51, %r394;
+ madc.hi.u32 %r394, %r188, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd270], %r186;
+ add.s64 %rd270, %rd270, 4;
+ add.s64 %rd269, %rd269, 4;
+ add.s32 %r393, %r393, 1;
+ setp.ne.s32 %p30, %r393, 0;
+ @%p30 bra BB0_34;
+
+ and.b32 %r191, %r50, 255;
+ add.s32 %r192, %r191, -128;
+ shr.u32 %r193, %r192, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd54, %rd52;
+ st.local.u32 [%rd54+24], %r394;
+ mov.u32 %r194, 6;
+ sub.s32 %r195, %r194, %r193;
+ mul.wide.s32 %rd55, %r195, 4;
+ add.s64 %rd14, %rd54, %rd55;
+ ld.local.u32 %r395, [%rd14];
+ ld.local.u32 %r396, [%rd14+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p31, %r59, 0;
+ @%p31 bra BB0_37;
+
+ mov.u32 %r196, 32;
+ sub.s32 %r197, %r196, %r59;
+ shr.u32 %r198, %r396, %r197;
+ shl.b32 %r199, %r395, %r59;
+ add.s32 %r395, %r198, %r199;
+ ld.local.u32 %r200, [%rd14+-8];
+ shr.u32 %r201, %r200, %r197;
+ shl.b32 %r202, %r396, %r59;
+ add.s32 %r396, %r201, %r202;
+
+BB0_37:
+ shr.u32 %r203, %r396, 30;
+ shl.b32 %r204, %r395, 2;
+ add.s32 %r397, %r203, %r204;
+ shl.b32 %r65, %r396, 2;
+ shr.u32 %r205, %r397, 31;
+ shr.u32 %r206, %r395, 30;
+ add.s32 %r66, %r205, %r206;
+ setp.eq.s32 %p32, %r205, 0;
+ @%p32 bra BB0_38;
+ bra.uni BB0_39;
+
+BB0_38:
+ mov.u32 %r398, %r56;
+ mov.u32 %r399, %r65;
+ bra.uni BB0_40;
+
+BB0_39:
+ not.b32 %r207, %r397;
+ neg.s32 %r399, %r65;
+ setp.eq.s32 %p33, %r65, 0;
+ selp.u32 %r208, 1, 0, %p33;
+ add.s32 %r397, %r208, %r207;
+ xor.b32 %r398, %r56, -2147483648;
+
+BB0_40:
+ clz.b32 %r401, %r397;
+ setp.eq.s32 %p34, %r401, 0;
+ shl.b32 %r209, %r397, %r401;
+ mov.u32 %r210, 32;
+ sub.s32 %r211, %r210, %r401;
+ shr.u32 %r212, %r399, %r211;
+ add.s32 %r213, %r212, %r209;
+ selp.b32 %r74, %r397, %r213, %p34;
+ mov.u32 %r214, -921707870;
+ mul.hi.u32 %r400, %r74, %r214;
+ setp.eq.s32 %p35, %r56, 0;
+ neg.s32 %r215, %r66;
+ selp.b32 %r402, %r66, %r215, %p35;
+ setp.lt.s32 %p36, %r400, 1;
+ @%p36 bra BB0_42;
+
+ mul.lo.s32 %r216, %r74, -921707870;
+ shr.u32 %r217, %r216, 31;
+ shl.b32 %r218, %r400, 1;
+ add.s32 %r400, %r217, %r218;
+ add.s32 %r401, %r401, 1;
+
+BB0_42:
+ mov.u32 %r219, 126;
+ sub.s32 %r220, %r219, %r401;
+ shl.b32 %r221, %r220, 23;
+ add.s32 %r222, %r400, 1;
+ shr.u32 %r223, %r222, 7;
+ add.s32 %r224, %r223, 1;
+ shr.u32 %r225, %r224, 1;
+ add.s32 %r226, %r225, %r221;
+ or.b32 %r227, %r226, %r398;
+ mov.b32 %f1075, %r227;
+
+BB0_43:
+ mul.rn.f32 %f52, %f1075, %f1075;
+ and.b32 %r82, %r402, 1;
+ setp.eq.s32 %p37, %r82, 0;
+ @%p37 bra BB0_45;
+ bra.uni BB0_44;
+
+BB0_45:
+ mov.f32 %f286, 0f3C08839E;
+ mov.f32 %f287, 0fB94CA1F9;
+ fma.rn.f32 %f1076, %f287, %f52, %f286;
+ bra.uni BB0_46;
+
+BB0_44:
+ mov.f32 %f284, 0fBAB6061A;
+ mov.f32 %f285, 0f37CCF5CE;
+ fma.rn.f32 %f1076, %f285, %f52, %f284;
+
+BB0_46:
+ @%p37 bra BB0_48;
+ bra.uni BB0_47;
+
+BB0_48:
+ mov.f32 %f291, 0fBE2AAAA3;
+ fma.rn.f32 %f292, %f1076, %f52, %f291;
+ mov.f32 %f293, 0f00000000;
+ fma.rn.f32 %f1077, %f292, %f52, %f293;
+ bra.uni BB0_49;
+
+BB0_47:
+ mov.f32 %f288, 0f3D2AAAA5;
+ fma.rn.f32 %f289, %f1076, %f52, %f288;
+ mov.f32 %f290, 0fBF000000;
+ fma.rn.f32 %f1077, %f289, %f52, %f290;
+
+BB0_49:
+ fma.rn.f32 %f1078, %f1077, %f1075, %f1075;
+ @%p37 bra BB0_51;
+
+ mov.f32 %f294, 0f3F800000;
+ fma.rn.f32 %f1078, %f1077, %f52, %f294;
+
+BB0_51:
+ and.b32 %r228, %r402, 2;
+ setp.eq.s32 %p40, %r228, 0;
+ @%p40 bra BB0_53;
+
+ mov.f32 %f295, 0f00000000;
+ mov.f32 %f296, 0fBF800000;
+ fma.rn.f32 %f1078, %f1078, %f296, %f295;
+
+BB0_53:
+ mul.f32 %f305, %f27, %f1072;
+ add.u64 %rd56, %SP, 0;
+ cvta.to.local.u64 %rd57, %rd56;
+ mul.f32 %f306, %f305, %f305;
+ mov.f32 %f307, 0f3F800000;
+ sub.f32 %f308, %f307, %f306;
+ mul.f32 %f309, %f27, %f1078;
+ mul.f32 %f310, %f309, %f309;
+ sub.f32 %f311, %f308, %f310;
+ mov.f32 %f312, 0f00000000;
+ max.f32 %f313, %f312, %f311;
+ sqrt.rn.f32 %f314, %f313;
+ mul.f32 %f315, %f13, %f309;
+ mul.f32 %f316, %f14, %f309;
+ mul.f32 %f317, %f15, %f309;
+ fma.rn.f32 %f318, %f22, %f305, %f315;
+ fma.rn.f32 %f319, %f21, %f305, %f316;
+ fma.rn.f32 %f320, %f20, %f305, %f317;
+ fma.rn.f32 %f321, %f7, %f314, %f318;
+ fma.rn.f32 %f322, %f8, %f314, %f319;
+ fma.rn.f32 %f323, %f9, %f314, %f320;
+ add.f32 %f324, %f7, %f321;
+ add.f32 %f325, %f8, %f322;
+ add.f32 %f326, %f9, %f323;
+ ld.global.f32 %f327, [shadowSpread];
+ mul.f32 %f328, %f327, %f324;
+ mul.f32 %f329, %f327, %f325;
+ mul.f32 %f330, %f327, %f326;
+ sub.f32 %f331, %f328, %f7;
+ sub.f32 %f332, %f329, %f8;
+ sub.f32 %f333, %f330, %f9;
+ mul.f32 %f334, %f332, %f332;
+ fma.rn.f32 %f335, %f331, %f331, %f334;
+ fma.rn.f32 %f336, %f333, %f333, %f335;
+ sqrt.rn.f32 %f337, %f336;
+ rcp.rn.f32 %f338, %f337;
+ mul.f32 %f300, %f338, %f331;
+ mul.f32 %f301, %f338, %f332;
+ mul.f32 %f302, %f338, %f333;
+ ld.global.u32 %r232, [imageEnabled];
+ and.b32 %r233, %r232, 32;
+ setp.eq.s32 %p41, %r233, 0;
+ selp.f32 %f339, 0f3F800000, 0f41200000, %p41;
+ mul.f32 %f303, %f339, %f25;
+ mov.u32 %r234, 1065353216;
+ st.local.u32 [%rd57], %r234;
+ ld.global.u32 %r229, [root];
+ mov.u32 %r230, 1;
+ mov.f32 %f304, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r229, %f10, %f11, %f12, %f300, %f301, %f302, %r230, %f303, %f304, %rd56, %r106);
+ // inline asm
+ ld.local.f32 %f340, [%rd57];
+ add.f32 %f1080, %f1080, %f340;
+ ld.global.u32 %r378, [samples];
+ add.s32 %r381, %r381, 1;
+ setp.lt.s32 %p42, %r381, %r378;
+ @%p42 bra BB0_7;
+
+BB0_54:
+ add.s32 %r379, %r379, 1;
+ setp.lt.s32 %p43, %r379, %r378;
+ @%p43 bra BB0_5;
+
+BB0_55:
+ mul.f32 %f342, %f1065, %f9;
+ mul.f32 %f343, %f1064, %f8;
+ neg.f32 %f344, %f343;
+ mul.f32 %f345, %f1063, %f7;
+ sub.f32 %f346, %f344, %f345;
+ sub.f32 %f67, %f346, %f342;
+ setp.eq.s32 %p44, %r378, 0;
+ mov.f32 %f1082, 0f3F800000;
+ @%p44 bra BB0_57;
+
+ mul.lo.s32 %r235, %r378, %r378;
+ cvt.rn.f32.s32 %f347, %r235;
+ div.rn.f32 %f1082, %f1080, %f347;
+
+BB0_57:
+ ld.global.f32 %f350, [directColor];
+ mul.f32 %f70, %f1082, %f350;
+ ld.global.f32 %f351, [directColor+4];
+ mul.f32 %f71, %f1082, %f351;
+ ld.global.f32 %f352, [directColor+8];
+ mul.f32 %f72, %f1082, %f352;
+ cvt.sat.f32.f32 %f353, %f67;
+ mul.f32 %f73, %f70, %f353;
+ mul.f32 %f74, %f71, %f353;
+ mul.f32 %f75, %f72, %f353;
+ fma.rn.f32 %f354, %f67, 0f3F000000, 0f3F000000;
+ cvt.sat.f32.f32 %f355, %f354;
+ add.f32 %f76, %f355, %f355;
+ mov.f32 %f359, 0f41A00000;
+ abs.f32 %f78, %f76;
+ setp.lt.f32 %p45, %f78, 0f00800000;
+ mul.f32 %f361, %f78, 0f4B800000;
+ selp.f32 %f362, 0fC3170000, 0fC2FE0000, %p45;
+ selp.f32 %f363, %f361, %f78, %p45;
+ mov.b32 %r236, %f363;
+ and.b32 %r237, %r236, 8388607;
+ or.b32 %r238, %r237, 1065353216;
+ mov.b32 %f364, %r238;
+ shr.u32 %r239, %r236, 23;
+ cvt.rn.f32.u32 %f365, %r239;
+ add.f32 %f366, %f362, %f365;
+ setp.gt.f32 %p46, %f364, 0f3FB504F3;
+ mul.f32 %f367, %f364, 0f3F000000;
+ add.f32 %f368, %f366, 0f3F800000;
+ selp.f32 %f369, %f367, %f364, %p46;
+ selp.f32 %f370, %f368, %f366, %p46;
+ add.f32 %f371, %f369, 0fBF800000;
+ add.f32 %f349, %f369, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f348,%f349;
+ // inline asm
+ add.f32 %f372, %f371, %f371;
+ mul.f32 %f373, %f348, %f372;
+ mul.f32 %f374, %f373, %f373;
+ mov.f32 %f375, 0f3C4CAF63;
+ mov.f32 %f376, 0f3B18F0FE;
+ fma.rn.f32 %f377, %f376, %f374, %f375;
+ mov.f32 %f378, 0f3DAAAABD;
+ fma.rn.f32 %f379, %f377, %f374, %f378;
+ mul.rn.f32 %f380, %f379, %f374;
+ mul.rn.f32 %f381, %f380, %f373;
+ sub.f32 %f382, %f371, %f373;
+ neg.f32 %f383, %f373;
+ add.f32 %f384, %f382, %f382;
+ fma.rn.f32 %f385, %f383, %f371, %f384;
+ mul.rn.f32 %f386, %f348, %f385;
+ add.f32 %f387, %f381, %f373;
+ sub.f32 %f388, %f373, %f387;
+ add.f32 %f389, %f381, %f388;
+ add.f32 %f390, %f386, %f389;
+ add.f32 %f391, %f387, %f390;
+ sub.f32 %f392, %f387, %f391;
+ add.f32 %f393, %f390, %f392;
+ mov.f32 %f394, 0f3F317200;
+ mul.rn.f32 %f395, %f370, %f394;
+ mov.f32 %f396, 0f35BFBE8E;
+ mul.rn.f32 %f397, %f370, %f396;
+ add.f32 %f398, %f395, %f391;
+ sub.f32 %f399, %f395, %f398;
+ add.f32 %f400, %f391, %f399;
+ add.f32 %f401, %f393, %f400;
+ add.f32 %f402, %f397, %f401;
+ add.f32 %f403, %f398, %f402;
+ sub.f32 %f404, %f398, %f403;
+ add.f32 %f405, %f402, %f404;
+ mul.rn.f32 %f406, %f359, %f403;
+ neg.f32 %f407, %f406;
+ fma.rn.f32 %f408, %f359, %f403, %f407;
+ fma.rn.f32 %f409, %f359, %f405, %f408;
+ mov.f32 %f410, 0f00000000;
+ fma.rn.f32 %f411, %f410, %f403, %f409;
+ add.rn.f32 %f412, %f406, %f411;
+ neg.f32 %f413, %f412;
+ add.rn.f32 %f414, %f406, %f413;
+ add.rn.f32 %f415, %f414, %f411;
+ mov.b32 %r240, %f412;
+ setp.eq.s32 %p47, %r240, 1118925336;
+ add.s32 %r241, %r240, -1;
+ mov.b32 %f416, %r241;
+ add.f32 %f417, %f415, 0f37000000;
+ selp.f32 %f418, %f416, %f412, %p47;
+ selp.f32 %f79, %f417, %f415, %p47;
+ mul.f32 %f419, %f418, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f420, %f419;
+ mov.f32 %f421, 0fBF317200;
+ fma.rn.f32 %f422, %f420, %f421, %f418;
+ mov.f32 %f423, 0fB5BFBE8E;
+ fma.rn.f32 %f424, %f420, %f423, %f422;
+ mul.f32 %f425, %f424, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f426, %f425;
+ add.f32 %f427, %f420, 0f00000000;
+ ex2.approx.f32 %f428, %f427;
+ mul.f32 %f429, %f426, %f428;
+ setp.lt.f32 %p48, %f418, 0fC2D20000;
+ selp.f32 %f430, 0f00000000, %f429, %p48;
+ setp.gt.f32 %p49, %f418, 0f42D20000;
+ selp.f32 %f1083, 0f7F800000, %f430, %p49;
+ setp.eq.f32 %p50, %f1083, 0f7F800000;
+ @%p50 bra BB0_59;
+
+ fma.rn.f32 %f1083, %f1083, %f79, %f1083;
+
+BB0_59:
+ mov.f32 %f1000, 0f41200000;
+ cvt.rzi.f32.f32 %f999, %f1000;
+ add.f32 %f998, %f999, %f999;
+ mov.f32 %f997, 0f41A00000;
+ sub.f32 %f996, %f997, %f998;
+ abs.f32 %f995, %f996;
+ setp.lt.f32 %p51, %f76, 0f00000000;
+ setp.eq.f32 %p52, %f995, 0f3F800000;
+ and.pred %p1, %p51, %p52;
+ mov.b32 %r242, %f1083;
+ xor.b32 %r243, %r242, -2147483648;
+ mov.b32 %f431, %r243;
+ selp.f32 %f1085, %f431, %f1083, %p1;
+ setp.eq.f32 %p53, %f76, 0f00000000;
+ @%p53 bra BB0_62;
+ bra.uni BB0_60;
+
+BB0_62:
+ add.f32 %f434, %f76, %f76;
+ selp.f32 %f1085, %f434, 0f00000000, %p52;
+ bra.uni BB0_63;
+
+BB0_60:
+ setp.geu.f32 %p54, %f76, 0f00000000;
+ @%p54 bra BB0_63;
+
+ mov.f32 %f1036, 0f41A00000;
+ cvt.rzi.f32.f32 %f433, %f1036;
+ setp.neu.f32 %p55, %f433, 0f41A00000;
+ selp.f32 %f1085, 0f7FFFFFFF, %f1085, %p55;
+
+BB0_63:
+ add.f32 %f435, %f78, 0f41A00000;
+ mov.b32 %r244, %f435;
+ setp.lt.s32 %p57, %r244, 2139095040;
+ @%p57 bra BB0_68;
+
+ setp.gtu.f32 %p58, %f78, 0f7F800000;
+ @%p58 bra BB0_67;
+ bra.uni BB0_65;
+
+BB0_67:
+ add.f32 %f1085, %f76, 0f41A00000;
+ bra.uni BB0_68;
+
+BB0_65:
+ setp.neu.f32 %p59, %f78, 0f7F800000;
+ @%p59 bra BB0_68;
+
+ selp.f32 %f1085, 0fFF800000, 0f7F800000, %p1;
+
+BB0_68:
+ setp.eq.f32 %p60, %f76, 0f3F800000;
+ selp.f32 %f436, 0f3F800000, %f1085, %p60;
+ cvt.sat.f32.f32 %f437, %f436;
+ mul.f32 %f90, %f70, %f437;
+ mul.f32 %f91, %f71, %f437;
+ mul.f32 %f92, %f72, %f437;
+ ld.global.u32 %r407, [imageEnabled];
+ and.b32 %r245, %r407, 8;
+ setp.eq.s32 %p61, %r245, 0;
+ @%p61 bra BB0_81;
+
+ mov.f32 %f1008, 0fB5BFBE8E;
+ mov.f32 %f1007, 0fBF317200;
+ mov.f32 %f1006, 0f00000000;
+ mov.f32 %f1005, 0f35BFBE8E;
+ mov.f32 %f1004, 0f3F317200;
+ mov.f32 %f1003, 0f3DAAAABD;
+ mov.f32 %f1002, 0f3C4CAF63;
+ mov.f32 %f1001, 0f3B18F0FE;
+ cvt.u64.u32 %rd60, %r2;
+ cvt.u64.u32 %rd61, %r3;
+ mov.u64 %rd64, image_Mask;
+ cvta.global.u64 %rd59, %rd64;
+ // inline asm
+ call (%rd58), _rt_buffer_get_64, (%rd59, %r105, %r105, %rd60, %rd61, %rd30, %rd30);
+ // inline asm
+ abs.f32 %f94, %f1082;
+ setp.lt.f32 %p62, %f94, 0f00800000;
+ mul.f32 %f443, %f94, 0f4B800000;
+ selp.f32 %f444, 0fC3170000, 0fC2FE0000, %p62;
+ selp.f32 %f445, %f443, %f94, %p62;
+ mov.b32 %r248, %f445;
+ and.b32 %r249, %r248, 8388607;
+ or.b32 %r250, %r249, 1065353216;
+ mov.b32 %f446, %r250;
+ shr.u32 %r251, %r248, 23;
+ cvt.rn.f32.u32 %f447, %r251;
+ add.f32 %f448, %f444, %f447;
+ setp.gt.f32 %p63, %f446, 0f3FB504F3;
+ mul.f32 %f449, %f446, 0f3F000000;
+ add.f32 %f450, %f448, 0f3F800000;
+ selp.f32 %f451, %f449, %f446, %p63;
+ selp.f32 %f452, %f450, %f448, %p63;
+ add.f32 %f453, %f451, 0fBF800000;
+ add.f32 %f439, %f451, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f438,%f439;
+ // inline asm
+ add.f32 %f454, %f453, %f453;
+ mul.f32 %f455, %f438, %f454;
+ mul.f32 %f456, %f455, %f455;
+ fma.rn.f32 %f459, %f1001, %f456, %f1002;
+ fma.rn.f32 %f461, %f459, %f456, %f1003;
+ mul.rn.f32 %f462, %f461, %f456;
+ mul.rn.f32 %f463, %f462, %f455;
+ sub.f32 %f464, %f453, %f455;
+ neg.f32 %f465, %f455;
+ add.f32 %f466, %f464, %f464;
+ fma.rn.f32 %f467, %f465, %f453, %f466;
+ mul.rn.f32 %f468, %f438, %f467;
+ add.f32 %f469, %f463, %f455;
+ sub.f32 %f470, %f455, %f469;
+ add.f32 %f471, %f463, %f470;
+ add.f32 %f472, %f468, %f471;
+ add.f32 %f473, %f469, %f472;
+ sub.f32 %f474, %f469, %f473;
+ add.f32 %f475, %f472, %f474;
+ mul.rn.f32 %f477, %f452, %f1004;
+ mul.rn.f32 %f479, %f452, %f1005;
+ add.f32 %f480, %f477, %f473;
+ sub.f32 %f481, %f477, %f480;
+ add.f32 %f482, %f473, %f481;
+ add.f32 %f483, %f475, %f482;
+ add.f32 %f484, %f479, %f483;
+ add.f32 %f485, %f480, %f484;
+ sub.f32 %f486, %f480, %f485;
+ add.f32 %f487, %f484, %f486;
+ mov.f32 %f488, 0f3EE8BA2E;
+ mul.rn.f32 %f489, %f488, %f485;
+ neg.f32 %f490, %f489;
+ fma.rn.f32 %f491, %f488, %f485, %f490;
+ fma.rn.f32 %f492, %f488, %f487, %f491;
+ fma.rn.f32 %f494, %f1006, %f485, %f492;
+ add.rn.f32 %f495, %f489, %f494;
+ neg.f32 %f496, %f495;
+ add.rn.f32 %f497, %f489, %f496;
+ add.rn.f32 %f498, %f497, %f494;
+ mov.b32 %r252, %f495;
+ setp.eq.s32 %p64, %r252, 1118925336;
+ add.s32 %r253, %r252, -1;
+ mov.b32 %f499, %r253;
+ add.f32 %f500, %f498, 0f37000000;
+ selp.f32 %f501, %f499, %f495, %p64;
+ selp.f32 %f95, %f500, %f498, %p64;
+ mul.f32 %f502, %f501, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f503, %f502;
+ fma.rn.f32 %f505, %f503, %f1007, %f501;
+ fma.rn.f32 %f507, %f503, %f1008, %f505;
+ mul.f32 %f508, %f507, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f509, %f508;
+ add.f32 %f510, %f503, 0f00000000;
+ ex2.approx.f32 %f511, %f510;
+ mul.f32 %f512, %f509, %f511;
+ setp.lt.f32 %p65, %f501, 0fC2D20000;
+ selp.f32 %f513, 0f00000000, %f512, %p65;
+ setp.gt.f32 %p66, %f501, 0f42D20000;
+ selp.f32 %f1086, 0f7F800000, %f513, %p66;
+ setp.eq.f32 %p67, %f1086, 0f7F800000;
+ @%p67 bra BB0_71;
+
+ fma.rn.f32 %f1086, %f1086, %f95, %f1086;
+
+BB0_71:
+ mov.f32 %f1040, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f1039, %f1040;
+ fma.rn.f32 %f1038, %f1039, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f1037, %f1038;
+ setp.lt.f32 %p68, %f1082, 0f00000000;
+ setp.eq.f32 %p69, %f1037, 0f3F800000;
+ and.pred %p2, %p68, %p69;
+ mov.b32 %r254, %f1086;
+ xor.b32 %r255, %r254, -2147483648;
+ mov.b32 %f514, %r255;
+ selp.f32 %f1088, %f514, %f1086, %p2;
+ setp.eq.f32 %p70, %f1082, 0f00000000;
+ @%p70 bra BB0_74;
+ bra.uni BB0_72;
+
+BB0_74:
+ add.f32 %f517, %f1082, %f1082;
+ selp.f32 %f1088, %f517, 0f00000000, %p69;
+ bra.uni BB0_75;
+
+BB0_142:
+ mov.u64 %rd206, image_HDR;
+ cvta.global.u64 %rd201, %rd206;
+ mov.u32 %r352, 8;
+ // inline asm
+ call (%rd200), _rt_buffer_get_64, (%rd201, %r105, %r352, %rd23, %rd24, %rd30, %rd30);
+ // inline asm
+ mov.f32 %f973, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f973;}
+
+ // inline asm
+ mov.u16 %rs117, 0;
+ st.v4.u16 [%rd200], {%rs116, %rs116, %rs116, %rs117};
+
+BB0_143:
+ ld.global.u32 %r353, [additive];
+ setp.eq.s32 %p145, %r353, 0;
+ @%p145 bra BB0_145;
+
+ mov.u64 %rd219, image_RNM0;
+ cvta.global.u64 %rd208, %rd219;
+ mov.u32 %r357, 8;
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd208, %r105, %r357, %rd23, %rd24, %rd30, %rd30);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd207];
+ // inline asm
+ { cvt.f32.f16 %f974, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f975, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f976, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd213), _rt_buffer_get_64, (%rd208, %r105, %r357, %rd23, %rd24, %rd30, %rd30);
+ // inline asm
+ add.f32 %f977, %f974, 0f00000000;
+ add.f32 %f978, %f975, 0f00000000;
+ add.f32 %f979, %f976, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f979;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f978;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f977;}
+
+ // inline asm
+ mov.u16 %rs128, 0;
+ st.v4.u16 [%rd213], {%rs121, %rs122, %rs123, %rs128};
+ bra.uni BB0_146;
+
+BB0_145:
+ mov.u64 %rd226, image_RNM0;
+ cvta.global.u64 %rd221, %rd226;
+ mov.u32 %r359, 8;
+ // inline asm
+ call (%rd220), _rt_buffer_get_64, (%rd221, %r105, %r359, %rd23, %rd24, %rd30, %rd30);
+ // inline asm
+ mov.f32 %f980, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f980;}
+
+ // inline asm
+ mov.u16 %rs130, 0;
+ st.v4.u16 [%rd220], {%rs129, %rs129, %rs129, %rs130};
+
+BB0_146:
+ ld.global.u32 %r360, [additive];
+ setp.eq.s32 %p146, %r360, 0;
+ @%p146 bra BB0_148;
+
+ mov.u64 %rd239, image_RNM1;
+ cvta.global.u64 %rd228, %rd239;
+ mov.u32 %r364, 8;
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd228, %r105, %r364, %rd23, %rd24, %rd30, %rd30);
+ // inline asm
+ ld.v4.u16 {%rs137, %rs138, %rs139, %rs140}, [%rd227];
+ // inline asm
+ { cvt.f32.f16 %f981, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f982, %rs138;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f983, %rs139;}
+
+ // inline asm
+ // inline asm
+ call (%rd233), _rt_buffer_get_64, (%rd228, %r105, %r364, %rd23, %rd24, %rd30, %rd30);
+ // inline asm
+ add.f32 %f984, %f981, 0f00000000;
+ add.f32 %f985, %f982, 0f00000000;
+ add.f32 %f986, %f983, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs136, %f986;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f985;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f984;}
+
+ // inline asm
+ mov.u16 %rs141, 0;
+ st.v4.u16 [%rd233], {%rs134, %rs135, %rs136, %rs141};
+ bra.uni BB0_149;
+
+BB0_148:
+ mov.u64 %rd246, image_RNM1;
+ cvta.global.u64 %rd241, %rd246;
+ mov.u32 %r366, 8;
+ // inline asm
+ call (%rd240), _rt_buffer_get_64, (%rd241, %r105, %r366, %rd23, %rd24, %rd30, %rd30);
+ // inline asm
+ mov.f32 %f987, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs142, %f987;}
+
+ // inline asm
+ mov.u16 %rs143, 0;
+ st.v4.u16 [%rd240], {%rs142, %rs142, %rs142, %rs143};
+
+BB0_149:
+ ld.global.u32 %r367, [additive];
+ setp.eq.s32 %p147, %r367, 0;
+ @%p147 bra BB0_151;
+
+ mov.u64 %rd259, image_RNM2;
+ cvta.global.u64 %rd248, %rd259;
+ mov.u32 %r371, 8;
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd248, %r105, %r371, %rd23, %rd24, %rd30, %rd30);
+ // inline asm
+ ld.v4.u16 {%rs150, %rs151, %rs152, %rs153}, [%rd247];
+ // inline asm
+ { cvt.f32.f16 %f988, %rs150;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f989, %rs151;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f990, %rs152;}
+
+ // inline asm
+ // inline asm
+ call (%rd253), _rt_buffer_get_64, (%rd248, %r105, %r371, %rd23, %rd24, %rd30, %rd30);
+ // inline asm
+ add.f32 %f991, %f988, 0f00000000;
+ add.f32 %f992, %f989, 0f00000000;
+ add.f32 %f993, %f990, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs149, %f993;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs148, %f992;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f991;}
+
+ // inline asm
+ mov.u16 %rs154, 0;
+ st.v4.u16 [%rd253], {%rs147, %rs148, %rs149, %rs154};
+ bra.uni BB0_152;
+
+BB0_151:
+ mov.u64 %rd266, image_RNM2;
+ cvta.global.u64 %rd261, %rd266;
+ mov.u32 %r373, 8;
+ // inline asm
+ call (%rd260), _rt_buffer_get_64, (%rd261, %r105, %r373, %rd23, %rd24, %rd30, %rd30);
+ // inline asm
+ mov.f32 %f994, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs155, %f994;}
+
+ // inline asm
+ mov.u16 %rs156, 0;
+ st.v4.u16 [%rd260], {%rs155, %rs155, %rs155, %rs156};
+ bra.uni BB0_152;
+
+BB0_72:
+ setp.geu.f32 %p71, %f1082, 0f00000000;
+ @%p71 bra BB0_75;
+
+ mov.f32 %f1044, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f516, %f1044;
+ setp.neu.f32 %p72, %f516, 0f3EE8BA2E;
+ selp.f32 %f1088, 0f7FFFFFFF, %f1088, %p72;
+
+BB0_75:
+ abs.f32 %f1041, %f1082;
+ add.f32 %f518, %f1041, 0f3EE8BA2E;
+ mov.b32 %r256, %f518;
+ setp.lt.s32 %p74, %r256, 2139095040;
+ @%p74 bra BB0_80;
+
+ abs.f32 %f1042, %f1082;
+ setp.gtu.f32 %p75, %f1042, 0f7F800000;
+ @%p75 bra BB0_79;
+ bra.uni BB0_77;
+
+BB0_79:
+ add.f32 %f1088, %f1082, 0f3EE8BA2E;
+ bra.uni BB0_80;
+
+BB0_77:
+ abs.f32 %f1043, %f1082;
+ setp.neu.f32 %p76, %f1043, 0f7F800000;
+ @%p76 bra BB0_80;
+
+ selp.f32 %f1088, 0fFF800000, 0f7F800000, %p2;
+
+BB0_80:
+ mul.f32 %f519, %f1088, 0f437F0000;
+ setp.eq.f32 %p77, %f1082, 0f3F800000;
+ selp.f32 %f520, 0f437F0000, %f519, %p77;
+ cvt.rzi.u32.f32 %r257, %f520;
+ cvt.u16.u32 %rs13, %r257;
+ mov.u16 %rs14, 255;
+ st.v2.u8 [%rd58], {%rs13, %rs14};
+ ld.global.u32 %r407, [imageEnabled];
+
+BB0_81:
+ and.b32 %r258, %r407, 1;
+ setp.eq.b32 %p78, %r258, 1;
+ @!%p78 bra BB0_116;
+ bra.uni BB0_82;
+
+BB0_82:
+ mov.f32 %f1016, 0fB5BFBE8E;
+ mov.f32 %f1015, 0fBF317200;
+ mov.f32 %f1014, 0f00000000;
+ mov.f32 %f1013, 0f35BFBE8E;
+ mov.f32 %f1012, 0f3F317200;
+ mov.f32 %f1011, 0f3DAAAABD;
+ mov.f32 %f1010, 0f3C4CAF63;
+ mov.f32 %f1009, 0f3B18F0FE;
+ abs.f32 %f107, %f73;
+ setp.lt.f32 %p79, %f107, 0f00800000;
+ mul.f32 %f526, %f107, 0f4B800000;
+ selp.f32 %f527, 0fC3170000, 0fC2FE0000, %p79;
+ selp.f32 %f528, %f526, %f107, %p79;
+ mov.b32 %r259, %f528;
+ and.b32 %r260, %r259, 8388607;
+ or.b32 %r261, %r260, 1065353216;
+ mov.b32 %f529, %r261;
+ shr.u32 %r262, %r259, 23;
+ cvt.rn.f32.u32 %f530, %r262;
+ add.f32 %f531, %f527, %f530;
+ setp.gt.f32 %p80, %f529, 0f3FB504F3;
+ mul.f32 %f532, %f529, 0f3F000000;
+ add.f32 %f533, %f531, 0f3F800000;
+ selp.f32 %f534, %f532, %f529, %p80;
+ selp.f32 %f535, %f533, %f531, %p80;
+ add.f32 %f536, %f534, 0fBF800000;
+ add.f32 %f522, %f534, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f521,%f522;
+ // inline asm
+ add.f32 %f537, %f536, %f536;
+ mul.f32 %f538, %f521, %f537;
+ mul.f32 %f539, %f538, %f538;
+ fma.rn.f32 %f542, %f1009, %f539, %f1010;
+ fma.rn.f32 %f544, %f542, %f539, %f1011;
+ mul.rn.f32 %f545, %f544, %f539;
+ mul.rn.f32 %f546, %f545, %f538;
+ sub.f32 %f547, %f536, %f538;
+ neg.f32 %f548, %f538;
+ add.f32 %f549, %f547, %f547;
+ fma.rn.f32 %f550, %f548, %f536, %f549;
+ mul.rn.f32 %f551, %f521, %f550;
+ add.f32 %f552, %f546, %f538;
+ sub.f32 %f553, %f538, %f552;
+ add.f32 %f554, %f546, %f553;
+ add.f32 %f555, %f551, %f554;
+ add.f32 %f556, %f552, %f555;
+ sub.f32 %f557, %f552, %f556;
+ add.f32 %f558, %f555, %f557;
+ mul.rn.f32 %f560, %f535, %f1012;
+ mul.rn.f32 %f562, %f535, %f1013;
+ add.f32 %f563, %f560, %f556;
+ sub.f32 %f564, %f560, %f563;
+ add.f32 %f565, %f556, %f564;
+ add.f32 %f566, %f558, %f565;
+ add.f32 %f567, %f562, %f566;
+ add.f32 %f568, %f563, %f567;
+ sub.f32 %f569, %f563, %f568;
+ add.f32 %f570, %f567, %f569;
+ mov.f32 %f571, 0f3EE66666;
+ mul.rn.f32 %f572, %f571, %f568;
+ neg.f32 %f573, %f572;
+ fma.rn.f32 %f574, %f571, %f568, %f573;
+ fma.rn.f32 %f575, %f571, %f570, %f574;
+ fma.rn.f32 %f577, %f1014, %f568, %f575;
+ add.rn.f32 %f578, %f572, %f577;
+ neg.f32 %f579, %f578;
+ add.rn.f32 %f580, %f572, %f579;
+ add.rn.f32 %f581, %f580, %f577;
+ mov.b32 %r263, %f578;
+ setp.eq.s32 %p81, %r263, 1118925336;
+ add.s32 %r264, %r263, -1;
+ mov.b32 %f582, %r264;
+ add.f32 %f583, %f581, 0f37000000;
+ selp.f32 %f584, %f582, %f578, %p81;
+ selp.f32 %f108, %f583, %f581, %p81;
+ mul.f32 %f585, %f584, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f586, %f585;
+ fma.rn.f32 %f588, %f586, %f1015, %f584;
+ fma.rn.f32 %f590, %f586, %f1016, %f588;
+ mul.f32 %f591, %f590, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f592, %f591;
+ add.f32 %f593, %f586, 0f00000000;
+ ex2.approx.f32 %f594, %f593;
+ mul.f32 %f595, %f592, %f594;
+ setp.lt.f32 %p82, %f584, 0fC2D20000;
+ selp.f32 %f596, 0f00000000, %f595, %p82;
+ setp.gt.f32 %p83, %f584, 0f42D20000;
+ selp.f32 %f1089, 0f7F800000, %f596, %p83;
+ setp.eq.f32 %p84, %f1089, 0f7F800000;
+ @%p84 bra BB0_84;
+
+ fma.rn.f32 %f1089, %f1089, %f108, %f1089;
+
+BB0_84:
+ mov.f32 %f1048, 0f3E666666;
+ cvt.rzi.f32.f32 %f1047, %f1048;
+ fma.rn.f32 %f1046, %f1047, 0fC0000000, 0f3EE66666;
+ abs.f32 %f1045, %f1046;
+ setp.lt.f32 %p85, %f73, 0f00000000;
+ setp.eq.f32 %p86, %f1045, 0f3F800000;
+ and.pred %p3, %p85, %p86;
+ mov.b32 %r265, %f1089;
+ xor.b32 %r266, %r265, -2147483648;
+ mov.b32 %f597, %r266;
+ selp.f32 %f1091, %f597, %f1089, %p3;
+ setp.eq.f32 %p87, %f73, 0f00000000;
+ @%p87 bra BB0_87;
+ bra.uni BB0_85;
+
+BB0_87:
+ add.f32 %f600, %f73, %f73;
+ selp.f32 %f1091, %f600, 0f00000000, %p86;
+ bra.uni BB0_88;
+
+BB0_85:
+ setp.geu.f32 %p88, %f73, 0f00000000;
+ @%p88 bra BB0_88;
+
+ mov.f32 %f1056, 0f3EE66666;
+ cvt.rzi.f32.f32 %f599, %f1056;
+ setp.neu.f32 %p89, %f599, 0f3EE66666;
+ selp.f32 %f1091, 0f7FFFFFFF, %f1091, %p89;
+
+BB0_88:
+ abs.f32 %f1049, %f73;
+ add.f32 %f601, %f1049, 0f3EE66666;
+ mov.b32 %r267, %f601;
+ setp.lt.s32 %p91, %r267, 2139095040;
+ @%p91 bra BB0_93;
+
+ abs.f32 %f1054, %f73;
+ setp.gtu.f32 %p92, %f1054, 0f7F800000;
+ @%p92 bra BB0_92;
+ bra.uni BB0_90;
+
+BB0_92:
+ add.f32 %f1091, %f73, 0f3EE66666;
+ bra.uni BB0_93;
+
+BB0_90:
+ abs.f32 %f1055, %f73;
+ setp.neu.f32 %p93, %f1055, 0f7F800000;
+ @%p93 bra BB0_93;
+
+ selp.f32 %f1091, 0fFF800000, 0f7F800000, %p3;
+
+BB0_93:
+ mov.f32 %f1050, 0f3EE66666;
+ mov.f32 %f1024, 0fB5BFBE8E;
+ mov.f32 %f1023, 0fBF317200;
+ mov.f32 %f1022, 0f00000000;
+ mov.f32 %f1021, 0f35BFBE8E;
+ mov.f32 %f1020, 0f3F317200;
+ mov.f32 %f1019, 0f3DAAAABD;
+ mov.f32 %f1018, 0f3C4CAF63;
+ mov.f32 %f1017, 0f3B18F0FE;
+ setp.eq.f32 %p94, %f73, 0f3F800000;
+ selp.f32 %f119, 0f3F800000, %f1091, %p94;
+ abs.f32 %f120, %f74;
+ setp.lt.f32 %p95, %f120, 0f00800000;
+ mul.f32 %f604, %f120, 0f4B800000;
+ selp.f32 %f605, 0fC3170000, 0fC2FE0000, %p95;
+ selp.f32 %f606, %f604, %f120, %p95;
+ mov.b32 %r268, %f606;
+ and.b32 %r269, %r268, 8388607;
+ or.b32 %r270, %r269, 1065353216;
+ mov.b32 %f607, %r270;
+ shr.u32 %r271, %r268, 23;
+ cvt.rn.f32.u32 %f608, %r271;
+ add.f32 %f609, %f605, %f608;
+ setp.gt.f32 %p96, %f607, 0f3FB504F3;
+ mul.f32 %f610, %f607, 0f3F000000;
+ add.f32 %f611, %f609, 0f3F800000;
+ selp.f32 %f612, %f610, %f607, %p96;
+ selp.f32 %f613, %f611, %f609, %p96;
+ add.f32 %f614, %f612, 0fBF800000;
+ add.f32 %f603, %f612, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f602,%f603;
+ // inline asm
+ add.f32 %f615, %f614, %f614;
+ mul.f32 %f616, %f602, %f615;
+ mul.f32 %f617, %f616, %f616;
+ fma.rn.f32 %f620, %f1017, %f617, %f1018;
+ fma.rn.f32 %f622, %f620, %f617, %f1019;
+ mul.rn.f32 %f623, %f622, %f617;
+ mul.rn.f32 %f624, %f623, %f616;
+ sub.f32 %f625, %f614, %f616;
+ neg.f32 %f626, %f616;
+ add.f32 %f627, %f625, %f625;
+ fma.rn.f32 %f628, %f626, %f614, %f627;
+ mul.rn.f32 %f629, %f602, %f628;
+ add.f32 %f630, %f624, %f616;
+ sub.f32 %f631, %f616, %f630;
+ add.f32 %f632, %f624, %f631;
+ add.f32 %f633, %f629, %f632;
+ add.f32 %f634, %f630, %f633;
+ sub.f32 %f635, %f630, %f634;
+ add.f32 %f636, %f633, %f635;
+ mul.rn.f32 %f638, %f613, %f1020;
+ mul.rn.f32 %f640, %f613, %f1021;
+ add.f32 %f641, %f638, %f634;
+ sub.f32 %f642, %f638, %f641;
+ add.f32 %f643, %f634, %f642;
+ add.f32 %f644, %f636, %f643;
+ add.f32 %f645, %f640, %f644;
+ add.f32 %f646, %f641, %f645;
+ sub.f32 %f647, %f641, %f646;
+ add.f32 %f648, %f645, %f647;
+ mul.rn.f32 %f650, %f1050, %f646;
+ neg.f32 %f651, %f650;
+ fma.rn.f32 %f652, %f1050, %f646, %f651;
+ fma.rn.f32 %f653, %f1050, %f648, %f652;
+ fma.rn.f32 %f655, %f1022, %f646, %f653;
+ add.rn.f32 %f656, %f650, %f655;
+ neg.f32 %f657, %f656;
+ add.rn.f32 %f658, %f650, %f657;
+ add.rn.f32 %f659, %f658, %f655;
+ mov.b32 %r272, %f656;
+ setp.eq.s32 %p97, %r272, 1118925336;
+ add.s32 %r273, %r272, -1;
+ mov.b32 %f660, %r273;
+ add.f32 %f661, %f659, 0f37000000;
+ selp.f32 %f662, %f660, %f656, %p97;
+ selp.f32 %f121, %f661, %f659, %p97;
+ mul.f32 %f663, %f662, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f664, %f663;
+ fma.rn.f32 %f666, %f664, %f1023, %f662;
+ fma.rn.f32 %f668, %f664, %f1024, %f666;
+ mul.f32 %f669, %f668, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f670, %f669;
+ add.f32 %f671, %f664, 0f00000000;
+ ex2.approx.f32 %f672, %f671;
+ mul.f32 %f673, %f670, %f672;
+ setp.lt.f32 %p98, %f662, 0fC2D20000;
+ selp.f32 %f674, 0f00000000, %f673, %p98;
+ setp.gt.f32 %p99, %f662, 0f42D20000;
+ selp.f32 %f1092, 0f7F800000, %f674, %p99;
+ setp.eq.f32 %p100, %f1092, 0f7F800000;
+ @%p100 bra BB0_95;
+
+ fma.rn.f32 %f1092, %f1092, %f121, %f1092;
+
+BB0_95:
+ setp.lt.f32 %p101, %f74, 0f00000000;
+ and.pred %p4, %p101, %p86;
+ mov.b32 %r274, %f1092;
+ xor.b32 %r275, %r274, -2147483648;
+ mov.b32 %f675, %r275;
+ selp.f32 %f1094, %f675, %f1092, %p4;
+ setp.eq.f32 %p103, %f74, 0f00000000;
+ @%p103 bra BB0_98;
+ bra.uni BB0_96;
+
+BB0_98:
+ add.f32 %f678, %f74, %f74;
+ selp.f32 %f1094, %f678, 0f00000000, %p86;
+ bra.uni BB0_99;
+
+BB0_96:
+ setp.geu.f32 %p104, %f74, 0f00000000;
+ @%p104 bra BB0_99;
+
+ mov.f32 %f1053, 0f3EE66666;
+ cvt.rzi.f32.f32 %f677, %f1053;
+ setp.neu.f32 %p105, %f677, 0f3EE66666;
+ selp.f32 %f1094, 0f7FFFFFFF, %f1094, %p105;
+
+BB0_99:
+ abs.f32 %f1057, %f74;
+ add.f32 %f679, %f1057, 0f3EE66666;
+ mov.b32 %r276, %f679;
+ setp.lt.s32 %p107, %r276, 2139095040;
+ @%p107 bra BB0_104;
+
+ abs.f32 %f1058, %f74;
+ setp.gtu.f32 %p108, %f1058, 0f7F800000;
+ @%p108 bra BB0_103;
+ bra.uni BB0_101;
+
+BB0_103:
+ add.f32 %f1094, %f74, 0f3EE66666;
+ bra.uni BB0_104;
+
+BB0_101:
+ abs.f32 %f1059, %f74;
+ setp.neu.f32 %p109, %f1059, 0f7F800000;
+ @%p109 bra BB0_104;
+
+ selp.f32 %f1094, 0fFF800000, 0f7F800000, %p4;
+
+BB0_104:
+ mov.f32 %f1051, 0f3EE66666;
+ mov.f32 %f1032, 0fB5BFBE8E;
+ mov.f32 %f1031, 0fBF317200;
+ mov.f32 %f1030, 0f00000000;
+ mov.f32 %f1029, 0f35BFBE8E;
+ mov.f32 %f1028, 0f3F317200;
+ mov.f32 %f1027, 0f3DAAAABD;
+ mov.f32 %f1026, 0f3C4CAF63;
+ mov.f32 %f1025, 0f3B18F0FE;
+ setp.eq.f32 %p110, %f74, 0f3F800000;
+ selp.f32 %f132, 0f3F800000, %f1094, %p110;
+ abs.f32 %f133, %f75;
+ setp.lt.f32 %p111, %f133, 0f00800000;
+ mul.f32 %f682, %f133, 0f4B800000;
+ selp.f32 %f683, 0fC3170000, 0fC2FE0000, %p111;
+ selp.f32 %f684, %f682, %f133, %p111;
+ mov.b32 %r277, %f684;
+ and.b32 %r278, %r277, 8388607;
+ or.b32 %r279, %r278, 1065353216;
+ mov.b32 %f685, %r279;
+ shr.u32 %r280, %r277, 23;
+ cvt.rn.f32.u32 %f686, %r280;
+ add.f32 %f687, %f683, %f686;
+ setp.gt.f32 %p112, %f685, 0f3FB504F3;
+ mul.f32 %f688, %f685, 0f3F000000;
+ add.f32 %f689, %f687, 0f3F800000;
+ selp.f32 %f690, %f688, %f685, %p112;
+ selp.f32 %f691, %f689, %f687, %p112;
+ add.f32 %f692, %f690, 0fBF800000;
+ add.f32 %f681, %f690, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f680,%f681;
+ // inline asm
+ add.f32 %f693, %f692, %f692;
+ mul.f32 %f694, %f680, %f693;
+ mul.f32 %f695, %f694, %f694;
+ fma.rn.f32 %f698, %f1025, %f695, %f1026;
+ fma.rn.f32 %f700, %f698, %f695, %f1027;
+ mul.rn.f32 %f701, %f700, %f695;
+ mul.rn.f32 %f702, %f701, %f694;
+ sub.f32 %f703, %f692, %f694;
+ neg.f32 %f704, %f694;
+ add.f32 %f705, %f703, %f703;
+ fma.rn.f32 %f706, %f704, %f692, %f705;
+ mul.rn.f32 %f707, %f680, %f706;
+ add.f32 %f708, %f702, %f694;
+ sub.f32 %f709, %f694, %f708;
+ add.f32 %f710, %f702, %f709;
+ add.f32 %f711, %f707, %f710;
+ add.f32 %f712, %f708, %f711;
+ sub.f32 %f713, %f708, %f712;
+ add.f32 %f714, %f711, %f713;
+ mul.rn.f32 %f716, %f691, %f1028;
+ mul.rn.f32 %f718, %f691, %f1029;
+ add.f32 %f719, %f716, %f712;
+ sub.f32 %f720, %f716, %f719;
+ add.f32 %f721, %f712, %f720;
+ add.f32 %f722, %f714, %f721;
+ add.f32 %f723, %f718, %f722;
+ add.f32 %f724, %f719, %f723;
+ sub.f32 %f725, %f719, %f724;
+ add.f32 %f726, %f723, %f725;
+ mul.rn.f32 %f728, %f1051, %f724;
+ neg.f32 %f729, %f728;
+ fma.rn.f32 %f730, %f1051, %f724, %f729;
+ fma.rn.f32 %f731, %f1051, %f726, %f730;
+ fma.rn.f32 %f733, %f1030, %f724, %f731;
+ add.rn.f32 %f734, %f728, %f733;
+ neg.f32 %f735, %f734;
+ add.rn.f32 %f736, %f728, %f735;
+ add.rn.f32 %f737, %f736, %f733;
+ mov.b32 %r281, %f734;
+ setp.eq.s32 %p113, %r281, 1118925336;
+ add.s32 %r282, %r281, -1;
+ mov.b32 %f738, %r282;
+ add.f32 %f739, %f737, 0f37000000;
+ selp.f32 %f740, %f738, %f734, %p113;
+ selp.f32 %f134, %f739, %f737, %p113;
+ mul.f32 %f741, %f740, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f742, %f741;
+ fma.rn.f32 %f744, %f742, %f1031, %f740;
+ fma.rn.f32 %f746, %f742, %f1032, %f744;
+ mul.f32 %f747, %f746, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f748, %f747;
+ add.f32 %f749, %f742, 0f00000000;
+ ex2.approx.f32 %f750, %f749;
+ mul.f32 %f751, %f748, %f750;
+ setp.lt.f32 %p114, %f740, 0fC2D20000;
+ selp.f32 %f752, 0f00000000, %f751, %p114;
+ setp.gt.f32 %p115, %f740, 0f42D20000;
+ selp.f32 %f1095, 0f7F800000, %f752, %p115;
+ setp.eq.f32 %p116, %f1095, 0f7F800000;
+ @%p116 bra BB0_106;
+
+ fma.rn.f32 %f1095, %f1095, %f134, %f1095;
+
+BB0_106:
+ setp.lt.f32 %p117, %f75, 0f00000000;
+ and.pred %p5, %p117, %p86;
+ mov.b32 %r283, %f1095;
+ xor.b32 %r284, %r283, -2147483648;
+ mov.b32 %f753, %r284;
+ selp.f32 %f1097, %f753, %f1095, %p5;
+ setp.eq.f32 %p119, %f75, 0f00000000;
+ @%p119 bra BB0_109;
+ bra.uni BB0_107;
+
+BB0_109:
+ add.f32 %f756, %f75, %f75;
+ selp.f32 %f1097, %f756, 0f00000000, %p86;
+ bra.uni BB0_110;
+
+BB0_107:
+ setp.geu.f32 %p120, %f75, 0f00000000;
+ @%p120 bra BB0_110;
+
+ mov.f32 %f1052, 0f3EE66666;
+ cvt.rzi.f32.f32 %f755, %f1052;
+ setp.neu.f32 %p121, %f755, 0f3EE66666;
+ selp.f32 %f1097, 0f7FFFFFFF, %f1097, %p121;
+
+BB0_110:
+ abs.f32 %f1060, %f75;
+ add.f32 %f757, %f1060, 0f3EE66666;
+ mov.b32 %r285, %f757;
+ setp.lt.s32 %p123, %r285, 2139095040;
+ @%p123 bra BB0_115;
+
+ abs.f32 %f1061, %f75;
+ setp.gtu.f32 %p124, %f1061, 0f7F800000;
+ @%p124 bra BB0_114;
+ bra.uni BB0_112;
+
+BB0_114:
+ add.f32 %f1097, %f75, 0f3EE66666;
+ bra.uni BB0_115;
+
+BB0_112:
+ abs.f32 %f1062, %f75;
+ setp.neu.f32 %p125, %f1062, 0f7F800000;
+ @%p125 bra BB0_115;
+
+ selp.f32 %f1097, 0fFF800000, 0f7F800000, %p5;
+
+BB0_115:
+ mov.u32 %r374, 4;
+ setp.eq.f32 %p126, %f75, 0f3F800000;
+ selp.f32 %f758, 0f3F800000, %f1097, %p126;
+ cvt.u64.u32 %rd68, %r3;
+ cvt.u64.u32 %rd67, %r2;
+ mov.u64 %rd71, image;
+ cvta.global.u64 %rd66, %rd71;
+ // inline asm
+ call (%rd65), _rt_buffer_get_64, (%rd66, %r105, %r374, %rd67, %rd68, %rd30, %rd30);
+ // inline asm
+ cvt.sat.f32.f32 %f759, %f758;
+ mul.f32 %f760, %f759, 0f437FFD71;
+ cvt.rzi.u32.f32 %r288, %f760;
+ cvt.sat.f32.f32 %f761, %f132;
+ mul.f32 %f762, %f761, 0f437FFD71;
+ cvt.rzi.u32.f32 %r289, %f762;
+ cvt.sat.f32.f32 %f763, %f119;
+ mul.f32 %f764, %f763, 0f437FFD71;
+ cvt.rzi.u32.f32 %r290, %f764;
+ cvt.u16.u32 %rs15, %r288;
+ cvt.u16.u32 %rs16, %r290;
+ cvt.u16.u32 %rs17, %r289;
+ mov.u16 %rs18, 255;
+ st.v4.u8 [%rd65], {%rs15, %rs17, %rs16, %rs18};
+ ld.global.u32 %r407, [imageEnabled];
+
+BB0_116:
+ and.b32 %r291, %r407, 4;
+ setp.eq.s32 %p127, %r291, 0;
+ @%p127 bra BB0_120;
+
+ ld.global.u32 %r292, [additive];
+ setp.eq.s32 %p128, %r292, 0;
+ cvt.u64.u32 %rd16, %r2;
+ cvt.u64.u32 %rd17, %r3;
+ mov.f32 %f765, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs19, %f765;}
+
+ // inline asm
+ @%p128 bra BB0_119;
+
+ mov.u64 %rd84, image_HDR;
+ cvta.global.u64 %rd73, %rd84;
+ mov.u32 %r296, 8;
+ // inline asm
+ call (%rd72), _rt_buffer_get_64, (%rd73, %r105, %r296, %rd16, %rd17, %rd30, %rd30);
+ // inline asm
+ ld.v4.u16 {%rs26, %rs27, %rs28, %rs29}, [%rd72];
+ // inline asm
+ { cvt.f32.f16 %f766, %rs26;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f767, %rs27;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f768, %rs28;}
+
+ // inline asm
+ // inline asm
+ call (%rd78), _rt_buffer_get_64, (%rd73, %r105, %r296, %rd16, %rd17, %rd30, %rd30);
+ // inline asm
+ add.f32 %f769, %f73, %f766;
+ add.f32 %f770, %f74, %f767;
+ add.f32 %f771, %f75, %f768;
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f771;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f770;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f769;}
+
+ // inline asm
+ st.v4.u16 [%rd78], {%rs23, %rs24, %rs25, %rs19};
+ bra.uni BB0_120;
+
+BB0_119:
+ mov.u64 %rd91, image_HDR;
+ cvta.global.u64 %rd86, %rd91;
+ mov.u32 %r298, 8;
+ // inline asm
+ call (%rd85), _rt_buffer_get_64, (%rd86, %r105, %r298, %rd16, %rd17, %rd30, %rd30);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f75;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f74;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f73;}
+
+ // inline asm
+ st.v4.u16 [%rd85], {%rs30, %rs31, %rs32, %rs19};
+
+BB0_120:
+ mov.f32 %f1098, 0f00000000;
+ mov.u32 %r375, 4;
+ ld.global.v2.u32 {%r301, %r302}, [pixelID];
+ cvt.u64.u32 %rd94, %r301;
+ cvt.u64.u32 %rd95, %r302;
+ mov.u64 %rd98, uvtangent;
+ cvta.global.u64 %rd93, %rd98;
+ // inline asm
+ call (%rd92), _rt_buffer_get_64, (%rd93, %r105, %r375, %rd94, %rd95, %rd30, %rd30);
+ // inline asm
+ ld.u32 %r94, [%rd92];
+ shr.u32 %r95, %r94, 16;
+ cvt.u16.u32 %rs33, %r95;
+ and.b16 %rs34, %rs33, 255;
+ cvt.u16.u32 %rs35, %r94;
+ or.b16 %rs36, %rs35, %rs34;
+ setp.eq.s16 %p129, %rs36, 0;
+ mov.f32 %f1099, %f1098;
+ mov.f32 %f1100, %f1098;
+ @%p129 bra BB0_122;
+
+ ld.u8 %rs37, [%rd92+1];
+ and.b16 %rs39, %rs35, 255;
+ cvt.rn.f32.u16 %f778, %rs39;
+ div.rn.f32 %f779, %f778, 0f437F0000;
+ fma.rn.f32 %f780, %f779, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f781, %rs37;
+ div.rn.f32 %f782, %f781, 0f437F0000;
+ fma.rn.f32 %f783, %f782, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f784, %rs34;
+ div.rn.f32 %f785, %f784, 0f437F0000;
+ fma.rn.f32 %f786, %f785, 0f40000000, 0fBF800000;
+ mul.f32 %f787, %f783, %f783;
+ fma.rn.f32 %f788, %f780, %f780, %f787;
+ fma.rn.f32 %f789, %f786, %f786, %f788;
+ sqrt.rn.f32 %f790, %f789;
+ rcp.rn.f32 %f791, %f790;
+ mul.f32 %f1098, %f780, %f791;
+ mul.f32 %f1099, %f783, %f791;
+ mul.f32 %f1100, %f786, %f791;
+
+BB0_122:
+ mov.f32 %f1101, 0f00000000;
+ mov.u32 %r376, 4;
+ mul.f32 %f795, %f1065, %f1099;
+ mul.f32 %f796, %f1064, %f1100;
+ sub.f32 %f797, %f796, %f795;
+ mul.f32 %f798, %f1063, %f1100;
+ mul.f32 %f799, %f1065, %f1098;
+ sub.f32 %f800, %f799, %f798;
+ mul.f32 %f801, %f1064, %f1098;
+ mul.f32 %f802, %f1063, %f1099;
+ sub.f32 %f803, %f802, %f801;
+ setp.lt.u32 %p130, %r94, 16777216;
+ selp.f32 %f804, 0fBF800000, 0f3F800000, %p130;
+ mul.f32 %f805, %f797, %f804;
+ mul.f32 %f806, %f800, %f804;
+ mul.f32 %f807, %f803, %f804;
+ mul.f32 %f808, %f805, 0f00000000;
+ mul.f32 %f809, %f806, 0f00000000;
+ mul.f32 %f810, %f807, 0f00000000;
+ fma.rn.f32 %f811, %f1098, 0f3F5105EC, %f808;
+ fma.rn.f32 %f812, %f1099, 0f3F5105EC, %f809;
+ fma.rn.f32 %f813, %f1100, 0f3F5105EC, %f810;
+ mul.f32 %f151, %f1063, 0f3F13CD3A;
+ add.f32 %f152, %f151, %f811;
+ mul.f32 %f153, %f1064, 0f3F13CD3A;
+ add.f32 %f154, %f153, %f812;
+ mul.f32 %f155, %f1065, 0f3F13CD3A;
+ add.f32 %f156, %f155, %f813;
+ ld.global.v2.u32 {%r307, %r308}, [pixelID];
+ cvt.u64.u32 %rd101, %r307;
+ cvt.u64.u32 %rd102, %r308;
+ // inline asm
+ call (%rd99), _rt_buffer_get_64, (%rd93, %r105, %r376, %rd101, %rd102, %rd30, %rd30);
+ // inline asm
+ ld.u32 %r96, [%rd99];
+ shr.u32 %r97, %r96, 16;
+ cvt.u16.u32 %rs42, %r97;
+ and.b16 %rs43, %rs42, 255;
+ cvt.u16.u32 %rs44, %r96;
+ or.b16 %rs45, %rs44, %rs43;
+ setp.eq.s16 %p131, %rs45, 0;
+ mov.f32 %f1102, %f1101;
+ mov.f32 %f1103, %f1101;
+ @%p131 bra BB0_124;
+
+ ld.u8 %rs46, [%rd99+1];
+ and.b16 %rs48, %rs44, 255;
+ cvt.rn.f32.u16 %f814, %rs48;
+ div.rn.f32 %f815, %f814, 0f437F0000;
+ fma.rn.f32 %f816, %f815, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f817, %rs46;
+ div.rn.f32 %f818, %f817, 0f437F0000;
+ fma.rn.f32 %f819, %f818, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f820, %rs43;
+ div.rn.f32 %f821, %f820, 0f437F0000;
+ fma.rn.f32 %f822, %f821, 0f40000000, 0fBF800000;
+ mul.f32 %f823, %f819, %f819;
+ fma.rn.f32 %f824, %f816, %f816, %f823;
+ fma.rn.f32 %f825, %f822, %f822, %f824;
+ sqrt.rn.f32 %f826, %f825;
+ rcp.rn.f32 %f827, %f826;
+ mul.f32 %f1101, %f816, %f827;
+ mul.f32 %f1102, %f819, %f827;
+ mul.f32 %f1103, %f822, %f827;
+
+BB0_124:
+ mov.f32 %f1104, 0f00000000;
+ mov.u32 %r377, 4;
+ mul.f32 %f831, %f1065, %f1102;
+ mul.f32 %f832, %f1064, %f1103;
+ sub.f32 %f833, %f832, %f831;
+ mul.f32 %f834, %f1063, %f1103;
+ mul.f32 %f835, %f1065, %f1101;
+ sub.f32 %f836, %f835, %f834;
+ mul.f32 %f837, %f1064, %f1101;
+ mul.f32 %f838, %f1063, %f1102;
+ sub.f32 %f839, %f838, %f837;
+ setp.lt.u32 %p132, %r96, 16777216;
+ selp.f32 %f840, 0fBF800000, 0f3F800000, %p132;
+ mul.f32 %f841, %f833, %f840;
+ mul.f32 %f842, %f836, %f840;
+ mul.f32 %f843, %f839, %f840;
+ mul.f32 %f844, %f841, 0f3F3504F3;
+ mul.f32 %f845, %f842, 0f3F3504F3;
+ mul.f32 %f846, %f843, 0f3F3504F3;
+ fma.rn.f32 %f847, %f1101, 0fBED105EC, %f844;
+ fma.rn.f32 %f848, %f1102, 0fBED105EC, %f845;
+ fma.rn.f32 %f849, %f1103, 0fBED105EC, %f846;
+ add.f32 %f163, %f151, %f847;
+ add.f32 %f164, %f153, %f848;
+ add.f32 %f165, %f155, %f849;
+ ld.global.v2.u32 {%r313, %r314}, [pixelID];
+ cvt.u64.u32 %rd108, %r313;
+ cvt.u64.u32 %rd109, %r314;
+ // inline asm
+ call (%rd106), _rt_buffer_get_64, (%rd93, %r105, %r377, %rd108, %rd109, %rd30, %rd30);
+ // inline asm
+ ld.u32 %r98, [%rd106];
+ shr.u32 %r99, %r98, 16;
+ cvt.u16.u32 %rs51, %r99;
+ and.b16 %rs52, %rs51, 255;
+ cvt.u16.u32 %rs53, %r98;
+ or.b16 %rs54, %rs53, %rs52;
+ setp.eq.s16 %p133, %rs54, 0;
+ mov.f32 %f1105, %f1104;
+ mov.f32 %f1106, %f1104;
+ @%p133 bra BB0_126;
+
+ ld.u8 %rs55, [%rd106+1];
+ and.b16 %rs57, %rs53, 255;
+ cvt.rn.f32.u16 %f850, %rs57;
+ div.rn.f32 %f851, %f850, 0f437F0000;
+ fma.rn.f32 %f852, %f851, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f853, %rs55;
+ div.rn.f32 %f854, %f853, 0f437F0000;
+ fma.rn.f32 %f855, %f854, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f856, %rs52;
+ div.rn.f32 %f857, %f856, 0f437F0000;
+ fma.rn.f32 %f858, %f857, 0f40000000, 0fBF800000;
+ mul.f32 %f859, %f855, %f855;
+ fma.rn.f32 %f860, %f852, %f852, %f859;
+ fma.rn.f32 %f861, %f858, %f858, %f860;
+ sqrt.rn.f32 %f862, %f861;
+ rcp.rn.f32 %f863, %f862;
+ mul.f32 %f1104, %f852, %f863;
+ mul.f32 %f1105, %f855, %f863;
+ mul.f32 %f1106, %f858, %f863;
+
+BB0_126:
+ mul.f32 %f865, %f1065, %f1105;
+ mul.f32 %f866, %f1064, %f1106;
+ sub.f32 %f867, %f866, %f865;
+ mul.f32 %f868, %f1063, %f1106;
+ mul.f32 %f869, %f1065, %f1104;
+ sub.f32 %f870, %f869, %f868;
+ mul.f32 %f871, %f1064, %f1104;
+ mul.f32 %f872, %f1063, %f1105;
+ sub.f32 %f873, %f872, %f871;
+ setp.lt.u32 %p134, %r98, 16777216;
+ selp.f32 %f874, 0fBF800000, 0f3F800000, %p134;
+ mul.f32 %f875, %f867, %f874;
+ mul.f32 %f876, %f870, %f874;
+ mul.f32 %f877, %f873, %f874;
+ mul.f32 %f878, %f875, 0fBF3504F3;
+ mul.f32 %f879, %f876, 0fBF3504F3;
+ mul.f32 %f880, %f877, 0fBF3504F3;
+ fma.rn.f32 %f881, %f1104, 0fBED105EC, %f878;
+ fma.rn.f32 %f882, %f1105, 0fBED105EC, %f879;
+ fma.rn.f32 %f883, %f1106, 0fBED105EC, %f880;
+ add.f32 %f884, %f151, %f881;
+ add.f32 %f885, %f153, %f882;
+ add.f32 %f886, %f155, %f883;
+ ld.global.f32 %f887, [directDir];
+ mul.f32 %f888, %f152, %f887;
+ ld.global.f32 %f889, [directDir+4];
+ mul.f32 %f890, %f154, %f889;
+ neg.f32 %f891, %f890;
+ sub.f32 %f892, %f891, %f888;
+ ld.global.f32 %f893, [directDir+8];
+ mul.f32 %f894, %f156, %f893;
+ sub.f32 %f895, %f892, %f894;
+ cvt.sat.f32.f32 %f896, %f895;
+ mul.f32 %f897, %f90, %f896;
+ mul.f32 %f898, %f91, %f896;
+ mul.f32 %f899, %f92, %f896;
+ mul.f32 %f900, %f163, %f887;
+ mul.f32 %f901, %f164, %f889;
+ neg.f32 %f902, %f901;
+ sub.f32 %f903, %f902, %f900;
+ mul.f32 %f904, %f165, %f893;
+ sub.f32 %f905, %f903, %f904;
+ cvt.sat.f32.f32 %f906, %f905;
+ mul.f32 %f907, %f90, %f906;
+ mul.f32 %f908, %f91, %f906;
+ mul.f32 %f909, %f92, %f906;
+ mul.f32 %f910, %f884, %f887;
+ mul.f32 %f911, %f885, %f889;
+ neg.f32 %f912, %f911;
+ sub.f32 %f913, %f912, %f910;
+ mul.f32 %f914, %f886, %f893;
+ sub.f32 %f915, %f913, %f914;
+ cvt.sat.f32.f32 %f916, %f915;
+ mul.f32 %f917, %f90, %f916;
+ mul.f32 %f918, %f91, %f916;
+ mul.f32 %f919, %f92, %f916;
+ add.f32 %f920, %f897, %f907;
+ add.f32 %f921, %f898, %f908;
+ add.f32 %f922, %f899, %f909;
+ add.f32 %f923, %f920, %f917;
+ add.f32 %f924, %f921, %f918;
+ add.f32 %f925, %f922, %f919;
+ mul.f32 %f926, %f923, 0f3F13CD3A;
+ mul.f32 %f927, %f924, 0f3F13CD3A;
+ mul.f32 %f928, %f925, 0f3F13CD3A;
+ div.rn.f32 %f929, %f73, %f926;
+ div.rn.f32 %f930, %f74, %f927;
+ div.rn.f32 %f931, %f75, %f928;
+ setp.eq.f32 %p135, %f73, 0f00000000;
+ selp.f32 %f932, 0f00000000, %f929, %p135;
+ setp.eq.f32 %p136, %f74, 0f00000000;
+ selp.f32 %f933, 0f00000000, %f930, %p136;
+ setp.eq.f32 %p137, %f75, 0f00000000;
+ selp.f32 %f934, 0f00000000, %f931, %p137;
+ mul.f32 %f172, %f897, %f932;
+ mul.f32 %f173, %f898, %f933;
+ mul.f32 %f174, %f899, %f934;
+ mul.f32 %f175, %f907, %f932;
+ mul.f32 %f176, %f908, %f933;
+ mul.f32 %f177, %f909, %f934;
+ mul.f32 %f178, %f917, %f932;
+ mul.f32 %f179, %f918, %f933;
+ mul.f32 %f180, %f919, %f934;
+ ld.global.u32 %r317, [additive];
+ setp.eq.s32 %p138, %r317, 0;
+ cvt.u64.u32 %rd21, %r2;
+ cvt.u64.u32 %rd22, %r3;
+ mov.f32 %f864, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f864;}
+
+ // inline asm
+ @%p138 bra BB0_128;
+
+ mov.u64 %rd125, image_RNM0;
+ cvta.global.u64 %rd114, %rd125;
+ mov.u32 %r321, 8;
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd114, %r105, %r321, %rd21, %rd22, %rd30, %rd30);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd113];
+ // inline asm
+ { cvt.f32.f16 %f935, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f936, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f937, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd119), _rt_buffer_get_64, (%rd114, %r105, %r321, %rd21, %rd22, %rd30, %rd30);
+ // inline asm
+ add.f32 %f938, %f172, %f935;
+ add.f32 %f939, %f173, %f936;
+ add.f32 %f940, %f174, %f937;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f940;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f939;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f938;}
+
+ // inline asm
+ st.v4.u16 [%rd119], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_129;
+
+BB0_128:
+ mov.u64 %rd132, image_RNM0;
+ cvta.global.u64 %rd127, %rd132;
+ mov.u32 %r323, 8;
+ // inline asm
+ call (%rd126), _rt_buffer_get_64, (%rd127, %r105, %r323, %rd21, %rd22, %rd30, %rd30);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f174;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f173;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f172;}
+
+ // inline asm
+ st.v4.u16 [%rd126], {%rs71, %rs72, %rs73, %rs60};
+
+BB0_129:
+ ld.global.u32 %r324, [additive];
+ setp.eq.s32 %p139, %r324, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f864;}
+
+ // inline asm
+ @%p139 bra BB0_131;
+
+ mov.u64 %rd145, image_RNM1;
+ cvta.global.u64 %rd134, %rd145;
+ mov.u32 %r328, 8;
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd134, %r105, %r328, %rd21, %rd22, %rd30, %rd30);
+ // inline asm
+ ld.v4.u16 {%rs81, %rs82, %rs83, %rs84}, [%rd133];
+ // inline asm
+ { cvt.f32.f16 %f945, %rs81;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f946, %rs82;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f947, %rs83;}
+
+ // inline asm
+ // inline asm
+ call (%rd139), _rt_buffer_get_64, (%rd134, %r105, %r328, %rd21, %rd22, %rd30, %rd30);
+ // inline asm
+ add.f32 %f948, %f175, %f945;
+ add.f32 %f949, %f176, %f946;
+ add.f32 %f950, %f177, %f947;
+ // inline asm
+ { cvt.rn.f16.f32 %rs80, %f950;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs79, %f949;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f948;}
+
+ // inline asm
+ st.v4.u16 [%rd139], {%rs78, %rs79, %rs80, %rs74};
+ bra.uni BB0_132;
+
+BB0_131:
+ mov.u64 %rd152, image_RNM1;
+ cvta.global.u64 %rd147, %rd152;
+ mov.u32 %r330, 8;
+ // inline asm
+ call (%rd146), _rt_buffer_get_64, (%rd147, %r105, %r330, %rd21, %rd22, %rd30, %rd30);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f177;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f176;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f175;}
+
+ // inline asm
+ st.v4.u16 [%rd146], {%rs85, %rs86, %rs87, %rs74};
+
+BB0_132:
+ ld.global.u32 %r331, [additive];
+ setp.eq.s32 %p140, %r331, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f864;}
+
+ // inline asm
+ @%p140 bra BB0_134;
+
+ mov.u64 %rd165, image_RNM2;
+ cvta.global.u64 %rd154, %rd165;
+ mov.u32 %r335, 8;
+ // inline asm
+ call (%rd153), _rt_buffer_get_64, (%rd154, %r105, %r335, %rd21, %rd22, %rd30, %rd30);
+ // inline asm
+ ld.v4.u16 {%rs95, %rs96, %rs97, %rs98}, [%rd153];
+ // inline asm
+ { cvt.f32.f16 %f955, %rs95;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f956, %rs96;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f957, %rs97;}
+
+ // inline asm
+ // inline asm
+ call (%rd159), _rt_buffer_get_64, (%rd154, %r105, %r335, %rd21, %rd22, %rd30, %rd30);
+ // inline asm
+ add.f32 %f958, %f178, %f955;
+ add.f32 %f959, %f179, %f956;
+ add.f32 %f960, %f180, %f957;
+ // inline asm
+ { cvt.rn.f16.f32 %rs94, %f960;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f959;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f958;}
+
+ // inline asm
+ st.v4.u16 [%rd159], {%rs92, %rs93, %rs94, %rs88};
+ bra.uni BB0_152;
+
+BB0_134:
+ mov.u64 %rd172, image_RNM2;
+ cvta.global.u64 %rd167, %rd172;
+ mov.u32 %r337, 8;
+ // inline asm
+ call (%rd166), _rt_buffer_get_64, (%rd167, %r105, %r337, %rd21, %rd22, %rd30, %rd30);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs101, %f180;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs100, %f179;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f178;}
+
+ // inline asm
+ st.v4.u16 [%rd166], {%rs99, %rs100, %rs101, %rs88};
+
+BB0_152:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunRNM.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunRNM.ptx.meta
new file mode 100644
index 00000000..8b363fe5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunRNM.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ce74b43a64b692f4299df8ca55af6821
+timeCreated: 1537477670
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunSH.ptx
new file mode 100644
index 00000000..78397089
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunSH.ptx
@@ -0,0 +1,2112 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .b8 directDir[12];
+.global .align 4 .b8 directColor[12];
+.global .align 4 .f32 shadowSpread;
+.global .align 4 .u32 samples;
+.global .align 4 .u32 ignoreNormal;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9directDirE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11directColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12shadowSpreadE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12ignoreNormalE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9directDirE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename11directColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename12shadowSpreadE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12ignoreNormalE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9directDirE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11directColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12shadowSpreadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12ignoreNormalE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic9directDirE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11directColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12shadowSpreadE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12ignoreNormalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9directDirE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11directColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12shadowSpreadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12ignoreNormalE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[32];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<124>;
+ .reg .b16 %rs<152>;
+ .reg .f32 %f<796>;
+ .reg .b32 %r<388>;
+ .reg .b64 %rd<286>;
+
+
+ mov.u64 %rd285, __local_depot0;
+ cvta.local.u64 %SP, %rd285;
+ ld.global.v2.u32 {%r101, %r102}, [pixelID];
+ cvt.u64.u32 %rd22, %r101;
+ cvt.u64.u32 %rd23, %r102;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r99, 2;
+ mov.u32 %r100, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r99, %r100, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r1, [%rd20];
+ shr.u32 %r105, %r1, 16;
+ cvt.u16.u32 %rs1, %r105;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r1;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p5, %rs9, 0;
+ mov.f32 %f764, 0f00000000;
+ mov.f32 %f765, %f764;
+ mov.f32 %f766, %f764;
+ @%p5 bra BB0_2;
+
+ ld.u8 %rs10, [%rd20+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f134, %rs12;
+ div.rn.f32 %f135, %f134, 0f437F0000;
+ fma.rn.f32 %f136, %f135, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f137, %rs10;
+ div.rn.f32 %f138, %f137, 0f437F0000;
+ fma.rn.f32 %f139, %f138, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f140, %rs7;
+ div.rn.f32 %f141, %f140, 0f437F0000;
+ fma.rn.f32 %f142, %f141, 0f40000000, 0fBF800000;
+ mul.f32 %f143, %f139, %f139;
+ fma.rn.f32 %f144, %f136, %f136, %f143;
+ fma.rn.f32 %f145, %f142, %f142, %f144;
+ sqrt.rn.f32 %f146, %f145;
+ rcp.rn.f32 %f147, %f146;
+ mul.f32 %f764, %f136, %f147;
+ mul.f32 %f765, %f139, %f147;
+ mul.f32 %f766, %f142, %f147;
+
+BB0_2:
+ ld.global.v2.u32 {%r106, %r107}, [pixelID];
+ ld.global.v2.u32 {%r109, %r110}, [tileInfo];
+ add.s32 %r2, %r106, %r109;
+ add.s32 %r3, %r107, %r110;
+ setp.eq.f32 %p6, %f765, 0f00000000;
+ setp.eq.f32 %p7, %f764, 0f00000000;
+ and.pred %p8, %p7, %p6;
+ setp.eq.f32 %p9, %f766, 0f00000000;
+ and.pred %p10, %p8, %p9;
+ @%p10 bra BB0_121;
+ bra.uni BB0_3;
+
+BB0_121:
+ ld.global.u32 %r387, [imageEnabled];
+ and.b32 %r312, %r387, 1;
+ setp.eq.b32 %p116, %r312, 1;
+ @!%p116 bra BB0_123;
+ bra.uni BB0_122;
+
+BB0_122:
+ cvt.u64.u32 %rd169, %r2;
+ cvt.u64.u32 %rd170, %r3;
+ mov.u64 %rd173, image;
+ cvta.global.u64 %rd168, %rd173;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r99, %r100, %rd169, %rd170, %rd25, %rd25);
+ // inline asm
+ mov.u16 %rs84, 0;
+ st.v4.u8 [%rd167], {%rs84, %rs84, %rs84, %rs84};
+ ld.global.u32 %r387, [imageEnabled];
+
+BB0_123:
+ and.b32 %r315, %r387, 8;
+ setp.eq.s32 %p117, %r315, 0;
+ @%p117 bra BB0_125;
+
+ cvt.u64.u32 %rd177, %r3;
+ cvt.u64.u32 %rd176, %r2;
+ mov.u64 %rd180, image_Mask;
+ cvta.global.u64 %rd175, %rd180;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r99, %r99, %rd176, %rd177, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f686, 0f00000000;
+ cvt.rzi.u32.f32 %r318, %f686;
+ cvt.u16.u32 %rs85, %r318;
+ mov.u16 %rs86, 0;
+ st.v2.u8 [%rd174], {%rs85, %rs86};
+ ld.global.u32 %r387, [imageEnabled];
+
+BB0_125:
+ cvt.u64.u32 %rd18, %r2;
+ cvt.u64.u32 %rd19, %r3;
+ and.b32 %r319, %r387, 4;
+ setp.eq.s32 %p118, %r319, 0;
+ @%p118 bra BB0_129;
+
+ ld.global.u32 %r320, [additive];
+ setp.eq.s32 %p119, %r320, 0;
+ @%p119 bra BB0_128;
+
+ mov.u64 %rd193, image_HDR;
+ cvta.global.u64 %rd182, %rd193;
+ mov.u32 %r324, 8;
+ // inline asm
+ call (%rd181), _rt_buffer_get_64, (%rd182, %r99, %r324, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs93, %rs94, %rs95, %rs96}, [%rd181];
+ // inline asm
+ { cvt.f32.f16 %f687, %rs93;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f688, %rs94;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f689, %rs95;}
+
+ // inline asm
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd182, %r99, %r324, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f690, %f687, 0f00000000;
+ add.f32 %f691, %f688, 0f00000000;
+ add.f32 %f692, %f689, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f692;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f691;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f690;}
+
+ // inline asm
+ mov.u16 %rs97, 0;
+ st.v4.u16 [%rd187], {%rs90, %rs91, %rs92, %rs97};
+ bra.uni BB0_129;
+
+BB0_3:
+ ld.global.f32 %f9, [directDir+8];
+ ld.global.f32 %f8, [directDir+4];
+ ld.global.f32 %f7, [directDir];
+ mul.f32 %f149, %f764, %f7;
+ mul.f32 %f150, %f765, %f8;
+ neg.f32 %f151, %f150;
+ sub.f32 %f152, %f151, %f149;
+ mul.f32 %f153, %f766, %f9;
+ sub.f32 %f10, %f152, %f153;
+ ld.global.v2.u32 {%r118, %r119}, [pixelID];
+ cvt.u64.u32 %rd29, %r118;
+ cvt.u64.u32 %rd30, %r119;
+ mov.u64 %rd39, uvpos;
+ cvta.global.u64 %rd28, %rd39;
+ mov.u32 %r115, 12;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r99, %r115, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f154, [%rd27+8];
+ ld.f32 %f155, [%rd27+4];
+ ld.f32 %f156, [%rd27];
+ mul.f32 %f157, %f156, 0f3456BF95;
+ mul.f32 %f158, %f155, 0f3456BF95;
+ mul.f32 %f159, %f154, 0f3456BF95;
+ abs.f32 %f160, %f764;
+ div.rn.f32 %f161, %f157, %f160;
+ abs.f32 %f162, %f765;
+ div.rn.f32 %f163, %f158, %f162;
+ abs.f32 %f164, %f766;
+ div.rn.f32 %f165, %f159, %f164;
+ abs.f32 %f166, %f161;
+ abs.f32 %f167, %f163;
+ abs.f32 %f168, %f165;
+ mov.f32 %f169, 0f38D1B717;
+ max.f32 %f170, %f166, %f169;
+ max.f32 %f171, %f167, %f169;
+ max.f32 %f172, %f168, %f169;
+ fma.rn.f32 %f11, %f764, %f170, %f156;
+ fma.rn.f32 %f12, %f765, %f171, %f155;
+ fma.rn.f32 %f13, %f766, %f172, %f154;
+ abs.f32 %f173, %f7;
+ abs.f32 %f174, %f9;
+ setp.gt.f32 %p11, %f173, %f174;
+ neg.f32 %f175, %f8;
+ neg.f32 %f176, %f9;
+ selp.f32 %f177, %f175, 0f00000000, %p11;
+ selp.f32 %f178, %f7, %f176, %p11;
+ selp.f32 %f179, 0f00000000, %f8, %p11;
+ mul.f32 %f180, %f178, %f178;
+ fma.rn.f32 %f181, %f177, %f177, %f180;
+ fma.rn.f32 %f182, %f179, %f179, %f181;
+ sqrt.rn.f32 %f183, %f182;
+ rcp.rn.f32 %f184, %f183;
+ mul.f32 %f14, %f177, %f184;
+ mul.f32 %f15, %f178, %f184;
+ mul.f32 %f16, %f179, %f184;
+ ld.global.v2.u32 {%r122, %r123}, [pixelID];
+ cvt.u64.u32 %rd35, %r122;
+ cvt.u64.u32 %rd36, %r123;
+ mov.u64 %rd40, rnd_seeds;
+ cvta.global.u64 %rd34, %rd40;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r99, %r100, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ ld.global.u32 %r356, [samples];
+ mov.f32 %f781, 0f00000000;
+ setp.lt.s32 %p12, %r356, 1;
+ @%p12 bra BB0_55;
+
+ cvt.rn.f32.s32 %f186, %r356;
+ rcp.rn.f32 %f17, %f186;
+ ld.u32 %r382, [%rd33];
+ mul.f32 %f18, %f11, 0f3456BF95;
+ mul.f32 %f19, %f12, 0f3456BF95;
+ mul.f32 %f20, %f13, 0f3456BF95;
+ mul.f32 %f187, %f7, %f15;
+ mul.f32 %f188, %f8, %f14;
+ sub.f32 %f21, %f188, %f187;
+ mul.f32 %f189, %f9, %f14;
+ mul.f32 %f190, %f7, %f16;
+ sub.f32 %f22, %f190, %f189;
+ mul.f32 %f191, %f8, %f16;
+ mul.f32 %f192, %f9, %f15;
+ sub.f32 %f23, %f192, %f191;
+ mov.f32 %f781, 0f00000000;
+ mov.u32 %r357, 0;
+ abs.f32 %f193, %f19;
+ abs.f32 %f194, %f18;
+ max.f32 %f195, %f194, %f193;
+ abs.f32 %f196, %f20;
+ max.f32 %f197, %f195, %f196;
+
+BB0_5:
+ setp.lt.s32 %p13, %r356, 1;
+ @%p13 bra BB0_54;
+
+ cvt.rn.f32.s32 %f25, %r357;
+ max.f32 %f26, %f197, %f169;
+ mov.u32 %r359, 0;
+
+BB0_7:
+ mad.lo.s32 %r128, %r382, 1664525, 1013904223;
+ and.b32 %r129, %r128, 16777215;
+ cvt.rn.f32.u32 %f199, %r129;
+ fma.rn.f32 %f200, %f199, 0f33800000, %f25;
+ mul.f32 %f201, %f17, %f200;
+ mad.lo.s32 %r382, %r128, 1664525, 1013904223;
+ and.b32 %r130, %r382, 16777215;
+ cvt.rn.f32.u32 %f202, %r130;
+ cvt.rn.f32.s32 %f203, %r359;
+ fma.rn.f32 %f204, %f202, 0f33800000, %f203;
+ mul.f32 %f205, %f17, %f204;
+ sqrt.rn.f32 %f28, %f201;
+ mul.f32 %f775, %f205, 0f40C90FDB;
+ abs.f32 %f30, %f775;
+ setp.neu.f32 %p14, %f30, 0f7F800000;
+ mov.f32 %f769, %f775;
+ @%p14 bra BB0_9;
+
+ mov.f32 %f206, 0f00000000;
+ mul.rn.f32 %f769, %f775, %f206;
+
+BB0_9:
+ mul.f32 %f207, %f769, 0f3F22F983;
+ cvt.rni.s32.f32 %r370, %f207;
+ cvt.rn.f32.s32 %f208, %r370;
+ neg.f32 %f209, %f208;
+ mov.f32 %f210, 0f3FC90FDA;
+ fma.rn.f32 %f211, %f209, %f210, %f769;
+ mov.f32 %f212, 0f33A22168;
+ fma.rn.f32 %f213, %f209, %f212, %f211;
+ mov.f32 %f214, 0f27C234C5;
+ fma.rn.f32 %f770, %f209, %f214, %f213;
+ abs.f32 %f215, %f769;
+ setp.leu.f32 %p15, %f215, 0f47CE4780;
+ @%p15 bra BB0_20;
+
+ mov.b32 %r13, %f769;
+ shr.u32 %r14, %r13, 23;
+ shl.b32 %r133, %r13, 8;
+ or.b32 %r15, %r133, -2147483648;
+ add.u64 %rd42, %SP, 4;
+ cvta.to.local.u64 %rd282, %rd42;
+ mov.u32 %r362, 0;
+ mov.u64 %rd281, __cudart_i2opi_f;
+ mov.u32 %r361, -6;
+
+BB0_11:
+ .pragma "nounroll";
+ ld.const.u32 %r136, [%rd281];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r134, %r136, %r15, %r362;
+ madc.hi.u32 %r362, %r136, %r15, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd282], %r134;
+ add.s64 %rd282, %rd282, 4;
+ add.s64 %rd281, %rd281, 4;
+ add.s32 %r361, %r361, 1;
+ setp.ne.s32 %p16, %r361, 0;
+ @%p16 bra BB0_11;
+
+ and.b32 %r139, %r14, 255;
+ add.s32 %r140, %r139, -128;
+ shr.u32 %r141, %r140, 5;
+ and.b32 %r20, %r13, -2147483648;
+ cvta.to.local.u64 %rd44, %rd42;
+ st.local.u32 [%rd44+24], %r362;
+ mov.u32 %r142, 6;
+ sub.s32 %r143, %r142, %r141;
+ mul.wide.s32 %rd45, %r143, 4;
+ add.s64 %rd8, %rd44, %rd45;
+ ld.local.u32 %r363, [%rd8];
+ ld.local.u32 %r364, [%rd8+-4];
+ and.b32 %r23, %r14, 31;
+ setp.eq.s32 %p17, %r23, 0;
+ @%p17 bra BB0_14;
+
+ mov.u32 %r144, 32;
+ sub.s32 %r145, %r144, %r23;
+ shr.u32 %r146, %r364, %r145;
+ shl.b32 %r147, %r363, %r23;
+ add.s32 %r363, %r146, %r147;
+ ld.local.u32 %r148, [%rd8+-8];
+ shr.u32 %r149, %r148, %r145;
+ shl.b32 %r150, %r364, %r23;
+ add.s32 %r364, %r149, %r150;
+
+BB0_14:
+ shr.u32 %r151, %r364, 30;
+ shl.b32 %r152, %r363, 2;
+ add.s32 %r365, %r151, %r152;
+ shl.b32 %r29, %r364, 2;
+ shr.u32 %r153, %r365, 31;
+ shr.u32 %r154, %r363, 30;
+ add.s32 %r30, %r153, %r154;
+ setp.eq.s32 %p18, %r153, 0;
+ @%p18 bra BB0_15;
+ bra.uni BB0_16;
+
+BB0_15:
+ mov.u32 %r366, %r20;
+ mov.u32 %r367, %r29;
+ bra.uni BB0_17;
+
+BB0_16:
+ not.b32 %r155, %r365;
+ neg.s32 %r367, %r29;
+ setp.eq.s32 %p19, %r29, 0;
+ selp.u32 %r156, 1, 0, %p19;
+ add.s32 %r365, %r156, %r155;
+ xor.b32 %r366, %r20, -2147483648;
+
+BB0_17:
+ clz.b32 %r369, %r365;
+ setp.eq.s32 %p20, %r369, 0;
+ shl.b32 %r157, %r365, %r369;
+ mov.u32 %r158, 32;
+ sub.s32 %r159, %r158, %r369;
+ shr.u32 %r160, %r367, %r159;
+ add.s32 %r161, %r160, %r157;
+ selp.b32 %r38, %r365, %r161, %p20;
+ mov.u32 %r162, -921707870;
+ mul.hi.u32 %r368, %r38, %r162;
+ setp.eq.s32 %p21, %r20, 0;
+ neg.s32 %r163, %r30;
+ selp.b32 %r370, %r30, %r163, %p21;
+ setp.lt.s32 %p22, %r368, 1;
+ @%p22 bra BB0_19;
+
+ mul.lo.s32 %r164, %r38, -921707870;
+ shr.u32 %r165, %r164, 31;
+ shl.b32 %r166, %r368, 1;
+ add.s32 %r368, %r165, %r166;
+ add.s32 %r369, %r369, 1;
+
+BB0_19:
+ mov.u32 %r167, 126;
+ sub.s32 %r168, %r167, %r369;
+ shl.b32 %r169, %r168, 23;
+ add.s32 %r170, %r368, 1;
+ shr.u32 %r171, %r170, 7;
+ add.s32 %r172, %r171, 1;
+ shr.u32 %r173, %r172, 1;
+ add.s32 %r174, %r173, %r169;
+ or.b32 %r175, %r174, %r366;
+ mov.b32 %f770, %r175;
+
+BB0_20:
+ mul.rn.f32 %f36, %f770, %f770;
+ add.s32 %r46, %r370, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p23, %r47, 0;
+ @%p23 bra BB0_22;
+ bra.uni BB0_21;
+
+BB0_22:
+ mov.f32 %f218, 0f3C08839E;
+ mov.f32 %f219, 0fB94CA1F9;
+ fma.rn.f32 %f771, %f219, %f36, %f218;
+ bra.uni BB0_23;
+
+BB0_21:
+ mov.f32 %f216, 0fBAB6061A;
+ mov.f32 %f217, 0f37CCF5CE;
+ fma.rn.f32 %f771, %f217, %f36, %f216;
+
+BB0_23:
+ @%p23 bra BB0_25;
+ bra.uni BB0_24;
+
+BB0_25:
+ mov.f32 %f223, 0fBE2AAAA3;
+ fma.rn.f32 %f224, %f771, %f36, %f223;
+ mov.f32 %f225, 0f00000000;
+ fma.rn.f32 %f772, %f224, %f36, %f225;
+ bra.uni BB0_26;
+
+BB0_24:
+ mov.f32 %f220, 0f3D2AAAA5;
+ fma.rn.f32 %f221, %f771, %f36, %f220;
+ mov.f32 %f222, 0fBF000000;
+ fma.rn.f32 %f772, %f221, %f36, %f222;
+
+BB0_26:
+ fma.rn.f32 %f773, %f772, %f770, %f770;
+ @%p23 bra BB0_28;
+
+ mov.f32 %f226, 0f3F800000;
+ fma.rn.f32 %f773, %f772, %f36, %f226;
+
+BB0_28:
+ and.b32 %r176, %r46, 2;
+ setp.eq.s32 %p26, %r176, 0;
+ @%p26 bra BB0_30;
+
+ mov.f32 %f227, 0f00000000;
+ mov.f32 %f228, 0fBF800000;
+ fma.rn.f32 %f773, %f773, %f228, %f227;
+
+BB0_30:
+ @%p14 bra BB0_32;
+
+ mov.f32 %f229, 0f00000000;
+ mul.rn.f32 %f775, %f775, %f229;
+
+BB0_32:
+ mul.f32 %f230, %f775, 0f3F22F983;
+ cvt.rni.s32.f32 %r380, %f230;
+ cvt.rn.f32.s32 %f231, %r380;
+ neg.f32 %f232, %f231;
+ fma.rn.f32 %f234, %f232, %f210, %f775;
+ fma.rn.f32 %f236, %f232, %f212, %f234;
+ fma.rn.f32 %f776, %f232, %f214, %f236;
+ abs.f32 %f238, %f775;
+ setp.leu.f32 %p28, %f238, 0f47CE4780;
+ @%p28 bra BB0_43;
+
+ mov.b32 %r49, %f775;
+ shr.u32 %r50, %r49, 23;
+ shl.b32 %r179, %r49, 8;
+ or.b32 %r51, %r179, -2147483648;
+ add.u64 %rd47, %SP, 4;
+ cvta.to.local.u64 %rd284, %rd47;
+ mov.u32 %r372, 0;
+ mov.u64 %rd283, __cudart_i2opi_f;
+ mov.u32 %r371, -6;
+
+BB0_34:
+ .pragma "nounroll";
+ ld.const.u32 %r182, [%rd283];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r180, %r182, %r51, %r372;
+ madc.hi.u32 %r372, %r182, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd284], %r180;
+ add.s64 %rd284, %rd284, 4;
+ add.s64 %rd283, %rd283, 4;
+ add.s32 %r371, %r371, 1;
+ setp.ne.s32 %p29, %r371, 0;
+ @%p29 bra BB0_34;
+
+ and.b32 %r185, %r50, 255;
+ add.s32 %r186, %r185, -128;
+ shr.u32 %r187, %r186, 5;
+ and.b32 %r56, %r49, -2147483648;
+ cvta.to.local.u64 %rd49, %rd47;
+ st.local.u32 [%rd49+24], %r372;
+ mov.u32 %r188, 6;
+ sub.s32 %r189, %r188, %r187;
+ mul.wide.s32 %rd50, %r189, 4;
+ add.s64 %rd14, %rd49, %rd50;
+ ld.local.u32 %r373, [%rd14];
+ ld.local.u32 %r374, [%rd14+-4];
+ and.b32 %r59, %r50, 31;
+ setp.eq.s32 %p30, %r59, 0;
+ @%p30 bra BB0_37;
+
+ mov.u32 %r190, 32;
+ sub.s32 %r191, %r190, %r59;
+ shr.u32 %r192, %r374, %r191;
+ shl.b32 %r193, %r373, %r59;
+ add.s32 %r373, %r192, %r193;
+ ld.local.u32 %r194, [%rd14+-8];
+ shr.u32 %r195, %r194, %r191;
+ shl.b32 %r196, %r374, %r59;
+ add.s32 %r374, %r195, %r196;
+
+BB0_37:
+ shr.u32 %r197, %r374, 30;
+ shl.b32 %r198, %r373, 2;
+ add.s32 %r375, %r197, %r198;
+ shl.b32 %r65, %r374, 2;
+ shr.u32 %r199, %r375, 31;
+ shr.u32 %r200, %r373, 30;
+ add.s32 %r66, %r199, %r200;
+ setp.eq.s32 %p31, %r199, 0;
+ @%p31 bra BB0_38;
+ bra.uni BB0_39;
+
+BB0_38:
+ mov.u32 %r376, %r56;
+ mov.u32 %r377, %r65;
+ bra.uni BB0_40;
+
+BB0_39:
+ not.b32 %r201, %r375;
+ neg.s32 %r377, %r65;
+ setp.eq.s32 %p32, %r65, 0;
+ selp.u32 %r202, 1, 0, %p32;
+ add.s32 %r375, %r202, %r201;
+ xor.b32 %r376, %r56, -2147483648;
+
+BB0_40:
+ clz.b32 %r379, %r375;
+ setp.eq.s32 %p33, %r379, 0;
+ shl.b32 %r203, %r375, %r379;
+ mov.u32 %r204, 32;
+ sub.s32 %r205, %r204, %r379;
+ shr.u32 %r206, %r377, %r205;
+ add.s32 %r207, %r206, %r203;
+ selp.b32 %r74, %r375, %r207, %p33;
+ mov.u32 %r208, -921707870;
+ mul.hi.u32 %r378, %r74, %r208;
+ setp.eq.s32 %p34, %r56, 0;
+ neg.s32 %r209, %r66;
+ selp.b32 %r380, %r66, %r209, %p34;
+ setp.lt.s32 %p35, %r378, 1;
+ @%p35 bra BB0_42;
+
+ mul.lo.s32 %r210, %r74, -921707870;
+ shr.u32 %r211, %r210, 31;
+ shl.b32 %r212, %r378, 1;
+ add.s32 %r378, %r211, %r212;
+ add.s32 %r379, %r379, 1;
+
+BB0_42:
+ mov.u32 %r213, 126;
+ sub.s32 %r214, %r213, %r379;
+ shl.b32 %r215, %r214, 23;
+ add.s32 %r216, %r378, 1;
+ shr.u32 %r217, %r216, 7;
+ add.s32 %r218, %r217, 1;
+ shr.u32 %r219, %r218, 1;
+ add.s32 %r220, %r219, %r215;
+ or.b32 %r221, %r220, %r376;
+ mov.b32 %f776, %r221;
+
+BB0_43:
+ mul.rn.f32 %f53, %f776, %f776;
+ and.b32 %r82, %r380, 1;
+ setp.eq.s32 %p36, %r82, 0;
+ @%p36 bra BB0_45;
+ bra.uni BB0_44;
+
+BB0_45:
+ mov.f32 %f241, 0f3C08839E;
+ mov.f32 %f242, 0fB94CA1F9;
+ fma.rn.f32 %f777, %f242, %f53, %f241;
+ bra.uni BB0_46;
+
+BB0_44:
+ mov.f32 %f239, 0fBAB6061A;
+ mov.f32 %f240, 0f37CCF5CE;
+ fma.rn.f32 %f777, %f240, %f53, %f239;
+
+BB0_46:
+ @%p36 bra BB0_48;
+ bra.uni BB0_47;
+
+BB0_48:
+ mov.f32 %f246, 0fBE2AAAA3;
+ fma.rn.f32 %f247, %f777, %f53, %f246;
+ mov.f32 %f248, 0f00000000;
+ fma.rn.f32 %f778, %f247, %f53, %f248;
+ bra.uni BB0_49;
+
+BB0_47:
+ mov.f32 %f243, 0f3D2AAAA5;
+ fma.rn.f32 %f244, %f777, %f53, %f243;
+ mov.f32 %f245, 0fBF000000;
+ fma.rn.f32 %f778, %f244, %f53, %f245;
+
+BB0_49:
+ fma.rn.f32 %f779, %f778, %f776, %f776;
+ @%p36 bra BB0_51;
+
+ mov.f32 %f249, 0f3F800000;
+ fma.rn.f32 %f779, %f778, %f53, %f249;
+
+BB0_51:
+ and.b32 %r222, %r380, 2;
+ setp.eq.s32 %p39, %r222, 0;
+ @%p39 bra BB0_53;
+
+ mov.f32 %f250, 0f00000000;
+ mov.f32 %f251, 0fBF800000;
+ fma.rn.f32 %f779, %f779, %f251, %f250;
+
+BB0_53:
+ mul.f32 %f260, %f28, %f773;
+ add.u64 %rd51, %SP, 0;
+ cvta.to.local.u64 %rd52, %rd51;
+ mul.f32 %f261, %f260, %f260;
+ mov.f32 %f262, 0f3F800000;
+ sub.f32 %f263, %f262, %f261;
+ mul.f32 %f264, %f28, %f779;
+ mul.f32 %f265, %f264, %f264;
+ sub.f32 %f266, %f263, %f265;
+ mov.f32 %f267, 0f00000000;
+ max.f32 %f268, %f267, %f266;
+ sqrt.rn.f32 %f269, %f268;
+ mul.f32 %f270, %f14, %f264;
+ mul.f32 %f271, %f15, %f264;
+ mul.f32 %f272, %f16, %f264;
+ fma.rn.f32 %f273, %f23, %f260, %f270;
+ fma.rn.f32 %f274, %f22, %f260, %f271;
+ fma.rn.f32 %f275, %f21, %f260, %f272;
+ fma.rn.f32 %f276, %f7, %f269, %f273;
+ fma.rn.f32 %f277, %f8, %f269, %f274;
+ fma.rn.f32 %f278, %f9, %f269, %f275;
+ add.f32 %f279, %f7, %f276;
+ add.f32 %f280, %f8, %f277;
+ add.f32 %f281, %f9, %f278;
+ ld.global.f32 %f282, [shadowSpread];
+ mul.f32 %f283, %f282, %f279;
+ mul.f32 %f284, %f282, %f280;
+ mul.f32 %f285, %f282, %f281;
+ sub.f32 %f286, %f283, %f7;
+ sub.f32 %f287, %f284, %f8;
+ sub.f32 %f288, %f285, %f9;
+ mul.f32 %f289, %f287, %f287;
+ fma.rn.f32 %f290, %f286, %f286, %f289;
+ fma.rn.f32 %f291, %f288, %f288, %f290;
+ sqrt.rn.f32 %f292, %f291;
+ rcp.rn.f32 %f293, %f292;
+ mul.f32 %f255, %f293, %f286;
+ mul.f32 %f256, %f293, %f287;
+ mul.f32 %f257, %f293, %f288;
+ ld.global.u32 %r226, [imageEnabled];
+ and.b32 %r227, %r226, 32;
+ setp.eq.s32 %p40, %r227, 0;
+ selp.f32 %f294, 0f3F800000, 0f41200000, %p40;
+ mul.f32 %f258, %f294, %f26;
+ mov.u32 %r228, 1065353216;
+ st.local.u32 [%rd52], %r228;
+ ld.global.u32 %r223, [root];
+ mov.u32 %r224, 1;
+ mov.f32 %f259, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r223, %f11, %f12, %f13, %f255, %f256, %f257, %r224, %f258, %f259, %rd51, %r100);
+ // inline asm
+ ld.local.f32 %f295, [%rd52];
+ add.f32 %f781, %f781, %f295;
+ ld.global.u32 %r356, [samples];
+ add.s32 %r359, %r359, 1;
+ setp.lt.s32 %p41, %r359, %r356;
+ @%p41 bra BB0_7;
+
+BB0_54:
+ add.s32 %r357, %r357, 1;
+ setp.lt.s32 %p42, %r357, %r356;
+ @%p42 bra BB0_5;
+
+BB0_55:
+ setp.eq.s32 %p43, %r356, 0;
+ mov.f32 %f783, 0f3F800000;
+ @%p43 bra BB0_57;
+
+ mul.lo.s32 %r229, %r356, %r356;
+ cvt.rn.f32.s32 %f297, %r229;
+ div.rn.f32 %f783, %f781, %f297;
+
+BB0_57:
+ ld.global.f32 %f298, [directColor];
+ mul.f32 %f299, %f783, %f298;
+ ld.global.f32 %f300, [directColor+4];
+ mul.f32 %f301, %f783, %f300;
+ ld.global.f32 %f302, [directColor+8];
+ mul.f32 %f303, %f783, %f302;
+ cvt.sat.f32.f32 %f304, %f10;
+ mul.f32 %f70, %f299, %f304;
+ mul.f32 %f71, %f301, %f304;
+ mul.f32 %f72, %f303, %f304;
+ mul.f32 %f305, %f10, 0f40800000;
+ cvt.sat.f32.f32 %f306, %f305;
+ mul.f32 %f307, %f299, %f306;
+ mul.f32 %f308, %f301, %f306;
+ mul.f32 %f309, %f303, %f306;
+ mul.f32 %f73, %f307, 0f3E800000;
+ mul.f32 %f74, %f308, 0f3E800000;
+ mul.f32 %f75, %f309, 0f3E800000;
+ ld.global.u32 %r385, [imageEnabled];
+ and.b32 %r230, %r385, 8;
+ setp.eq.s32 %p44, %r230, 0;
+ @%p44 bra BB0_70;
+
+ cvt.u64.u32 %rd55, %r2;
+ cvt.u64.u32 %rd56, %r3;
+ mov.u64 %rd59, image_Mask;
+ cvta.global.u64 %rd54, %rd59;
+ // inline asm
+ call (%rd53), _rt_buffer_get_64, (%rd54, %r99, %r99, %rd55, %rd56, %rd25, %rd25);
+ // inline asm
+ abs.f32 %f77, %f783;
+ setp.lt.f32 %p45, %f77, 0f00800000;
+ mul.f32 %f315, %f77, 0f4B800000;
+ selp.f32 %f316, 0fC3170000, 0fC2FE0000, %p45;
+ selp.f32 %f317, %f315, %f77, %p45;
+ mov.b32 %r233, %f317;
+ and.b32 %r234, %r233, 8388607;
+ or.b32 %r235, %r234, 1065353216;
+ mov.b32 %f318, %r235;
+ shr.u32 %r236, %r233, 23;
+ cvt.rn.f32.u32 %f319, %r236;
+ add.f32 %f320, %f316, %f319;
+ setp.gt.f32 %p46, %f318, 0f3FB504F3;
+ mul.f32 %f321, %f318, 0f3F000000;
+ add.f32 %f322, %f320, 0f3F800000;
+ selp.f32 %f323, %f321, %f318, %p46;
+ selp.f32 %f324, %f322, %f320, %p46;
+ add.f32 %f325, %f323, 0fBF800000;
+ add.f32 %f311, %f323, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f310,%f311;
+ // inline asm
+ add.f32 %f326, %f325, %f325;
+ mul.f32 %f327, %f310, %f326;
+ mul.f32 %f328, %f327, %f327;
+ mov.f32 %f329, 0f3C4CAF63;
+ mov.f32 %f330, 0f3B18F0FE;
+ fma.rn.f32 %f331, %f330, %f328, %f329;
+ mov.f32 %f332, 0f3DAAAABD;
+ fma.rn.f32 %f333, %f331, %f328, %f332;
+ mul.rn.f32 %f334, %f333, %f328;
+ mul.rn.f32 %f335, %f334, %f327;
+ sub.f32 %f336, %f325, %f327;
+ neg.f32 %f337, %f327;
+ add.f32 %f338, %f336, %f336;
+ fma.rn.f32 %f339, %f337, %f325, %f338;
+ mul.rn.f32 %f340, %f310, %f339;
+ add.f32 %f341, %f335, %f327;
+ sub.f32 %f342, %f327, %f341;
+ add.f32 %f343, %f335, %f342;
+ add.f32 %f344, %f340, %f343;
+ add.f32 %f345, %f341, %f344;
+ sub.f32 %f346, %f341, %f345;
+ add.f32 %f347, %f344, %f346;
+ mov.f32 %f348, 0f3F317200;
+ mul.rn.f32 %f349, %f324, %f348;
+ mov.f32 %f350, 0f35BFBE8E;
+ mul.rn.f32 %f351, %f324, %f350;
+ add.f32 %f352, %f349, %f345;
+ sub.f32 %f353, %f349, %f352;
+ add.f32 %f354, %f345, %f353;
+ add.f32 %f355, %f347, %f354;
+ add.f32 %f356, %f351, %f355;
+ add.f32 %f357, %f352, %f356;
+ sub.f32 %f358, %f352, %f357;
+ add.f32 %f359, %f356, %f358;
+ mov.f32 %f360, 0f3EE8BA2E;
+ mul.rn.f32 %f361, %f360, %f357;
+ neg.f32 %f362, %f361;
+ fma.rn.f32 %f363, %f360, %f357, %f362;
+ fma.rn.f32 %f364, %f360, %f359, %f363;
+ mov.f32 %f365, 0f00000000;
+ fma.rn.f32 %f366, %f365, %f357, %f364;
+ add.rn.f32 %f367, %f361, %f366;
+ neg.f32 %f368, %f367;
+ add.rn.f32 %f369, %f361, %f368;
+ add.rn.f32 %f370, %f369, %f366;
+ mov.b32 %r237, %f367;
+ setp.eq.s32 %p47, %r237, 1118925336;
+ add.s32 %r238, %r237, -1;
+ mov.b32 %f371, %r238;
+ add.f32 %f372, %f370, 0f37000000;
+ selp.f32 %f373, %f371, %f367, %p47;
+ selp.f32 %f78, %f372, %f370, %p47;
+ mul.f32 %f374, %f373, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f375, %f374;
+ mov.f32 %f376, 0fBF317200;
+ fma.rn.f32 %f377, %f375, %f376, %f373;
+ mov.f32 %f378, 0fB5BFBE8E;
+ fma.rn.f32 %f379, %f375, %f378, %f377;
+ mul.f32 %f380, %f379, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f381, %f380;
+ add.f32 %f382, %f375, 0f00000000;
+ ex2.approx.f32 %f383, %f382;
+ mul.f32 %f384, %f381, %f383;
+ setp.lt.f32 %p48, %f373, 0fC2D20000;
+ selp.f32 %f385, 0f00000000, %f384, %p48;
+ setp.gt.f32 %p49, %f373, 0f42D20000;
+ selp.f32 %f784, 0f7F800000, %f385, %p49;
+ setp.eq.f32 %p50, %f784, 0f7F800000;
+ @%p50 bra BB0_60;
+
+ fma.rn.f32 %f784, %f784, %f78, %f784;
+
+BB0_60:
+ mov.f32 %f756, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f755, %f756;
+ fma.rn.f32 %f754, %f755, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f753, %f754;
+ setp.lt.f32 %p51, %f783, 0f00000000;
+ setp.eq.f32 %p52, %f753, 0f3F800000;
+ and.pred %p1, %p51, %p52;
+ mov.b32 %r239, %f784;
+ xor.b32 %r240, %r239, -2147483648;
+ mov.b32 %f386, %r240;
+ selp.f32 %f786, %f386, %f784, %p1;
+ setp.eq.f32 %p53, %f783, 0f00000000;
+ @%p53 bra BB0_63;
+ bra.uni BB0_61;
+
+BB0_63:
+ add.f32 %f389, %f783, %f783;
+ selp.f32 %f786, %f389, 0f00000000, %p52;
+ bra.uni BB0_64;
+
+BB0_128:
+ mov.u64 %rd200, image_HDR;
+ cvta.global.u64 %rd195, %rd200;
+ mov.u32 %r326, 8;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r99, %r326, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f693, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f693;}
+
+ // inline asm
+ mov.u16 %rs99, 0;
+ st.v4.u16 [%rd194], {%rs98, %rs98, %rs98, %rs99};
+
+BB0_129:
+ ld.global.u32 %r327, [additive];
+ setp.eq.s32 %p120, %r327, 0;
+ @%p120 bra BB0_131;
+
+ mov.u64 %rd213, image_RNM0;
+ cvta.global.u64 %rd202, %rd213;
+ mov.u32 %r331, 8;
+ // inline asm
+ call (%rd201), _rt_buffer_get_64, (%rd202, %r99, %r331, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs106, %rs107, %rs108, %rs109}, [%rd201];
+ // inline asm
+ { cvt.f32.f16 %f694, %rs106;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f695, %rs107;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f696, %rs108;}
+
+ // inline asm
+ // inline asm
+ call (%rd207), _rt_buffer_get_64, (%rd202, %r99, %r331, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f697, %f694, 0f00000000;
+ add.f32 %f698, %f695, 0f00000000;
+ add.f32 %f699, %f696, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs105, %f699;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f698;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs103, %f697;}
+
+ // inline asm
+ mov.u16 %rs110, 0;
+ st.v4.u16 [%rd207], {%rs103, %rs104, %rs105, %rs110};
+ bra.uni BB0_132;
+
+BB0_131:
+ mov.u64 %rd220, image_RNM0;
+ cvta.global.u64 %rd215, %rd220;
+ mov.u32 %r333, 8;
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd215, %r99, %r333, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f700, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f700;}
+
+ // inline asm
+ mov.u16 %rs112, 0;
+ st.v4.u16 [%rd214], {%rs111, %rs111, %rs111, %rs112};
+
+BB0_132:
+ ld.global.u32 %r334, [additive];
+ setp.eq.s32 %p121, %r334, 0;
+ @%p121 bra BB0_134;
+
+ mov.u64 %rd233, image_RNM1;
+ cvta.global.u64 %rd222, %rd233;
+ mov.u32 %r338, 8;
+ // inline asm
+ call (%rd221), _rt_buffer_get_64, (%rd222, %r99, %r338, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs119, %rs120, %rs121, %rs122}, [%rd221];
+ // inline asm
+ { cvt.f32.f16 %f701, %rs119;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f702, %rs120;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f703, %rs121;}
+
+ // inline asm
+ // inline asm
+ call (%rd227), _rt_buffer_get_64, (%rd222, %r99, %r338, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f704, %f701, 0f00000000;
+ add.f32 %f705, %f702, 0f00000000;
+ add.f32 %f706, %f703, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs118, %f706;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f705;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f704;}
+
+ // inline asm
+ mov.u16 %rs123, 0;
+ st.v4.u16 [%rd227], {%rs116, %rs117, %rs118, %rs123};
+ bra.uni BB0_135;
+
+BB0_134:
+ mov.u64 %rd240, image_RNM1;
+ cvta.global.u64 %rd235, %rd240;
+ mov.u32 %r340, 8;
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd235, %r99, %r340, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f707, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs124, %f707;}
+
+ // inline asm
+ mov.u16 %rs125, 0;
+ st.v4.u16 [%rd234], {%rs124, %rs124, %rs124, %rs125};
+
+BB0_135:
+ ld.global.u32 %r341, [additive];
+ setp.eq.s32 %p122, %r341, 0;
+ @%p122 bra BB0_137;
+
+ mov.u64 %rd253, image_RNM2;
+ cvta.global.u64 %rd242, %rd253;
+ mov.u32 %r345, 8;
+ // inline asm
+ call (%rd241), _rt_buffer_get_64, (%rd242, %r99, %r345, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs132, %rs133, %rs134, %rs135}, [%rd241];
+ // inline asm
+ { cvt.f32.f16 %f708, %rs132;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f709, %rs133;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f710, %rs134;}
+
+ // inline asm
+ // inline asm
+ call (%rd247), _rt_buffer_get_64, (%rd242, %r99, %r345, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f711, %f708, 0f00000000;
+ add.f32 %f712, %f709, 0f00000000;
+ add.f32 %f713, %f710, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs131, %f713;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f712;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f711;}
+
+ // inline asm
+ mov.u16 %rs136, 0;
+ st.v4.u16 [%rd247], {%rs129, %rs130, %rs131, %rs136};
+ bra.uni BB0_138;
+
+BB0_137:
+ mov.u64 %rd260, image_RNM2;
+ cvta.global.u64 %rd255, %rd260;
+ mov.u32 %r347, 8;
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd255, %r99, %r347, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f714, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs137, %f714;}
+
+ // inline asm
+ mov.u16 %rs138, 0;
+ st.v4.u16 [%rd254], {%rs137, %rs137, %rs137, %rs138};
+
+BB0_138:
+ ld.global.u32 %r348, [additive];
+ setp.eq.s32 %p123, %r348, 0;
+ @%p123 bra BB0_140;
+
+ mov.u64 %rd273, image_RNM3;
+ cvta.global.u64 %rd262, %rd273;
+ mov.u32 %r352, 8;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r99, %r352, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs145, %rs146, %rs147, %rs148}, [%rd261];
+ // inline asm
+ { cvt.f32.f16 %f715, %rs145;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f716, %rs146;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f717, %rs147;}
+
+ // inline asm
+ // inline asm
+ call (%rd267), _rt_buffer_get_64, (%rd262, %r99, %r352, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ add.f32 %f718, %f715, 0f00000000;
+ add.f32 %f719, %f716, 0f00000000;
+ add.f32 %f720, %f717, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs144, %f720;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f719;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs142, %f718;}
+
+ // inline asm
+ mov.u16 %rs149, 0;
+ st.v4.u16 [%rd267], {%rs142, %rs143, %rs144, %rs149};
+ bra.uni BB0_141;
+
+BB0_140:
+ mov.u64 %rd280, image_RNM3;
+ cvta.global.u64 %rd275, %rd280;
+ mov.u32 %r354, 8;
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd275, %r99, %r354, %rd18, %rd19, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f721, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f721;}
+
+ // inline asm
+ mov.u16 %rs151, 0;
+ st.v4.u16 [%rd274], {%rs150, %rs150, %rs150, %rs151};
+ bra.uni BB0_141;
+
+BB0_61:
+ setp.geu.f32 %p54, %f783, 0f00000000;
+ @%p54 bra BB0_64;
+
+ mov.f32 %f760, 0f3EE8BA2E;
+ cvt.rzi.f32.f32 %f388, %f760;
+ setp.neu.f32 %p55, %f388, 0f3EE8BA2E;
+ selp.f32 %f786, 0f7FFFFFFF, %f786, %p55;
+
+BB0_64:
+ abs.f32 %f757, %f783;
+ add.f32 %f390, %f757, 0f3EE8BA2E;
+ mov.b32 %r241, %f390;
+ setp.lt.s32 %p57, %r241, 2139095040;
+ @%p57 bra BB0_69;
+
+ abs.f32 %f758, %f783;
+ setp.gtu.f32 %p58, %f758, 0f7F800000;
+ @%p58 bra BB0_68;
+ bra.uni BB0_66;
+
+BB0_68:
+ add.f32 %f786, %f783, 0f3EE8BA2E;
+ bra.uni BB0_69;
+
+BB0_66:
+ abs.f32 %f759, %f783;
+ setp.neu.f32 %p59, %f759, 0f7F800000;
+ @%p59 bra BB0_69;
+
+ selp.f32 %f786, 0fFF800000, 0f7F800000, %p1;
+
+BB0_69:
+ mul.f32 %f391, %f786, 0f437F0000;
+ setp.eq.f32 %p60, %f783, 0f3F800000;
+ selp.f32 %f392, 0f437F0000, %f391, %p60;
+ cvt.rzi.u32.f32 %r242, %f392;
+ cvt.u16.u32 %rs14, %r242;
+ mov.u16 %rs15, 255;
+ st.v2.u8 [%rd53], {%rs14, %rs15};
+ ld.global.u32 %r385, [imageEnabled];
+
+BB0_70:
+ and.b32 %r243, %r385, 1;
+ setp.eq.b32 %p61, %r243, 1;
+ @!%p61 bra BB0_105;
+ bra.uni BB0_71;
+
+BB0_71:
+ abs.f32 %f90, %f70;
+ setp.lt.f32 %p62, %f90, 0f00800000;
+ mul.f32 %f398, %f90, 0f4B800000;
+ selp.f32 %f399, 0fC3170000, 0fC2FE0000, %p62;
+ selp.f32 %f400, %f398, %f90, %p62;
+ mov.b32 %r244, %f400;
+ and.b32 %r245, %r244, 8388607;
+ or.b32 %r246, %r245, 1065353216;
+ mov.b32 %f401, %r246;
+ shr.u32 %r247, %r244, 23;
+ cvt.rn.f32.u32 %f402, %r247;
+ add.f32 %f403, %f399, %f402;
+ setp.gt.f32 %p63, %f401, 0f3FB504F3;
+ mul.f32 %f404, %f401, 0f3F000000;
+ add.f32 %f405, %f403, 0f3F800000;
+ selp.f32 %f406, %f404, %f401, %p63;
+ selp.f32 %f407, %f405, %f403, %p63;
+ add.f32 %f408, %f406, 0fBF800000;
+ add.f32 %f394, %f406, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f393,%f394;
+ // inline asm
+ add.f32 %f409, %f408, %f408;
+ mul.f32 %f410, %f393, %f409;
+ mul.f32 %f411, %f410, %f410;
+ mov.f32 %f412, 0f3C4CAF63;
+ mov.f32 %f413, 0f3B18F0FE;
+ fma.rn.f32 %f414, %f413, %f411, %f412;
+ mov.f32 %f415, 0f3DAAAABD;
+ fma.rn.f32 %f416, %f414, %f411, %f415;
+ mul.rn.f32 %f417, %f416, %f411;
+ mul.rn.f32 %f418, %f417, %f410;
+ sub.f32 %f419, %f408, %f410;
+ neg.f32 %f420, %f410;
+ add.f32 %f421, %f419, %f419;
+ fma.rn.f32 %f422, %f420, %f408, %f421;
+ mul.rn.f32 %f423, %f393, %f422;
+ add.f32 %f424, %f418, %f410;
+ sub.f32 %f425, %f410, %f424;
+ add.f32 %f426, %f418, %f425;
+ add.f32 %f427, %f423, %f426;
+ add.f32 %f428, %f424, %f427;
+ sub.f32 %f429, %f424, %f428;
+ add.f32 %f430, %f427, %f429;
+ mov.f32 %f431, 0f3F317200;
+ mul.rn.f32 %f432, %f407, %f431;
+ mov.f32 %f433, 0f35BFBE8E;
+ mul.rn.f32 %f434, %f407, %f433;
+ add.f32 %f435, %f432, %f428;
+ sub.f32 %f436, %f432, %f435;
+ add.f32 %f437, %f428, %f436;
+ add.f32 %f438, %f430, %f437;
+ add.f32 %f439, %f434, %f438;
+ add.f32 %f440, %f435, %f439;
+ sub.f32 %f441, %f435, %f440;
+ add.f32 %f442, %f439, %f441;
+ mov.f32 %f443, 0f3EE66666;
+ mul.rn.f32 %f444, %f443, %f440;
+ neg.f32 %f445, %f444;
+ fma.rn.f32 %f446, %f443, %f440, %f445;
+ fma.rn.f32 %f447, %f443, %f442, %f446;
+ mov.f32 %f448, 0f00000000;
+ fma.rn.f32 %f449, %f448, %f440, %f447;
+ add.rn.f32 %f450, %f444, %f449;
+ neg.f32 %f451, %f450;
+ add.rn.f32 %f452, %f444, %f451;
+ add.rn.f32 %f453, %f452, %f449;
+ mov.b32 %r248, %f450;
+ setp.eq.s32 %p64, %r248, 1118925336;
+ add.s32 %r249, %r248, -1;
+ mov.b32 %f454, %r249;
+ add.f32 %f455, %f453, 0f37000000;
+ selp.f32 %f456, %f454, %f450, %p64;
+ selp.f32 %f91, %f455, %f453, %p64;
+ mul.f32 %f457, %f456, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f458, %f457;
+ mov.f32 %f459, 0fBF317200;
+ fma.rn.f32 %f460, %f458, %f459, %f456;
+ mov.f32 %f461, 0fB5BFBE8E;
+ fma.rn.f32 %f462, %f458, %f461, %f460;
+ mul.f32 %f463, %f462, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f464, %f463;
+ add.f32 %f465, %f458, 0f00000000;
+ ex2.approx.f32 %f466, %f465;
+ mul.f32 %f467, %f464, %f466;
+ setp.lt.f32 %p65, %f456, 0fC2D20000;
+ selp.f32 %f468, 0f00000000, %f467, %p65;
+ setp.gt.f32 %p66, %f456, 0f42D20000;
+ selp.f32 %f787, 0f7F800000, %f468, %p66;
+ setp.eq.f32 %p67, %f787, 0f7F800000;
+ @%p67 bra BB0_73;
+
+ fma.rn.f32 %f787, %f787, %f91, %f787;
+
+BB0_73:
+ mov.f32 %f725, 0f3E666666;
+ cvt.rzi.f32.f32 %f724, %f725;
+ fma.rn.f32 %f723, %f724, 0fC0000000, 0f3EE66666;
+ abs.f32 %f722, %f723;
+ setp.lt.f32 %p68, %f70, 0f00000000;
+ setp.eq.f32 %p69, %f722, 0f3F800000;
+ and.pred %p2, %p68, %p69;
+ mov.b32 %r250, %f787;
+ xor.b32 %r251, %r250, -2147483648;
+ mov.b32 %f469, %r251;
+ selp.f32 %f789, %f469, %f787, %p2;
+ setp.eq.f32 %p70, %f70, 0f00000000;
+ @%p70 bra BB0_76;
+ bra.uni BB0_74;
+
+BB0_76:
+ add.f32 %f472, %f70, %f70;
+ selp.f32 %f789, %f472, 0f00000000, %p69;
+ bra.uni BB0_77;
+
+BB0_74:
+ setp.geu.f32 %p71, %f70, 0f00000000;
+ @%p71 bra BB0_77;
+
+ mov.f32 %f749, 0f3EE66666;
+ cvt.rzi.f32.f32 %f471, %f749;
+ setp.neu.f32 %p72, %f471, 0f3EE66666;
+ selp.f32 %f789, 0f7FFFFFFF, %f789, %p72;
+
+BB0_77:
+ abs.f32 %f726, %f70;
+ add.f32 %f473, %f726, 0f3EE66666;
+ mov.b32 %r252, %f473;
+ setp.lt.s32 %p74, %r252, 2139095040;
+ @%p74 bra BB0_82;
+
+ abs.f32 %f747, %f70;
+ setp.gtu.f32 %p75, %f747, 0f7F800000;
+ @%p75 bra BB0_81;
+ bra.uni BB0_79;
+
+BB0_81:
+ add.f32 %f789, %f70, 0f3EE66666;
+ bra.uni BB0_82;
+
+BB0_79:
+ abs.f32 %f748, %f70;
+ setp.neu.f32 %p76, %f748, 0f7F800000;
+ @%p76 bra BB0_82;
+
+ selp.f32 %f789, 0fFF800000, 0f7F800000, %p2;
+
+BB0_82:
+ mov.f32 %f735, 0fB5BFBE8E;
+ mov.f32 %f734, 0fBF317200;
+ mov.f32 %f733, 0f00000000;
+ mov.f32 %f732, 0f35BFBE8E;
+ mov.f32 %f731, 0f3F317200;
+ mov.f32 %f730, 0f3DAAAABD;
+ mov.f32 %f729, 0f3C4CAF63;
+ mov.f32 %f728, 0f3B18F0FE;
+ mov.f32 %f727, 0f3EE66666;
+ setp.eq.f32 %p77, %f70, 0f3F800000;
+ selp.f32 %f102, 0f3F800000, %f789, %p77;
+ abs.f32 %f103, %f71;
+ setp.lt.f32 %p78, %f103, 0f00800000;
+ mul.f32 %f476, %f103, 0f4B800000;
+ selp.f32 %f477, 0fC3170000, 0fC2FE0000, %p78;
+ selp.f32 %f478, %f476, %f103, %p78;
+ mov.b32 %r253, %f478;
+ and.b32 %r254, %r253, 8388607;
+ or.b32 %r255, %r254, 1065353216;
+ mov.b32 %f479, %r255;
+ shr.u32 %r256, %r253, 23;
+ cvt.rn.f32.u32 %f480, %r256;
+ add.f32 %f481, %f477, %f480;
+ setp.gt.f32 %p79, %f479, 0f3FB504F3;
+ mul.f32 %f482, %f479, 0f3F000000;
+ add.f32 %f483, %f481, 0f3F800000;
+ selp.f32 %f484, %f482, %f479, %p79;
+ selp.f32 %f485, %f483, %f481, %p79;
+ add.f32 %f486, %f484, 0fBF800000;
+ add.f32 %f475, %f484, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f474,%f475;
+ // inline asm
+ add.f32 %f487, %f486, %f486;
+ mul.f32 %f488, %f474, %f487;
+ mul.f32 %f489, %f488, %f488;
+ fma.rn.f32 %f492, %f728, %f489, %f729;
+ fma.rn.f32 %f494, %f492, %f489, %f730;
+ mul.rn.f32 %f495, %f494, %f489;
+ mul.rn.f32 %f496, %f495, %f488;
+ sub.f32 %f497, %f486, %f488;
+ neg.f32 %f498, %f488;
+ add.f32 %f499, %f497, %f497;
+ fma.rn.f32 %f500, %f498, %f486, %f499;
+ mul.rn.f32 %f501, %f474, %f500;
+ add.f32 %f502, %f496, %f488;
+ sub.f32 %f503, %f488, %f502;
+ add.f32 %f504, %f496, %f503;
+ add.f32 %f505, %f501, %f504;
+ add.f32 %f506, %f502, %f505;
+ sub.f32 %f507, %f502, %f506;
+ add.f32 %f508, %f505, %f507;
+ mul.rn.f32 %f510, %f485, %f731;
+ mul.rn.f32 %f512, %f485, %f732;
+ add.f32 %f513, %f510, %f506;
+ sub.f32 %f514, %f510, %f513;
+ add.f32 %f515, %f506, %f514;
+ add.f32 %f516, %f508, %f515;
+ add.f32 %f517, %f512, %f516;
+ add.f32 %f518, %f513, %f517;
+ sub.f32 %f519, %f513, %f518;
+ add.f32 %f520, %f517, %f519;
+ mul.rn.f32 %f522, %f727, %f518;
+ neg.f32 %f523, %f522;
+ fma.rn.f32 %f524, %f727, %f518, %f523;
+ fma.rn.f32 %f525, %f727, %f520, %f524;
+ fma.rn.f32 %f527, %f733, %f518, %f525;
+ add.rn.f32 %f528, %f522, %f527;
+ neg.f32 %f529, %f528;
+ add.rn.f32 %f530, %f522, %f529;
+ add.rn.f32 %f531, %f530, %f527;
+ mov.b32 %r257, %f528;
+ setp.eq.s32 %p80, %r257, 1118925336;
+ add.s32 %r258, %r257, -1;
+ mov.b32 %f532, %r258;
+ add.f32 %f533, %f531, 0f37000000;
+ selp.f32 %f534, %f532, %f528, %p80;
+ selp.f32 %f104, %f533, %f531, %p80;
+ mul.f32 %f535, %f534, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f536, %f535;
+ fma.rn.f32 %f538, %f536, %f734, %f534;
+ fma.rn.f32 %f540, %f536, %f735, %f538;
+ mul.f32 %f541, %f540, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f542, %f541;
+ add.f32 %f543, %f536, 0f00000000;
+ ex2.approx.f32 %f544, %f543;
+ mul.f32 %f545, %f542, %f544;
+ setp.lt.f32 %p81, %f534, 0fC2D20000;
+ selp.f32 %f546, 0f00000000, %f545, %p81;
+ setp.gt.f32 %p82, %f534, 0f42D20000;
+ selp.f32 %f790, 0f7F800000, %f546, %p82;
+ setp.eq.f32 %p83, %f790, 0f7F800000;
+ @%p83 bra BB0_84;
+
+ fma.rn.f32 %f790, %f790, %f104, %f790;
+
+BB0_84:
+ setp.lt.f32 %p84, %f71, 0f00000000;
+ and.pred %p3, %p84, %p69;
+ mov.b32 %r259, %f790;
+ xor.b32 %r260, %r259, -2147483648;
+ mov.b32 %f547, %r260;
+ selp.f32 %f792, %f547, %f790, %p3;
+ setp.eq.f32 %p86, %f71, 0f00000000;
+ @%p86 bra BB0_87;
+ bra.uni BB0_85;
+
+BB0_87:
+ add.f32 %f550, %f71, %f71;
+ selp.f32 %f792, %f550, 0f00000000, %p69;
+ bra.uni BB0_88;
+
+BB0_85:
+ setp.geu.f32 %p87, %f71, 0f00000000;
+ @%p87 bra BB0_88;
+
+ mov.f32 %f746, 0f3EE66666;
+ cvt.rzi.f32.f32 %f549, %f746;
+ setp.neu.f32 %p88, %f549, 0f3EE66666;
+ selp.f32 %f792, 0f7FFFFFFF, %f792, %p88;
+
+BB0_88:
+ abs.f32 %f750, %f71;
+ add.f32 %f551, %f750, 0f3EE66666;
+ mov.b32 %r261, %f551;
+ setp.lt.s32 %p90, %r261, 2139095040;
+ @%p90 bra BB0_93;
+
+ abs.f32 %f751, %f71;
+ setp.gtu.f32 %p91, %f751, 0f7F800000;
+ @%p91 bra BB0_92;
+ bra.uni BB0_90;
+
+BB0_92:
+ add.f32 %f792, %f71, 0f3EE66666;
+ bra.uni BB0_93;
+
+BB0_90:
+ abs.f32 %f752, %f71;
+ setp.neu.f32 %p92, %f752, 0f7F800000;
+ @%p92 bra BB0_93;
+
+ selp.f32 %f792, 0fFF800000, 0f7F800000, %p3;
+
+BB0_93:
+ mov.f32 %f744, 0fB5BFBE8E;
+ mov.f32 %f743, 0fBF317200;
+ mov.f32 %f742, 0f00000000;
+ mov.f32 %f741, 0f35BFBE8E;
+ mov.f32 %f740, 0f3F317200;
+ mov.f32 %f739, 0f3DAAAABD;
+ mov.f32 %f738, 0f3C4CAF63;
+ mov.f32 %f737, 0f3B18F0FE;
+ mov.f32 %f736, 0f3EE66666;
+ setp.eq.f32 %p93, %f71, 0f3F800000;
+ selp.f32 %f115, 0f3F800000, %f792, %p93;
+ abs.f32 %f116, %f72;
+ setp.lt.f32 %p94, %f116, 0f00800000;
+ mul.f32 %f554, %f116, 0f4B800000;
+ selp.f32 %f555, 0fC3170000, 0fC2FE0000, %p94;
+ selp.f32 %f556, %f554, %f116, %p94;
+ mov.b32 %r262, %f556;
+ and.b32 %r263, %r262, 8388607;
+ or.b32 %r264, %r263, 1065353216;
+ mov.b32 %f557, %r264;
+ shr.u32 %r265, %r262, 23;
+ cvt.rn.f32.u32 %f558, %r265;
+ add.f32 %f559, %f555, %f558;
+ setp.gt.f32 %p95, %f557, 0f3FB504F3;
+ mul.f32 %f560, %f557, 0f3F000000;
+ add.f32 %f561, %f559, 0f3F800000;
+ selp.f32 %f562, %f560, %f557, %p95;
+ selp.f32 %f563, %f561, %f559, %p95;
+ add.f32 %f564, %f562, 0fBF800000;
+ add.f32 %f553, %f562, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f552,%f553;
+ // inline asm
+ add.f32 %f565, %f564, %f564;
+ mul.f32 %f566, %f552, %f565;
+ mul.f32 %f567, %f566, %f566;
+ fma.rn.f32 %f570, %f737, %f567, %f738;
+ fma.rn.f32 %f572, %f570, %f567, %f739;
+ mul.rn.f32 %f573, %f572, %f567;
+ mul.rn.f32 %f574, %f573, %f566;
+ sub.f32 %f575, %f564, %f566;
+ neg.f32 %f576, %f566;
+ add.f32 %f577, %f575, %f575;
+ fma.rn.f32 %f578, %f576, %f564, %f577;
+ mul.rn.f32 %f579, %f552, %f578;
+ add.f32 %f580, %f574, %f566;
+ sub.f32 %f581, %f566, %f580;
+ add.f32 %f582, %f574, %f581;
+ add.f32 %f583, %f579, %f582;
+ add.f32 %f584, %f580, %f583;
+ sub.f32 %f585, %f580, %f584;
+ add.f32 %f586, %f583, %f585;
+ mul.rn.f32 %f588, %f563, %f740;
+ mul.rn.f32 %f590, %f563, %f741;
+ add.f32 %f591, %f588, %f584;
+ sub.f32 %f592, %f588, %f591;
+ add.f32 %f593, %f584, %f592;
+ add.f32 %f594, %f586, %f593;
+ add.f32 %f595, %f590, %f594;
+ add.f32 %f596, %f591, %f595;
+ sub.f32 %f597, %f591, %f596;
+ add.f32 %f598, %f595, %f597;
+ mul.rn.f32 %f600, %f736, %f596;
+ neg.f32 %f601, %f600;
+ fma.rn.f32 %f602, %f736, %f596, %f601;
+ fma.rn.f32 %f603, %f736, %f598, %f602;
+ fma.rn.f32 %f605, %f742, %f596, %f603;
+ add.rn.f32 %f606, %f600, %f605;
+ neg.f32 %f607, %f606;
+ add.rn.f32 %f608, %f600, %f607;
+ add.rn.f32 %f609, %f608, %f605;
+ mov.b32 %r266, %f606;
+ setp.eq.s32 %p96, %r266, 1118925336;
+ add.s32 %r267, %r266, -1;
+ mov.b32 %f610, %r267;
+ add.f32 %f611, %f609, 0f37000000;
+ selp.f32 %f612, %f610, %f606, %p96;
+ selp.f32 %f117, %f611, %f609, %p96;
+ mul.f32 %f613, %f612, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f614, %f613;
+ fma.rn.f32 %f616, %f614, %f743, %f612;
+ fma.rn.f32 %f618, %f614, %f744, %f616;
+ mul.f32 %f619, %f618, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f620, %f619;
+ add.f32 %f621, %f614, 0f00000000;
+ ex2.approx.f32 %f622, %f621;
+ mul.f32 %f623, %f620, %f622;
+ setp.lt.f32 %p97, %f612, 0fC2D20000;
+ selp.f32 %f624, 0f00000000, %f623, %p97;
+ setp.gt.f32 %p98, %f612, 0f42D20000;
+ selp.f32 %f793, 0f7F800000, %f624, %p98;
+ setp.eq.f32 %p99, %f793, 0f7F800000;
+ @%p99 bra BB0_95;
+
+ fma.rn.f32 %f793, %f793, %f117, %f793;
+
+BB0_95:
+ setp.lt.f32 %p100, %f72, 0f00000000;
+ and.pred %p4, %p100, %p69;
+ mov.b32 %r268, %f793;
+ xor.b32 %r269, %r268, -2147483648;
+ mov.b32 %f625, %r269;
+ selp.f32 %f795, %f625, %f793, %p4;
+ setp.eq.f32 %p102, %f72, 0f00000000;
+ @%p102 bra BB0_98;
+ bra.uni BB0_96;
+
+BB0_98:
+ add.f32 %f628, %f72, %f72;
+ selp.f32 %f795, %f628, 0f00000000, %p69;
+ bra.uni BB0_99;
+
+BB0_96:
+ setp.geu.f32 %p103, %f72, 0f00000000;
+ @%p103 bra BB0_99;
+
+ mov.f32 %f745, 0f3EE66666;
+ cvt.rzi.f32.f32 %f627, %f745;
+ setp.neu.f32 %p104, %f627, 0f3EE66666;
+ selp.f32 %f795, 0f7FFFFFFF, %f795, %p104;
+
+BB0_99:
+ abs.f32 %f761, %f72;
+ add.f32 %f629, %f761, 0f3EE66666;
+ mov.b32 %r270, %f629;
+ setp.lt.s32 %p106, %r270, 2139095040;
+ @%p106 bra BB0_104;
+
+ abs.f32 %f762, %f72;
+ setp.gtu.f32 %p107, %f762, 0f7F800000;
+ @%p107 bra BB0_103;
+ bra.uni BB0_101;
+
+BB0_103:
+ add.f32 %f795, %f72, 0f3EE66666;
+ bra.uni BB0_104;
+
+BB0_101:
+ abs.f32 %f763, %f72;
+ setp.neu.f32 %p108, %f763, 0f7F800000;
+ @%p108 bra BB0_104;
+
+ selp.f32 %f795, 0fFF800000, 0f7F800000, %p4;
+
+BB0_104:
+ mov.u32 %r355, 4;
+ setp.eq.f32 %p109, %f72, 0f3F800000;
+ selp.f32 %f630, 0f3F800000, %f795, %p109;
+ cvt.u64.u32 %rd63, %r3;
+ cvt.u64.u32 %rd62, %r2;
+ mov.u64 %rd66, image;
+ cvta.global.u64 %rd61, %rd66;
+ // inline asm
+ call (%rd60), _rt_buffer_get_64, (%rd61, %r99, %r355, %rd62, %rd63, %rd25, %rd25);
+ // inline asm
+ cvt.sat.f32.f32 %f631, %f630;
+ mul.f32 %f632, %f631, 0f437FFD71;
+ cvt.rzi.u32.f32 %r273, %f632;
+ cvt.sat.f32.f32 %f633, %f115;
+ mul.f32 %f634, %f633, 0f437FFD71;
+ cvt.rzi.u32.f32 %r274, %f634;
+ cvt.sat.f32.f32 %f635, %f102;
+ mul.f32 %f636, %f635, 0f437FFD71;
+ cvt.rzi.u32.f32 %r275, %f636;
+ cvt.u16.u32 %rs16, %r273;
+ cvt.u16.u32 %rs17, %r275;
+ cvt.u16.u32 %rs18, %r274;
+ mov.u16 %rs19, 255;
+ st.v4.u8 [%rd60], {%rs16, %rs18, %rs17, %rs19};
+ ld.global.u32 %r385, [imageEnabled];
+
+BB0_105:
+ cvt.u64.u32 %rd16, %r2;
+ cvt.u64.u32 %rd17, %r3;
+ and.b32 %r276, %r385, 4;
+ setp.eq.s32 %p110, %r276, 0;
+ @%p110 bra BB0_109;
+
+ ld.global.u32 %r277, [additive];
+ setp.eq.s32 %p111, %r277, 0;
+ mov.f32 %f637, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f637;}
+
+ // inline asm
+ @%p111 bra BB0_108;
+
+ mov.u64 %rd79, image_HDR;
+ cvta.global.u64 %rd68, %rd79;
+ mov.u32 %r281, 8;
+ // inline asm
+ call (%rd67), _rt_buffer_get_64, (%rd68, %r99, %r281, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs27, %rs28, %rs29, %rs30}, [%rd67];
+ // inline asm
+ { cvt.f32.f16 %f638, %rs27;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f639, %rs28;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f640, %rs29;}
+
+ // inline asm
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd68, %r99, %r281, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f641, %f70, %f638;
+ add.f32 %f642, %f71, %f639;
+ add.f32 %f643, %f72, %f640;
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f643;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f642;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f641;}
+
+ // inline asm
+ st.v4.u16 [%rd73], {%rs24, %rs25, %rs26, %rs20};
+ bra.uni BB0_109;
+
+BB0_108:
+ mov.u64 %rd86, image_HDR;
+ cvta.global.u64 %rd81, %rd86;
+ mov.u32 %r283, 8;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r99, %r283, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f72;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f71;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f70;}
+
+ // inline asm
+ st.v4.u16 [%rd80], {%rs31, %rs32, %rs33, %rs20};
+
+BB0_109:
+ ld.global.u32 %r284, [additive];
+ setp.eq.s32 %p112, %r284, 0;
+ mov.f32 %f647, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f647;}
+
+ // inline asm
+ @%p112 bra BB0_111;
+
+ mov.u64 %rd99, image_RNM0;
+ cvta.global.u64 %rd88, %rd99;
+ mov.u32 %r288, 8;
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd88, %r99, %r288, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs41, %rs42, %rs43, %rs44}, [%rd87];
+ // inline asm
+ { cvt.f32.f16 %f648, %rs41;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f649, %rs42;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f650, %rs43;}
+
+ // inline asm
+ // inline asm
+ call (%rd93), _rt_buffer_get_64, (%rd88, %r99, %r288, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f651, %f73, %f648;
+ add.f32 %f652, %f74, %f649;
+ add.f32 %f653, %f75, %f650;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f653;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f652;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f651;}
+
+ // inline asm
+ st.v4.u16 [%rd93], {%rs38, %rs39, %rs40, %rs34};
+ bra.uni BB0_112;
+
+BB0_111:
+ mov.u64 %rd106, image_RNM0;
+ cvta.global.u64 %rd101, %rd106;
+ mov.u32 %r290, 8;
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd101, %r99, %r290, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f75;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f74;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f73;}
+
+ // inline asm
+ st.v4.u16 [%rd100], {%rs45, %rs46, %rs47, %rs34};
+
+BB0_112:
+ ld.global.f32 %f658, [directDir];
+ fma.rn.f32 %f128, %f658, 0fBF000000, 0f3F000000;
+ ld.global.f32 %f659, [directDir+4];
+ fma.rn.f32 %f129, %f659, 0fBF000000, 0f3F000000;
+ ld.global.f32 %f660, [directDir+8];
+ fma.rn.f32 %f130, %f660, 0fBF000000, 0f3F000000;
+ ld.global.u32 %r291, [additive];
+ setp.eq.s32 %p113, %r291, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f647;}
+
+ // inline asm
+ @%p113 bra BB0_114;
+
+ mov.u64 %rd119, image_RNM1;
+ cvta.global.u64 %rd108, %rd119;
+ mov.u32 %r295, 8;
+ // inline asm
+ call (%rd107), _rt_buffer_get_64, (%rd108, %r99, %r295, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs55, %rs56, %rs57, %rs58}, [%rd107];
+ // inline asm
+ { cvt.f32.f16 %f661, %rs55;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f662, %rs56;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f663, %rs57;}
+
+ // inline asm
+ // inline asm
+ call (%rd113), _rt_buffer_get_64, (%rd108, %r99, %r295, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f664, %f128, %f661;
+ add.f32 %f665, %f128, %f662;
+ add.f32 %f666, %f128, %f663;
+ // inline asm
+ { cvt.rn.f16.f32 %rs54, %f666;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f665;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f664;}
+
+ // inline asm
+ st.v4.u16 [%rd113], {%rs52, %rs53, %rs54, %rs48};
+ bra.uni BB0_115;
+
+BB0_114:
+ mov.u64 %rd126, image_RNM1;
+ cvta.global.u64 %rd121, %rd126;
+ mov.u32 %r297, 8;
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd121, %r99, %r297, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f128;}
+
+ // inline asm
+ st.v4.u16 [%rd120], {%rs59, %rs59, %rs59, %rs48};
+
+BB0_115:
+ ld.global.u32 %r298, [additive];
+ setp.eq.s32 %p114, %r298, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f647;}
+
+ // inline asm
+ @%p114 bra BB0_117;
+
+ mov.u64 %rd139, image_RNM2;
+ cvta.global.u64 %rd128, %rd139;
+ mov.u32 %r302, 8;
+ // inline asm
+ call (%rd127), _rt_buffer_get_64, (%rd128, %r99, %r302, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd127];
+ // inline asm
+ { cvt.f32.f16 %f669, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f670, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f671, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd133), _rt_buffer_get_64, (%rd128, %r99, %r302, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f672, %f129, %f669;
+ add.f32 %f673, %f129, %f670;
+ add.f32 %f674, %f129, %f671;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f674;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f673;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f672;}
+
+ // inline asm
+ st.v4.u16 [%rd133], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_118;
+
+BB0_117:
+ mov.u64 %rd146, image_RNM2;
+ cvta.global.u64 %rd141, %rd146;
+ mov.u32 %r304, 8;
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd141, %r99, %r304, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f129;}
+
+ // inline asm
+ st.v4.u16 [%rd140], {%rs71, %rs71, %rs71, %rs60};
+
+BB0_118:
+ ld.global.u32 %r305, [additive];
+ setp.eq.s32 %p115, %r305, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f647;}
+
+ // inline asm
+ @%p115 bra BB0_120;
+
+ mov.u64 %rd159, image_RNM3;
+ cvta.global.u64 %rd148, %rd159;
+ mov.u32 %r309, 8;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r99, %r309, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs79, %rs80, %rs81, %rs82}, [%rd147];
+ // inline asm
+ { cvt.f32.f16 %f677, %rs79;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f678, %rs80;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f679, %rs81;}
+
+ // inline asm
+ // inline asm
+ call (%rd153), _rt_buffer_get_64, (%rd148, %r99, %r309, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f680, %f130, %f677;
+ add.f32 %f681, %f130, %f678;
+ add.f32 %f682, %f130, %f679;
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f682;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f681;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f680;}
+
+ // inline asm
+ st.v4.u16 [%rd153], {%rs76, %rs77, %rs78, %rs72};
+ bra.uni BB0_141;
+
+BB0_120:
+ mov.u64 %rd166, image_RNM3;
+ cvta.global.u64 %rd161, %rd166;
+ mov.u32 %r311, 8;
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd161, %r99, %r311, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f130;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs83, %rs83, %rs83, %rs72};
+
+BB0_141:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunSH.ptx.meta
new file mode 100644
index 00000000..2729b116
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmSunSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 434f62bfd528b994d926b341c7747cf1
+timeCreated: 1537559880
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLight.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLight.ptx
new file mode 100644
index 00000000..bb6f45f9
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLight.ptx
@@ -0,0 +1,1843 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 lightMeshBuffer[1];
+.global .align 4 .u32 lightMeshBufferSize;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightPointSize;
+.global .align 4 .b8 lightColor[12];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo19lightMeshBufferSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightPointSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename19lightMeshBufferSizeE[13] = {117, 110, 115, 105, 103, 110, 101, 100, 32, 105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightPointSizeE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum19lightMeshBufferSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightPointSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightPointSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightPointSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[44];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<142>;
+ .reg .b16 %rs<46>;
+ .reg .f32 %f<906>;
+ .reg .b32 %r<367>;
+ .reg .b64 %rd<147>;
+
+
+ mov.u64 %rd146, __local_depot0;
+ cvta.local.u64 %SP, %rd146;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r103, %r104}, [pixelID];
+ cvt.u64.u32 %rd21, %r103;
+ cvt.u64.u32 %rd22, %r104;
+ mov.u64 %rd25, uvnormal;
+ cvta.global.u64 %rd20, %rd25;
+ mov.u32 %r101, 2;
+ mov.u32 %r102, 4;
+ mov.u64 %rd24, 0;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd20, %r101, %r102, %rd21, %rd22, %rd24, %rd24);
+ // inline asm
+ ld.u32 %r2, [%rd19];
+ shr.u32 %r107, %r2, 16;
+ cvt.u16.u32 %rs1, %r107;
+ and.b16 %rs3, %rs1, 255;
+ cvt.u16.u32 %rs4, %r2;
+ or.b16 %rs5, %rs4, %rs3;
+ setp.eq.s16 %p7, %rs5, 0;
+ mov.f32 %f847, 0f00000000;
+ mov.f32 %f848, %f847;
+ mov.f32 %f849, %f847;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs6, [%rd19+1];
+ and.b16 %rs8, %rs4, 255;
+ cvt.rn.f32.u16 %f193, %rs8;
+ div.rn.f32 %f194, %f193, 0f437F0000;
+ fma.rn.f32 %f195, %f194, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f196, %rs6;
+ div.rn.f32 %f197, %f196, 0f437F0000;
+ fma.rn.f32 %f198, %f197, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f199, %rs3;
+ div.rn.f32 %f200, %f199, 0f437F0000;
+ fma.rn.f32 %f201, %f200, 0f40000000, 0fBF800000;
+ mul.f32 %f202, %f198, %f198;
+ fma.rn.f32 %f203, %f195, %f195, %f202;
+ fma.rn.f32 %f204, %f201, %f201, %f203;
+ sqrt.rn.f32 %f205, %f204;
+ rcp.rn.f32 %f206, %f205;
+ mul.f32 %f847, %f195, %f206;
+ mul.f32 %f848, %f198, %f206;
+ mul.f32 %f849, %f201, %f206;
+
+BB0_2:
+ ld.global.v2.u32 {%r108, %r109}, [pixelID];
+ ld.global.v2.u32 {%r111, %r112}, [tileInfo];
+ add.s32 %r3, %r108, %r111;
+ add.s32 %r4, %r109, %r112;
+ setp.eq.f32 %p8, %f848, 0f00000000;
+ setp.eq.f32 %p9, %f847, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f849, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_129;
+ bra.uni BB0_3;
+
+BB0_129:
+ ld.global.u32 %r366, [imageEnabled];
+ and.b32 %r311, %r366, 1;
+ setp.eq.b32 %p137, %r311, 1;
+ @!%p137 bra BB0_131;
+ bra.uni BB0_130;
+
+BB0_130:
+ cvt.u64.u32 %rd106, %r3;
+ cvt.u64.u32 %rd107, %r4;
+ mov.u64 %rd110, image;
+ cvta.global.u64 %rd105, %rd110;
+ // inline asm
+ call (%rd104), _rt_buffer_get_64, (%rd105, %r101, %r102, %rd106, %rd107, %rd24, %rd24);
+ // inline asm
+ mov.u16 %rs30, 0;
+ st.v4.u8 [%rd104], {%rs30, %rs30, %rs30, %rs30};
+ ld.global.u32 %r366, [imageEnabled];
+
+BB0_131:
+ and.b32 %r314, %r366, 8;
+ setp.eq.s32 %p138, %r314, 0;
+ @%p138 bra BB0_133;
+
+ cvt.u64.u32 %rd113, %r3;
+ cvt.u64.u32 %rd114, %r4;
+ mov.u64 %rd117, image_Mask;
+ cvta.global.u64 %rd112, %rd117;
+ // inline asm
+ call (%rd111), _rt_buffer_get_64, (%rd112, %r101, %r101, %rd113, %rd114, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f830, 0f00000000;
+ cvt.rzi.u32.f32 %r317, %f830;
+ cvt.u16.u32 %rs31, %r317;
+ mov.u16 %rs32, 0;
+ st.v2.u8 [%rd111], {%rs31, %rs32};
+ ld.global.u32 %r366, [imageEnabled];
+
+BB0_133:
+ and.b32 %r318, %r366, 4;
+ setp.eq.s32 %p139, %r318, 0;
+ @%p139 bra BB0_137;
+
+ ld.global.u32 %r319, [additive];
+ setp.eq.s32 %p140, %r319, 0;
+ cvt.u64.u32 %rd17, %r3;
+ cvt.u64.u32 %rd18, %r4;
+ @%p140 bra BB0_136;
+
+ mov.u64 %rd130, image_HDR;
+ cvta.global.u64 %rd119, %rd130;
+ mov.u32 %r323, 8;
+ // inline asm
+ call (%rd118), _rt_buffer_get_64, (%rd119, %r101, %r323, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs39, %rs40, %rs41, %rs42}, [%rd118];
+ // inline asm
+ { cvt.f32.f16 %f831, %rs39;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f832, %rs40;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f833, %rs41;}
+
+ // inline asm
+ // inline asm
+ call (%rd124), _rt_buffer_get_64, (%rd119, %r101, %r323, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ add.f32 %f834, %f831, 0f00000000;
+ add.f32 %f835, %f832, 0f00000000;
+ add.f32 %f836, %f833, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f836;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f835;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f834;}
+
+ // inline asm
+ mov.u16 %rs43, 0;
+ st.v4.u16 [%rd124], {%rs36, %rs37, %rs38, %rs43};
+ bra.uni BB0_137;
+
+BB0_3:
+ ld.global.v2.u32 {%r121, %r122}, [pixelID];
+ cvt.u64.u32 %rd28, %r121;
+ cvt.u64.u32 %rd29, %r122;
+ mov.u64 %rd38, uvpos;
+ cvta.global.u64 %rd27, %rd38;
+ mov.u32 %r117, 12;
+ // inline asm
+ call (%rd26), _rt_buffer_get_64, (%rd27, %r101, %r117, %rd28, %rd29, %rd24, %rd24);
+ // inline asm
+ ld.f32 %f9, [%rd26+8];
+ ld.f32 %f8, [%rd26+4];
+ ld.f32 %f7, [%rd26];
+ mul.f32 %f211, %f7, 0f3456BF95;
+ mul.f32 %f212, %f8, 0f3456BF95;
+ mul.f32 %f213, %f9, 0f3456BF95;
+ abs.f32 %f10, %f847;
+ div.rn.f32 %f214, %f211, %f10;
+ abs.f32 %f215, %f848;
+ div.rn.f32 %f216, %f212, %f215;
+ abs.f32 %f11, %f849;
+ div.rn.f32 %f217, %f213, %f11;
+ abs.f32 %f218, %f214;
+ abs.f32 %f219, %f216;
+ abs.f32 %f220, %f217;
+ mov.f32 %f221, 0f38D1B717;
+ max.f32 %f222, %f218, %f221;
+ max.f32 %f223, %f219, %f221;
+ max.f32 %f224, %f220, %f221;
+ fma.rn.f32 %f12, %f847, %f222, %f7;
+ fma.rn.f32 %f13, %f848, %f223, %f8;
+ fma.rn.f32 %f14, %f849, %f224, %f9;
+ ld.global.v2.u32 {%r125, %r126}, [pixelID];
+ cvt.u64.u32 %rd34, %r125;
+ cvt.u64.u32 %rd35, %r126;
+ mov.u64 %rd39, rnd_seeds;
+ cvta.global.u64 %rd33, %rd39;
+ // inline asm
+ call (%rd32), _rt_buffer_get_64, (%rd33, %r101, %r102, %rd34, %rd35, %rd24, %rd24);
+ // inline asm
+ ld.u32 %r129, [%rd32];
+ mad.lo.s32 %r5, %r129, 1664525, 1013904223;
+ ld.global.u32 %r130, [lightMeshBufferSize];
+ setp.eq.s32 %p14, %r130, 0;
+ mov.pred %p13, 0;
+ mov.f32 %f20, 0f00000000;
+ mov.u32 %r7, 0;
+ @%p14 bra BB0_4;
+
+ ld.global.f32 %f15, [lightPointSize];
+ mul.f32 %f16, %f12, 0f3456BF95;
+ mul.f32 %f17, %f13, 0f3456BF95;
+ mul.f32 %f18, %f14, 0f3456BF95;
+ and.b32 %r133, %r5, 16777215;
+ cvt.rn.f32.u32 %f229, %r133;
+ mul.f32 %f230, %f229, 0fB3800000;
+ fma.rn.f32 %f19, %f230, 0f3F333333, 0f3F800000;
+ mov.f32 %f20, 0f00000000;
+ mov.u32 %r335, 0;
+ abs.f32 %f353, %f17;
+ abs.f32 %f354, %f16;
+ max.f32 %f355, %f354, %f353;
+ abs.f32 %f356, %f18;
+ max.f32 %f357, %f355, %f356;
+ mov.u32 %r7, %r335;
+ mov.f32 %f21, %f20;
+ mov.f32 %f22, %f20;
+ mov.f32 %f23, %f20;
+
+BB0_6:
+ mul.lo.s32 %r8, %r335, 3;
+ cvt.s64.s32 %rd42, %r8;
+ mov.u64 %rd46, lightMeshBuffer;
+ cvta.global.u64 %rd41, %rd46;
+ mov.u32 %r134, 1;
+ // inline asm
+ call (%rd40), _rt_buffer_get_64, (%rd41, %r134, %r117, %rd42, %rd24, %rd24, %rd24);
+ // inline asm
+ ld.f32 %f231, [%rd40];
+ sub.f32 %f232, %f231, %f7;
+ ld.f32 %f233, [%rd40+4];
+ sub.f32 %f234, %f233, %f8;
+ ld.f32 %f235, [%rd40+8];
+ sub.f32 %f236, %f235, %f9;
+ mul.f32 %f237, %f234, %f234;
+ fma.rn.f32 %f238, %f232, %f232, %f237;
+ fma.rn.f32 %f239, %f236, %f236, %f238;
+ sqrt.rn.f32 %f24, %f239;
+ rcp.rn.f32 %f240, %f24;
+ mul.f32 %f25, %f232, %f240;
+ mul.f32 %f26, %f234, %f240;
+ mul.f32 %f27, %f236, %f240;
+ mul.f32 %f241, %f848, %f26;
+ fma.rn.f32 %f242, %f847, %f25, %f241;
+ fma.rn.f32 %f28, %f849, %f27, %f242;
+ setp.leu.f32 %p15, %f28, 0f00000000;
+ @%p15 bra BB0_22;
+
+ setp.ne.s32 %p17, %r1, 0;
+ mul.f32 %f243, %f24, %f24;
+ mul.f32 %f244, %f243, 0f40C90FDB;
+ div.rn.f32 %f245, %f15, %f244;
+ add.f32 %f29, %f245, %f245;
+ setp.gt.f32 %p18, %f29, %f19;
+ and.pred %p19, %p17, %p18;
+ mov.pred %p141, -1;
+ @%p19 bra BB0_24;
+
+ ld.global.f32 %f248, [lightInvCutoff];
+ mul.f32 %f30, %f24, %f248;
+ mov.f32 %f252, 0f40800000;
+ abs.f32 %f32, %f30;
+ setp.lt.f32 %p20, %f32, 0f00800000;
+ mul.f32 %f254, %f32, 0f4B800000;
+ selp.f32 %f255, 0fC3170000, 0fC2FE0000, %p20;
+ selp.f32 %f256, %f254, %f32, %p20;
+ mov.b32 %r136, %f256;
+ and.b32 %r137, %r136, 8388607;
+ or.b32 %r138, %r137, 1065353216;
+ mov.b32 %f257, %r138;
+ shr.u32 %r139, %r136, 23;
+ cvt.rn.f32.u32 %f258, %r139;
+ add.f32 %f259, %f255, %f258;
+ setp.gt.f32 %p21, %f257, 0f3FB504F3;
+ mul.f32 %f260, %f257, 0f3F000000;
+ add.f32 %f261, %f259, 0f3F800000;
+ selp.f32 %f262, %f260, %f257, %p21;
+ selp.f32 %f263, %f261, %f259, %p21;
+ add.f32 %f264, %f262, 0fBF800000;
+ add.f32 %f247, %f262, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f246,%f247;
+ // inline asm
+ add.f32 %f265, %f264, %f264;
+ mul.f32 %f266, %f246, %f265;
+ mul.f32 %f267, %f266, %f266;
+ mov.f32 %f268, 0f3C4CAF63;
+ mov.f32 %f269, 0f3B18F0FE;
+ fma.rn.f32 %f270, %f269, %f267, %f268;
+ mov.f32 %f271, 0f3DAAAABD;
+ fma.rn.f32 %f272, %f270, %f267, %f271;
+ mul.rn.f32 %f273, %f272, %f267;
+ mul.rn.f32 %f274, %f273, %f266;
+ sub.f32 %f275, %f264, %f266;
+ neg.f32 %f276, %f266;
+ add.f32 %f277, %f275, %f275;
+ fma.rn.f32 %f278, %f276, %f264, %f277;
+ mul.rn.f32 %f279, %f246, %f278;
+ add.f32 %f280, %f274, %f266;
+ sub.f32 %f281, %f266, %f280;
+ add.f32 %f282, %f274, %f281;
+ add.f32 %f283, %f279, %f282;
+ add.f32 %f284, %f280, %f283;
+ sub.f32 %f285, %f280, %f284;
+ add.f32 %f286, %f283, %f285;
+ mov.f32 %f287, 0f3F317200;
+ mul.rn.f32 %f288, %f263, %f287;
+ mov.f32 %f289, 0f35BFBE8E;
+ mul.rn.f32 %f290, %f263, %f289;
+ add.f32 %f291, %f288, %f284;
+ sub.f32 %f292, %f288, %f291;
+ add.f32 %f293, %f284, %f292;
+ add.f32 %f294, %f286, %f293;
+ add.f32 %f295, %f290, %f294;
+ add.f32 %f296, %f291, %f295;
+ sub.f32 %f297, %f291, %f296;
+ add.f32 %f298, %f295, %f297;
+ mul.rn.f32 %f299, %f252, %f296;
+ neg.f32 %f300, %f299;
+ fma.rn.f32 %f301, %f252, %f296, %f300;
+ fma.rn.f32 %f302, %f252, %f298, %f301;
+ mov.f32 %f303, 0f00000000;
+ fma.rn.f32 %f304, %f303, %f296, %f302;
+ add.rn.f32 %f305, %f299, %f304;
+ neg.f32 %f306, %f305;
+ add.rn.f32 %f307, %f299, %f306;
+ add.rn.f32 %f308, %f307, %f304;
+ mov.b32 %r140, %f305;
+ setp.eq.s32 %p22, %r140, 1118925336;
+ add.s32 %r141, %r140, -1;
+ mov.b32 %f309, %r141;
+ add.f32 %f310, %f308, 0f37000000;
+ selp.f32 %f311, %f309, %f305, %p22;
+ selp.f32 %f33, %f310, %f308, %p22;
+ mul.f32 %f312, %f311, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f313, %f312;
+ mov.f32 %f314, 0fBF317200;
+ fma.rn.f32 %f315, %f313, %f314, %f311;
+ mov.f32 %f316, 0fB5BFBE8E;
+ fma.rn.f32 %f317, %f313, %f316, %f315;
+ mul.f32 %f318, %f317, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f319, %f318;
+ add.f32 %f320, %f313, 0f00000000;
+ ex2.approx.f32 %f321, %f320;
+ mul.f32 %f322, %f319, %f321;
+ setp.lt.f32 %p23, %f311, 0fC2D20000;
+ selp.f32 %f323, 0f00000000, %f322, %p23;
+ setp.gt.f32 %p24, %f311, 0f42D20000;
+ selp.f32 %f854, 0f7F800000, %f323, %p24;
+ setp.eq.f32 %p25, %f854, 0f7F800000;
+ @%p25 bra BB0_10;
+
+ fma.rn.f32 %f854, %f854, %f33, %f854;
+
+BB0_10:
+ mov.f32 %f843, 0f40000000;
+ cvt.rzi.f32.f32 %f842, %f843;
+ add.f32 %f841, %f842, %f842;
+ mov.f32 %f840, 0f40800000;
+ sub.f32 %f839, %f840, %f841;
+ abs.f32 %f838, %f839;
+ setp.lt.f32 %p26, %f30, 0f00000000;
+ setp.eq.f32 %p27, %f838, 0f3F800000;
+ and.pred %p1, %p26, %p27;
+ mov.b32 %r142, %f854;
+ xor.b32 %r143, %r142, -2147483648;
+ mov.b32 %f324, %r143;
+ selp.f32 %f856, %f324, %f854, %p1;
+ setp.eq.f32 %p28, %f30, 0f00000000;
+ @%p28 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f327, %f30, %f30;
+ selp.f32 %f856, %f327, 0f00000000, %p27;
+ bra.uni BB0_14;
+
+BB0_11:
+ setp.geu.f32 %p29, %f30, 0f00000000;
+ @%p29 bra BB0_14;
+
+ mov.f32 %f846, 0f40800000;
+ cvt.rzi.f32.f32 %f326, %f846;
+ setp.neu.f32 %p30, %f326, 0f40800000;
+ selp.f32 %f856, 0f7FFFFFFF, %f856, %p30;
+
+BB0_14:
+ add.f32 %f328, %f32, 0f40800000;
+ mov.b32 %r144, %f328;
+ setp.lt.s32 %p32, %r144, 2139095040;
+ @%p32 bra BB0_19;
+
+ setp.gtu.f32 %p33, %f32, 0f7F800000;
+ @%p33 bra BB0_18;
+ bra.uni BB0_16;
+
+BB0_18:
+ add.f32 %f856, %f30, 0f40800000;
+ bra.uni BB0_19;
+
+BB0_16:
+ setp.neu.f32 %p34, %f32, 0f7F800000;
+ @%p34 bra BB0_19;
+
+ selp.f32 %f856, 0fFF800000, 0f7F800000, %p1;
+
+BB0_19:
+ mov.u32 %r327, 1;
+ mov.u64 %rd139, lightMeshBuffer;
+ cvta.global.u64 %rd138, %rd139;
+ mul.lo.s32 %r326, %r335, 3;
+ mov.f32 %f329, 0f3F800000;
+ sub.f32 %f330, %f329, %f856;
+ setp.eq.f32 %p35, %f30, 0f3F800000;
+ selp.f32 %f331, 0f00000000, %f330, %p35;
+ cvt.sat.f32.f32 %f332, %f331;
+ mul.f32 %f333, %f29, %f332;
+ add.s32 %r147, %r326, 1;
+ cvt.s64.s32 %rd49, %r147;
+ // inline asm
+ call (%rd47), _rt_buffer_get_64, (%rd138, %r327, %r117, %rd49, %rd24, %rd24, %rd24);
+ // inline asm
+ ld.f32 %f334, [%rd47];
+ mul.f32 %f335, %f25, %f334;
+ ld.f32 %f336, [%rd47+4];
+ mul.f32 %f337, %f26, %f336;
+ neg.f32 %f338, %f337;
+ sub.f32 %f339, %f338, %f335;
+ ld.f32 %f340, [%rd47+8];
+ mul.f32 %f341, %f27, %f340;
+ sub.f32 %f342, %f339, %f341;
+ cvt.sat.f32.f32 %f343, %f342;
+ mul.f32 %f44, %f333, %f343;
+ cvt.sat.f32.f32 %f45, %f28;
+ mul.f32 %f344, %f44, %f45;
+ setp.leu.f32 %p36, %f344, 0f3727C5AC;
+ @%p36 bra BB0_21;
+
+ mov.u32 %r334, 1;
+ mov.u64 %rd141, lightMeshBuffer;
+ cvta.global.u64 %rd140, %rd141;
+ mul.lo.s32 %r333, %r335, 3;
+ add.u64 %rd54, %SP, 28;
+ cvta.to.local.u64 %rd61, %rd54;
+ max.f32 %f351, %f357, %f221;
+ sub.f32 %f352, %f24, %f351;
+ mov.u32 %r153, 1065353216;
+ st.local.u32 [%rd61], %r153;
+ ld.global.u32 %r148, [root];
+ // inline asm
+ call _rt_trace_64, (%r148, %f12, %f13, %f14, %f25, %f26, %f27, %r334, %f351, %f352, %rd54, %r102);
+ // inline asm
+ add.s32 %r154, %r333, 2;
+ cvt.s64.s32 %rd57, %r154;
+ // inline asm
+ call (%rd55), _rt_buffer_get_64, (%rd140, %r334, %r117, %rd57, %rd24, %rd24, %rd24);
+ // inline asm
+ ld.f32 %f359, [%rd55];
+ ld.local.f32 %f360, [%rd61];
+ mul.f32 %f361, %f360, %f359;
+ ld.f32 %f362, [%rd55+4];
+ mul.f32 %f363, %f360, %f362;
+ ld.f32 %f364, [%rd55+8];
+ mul.f32 %f365, %f360, %f364;
+ mul.f32 %f366, %f44, %f361;
+ mul.f32 %f367, %f44, %f363;
+ mul.f32 %f368, %f44, %f365;
+ fma.rn.f32 %f23, %f45, %f366, %f23;
+ fma.rn.f32 %f22, %f45, %f367, %f22;
+ fma.rn.f32 %f21, %f45, %f368, %f21;
+ add.f32 %f20, %f20, %f360;
+
+BB0_21:
+ add.s32 %r7, %r7, 1;
+
+BB0_22:
+ ld.global.u32 %r155, [lightMeshBufferSize];
+ add.s32 %r335, %r335, 1;
+ setp.lt.u32 %p38, %r335, %r155;
+ @%p38 bra BB0_6;
+ bra.uni BB0_23;
+
+BB0_4:
+ mov.f32 %f21, %f20;
+ mov.f32 %f22, %f20;
+ mov.f32 %f23, %f20;
+
+BB0_23:
+ mov.pred %p141, %p13;
+
+BB0_24:
+ cvt.rn.f32.s32 %f369, %r7;
+ mov.f32 %f370, 0f3F800000;
+ max.f32 %f371, %f369, %f370;
+ rcp.rn.f32 %f372, %f371;
+ mul.f32 %f890, %f23, %f372;
+ mul.f32 %f891, %f22, %f372;
+ mul.f32 %f892, %f21, %f372;
+ div.rn.f32 %f893, %f20, %f371;
+ @!%p141 bra BB0_77;
+ bra.uni BB0_25;
+
+BB0_25:
+ abs.f32 %f845, %f849;
+ abs.f32 %f844, %f847;
+ setp.gt.f32 %p39, %f844, %f845;
+ neg.f32 %f376, %f848;
+ selp.f32 %f377, %f376, 0f00000000, %p39;
+ neg.f32 %f378, %f849;
+ selp.f32 %f379, %f847, %f378, %p39;
+ selp.f32 %f380, 0f00000000, %f848, %p39;
+ mul.f32 %f381, %f379, %f379;
+ fma.rn.f32 %f382, %f377, %f377, %f381;
+ fma.rn.f32 %f383, %f380, %f380, %f382;
+ sqrt.rn.f32 %f384, %f383;
+ rcp.rn.f32 %f385, %f384;
+ mul.f32 %f66, %f377, %f385;
+ mul.f32 %f67, %f379, %f385;
+ mul.f32 %f68, %f380, %f385;
+ mov.f32 %f375, 0f00000000;
+ setp.lt.s32 %p40, %r1, 1;
+ mov.f32 %f872, %f375;
+ mov.f32 %f873, %f375;
+ mov.f32 %f874, %f375;
+ @%p40 bra BB0_76;
+
+ mad.lo.s32 %r342, %r129, 1664525, 1013904223;
+ cvt.rn.f32.s32 %f389, %r1;
+ rcp.rn.f32 %f69, %f389;
+ add.u64 %rd63, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd63;
+ mul.f32 %f70, %f12, 0f3456BF95;
+ mul.f32 %f71, %f13, 0f3456BF95;
+ mul.f32 %f72, %f14, 0f3456BF95;
+ add.u64 %rd64, %SP, 32;
+ cvta.to.local.u64 %rd3, %rd64;
+ mul.f32 %f390, %f847, %f67;
+ mul.f32 %f391, %f848, %f66;
+ sub.f32 %f73, %f391, %f390;
+ mul.f32 %f392, %f849, %f66;
+ mul.f32 %f393, %f847, %f68;
+ sub.f32 %f74, %f393, %f392;
+ mul.f32 %f394, %f848, %f68;
+ mul.f32 %f395, %f849, %f67;
+ sub.f32 %f75, %f395, %f394;
+ mov.f32 %f872, 0f00000000;
+ mov.u32 %r156, 0;
+ abs.f32 %f396, %f71;
+ abs.f32 %f397, %f70;
+ max.f32 %f398, %f397, %f396;
+ abs.f32 %f399, %f72;
+ max.f32 %f400, %f398, %f399;
+ mov.u32 %r339, %r156;
+ mov.f32 %f873, %f872;
+ mov.f32 %f874, %f872;
+
+BB0_27:
+ cvt.rn.f32.s32 %f79, %r339;
+ max.f32 %f80, %f400, %f221;
+ mov.u32 %r341, %r156;
+
+BB0_28:
+ mad.lo.s32 %r158, %r342, 1664525, 1013904223;
+ and.b32 %r159, %r158, 16777215;
+ cvt.rn.f32.u32 %f402, %r159;
+ fma.rn.f32 %f403, %f402, 0f33800000, %f79;
+ mul.f32 %f404, %f69, %f403;
+ mad.lo.s32 %r342, %r158, 1664525, 1013904223;
+ and.b32 %r160, %r342, 16777215;
+ cvt.rn.f32.u32 %f405, %r160;
+ cvt.rn.f32.s32 %f406, %r341;
+ fma.rn.f32 %f407, %f405, 0f33800000, %f406;
+ mul.f32 %f408, %f69, %f407;
+ sqrt.rn.f32 %f84, %f404;
+ mul.f32 %f881, %f408, 0f40C90FDB;
+ abs.f32 %f86, %f881;
+ setp.neu.f32 %p41, %f86, 0f7F800000;
+ mov.f32 %f875, %f881;
+ @%p41 bra BB0_30;
+
+ mov.f32 %f409, 0f00000000;
+ mul.rn.f32 %f875, %f881, %f409;
+
+BB0_30:
+ mul.f32 %f410, %f875, 0f3F22F983;
+ cvt.rni.s32.f32 %r352, %f410;
+ cvt.rn.f32.s32 %f411, %r352;
+ neg.f32 %f412, %f411;
+ mov.f32 %f413, 0f3FC90FDA;
+ fma.rn.f32 %f414, %f412, %f413, %f875;
+ mov.f32 %f415, 0f33A22168;
+ fma.rn.f32 %f416, %f412, %f415, %f414;
+ mov.f32 %f417, 0f27C234C5;
+ fma.rn.f32 %f876, %f412, %f417, %f416;
+ abs.f32 %f418, %f875;
+ setp.leu.f32 %p42, %f418, 0f47CE4780;
+ @%p42 bra BB0_41;
+
+ mov.b32 %r19, %f875;
+ shr.u32 %r20, %r19, 23;
+ shl.b32 %r163, %r19, 8;
+ or.b32 %r21, %r163, -2147483648;
+ mov.u32 %r344, 0;
+ mov.u64 %rd142, __cudart_i2opi_f;
+ mov.u32 %r343, -6;
+ mov.u64 %rd143, %rd2;
+
+BB0_32:
+ .pragma "nounroll";
+ ld.const.u32 %r166, [%rd142];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r164, %r166, %r21, %r344;
+ madc.hi.u32 %r344, %r166, %r21, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd143], %r164;
+ add.s64 %rd143, %rd143, 4;
+ add.s64 %rd142, %rd142, 4;
+ add.s32 %r343, %r343, 1;
+ setp.ne.s32 %p43, %r343, 0;
+ @%p43 bra BB0_32;
+
+ and.b32 %r169, %r20, 255;
+ add.s32 %r170, %r169, -128;
+ shr.u32 %r171, %r170, 5;
+ and.b32 %r26, %r19, -2147483648;
+ st.local.u32 [%rd2+24], %r344;
+ mov.u32 %r172, 6;
+ sub.s32 %r173, %r172, %r171;
+ mul.wide.s32 %rd66, %r173, 4;
+ add.s64 %rd8, %rd2, %rd66;
+ ld.local.u32 %r345, [%rd8];
+ ld.local.u32 %r346, [%rd8+-4];
+ and.b32 %r29, %r20, 31;
+ setp.eq.s32 %p44, %r29, 0;
+ @%p44 bra BB0_35;
+
+ mov.u32 %r174, 32;
+ sub.s32 %r175, %r174, %r29;
+ shr.u32 %r176, %r346, %r175;
+ shl.b32 %r177, %r345, %r29;
+ add.s32 %r345, %r176, %r177;
+ ld.local.u32 %r178, [%rd8+-8];
+ shr.u32 %r179, %r178, %r175;
+ shl.b32 %r180, %r346, %r29;
+ add.s32 %r346, %r179, %r180;
+
+BB0_35:
+ shr.u32 %r181, %r346, 30;
+ shl.b32 %r182, %r345, 2;
+ add.s32 %r347, %r181, %r182;
+ shl.b32 %r35, %r346, 2;
+ shr.u32 %r183, %r347, 31;
+ shr.u32 %r184, %r345, 30;
+ add.s32 %r36, %r183, %r184;
+ setp.eq.s32 %p45, %r183, 0;
+ @%p45 bra BB0_36;
+ bra.uni BB0_37;
+
+BB0_36:
+ mov.u32 %r348, %r26;
+ mov.u32 %r349, %r35;
+ bra.uni BB0_38;
+
+BB0_37:
+ not.b32 %r185, %r347;
+ neg.s32 %r349, %r35;
+ setp.eq.s32 %p46, %r35, 0;
+ selp.u32 %r186, 1, 0, %p46;
+ add.s32 %r347, %r186, %r185;
+ xor.b32 %r348, %r26, -2147483648;
+
+BB0_38:
+ clz.b32 %r351, %r347;
+ setp.eq.s32 %p47, %r351, 0;
+ shl.b32 %r187, %r347, %r351;
+ mov.u32 %r188, 32;
+ sub.s32 %r189, %r188, %r351;
+ shr.u32 %r190, %r349, %r189;
+ add.s32 %r191, %r190, %r187;
+ selp.b32 %r44, %r347, %r191, %p47;
+ mov.u32 %r192, -921707870;
+ mul.hi.u32 %r350, %r44, %r192;
+ setp.eq.s32 %p48, %r26, 0;
+ neg.s32 %r193, %r36;
+ selp.b32 %r352, %r36, %r193, %p48;
+ setp.lt.s32 %p49, %r350, 1;
+ @%p49 bra BB0_40;
+
+ mul.lo.s32 %r194, %r44, -921707870;
+ shr.u32 %r195, %r194, 31;
+ shl.b32 %r196, %r350, 1;
+ add.s32 %r350, %r195, %r196;
+ add.s32 %r351, %r351, 1;
+
+BB0_40:
+ mov.u32 %r197, 126;
+ sub.s32 %r198, %r197, %r351;
+ shl.b32 %r199, %r198, 23;
+ add.s32 %r200, %r350, 1;
+ shr.u32 %r201, %r200, 7;
+ add.s32 %r202, %r201, 1;
+ shr.u32 %r203, %r202, 1;
+ add.s32 %r204, %r203, %r199;
+ or.b32 %r205, %r204, %r348;
+ mov.b32 %f876, %r205;
+
+BB0_41:
+ mul.rn.f32 %f92, %f876, %f876;
+ add.s32 %r52, %r352, 1;
+ and.b32 %r53, %r52, 1;
+ setp.eq.s32 %p50, %r53, 0;
+ @%p50 bra BB0_43;
+ bra.uni BB0_42;
+
+BB0_43:
+ mov.f32 %f421, 0f3C08839E;
+ mov.f32 %f422, 0fB94CA1F9;
+ fma.rn.f32 %f877, %f422, %f92, %f421;
+ bra.uni BB0_44;
+
+BB0_42:
+ mov.f32 %f419, 0fBAB6061A;
+ mov.f32 %f420, 0f37CCF5CE;
+ fma.rn.f32 %f877, %f420, %f92, %f419;
+
+BB0_44:
+ @%p50 bra BB0_46;
+ bra.uni BB0_45;
+
+BB0_46:
+ mov.f32 %f426, 0fBE2AAAA3;
+ fma.rn.f32 %f427, %f877, %f92, %f426;
+ mov.f32 %f428, 0f00000000;
+ fma.rn.f32 %f878, %f427, %f92, %f428;
+ bra.uni BB0_47;
+
+BB0_45:
+ mov.f32 %f423, 0f3D2AAAA5;
+ fma.rn.f32 %f424, %f877, %f92, %f423;
+ mov.f32 %f425, 0fBF000000;
+ fma.rn.f32 %f878, %f424, %f92, %f425;
+
+BB0_47:
+ fma.rn.f32 %f879, %f878, %f876, %f876;
+ @%p50 bra BB0_49;
+
+ fma.rn.f32 %f879, %f878, %f92, %f370;
+
+BB0_49:
+ and.b32 %r206, %r52, 2;
+ setp.eq.s32 %p53, %r206, 0;
+ @%p53 bra BB0_51;
+
+ mov.f32 %f430, 0f00000000;
+ mov.f32 %f431, 0fBF800000;
+ fma.rn.f32 %f879, %f879, %f431, %f430;
+
+BB0_51:
+ @%p41 bra BB0_53;
+
+ mov.f32 %f432, 0f00000000;
+ mul.rn.f32 %f881, %f881, %f432;
+
+BB0_53:
+ mul.f32 %f433, %f881, 0f3F22F983;
+ cvt.rni.s32.f32 %r362, %f433;
+ cvt.rn.f32.s32 %f434, %r362;
+ neg.f32 %f435, %f434;
+ fma.rn.f32 %f437, %f435, %f413, %f881;
+ fma.rn.f32 %f439, %f435, %f415, %f437;
+ fma.rn.f32 %f882, %f435, %f417, %f439;
+ abs.f32 %f441, %f881;
+ setp.leu.f32 %p55, %f441, 0f47CE4780;
+ @%p55 bra BB0_64;
+
+ mov.b32 %r55, %f881;
+ shr.u32 %r56, %r55, 23;
+ shl.b32 %r209, %r55, 8;
+ or.b32 %r57, %r209, -2147483648;
+ mov.u32 %r354, 0;
+ mov.u64 %rd144, __cudart_i2opi_f;
+ mov.u32 %r353, -6;
+ mov.u64 %rd145, %rd2;
+
+BB0_55:
+ .pragma "nounroll";
+ ld.const.u32 %r212, [%rd144];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r210, %r212, %r57, %r354;
+ madc.hi.u32 %r354, %r212, %r57, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd145], %r210;
+ add.s64 %rd145, %rd145, 4;
+ add.s64 %rd144, %rd144, 4;
+ add.s32 %r353, %r353, 1;
+ setp.ne.s32 %p56, %r353, 0;
+ @%p56 bra BB0_55;
+
+ and.b32 %r215, %r56, 255;
+ add.s32 %r216, %r215, -128;
+ shr.u32 %r217, %r216, 5;
+ and.b32 %r62, %r55, -2147483648;
+ st.local.u32 [%rd2+24], %r354;
+ mov.u32 %r218, 6;
+ sub.s32 %r219, %r218, %r217;
+ mul.wide.s32 %rd68, %r219, 4;
+ add.s64 %rd13, %rd2, %rd68;
+ ld.local.u32 %r355, [%rd13];
+ ld.local.u32 %r356, [%rd13+-4];
+ and.b32 %r65, %r56, 31;
+ setp.eq.s32 %p57, %r65, 0;
+ @%p57 bra BB0_58;
+
+ mov.u32 %r220, 32;
+ sub.s32 %r221, %r220, %r65;
+ shr.u32 %r222, %r356, %r221;
+ shl.b32 %r223, %r355, %r65;
+ add.s32 %r355, %r222, %r223;
+ ld.local.u32 %r224, [%rd13+-8];
+ shr.u32 %r225, %r224, %r221;
+ shl.b32 %r226, %r356, %r65;
+ add.s32 %r356, %r225, %r226;
+
+BB0_58:
+ shr.u32 %r227, %r356, 30;
+ shl.b32 %r228, %r355, 2;
+ add.s32 %r357, %r227, %r228;
+ shl.b32 %r71, %r356, 2;
+ shr.u32 %r229, %r357, 31;
+ shr.u32 %r230, %r355, 30;
+ add.s32 %r72, %r229, %r230;
+ setp.eq.s32 %p58, %r229, 0;
+ @%p58 bra BB0_59;
+ bra.uni BB0_60;
+
+BB0_59:
+ mov.u32 %r358, %r62;
+ mov.u32 %r359, %r71;
+ bra.uni BB0_61;
+
+BB0_60:
+ not.b32 %r231, %r357;
+ neg.s32 %r359, %r71;
+ setp.eq.s32 %p59, %r71, 0;
+ selp.u32 %r232, 1, 0, %p59;
+ add.s32 %r357, %r232, %r231;
+ xor.b32 %r358, %r62, -2147483648;
+
+BB0_61:
+ clz.b32 %r361, %r357;
+ setp.eq.s32 %p60, %r361, 0;
+ shl.b32 %r233, %r357, %r361;
+ mov.u32 %r234, 32;
+ sub.s32 %r235, %r234, %r361;
+ shr.u32 %r236, %r359, %r235;
+ add.s32 %r237, %r236, %r233;
+ selp.b32 %r80, %r357, %r237, %p60;
+ mov.u32 %r238, -921707870;
+ mul.hi.u32 %r360, %r80, %r238;
+ setp.eq.s32 %p61, %r62, 0;
+ neg.s32 %r239, %r72;
+ selp.b32 %r362, %r72, %r239, %p61;
+ setp.lt.s32 %p62, %r360, 1;
+ @%p62 bra BB0_63;
+
+ mul.lo.s32 %r240, %r80, -921707870;
+ shr.u32 %r241, %r240, 31;
+ shl.b32 %r242, %r360, 1;
+ add.s32 %r360, %r241, %r242;
+ add.s32 %r361, %r361, 1;
+
+BB0_63:
+ mov.u32 %r243, 126;
+ sub.s32 %r244, %r243, %r361;
+ shl.b32 %r245, %r244, 23;
+ add.s32 %r246, %r360, 1;
+ shr.u32 %r247, %r246, 7;
+ add.s32 %r248, %r247, 1;
+ shr.u32 %r249, %r248, 1;
+ add.s32 %r250, %r249, %r245;
+ or.b32 %r251, %r250, %r358;
+ mov.b32 %f882, %r251;
+
+BB0_64:
+ mul.rn.f32 %f109, %f882, %f882;
+ and.b32 %r88, %r362, 1;
+ setp.eq.s32 %p63, %r88, 0;
+ @%p63 bra BB0_66;
+ bra.uni BB0_65;
+
+BB0_66:
+ mov.f32 %f444, 0f3C08839E;
+ mov.f32 %f445, 0fB94CA1F9;
+ fma.rn.f32 %f883, %f445, %f109, %f444;
+ bra.uni BB0_67;
+
+BB0_65:
+ mov.f32 %f442, 0fBAB6061A;
+ mov.f32 %f443, 0f37CCF5CE;
+ fma.rn.f32 %f883, %f443, %f109, %f442;
+
+BB0_67:
+ @%p63 bra BB0_69;
+ bra.uni BB0_68;
+
+BB0_69:
+ mov.f32 %f449, 0fBE2AAAA3;
+ fma.rn.f32 %f450, %f883, %f109, %f449;
+ mov.f32 %f451, 0f00000000;
+ fma.rn.f32 %f884, %f450, %f109, %f451;
+ bra.uni BB0_70;
+
+BB0_68:
+ mov.f32 %f446, 0f3D2AAAA5;
+ fma.rn.f32 %f447, %f883, %f109, %f446;
+ mov.f32 %f448, 0fBF000000;
+ fma.rn.f32 %f884, %f447, %f109, %f448;
+
+BB0_70:
+ fma.rn.f32 %f885, %f884, %f882, %f882;
+ @%p63 bra BB0_72;
+
+ fma.rn.f32 %f885, %f884, %f109, %f370;
+
+BB0_72:
+ and.b32 %r252, %r362, 2;
+ setp.eq.s32 %p66, %r252, 0;
+ @%p66 bra BB0_74;
+
+ mov.f32 %f453, 0f00000000;
+ mov.f32 %f454, 0fBF800000;
+ fma.rn.f32 %f885, %f885, %f454, %f453;
+
+BB0_74:
+ mul.f32 %f463, %f84, %f879;
+ mul.f32 %f464, %f463, %f463;
+ sub.f32 %f466, %f370, %f464;
+ mul.f32 %f467, %f84, %f885;
+ mul.f32 %f468, %f467, %f467;
+ sub.f32 %f469, %f466, %f468;
+ mov.f32 %f470, 0f00000000;
+ max.f32 %f471, %f470, %f469;
+ sqrt.rn.f32 %f472, %f471;
+ mul.f32 %f473, %f66, %f467;
+ mul.f32 %f474, %f67, %f467;
+ mul.f32 %f475, %f68, %f467;
+ fma.rn.f32 %f476, %f75, %f463, %f473;
+ fma.rn.f32 %f477, %f74, %f463, %f474;
+ fma.rn.f32 %f478, %f73, %f463, %f475;
+ fma.rn.f32 %f458, %f847, %f472, %f476;
+ fma.rn.f32 %f459, %f848, %f472, %f477;
+ fma.rn.f32 %f460, %f849, %f472, %f478;
+ mov.u32 %r254, 0;
+ st.local.u32 [%rd3+8], %r254;
+ st.local.u32 [%rd3+4], %r254;
+ st.local.u32 [%rd3], %r254;
+ ld.global.u32 %r253, [root];
+ mov.f32 %f462, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r253, %f12, %f13, %f14, %f458, %f459, %f460, %r254, %f80, %f462, %rd64, %r117);
+ // inline asm
+ ld.local.f32 %f479, [%rd3];
+ max.f32 %f480, %f479, %f470;
+ ld.local.f32 %f481, [%rd3+4];
+ max.f32 %f482, %f481, %f470;
+ ld.local.f32 %f483, [%rd3+8];
+ max.f32 %f484, %f483, %f470;
+ add.f32 %f874, %f874, %f480;
+ add.f32 %f873, %f873, %f482;
+ add.f32 %f872, %f872, %f484;
+ add.s32 %r341, %r341, 1;
+ setp.lt.s32 %p67, %r341, %r1;
+ @%p67 bra BB0_28;
+
+ add.s32 %r339, %r339, 1;
+ setp.lt.s32 %p68, %r339, %r1;
+ @%p68 bra BB0_27;
+
+BB0_76:
+ mul.lo.s32 %r256, %r1, %r1;
+ cvt.rn.f32.s32 %f485, %r256;
+ rcp.rn.f32 %f486, %f485;
+ mul.f32 %f890, %f874, %f486;
+ mul.f32 %f891, %f873, %f486;
+ mul.f32 %f892, %f872, %f486;
+ div.rn.f32 %f893, %f375, %f485;
+
+BB0_77:
+ ld.global.u32 %r364, [imageEnabled];
+ and.b32 %r257, %r364, 8;
+ setp.eq.s32 %p69, %r257, 0;
+ @%p69 bra BB0_90;
+
+ mov.u32 %r328, 2;
+ cvt.u64.u32 %rd72, %r3;
+ cvt.u64.u32 %rd73, %r4;
+ mov.u64 %rd76, image_Mask;
+ cvta.global.u64 %rd71, %rd76;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd71, %r328, %r328, %rd72, %rd73, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f490, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f491, %f490;
+ fma.rn.f32 %f492, %f491, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f135, %f492;
+ abs.f32 %f136, %f893;
+ setp.lt.f32 %p70, %f136, 0f00800000;
+ mul.f32 %f493, %f136, 0f4B800000;
+ selp.f32 %f494, 0fC3170000, 0fC2FE0000, %p70;
+ selp.f32 %f495, %f493, %f136, %p70;
+ mov.b32 %r260, %f495;
+ and.b32 %r261, %r260, 8388607;
+ or.b32 %r262, %r261, 1065353216;
+ mov.b32 %f496, %r262;
+ shr.u32 %r263, %r260, 23;
+ cvt.rn.f32.u32 %f497, %r263;
+ add.f32 %f498, %f494, %f497;
+ setp.gt.f32 %p71, %f496, 0f3FB504F3;
+ mul.f32 %f499, %f496, 0f3F000000;
+ add.f32 %f500, %f498, 0f3F800000;
+ selp.f32 %f501, %f499, %f496, %p71;
+ selp.f32 %f502, %f500, %f498, %p71;
+ add.f32 %f503, %f501, 0fBF800000;
+ add.f32 %f489, %f501, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f488,%f489;
+ // inline asm
+ add.f32 %f504, %f503, %f503;
+ mul.f32 %f505, %f488, %f504;
+ mul.f32 %f506, %f505, %f505;
+ mov.f32 %f507, 0f3C4CAF63;
+ mov.f32 %f508, 0f3B18F0FE;
+ fma.rn.f32 %f509, %f508, %f506, %f507;
+ mov.f32 %f510, 0f3DAAAABD;
+ fma.rn.f32 %f511, %f509, %f506, %f510;
+ mul.rn.f32 %f512, %f511, %f506;
+ mul.rn.f32 %f513, %f512, %f505;
+ sub.f32 %f514, %f503, %f505;
+ neg.f32 %f515, %f505;
+ add.f32 %f516, %f514, %f514;
+ fma.rn.f32 %f517, %f515, %f503, %f516;
+ mul.rn.f32 %f518, %f488, %f517;
+ add.f32 %f519, %f513, %f505;
+ sub.f32 %f520, %f505, %f519;
+ add.f32 %f521, %f513, %f520;
+ add.f32 %f522, %f518, %f521;
+ add.f32 %f523, %f519, %f522;
+ sub.f32 %f524, %f519, %f523;
+ add.f32 %f525, %f522, %f524;
+ mov.f32 %f526, 0f3F317200;
+ mul.rn.f32 %f527, %f502, %f526;
+ mov.f32 %f528, 0f35BFBE8E;
+ mul.rn.f32 %f529, %f502, %f528;
+ add.f32 %f530, %f527, %f523;
+ sub.f32 %f531, %f527, %f530;
+ add.f32 %f532, %f523, %f531;
+ add.f32 %f533, %f525, %f532;
+ add.f32 %f534, %f529, %f533;
+ add.f32 %f535, %f530, %f534;
+ sub.f32 %f536, %f530, %f535;
+ add.f32 %f537, %f534, %f536;
+ mov.f32 %f538, 0f3EE8BA2E;
+ mul.rn.f32 %f539, %f538, %f535;
+ neg.f32 %f540, %f539;
+ fma.rn.f32 %f541, %f538, %f535, %f540;
+ fma.rn.f32 %f542, %f538, %f537, %f541;
+ mov.f32 %f543, 0f00000000;
+ fma.rn.f32 %f544, %f543, %f535, %f542;
+ add.rn.f32 %f545, %f539, %f544;
+ neg.f32 %f546, %f545;
+ add.rn.f32 %f547, %f539, %f546;
+ add.rn.f32 %f548, %f547, %f544;
+ mov.b32 %r264, %f545;
+ setp.eq.s32 %p72, %r264, 1118925336;
+ add.s32 %r265, %r264, -1;
+ mov.b32 %f549, %r265;
+ add.f32 %f550, %f548, 0f37000000;
+ selp.f32 %f551, %f549, %f545, %p72;
+ selp.f32 %f137, %f550, %f548, %p72;
+ mul.f32 %f552, %f551, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f553, %f552;
+ mov.f32 %f554, 0fBF317200;
+ fma.rn.f32 %f555, %f553, %f554, %f551;
+ mov.f32 %f556, 0fB5BFBE8E;
+ fma.rn.f32 %f557, %f553, %f556, %f555;
+ mul.f32 %f558, %f557, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f559, %f558;
+ add.f32 %f560, %f553, 0f00000000;
+ ex2.approx.f32 %f561, %f560;
+ mul.f32 %f562, %f559, %f561;
+ setp.lt.f32 %p73, %f551, 0fC2D20000;
+ selp.f32 %f563, 0f00000000, %f562, %p73;
+ setp.gt.f32 %p74, %f551, 0f42D20000;
+ selp.f32 %f894, 0f7F800000, %f563, %p74;
+ setp.eq.f32 %p75, %f894, 0f7F800000;
+ @%p75 bra BB0_80;
+
+ fma.rn.f32 %f894, %f894, %f137, %f894;
+
+BB0_80:
+ setp.lt.f32 %p76, %f893, 0f00000000;
+ setp.eq.f32 %p77, %f135, 0f3F800000;
+ and.pred %p3, %p76, %p77;
+ mov.b32 %r266, %f894;
+ xor.b32 %r267, %r266, -2147483648;
+ mov.b32 %f564, %r267;
+ selp.f32 %f896, %f564, %f894, %p3;
+ setp.eq.f32 %p78, %f893, 0f00000000;
+ @%p78 bra BB0_83;
+ bra.uni BB0_81;
+
+BB0_83:
+ add.f32 %f567, %f893, %f893;
+ selp.f32 %f896, %f567, 0f00000000, %p77;
+ bra.uni BB0_84;
+
+BB0_136:
+ mov.u64 %rd137, image_HDR;
+ cvta.global.u64 %rd132, %rd137;
+ mov.u32 %r325, 8;
+ // inline asm
+ call (%rd131), _rt_buffer_get_64, (%rd132, %r101, %r325, %rd17, %rd18, %rd24, %rd24);
+ // inline asm
+ mov.f32 %f837, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f837;}
+
+ // inline asm
+ mov.u16 %rs45, 0;
+ st.v4.u16 [%rd131], {%rs44, %rs44, %rs44, %rs45};
+ bra.uni BB0_137;
+
+BB0_81:
+ setp.geu.f32 %p79, %f893, 0f00000000;
+ @%p79 bra BB0_84;
+
+ cvt.rzi.f32.f32 %f566, %f538;
+ setp.neu.f32 %p80, %f566, 0f3EE8BA2E;
+ selp.f32 %f896, 0f7FFFFFFF, %f896, %p80;
+
+BB0_84:
+ add.f32 %f568, %f136, 0f3EE8BA2E;
+ mov.b32 %r268, %f568;
+ setp.lt.s32 %p82, %r268, 2139095040;
+ @%p82 bra BB0_89;
+
+ setp.gtu.f32 %p83, %f136, 0f7F800000;
+ @%p83 bra BB0_88;
+ bra.uni BB0_86;
+
+BB0_88:
+ add.f32 %f896, %f893, 0f3EE8BA2E;
+ bra.uni BB0_89;
+
+BB0_86:
+ setp.neu.f32 %p84, %f136, 0f7F800000;
+ @%p84 bra BB0_89;
+
+ selp.f32 %f896, 0fFF800000, 0f7F800000, %p3;
+
+BB0_89:
+ mul.f32 %f569, %f896, 0f437F0000;
+ setp.eq.f32 %p85, %f893, 0f3F800000;
+ selp.f32 %f570, 0f437F0000, %f569, %p85;
+ cvt.rzi.u32.f32 %r269, %f570;
+ cvt.u16.u32 %rs10, %r269;
+ mov.u16 %rs11, 255;
+ st.v2.u8 [%rd70], {%rs10, %rs11};
+ ld.global.u32 %r364, [imageEnabled];
+
+BB0_90:
+ ld.global.f32 %f571, [lightColor];
+ mul.f32 %f148, %f890, %f571;
+ ld.global.f32 %f572, [lightColor+4];
+ mul.f32 %f149, %f891, %f572;
+ ld.global.f32 %f573, [lightColor+8];
+ mul.f32 %f150, %f892, %f573;
+ and.b32 %r270, %r364, 1;
+ setp.eq.b32 %p86, %r270, 1;
+ @!%p86 bra BB0_125;
+ bra.uni BB0_91;
+
+BB0_91:
+ mov.f32 %f576, 0f3E666666;
+ cvt.rzi.f32.f32 %f577, %f576;
+ fma.rn.f32 %f578, %f577, 0fC0000000, 0f3EE66666;
+ abs.f32 %f151, %f578;
+ abs.f32 %f152, %f148;
+ setp.lt.f32 %p87, %f152, 0f00800000;
+ mul.f32 %f579, %f152, 0f4B800000;
+ selp.f32 %f580, 0fC3170000, 0fC2FE0000, %p87;
+ selp.f32 %f581, %f579, %f152, %p87;
+ mov.b32 %r271, %f581;
+ and.b32 %r272, %r271, 8388607;
+ or.b32 %r273, %r272, 1065353216;
+ mov.b32 %f582, %r273;
+ shr.u32 %r274, %r271, 23;
+ cvt.rn.f32.u32 %f583, %r274;
+ add.f32 %f584, %f580, %f583;
+ setp.gt.f32 %p88, %f582, 0f3FB504F3;
+ mul.f32 %f585, %f582, 0f3F000000;
+ add.f32 %f586, %f584, 0f3F800000;
+ selp.f32 %f587, %f585, %f582, %p88;
+ selp.f32 %f588, %f586, %f584, %p88;
+ add.f32 %f589, %f587, 0fBF800000;
+ add.f32 %f575, %f587, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f574,%f575;
+ // inline asm
+ add.f32 %f590, %f589, %f589;
+ mul.f32 %f591, %f574, %f590;
+ mul.f32 %f592, %f591, %f591;
+ mov.f32 %f593, 0f3C4CAF63;
+ mov.f32 %f594, 0f3B18F0FE;
+ fma.rn.f32 %f595, %f594, %f592, %f593;
+ mov.f32 %f596, 0f3DAAAABD;
+ fma.rn.f32 %f597, %f595, %f592, %f596;
+ mul.rn.f32 %f598, %f597, %f592;
+ mul.rn.f32 %f599, %f598, %f591;
+ sub.f32 %f600, %f589, %f591;
+ neg.f32 %f601, %f591;
+ add.f32 %f602, %f600, %f600;
+ fma.rn.f32 %f603, %f601, %f589, %f602;
+ mul.rn.f32 %f604, %f574, %f603;
+ add.f32 %f605, %f599, %f591;
+ sub.f32 %f606, %f591, %f605;
+ add.f32 %f607, %f599, %f606;
+ add.f32 %f608, %f604, %f607;
+ add.f32 %f609, %f605, %f608;
+ sub.f32 %f610, %f605, %f609;
+ add.f32 %f611, %f608, %f610;
+ mov.f32 %f612, 0f3F317200;
+ mul.rn.f32 %f613, %f588, %f612;
+ mov.f32 %f614, 0f35BFBE8E;
+ mul.rn.f32 %f615, %f588, %f614;
+ add.f32 %f616, %f613, %f609;
+ sub.f32 %f617, %f613, %f616;
+ add.f32 %f618, %f609, %f617;
+ add.f32 %f619, %f611, %f618;
+ add.f32 %f620, %f615, %f619;
+ add.f32 %f621, %f616, %f620;
+ sub.f32 %f622, %f616, %f621;
+ add.f32 %f623, %f620, %f622;
+ mov.f32 %f624, 0f3EE66666;
+ mul.rn.f32 %f625, %f624, %f621;
+ neg.f32 %f626, %f625;
+ fma.rn.f32 %f627, %f624, %f621, %f626;
+ fma.rn.f32 %f628, %f624, %f623, %f627;
+ mov.f32 %f629, 0f00000000;
+ fma.rn.f32 %f630, %f629, %f621, %f628;
+ add.rn.f32 %f631, %f625, %f630;
+ neg.f32 %f632, %f631;
+ add.rn.f32 %f633, %f625, %f632;
+ add.rn.f32 %f634, %f633, %f630;
+ mov.b32 %r275, %f631;
+ setp.eq.s32 %p89, %r275, 1118925336;
+ add.s32 %r276, %r275, -1;
+ mov.b32 %f635, %r276;
+ add.f32 %f636, %f634, 0f37000000;
+ selp.f32 %f637, %f635, %f631, %p89;
+ selp.f32 %f153, %f636, %f634, %p89;
+ mul.f32 %f638, %f637, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f639, %f638;
+ mov.f32 %f640, 0fBF317200;
+ fma.rn.f32 %f641, %f639, %f640, %f637;
+ mov.f32 %f642, 0fB5BFBE8E;
+ fma.rn.f32 %f643, %f639, %f642, %f641;
+ mul.f32 %f644, %f643, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f645, %f644;
+ add.f32 %f646, %f639, 0f00000000;
+ ex2.approx.f32 %f647, %f646;
+ mul.f32 %f648, %f645, %f647;
+ setp.lt.f32 %p90, %f637, 0fC2D20000;
+ selp.f32 %f649, 0f00000000, %f648, %p90;
+ setp.gt.f32 %p91, %f637, 0f42D20000;
+ selp.f32 %f897, 0f7F800000, %f649, %p91;
+ setp.eq.f32 %p92, %f897, 0f7F800000;
+ @%p92 bra BB0_93;
+
+ fma.rn.f32 %f897, %f897, %f153, %f897;
+
+BB0_93:
+ setp.lt.f32 %p93, %f148, 0f00000000;
+ setp.eq.f32 %p94, %f151, 0f3F800000;
+ and.pred %p4, %p93, %p94;
+ mov.b32 %r277, %f897;
+ xor.b32 %r278, %r277, -2147483648;
+ mov.b32 %f650, %r278;
+ selp.f32 %f899, %f650, %f897, %p4;
+ setp.eq.f32 %p95, %f148, 0f00000000;
+ @%p95 bra BB0_96;
+ bra.uni BB0_94;
+
+BB0_96:
+ add.f32 %f653, %f148, %f148;
+ selp.f32 %f899, %f653, 0f00000000, %p94;
+ bra.uni BB0_97;
+
+BB0_94:
+ setp.geu.f32 %p96, %f148, 0f00000000;
+ @%p96 bra BB0_97;
+
+ cvt.rzi.f32.f32 %f652, %f624;
+ setp.neu.f32 %p97, %f652, 0f3EE66666;
+ selp.f32 %f899, 0f7FFFFFFF, %f899, %p97;
+
+BB0_97:
+ add.f32 %f654, %f152, 0f3EE66666;
+ mov.b32 %r279, %f654;
+ setp.lt.s32 %p99, %r279, 2139095040;
+ @%p99 bra BB0_102;
+
+ setp.gtu.f32 %p100, %f152, 0f7F800000;
+ @%p100 bra BB0_101;
+ bra.uni BB0_99;
+
+BB0_101:
+ add.f32 %f899, %f148, 0f3EE66666;
+ bra.uni BB0_102;
+
+BB0_99:
+ setp.neu.f32 %p101, %f152, 0f7F800000;
+ @%p101 bra BB0_102;
+
+ selp.f32 %f899, 0fFF800000, 0f7F800000, %p4;
+
+BB0_102:
+ setp.eq.f32 %p102, %f148, 0f3F800000;
+ selp.f32 %f164, 0f3F800000, %f899, %p102;
+ abs.f32 %f165, %f149;
+ setp.lt.f32 %p103, %f165, 0f00800000;
+ mul.f32 %f657, %f165, 0f4B800000;
+ selp.f32 %f658, 0fC3170000, 0fC2FE0000, %p103;
+ selp.f32 %f659, %f657, %f165, %p103;
+ mov.b32 %r280, %f659;
+ and.b32 %r281, %r280, 8388607;
+ or.b32 %r282, %r281, 1065353216;
+ mov.b32 %f660, %r282;
+ shr.u32 %r283, %r280, 23;
+ cvt.rn.f32.u32 %f661, %r283;
+ add.f32 %f662, %f658, %f661;
+ setp.gt.f32 %p104, %f660, 0f3FB504F3;
+ mul.f32 %f663, %f660, 0f3F000000;
+ add.f32 %f664, %f662, 0f3F800000;
+ selp.f32 %f665, %f663, %f660, %p104;
+ selp.f32 %f666, %f664, %f662, %p104;
+ add.f32 %f667, %f665, 0fBF800000;
+ add.f32 %f656, %f665, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f655,%f656;
+ // inline asm
+ add.f32 %f668, %f667, %f667;
+ mul.f32 %f669, %f655, %f668;
+ mul.f32 %f670, %f669, %f669;
+ fma.rn.f32 %f673, %f594, %f670, %f593;
+ fma.rn.f32 %f675, %f673, %f670, %f596;
+ mul.rn.f32 %f676, %f675, %f670;
+ mul.rn.f32 %f677, %f676, %f669;
+ sub.f32 %f678, %f667, %f669;
+ neg.f32 %f679, %f669;
+ add.f32 %f680, %f678, %f678;
+ fma.rn.f32 %f681, %f679, %f667, %f680;
+ mul.rn.f32 %f682, %f655, %f681;
+ add.f32 %f683, %f677, %f669;
+ sub.f32 %f684, %f669, %f683;
+ add.f32 %f685, %f677, %f684;
+ add.f32 %f686, %f682, %f685;
+ add.f32 %f687, %f683, %f686;
+ sub.f32 %f688, %f683, %f687;
+ add.f32 %f689, %f686, %f688;
+ mul.rn.f32 %f691, %f666, %f612;
+ mul.rn.f32 %f693, %f666, %f614;
+ add.f32 %f694, %f691, %f687;
+ sub.f32 %f695, %f691, %f694;
+ add.f32 %f696, %f687, %f695;
+ add.f32 %f697, %f689, %f696;
+ add.f32 %f698, %f693, %f697;
+ add.f32 %f699, %f694, %f698;
+ sub.f32 %f700, %f694, %f699;
+ add.f32 %f701, %f698, %f700;
+ mul.rn.f32 %f703, %f624, %f699;
+ neg.f32 %f704, %f703;
+ fma.rn.f32 %f705, %f624, %f699, %f704;
+ fma.rn.f32 %f706, %f624, %f701, %f705;
+ fma.rn.f32 %f708, %f629, %f699, %f706;
+ add.rn.f32 %f709, %f703, %f708;
+ neg.f32 %f710, %f709;
+ add.rn.f32 %f711, %f703, %f710;
+ add.rn.f32 %f712, %f711, %f708;
+ mov.b32 %r284, %f709;
+ setp.eq.s32 %p105, %r284, 1118925336;
+ add.s32 %r285, %r284, -1;
+ mov.b32 %f713, %r285;
+ add.f32 %f714, %f712, 0f37000000;
+ selp.f32 %f715, %f713, %f709, %p105;
+ selp.f32 %f166, %f714, %f712, %p105;
+ mul.f32 %f716, %f715, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f717, %f716;
+ fma.rn.f32 %f719, %f717, %f640, %f715;
+ fma.rn.f32 %f721, %f717, %f642, %f719;
+ mul.f32 %f722, %f721, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f723, %f722;
+ add.f32 %f724, %f717, 0f00000000;
+ ex2.approx.f32 %f725, %f724;
+ mul.f32 %f726, %f723, %f725;
+ setp.lt.f32 %p106, %f715, 0fC2D20000;
+ selp.f32 %f727, 0f00000000, %f726, %p106;
+ setp.gt.f32 %p107, %f715, 0f42D20000;
+ selp.f32 %f900, 0f7F800000, %f727, %p107;
+ setp.eq.f32 %p108, %f900, 0f7F800000;
+ @%p108 bra BB0_104;
+
+ fma.rn.f32 %f900, %f900, %f166, %f900;
+
+BB0_104:
+ setp.lt.f32 %p109, %f149, 0f00000000;
+ and.pred %p5, %p109, %p94;
+ mov.b32 %r286, %f900;
+ xor.b32 %r287, %r286, -2147483648;
+ mov.b32 %f728, %r287;
+ selp.f32 %f902, %f728, %f900, %p5;
+ setp.eq.f32 %p111, %f149, 0f00000000;
+ @%p111 bra BB0_107;
+ bra.uni BB0_105;
+
+BB0_107:
+ add.f32 %f731, %f149, %f149;
+ selp.f32 %f902, %f731, 0f00000000, %p94;
+ bra.uni BB0_108;
+
+BB0_105:
+ setp.geu.f32 %p112, %f149, 0f00000000;
+ @%p112 bra BB0_108;
+
+ cvt.rzi.f32.f32 %f730, %f624;
+ setp.neu.f32 %p113, %f730, 0f3EE66666;
+ selp.f32 %f902, 0f7FFFFFFF, %f902, %p113;
+
+BB0_108:
+ add.f32 %f732, %f165, 0f3EE66666;
+ mov.b32 %r288, %f732;
+ setp.lt.s32 %p115, %r288, 2139095040;
+ @%p115 bra BB0_113;
+
+ setp.gtu.f32 %p116, %f165, 0f7F800000;
+ @%p116 bra BB0_112;
+ bra.uni BB0_110;
+
+BB0_112:
+ add.f32 %f902, %f149, 0f3EE66666;
+ bra.uni BB0_113;
+
+BB0_110:
+ setp.neu.f32 %p117, %f165, 0f7F800000;
+ @%p117 bra BB0_113;
+
+ selp.f32 %f902, 0fFF800000, 0f7F800000, %p5;
+
+BB0_113:
+ setp.eq.f32 %p118, %f149, 0f3F800000;
+ selp.f32 %f177, 0f3F800000, %f902, %p118;
+ abs.f32 %f178, %f150;
+ setp.lt.f32 %p119, %f178, 0f00800000;
+ mul.f32 %f735, %f178, 0f4B800000;
+ selp.f32 %f736, 0fC3170000, 0fC2FE0000, %p119;
+ selp.f32 %f737, %f735, %f178, %p119;
+ mov.b32 %r289, %f737;
+ and.b32 %r290, %r289, 8388607;
+ or.b32 %r291, %r290, 1065353216;
+ mov.b32 %f738, %r291;
+ shr.u32 %r292, %r289, 23;
+ cvt.rn.f32.u32 %f739, %r292;
+ add.f32 %f740, %f736, %f739;
+ setp.gt.f32 %p120, %f738, 0f3FB504F3;
+ mul.f32 %f741, %f738, 0f3F000000;
+ add.f32 %f742, %f740, 0f3F800000;
+ selp.f32 %f743, %f741, %f738, %p120;
+ selp.f32 %f744, %f742, %f740, %p120;
+ add.f32 %f745, %f743, 0fBF800000;
+ add.f32 %f734, %f743, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f733,%f734;
+ // inline asm
+ add.f32 %f746, %f745, %f745;
+ mul.f32 %f747, %f733, %f746;
+ mul.f32 %f748, %f747, %f747;
+ fma.rn.f32 %f751, %f594, %f748, %f593;
+ fma.rn.f32 %f753, %f751, %f748, %f596;
+ mul.rn.f32 %f754, %f753, %f748;
+ mul.rn.f32 %f755, %f754, %f747;
+ sub.f32 %f756, %f745, %f747;
+ neg.f32 %f757, %f747;
+ add.f32 %f758, %f756, %f756;
+ fma.rn.f32 %f759, %f757, %f745, %f758;
+ mul.rn.f32 %f760, %f733, %f759;
+ add.f32 %f761, %f755, %f747;
+ sub.f32 %f762, %f747, %f761;
+ add.f32 %f763, %f755, %f762;
+ add.f32 %f764, %f760, %f763;
+ add.f32 %f765, %f761, %f764;
+ sub.f32 %f766, %f761, %f765;
+ add.f32 %f767, %f764, %f766;
+ mul.rn.f32 %f769, %f744, %f612;
+ mul.rn.f32 %f771, %f744, %f614;
+ add.f32 %f772, %f769, %f765;
+ sub.f32 %f773, %f769, %f772;
+ add.f32 %f774, %f765, %f773;
+ add.f32 %f775, %f767, %f774;
+ add.f32 %f776, %f771, %f775;
+ add.f32 %f777, %f772, %f776;
+ sub.f32 %f778, %f772, %f777;
+ add.f32 %f779, %f776, %f778;
+ mul.rn.f32 %f781, %f624, %f777;
+ neg.f32 %f782, %f781;
+ fma.rn.f32 %f783, %f624, %f777, %f782;
+ fma.rn.f32 %f784, %f624, %f779, %f783;
+ fma.rn.f32 %f786, %f629, %f777, %f784;
+ add.rn.f32 %f787, %f781, %f786;
+ neg.f32 %f788, %f787;
+ add.rn.f32 %f789, %f781, %f788;
+ add.rn.f32 %f790, %f789, %f786;
+ mov.b32 %r293, %f787;
+ setp.eq.s32 %p121, %r293, 1118925336;
+ add.s32 %r294, %r293, -1;
+ mov.b32 %f791, %r294;
+ add.f32 %f792, %f790, 0f37000000;
+ selp.f32 %f793, %f791, %f787, %p121;
+ selp.f32 %f179, %f792, %f790, %p121;
+ mul.f32 %f794, %f793, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f795, %f794;
+ fma.rn.f32 %f797, %f795, %f640, %f793;
+ fma.rn.f32 %f799, %f795, %f642, %f797;
+ mul.f32 %f800, %f799, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f801, %f800;
+ add.f32 %f802, %f795, 0f00000000;
+ ex2.approx.f32 %f803, %f802;
+ mul.f32 %f804, %f801, %f803;
+ setp.lt.f32 %p122, %f793, 0fC2D20000;
+ selp.f32 %f805, 0f00000000, %f804, %p122;
+ setp.gt.f32 %p123, %f793, 0f42D20000;
+ selp.f32 %f903, 0f7F800000, %f805, %p123;
+ setp.eq.f32 %p124, %f903, 0f7F800000;
+ @%p124 bra BB0_115;
+
+ fma.rn.f32 %f903, %f903, %f179, %f903;
+
+BB0_115:
+ setp.lt.f32 %p125, %f150, 0f00000000;
+ and.pred %p6, %p125, %p94;
+ mov.b32 %r295, %f903;
+ xor.b32 %r296, %r295, -2147483648;
+ mov.b32 %f806, %r296;
+ selp.f32 %f905, %f806, %f903, %p6;
+ setp.eq.f32 %p127, %f150, 0f00000000;
+ @%p127 bra BB0_118;
+ bra.uni BB0_116;
+
+BB0_118:
+ add.f32 %f809, %f150, %f150;
+ selp.f32 %f905, %f809, 0f00000000, %p94;
+ bra.uni BB0_119;
+
+BB0_116:
+ setp.geu.f32 %p128, %f150, 0f00000000;
+ @%p128 bra BB0_119;
+
+ cvt.rzi.f32.f32 %f808, %f624;
+ setp.neu.f32 %p129, %f808, 0f3EE66666;
+ selp.f32 %f905, 0f7FFFFFFF, %f905, %p129;
+
+BB0_119:
+ add.f32 %f810, %f178, 0f3EE66666;
+ mov.b32 %r297, %f810;
+ setp.lt.s32 %p131, %r297, 2139095040;
+ @%p131 bra BB0_124;
+
+ setp.gtu.f32 %p132, %f178, 0f7F800000;
+ @%p132 bra BB0_123;
+ bra.uni BB0_121;
+
+BB0_123:
+ add.f32 %f905, %f150, 0f3EE66666;
+ bra.uni BB0_124;
+
+BB0_121:
+ setp.neu.f32 %p133, %f178, 0f7F800000;
+ @%p133 bra BB0_124;
+
+ selp.f32 %f905, 0fFF800000, 0f7F800000, %p6;
+
+BB0_124:
+ mov.u32 %r329, 2;
+ setp.eq.f32 %p134, %f150, 0f3F800000;
+ selp.f32 %f811, 0f3F800000, %f905, %p134;
+ cvt.u64.u32 %rd80, %r4;
+ cvt.u64.u32 %rd79, %r3;
+ mov.u64 %rd83, image;
+ cvta.global.u64 %rd78, %rd83;
+ // inline asm
+ call (%rd77), _rt_buffer_get_64, (%rd78, %r329, %r102, %rd79, %rd80, %rd24, %rd24);
+ // inline asm
+ cvt.sat.f32.f32 %f812, %f811;
+ mul.f32 %f813, %f812, 0f437FFD71;
+ cvt.rzi.u32.f32 %r300, %f813;
+ cvt.sat.f32.f32 %f814, %f177;
+ mul.f32 %f815, %f814, 0f437FFD71;
+ cvt.rzi.u32.f32 %r301, %f815;
+ cvt.sat.f32.f32 %f816, %f164;
+ mul.f32 %f817, %f816, 0f437FFD71;
+ cvt.rzi.u32.f32 %r302, %f817;
+ cvt.u16.u32 %rs12, %r300;
+ cvt.u16.u32 %rs13, %r302;
+ cvt.u16.u32 %rs14, %r301;
+ mov.u16 %rs15, 255;
+ st.v4.u8 [%rd77], {%rs12, %rs14, %rs13, %rs15};
+ ld.global.u32 %r364, [imageEnabled];
+
+BB0_125:
+ and.b32 %r303, %r364, 4;
+ setp.eq.s32 %p135, %r303, 0;
+ @%p135 bra BB0_137;
+
+ ld.global.u32 %r304, [additive];
+ setp.eq.s32 %p136, %r304, 0;
+ cvt.u64.u32 %rd15, %r3;
+ cvt.u64.u32 %rd16, %r4;
+ // inline asm
+ { cvt.rn.f16.f32 %rs16, %f370;}
+
+ // inline asm
+ @%p136 bra BB0_128;
+
+ mov.u32 %r330, 2;
+ mov.u64 %rd96, image_HDR;
+ cvta.global.u64 %rd85, %rd96;
+ mov.u32 %r308, 8;
+ // inline asm
+ call (%rd84), _rt_buffer_get_64, (%rd85, %r330, %r308, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ ld.v4.u16 {%rs23, %rs24, %rs25, %rs26}, [%rd84];
+ // inline asm
+ { cvt.f32.f16 %f819, %rs23;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f820, %rs24;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f821, %rs25;}
+
+ // inline asm
+ // inline asm
+ call (%rd90), _rt_buffer_get_64, (%rd85, %r330, %r308, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ add.f32 %f822, %f148, %f819;
+ add.f32 %f823, %f149, %f820;
+ add.f32 %f824, %f150, %f821;
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f824;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs21, %f823;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f822;}
+
+ // inline asm
+ st.v4.u16 [%rd90], {%rs20, %rs21, %rs22, %rs16};
+ bra.uni BB0_137;
+
+BB0_128:
+ mov.u32 %r331, 2;
+ mov.u64 %rd103, image_HDR;
+ cvta.global.u64 %rd98, %rd103;
+ mov.u32 %r310, 8;
+ // inline asm
+ call (%rd97), _rt_buffer_get_64, (%rd98, %r331, %r310, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f150;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f149;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f148;}
+
+ // inline asm
+ st.v4.u16 [%rd97], {%rs27, %rs28, %rs29, %rs16};
+
+BB0_137:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLight.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLight.ptx.meta
new file mode 100644
index 00000000..503d1460
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLight.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c32087eed323e484b8dc40fd9441fd2e
+timeCreated: 1528379369
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightDir.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightDir.ptx
new file mode 100644
index 00000000..ce9e88ac
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightDir.ptx
@@ -0,0 +1,1928 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_Dir[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 lightMeshBuffer[1];
+.global .align 4 .u32 lightMeshBufferSize;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightPointSize;
+.global .align 4 .b8 lightColor[12];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo19lightMeshBufferSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightPointSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename19lightMeshBufferSizeE[13] = {117, 110, 115, 105, 103, 110, 101, 100, 32, 105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightPointSizeE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum19lightMeshBufferSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightPointSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightPointSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightPointSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[44];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<145>;
+ .reg .b16 %rs<55>;
+ .reg .f32 %f<992>;
+ .reg .b32 %r<375>;
+ .reg .b64 %rd<171>;
+
+
+ mov.u64 %rd170, __local_depot0;
+ cvta.local.u64 %SP, %rd170;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r103, %r104}, [pixelID];
+ cvt.u64.u32 %rd23, %r103;
+ cvt.u64.u32 %rd24, %r104;
+ mov.u64 %rd27, uvnormal;
+ cvta.global.u64 %rd22, %rd27;
+ mov.u32 %r101, 2;
+ mov.u32 %r102, 4;
+ mov.u64 %rd26, 0;
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd22, %r101, %r102, %rd23, %rd24, %rd26, %rd26);
+ // inline asm
+ ld.u32 %r2, [%rd21];
+ shr.u32 %r107, %r2, 16;
+ cvt.u16.u32 %rs1, %r107;
+ and.b16 %rs3, %rs1, 255;
+ cvt.u16.u32 %rs4, %r2;
+ or.b16 %rs5, %rs4, %rs3;
+ setp.eq.s16 %p7, %rs5, 0;
+ mov.f32 %f909, 0f00000000;
+ mov.f32 %f910, %f909;
+ mov.f32 %f911, %f909;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs6, [%rd21+1];
+ and.b16 %rs8, %rs4, 255;
+ cvt.rn.f32.u16 %f224, %rs8;
+ div.rn.f32 %f225, %f224, 0f437F0000;
+ fma.rn.f32 %f226, %f225, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f227, %rs6;
+ div.rn.f32 %f228, %f227, 0f437F0000;
+ fma.rn.f32 %f229, %f228, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f230, %rs3;
+ div.rn.f32 %f231, %f230, 0f437F0000;
+ fma.rn.f32 %f232, %f231, 0f40000000, 0fBF800000;
+ mul.f32 %f233, %f229, %f229;
+ fma.rn.f32 %f234, %f226, %f226, %f233;
+ fma.rn.f32 %f235, %f232, %f232, %f234;
+ sqrt.rn.f32 %f236, %f235;
+ rcp.rn.f32 %f237, %f236;
+ mul.f32 %f909, %f226, %f237;
+ mul.f32 %f910, %f229, %f237;
+ mul.f32 %f911, %f232, %f237;
+
+BB0_2:
+ ld.global.v2.u32 {%r108, %r109}, [pixelID];
+ ld.global.v2.u32 {%r111, %r112}, [tileInfo];
+ add.s32 %r3, %r108, %r111;
+ add.s32 %r4, %r109, %r112;
+ setp.eq.f32 %p8, %f910, 0f00000000;
+ setp.eq.f32 %p9, %f909, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f911, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_131;
+ bra.uni BB0_3;
+
+BB0_131:
+ ld.global.u32 %r374, [imageEnabled];
+ and.b32 %r316, %r374, 1;
+ setp.eq.b32 %p139, %r316, 1;
+ @!%p139 bra BB0_133;
+ bra.uni BB0_132;
+
+BB0_132:
+ cvt.u64.u32 %rd123, %r3;
+ cvt.u64.u32 %rd124, %r4;
+ mov.u64 %rd127, image;
+ cvta.global.u64 %rd122, %rd127;
+ mov.u64 %rd126, 0;
+ // inline asm
+ call (%rd121), _rt_buffer_get_64, (%rd122, %r101, %r102, %rd123, %rd124, %rd126, %rd126);
+ // inline asm
+ mov.u16 %rs36, 0;
+ st.v4.u8 [%rd121], {%rs36, %rs36, %rs36, %rs36};
+ ld.global.u32 %r374, [imageEnabled];
+
+BB0_133:
+ and.b32 %r319, %r374, 8;
+ setp.eq.s32 %p140, %r319, 0;
+ @%p140 bra BB0_135;
+
+ cvt.u64.u32 %rd130, %r3;
+ cvt.u64.u32 %rd131, %r4;
+ mov.u64 %rd134, image_Mask;
+ cvta.global.u64 %rd129, %rd134;
+ mov.u64 %rd133, 0;
+ // inline asm
+ call (%rd128), _rt_buffer_get_64, (%rd129, %r101, %r101, %rd130, %rd131, %rd133, %rd133);
+ // inline asm
+ mov.f32 %f892, 0f00000000;
+ cvt.rzi.u32.f32 %r322, %f892;
+ cvt.u16.u32 %rs37, %r322;
+ mov.u16 %rs38, 0;
+ st.v2.u8 [%rd128], {%rs37, %rs38};
+ ld.global.u32 %r374, [imageEnabled];
+
+BB0_135:
+ and.b32 %r323, %r374, 4;
+ setp.eq.s32 %p141, %r323, 0;
+ @%p141 bra BB0_139;
+
+ ld.global.u32 %r324, [additive];
+ setp.eq.s32 %p142, %r324, 0;
+ cvt.u64.u32 %rd19, %r3;
+ cvt.u64.u32 %rd20, %r4;
+ @%p142 bra BB0_138;
+
+ mov.u64 %rd147, image_HDR;
+ cvta.global.u64 %rd136, %rd147;
+ mov.u32 %r328, 8;
+ mov.u64 %rd146, 0;
+ // inline asm
+ call (%rd135), _rt_buffer_get_64, (%rd136, %r101, %r328, %rd19, %rd20, %rd146, %rd146);
+ // inline asm
+ ld.v4.u16 {%rs45, %rs46, %rs47, %rs48}, [%rd135];
+ // inline asm
+ { cvt.f32.f16 %f893, %rs45;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f894, %rs46;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f895, %rs47;}
+
+ // inline asm
+ // inline asm
+ call (%rd141), _rt_buffer_get_64, (%rd136, %r101, %r328, %rd19, %rd20, %rd146, %rd146);
+ // inline asm
+ add.f32 %f896, %f893, 0f00000000;
+ add.f32 %f897, %f894, 0f00000000;
+ add.f32 %f898, %f895, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f898;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f897;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs42, %f896;}
+
+ // inline asm
+ mov.u16 %rs49, 0;
+ st.v4.u16 [%rd141], {%rs42, %rs43, %rs44, %rs49};
+ bra.uni BB0_139;
+
+BB0_3:
+ ld.global.v2.u32 {%r121, %r122}, [pixelID];
+ cvt.u64.u32 %rd30, %r121;
+ cvt.u64.u32 %rd31, %r122;
+ mov.u64 %rd40, uvpos;
+ cvta.global.u64 %rd29, %rd40;
+ mov.u32 %r117, 12;
+ // inline asm
+ call (%rd28), _rt_buffer_get_64, (%rd29, %r101, %r117, %rd30, %rd31, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f9, [%rd28+8];
+ ld.f32 %f8, [%rd28+4];
+ ld.f32 %f7, [%rd28];
+ mul.f32 %f245, %f7, 0f3456BF95;
+ mul.f32 %f246, %f8, 0f3456BF95;
+ mul.f32 %f247, %f9, 0f3456BF95;
+ abs.f32 %f10, %f909;
+ div.rn.f32 %f248, %f245, %f10;
+ abs.f32 %f249, %f910;
+ div.rn.f32 %f250, %f246, %f249;
+ abs.f32 %f11, %f911;
+ div.rn.f32 %f251, %f247, %f11;
+ abs.f32 %f252, %f248;
+ abs.f32 %f253, %f250;
+ abs.f32 %f254, %f251;
+ mov.f32 %f255, 0f38D1B717;
+ max.f32 %f256, %f252, %f255;
+ max.f32 %f257, %f253, %f255;
+ max.f32 %f258, %f254, %f255;
+ fma.rn.f32 %f12, %f909, %f256, %f7;
+ fma.rn.f32 %f13, %f910, %f257, %f8;
+ fma.rn.f32 %f14, %f911, %f258, %f9;
+ ld.global.v2.u32 {%r125, %r126}, [pixelID];
+ cvt.u64.u32 %rd36, %r125;
+ cvt.u64.u32 %rd37, %r126;
+ mov.u64 %rd41, rnd_seeds;
+ cvta.global.u64 %rd35, %rd41;
+ // inline asm
+ call (%rd34), _rt_buffer_get_64, (%rd35, %r101, %r102, %rd36, %rd37, %rd26, %rd26);
+ // inline asm
+ ld.u32 %r129, [%rd34];
+ mad.lo.s32 %r5, %r129, 1664525, 1013904223;
+ ld.global.u32 %r130, [lightMeshBufferSize];
+ setp.eq.s32 %p14, %r130, 0;
+ mov.pred %p13, 0;
+ mov.f32 %f20, 0f00000000;
+ mov.u32 %r7, 0;
+ @%p14 bra BB0_4;
+
+ ld.global.f32 %f15, [lightPointSize];
+ mul.f32 %f16, %f12, 0f3456BF95;
+ mul.f32 %f17, %f13, 0f3456BF95;
+ mul.f32 %f18, %f14, 0f3456BF95;
+ and.b32 %r133, %r5, 16777215;
+ cvt.rn.f32.u32 %f266, %r133;
+ mul.f32 %f267, %f266, 0fB3800000;
+ fma.rn.f32 %f19, %f267, 0f3F333333, 0f3F800000;
+ mov.f32 %f20, 0f00000000;
+ mov.u32 %r343, 0;
+ abs.f32 %f390, %f17;
+ abs.f32 %f391, %f16;
+ max.f32 %f392, %f391, %f390;
+ abs.f32 %f393, %f18;
+ max.f32 %f394, %f392, %f393;
+ mov.u32 %r7, %r343;
+ mov.f32 %f21, %f20;
+ mov.f32 %f22, %f20;
+ mov.f32 %f23, %f20;
+ mov.f32 %f940, %f20;
+ mov.f32 %f941, %f20;
+ mov.f32 %f942, %f20;
+
+BB0_6:
+ mul.lo.s32 %r8, %r343, 3;
+ cvt.s64.s32 %rd44, %r8;
+ mov.u64 %rd48, lightMeshBuffer;
+ cvta.global.u64 %rd43, %rd48;
+ mov.u32 %r134, 1;
+ // inline asm
+ call (%rd42), _rt_buffer_get_64, (%rd43, %r134, %r117, %rd44, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f268, [%rd42];
+ sub.f32 %f269, %f268, %f7;
+ ld.f32 %f270, [%rd42+4];
+ sub.f32 %f271, %f270, %f8;
+ ld.f32 %f272, [%rd42+8];
+ sub.f32 %f273, %f272, %f9;
+ mul.f32 %f274, %f271, %f271;
+ fma.rn.f32 %f275, %f269, %f269, %f274;
+ fma.rn.f32 %f276, %f273, %f273, %f275;
+ sqrt.rn.f32 %f27, %f276;
+ rcp.rn.f32 %f277, %f27;
+ mul.f32 %f28, %f269, %f277;
+ mul.f32 %f29, %f271, %f277;
+ mul.f32 %f30, %f273, %f277;
+ mul.f32 %f278, %f910, %f29;
+ fma.rn.f32 %f279, %f909, %f28, %f278;
+ fma.rn.f32 %f31, %f911, %f30, %f279;
+ setp.leu.f32 %p15, %f31, 0f00000000;
+ @%p15 bra BB0_22;
+
+ setp.ne.s32 %p17, %r1, 0;
+ mul.f32 %f280, %f27, %f27;
+ mul.f32 %f281, %f280, 0f40C90FDB;
+ div.rn.f32 %f282, %f15, %f281;
+ add.f32 %f32, %f282, %f282;
+ setp.gt.f32 %p18, %f32, %f19;
+ and.pred %p19, %p17, %p18;
+ mov.pred %p144, -1;
+ @%p19 bra BB0_24;
+
+ ld.global.f32 %f285, [lightInvCutoff];
+ mul.f32 %f33, %f27, %f285;
+ mov.f32 %f289, 0f40800000;
+ abs.f32 %f35, %f33;
+ setp.lt.f32 %p20, %f35, 0f00800000;
+ mul.f32 %f291, %f35, 0f4B800000;
+ selp.f32 %f292, 0fC3170000, 0fC2FE0000, %p20;
+ selp.f32 %f293, %f291, %f35, %p20;
+ mov.b32 %r136, %f293;
+ and.b32 %r137, %r136, 8388607;
+ or.b32 %r138, %r137, 1065353216;
+ mov.b32 %f294, %r138;
+ shr.u32 %r139, %r136, 23;
+ cvt.rn.f32.u32 %f295, %r139;
+ add.f32 %f296, %f292, %f295;
+ setp.gt.f32 %p21, %f294, 0f3FB504F3;
+ mul.f32 %f297, %f294, 0f3F000000;
+ add.f32 %f298, %f296, 0f3F800000;
+ selp.f32 %f299, %f297, %f294, %p21;
+ selp.f32 %f300, %f298, %f296, %p21;
+ add.f32 %f301, %f299, 0fBF800000;
+ add.f32 %f284, %f299, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f283,%f284;
+ // inline asm
+ add.f32 %f302, %f301, %f301;
+ mul.f32 %f303, %f283, %f302;
+ mul.f32 %f304, %f303, %f303;
+ mov.f32 %f305, 0f3C4CAF63;
+ mov.f32 %f306, 0f3B18F0FE;
+ fma.rn.f32 %f307, %f306, %f304, %f305;
+ mov.f32 %f308, 0f3DAAAABD;
+ fma.rn.f32 %f309, %f307, %f304, %f308;
+ mul.rn.f32 %f310, %f309, %f304;
+ mul.rn.f32 %f311, %f310, %f303;
+ sub.f32 %f312, %f301, %f303;
+ neg.f32 %f313, %f303;
+ add.f32 %f314, %f312, %f312;
+ fma.rn.f32 %f315, %f313, %f301, %f314;
+ mul.rn.f32 %f316, %f283, %f315;
+ add.f32 %f317, %f311, %f303;
+ sub.f32 %f318, %f303, %f317;
+ add.f32 %f319, %f311, %f318;
+ add.f32 %f320, %f316, %f319;
+ add.f32 %f321, %f317, %f320;
+ sub.f32 %f322, %f317, %f321;
+ add.f32 %f323, %f320, %f322;
+ mov.f32 %f324, 0f3F317200;
+ mul.rn.f32 %f325, %f300, %f324;
+ mov.f32 %f326, 0f35BFBE8E;
+ mul.rn.f32 %f327, %f300, %f326;
+ add.f32 %f328, %f325, %f321;
+ sub.f32 %f329, %f325, %f328;
+ add.f32 %f330, %f321, %f329;
+ add.f32 %f331, %f323, %f330;
+ add.f32 %f332, %f327, %f331;
+ add.f32 %f333, %f328, %f332;
+ sub.f32 %f334, %f328, %f333;
+ add.f32 %f335, %f332, %f334;
+ mul.rn.f32 %f336, %f289, %f333;
+ neg.f32 %f337, %f336;
+ fma.rn.f32 %f338, %f289, %f333, %f337;
+ fma.rn.f32 %f339, %f289, %f335, %f338;
+ mov.f32 %f340, 0f00000000;
+ fma.rn.f32 %f341, %f340, %f333, %f339;
+ add.rn.f32 %f342, %f336, %f341;
+ neg.f32 %f343, %f342;
+ add.rn.f32 %f344, %f336, %f343;
+ add.rn.f32 %f345, %f344, %f341;
+ mov.b32 %r140, %f342;
+ setp.eq.s32 %p22, %r140, 1118925336;
+ add.s32 %r141, %r140, -1;
+ mov.b32 %f346, %r141;
+ add.f32 %f347, %f345, 0f37000000;
+ selp.f32 %f348, %f346, %f342, %p22;
+ selp.f32 %f36, %f347, %f345, %p22;
+ mul.f32 %f349, %f348, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f350, %f349;
+ mov.f32 %f351, 0fBF317200;
+ fma.rn.f32 %f352, %f350, %f351, %f348;
+ mov.f32 %f353, 0fB5BFBE8E;
+ fma.rn.f32 %f354, %f350, %f353, %f352;
+ mul.f32 %f355, %f354, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f356, %f355;
+ add.f32 %f357, %f350, 0f00000000;
+ ex2.approx.f32 %f358, %f357;
+ mul.f32 %f359, %f356, %f358;
+ setp.lt.f32 %p23, %f348, 0fC2D20000;
+ selp.f32 %f360, 0f00000000, %f359, %p23;
+ setp.gt.f32 %p24, %f348, 0f42D20000;
+ selp.f32 %f919, 0f7F800000, %f360, %p24;
+ setp.eq.f32 %p25, %f919, 0f7F800000;
+ @%p25 bra BB0_10;
+
+ fma.rn.f32 %f919, %f919, %f36, %f919;
+
+BB0_10:
+ mov.f32 %f905, 0f40000000;
+ cvt.rzi.f32.f32 %f904, %f905;
+ add.f32 %f903, %f904, %f904;
+ mov.f32 %f902, 0f40800000;
+ sub.f32 %f901, %f902, %f903;
+ abs.f32 %f900, %f901;
+ setp.lt.f32 %p26, %f33, 0f00000000;
+ setp.eq.f32 %p27, %f900, 0f3F800000;
+ and.pred %p1, %p26, %p27;
+ mov.b32 %r142, %f919;
+ xor.b32 %r143, %r142, -2147483648;
+ mov.b32 %f361, %r143;
+ selp.f32 %f921, %f361, %f919, %p1;
+ setp.eq.f32 %p28, %f33, 0f00000000;
+ @%p28 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f364, %f33, %f33;
+ selp.f32 %f921, %f364, 0f00000000, %p27;
+ bra.uni BB0_14;
+
+BB0_11:
+ setp.geu.f32 %p29, %f33, 0f00000000;
+ @%p29 bra BB0_14;
+
+ mov.f32 %f908, 0f40800000;
+ cvt.rzi.f32.f32 %f363, %f908;
+ setp.neu.f32 %p30, %f363, 0f40800000;
+ selp.f32 %f921, 0f7FFFFFFF, %f921, %p30;
+
+BB0_14:
+ add.f32 %f365, %f35, 0f40800000;
+ mov.b32 %r144, %f365;
+ setp.lt.s32 %p32, %r144, 2139095040;
+ @%p32 bra BB0_19;
+
+ setp.gtu.f32 %p33, %f35, 0f7F800000;
+ @%p33 bra BB0_18;
+ bra.uni BB0_16;
+
+BB0_18:
+ add.f32 %f921, %f33, 0f40800000;
+ bra.uni BB0_19;
+
+BB0_16:
+ setp.neu.f32 %p34, %f35, 0f7F800000;
+ @%p34 bra BB0_19;
+
+ selp.f32 %f921, 0fFF800000, 0f7F800000, %p1;
+
+BB0_19:
+ mov.u32 %r334, 1;
+ mov.u64 %rd163, lightMeshBuffer;
+ cvta.global.u64 %rd162, %rd163;
+ mul.lo.s32 %r333, %r343, 3;
+ mov.f32 %f366, 0f3F800000;
+ sub.f32 %f367, %f366, %f921;
+ setp.eq.f32 %p35, %f33, 0f3F800000;
+ selp.f32 %f368, 0f00000000, %f367, %p35;
+ cvt.sat.f32.f32 %f369, %f368;
+ mul.f32 %f370, %f32, %f369;
+ add.s32 %r147, %r333, 1;
+ cvt.s64.s32 %rd51, %r147;
+ // inline asm
+ call (%rd49), _rt_buffer_get_64, (%rd162, %r334, %r117, %rd51, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f371, [%rd49];
+ mul.f32 %f372, %f28, %f371;
+ ld.f32 %f373, [%rd49+4];
+ mul.f32 %f374, %f29, %f373;
+ neg.f32 %f375, %f374;
+ sub.f32 %f376, %f375, %f372;
+ ld.f32 %f377, [%rd49+8];
+ mul.f32 %f378, %f30, %f377;
+ sub.f32 %f379, %f376, %f378;
+ cvt.sat.f32.f32 %f380, %f379;
+ mul.f32 %f47, %f370, %f380;
+ cvt.sat.f32.f32 %f48, %f31;
+ mul.f32 %f381, %f47, %f48;
+ setp.leu.f32 %p36, %f381, 0f3727C5AC;
+ @%p36 bra BB0_21;
+
+ mov.u32 %r342, 1;
+ mov.u64 %rd165, lightMeshBuffer;
+ cvta.global.u64 %rd164, %rd165;
+ mul.lo.s32 %r341, %r343, 3;
+ add.u64 %rd56, %SP, 28;
+ cvta.to.local.u64 %rd63, %rd56;
+ max.f32 %f388, %f394, %f255;
+ sub.f32 %f389, %f27, %f388;
+ mov.u32 %r153, 1065353216;
+ st.local.u32 [%rd63], %r153;
+ ld.global.u32 %r148, [root];
+ // inline asm
+ call _rt_trace_64, (%r148, %f12, %f13, %f14, %f28, %f29, %f30, %r342, %f388, %f389, %rd56, %r102);
+ // inline asm
+ add.s32 %r154, %r341, 2;
+ cvt.s64.s32 %rd59, %r154;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd164, %r342, %r117, %rd59, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f396, [%rd57];
+ ld.local.f32 %f397, [%rd63];
+ mul.f32 %f398, %f397, %f396;
+ ld.f32 %f399, [%rd57+4];
+ mul.f32 %f400, %f397, %f399;
+ ld.f32 %f401, [%rd57+8];
+ mul.f32 %f402, %f397, %f401;
+ mul.f32 %f403, %f47, %f398;
+ mul.f32 %f404, %f47, %f400;
+ mul.f32 %f405, %f47, %f402;
+ fma.rn.f32 %f23, %f48, %f403, %f23;
+ fma.rn.f32 %f22, %f48, %f404, %f22;
+ fma.rn.f32 %f21, %f48, %f405, %f21;
+ add.f32 %f20, %f20, %f397;
+ fma.rn.f32 %f942, %f28, %f397, %f942;
+ fma.rn.f32 %f941, %f29, %f397, %f941;
+ fma.rn.f32 %f940, %f30, %f397, %f940;
+
+BB0_21:
+ add.s32 %r7, %r7, 1;
+
+BB0_22:
+ ld.global.u32 %r155, [lightMeshBufferSize];
+ add.s32 %r343, %r343, 1;
+ setp.lt.u32 %p38, %r343, %r155;
+ @%p38 bra BB0_6;
+ bra.uni BB0_23;
+
+BB0_4:
+ mov.f32 %f21, %f20;
+ mov.f32 %f22, %f20;
+ mov.f32 %f23, %f20;
+ mov.f32 %f940, %f20;
+ mov.f32 %f941, %f20;
+ mov.f32 %f942, %f20;
+
+BB0_23:
+ mov.pred %p144, %p13;
+
+BB0_24:
+ cvt.rn.f32.s32 %f406, %r7;
+ mov.f32 %f407, 0f3F800000;
+ max.f32 %f408, %f406, %f407;
+ rcp.rn.f32 %f409, %f408;
+ mul.f32 %f976, %f23, %f409;
+ mul.f32 %f977, %f22, %f409;
+ mul.f32 %f978, %f21, %f409;
+ div.rn.f32 %f979, %f20, %f408;
+ @!%p144 bra BB0_77;
+ bra.uni BB0_25;
+
+BB0_25:
+ abs.f32 %f907, %f911;
+ abs.f32 %f906, %f909;
+ setp.gt.f32 %p39, %f906, %f907;
+ neg.f32 %f416, %f910;
+ selp.f32 %f417, %f416, 0f00000000, %p39;
+ neg.f32 %f418, %f911;
+ selp.f32 %f419, %f909, %f418, %p39;
+ selp.f32 %f420, 0f00000000, %f910, %p39;
+ mul.f32 %f421, %f419, %f419;
+ fma.rn.f32 %f422, %f417, %f417, %f421;
+ fma.rn.f32 %f423, %f420, %f420, %f422;
+ sqrt.rn.f32 %f424, %f423;
+ rcp.rn.f32 %f425, %f424;
+ mul.f32 %f81, %f417, %f425;
+ mul.f32 %f82, %f419, %f425;
+ mul.f32 %f83, %f420, %f425;
+ mov.f32 %f415, 0f00000000;
+ setp.lt.s32 %p40, %r1, 1;
+ mov.f32 %f949, %f415;
+ mov.f32 %f950, %f415;
+ mov.f32 %f951, %f415;
+ mov.f32 %f940, %f415;
+ mov.f32 %f941, %f415;
+ mov.f32 %f942, %f415;
+ @%p40 bra BB0_76;
+
+ mad.lo.s32 %r350, %r129, 1664525, 1013904223;
+ cvt.rn.f32.s32 %f432, %r1;
+ rcp.rn.f32 %f84, %f432;
+ add.u64 %rd65, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd65;
+ mul.f32 %f85, %f12, 0f3456BF95;
+ mul.f32 %f86, %f13, 0f3456BF95;
+ mul.f32 %f87, %f14, 0f3456BF95;
+ add.u64 %rd66, %SP, 32;
+ cvta.to.local.u64 %rd3, %rd66;
+ mul.f32 %f433, %f909, %f82;
+ mul.f32 %f434, %f910, %f81;
+ sub.f32 %f88, %f434, %f433;
+ mul.f32 %f435, %f911, %f81;
+ mul.f32 %f436, %f909, %f83;
+ sub.f32 %f89, %f436, %f435;
+ mul.f32 %f437, %f910, %f83;
+ mul.f32 %f438, %f911, %f82;
+ sub.f32 %f90, %f438, %f437;
+ mov.f32 %f949, 0f00000000;
+ mov.u32 %r156, 0;
+ abs.f32 %f439, %f86;
+ abs.f32 %f440, %f85;
+ max.f32 %f441, %f440, %f439;
+ abs.f32 %f442, %f87;
+ max.f32 %f443, %f441, %f442;
+ mov.u32 %r347, %r156;
+ mov.f32 %f950, %f949;
+ mov.f32 %f951, %f949;
+ mov.f32 %f940, %f949;
+ mov.f32 %f941, %f949;
+ mov.f32 %f942, %f949;
+
+BB0_27:
+ cvt.rn.f32.s32 %f97, %r347;
+ max.f32 %f98, %f443, %f255;
+ mov.u32 %r349, %r156;
+
+BB0_28:
+ mad.lo.s32 %r158, %r350, 1664525, 1013904223;
+ and.b32 %r159, %r158, 16777215;
+ cvt.rn.f32.u32 %f445, %r159;
+ fma.rn.f32 %f446, %f445, 0f33800000, %f97;
+ mul.f32 %f105, %f84, %f446;
+ mad.lo.s32 %r350, %r158, 1664525, 1013904223;
+ and.b32 %r160, %r350, 16777215;
+ cvt.rn.f32.u32 %f447, %r160;
+ cvt.rn.f32.s32 %f448, %r349;
+ fma.rn.f32 %f449, %f447, 0f33800000, %f448;
+ mul.f32 %f450, %f84, %f449;
+ mul.f32 %f451, %f105, %f105;
+ sub.f32 %f453, %f407, %f451;
+ mov.f32 %f454, 0f00000000;
+ max.f32 %f455, %f454, %f453;
+ sqrt.rn.f32 %f106, %f455;
+ mul.f32 %f961, %f450, 0f40C90FDB;
+ abs.f32 %f108, %f961;
+ setp.neu.f32 %p41, %f108, 0f7F800000;
+ mov.f32 %f955, %f961;
+ @%p41 bra BB0_30;
+
+ mul.rn.f32 %f955, %f961, %f454;
+
+BB0_30:
+ mul.f32 %f457, %f955, 0f3F22F983;
+ cvt.rni.s32.f32 %r360, %f457;
+ cvt.rn.f32.s32 %f458, %r360;
+ neg.f32 %f459, %f458;
+ mov.f32 %f460, 0f3FC90FDA;
+ fma.rn.f32 %f461, %f459, %f460, %f955;
+ mov.f32 %f462, 0f33A22168;
+ fma.rn.f32 %f463, %f459, %f462, %f461;
+ mov.f32 %f464, 0f27C234C5;
+ fma.rn.f32 %f956, %f459, %f464, %f463;
+ abs.f32 %f465, %f955;
+ setp.leu.f32 %p42, %f465, 0f47CE4780;
+ @%p42 bra BB0_41;
+
+ mov.b32 %r19, %f955;
+ shr.u32 %r20, %r19, 23;
+ shl.b32 %r163, %r19, 8;
+ or.b32 %r21, %r163, -2147483648;
+ mov.u32 %r351, 0;
+ mov.u64 %rd167, 0;
+ mov.u64 %rd166, %rd2;
+ mov.u32 %r352, %r351;
+
+BB0_32:
+ .pragma "nounroll";
+ shl.b64 %rd68, %rd167, 2;
+ mov.u64 %rd69, __cudart_i2opi_f;
+ add.s64 %rd70, %rd69, %rd68;
+ ld.const.u32 %r166, [%rd70];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r164, %r166, %r21, %r352;
+ madc.hi.u32 %r352, %r166, %r21, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd166], %r164;
+ add.s32 %r351, %r351, 1;
+ cvt.s64.s32 %rd167, %r351;
+ mul.wide.s32 %rd71, %r351, 4;
+ add.s64 %rd166, %rd2, %rd71;
+ setp.ne.s32 %p43, %r351, 6;
+ @%p43 bra BB0_32;
+
+ and.b32 %r169, %r20, 255;
+ add.s32 %r170, %r169, -128;
+ shr.u32 %r171, %r170, 5;
+ and.b32 %r26, %r19, -2147483648;
+ st.local.u32 [%rd2+24], %r352;
+ mov.u32 %r172, 6;
+ sub.s32 %r173, %r172, %r171;
+ mul.wide.s32 %rd72, %r173, 4;
+ add.s64 %rd9, %rd2, %rd72;
+ ld.local.u32 %r353, [%rd9];
+ ld.local.u32 %r354, [%rd9+-4];
+ and.b32 %r29, %r20, 31;
+ setp.eq.s32 %p44, %r29, 0;
+ @%p44 bra BB0_35;
+
+ mov.u32 %r174, 32;
+ sub.s32 %r175, %r174, %r29;
+ shr.u32 %r176, %r354, %r175;
+ shl.b32 %r177, %r353, %r29;
+ add.s32 %r353, %r176, %r177;
+ ld.local.u32 %r178, [%rd9+-8];
+ shr.u32 %r179, %r178, %r175;
+ shl.b32 %r180, %r354, %r29;
+ add.s32 %r354, %r179, %r180;
+
+BB0_35:
+ shr.u32 %r181, %r354, 30;
+ shl.b32 %r182, %r353, 2;
+ add.s32 %r355, %r181, %r182;
+ shl.b32 %r35, %r354, 2;
+ shr.u32 %r183, %r355, 31;
+ shr.u32 %r184, %r353, 30;
+ add.s32 %r36, %r183, %r184;
+ setp.eq.s32 %p45, %r183, 0;
+ @%p45 bra BB0_36;
+ bra.uni BB0_37;
+
+BB0_36:
+ mov.u32 %r356, %r26;
+ mov.u32 %r357, %r35;
+ bra.uni BB0_38;
+
+BB0_37:
+ not.b32 %r185, %r355;
+ neg.s32 %r357, %r35;
+ setp.eq.s32 %p46, %r35, 0;
+ selp.u32 %r186, 1, 0, %p46;
+ add.s32 %r355, %r186, %r185;
+ xor.b32 %r356, %r26, -2147483648;
+
+BB0_38:
+ clz.b32 %r359, %r355;
+ setp.eq.s32 %p47, %r359, 0;
+ shl.b32 %r187, %r355, %r359;
+ mov.u32 %r188, 32;
+ sub.s32 %r189, %r188, %r359;
+ shr.u32 %r190, %r357, %r189;
+ add.s32 %r191, %r190, %r187;
+ selp.b32 %r44, %r355, %r191, %p47;
+ mov.u32 %r192, -921707870;
+ mul.hi.u32 %r358, %r44, %r192;
+ setp.eq.s32 %p48, %r26, 0;
+ neg.s32 %r193, %r36;
+ selp.b32 %r360, %r36, %r193, %p48;
+ setp.lt.s32 %p49, %r358, 1;
+ @%p49 bra BB0_40;
+
+ mul.lo.s32 %r194, %r44, -921707870;
+ shr.u32 %r195, %r194, 31;
+ shl.b32 %r196, %r358, 1;
+ add.s32 %r358, %r195, %r196;
+ add.s32 %r359, %r359, 1;
+
+BB0_40:
+ mov.u32 %r197, 126;
+ sub.s32 %r198, %r197, %r359;
+ shl.b32 %r199, %r198, 23;
+ add.s32 %r200, %r358, 1;
+ shr.u32 %r201, %r200, 7;
+ add.s32 %r202, %r201, 1;
+ shr.u32 %r203, %r202, 1;
+ add.s32 %r204, %r203, %r199;
+ or.b32 %r205, %r204, %r356;
+ mov.b32 %f956, %r205;
+
+BB0_41:
+ mul.rn.f32 %f114, %f956, %f956;
+ add.s32 %r52, %r360, 1;
+ and.b32 %r53, %r52, 1;
+ setp.eq.s32 %p50, %r53, 0;
+ @%p50 bra BB0_43;
+ bra.uni BB0_42;
+
+BB0_43:
+ mov.f32 %f468, 0f3C08839E;
+ mov.f32 %f469, 0fB94CA1F9;
+ fma.rn.f32 %f957, %f469, %f114, %f468;
+ bra.uni BB0_44;
+
+BB0_42:
+ mov.f32 %f466, 0fBAB6061A;
+ mov.f32 %f467, 0f37CCF5CE;
+ fma.rn.f32 %f957, %f467, %f114, %f466;
+
+BB0_44:
+ @%p50 bra BB0_46;
+ bra.uni BB0_45;
+
+BB0_46:
+ mov.f32 %f473, 0fBE2AAAA3;
+ fma.rn.f32 %f474, %f957, %f114, %f473;
+ fma.rn.f32 %f958, %f474, %f114, %f454;
+ bra.uni BB0_47;
+
+BB0_45:
+ mov.f32 %f470, 0f3D2AAAA5;
+ fma.rn.f32 %f471, %f957, %f114, %f470;
+ mov.f32 %f472, 0fBF000000;
+ fma.rn.f32 %f958, %f471, %f114, %f472;
+
+BB0_47:
+ fma.rn.f32 %f959, %f958, %f956, %f956;
+ @%p50 bra BB0_49;
+
+ fma.rn.f32 %f959, %f958, %f114, %f407;
+
+BB0_49:
+ and.b32 %r206, %r52, 2;
+ setp.eq.s32 %p53, %r206, 0;
+ @%p53 bra BB0_51;
+
+ mov.f32 %f478, 0fBF800000;
+ fma.rn.f32 %f959, %f959, %f478, %f454;
+
+BB0_51:
+ @%p41 bra BB0_53;
+
+ mul.rn.f32 %f961, %f961, %f454;
+
+BB0_53:
+ mul.f32 %f480, %f961, 0f3F22F983;
+ cvt.rni.s32.f32 %r370, %f480;
+ cvt.rn.f32.s32 %f481, %r370;
+ neg.f32 %f482, %f481;
+ fma.rn.f32 %f484, %f482, %f460, %f961;
+ fma.rn.f32 %f486, %f482, %f462, %f484;
+ fma.rn.f32 %f962, %f482, %f464, %f486;
+ abs.f32 %f488, %f961;
+ setp.leu.f32 %p55, %f488, 0f47CE4780;
+ @%p55 bra BB0_64;
+
+ mov.b32 %r55, %f961;
+ shr.u32 %r56, %r55, 23;
+ shl.b32 %r209, %r55, 8;
+ or.b32 %r57, %r209, -2147483648;
+ mov.u32 %r361, 0;
+ mov.u64 %rd168, %rd2;
+ mov.u64 %rd169, %rd26;
+ mov.u32 %r362, %r361;
+
+BB0_55:
+ .pragma "nounroll";
+ shl.b64 %rd74, %rd169, 2;
+ mov.u64 %rd75, __cudart_i2opi_f;
+ add.s64 %rd76, %rd75, %rd74;
+ ld.const.u32 %r212, [%rd76];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r210, %r212, %r57, %r362;
+ madc.hi.u32 %r362, %r212, %r57, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd168], %r210;
+ add.s32 %r361, %r361, 1;
+ cvt.s64.s32 %rd169, %r361;
+ mul.wide.s32 %rd77, %r361, 4;
+ add.s64 %rd168, %rd2, %rd77;
+ setp.ne.s32 %p56, %r361, 6;
+ @%p56 bra BB0_55;
+
+ and.b32 %r215, %r56, 255;
+ add.s32 %r216, %r215, -128;
+ shr.u32 %r217, %r216, 5;
+ and.b32 %r62, %r55, -2147483648;
+ st.local.u32 [%rd2+24], %r362;
+ mov.u32 %r218, 6;
+ sub.s32 %r219, %r218, %r217;
+ mul.wide.s32 %rd78, %r219, 4;
+ add.s64 %rd15, %rd2, %rd78;
+ ld.local.u32 %r363, [%rd15];
+ ld.local.u32 %r364, [%rd15+-4];
+ and.b32 %r65, %r56, 31;
+ setp.eq.s32 %p57, %r65, 0;
+ @%p57 bra BB0_58;
+
+ mov.u32 %r220, 32;
+ sub.s32 %r221, %r220, %r65;
+ shr.u32 %r222, %r364, %r221;
+ shl.b32 %r223, %r363, %r65;
+ add.s32 %r363, %r222, %r223;
+ ld.local.u32 %r224, [%rd15+-8];
+ shr.u32 %r225, %r224, %r221;
+ shl.b32 %r226, %r364, %r65;
+ add.s32 %r364, %r225, %r226;
+
+BB0_58:
+ shr.u32 %r227, %r364, 30;
+ shl.b32 %r228, %r363, 2;
+ add.s32 %r365, %r227, %r228;
+ shl.b32 %r71, %r364, 2;
+ shr.u32 %r229, %r365, 31;
+ shr.u32 %r230, %r363, 30;
+ add.s32 %r72, %r229, %r230;
+ setp.eq.s32 %p58, %r229, 0;
+ @%p58 bra BB0_59;
+ bra.uni BB0_60;
+
+BB0_59:
+ mov.u32 %r366, %r62;
+ mov.u32 %r367, %r71;
+ bra.uni BB0_61;
+
+BB0_60:
+ not.b32 %r231, %r365;
+ neg.s32 %r367, %r71;
+ setp.eq.s32 %p59, %r71, 0;
+ selp.u32 %r232, 1, 0, %p59;
+ add.s32 %r365, %r232, %r231;
+ xor.b32 %r366, %r62, -2147483648;
+
+BB0_61:
+ clz.b32 %r369, %r365;
+ setp.eq.s32 %p60, %r369, 0;
+ shl.b32 %r233, %r365, %r369;
+ mov.u32 %r234, 32;
+ sub.s32 %r235, %r234, %r369;
+ shr.u32 %r236, %r367, %r235;
+ add.s32 %r237, %r236, %r233;
+ selp.b32 %r80, %r365, %r237, %p60;
+ mov.u32 %r238, -921707870;
+ mul.hi.u32 %r368, %r80, %r238;
+ setp.eq.s32 %p61, %r62, 0;
+ neg.s32 %r239, %r72;
+ selp.b32 %r370, %r72, %r239, %p61;
+ setp.lt.s32 %p62, %r368, 1;
+ @%p62 bra BB0_63;
+
+ mul.lo.s32 %r240, %r80, -921707870;
+ shr.u32 %r241, %r240, 31;
+ shl.b32 %r242, %r368, 1;
+ add.s32 %r368, %r241, %r242;
+ add.s32 %r369, %r369, 1;
+
+BB0_63:
+ mov.u32 %r243, 126;
+ sub.s32 %r244, %r243, %r369;
+ shl.b32 %r245, %r244, 23;
+ add.s32 %r246, %r368, 1;
+ shr.u32 %r247, %r246, 7;
+ add.s32 %r248, %r247, 1;
+ shr.u32 %r249, %r248, 1;
+ add.s32 %r250, %r249, %r245;
+ or.b32 %r251, %r250, %r366;
+ mov.b32 %f962, %r251;
+
+BB0_64:
+ mul.rn.f32 %f131, %f962, %f962;
+ and.b32 %r88, %r370, 1;
+ setp.eq.s32 %p63, %r88, 0;
+ @%p63 bra BB0_66;
+ bra.uni BB0_65;
+
+BB0_66:
+ mov.f32 %f491, 0f3C08839E;
+ mov.f32 %f492, 0fB94CA1F9;
+ fma.rn.f32 %f963, %f492, %f131, %f491;
+ bra.uni BB0_67;
+
+BB0_65:
+ mov.f32 %f489, 0fBAB6061A;
+ mov.f32 %f490, 0f37CCF5CE;
+ fma.rn.f32 %f963, %f490, %f131, %f489;
+
+BB0_67:
+ @%p63 bra BB0_69;
+ bra.uni BB0_68;
+
+BB0_69:
+ mov.f32 %f496, 0fBE2AAAA3;
+ fma.rn.f32 %f497, %f963, %f131, %f496;
+ fma.rn.f32 %f964, %f497, %f131, %f454;
+ bra.uni BB0_70;
+
+BB0_68:
+ mov.f32 %f493, 0f3D2AAAA5;
+ fma.rn.f32 %f494, %f963, %f131, %f493;
+ mov.f32 %f495, 0fBF000000;
+ fma.rn.f32 %f964, %f494, %f131, %f495;
+
+BB0_70:
+ fma.rn.f32 %f965, %f964, %f962, %f962;
+ @%p63 bra BB0_72;
+
+ fma.rn.f32 %f965, %f964, %f131, %f407;
+
+BB0_72:
+ and.b32 %r252, %r370, 2;
+ setp.eq.s32 %p66, %r252, 0;
+ @%p66 bra BB0_74;
+
+ mov.f32 %f501, 0fBF800000;
+ fma.rn.f32 %f965, %f965, %f501, %f454;
+
+BB0_74:
+ mul.f32 %f510, %f106, %f959;
+ mul.f32 %f511, %f106, %f965;
+ mul.f32 %f512, %f81, %f511;
+ mul.f32 %f513, %f82, %f511;
+ mul.f32 %f514, %f83, %f511;
+ fma.rn.f32 %f515, %f90, %f510, %f512;
+ fma.rn.f32 %f516, %f89, %f510, %f513;
+ fma.rn.f32 %f517, %f88, %f510, %f514;
+ fma.rn.f32 %f505, %f909, %f105, %f515;
+ fma.rn.f32 %f506, %f910, %f105, %f516;
+ fma.rn.f32 %f507, %f911, %f105, %f517;
+ mov.u32 %r254, 0;
+ st.local.u32 [%rd3+8], %r254;
+ st.local.u32 [%rd3+4], %r254;
+ st.local.u32 [%rd3], %r254;
+ ld.global.u32 %r253, [root];
+ mov.f32 %f509, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r253, %f12, %f13, %f14, %f505, %f506, %f507, %r254, %f98, %f509, %rd66, %r117);
+ // inline asm
+ ld.local.f32 %f518, [%rd3];
+ max.f32 %f520, %f518, %f454;
+ ld.local.f32 %f521, [%rd3+4];
+ max.f32 %f522, %f521, %f454;
+ ld.local.f32 %f523, [%rd3+8];
+ max.f32 %f524, %f523, %f454;
+ setp.lt.f32 %p67, %f518, 0f00000000;
+ selp.f32 %f525, 0f00000000, 0f3F800000, %p67;
+ fma.rn.f32 %f942, %f505, %f525, %f942;
+ fma.rn.f32 %f941, %f506, %f525, %f941;
+ fma.rn.f32 %f940, %f507, %f525, %f940;
+ mul.f32 %f526, %f910, %f506;
+ fma.rn.f32 %f527, %f909, %f505, %f526;
+ fma.rn.f32 %f528, %f911, %f507, %f527;
+ cvt.sat.f32.f32 %f529, %f528;
+ fma.rn.f32 %f951, %f520, %f529, %f951;
+ fma.rn.f32 %f950, %f522, %f529, %f950;
+ fma.rn.f32 %f949, %f524, %f529, %f949;
+ add.s32 %r349, %r349, 1;
+ setp.lt.s32 %p68, %r349, %r1;
+ @%p68 bra BB0_28;
+
+ add.s32 %r347, %r347, 1;
+ setp.lt.s32 %p69, %r347, %r1;
+ @%p69 bra BB0_27;
+
+BB0_76:
+ mul.lo.s32 %r256, %r1, %r1;
+ cvt.rn.f32.s32 %f530, %r256;
+ rcp.rn.f32 %f531, %f530;
+ mul.f32 %f532, %f951, %f531;
+ mul.f32 %f533, %f950, %f531;
+ mul.f32 %f534, %f949, %f531;
+ div.rn.f32 %f979, %f415, %f530;
+ fma.rn.f32 %f976, %f951, %f531, %f532;
+ fma.rn.f32 %f977, %f950, %f531, %f533;
+ fma.rn.f32 %f978, %f949, %f531, %f534;
+
+BB0_77:
+ ld.global.u32 %r372, [imageEnabled];
+ and.b32 %r257, %r372, 8;
+ setp.eq.s32 %p70, %r257, 0;
+ @%p70 bra BB0_90;
+
+ mov.u32 %r335, 2;
+ cvt.u64.u32 %rd82, %r3;
+ cvt.u64.u32 %rd83, %r4;
+ mov.u64 %rd86, image_Mask;
+ cvta.global.u64 %rd81, %rd86;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r335, %r335, %rd82, %rd83, %rd26, %rd26);
+ // inline asm
+ mov.f32 %f538, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f539, %f538;
+ fma.rn.f32 %f540, %f539, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f166, %f540;
+ abs.f32 %f167, %f979;
+ setp.lt.f32 %p71, %f167, 0f00800000;
+ mul.f32 %f541, %f167, 0f4B800000;
+ selp.f32 %f542, 0fC3170000, 0fC2FE0000, %p71;
+ selp.f32 %f543, %f541, %f167, %p71;
+ mov.b32 %r260, %f543;
+ and.b32 %r261, %r260, 8388607;
+ or.b32 %r262, %r261, 1065353216;
+ mov.b32 %f544, %r262;
+ shr.u32 %r263, %r260, 23;
+ cvt.rn.f32.u32 %f545, %r263;
+ add.f32 %f546, %f542, %f545;
+ setp.gt.f32 %p72, %f544, 0f3FB504F3;
+ mul.f32 %f547, %f544, 0f3F000000;
+ add.f32 %f548, %f546, 0f3F800000;
+ selp.f32 %f549, %f547, %f544, %p72;
+ selp.f32 %f550, %f548, %f546, %p72;
+ add.f32 %f551, %f549, 0fBF800000;
+ add.f32 %f537, %f549, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f536,%f537;
+ // inline asm
+ add.f32 %f552, %f551, %f551;
+ mul.f32 %f553, %f536, %f552;
+ mul.f32 %f554, %f553, %f553;
+ mov.f32 %f555, 0f3C4CAF63;
+ mov.f32 %f556, 0f3B18F0FE;
+ fma.rn.f32 %f557, %f556, %f554, %f555;
+ mov.f32 %f558, 0f3DAAAABD;
+ fma.rn.f32 %f559, %f557, %f554, %f558;
+ mul.rn.f32 %f560, %f559, %f554;
+ mul.rn.f32 %f561, %f560, %f553;
+ sub.f32 %f562, %f551, %f553;
+ neg.f32 %f563, %f553;
+ add.f32 %f564, %f562, %f562;
+ fma.rn.f32 %f565, %f563, %f551, %f564;
+ mul.rn.f32 %f566, %f536, %f565;
+ add.f32 %f567, %f561, %f553;
+ sub.f32 %f568, %f553, %f567;
+ add.f32 %f569, %f561, %f568;
+ add.f32 %f570, %f566, %f569;
+ add.f32 %f571, %f567, %f570;
+ sub.f32 %f572, %f567, %f571;
+ add.f32 %f573, %f570, %f572;
+ mov.f32 %f574, 0f3F317200;
+ mul.rn.f32 %f575, %f550, %f574;
+ mov.f32 %f576, 0f35BFBE8E;
+ mul.rn.f32 %f577, %f550, %f576;
+ add.f32 %f578, %f575, %f571;
+ sub.f32 %f579, %f575, %f578;
+ add.f32 %f580, %f571, %f579;
+ add.f32 %f581, %f573, %f580;
+ add.f32 %f582, %f577, %f581;
+ add.f32 %f583, %f578, %f582;
+ sub.f32 %f584, %f578, %f583;
+ add.f32 %f585, %f582, %f584;
+ mov.f32 %f586, 0f3EE8BA2E;
+ mul.rn.f32 %f587, %f586, %f583;
+ neg.f32 %f588, %f587;
+ fma.rn.f32 %f589, %f586, %f583, %f588;
+ fma.rn.f32 %f590, %f586, %f585, %f589;
+ mov.f32 %f591, 0f00000000;
+ fma.rn.f32 %f592, %f591, %f583, %f590;
+ add.rn.f32 %f593, %f587, %f592;
+ neg.f32 %f594, %f593;
+ add.rn.f32 %f595, %f587, %f594;
+ add.rn.f32 %f596, %f595, %f592;
+ mov.b32 %r264, %f593;
+ setp.eq.s32 %p73, %r264, 1118925336;
+ add.s32 %r265, %r264, -1;
+ mov.b32 %f597, %r265;
+ add.f32 %f598, %f596, 0f37000000;
+ selp.f32 %f599, %f597, %f593, %p73;
+ selp.f32 %f168, %f598, %f596, %p73;
+ mul.f32 %f600, %f599, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f601, %f600;
+ mov.f32 %f602, 0fBF317200;
+ fma.rn.f32 %f603, %f601, %f602, %f599;
+ mov.f32 %f604, 0fB5BFBE8E;
+ fma.rn.f32 %f605, %f601, %f604, %f603;
+ mul.f32 %f606, %f605, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f607, %f606;
+ add.f32 %f608, %f601, 0f00000000;
+ ex2.approx.f32 %f609, %f608;
+ mul.f32 %f610, %f607, %f609;
+ setp.lt.f32 %p74, %f599, 0fC2D20000;
+ selp.f32 %f611, 0f00000000, %f610, %p74;
+ setp.gt.f32 %p75, %f599, 0f42D20000;
+ selp.f32 %f980, 0f7F800000, %f611, %p75;
+ setp.eq.f32 %p76, %f980, 0f7F800000;
+ @%p76 bra BB0_80;
+
+ fma.rn.f32 %f980, %f980, %f168, %f980;
+
+BB0_80:
+ setp.lt.f32 %p77, %f979, 0f00000000;
+ setp.eq.f32 %p78, %f166, 0f3F800000;
+ and.pred %p3, %p77, %p78;
+ mov.b32 %r266, %f980;
+ xor.b32 %r267, %r266, -2147483648;
+ mov.b32 %f612, %r267;
+ selp.f32 %f982, %f612, %f980, %p3;
+ setp.eq.f32 %p79, %f979, 0f00000000;
+ @%p79 bra BB0_83;
+ bra.uni BB0_81;
+
+BB0_83:
+ add.f32 %f615, %f979, %f979;
+ selp.f32 %f982, %f615, 0f00000000, %p78;
+ bra.uni BB0_84;
+
+BB0_138:
+ mov.u64 %rd154, image_HDR;
+ cvta.global.u64 %rd149, %rd154;
+ mov.u32 %r330, 8;
+ mov.u64 %rd153, 0;
+ // inline asm
+ call (%rd148), _rt_buffer_get_64, (%rd149, %r101, %r330, %rd19, %rd20, %rd153, %rd153);
+ // inline asm
+ mov.f32 %f899, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f899;}
+
+ // inline asm
+ mov.u16 %rs51, 0;
+ st.v4.u16 [%rd148], {%rs50, %rs50, %rs50, %rs51};
+
+BB0_139:
+ ld.global.u8 %rs52, [imageEnabled];
+ and.b16 %rs53, %rs52, 64;
+ setp.eq.s16 %p143, %rs53, 0;
+ @%p143 bra BB0_141;
+
+ cvt.u64.u32 %rd157, %r3;
+ cvt.u64.u32 %rd158, %r4;
+ mov.u64 %rd161, image_Dir;
+ cvta.global.u64 %rd156, %rd161;
+ mov.u64 %rd160, 0;
+ // inline asm
+ call (%rd155), _rt_buffer_get_64, (%rd156, %r101, %r102, %rd157, %rd158, %rd160, %rd160);
+ // inline asm
+ mov.u16 %rs54, 0;
+ st.v4.u8 [%rd155], {%rs54, %rs54, %rs54, %rs54};
+ bra.uni BB0_141;
+
+BB0_81:
+ setp.geu.f32 %p80, %f979, 0f00000000;
+ @%p80 bra BB0_84;
+
+ cvt.rzi.f32.f32 %f614, %f586;
+ setp.neu.f32 %p81, %f614, 0f3EE8BA2E;
+ selp.f32 %f982, 0f7FFFFFFF, %f982, %p81;
+
+BB0_84:
+ add.f32 %f616, %f167, 0f3EE8BA2E;
+ mov.b32 %r268, %f616;
+ setp.lt.s32 %p83, %r268, 2139095040;
+ @%p83 bra BB0_89;
+
+ setp.gtu.f32 %p84, %f167, 0f7F800000;
+ @%p84 bra BB0_88;
+ bra.uni BB0_86;
+
+BB0_88:
+ add.f32 %f982, %f979, 0f3EE8BA2E;
+ bra.uni BB0_89;
+
+BB0_86:
+ setp.neu.f32 %p85, %f167, 0f7F800000;
+ @%p85 bra BB0_89;
+
+ selp.f32 %f982, 0fFF800000, 0f7F800000, %p3;
+
+BB0_89:
+ mul.f32 %f617, %f982, 0f437F0000;
+ setp.eq.f32 %p86, %f979, 0f3F800000;
+ selp.f32 %f618, 0f437F0000, %f617, %p86;
+ cvt.rzi.u32.f32 %r269, %f618;
+ cvt.u16.u32 %rs10, %r269;
+ mov.u16 %rs11, 255;
+ st.v2.u8 [%rd80], {%rs10, %rs11};
+ ld.global.u32 %r372, [imageEnabled];
+
+BB0_90:
+ ld.global.f32 %f619, [lightColor];
+ mul.f32 %f179, %f976, %f619;
+ ld.global.f32 %f620, [lightColor+4];
+ mul.f32 %f180, %f977, %f620;
+ ld.global.f32 %f621, [lightColor+8];
+ mul.f32 %f181, %f978, %f621;
+ and.b32 %r270, %r372, 1;
+ setp.eq.b32 %p87, %r270, 1;
+ @!%p87 bra BB0_125;
+ bra.uni BB0_91;
+
+BB0_91:
+ mov.f32 %f624, 0f3E666666;
+ cvt.rzi.f32.f32 %f625, %f624;
+ fma.rn.f32 %f626, %f625, 0fC0000000, 0f3EE66666;
+ abs.f32 %f182, %f626;
+ abs.f32 %f183, %f179;
+ setp.lt.f32 %p88, %f183, 0f00800000;
+ mul.f32 %f627, %f183, 0f4B800000;
+ selp.f32 %f628, 0fC3170000, 0fC2FE0000, %p88;
+ selp.f32 %f629, %f627, %f183, %p88;
+ mov.b32 %r271, %f629;
+ and.b32 %r272, %r271, 8388607;
+ or.b32 %r273, %r272, 1065353216;
+ mov.b32 %f630, %r273;
+ shr.u32 %r274, %r271, 23;
+ cvt.rn.f32.u32 %f631, %r274;
+ add.f32 %f632, %f628, %f631;
+ setp.gt.f32 %p89, %f630, 0f3FB504F3;
+ mul.f32 %f633, %f630, 0f3F000000;
+ add.f32 %f634, %f632, 0f3F800000;
+ selp.f32 %f635, %f633, %f630, %p89;
+ selp.f32 %f636, %f634, %f632, %p89;
+ add.f32 %f637, %f635, 0fBF800000;
+ add.f32 %f623, %f635, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f622,%f623;
+ // inline asm
+ add.f32 %f638, %f637, %f637;
+ mul.f32 %f639, %f622, %f638;
+ mul.f32 %f640, %f639, %f639;
+ mov.f32 %f641, 0f3C4CAF63;
+ mov.f32 %f642, 0f3B18F0FE;
+ fma.rn.f32 %f643, %f642, %f640, %f641;
+ mov.f32 %f644, 0f3DAAAABD;
+ fma.rn.f32 %f645, %f643, %f640, %f644;
+ mul.rn.f32 %f646, %f645, %f640;
+ mul.rn.f32 %f647, %f646, %f639;
+ sub.f32 %f648, %f637, %f639;
+ neg.f32 %f649, %f639;
+ add.f32 %f650, %f648, %f648;
+ fma.rn.f32 %f651, %f649, %f637, %f650;
+ mul.rn.f32 %f652, %f622, %f651;
+ add.f32 %f653, %f647, %f639;
+ sub.f32 %f654, %f639, %f653;
+ add.f32 %f655, %f647, %f654;
+ add.f32 %f656, %f652, %f655;
+ add.f32 %f657, %f653, %f656;
+ sub.f32 %f658, %f653, %f657;
+ add.f32 %f659, %f656, %f658;
+ mov.f32 %f660, 0f3F317200;
+ mul.rn.f32 %f661, %f636, %f660;
+ mov.f32 %f662, 0f35BFBE8E;
+ mul.rn.f32 %f663, %f636, %f662;
+ add.f32 %f664, %f661, %f657;
+ sub.f32 %f665, %f661, %f664;
+ add.f32 %f666, %f657, %f665;
+ add.f32 %f667, %f659, %f666;
+ add.f32 %f668, %f663, %f667;
+ add.f32 %f669, %f664, %f668;
+ sub.f32 %f670, %f664, %f669;
+ add.f32 %f671, %f668, %f670;
+ mov.f32 %f672, 0f3EE66666;
+ mul.rn.f32 %f673, %f672, %f669;
+ neg.f32 %f674, %f673;
+ fma.rn.f32 %f675, %f672, %f669, %f674;
+ fma.rn.f32 %f676, %f672, %f671, %f675;
+ mov.f32 %f677, 0f00000000;
+ fma.rn.f32 %f678, %f677, %f669, %f676;
+ add.rn.f32 %f679, %f673, %f678;
+ neg.f32 %f680, %f679;
+ add.rn.f32 %f681, %f673, %f680;
+ add.rn.f32 %f682, %f681, %f678;
+ mov.b32 %r275, %f679;
+ setp.eq.s32 %p90, %r275, 1118925336;
+ add.s32 %r276, %r275, -1;
+ mov.b32 %f683, %r276;
+ add.f32 %f684, %f682, 0f37000000;
+ selp.f32 %f685, %f683, %f679, %p90;
+ selp.f32 %f184, %f684, %f682, %p90;
+ mul.f32 %f686, %f685, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f687, %f686;
+ mov.f32 %f688, 0fBF317200;
+ fma.rn.f32 %f689, %f687, %f688, %f685;
+ mov.f32 %f690, 0fB5BFBE8E;
+ fma.rn.f32 %f691, %f687, %f690, %f689;
+ mul.f32 %f692, %f691, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f693, %f692;
+ add.f32 %f694, %f687, 0f00000000;
+ ex2.approx.f32 %f695, %f694;
+ mul.f32 %f696, %f693, %f695;
+ setp.lt.f32 %p91, %f685, 0fC2D20000;
+ selp.f32 %f697, 0f00000000, %f696, %p91;
+ setp.gt.f32 %p92, %f685, 0f42D20000;
+ selp.f32 %f983, 0f7F800000, %f697, %p92;
+ setp.eq.f32 %p93, %f983, 0f7F800000;
+ @%p93 bra BB0_93;
+
+ fma.rn.f32 %f983, %f983, %f184, %f983;
+
+BB0_93:
+ setp.lt.f32 %p94, %f179, 0f00000000;
+ setp.eq.f32 %p95, %f182, 0f3F800000;
+ and.pred %p4, %p94, %p95;
+ mov.b32 %r277, %f983;
+ xor.b32 %r278, %r277, -2147483648;
+ mov.b32 %f698, %r278;
+ selp.f32 %f985, %f698, %f983, %p4;
+ setp.eq.f32 %p96, %f179, 0f00000000;
+ @%p96 bra BB0_96;
+ bra.uni BB0_94;
+
+BB0_96:
+ add.f32 %f701, %f179, %f179;
+ selp.f32 %f985, %f701, 0f00000000, %p95;
+ bra.uni BB0_97;
+
+BB0_94:
+ setp.geu.f32 %p97, %f179, 0f00000000;
+ @%p97 bra BB0_97;
+
+ cvt.rzi.f32.f32 %f700, %f672;
+ setp.neu.f32 %p98, %f700, 0f3EE66666;
+ selp.f32 %f985, 0f7FFFFFFF, %f985, %p98;
+
+BB0_97:
+ add.f32 %f702, %f183, 0f3EE66666;
+ mov.b32 %r279, %f702;
+ setp.lt.s32 %p100, %r279, 2139095040;
+ @%p100 bra BB0_102;
+
+ setp.gtu.f32 %p101, %f183, 0f7F800000;
+ @%p101 bra BB0_101;
+ bra.uni BB0_99;
+
+BB0_101:
+ add.f32 %f985, %f179, 0f3EE66666;
+ bra.uni BB0_102;
+
+BB0_99:
+ setp.neu.f32 %p102, %f183, 0f7F800000;
+ @%p102 bra BB0_102;
+
+ selp.f32 %f985, 0fFF800000, 0f7F800000, %p4;
+
+BB0_102:
+ setp.eq.f32 %p103, %f179, 0f3F800000;
+ selp.f32 %f195, 0f3F800000, %f985, %p103;
+ abs.f32 %f196, %f180;
+ setp.lt.f32 %p104, %f196, 0f00800000;
+ mul.f32 %f705, %f196, 0f4B800000;
+ selp.f32 %f706, 0fC3170000, 0fC2FE0000, %p104;
+ selp.f32 %f707, %f705, %f196, %p104;
+ mov.b32 %r280, %f707;
+ and.b32 %r281, %r280, 8388607;
+ or.b32 %r282, %r281, 1065353216;
+ mov.b32 %f708, %r282;
+ shr.u32 %r283, %r280, 23;
+ cvt.rn.f32.u32 %f709, %r283;
+ add.f32 %f710, %f706, %f709;
+ setp.gt.f32 %p105, %f708, 0f3FB504F3;
+ mul.f32 %f711, %f708, 0f3F000000;
+ add.f32 %f712, %f710, 0f3F800000;
+ selp.f32 %f713, %f711, %f708, %p105;
+ selp.f32 %f714, %f712, %f710, %p105;
+ add.f32 %f715, %f713, 0fBF800000;
+ add.f32 %f704, %f713, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f703,%f704;
+ // inline asm
+ add.f32 %f716, %f715, %f715;
+ mul.f32 %f717, %f703, %f716;
+ mul.f32 %f718, %f717, %f717;
+ fma.rn.f32 %f721, %f642, %f718, %f641;
+ fma.rn.f32 %f723, %f721, %f718, %f644;
+ mul.rn.f32 %f724, %f723, %f718;
+ mul.rn.f32 %f725, %f724, %f717;
+ sub.f32 %f726, %f715, %f717;
+ neg.f32 %f727, %f717;
+ add.f32 %f728, %f726, %f726;
+ fma.rn.f32 %f729, %f727, %f715, %f728;
+ mul.rn.f32 %f730, %f703, %f729;
+ add.f32 %f731, %f725, %f717;
+ sub.f32 %f732, %f717, %f731;
+ add.f32 %f733, %f725, %f732;
+ add.f32 %f734, %f730, %f733;
+ add.f32 %f735, %f731, %f734;
+ sub.f32 %f736, %f731, %f735;
+ add.f32 %f737, %f734, %f736;
+ mul.rn.f32 %f739, %f714, %f660;
+ mul.rn.f32 %f741, %f714, %f662;
+ add.f32 %f742, %f739, %f735;
+ sub.f32 %f743, %f739, %f742;
+ add.f32 %f744, %f735, %f743;
+ add.f32 %f745, %f737, %f744;
+ add.f32 %f746, %f741, %f745;
+ add.f32 %f747, %f742, %f746;
+ sub.f32 %f748, %f742, %f747;
+ add.f32 %f749, %f746, %f748;
+ mul.rn.f32 %f751, %f672, %f747;
+ neg.f32 %f752, %f751;
+ fma.rn.f32 %f753, %f672, %f747, %f752;
+ fma.rn.f32 %f754, %f672, %f749, %f753;
+ fma.rn.f32 %f756, %f677, %f747, %f754;
+ add.rn.f32 %f757, %f751, %f756;
+ neg.f32 %f758, %f757;
+ add.rn.f32 %f759, %f751, %f758;
+ add.rn.f32 %f760, %f759, %f756;
+ mov.b32 %r284, %f757;
+ setp.eq.s32 %p106, %r284, 1118925336;
+ add.s32 %r285, %r284, -1;
+ mov.b32 %f761, %r285;
+ add.f32 %f762, %f760, 0f37000000;
+ selp.f32 %f763, %f761, %f757, %p106;
+ selp.f32 %f197, %f762, %f760, %p106;
+ mul.f32 %f764, %f763, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f765, %f764;
+ fma.rn.f32 %f767, %f765, %f688, %f763;
+ fma.rn.f32 %f769, %f765, %f690, %f767;
+ mul.f32 %f770, %f769, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f771, %f770;
+ add.f32 %f772, %f765, 0f00000000;
+ ex2.approx.f32 %f773, %f772;
+ mul.f32 %f774, %f771, %f773;
+ setp.lt.f32 %p107, %f763, 0fC2D20000;
+ selp.f32 %f775, 0f00000000, %f774, %p107;
+ setp.gt.f32 %p108, %f763, 0f42D20000;
+ selp.f32 %f986, 0f7F800000, %f775, %p108;
+ setp.eq.f32 %p109, %f986, 0f7F800000;
+ @%p109 bra BB0_104;
+
+ fma.rn.f32 %f986, %f986, %f197, %f986;
+
+BB0_104:
+ setp.lt.f32 %p110, %f180, 0f00000000;
+ and.pred %p5, %p110, %p95;
+ mov.b32 %r286, %f986;
+ xor.b32 %r287, %r286, -2147483648;
+ mov.b32 %f776, %r287;
+ selp.f32 %f988, %f776, %f986, %p5;
+ setp.eq.f32 %p112, %f180, 0f00000000;
+ @%p112 bra BB0_107;
+ bra.uni BB0_105;
+
+BB0_107:
+ add.f32 %f779, %f180, %f180;
+ selp.f32 %f988, %f779, 0f00000000, %p95;
+ bra.uni BB0_108;
+
+BB0_105:
+ setp.geu.f32 %p113, %f180, 0f00000000;
+ @%p113 bra BB0_108;
+
+ cvt.rzi.f32.f32 %f778, %f672;
+ setp.neu.f32 %p114, %f778, 0f3EE66666;
+ selp.f32 %f988, 0f7FFFFFFF, %f988, %p114;
+
+BB0_108:
+ add.f32 %f780, %f196, 0f3EE66666;
+ mov.b32 %r288, %f780;
+ setp.lt.s32 %p116, %r288, 2139095040;
+ @%p116 bra BB0_113;
+
+ setp.gtu.f32 %p117, %f196, 0f7F800000;
+ @%p117 bra BB0_112;
+ bra.uni BB0_110;
+
+BB0_112:
+ add.f32 %f988, %f180, 0f3EE66666;
+ bra.uni BB0_113;
+
+BB0_110:
+ setp.neu.f32 %p118, %f196, 0f7F800000;
+ @%p118 bra BB0_113;
+
+ selp.f32 %f988, 0fFF800000, 0f7F800000, %p5;
+
+BB0_113:
+ setp.eq.f32 %p119, %f180, 0f3F800000;
+ selp.f32 %f208, 0f3F800000, %f988, %p119;
+ abs.f32 %f209, %f181;
+ setp.lt.f32 %p120, %f209, 0f00800000;
+ mul.f32 %f783, %f209, 0f4B800000;
+ selp.f32 %f784, 0fC3170000, 0fC2FE0000, %p120;
+ selp.f32 %f785, %f783, %f209, %p120;
+ mov.b32 %r289, %f785;
+ and.b32 %r290, %r289, 8388607;
+ or.b32 %r291, %r290, 1065353216;
+ mov.b32 %f786, %r291;
+ shr.u32 %r292, %r289, 23;
+ cvt.rn.f32.u32 %f787, %r292;
+ add.f32 %f788, %f784, %f787;
+ setp.gt.f32 %p121, %f786, 0f3FB504F3;
+ mul.f32 %f789, %f786, 0f3F000000;
+ add.f32 %f790, %f788, 0f3F800000;
+ selp.f32 %f791, %f789, %f786, %p121;
+ selp.f32 %f792, %f790, %f788, %p121;
+ add.f32 %f793, %f791, 0fBF800000;
+ add.f32 %f782, %f791, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f781,%f782;
+ // inline asm
+ add.f32 %f794, %f793, %f793;
+ mul.f32 %f795, %f781, %f794;
+ mul.f32 %f796, %f795, %f795;
+ fma.rn.f32 %f799, %f642, %f796, %f641;
+ fma.rn.f32 %f801, %f799, %f796, %f644;
+ mul.rn.f32 %f802, %f801, %f796;
+ mul.rn.f32 %f803, %f802, %f795;
+ sub.f32 %f804, %f793, %f795;
+ neg.f32 %f805, %f795;
+ add.f32 %f806, %f804, %f804;
+ fma.rn.f32 %f807, %f805, %f793, %f806;
+ mul.rn.f32 %f808, %f781, %f807;
+ add.f32 %f809, %f803, %f795;
+ sub.f32 %f810, %f795, %f809;
+ add.f32 %f811, %f803, %f810;
+ add.f32 %f812, %f808, %f811;
+ add.f32 %f813, %f809, %f812;
+ sub.f32 %f814, %f809, %f813;
+ add.f32 %f815, %f812, %f814;
+ mul.rn.f32 %f817, %f792, %f660;
+ mul.rn.f32 %f819, %f792, %f662;
+ add.f32 %f820, %f817, %f813;
+ sub.f32 %f821, %f817, %f820;
+ add.f32 %f822, %f813, %f821;
+ add.f32 %f823, %f815, %f822;
+ add.f32 %f824, %f819, %f823;
+ add.f32 %f825, %f820, %f824;
+ sub.f32 %f826, %f820, %f825;
+ add.f32 %f827, %f824, %f826;
+ mul.rn.f32 %f829, %f672, %f825;
+ neg.f32 %f830, %f829;
+ fma.rn.f32 %f831, %f672, %f825, %f830;
+ fma.rn.f32 %f832, %f672, %f827, %f831;
+ fma.rn.f32 %f834, %f677, %f825, %f832;
+ add.rn.f32 %f835, %f829, %f834;
+ neg.f32 %f836, %f835;
+ add.rn.f32 %f837, %f829, %f836;
+ add.rn.f32 %f838, %f837, %f834;
+ mov.b32 %r293, %f835;
+ setp.eq.s32 %p122, %r293, 1118925336;
+ add.s32 %r294, %r293, -1;
+ mov.b32 %f839, %r294;
+ add.f32 %f840, %f838, 0f37000000;
+ selp.f32 %f841, %f839, %f835, %p122;
+ selp.f32 %f210, %f840, %f838, %p122;
+ mul.f32 %f842, %f841, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f843, %f842;
+ fma.rn.f32 %f845, %f843, %f688, %f841;
+ fma.rn.f32 %f847, %f843, %f690, %f845;
+ mul.f32 %f848, %f847, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f849, %f848;
+ add.f32 %f850, %f843, 0f00000000;
+ ex2.approx.f32 %f851, %f850;
+ mul.f32 %f852, %f849, %f851;
+ setp.lt.f32 %p123, %f841, 0fC2D20000;
+ selp.f32 %f853, 0f00000000, %f852, %p123;
+ setp.gt.f32 %p124, %f841, 0f42D20000;
+ selp.f32 %f989, 0f7F800000, %f853, %p124;
+ setp.eq.f32 %p125, %f989, 0f7F800000;
+ @%p125 bra BB0_115;
+
+ fma.rn.f32 %f989, %f989, %f210, %f989;
+
+BB0_115:
+ setp.lt.f32 %p126, %f181, 0f00000000;
+ and.pred %p6, %p126, %p95;
+ mov.b32 %r295, %f989;
+ xor.b32 %r296, %r295, -2147483648;
+ mov.b32 %f854, %r296;
+ selp.f32 %f991, %f854, %f989, %p6;
+ setp.eq.f32 %p128, %f181, 0f00000000;
+ @%p128 bra BB0_118;
+ bra.uni BB0_116;
+
+BB0_118:
+ add.f32 %f857, %f181, %f181;
+ selp.f32 %f991, %f857, 0f00000000, %p95;
+ bra.uni BB0_119;
+
+BB0_116:
+ setp.geu.f32 %p129, %f181, 0f00000000;
+ @%p129 bra BB0_119;
+
+ cvt.rzi.f32.f32 %f856, %f672;
+ setp.neu.f32 %p130, %f856, 0f3EE66666;
+ selp.f32 %f991, 0f7FFFFFFF, %f991, %p130;
+
+BB0_119:
+ add.f32 %f858, %f209, 0f3EE66666;
+ mov.b32 %r297, %f858;
+ setp.lt.s32 %p132, %r297, 2139095040;
+ @%p132 bra BB0_124;
+
+ setp.gtu.f32 %p133, %f209, 0f7F800000;
+ @%p133 bra BB0_123;
+ bra.uni BB0_121;
+
+BB0_123:
+ add.f32 %f991, %f181, 0f3EE66666;
+ bra.uni BB0_124;
+
+BB0_121:
+ setp.neu.f32 %p134, %f209, 0f7F800000;
+ @%p134 bra BB0_124;
+
+ selp.f32 %f991, 0fFF800000, 0f7F800000, %p6;
+
+BB0_124:
+ mov.u32 %r336, 2;
+ setp.eq.f32 %p135, %f181, 0f3F800000;
+ selp.f32 %f859, 0f3F800000, %f991, %p135;
+ cvt.u64.u32 %rd90, %r4;
+ cvt.u64.u32 %rd89, %r3;
+ mov.u64 %rd93, image;
+ cvta.global.u64 %rd88, %rd93;
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd88, %r336, %r102, %rd89, %rd90, %rd26, %rd26);
+ // inline asm
+ cvt.sat.f32.f32 %f860, %f859;
+ mul.f32 %f861, %f860, 0f437FFD71;
+ cvt.rzi.u32.f32 %r300, %f861;
+ cvt.sat.f32.f32 %f862, %f208;
+ mul.f32 %f863, %f862, 0f437FFD71;
+ cvt.rzi.u32.f32 %r301, %f863;
+ cvt.sat.f32.f32 %f864, %f195;
+ mul.f32 %f865, %f864, 0f437FFD71;
+ cvt.rzi.u32.f32 %r302, %f865;
+ cvt.u16.u32 %rs12, %r300;
+ cvt.u16.u32 %rs13, %r302;
+ cvt.u16.u32 %rs14, %r301;
+ mov.u16 %rs15, 255;
+ st.v4.u8 [%rd87], {%rs12, %rs14, %rs13, %rs15};
+ ld.global.u32 %r372, [imageEnabled];
+
+BB0_125:
+ and.b32 %r303, %r372, 4;
+ setp.eq.s32 %p136, %r303, 0;
+ @%p136 bra BB0_129;
+
+ ld.global.u32 %r304, [additive];
+ setp.eq.s32 %p137, %r304, 0;
+ cvt.u64.u32 %rd17, %r3;
+ cvt.u64.u32 %rd18, %r4;
+ // inline asm
+ { cvt.rn.f16.f32 %rs16, %f407;}
+
+ // inline asm
+ @%p137 bra BB0_128;
+
+ mov.u32 %r337, 2;
+ mov.u64 %rd106, image_HDR;
+ cvta.global.u64 %rd95, %rd106;
+ mov.u32 %r308, 8;
+ // inline asm
+ call (%rd94), _rt_buffer_get_64, (%rd95, %r337, %r308, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs23, %rs24, %rs25, %rs26}, [%rd94];
+ // inline asm
+ { cvt.f32.f16 %f867, %rs23;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f868, %rs24;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f869, %rs25;}
+
+ // inline asm
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd95, %r337, %r308, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f870, %f179, %f867;
+ add.f32 %f871, %f180, %f868;
+ add.f32 %f872, %f181, %f869;
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f872;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs21, %f871;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f870;}
+
+ // inline asm
+ st.v4.u16 [%rd100], {%rs20, %rs21, %rs22, %rs16};
+ bra.uni BB0_129;
+
+BB0_128:
+ mov.u32 %r338, 2;
+ mov.u64 %rd113, image_HDR;
+ cvta.global.u64 %rd108, %rd113;
+ mov.u32 %r310, 8;
+ // inline asm
+ call (%rd107), _rt_buffer_get_64, (%rd108, %r338, %r310, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f181;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f180;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f179;}
+
+ // inline asm
+ st.v4.u16 [%rd107], {%rs27, %rs28, %rs29, %rs16};
+
+BB0_129:
+ ld.global.u8 %rs30, [imageEnabled];
+ and.b16 %rs31, %rs30, 64;
+ setp.eq.s16 %p138, %rs31, 0;
+ @%p138 bra BB0_141;
+
+ mov.u32 %r339, 2;
+ mul.f32 %f876, %f941, %f941;
+ fma.rn.f32 %f877, %f942, %f942, %f876;
+ fma.rn.f32 %f878, %f940, %f940, %f877;
+ sqrt.rn.f32 %f879, %f878;
+ rcp.rn.f32 %f880, %f879;
+ mul.f32 %f881, %f942, %f880;
+ mul.f32 %f882, %f941, %f880;
+ mul.f32 %f883, %f940, %f880;
+ cvt.u64.u32 %rd117, %r4;
+ cvt.u64.u32 %rd116, %r3;
+ mov.u64 %rd120, image_Dir;
+ cvta.global.u64 %rd115, %rd120;
+ // inline asm
+ call (%rd114), _rt_buffer_get_64, (%rd115, %r339, %r102, %rd116, %rd117, %rd26, %rd26);
+ // inline asm
+ fma.rn.f32 %f884, %f881, 0f3F000000, 0f3F000000;
+ mul.f32 %f885, %f884, 0f437F0000;
+ cvt.rzi.u32.f32 %r313, %f885;
+ fma.rn.f32 %f886, %f882, 0f3F000000, 0f3F000000;
+ mul.f32 %f887, %f886, 0f437F0000;
+ cvt.rzi.u32.f32 %r314, %f887;
+ fma.rn.f32 %f888, %f883, 0f3F000000, 0f3F000000;
+ mul.f32 %f889, %f888, 0f437F0000;
+ cvt.rzi.u32.f32 %r315, %f889;
+ cvt.u16.u32 %rs32, %r315;
+ cvt.u16.u32 %rs33, %r314;
+ cvt.u16.u32 %rs34, %r313;
+ mov.u16 %rs35, 255;
+ st.v4.u8 [%rd114], {%rs34, %rs33, %rs32, %rs35};
+
+BB0_141:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightDir.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightDir.ptx.meta
new file mode 100644
index 00000000..640518fe
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightDir.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9a18a77cec24adf4ea23e9e5a7850ef3
+timeCreated: 1537467071
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightProbeSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightProbeSH.ptx
new file mode 100644
index 00000000..120df982
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightProbeSH.ptx
@@ -0,0 +1,2489 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 lightMeshBuffer[1];
+.global .align 4 .u32 lightMeshBufferSize;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightPointSize;
+.global .align 4 .b8 lightColor[12];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo19lightMeshBufferSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightPointSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename19lightMeshBufferSizeE[13] = {117, 110, 115, 105, 103, 110, 101, 100, 32, 105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightPointSizeE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum19lightMeshBufferSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightPointSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightPointSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightPointSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[44];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<148>;
+ .reg .b16 %rs<158>;
+ .reg .f32 %f<1253>;
+ .reg .b32 %r<412>;
+ .reg .b64 %rd<317>;
+
+
+ mov.u64 %rd316, __local_depot0;
+ cvta.local.u64 %SP, %rd316;
+ ld.global.u32 %r1, [samples];
+ shl.b32 %r2, %r1, 1;
+ ld.global.v2.u32 {%r100, %r101}, [pixelID];
+ cvt.u64.u32 %rd23, %r100;
+ cvt.u64.u32 %rd24, %r101;
+ mov.u64 %rd27, uvnormal;
+ cvta.global.u64 %rd22, %rd27;
+ mov.u32 %r98, 2;
+ mov.u32 %r99, 4;
+ mov.u64 %rd26, 0;
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd22, %r98, %r99, %rd23, %rd24, %rd26, %rd26);
+ // inline asm
+ ld.u32 %r3, [%rd21];
+ shr.u32 %r104, %r3, 16;
+ cvt.u16.u32 %rs1, %r104;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r3;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p7, %rs9, 0;
+ mov.f32 %f1114, 0f00000000;
+ mov.f32 %f1115, %f1114;
+ mov.f32 %f1116, %f1114;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs10, [%rd21+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f334, %rs12;
+ div.rn.f32 %f335, %f334, 0f437F0000;
+ fma.rn.f32 %f336, %f335, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f337, %rs10;
+ div.rn.f32 %f338, %f337, 0f437F0000;
+ fma.rn.f32 %f339, %f338, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f340, %rs7;
+ div.rn.f32 %f341, %f340, 0f437F0000;
+ fma.rn.f32 %f342, %f341, 0f40000000, 0fBF800000;
+ mul.f32 %f343, %f339, %f339;
+ fma.rn.f32 %f344, %f336, %f336, %f343;
+ fma.rn.f32 %f345, %f342, %f342, %f344;
+ sqrt.rn.f32 %f346, %f345;
+ rcp.rn.f32 %f347, %f346;
+ mul.f32 %f1114, %f336, %f347;
+ mul.f32 %f1115, %f339, %f347;
+ mul.f32 %f1116, %f342, %f347;
+
+BB0_2:
+ ld.global.v2.u32 {%r105, %r106}, [pixelID];
+ ld.global.v2.u32 {%r108, %r109}, [tileInfo];
+ add.s32 %r4, %r105, %r108;
+ add.s32 %r5, %r106, %r109;
+ setp.eq.f32 %p8, %f1115, 0f00000000;
+ setp.eq.f32 %p9, %f1114, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f1116, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_139;
+ bra.uni BB0_3;
+
+BB0_139:
+ ld.global.u32 %r411, [imageEnabled];
+ and.b32 %r336, %r411, 1;
+ setp.eq.b32 %p139, %r336, 1;
+ @!%p139 bra BB0_141;
+ bra.uni BB0_140;
+
+BB0_140:
+ cvt.u64.u32 %rd196, %r4;
+ cvt.u64.u32 %rd197, %r5;
+ mov.u64 %rd200, image;
+ cvta.global.u64 %rd195, %rd200;
+ mov.u64 %rd199, 0;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r98, %r99, %rd196, %rd197, %rd199, %rd199);
+ // inline asm
+ mov.u16 %rs90, 0;
+ st.v4.u8 [%rd194], {%rs90, %rs90, %rs90, %rs90};
+ ld.global.u32 %r411, [imageEnabled];
+
+BB0_141:
+ and.b32 %r339, %r411, 8;
+ setp.eq.s32 %p140, %r339, 0;
+ @%p140 bra BB0_143;
+
+ cvt.u64.u32 %rd204, %r5;
+ cvt.u64.u32 %rd203, %r4;
+ mov.u64 %rd207, image_Mask;
+ cvta.global.u64 %rd202, %rd207;
+ mov.u64 %rd206, 0;
+ // inline asm
+ call (%rd201), _rt_buffer_get_64, (%rd202, %r98, %r98, %rd203, %rd204, %rd206, %rd206);
+ // inline asm
+ mov.f32 %f1071, 0f00000000;
+ cvt.rzi.u32.f32 %r342, %f1071;
+ cvt.u16.u32 %rs91, %r342;
+ mov.u16 %rs92, 0;
+ st.v2.u8 [%rd201], {%rs91, %rs92};
+ ld.global.u32 %r411, [imageEnabled];
+
+BB0_143:
+ cvt.u64.u32 %rd19, %r4;
+ cvt.u64.u32 %rd20, %r5;
+ and.b32 %r343, %r411, 4;
+ setp.eq.s32 %p141, %r343, 0;
+ @%p141 bra BB0_147;
+
+ ld.global.u32 %r344, [additive];
+ setp.eq.s32 %p142, %r344, 0;
+ @%p142 bra BB0_146;
+
+ mov.u64 %rd220, image_HDR;
+ cvta.global.u64 %rd209, %rd220;
+ mov.u32 %r348, 8;
+ mov.u64 %rd219, 0;
+ // inline asm
+ call (%rd208), _rt_buffer_get_64, (%rd209, %r98, %r348, %rd19, %rd20, %rd219, %rd219);
+ // inline asm
+ ld.v4.u16 {%rs99, %rs100, %rs101, %rs102}, [%rd208];
+ // inline asm
+ { cvt.f32.f16 %f1072, %rs99;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1073, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1074, %rs101;}
+
+ // inline asm
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd209, %r98, %r348, %rd19, %rd20, %rd219, %rd219);
+ // inline asm
+ add.f32 %f1075, %f1072, 0f00000000;
+ add.f32 %f1076, %f1073, 0f00000000;
+ add.f32 %f1077, %f1074, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f1077;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f1076;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs96, %f1075;}
+
+ // inline asm
+ mov.u16 %rs103, 0;
+ st.v4.u16 [%rd214], {%rs96, %rs97, %rs98, %rs103};
+ bra.uni BB0_147;
+
+BB0_3:
+ ld.global.v2.u32 {%r118, %r119}, [pixelID];
+ cvt.u64.u32 %rd30, %r118;
+ cvt.u64.u32 %rd31, %r119;
+ mov.u64 %rd40, uvpos;
+ cvta.global.u64 %rd29, %rd40;
+ mov.u32 %r114, 12;
+ // inline asm
+ call (%rd28), _rt_buffer_get_64, (%rd29, %r98, %r114, %rd30, %rd31, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f9, [%rd28+8];
+ ld.f32 %f8, [%rd28+4];
+ ld.f32 %f7, [%rd28];
+ mul.f32 %f364, %f7, 0f3456BF95;
+ mul.f32 %f365, %f8, 0f3456BF95;
+ mul.f32 %f366, %f9, 0f3456BF95;
+ abs.f32 %f367, %f1114;
+ div.rn.f32 %f368, %f364, %f367;
+ abs.f32 %f369, %f1115;
+ div.rn.f32 %f370, %f365, %f369;
+ abs.f32 %f371, %f1116;
+ div.rn.f32 %f372, %f366, %f371;
+ abs.f32 %f373, %f368;
+ abs.f32 %f374, %f370;
+ abs.f32 %f375, %f372;
+ mov.f32 %f376, 0f38D1B717;
+ max.f32 %f377, %f373, %f376;
+ max.f32 %f378, %f374, %f376;
+ max.f32 %f379, %f375, %f376;
+ fma.rn.f32 %f10, %f1114, %f377, %f7;
+ fma.rn.f32 %f11, %f1115, %f378, %f8;
+ fma.rn.f32 %f12, %f1116, %f379, %f9;
+ ld.global.v2.u32 {%r122, %r123}, [pixelID];
+ cvt.u64.u32 %rd36, %r122;
+ cvt.u64.u32 %rd37, %r123;
+ mov.u64 %rd41, rnd_seeds;
+ cvta.global.u64 %rd35, %rd41;
+ // inline asm
+ call (%rd34), _rt_buffer_get_64, (%rd35, %r98, %r99, %rd36, %rd37, %rd26, %rd26);
+ // inline asm
+ ld.u32 %r126, [%rd34];
+ mad.lo.s32 %r6, %r126, 1664525, 1013904223;
+ ld.global.u32 %r127, [lightMeshBufferSize];
+ setp.eq.s32 %p14, %r127, 0;
+ mov.pred %p13, 0;
+ mov.f32 %f18, 0f00000000;
+ mov.u32 %r383, 0;
+ @%p14 bra BB0_4;
+
+ ld.global.f32 %f13, [lightPointSize];
+ mul.f32 %f14, %f10, 0f3456BF95;
+ mul.f32 %f15, %f11, 0f3456BF95;
+ mul.f32 %f16, %f12, 0f3456BF95;
+ and.b32 %r129, %r6, 16777215;
+ cvt.rn.f32.u32 %f396, %r129;
+ mul.f32 %f397, %f396, 0fB3800000;
+ fma.rn.f32 %f17, %f397, 0f3F333333, 0f3F800000;
+ mov.f32 %f18, 0f00000000;
+ mov.u32 %r383, 0;
+ abs.f32 %f520, %f15;
+ abs.f32 %f521, %f14;
+ max.f32 %f522, %f521, %f520;
+ abs.f32 %f523, %f16;
+ max.f32 %f524, %f522, %f523;
+ mov.f32 %f19, %f18;
+ mov.f32 %f20, %f18;
+ mov.f32 %f21, %f18;
+ mov.f32 %f22, %f18;
+ mov.f32 %f23, %f18;
+ mov.f32 %f24, %f18;
+ mov.f32 %f25, %f18;
+ mov.f32 %f26, %f18;
+ mov.f32 %f27, %f18;
+ mov.f32 %f28, %f18;
+ mov.f32 %f29, %f18;
+ mov.f32 %f30, %f18;
+ mov.f32 %f31, %f18;
+ mov.f32 %f32, %f18;
+ mov.f32 %f33, %f18;
+
+BB0_6:
+ mul.lo.s32 %r132, %r383, 3;
+ cvt.s64.s32 %rd44, %r132;
+ mov.u64 %rd48, lightMeshBuffer;
+ cvta.global.u64 %rd43, %rd48;
+ mov.u32 %r130, 1;
+ // inline asm
+ call (%rd42), _rt_buffer_get_64, (%rd43, %r130, %r114, %rd44, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f398, [%rd42];
+ sub.f32 %f399, %f398, %f7;
+ ld.f32 %f400, [%rd42+4];
+ sub.f32 %f401, %f400, %f8;
+ ld.f32 %f402, [%rd42+8];
+ sub.f32 %f403, %f402, %f9;
+ mul.f32 %f404, %f401, %f401;
+ fma.rn.f32 %f405, %f399, %f399, %f404;
+ fma.rn.f32 %f406, %f403, %f403, %f405;
+ sqrt.rn.f32 %f34, %f406;
+ rcp.rn.f32 %f407, %f34;
+ mul.f32 %f35, %f399, %f407;
+ mul.f32 %f36, %f401, %f407;
+ mul.f32 %f37, %f403, %f407;
+ mul.f32 %f408, %f34, %f34;
+ mul.f32 %f409, %f408, 0f40C90FDB;
+ div.rn.f32 %f410, %f13, %f409;
+ add.f32 %f38, %f410, %f410;
+ setp.gt.f32 %p16, %f38, %f17;
+ setp.ne.s32 %p17, %r1, 0;
+ and.pred %p18, %p17, %p16;
+ mov.pred %p147, -1;
+ @%p18 bra BB0_22;
+
+ ld.global.f32 %f413, [lightInvCutoff];
+ mul.f32 %f39, %f34, %f413;
+ mov.f32 %f417, 0f40800000;
+ abs.f32 %f41, %f39;
+ setp.lt.f32 %p19, %f41, 0f00800000;
+ mul.f32 %f419, %f41, 0f4B800000;
+ selp.f32 %f420, 0fC3170000, 0fC2FE0000, %p19;
+ selp.f32 %f421, %f419, %f41, %p19;
+ mov.b32 %r133, %f421;
+ and.b32 %r134, %r133, 8388607;
+ or.b32 %r135, %r134, 1065353216;
+ mov.b32 %f422, %r135;
+ shr.u32 %r136, %r133, 23;
+ cvt.rn.f32.u32 %f423, %r136;
+ add.f32 %f424, %f420, %f423;
+ setp.gt.f32 %p20, %f422, 0f3FB504F3;
+ mul.f32 %f425, %f422, 0f3F000000;
+ add.f32 %f426, %f424, 0f3F800000;
+ selp.f32 %f427, %f425, %f422, %p20;
+ selp.f32 %f428, %f426, %f424, %p20;
+ add.f32 %f429, %f427, 0fBF800000;
+ add.f32 %f412, %f427, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f411,%f412;
+ // inline asm
+ add.f32 %f430, %f429, %f429;
+ mul.f32 %f431, %f411, %f430;
+ mul.f32 %f432, %f431, %f431;
+ mov.f32 %f433, 0f3C4CAF63;
+ mov.f32 %f434, 0f3B18F0FE;
+ fma.rn.f32 %f435, %f434, %f432, %f433;
+ mov.f32 %f436, 0f3DAAAABD;
+ fma.rn.f32 %f437, %f435, %f432, %f436;
+ mul.rn.f32 %f438, %f437, %f432;
+ mul.rn.f32 %f439, %f438, %f431;
+ sub.f32 %f440, %f429, %f431;
+ neg.f32 %f441, %f431;
+ add.f32 %f442, %f440, %f440;
+ fma.rn.f32 %f443, %f441, %f429, %f442;
+ mul.rn.f32 %f444, %f411, %f443;
+ add.f32 %f445, %f439, %f431;
+ sub.f32 %f446, %f431, %f445;
+ add.f32 %f447, %f439, %f446;
+ add.f32 %f448, %f444, %f447;
+ add.f32 %f449, %f445, %f448;
+ sub.f32 %f450, %f445, %f449;
+ add.f32 %f451, %f448, %f450;
+ mov.f32 %f452, 0f3F317200;
+ mul.rn.f32 %f453, %f428, %f452;
+ mov.f32 %f454, 0f35BFBE8E;
+ mul.rn.f32 %f455, %f428, %f454;
+ add.f32 %f456, %f453, %f449;
+ sub.f32 %f457, %f453, %f456;
+ add.f32 %f458, %f449, %f457;
+ add.f32 %f459, %f451, %f458;
+ add.f32 %f460, %f455, %f459;
+ add.f32 %f461, %f456, %f460;
+ sub.f32 %f462, %f456, %f461;
+ add.f32 %f463, %f460, %f462;
+ mul.rn.f32 %f464, %f417, %f461;
+ neg.f32 %f465, %f464;
+ fma.rn.f32 %f466, %f417, %f461, %f465;
+ fma.rn.f32 %f467, %f417, %f463, %f466;
+ mov.f32 %f468, 0f00000000;
+ fma.rn.f32 %f469, %f468, %f461, %f467;
+ add.rn.f32 %f470, %f464, %f469;
+ neg.f32 %f471, %f470;
+ add.rn.f32 %f472, %f464, %f471;
+ add.rn.f32 %f473, %f472, %f469;
+ mov.b32 %r137, %f470;
+ setp.eq.s32 %p21, %r137, 1118925336;
+ add.s32 %r138, %r137, -1;
+ mov.b32 %f474, %r138;
+ add.f32 %f475, %f473, 0f37000000;
+ selp.f32 %f476, %f474, %f470, %p21;
+ selp.f32 %f42, %f475, %f473, %p21;
+ mul.f32 %f477, %f476, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f478, %f477;
+ mov.f32 %f479, 0fBF317200;
+ fma.rn.f32 %f480, %f478, %f479, %f476;
+ mov.f32 %f481, 0fB5BFBE8E;
+ fma.rn.f32 %f482, %f478, %f481, %f480;
+ mul.f32 %f483, %f482, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f484, %f483;
+ add.f32 %f485, %f478, 0f00000000;
+ ex2.approx.f32 %f486, %f485;
+ mul.f32 %f487, %f484, %f486;
+ setp.lt.f32 %p22, %f476, 0fC2D20000;
+ selp.f32 %f488, 0f00000000, %f487, %p22;
+ setp.gt.f32 %p23, %f476, 0f42D20000;
+ selp.f32 %f1133, 0f7F800000, %f488, %p23;
+ setp.eq.f32 %p24, %f1133, 0f7F800000;
+ @%p24 bra BB0_9;
+
+ fma.rn.f32 %f1133, %f1133, %f42, %f1133;
+
+BB0_9:
+ mov.f32 %f1112, 0f40000000;
+ cvt.rzi.f32.f32 %f1111, %f1112;
+ add.f32 %f1110, %f1111, %f1111;
+ mov.f32 %f1109, 0f40800000;
+ sub.f32 %f1108, %f1109, %f1110;
+ abs.f32 %f1107, %f1108;
+ setp.lt.f32 %p25, %f39, 0f00000000;
+ setp.eq.f32 %p26, %f1107, 0f3F800000;
+ and.pred %p1, %p25, %p26;
+ mov.b32 %r139, %f1133;
+ xor.b32 %r140, %r139, -2147483648;
+ mov.b32 %f489, %r140;
+ selp.f32 %f1135, %f489, %f1133, %p1;
+ setp.eq.f32 %p27, %f39, 0f00000000;
+ @%p27 bra BB0_12;
+ bra.uni BB0_10;
+
+BB0_12:
+ add.f32 %f492, %f39, %f39;
+ selp.f32 %f1135, %f492, 0f00000000, %p26;
+ bra.uni BB0_13;
+
+BB0_10:
+ setp.geu.f32 %p28, %f39, 0f00000000;
+ @%p28 bra BB0_13;
+
+ mov.f32 %f1113, 0f40800000;
+ cvt.rzi.f32.f32 %f491, %f1113;
+ setp.neu.f32 %p29, %f491, 0f40800000;
+ selp.f32 %f1135, 0f7FFFFFFF, %f1135, %p29;
+
+BB0_13:
+ add.f32 %f493, %f41, 0f40800000;
+ mov.b32 %r141, %f493;
+ setp.lt.s32 %p31, %r141, 2139095040;
+ @%p31 bra BB0_18;
+
+ setp.gtu.f32 %p32, %f41, 0f7F800000;
+ @%p32 bra BB0_17;
+ bra.uni BB0_15;
+
+BB0_17:
+ add.f32 %f1135, %f39, 0f40800000;
+ bra.uni BB0_18;
+
+BB0_15:
+ setp.neu.f32 %p33, %f41, 0f7F800000;
+ @%p33 bra BB0_18;
+
+ selp.f32 %f1135, 0fFF800000, 0f7F800000, %p1;
+
+BB0_18:
+ mov.u32 %r379, 1;
+ mov.u64 %rd309, lightMeshBuffer;
+ cvta.global.u64 %rd308, %rd309;
+ mov.f32 %f494, 0f3F800000;
+ sub.f32 %f495, %f494, %f1135;
+ setp.eq.f32 %p34, %f39, 0f3F800000;
+ selp.f32 %f496, 0f00000000, %f495, %p34;
+ cvt.sat.f32.f32 %f497, %f496;
+ mul.f32 %f498, %f38, %f497;
+ mad.lo.s32 %r144, %r383, 3, 1;
+ cvt.s64.s32 %rd51, %r144;
+ // inline asm
+ call (%rd49), _rt_buffer_get_64, (%rd308, %r379, %r114, %rd51, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f499, [%rd49];
+ mul.f32 %f500, %f35, %f499;
+ ld.f32 %f501, [%rd49+4];
+ mul.f32 %f502, %f36, %f501;
+ neg.f32 %f503, %f502;
+ sub.f32 %f504, %f503, %f500;
+ ld.f32 %f505, [%rd49+8];
+ mul.f32 %f506, %f37, %f505;
+ sub.f32 %f507, %f504, %f506;
+ cvt.sat.f32.f32 %f508, %f507;
+ mul.f32 %f53, %f498, %f508;
+ mul.f32 %f509, %f1115, %f36;
+ fma.rn.f32 %f510, %f1114, %f35, %f509;
+ fma.rn.f32 %f54, %f1116, %f37, %f510;
+ setp.leu.f32 %p35, %f53, 0f3727C5AC;
+ @%p35 bra BB0_20;
+
+ mov.u32 %r381, 1;
+ mov.u64 %rd311, lightMeshBuffer;
+ cvta.global.u64 %rd310, %rd311;
+ cvt.sat.f32.f32 %f519, %f54;
+ add.u64 %rd56, %SP, 12;
+ cvta.to.local.u64 %rd63, %rd56;
+ max.f32 %f517, %f524, %f376;
+ sub.f32 %f518, %f34, %f517;
+ mov.u32 %r150, 1065353216;
+ st.local.u32 [%rd63], %r150;
+ ld.global.u32 %r145, [root];
+ // inline asm
+ call _rt_trace_64, (%r145, %f10, %f11, %f12, %f35, %f36, %f37, %r381, %f517, %f518, %rd56, %r99);
+ // inline asm
+ mad.lo.s32 %r151, %r383, 3, 2;
+ cvt.s64.s32 %rd59, %r151;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd310, %r381, %r114, %rd59, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f526, [%rd57];
+ ld.local.f32 %f527, [%rd63];
+ mul.f32 %f528, %f527, %f526;
+ ld.f32 %f529, [%rd57+4];
+ mul.f32 %f530, %f527, %f529;
+ ld.f32 %f531, [%rd57+8];
+ mul.f32 %f532, %f527, %f531;
+ mul.f32 %f533, %f53, %f528;
+ mul.f32 %f534, %f53, %f530;
+ mul.f32 %f535, %f53, %f532;
+ fma.rn.f32 %f21, %f519, %f533, %f21;
+ fma.rn.f32 %f20, %f519, %f534, %f20;
+ fma.rn.f32 %f19, %f519, %f535, %f19;
+ fma.rn.f32 %f27, %f35, %f533, %f27;
+ fma.rn.f32 %f26, %f35, %f534, %f26;
+ fma.rn.f32 %f25, %f35, %f535, %f25;
+ fma.rn.f32 %f30, %f36, %f533, %f30;
+ fma.rn.f32 %f29, %f36, %f534, %f29;
+ fma.rn.f32 %f28, %f36, %f535, %f28;
+ fma.rn.f32 %f33, %f37, %f533, %f33;
+ fma.rn.f32 %f32, %f37, %f534, %f32;
+ fma.rn.f32 %f31, %f37, %f535, %f31;
+ add.f32 %f24, %f24, %f533;
+ add.f32 %f23, %f23, %f534;
+ add.f32 %f22, %f22, %f535;
+ add.f32 %f18, %f18, %f527;
+
+BB0_20:
+ ld.global.u32 %r152, [lightMeshBufferSize];
+ add.s32 %r383, %r383, 1;
+ setp.lt.u32 %p37, %r383, %r152;
+ @%p37 bra BB0_6;
+ bra.uni BB0_21;
+
+BB0_4:
+ mov.f32 %f19, %f18;
+ mov.f32 %f20, %f18;
+ mov.f32 %f21, %f18;
+ mov.f32 %f22, %f18;
+ mov.f32 %f23, %f18;
+ mov.f32 %f24, %f18;
+ mov.f32 %f25, %f18;
+ mov.f32 %f26, %f18;
+ mov.f32 %f27, %f18;
+ mov.f32 %f28, %f18;
+ mov.f32 %f29, %f18;
+ mov.f32 %f30, %f18;
+ mov.f32 %f31, %f18;
+ mov.f32 %f32, %f18;
+ mov.f32 %f33, %f18;
+
+BB0_21:
+ mov.pred %p147, %p13;
+
+BB0_22:
+ cvt.rn.f32.s32 %f536, %r383;
+ mov.f32 %f537, 0f3F800000;
+ max.f32 %f538, %f536, %f537;
+ rcp.rn.f32 %f539, %f538;
+ mul.f32 %f1237, %f21, %f539;
+ mul.f32 %f1238, %f20, %f539;
+ mul.f32 %f1239, %f19, %f539;
+ div.rn.f32 %f1240, %f18, %f538;
+ mul.f32 %f1234, %f24, %f539;
+ mul.f32 %f1235, %f23, %f539;
+ mul.f32 %f1236, %f22, %f539;
+ mul.f32 %f1231, %f27, %f539;
+ mul.f32 %f1232, %f26, %f539;
+ mul.f32 %f1233, %f25, %f539;
+ mul.f32 %f1228, %f30, %f539;
+ mul.f32 %f1229, %f29, %f539;
+ mul.f32 %f1230, %f28, %f539;
+ mul.f32 %f1225, %f33, %f539;
+ mul.f32 %f1226, %f32, %f539;
+ mul.f32 %f1227, %f31, %f539;
+ @!%p147 bra BB0_75;
+ bra.uni BB0_23;
+
+BB0_23:
+ mov.f32 %f554, 0f00000000;
+ setp.lt.s32 %p38, %r1, 1;
+ mov.f32 %f1183, %f554;
+ mov.f32 %f1184, %f554;
+ mov.f32 %f1185, %f554;
+ mov.f32 %f1186, %f554;
+ mov.f32 %f1187, %f554;
+ mov.f32 %f1188, %f554;
+ mov.f32 %f1189, %f554;
+ mov.f32 %f1190, %f554;
+ mov.f32 %f1191, %f554;
+ mov.f32 %f1192, %f554;
+ mov.f32 %f1193, %f554;
+ mov.f32 %f1194, %f554;
+ mov.f32 %f1195, %f554;
+ mov.f32 %f1196, %f554;
+ mov.f32 %f1197, %f554;
+ @%p38 bra BB0_74;
+
+ mad.lo.s32 %r387, %r126, 1664525, 1013904223;
+ cvt.rn.f32.s32 %f570, %r2;
+ rcp.rn.f32 %f119, %f570;
+ add.u64 %rd65, %SP, 16;
+ cvta.to.local.u64 %rd2, %rd65;
+ mul.f32 %f120, %f10, 0f3456BF95;
+ mul.f32 %f121, %f11, 0f3456BF95;
+ mul.f32 %f122, %f12, 0f3456BF95;
+ add.u64 %rd66, %SP, 0;
+ cvta.to.local.u64 %rd3, %rd66;
+ mov.f32 %f1183, 0f00000000;
+ mov.u32 %r153, 0;
+ abs.f32 %f571, %f121;
+ abs.f32 %f572, %f120;
+ max.f32 %f573, %f572, %f571;
+ abs.f32 %f574, %f122;
+ max.f32 %f575, %f573, %f574;
+ mov.u32 %r384, %r153;
+ mov.f32 %f1184, %f1183;
+ mov.f32 %f1185, %f1183;
+ mov.f32 %f1186, %f1183;
+ mov.f32 %f1187, %f1183;
+ mov.f32 %f1188, %f1183;
+ mov.f32 %f1189, %f1183;
+ mov.f32 %f1190, %f1183;
+ mov.f32 %f1191, %f1183;
+ mov.f32 %f1192, %f1183;
+ mov.f32 %f1193, %f1183;
+ mov.f32 %f1194, %f1183;
+ mov.f32 %f1195, %f1183;
+ mov.f32 %f1196, %f1183;
+ mov.f32 %f1197, %f1183;
+
+BB0_25:
+ cvt.rn.f32.s32 %f138, %r384;
+ max.f32 %f139, %f575, %f376;
+ mov.u32 %r386, %r153;
+
+BB0_26:
+ mad.lo.s32 %r155, %r387, 1664525, 1013904223;
+ and.b32 %r156, %r155, 16777215;
+ cvt.rn.f32.u32 %f577, %r156;
+ fma.rn.f32 %f578, %f577, 0f33800000, %f138;
+ mul.f32 %f579, %f119, %f578;
+ mad.lo.s32 %r387, %r155, 1664525, 1013904223;
+ and.b32 %r157, %r387, 16777215;
+ cvt.rn.f32.u32 %f580, %r157;
+ cvt.rn.f32.s32 %f581, %r386;
+ fma.rn.f32 %f582, %f580, 0f33800000, %f581;
+ mul.f32 %f583, %f119, %f582;
+ fma.rn.f32 %f155, %f579, 0fC0000000, 0f3F800000;
+ mul.f32 %f584, %f155, %f155;
+ sub.f32 %f586, %f537, %f584;
+ mov.f32 %f587, 0f00000000;
+ max.f32 %f588, %f587, %f586;
+ sqrt.rn.f32 %f156, %f588;
+ mul.f32 %f1204, %f583, 0f40C90FDB;
+ abs.f32 %f158, %f1204;
+ setp.neu.f32 %p39, %f158, 0f7F800000;
+ mov.f32 %f1198, %f1204;
+ @%p39 bra BB0_28;
+
+ mul.rn.f32 %f1198, %f1204, %f587;
+
+BB0_28:
+ mul.f32 %f590, %f1198, 0f3F22F983;
+ cvt.rni.s32.f32 %r397, %f590;
+ cvt.rn.f32.s32 %f591, %r397;
+ neg.f32 %f592, %f591;
+ mov.f32 %f593, 0f3FC90FDA;
+ fma.rn.f32 %f594, %f592, %f593, %f1198;
+ mov.f32 %f595, 0f33A22168;
+ fma.rn.f32 %f596, %f592, %f595, %f594;
+ mov.f32 %f597, 0f27C234C5;
+ fma.rn.f32 %f1199, %f592, %f597, %f596;
+ abs.f32 %f598, %f1198;
+ setp.leu.f32 %p40, %f598, 0f47CE4780;
+ @%p40 bra BB0_39;
+
+ mov.b32 %r16, %f1198;
+ shr.u32 %r17, %r16, 23;
+ shl.b32 %r160, %r16, 8;
+ or.b32 %r18, %r160, -2147483648;
+ mov.u32 %r388, 0;
+ mov.u64 %rd313, 0;
+ mov.u64 %rd312, %rd2;
+ mov.u32 %r389, %r388;
+
+BB0_30:
+ .pragma "nounroll";
+ shl.b64 %rd68, %rd313, 2;
+ mov.u64 %rd69, __cudart_i2opi_f;
+ add.s64 %rd70, %rd69, %rd68;
+ ld.const.u32 %r163, [%rd70];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r161, %r163, %r18, %r389;
+ madc.hi.u32 %r389, %r163, %r18, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd312], %r161;
+ add.s32 %r388, %r388, 1;
+ cvt.s64.s32 %rd313, %r388;
+ mul.wide.s32 %rd71, %r388, 4;
+ add.s64 %rd312, %rd2, %rd71;
+ setp.ne.s32 %p41, %r388, 6;
+ @%p41 bra BB0_30;
+
+ and.b32 %r166, %r17, 255;
+ add.s32 %r167, %r166, -128;
+ shr.u32 %r168, %r167, 5;
+ and.b32 %r23, %r16, -2147483648;
+ st.local.u32 [%rd2+24], %r389;
+ mov.u32 %r169, 6;
+ sub.s32 %r170, %r169, %r168;
+ mul.wide.s32 %rd72, %r170, 4;
+ add.s64 %rd9, %rd2, %rd72;
+ ld.local.u32 %r390, [%rd9];
+ ld.local.u32 %r391, [%rd9+-4];
+ and.b32 %r26, %r17, 31;
+ setp.eq.s32 %p42, %r26, 0;
+ @%p42 bra BB0_33;
+
+ mov.u32 %r171, 32;
+ sub.s32 %r172, %r171, %r26;
+ shr.u32 %r173, %r391, %r172;
+ shl.b32 %r174, %r390, %r26;
+ add.s32 %r390, %r173, %r174;
+ ld.local.u32 %r175, [%rd9+-8];
+ shr.u32 %r176, %r175, %r172;
+ shl.b32 %r177, %r391, %r26;
+ add.s32 %r391, %r176, %r177;
+
+BB0_33:
+ shr.u32 %r178, %r391, 30;
+ shl.b32 %r179, %r390, 2;
+ add.s32 %r392, %r178, %r179;
+ shl.b32 %r32, %r391, 2;
+ shr.u32 %r180, %r392, 31;
+ shr.u32 %r181, %r390, 30;
+ add.s32 %r33, %r180, %r181;
+ setp.eq.s32 %p43, %r180, 0;
+ @%p43 bra BB0_34;
+ bra.uni BB0_35;
+
+BB0_34:
+ mov.u32 %r393, %r23;
+ mov.u32 %r394, %r32;
+ bra.uni BB0_36;
+
+BB0_35:
+ not.b32 %r182, %r392;
+ neg.s32 %r394, %r32;
+ setp.eq.s32 %p44, %r32, 0;
+ selp.u32 %r183, 1, 0, %p44;
+ add.s32 %r392, %r183, %r182;
+ xor.b32 %r393, %r23, -2147483648;
+
+BB0_36:
+ clz.b32 %r396, %r392;
+ setp.eq.s32 %p45, %r396, 0;
+ shl.b32 %r184, %r392, %r396;
+ mov.u32 %r185, 32;
+ sub.s32 %r186, %r185, %r396;
+ shr.u32 %r187, %r394, %r186;
+ add.s32 %r188, %r187, %r184;
+ selp.b32 %r41, %r392, %r188, %p45;
+ mov.u32 %r189, -921707870;
+ mul.hi.u32 %r395, %r41, %r189;
+ setp.eq.s32 %p46, %r23, 0;
+ neg.s32 %r190, %r33;
+ selp.b32 %r397, %r33, %r190, %p46;
+ setp.lt.s32 %p47, %r395, 1;
+ @%p47 bra BB0_38;
+
+ mul.lo.s32 %r191, %r41, -921707870;
+ shr.u32 %r192, %r191, 31;
+ shl.b32 %r193, %r395, 1;
+ add.s32 %r395, %r192, %r193;
+ add.s32 %r396, %r396, 1;
+
+BB0_38:
+ mov.u32 %r194, 126;
+ sub.s32 %r195, %r194, %r396;
+ shl.b32 %r196, %r195, 23;
+ add.s32 %r197, %r395, 1;
+ shr.u32 %r198, %r197, 7;
+ add.s32 %r199, %r198, 1;
+ shr.u32 %r200, %r199, 1;
+ add.s32 %r201, %r200, %r196;
+ or.b32 %r202, %r201, %r393;
+ mov.b32 %f1199, %r202;
+
+BB0_39:
+ mul.rn.f32 %f164, %f1199, %f1199;
+ add.s32 %r49, %r397, 1;
+ and.b32 %r50, %r49, 1;
+ setp.eq.s32 %p48, %r50, 0;
+ @%p48 bra BB0_41;
+ bra.uni BB0_40;
+
+BB0_41:
+ mov.f32 %f601, 0f3C08839E;
+ mov.f32 %f602, 0fB94CA1F9;
+ fma.rn.f32 %f1200, %f602, %f164, %f601;
+ bra.uni BB0_42;
+
+BB0_40:
+ mov.f32 %f599, 0fBAB6061A;
+ mov.f32 %f600, 0f37CCF5CE;
+ fma.rn.f32 %f1200, %f600, %f164, %f599;
+
+BB0_42:
+ @%p48 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mov.f32 %f606, 0fBE2AAAA3;
+ fma.rn.f32 %f607, %f1200, %f164, %f606;
+ fma.rn.f32 %f1201, %f607, %f164, %f587;
+ bra.uni BB0_45;
+
+BB0_43:
+ mov.f32 %f603, 0f3D2AAAA5;
+ fma.rn.f32 %f604, %f1200, %f164, %f603;
+ mov.f32 %f605, 0fBF000000;
+ fma.rn.f32 %f1201, %f604, %f164, %f605;
+
+BB0_45:
+ fma.rn.f32 %f1202, %f1201, %f1199, %f1199;
+ @%p48 bra BB0_47;
+
+ fma.rn.f32 %f1202, %f1201, %f164, %f537;
+
+BB0_47:
+ and.b32 %r203, %r49, 2;
+ setp.eq.s32 %p51, %r203, 0;
+ @%p51 bra BB0_49;
+
+ mov.f32 %f611, 0fBF800000;
+ fma.rn.f32 %f1202, %f1202, %f611, %f587;
+
+BB0_49:
+ @%p39 bra BB0_51;
+
+ mul.rn.f32 %f1204, %f1204, %f587;
+
+BB0_51:
+ mul.f32 %f613, %f1204, 0f3F22F983;
+ cvt.rni.s32.f32 %r407, %f613;
+ cvt.rn.f32.s32 %f614, %r407;
+ neg.f32 %f615, %f614;
+ fma.rn.f32 %f617, %f615, %f593, %f1204;
+ fma.rn.f32 %f619, %f615, %f595, %f617;
+ fma.rn.f32 %f1205, %f615, %f597, %f619;
+ abs.f32 %f621, %f1204;
+ setp.leu.f32 %p53, %f621, 0f47CE4780;
+ @%p53 bra BB0_62;
+
+ mov.b32 %r52, %f1204;
+ shr.u32 %r53, %r52, 23;
+ shl.b32 %r206, %r52, 8;
+ or.b32 %r54, %r206, -2147483648;
+ mov.u32 %r398, 0;
+ mov.u64 %rd314, %rd2;
+ mov.u64 %rd315, %rd26;
+ mov.u32 %r399, %r398;
+
+BB0_53:
+ .pragma "nounroll";
+ shl.b64 %rd74, %rd315, 2;
+ mov.u64 %rd75, __cudart_i2opi_f;
+ add.s64 %rd76, %rd75, %rd74;
+ ld.const.u32 %r209, [%rd76];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r207, %r209, %r54, %r399;
+ madc.hi.u32 %r399, %r209, %r54, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd314], %r207;
+ add.s32 %r398, %r398, 1;
+ cvt.s64.s32 %rd315, %r398;
+ mul.wide.s32 %rd77, %r398, 4;
+ add.s64 %rd314, %rd2, %rd77;
+ setp.ne.s32 %p54, %r398, 6;
+ @%p54 bra BB0_53;
+
+ and.b32 %r212, %r53, 255;
+ add.s32 %r213, %r212, -128;
+ shr.u32 %r214, %r213, 5;
+ and.b32 %r59, %r52, -2147483648;
+ st.local.u32 [%rd2+24], %r399;
+ mov.u32 %r215, 6;
+ sub.s32 %r216, %r215, %r214;
+ mul.wide.s32 %rd78, %r216, 4;
+ add.s64 %rd15, %rd2, %rd78;
+ ld.local.u32 %r400, [%rd15];
+ ld.local.u32 %r401, [%rd15+-4];
+ and.b32 %r62, %r53, 31;
+ setp.eq.s32 %p55, %r62, 0;
+ @%p55 bra BB0_56;
+
+ mov.u32 %r217, 32;
+ sub.s32 %r218, %r217, %r62;
+ shr.u32 %r219, %r401, %r218;
+ shl.b32 %r220, %r400, %r62;
+ add.s32 %r400, %r219, %r220;
+ ld.local.u32 %r221, [%rd15+-8];
+ shr.u32 %r222, %r221, %r218;
+ shl.b32 %r223, %r401, %r62;
+ add.s32 %r401, %r222, %r223;
+
+BB0_56:
+ shr.u32 %r224, %r401, 30;
+ shl.b32 %r225, %r400, 2;
+ add.s32 %r402, %r224, %r225;
+ shl.b32 %r68, %r401, 2;
+ shr.u32 %r226, %r402, 31;
+ shr.u32 %r227, %r400, 30;
+ add.s32 %r69, %r226, %r227;
+ setp.eq.s32 %p56, %r226, 0;
+ @%p56 bra BB0_57;
+ bra.uni BB0_58;
+
+BB0_57:
+ mov.u32 %r403, %r59;
+ mov.u32 %r404, %r68;
+ bra.uni BB0_59;
+
+BB0_58:
+ not.b32 %r228, %r402;
+ neg.s32 %r404, %r68;
+ setp.eq.s32 %p57, %r68, 0;
+ selp.u32 %r229, 1, 0, %p57;
+ add.s32 %r402, %r229, %r228;
+ xor.b32 %r403, %r59, -2147483648;
+
+BB0_59:
+ clz.b32 %r406, %r402;
+ setp.eq.s32 %p58, %r406, 0;
+ shl.b32 %r230, %r402, %r406;
+ mov.u32 %r231, 32;
+ sub.s32 %r232, %r231, %r406;
+ shr.u32 %r233, %r404, %r232;
+ add.s32 %r234, %r233, %r230;
+ selp.b32 %r77, %r402, %r234, %p58;
+ mov.u32 %r235, -921707870;
+ mul.hi.u32 %r405, %r77, %r235;
+ setp.eq.s32 %p59, %r59, 0;
+ neg.s32 %r236, %r69;
+ selp.b32 %r407, %r69, %r236, %p59;
+ setp.lt.s32 %p60, %r405, 1;
+ @%p60 bra BB0_61;
+
+ mul.lo.s32 %r237, %r77, -921707870;
+ shr.u32 %r238, %r237, 31;
+ shl.b32 %r239, %r405, 1;
+ add.s32 %r405, %r238, %r239;
+ add.s32 %r406, %r406, 1;
+
+BB0_61:
+ mov.u32 %r240, 126;
+ sub.s32 %r241, %r240, %r406;
+ shl.b32 %r242, %r241, 23;
+ add.s32 %r243, %r405, 1;
+ shr.u32 %r244, %r243, 7;
+ add.s32 %r245, %r244, 1;
+ shr.u32 %r246, %r245, 1;
+ add.s32 %r247, %r246, %r242;
+ or.b32 %r248, %r247, %r403;
+ mov.b32 %f1205, %r248;
+
+BB0_62:
+ mul.rn.f32 %f181, %f1205, %f1205;
+ and.b32 %r85, %r407, 1;
+ setp.eq.s32 %p61, %r85, 0;
+ @%p61 bra BB0_64;
+ bra.uni BB0_63;
+
+BB0_64:
+ mov.f32 %f624, 0f3C08839E;
+ mov.f32 %f625, 0fB94CA1F9;
+ fma.rn.f32 %f1206, %f625, %f181, %f624;
+ bra.uni BB0_65;
+
+BB0_63:
+ mov.f32 %f622, 0fBAB6061A;
+ mov.f32 %f623, 0f37CCF5CE;
+ fma.rn.f32 %f1206, %f623, %f181, %f622;
+
+BB0_65:
+ @%p61 bra BB0_67;
+ bra.uni BB0_66;
+
+BB0_67:
+ mov.f32 %f629, 0fBE2AAAA3;
+ fma.rn.f32 %f630, %f1206, %f181, %f629;
+ fma.rn.f32 %f1207, %f630, %f181, %f587;
+ bra.uni BB0_68;
+
+BB0_66:
+ mov.f32 %f626, 0f3D2AAAA5;
+ fma.rn.f32 %f627, %f1206, %f181, %f626;
+ mov.f32 %f628, 0fBF000000;
+ fma.rn.f32 %f1207, %f627, %f181, %f628;
+
+BB0_68:
+ fma.rn.f32 %f1208, %f1207, %f1205, %f1205;
+ @%p61 bra BB0_70;
+
+ fma.rn.f32 %f1208, %f1207, %f181, %f537;
+
+BB0_70:
+ and.b32 %r249, %r407, 2;
+ setp.eq.s32 %p64, %r249, 0;
+ @%p64 bra BB0_72;
+
+ mov.f32 %f634, 0fBF800000;
+ fma.rn.f32 %f1208, %f1208, %f634, %f587;
+
+BB0_72:
+ mul.f32 %f638, %f156, %f1202;
+ mov.u32 %r251, 0;
+ st.local.u32 [%rd3+8], %r251;
+ st.local.u32 [%rd3+4], %r251;
+ st.local.u32 [%rd3], %r251;
+ ld.global.u32 %r250, [root];
+ mul.f32 %f639, %f156, %f1208;
+ mov.f32 %f642, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r250, %f10, %f11, %f12, %f638, %f639, %f155, %r251, %f139, %f642, %rd66, %r114);
+ // inline asm
+ ld.local.f32 %f643, [%rd3];
+ max.f32 %f645, %f643, %f587;
+ ld.local.f32 %f646, [%rd3+4];
+ max.f32 %f647, %f646, %f587;
+ ld.local.f32 %f648, [%rd3+8];
+ max.f32 %f649, %f648, %f587;
+ fma.rn.f32 %f1191, %f638, %f645, %f1191;
+ fma.rn.f32 %f1190, %f638, %f647, %f1190;
+ fma.rn.f32 %f1189, %f638, %f649, %f1189;
+ fma.rn.f32 %f1194, %f639, %f645, %f1194;
+ fma.rn.f32 %f1193, %f639, %f647, %f1193;
+ fma.rn.f32 %f1192, %f639, %f649, %f1192;
+ fma.rn.f32 %f1197, %f155, %f645, %f1197;
+ fma.rn.f32 %f1196, %f155, %f647, %f1196;
+ fma.rn.f32 %f1195, %f155, %f649, %f1195;
+ add.f32 %f1188, %f1188, %f645;
+ add.f32 %f1187, %f1187, %f647;
+ add.f32 %f1186, %f1186, %f649;
+ mul.f32 %f650, %f1115, %f639;
+ fma.rn.f32 %f651, %f1114, %f638, %f650;
+ fma.rn.f32 %f652, %f1116, %f155, %f651;
+ cvt.sat.f32.f32 %f653, %f652;
+ fma.rn.f32 %f1185, %f645, %f653, %f1185;
+ fma.rn.f32 %f1184, %f647, %f653, %f1184;
+ fma.rn.f32 %f1183, %f649, %f653, %f1183;
+ add.s32 %r386, %r386, 1;
+ setp.lt.s32 %p65, %r386, %r2;
+ @%p65 bra BB0_26;
+
+ add.s32 %r384, %r384, 1;
+ setp.lt.s32 %p66, %r384, %r2;
+ @%p66 bra BB0_25;
+
+BB0_74:
+ mul.lo.s32 %r253, %r2, %r2;
+ cvt.rn.f32.s32 %f654, %r253;
+ rcp.rn.f32 %f655, %f654;
+ mul.f32 %f656, %f1185, %f655;
+ mul.f32 %f657, %f1184, %f655;
+ mul.f32 %f658, %f1183, %f655;
+ div.rn.f32 %f1240, %f554, %f654;
+ mul.f32 %f1234, %f1188, %f655;
+ mul.f32 %f1235, %f1187, %f655;
+ mul.f32 %f1236, %f1186, %f655;
+ mul.f32 %f1231, %f1191, %f655;
+ mul.f32 %f1232, %f1190, %f655;
+ mul.f32 %f1233, %f1189, %f655;
+ mul.f32 %f1228, %f1194, %f655;
+ mul.f32 %f1229, %f1193, %f655;
+ mul.f32 %f1230, %f1192, %f655;
+ mul.f32 %f1225, %f1197, %f655;
+ mul.f32 %f1226, %f1196, %f655;
+ mul.f32 %f1227, %f1195, %f655;
+ fma.rn.f32 %f1237, %f1185, %f655, %f656;
+ fma.rn.f32 %f1238, %f1184, %f655, %f657;
+ fma.rn.f32 %f1239, %f1183, %f655, %f658;
+
+BB0_75:
+ ld.global.u32 %r409, [imageEnabled];
+ and.b32 %r254, %r409, 8;
+ setp.eq.s32 %p67, %r254, 0;
+ @%p67 bra BB0_88;
+
+ cvt.u64.u32 %rd82, %r4;
+ cvt.u64.u32 %rd83, %r5;
+ mov.u64 %rd86, image_Mask;
+ cvta.global.u64 %rd81, %rd86;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r98, %r98, %rd82, %rd83, %rd26, %rd26);
+ // inline asm
+ mov.f32 %f662, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f663, %f662;
+ fma.rn.f32 %f664, %f663, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f255, %f664;
+ abs.f32 %f256, %f1240;
+ setp.lt.f32 %p68, %f256, 0f00800000;
+ mul.f32 %f665, %f256, 0f4B800000;
+ selp.f32 %f666, 0fC3170000, 0fC2FE0000, %p68;
+ selp.f32 %f667, %f665, %f256, %p68;
+ mov.b32 %r257, %f667;
+ and.b32 %r258, %r257, 8388607;
+ or.b32 %r259, %r258, 1065353216;
+ mov.b32 %f668, %r259;
+ shr.u32 %r260, %r257, 23;
+ cvt.rn.f32.u32 %f669, %r260;
+ add.f32 %f670, %f666, %f669;
+ setp.gt.f32 %p69, %f668, 0f3FB504F3;
+ mul.f32 %f671, %f668, 0f3F000000;
+ add.f32 %f672, %f670, 0f3F800000;
+ selp.f32 %f673, %f671, %f668, %p69;
+ selp.f32 %f674, %f672, %f670, %p69;
+ add.f32 %f675, %f673, 0fBF800000;
+ add.f32 %f661, %f673, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f660,%f661;
+ // inline asm
+ add.f32 %f676, %f675, %f675;
+ mul.f32 %f677, %f660, %f676;
+ mul.f32 %f678, %f677, %f677;
+ mov.f32 %f679, 0f3C4CAF63;
+ mov.f32 %f680, 0f3B18F0FE;
+ fma.rn.f32 %f681, %f680, %f678, %f679;
+ mov.f32 %f682, 0f3DAAAABD;
+ fma.rn.f32 %f683, %f681, %f678, %f682;
+ mul.rn.f32 %f684, %f683, %f678;
+ mul.rn.f32 %f685, %f684, %f677;
+ sub.f32 %f686, %f675, %f677;
+ neg.f32 %f687, %f677;
+ add.f32 %f688, %f686, %f686;
+ fma.rn.f32 %f689, %f687, %f675, %f688;
+ mul.rn.f32 %f690, %f660, %f689;
+ add.f32 %f691, %f685, %f677;
+ sub.f32 %f692, %f677, %f691;
+ add.f32 %f693, %f685, %f692;
+ add.f32 %f694, %f690, %f693;
+ add.f32 %f695, %f691, %f694;
+ sub.f32 %f696, %f691, %f695;
+ add.f32 %f697, %f694, %f696;
+ mov.f32 %f698, 0f3F317200;
+ mul.rn.f32 %f699, %f674, %f698;
+ mov.f32 %f700, 0f35BFBE8E;
+ mul.rn.f32 %f701, %f674, %f700;
+ add.f32 %f702, %f699, %f695;
+ sub.f32 %f703, %f699, %f702;
+ add.f32 %f704, %f695, %f703;
+ add.f32 %f705, %f697, %f704;
+ add.f32 %f706, %f701, %f705;
+ add.f32 %f707, %f702, %f706;
+ sub.f32 %f708, %f702, %f707;
+ add.f32 %f709, %f706, %f708;
+ mov.f32 %f710, 0f3EE8BA2E;
+ mul.rn.f32 %f711, %f710, %f707;
+ neg.f32 %f712, %f711;
+ fma.rn.f32 %f713, %f710, %f707, %f712;
+ fma.rn.f32 %f714, %f710, %f709, %f713;
+ mov.f32 %f715, 0f00000000;
+ fma.rn.f32 %f716, %f715, %f707, %f714;
+ add.rn.f32 %f717, %f711, %f716;
+ neg.f32 %f718, %f717;
+ add.rn.f32 %f719, %f711, %f718;
+ add.rn.f32 %f720, %f719, %f716;
+ mov.b32 %r261, %f717;
+ setp.eq.s32 %p70, %r261, 1118925336;
+ add.s32 %r262, %r261, -1;
+ mov.b32 %f721, %r262;
+ add.f32 %f722, %f720, 0f37000000;
+ selp.f32 %f723, %f721, %f717, %p70;
+ selp.f32 %f257, %f722, %f720, %p70;
+ mul.f32 %f724, %f723, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f725, %f724;
+ mov.f32 %f726, 0fBF317200;
+ fma.rn.f32 %f727, %f725, %f726, %f723;
+ mov.f32 %f728, 0fB5BFBE8E;
+ fma.rn.f32 %f729, %f725, %f728, %f727;
+ mul.f32 %f730, %f729, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f731, %f730;
+ add.f32 %f732, %f725, 0f00000000;
+ ex2.approx.f32 %f733, %f732;
+ mul.f32 %f734, %f731, %f733;
+ setp.lt.f32 %p71, %f723, 0fC2D20000;
+ selp.f32 %f735, 0f00000000, %f734, %p71;
+ setp.gt.f32 %p72, %f723, 0f42D20000;
+ selp.f32 %f1241, 0f7F800000, %f735, %p72;
+ setp.eq.f32 %p73, %f1241, 0f7F800000;
+ @%p73 bra BB0_78;
+
+ fma.rn.f32 %f1241, %f1241, %f257, %f1241;
+
+BB0_78:
+ setp.lt.f32 %p74, %f1240, 0f00000000;
+ setp.eq.f32 %p75, %f255, 0f3F800000;
+ and.pred %p3, %p74, %p75;
+ mov.b32 %r263, %f1241;
+ xor.b32 %r264, %r263, -2147483648;
+ mov.b32 %f736, %r264;
+ selp.f32 %f1243, %f736, %f1241, %p3;
+ setp.eq.f32 %p76, %f1240, 0f00000000;
+ @%p76 bra BB0_81;
+ bra.uni BB0_79;
+
+BB0_81:
+ add.f32 %f739, %f1240, %f1240;
+ selp.f32 %f1243, %f739, 0f00000000, %p75;
+ bra.uni BB0_82;
+
+BB0_146:
+ mov.u64 %rd227, image_HDR;
+ cvta.global.u64 %rd222, %rd227;
+ mov.u32 %r350, 8;
+ mov.u64 %rd226, 0;
+ // inline asm
+ call (%rd221), _rt_buffer_get_64, (%rd222, %r98, %r350, %rd19, %rd20, %rd226, %rd226);
+ // inline asm
+ mov.f32 %f1078, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f1078;}
+
+ // inline asm
+ mov.u16 %rs105, 0;
+ st.v4.u16 [%rd221], {%rs104, %rs104, %rs104, %rs105};
+
+BB0_147:
+ ld.global.u32 %r351, [additive];
+ setp.eq.s32 %p143, %r351, 0;
+ @%p143 bra BB0_149;
+
+ mov.u64 %rd240, image_RNM0;
+ cvta.global.u64 %rd229, %rd240;
+ mov.u32 %r355, 8;
+ mov.u64 %rd239, 0;
+ // inline asm
+ call (%rd228), _rt_buffer_get_64, (%rd229, %r98, %r355, %rd19, %rd20, %rd239, %rd239);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd228];
+ // inline asm
+ { cvt.f32.f16 %f1079, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1080, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1081, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd229, %r98, %r355, %rd19, %rd20, %rd239, %rd239);
+ // inline asm
+ add.f32 %f1082, %f1079, 0f00000000;
+ add.f32 %f1083, %f1080, 0f00000000;
+ add.f32 %f1084, %f1081, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f1084;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f1083;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f1082;}
+
+ // inline asm
+ mov.u16 %rs116, 0;
+ st.v4.u16 [%rd234], {%rs109, %rs110, %rs111, %rs116};
+ bra.uni BB0_150;
+
+BB0_149:
+ mov.u64 %rd247, image_RNM0;
+ cvta.global.u64 %rd242, %rd247;
+ mov.u32 %r357, 8;
+ mov.u64 %rd246, 0;
+ // inline asm
+ call (%rd241), _rt_buffer_get_64, (%rd242, %r98, %r357, %rd19, %rd20, %rd246, %rd246);
+ // inline asm
+ mov.f32 %f1085, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f1085;}
+
+ // inline asm
+ mov.u16 %rs118, 0;
+ st.v4.u16 [%rd241], {%rs117, %rs117, %rs117, %rs118};
+
+BB0_150:
+ ld.global.u32 %r358, [additive];
+ setp.eq.s32 %p144, %r358, 0;
+ @%p144 bra BB0_152;
+
+ mov.u64 %rd260, image_RNM1;
+ cvta.global.u64 %rd249, %rd260;
+ mov.u32 %r362, 8;
+ mov.u64 %rd259, 0;
+ // inline asm
+ call (%rd248), _rt_buffer_get_64, (%rd249, %r98, %r362, %rd19, %rd20, %rd259, %rd259);
+ // inline asm
+ ld.v4.u16 {%rs125, %rs126, %rs127, %rs128}, [%rd248];
+ // inline asm
+ { cvt.f32.f16 %f1086, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1087, %rs126;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1088, %rs127;}
+
+ // inline asm
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd249, %r98, %r362, %rd19, %rd20, %rd259, %rd259);
+ // inline asm
+ add.f32 %f1089, %f1086, 0f00000000;
+ add.f32 %f1090, %f1087, 0f00000000;
+ add.f32 %f1091, %f1088, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs124, %f1091;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f1090;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f1089;}
+
+ // inline asm
+ mov.u16 %rs129, 0;
+ st.v4.u16 [%rd254], {%rs122, %rs123, %rs124, %rs129};
+ bra.uni BB0_153;
+
+BB0_152:
+ mov.u64 %rd267, image_RNM1;
+ cvta.global.u64 %rd262, %rd267;
+ mov.u32 %r364, 8;
+ mov.u64 %rd266, 0;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r98, %r364, %rd19, %rd20, %rd266, %rd266);
+ // inline asm
+ mov.f32 %f1092, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f1092;}
+
+ // inline asm
+ mov.u16 %rs131, 0;
+ st.v4.u16 [%rd261], {%rs130, %rs130, %rs130, %rs131};
+
+BB0_153:
+ ld.global.u32 %r365, [additive];
+ setp.eq.s32 %p145, %r365, 0;
+ @%p145 bra BB0_155;
+
+ mov.u64 %rd280, image_RNM2;
+ cvta.global.u64 %rd269, %rd280;
+ mov.u32 %r369, 8;
+ mov.u64 %rd279, 0;
+ // inline asm
+ call (%rd268), _rt_buffer_get_64, (%rd269, %r98, %r369, %rd19, %rd20, %rd279, %rd279);
+ // inline asm
+ ld.v4.u16 {%rs138, %rs139, %rs140, %rs141}, [%rd268];
+ // inline asm
+ { cvt.f32.f16 %f1093, %rs138;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1094, %rs139;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1095, %rs140;}
+
+ // inline asm
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd269, %r98, %r369, %rd19, %rd20, %rd279, %rd279);
+ // inline asm
+ add.f32 %f1096, %f1093, 0f00000000;
+ add.f32 %f1097, %f1094, 0f00000000;
+ add.f32 %f1098, %f1095, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs137, %f1098;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs136, %f1097;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f1096;}
+
+ // inline asm
+ mov.u16 %rs142, 0;
+ st.v4.u16 [%rd274], {%rs135, %rs136, %rs137, %rs142};
+ bra.uni BB0_156;
+
+BB0_155:
+ mov.u64 %rd287, image_RNM2;
+ cvta.global.u64 %rd282, %rd287;
+ mov.u32 %r371, 8;
+ mov.u64 %rd286, 0;
+ // inline asm
+ call (%rd281), _rt_buffer_get_64, (%rd282, %r98, %r371, %rd19, %rd20, %rd286, %rd286);
+ // inline asm
+ mov.f32 %f1099, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f1099;}
+
+ // inline asm
+ mov.u16 %rs144, 0;
+ st.v4.u16 [%rd281], {%rs143, %rs143, %rs143, %rs144};
+
+BB0_156:
+ ld.global.u32 %r372, [additive];
+ setp.eq.s32 %p146, %r372, 0;
+ @%p146 bra BB0_158;
+
+ mov.u64 %rd300, image_RNM3;
+ cvta.global.u64 %rd289, %rd300;
+ mov.u32 %r376, 8;
+ mov.u64 %rd299, 0;
+ // inline asm
+ call (%rd288), _rt_buffer_get_64, (%rd289, %r98, %r376, %rd19, %rd20, %rd299, %rd299);
+ // inline asm
+ ld.v4.u16 {%rs151, %rs152, %rs153, %rs154}, [%rd288];
+ // inline asm
+ { cvt.f32.f16 %f1100, %rs151;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1101, %rs152;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1102, %rs153;}
+
+ // inline asm
+ // inline asm
+ call (%rd294), _rt_buffer_get_64, (%rd289, %r98, %r376, %rd19, %rd20, %rd299, %rd299);
+ // inline asm
+ add.f32 %f1103, %f1100, 0f00000000;
+ add.f32 %f1104, %f1101, 0f00000000;
+ add.f32 %f1105, %f1102, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f1105;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs149, %f1104;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs148, %f1103;}
+
+ // inline asm
+ mov.u16 %rs155, 0;
+ st.v4.u16 [%rd294], {%rs148, %rs149, %rs150, %rs155};
+ bra.uni BB0_159;
+
+BB0_158:
+ mov.u64 %rd307, image_RNM3;
+ cvta.global.u64 %rd302, %rd307;
+ mov.u32 %r378, 8;
+ mov.u64 %rd306, 0;
+ // inline asm
+ call (%rd301), _rt_buffer_get_64, (%rd302, %r98, %r378, %rd19, %rd20, %rd306, %rd306);
+ // inline asm
+ mov.f32 %f1106, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs156, %f1106;}
+
+ // inline asm
+ mov.u16 %rs157, 0;
+ st.v4.u16 [%rd301], {%rs156, %rs156, %rs156, %rs157};
+ bra.uni BB0_159;
+
+BB0_79:
+ setp.geu.f32 %p77, %f1240, 0f00000000;
+ @%p77 bra BB0_82;
+
+ cvt.rzi.f32.f32 %f738, %f710;
+ setp.neu.f32 %p78, %f738, 0f3EE8BA2E;
+ selp.f32 %f1243, 0f7FFFFFFF, %f1243, %p78;
+
+BB0_82:
+ add.f32 %f740, %f256, 0f3EE8BA2E;
+ mov.b32 %r265, %f740;
+ setp.lt.s32 %p80, %r265, 2139095040;
+ @%p80 bra BB0_87;
+
+ setp.gtu.f32 %p81, %f256, 0f7F800000;
+ @%p81 bra BB0_86;
+ bra.uni BB0_84;
+
+BB0_86:
+ add.f32 %f1243, %f1240, 0f3EE8BA2E;
+ bra.uni BB0_87;
+
+BB0_84:
+ setp.neu.f32 %p82, %f256, 0f7F800000;
+ @%p82 bra BB0_87;
+
+ selp.f32 %f1243, 0fFF800000, 0f7F800000, %p3;
+
+BB0_87:
+ mul.f32 %f741, %f1243, 0f437F0000;
+ setp.eq.f32 %p83, %f1240, 0f3F800000;
+ selp.f32 %f742, 0f437F0000, %f741, %p83;
+ cvt.rzi.u32.f32 %r266, %f742;
+ cvt.u16.u32 %rs14, %r266;
+ mov.u16 %rs15, 255;
+ st.v2.u8 [%rd80], {%rs14, %rs15};
+ ld.global.u32 %r409, [imageEnabled];
+
+BB0_88:
+ ld.global.f32 %f743, [lightColor];
+ mul.f32 %f268, %f1237, %f743;
+ ld.global.f32 %f744, [lightColor+4];
+ mul.f32 %f269, %f1238, %f744;
+ ld.global.f32 %f745, [lightColor+8];
+ mul.f32 %f270, %f1239, %f745;
+ and.b32 %r267, %r409, 1;
+ setp.eq.b32 %p84, %r267, 1;
+ @!%p84 bra BB0_123;
+ bra.uni BB0_89;
+
+BB0_89:
+ mov.f32 %f748, 0f3E666666;
+ cvt.rzi.f32.f32 %f749, %f748;
+ fma.rn.f32 %f750, %f749, 0fC0000000, 0f3EE66666;
+ abs.f32 %f271, %f750;
+ abs.f32 %f272, %f268;
+ setp.lt.f32 %p85, %f272, 0f00800000;
+ mul.f32 %f751, %f272, 0f4B800000;
+ selp.f32 %f752, 0fC3170000, 0fC2FE0000, %p85;
+ selp.f32 %f753, %f751, %f272, %p85;
+ mov.b32 %r268, %f753;
+ and.b32 %r269, %r268, 8388607;
+ or.b32 %r270, %r269, 1065353216;
+ mov.b32 %f754, %r270;
+ shr.u32 %r271, %r268, 23;
+ cvt.rn.f32.u32 %f755, %r271;
+ add.f32 %f756, %f752, %f755;
+ setp.gt.f32 %p86, %f754, 0f3FB504F3;
+ mul.f32 %f757, %f754, 0f3F000000;
+ add.f32 %f758, %f756, 0f3F800000;
+ selp.f32 %f759, %f757, %f754, %p86;
+ selp.f32 %f760, %f758, %f756, %p86;
+ add.f32 %f761, %f759, 0fBF800000;
+ add.f32 %f747, %f759, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f746,%f747;
+ // inline asm
+ add.f32 %f762, %f761, %f761;
+ mul.f32 %f763, %f746, %f762;
+ mul.f32 %f764, %f763, %f763;
+ mov.f32 %f765, 0f3C4CAF63;
+ mov.f32 %f766, 0f3B18F0FE;
+ fma.rn.f32 %f767, %f766, %f764, %f765;
+ mov.f32 %f768, 0f3DAAAABD;
+ fma.rn.f32 %f769, %f767, %f764, %f768;
+ mul.rn.f32 %f770, %f769, %f764;
+ mul.rn.f32 %f771, %f770, %f763;
+ sub.f32 %f772, %f761, %f763;
+ neg.f32 %f773, %f763;
+ add.f32 %f774, %f772, %f772;
+ fma.rn.f32 %f775, %f773, %f761, %f774;
+ mul.rn.f32 %f776, %f746, %f775;
+ add.f32 %f777, %f771, %f763;
+ sub.f32 %f778, %f763, %f777;
+ add.f32 %f779, %f771, %f778;
+ add.f32 %f780, %f776, %f779;
+ add.f32 %f781, %f777, %f780;
+ sub.f32 %f782, %f777, %f781;
+ add.f32 %f783, %f780, %f782;
+ mov.f32 %f784, 0f3F317200;
+ mul.rn.f32 %f785, %f760, %f784;
+ mov.f32 %f786, 0f35BFBE8E;
+ mul.rn.f32 %f787, %f760, %f786;
+ add.f32 %f788, %f785, %f781;
+ sub.f32 %f789, %f785, %f788;
+ add.f32 %f790, %f781, %f789;
+ add.f32 %f791, %f783, %f790;
+ add.f32 %f792, %f787, %f791;
+ add.f32 %f793, %f788, %f792;
+ sub.f32 %f794, %f788, %f793;
+ add.f32 %f795, %f792, %f794;
+ mov.f32 %f796, 0f3EE66666;
+ mul.rn.f32 %f797, %f796, %f793;
+ neg.f32 %f798, %f797;
+ fma.rn.f32 %f799, %f796, %f793, %f798;
+ fma.rn.f32 %f800, %f796, %f795, %f799;
+ mov.f32 %f801, 0f00000000;
+ fma.rn.f32 %f802, %f801, %f793, %f800;
+ add.rn.f32 %f803, %f797, %f802;
+ neg.f32 %f804, %f803;
+ add.rn.f32 %f805, %f797, %f804;
+ add.rn.f32 %f806, %f805, %f802;
+ mov.b32 %r272, %f803;
+ setp.eq.s32 %p87, %r272, 1118925336;
+ add.s32 %r273, %r272, -1;
+ mov.b32 %f807, %r273;
+ add.f32 %f808, %f806, 0f37000000;
+ selp.f32 %f809, %f807, %f803, %p87;
+ selp.f32 %f273, %f808, %f806, %p87;
+ mul.f32 %f810, %f809, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f811, %f810;
+ mov.f32 %f812, 0fBF317200;
+ fma.rn.f32 %f813, %f811, %f812, %f809;
+ mov.f32 %f814, 0fB5BFBE8E;
+ fma.rn.f32 %f815, %f811, %f814, %f813;
+ mul.f32 %f816, %f815, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f817, %f816;
+ add.f32 %f818, %f811, 0f00000000;
+ ex2.approx.f32 %f819, %f818;
+ mul.f32 %f820, %f817, %f819;
+ setp.lt.f32 %p88, %f809, 0fC2D20000;
+ selp.f32 %f821, 0f00000000, %f820, %p88;
+ setp.gt.f32 %p89, %f809, 0f42D20000;
+ selp.f32 %f1244, 0f7F800000, %f821, %p89;
+ setp.eq.f32 %p90, %f1244, 0f7F800000;
+ @%p90 bra BB0_91;
+
+ fma.rn.f32 %f1244, %f1244, %f273, %f1244;
+
+BB0_91:
+ setp.lt.f32 %p91, %f268, 0f00000000;
+ setp.eq.f32 %p92, %f271, 0f3F800000;
+ and.pred %p4, %p91, %p92;
+ mov.b32 %r274, %f1244;
+ xor.b32 %r275, %r274, -2147483648;
+ mov.b32 %f822, %r275;
+ selp.f32 %f1246, %f822, %f1244, %p4;
+ setp.eq.f32 %p93, %f268, 0f00000000;
+ @%p93 bra BB0_94;
+ bra.uni BB0_92;
+
+BB0_94:
+ add.f32 %f825, %f268, %f268;
+ selp.f32 %f1246, %f825, 0f00000000, %p92;
+ bra.uni BB0_95;
+
+BB0_92:
+ setp.geu.f32 %p94, %f268, 0f00000000;
+ @%p94 bra BB0_95;
+
+ cvt.rzi.f32.f32 %f824, %f796;
+ setp.neu.f32 %p95, %f824, 0f3EE66666;
+ selp.f32 %f1246, 0f7FFFFFFF, %f1246, %p95;
+
+BB0_95:
+ add.f32 %f826, %f272, 0f3EE66666;
+ mov.b32 %r276, %f826;
+ setp.lt.s32 %p97, %r276, 2139095040;
+ @%p97 bra BB0_100;
+
+ setp.gtu.f32 %p98, %f272, 0f7F800000;
+ @%p98 bra BB0_99;
+ bra.uni BB0_97;
+
+BB0_99:
+ add.f32 %f1246, %f268, 0f3EE66666;
+ bra.uni BB0_100;
+
+BB0_97:
+ setp.neu.f32 %p99, %f272, 0f7F800000;
+ @%p99 bra BB0_100;
+
+ selp.f32 %f1246, 0fFF800000, 0f7F800000, %p4;
+
+BB0_100:
+ setp.eq.f32 %p100, %f268, 0f3F800000;
+ selp.f32 %f284, 0f3F800000, %f1246, %p100;
+ abs.f32 %f285, %f269;
+ setp.lt.f32 %p101, %f285, 0f00800000;
+ mul.f32 %f829, %f285, 0f4B800000;
+ selp.f32 %f830, 0fC3170000, 0fC2FE0000, %p101;
+ selp.f32 %f831, %f829, %f285, %p101;
+ mov.b32 %r277, %f831;
+ and.b32 %r278, %r277, 8388607;
+ or.b32 %r279, %r278, 1065353216;
+ mov.b32 %f832, %r279;
+ shr.u32 %r280, %r277, 23;
+ cvt.rn.f32.u32 %f833, %r280;
+ add.f32 %f834, %f830, %f833;
+ setp.gt.f32 %p102, %f832, 0f3FB504F3;
+ mul.f32 %f835, %f832, 0f3F000000;
+ add.f32 %f836, %f834, 0f3F800000;
+ selp.f32 %f837, %f835, %f832, %p102;
+ selp.f32 %f838, %f836, %f834, %p102;
+ add.f32 %f839, %f837, 0fBF800000;
+ add.f32 %f828, %f837, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f827,%f828;
+ // inline asm
+ add.f32 %f840, %f839, %f839;
+ mul.f32 %f841, %f827, %f840;
+ mul.f32 %f842, %f841, %f841;
+ fma.rn.f32 %f845, %f766, %f842, %f765;
+ fma.rn.f32 %f847, %f845, %f842, %f768;
+ mul.rn.f32 %f848, %f847, %f842;
+ mul.rn.f32 %f849, %f848, %f841;
+ sub.f32 %f850, %f839, %f841;
+ neg.f32 %f851, %f841;
+ add.f32 %f852, %f850, %f850;
+ fma.rn.f32 %f853, %f851, %f839, %f852;
+ mul.rn.f32 %f854, %f827, %f853;
+ add.f32 %f855, %f849, %f841;
+ sub.f32 %f856, %f841, %f855;
+ add.f32 %f857, %f849, %f856;
+ add.f32 %f858, %f854, %f857;
+ add.f32 %f859, %f855, %f858;
+ sub.f32 %f860, %f855, %f859;
+ add.f32 %f861, %f858, %f860;
+ mul.rn.f32 %f863, %f838, %f784;
+ mul.rn.f32 %f865, %f838, %f786;
+ add.f32 %f866, %f863, %f859;
+ sub.f32 %f867, %f863, %f866;
+ add.f32 %f868, %f859, %f867;
+ add.f32 %f869, %f861, %f868;
+ add.f32 %f870, %f865, %f869;
+ add.f32 %f871, %f866, %f870;
+ sub.f32 %f872, %f866, %f871;
+ add.f32 %f873, %f870, %f872;
+ mul.rn.f32 %f875, %f796, %f871;
+ neg.f32 %f876, %f875;
+ fma.rn.f32 %f877, %f796, %f871, %f876;
+ fma.rn.f32 %f878, %f796, %f873, %f877;
+ fma.rn.f32 %f880, %f801, %f871, %f878;
+ add.rn.f32 %f881, %f875, %f880;
+ neg.f32 %f882, %f881;
+ add.rn.f32 %f883, %f875, %f882;
+ add.rn.f32 %f884, %f883, %f880;
+ mov.b32 %r281, %f881;
+ setp.eq.s32 %p103, %r281, 1118925336;
+ add.s32 %r282, %r281, -1;
+ mov.b32 %f885, %r282;
+ add.f32 %f886, %f884, 0f37000000;
+ selp.f32 %f887, %f885, %f881, %p103;
+ selp.f32 %f286, %f886, %f884, %p103;
+ mul.f32 %f888, %f887, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f889, %f888;
+ fma.rn.f32 %f891, %f889, %f812, %f887;
+ fma.rn.f32 %f893, %f889, %f814, %f891;
+ mul.f32 %f894, %f893, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f895, %f894;
+ add.f32 %f896, %f889, 0f00000000;
+ ex2.approx.f32 %f897, %f896;
+ mul.f32 %f898, %f895, %f897;
+ setp.lt.f32 %p104, %f887, 0fC2D20000;
+ selp.f32 %f899, 0f00000000, %f898, %p104;
+ setp.gt.f32 %p105, %f887, 0f42D20000;
+ selp.f32 %f1247, 0f7F800000, %f899, %p105;
+ setp.eq.f32 %p106, %f1247, 0f7F800000;
+ @%p106 bra BB0_102;
+
+ fma.rn.f32 %f1247, %f1247, %f286, %f1247;
+
+BB0_102:
+ setp.lt.f32 %p107, %f269, 0f00000000;
+ and.pred %p5, %p107, %p92;
+ mov.b32 %r283, %f1247;
+ xor.b32 %r284, %r283, -2147483648;
+ mov.b32 %f900, %r284;
+ selp.f32 %f1249, %f900, %f1247, %p5;
+ setp.eq.f32 %p109, %f269, 0f00000000;
+ @%p109 bra BB0_105;
+ bra.uni BB0_103;
+
+BB0_105:
+ add.f32 %f903, %f269, %f269;
+ selp.f32 %f1249, %f903, 0f00000000, %p92;
+ bra.uni BB0_106;
+
+BB0_103:
+ setp.geu.f32 %p110, %f269, 0f00000000;
+ @%p110 bra BB0_106;
+
+ cvt.rzi.f32.f32 %f902, %f796;
+ setp.neu.f32 %p111, %f902, 0f3EE66666;
+ selp.f32 %f1249, 0f7FFFFFFF, %f1249, %p111;
+
+BB0_106:
+ add.f32 %f904, %f285, 0f3EE66666;
+ mov.b32 %r285, %f904;
+ setp.lt.s32 %p113, %r285, 2139095040;
+ @%p113 bra BB0_111;
+
+ setp.gtu.f32 %p114, %f285, 0f7F800000;
+ @%p114 bra BB0_110;
+ bra.uni BB0_108;
+
+BB0_110:
+ add.f32 %f1249, %f269, 0f3EE66666;
+ bra.uni BB0_111;
+
+BB0_108:
+ setp.neu.f32 %p115, %f285, 0f7F800000;
+ @%p115 bra BB0_111;
+
+ selp.f32 %f1249, 0fFF800000, 0f7F800000, %p5;
+
+BB0_111:
+ setp.eq.f32 %p116, %f269, 0f3F800000;
+ selp.f32 %f297, 0f3F800000, %f1249, %p116;
+ abs.f32 %f298, %f270;
+ setp.lt.f32 %p117, %f298, 0f00800000;
+ mul.f32 %f907, %f298, 0f4B800000;
+ selp.f32 %f908, 0fC3170000, 0fC2FE0000, %p117;
+ selp.f32 %f909, %f907, %f298, %p117;
+ mov.b32 %r286, %f909;
+ and.b32 %r287, %r286, 8388607;
+ or.b32 %r288, %r287, 1065353216;
+ mov.b32 %f910, %r288;
+ shr.u32 %r289, %r286, 23;
+ cvt.rn.f32.u32 %f911, %r289;
+ add.f32 %f912, %f908, %f911;
+ setp.gt.f32 %p118, %f910, 0f3FB504F3;
+ mul.f32 %f913, %f910, 0f3F000000;
+ add.f32 %f914, %f912, 0f3F800000;
+ selp.f32 %f915, %f913, %f910, %p118;
+ selp.f32 %f916, %f914, %f912, %p118;
+ add.f32 %f917, %f915, 0fBF800000;
+ add.f32 %f906, %f915, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f905,%f906;
+ // inline asm
+ add.f32 %f918, %f917, %f917;
+ mul.f32 %f919, %f905, %f918;
+ mul.f32 %f920, %f919, %f919;
+ fma.rn.f32 %f923, %f766, %f920, %f765;
+ fma.rn.f32 %f925, %f923, %f920, %f768;
+ mul.rn.f32 %f926, %f925, %f920;
+ mul.rn.f32 %f927, %f926, %f919;
+ sub.f32 %f928, %f917, %f919;
+ neg.f32 %f929, %f919;
+ add.f32 %f930, %f928, %f928;
+ fma.rn.f32 %f931, %f929, %f917, %f930;
+ mul.rn.f32 %f932, %f905, %f931;
+ add.f32 %f933, %f927, %f919;
+ sub.f32 %f934, %f919, %f933;
+ add.f32 %f935, %f927, %f934;
+ add.f32 %f936, %f932, %f935;
+ add.f32 %f937, %f933, %f936;
+ sub.f32 %f938, %f933, %f937;
+ add.f32 %f939, %f936, %f938;
+ mul.rn.f32 %f941, %f916, %f784;
+ mul.rn.f32 %f943, %f916, %f786;
+ add.f32 %f944, %f941, %f937;
+ sub.f32 %f945, %f941, %f944;
+ add.f32 %f946, %f937, %f945;
+ add.f32 %f947, %f939, %f946;
+ add.f32 %f948, %f943, %f947;
+ add.f32 %f949, %f944, %f948;
+ sub.f32 %f950, %f944, %f949;
+ add.f32 %f951, %f948, %f950;
+ mul.rn.f32 %f953, %f796, %f949;
+ neg.f32 %f954, %f953;
+ fma.rn.f32 %f955, %f796, %f949, %f954;
+ fma.rn.f32 %f956, %f796, %f951, %f955;
+ fma.rn.f32 %f958, %f801, %f949, %f956;
+ add.rn.f32 %f959, %f953, %f958;
+ neg.f32 %f960, %f959;
+ add.rn.f32 %f961, %f953, %f960;
+ add.rn.f32 %f962, %f961, %f958;
+ mov.b32 %r290, %f959;
+ setp.eq.s32 %p119, %r290, 1118925336;
+ add.s32 %r291, %r290, -1;
+ mov.b32 %f963, %r291;
+ add.f32 %f964, %f962, 0f37000000;
+ selp.f32 %f965, %f963, %f959, %p119;
+ selp.f32 %f299, %f964, %f962, %p119;
+ mul.f32 %f966, %f965, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f967, %f966;
+ fma.rn.f32 %f969, %f967, %f812, %f965;
+ fma.rn.f32 %f971, %f967, %f814, %f969;
+ mul.f32 %f972, %f971, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f973, %f972;
+ add.f32 %f974, %f967, 0f00000000;
+ ex2.approx.f32 %f975, %f974;
+ mul.f32 %f976, %f973, %f975;
+ setp.lt.f32 %p120, %f965, 0fC2D20000;
+ selp.f32 %f977, 0f00000000, %f976, %p120;
+ setp.gt.f32 %p121, %f965, 0f42D20000;
+ selp.f32 %f1250, 0f7F800000, %f977, %p121;
+ setp.eq.f32 %p122, %f1250, 0f7F800000;
+ @%p122 bra BB0_113;
+
+ fma.rn.f32 %f1250, %f1250, %f299, %f1250;
+
+BB0_113:
+ setp.lt.f32 %p123, %f270, 0f00000000;
+ and.pred %p6, %p123, %p92;
+ mov.b32 %r292, %f1250;
+ xor.b32 %r293, %r292, -2147483648;
+ mov.b32 %f978, %r293;
+ selp.f32 %f1252, %f978, %f1250, %p6;
+ setp.eq.f32 %p125, %f270, 0f00000000;
+ @%p125 bra BB0_116;
+ bra.uni BB0_114;
+
+BB0_116:
+ add.f32 %f981, %f270, %f270;
+ selp.f32 %f1252, %f981, 0f00000000, %p92;
+ bra.uni BB0_117;
+
+BB0_114:
+ setp.geu.f32 %p126, %f270, 0f00000000;
+ @%p126 bra BB0_117;
+
+ cvt.rzi.f32.f32 %f980, %f796;
+ setp.neu.f32 %p127, %f980, 0f3EE66666;
+ selp.f32 %f1252, 0f7FFFFFFF, %f1252, %p127;
+
+BB0_117:
+ add.f32 %f982, %f298, 0f3EE66666;
+ mov.b32 %r294, %f982;
+ setp.lt.s32 %p129, %r294, 2139095040;
+ @%p129 bra BB0_122;
+
+ setp.gtu.f32 %p130, %f298, 0f7F800000;
+ @%p130 bra BB0_121;
+ bra.uni BB0_119;
+
+BB0_121:
+ add.f32 %f1252, %f270, 0f3EE66666;
+ bra.uni BB0_122;
+
+BB0_119:
+ setp.neu.f32 %p131, %f298, 0f7F800000;
+ @%p131 bra BB0_122;
+
+ selp.f32 %f1252, 0fFF800000, 0f7F800000, %p6;
+
+BB0_122:
+ setp.eq.f32 %p132, %f270, 0f3F800000;
+ selp.f32 %f983, 0f3F800000, %f1252, %p132;
+ cvt.u64.u32 %rd90, %r5;
+ cvt.u64.u32 %rd89, %r4;
+ mov.u64 %rd93, image;
+ cvta.global.u64 %rd88, %rd93;
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd88, %r98, %r99, %rd89, %rd90, %rd26, %rd26);
+ // inline asm
+ cvt.sat.f32.f32 %f984, %f983;
+ mul.f32 %f985, %f984, 0f437FFD71;
+ cvt.rzi.u32.f32 %r297, %f985;
+ cvt.sat.f32.f32 %f986, %f297;
+ mul.f32 %f987, %f986, 0f437FFD71;
+ cvt.rzi.u32.f32 %r298, %f987;
+ cvt.sat.f32.f32 %f988, %f284;
+ mul.f32 %f989, %f988, 0f437FFD71;
+ cvt.rzi.u32.f32 %r299, %f989;
+ cvt.u16.u32 %rs16, %r297;
+ cvt.u16.u32 %rs17, %r299;
+ cvt.u16.u32 %rs18, %r298;
+ mov.u16 %rs19, 255;
+ st.v4.u8 [%rd87], {%rs16, %rs18, %rs17, %rs19};
+ ld.global.u32 %r409, [imageEnabled];
+
+BB0_123:
+ cvt.u64.u32 %rd17, %r4;
+ cvt.u64.u32 %rd18, %r5;
+ and.b32 %r300, %r409, 4;
+ setp.eq.s32 %p133, %r300, 0;
+ @%p133 bra BB0_127;
+
+ ld.global.u32 %r301, [additive];
+ setp.eq.s32 %p134, %r301, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f537;}
+
+ // inline asm
+ @%p134 bra BB0_126;
+
+ mov.u64 %rd106, image_HDR;
+ cvta.global.u64 %rd95, %rd106;
+ mov.u32 %r305, 8;
+ // inline asm
+ call (%rd94), _rt_buffer_get_64, (%rd95, %r98, %r305, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs27, %rs28, %rs29, %rs30}, [%rd94];
+ // inline asm
+ { cvt.f32.f16 %f991, %rs27;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f992, %rs28;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f993, %rs29;}
+
+ // inline asm
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd95, %r98, %r305, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f994, %f268, %f991;
+ add.f32 %f995, %f269, %f992;
+ add.f32 %f996, %f270, %f993;
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f996;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f995;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f994;}
+
+ // inline asm
+ st.v4.u16 [%rd100], {%rs24, %rs25, %rs26, %rs20};
+ bra.uni BB0_127;
+
+BB0_126:
+ mov.u64 %rd113, image_HDR;
+ cvta.global.u64 %rd108, %rd113;
+ mov.u32 %r307, 8;
+ // inline asm
+ call (%rd107), _rt_buffer_get_64, (%rd108, %r98, %r307, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f270;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f269;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f268;}
+
+ // inline asm
+ st.v4.u16 [%rd107], {%rs31, %rs32, %rs33, %rs20};
+
+BB0_127:
+ selp.f32 %f1001, 0f3F800000, 0f3E800000, %p147;
+ mul.f32 %f1002, %f1001, %f1234;
+ mul.f32 %f1003, %f1001, %f1235;
+ mul.f32 %f1004, %f1001, %f1236;
+ mul.f32 %f1005, %f1001, %f1231;
+ mul.f32 %f1006, %f1001, %f1232;
+ mul.f32 %f1007, %f1001, %f1233;
+ mul.f32 %f1008, %f1001, %f1228;
+ mul.f32 %f1009, %f1001, %f1229;
+ mul.f32 %f1010, %f1001, %f1230;
+ mul.f32 %f1011, %f1001, %f1225;
+ mul.f32 %f1012, %f1001, %f1226;
+ mul.f32 %f1013, %f1001, %f1227;
+ ld.global.f32 %f1014, [lightColor];
+ mul.f32 %f310, %f1002, %f1014;
+ ld.global.f32 %f1015, [lightColor+4];
+ mul.f32 %f311, %f1003, %f1015;
+ ld.global.f32 %f1016, [lightColor+8];
+ mul.f32 %f312, %f1004, %f1016;
+ mul.f32 %f313, %f1005, %f1014;
+ mul.f32 %f314, %f1006, %f1015;
+ mul.f32 %f315, %f1007, %f1016;
+ mul.f32 %f316, %f1008, %f1014;
+ mul.f32 %f317, %f1009, %f1015;
+ mul.f32 %f318, %f1010, %f1016;
+ mul.f32 %f319, %f1011, %f1014;
+ mul.f32 %f320, %f1012, %f1015;
+ mul.f32 %f321, %f1013, %f1016;
+ ld.global.u32 %r308, [additive];
+ setp.eq.s32 %p135, %r308, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f537;}
+
+ // inline asm
+ @%p135 bra BB0_129;
+
+ mov.u64 %rd126, image_RNM0;
+ cvta.global.u64 %rd115, %rd126;
+ mov.u32 %r312, 8;
+ // inline asm
+ call (%rd114), _rt_buffer_get_64, (%rd115, %r98, %r312, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs41, %rs42, %rs43, %rs44}, [%rd114];
+ // inline asm
+ { cvt.f32.f16 %f1017, %rs41;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1018, %rs42;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1019, %rs43;}
+
+ // inline asm
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd115, %r98, %r312, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f1020, %f310, %f1017;
+ add.f32 %f1021, %f311, %f1018;
+ add.f32 %f1022, %f312, %f1019;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f1022;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f1021;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f1020;}
+
+ // inline asm
+ st.v4.u16 [%rd120], {%rs38, %rs39, %rs40, %rs34};
+ bra.uni BB0_130;
+
+BB0_129:
+ mov.u64 %rd133, image_RNM0;
+ cvta.global.u64 %rd128, %rd133;
+ mov.u32 %r314, 8;
+ // inline asm
+ call (%rd127), _rt_buffer_get_64, (%rd128, %r98, %r314, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f312;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f311;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f310;}
+
+ // inline asm
+ st.v4.u16 [%rd127], {%rs45, %rs46, %rs47, %rs34};
+
+BB0_130:
+ mov.f32 %f1027, 0f34000000;
+ max.f32 %f1028, %f310, %f1027;
+ div.rn.f32 %f1029, %f313, %f1028;
+ max.f32 %f1030, %f311, %f1027;
+ div.rn.f32 %f1031, %f314, %f1030;
+ max.f32 %f1032, %f312, %f1027;
+ div.rn.f32 %f1033, %f315, %f1032;
+ fma.rn.f32 %f322, %f1029, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f323, %f1031, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f324, %f1033, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f1034, %f316, %f1028;
+ div.rn.f32 %f1035, %f317, %f1030;
+ div.rn.f32 %f1036, %f318, %f1032;
+ fma.rn.f32 %f325, %f1034, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f326, %f1035, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f327, %f1036, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f1037, %f319, %f1028;
+ div.rn.f32 %f1038, %f320, %f1030;
+ div.rn.f32 %f1039, %f321, %f1032;
+ fma.rn.f32 %f328, %f1037, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f329, %f1038, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f330, %f1039, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r315, [additive];
+ setp.eq.s32 %p136, %r315, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f537;}
+
+ // inline asm
+ @%p136 bra BB0_132;
+
+ mov.u64 %rd146, image_RNM1;
+ cvta.global.u64 %rd135, %rd146;
+ mov.u32 %r319, 8;
+ // inline asm
+ call (%rd134), _rt_buffer_get_64, (%rd135, %r98, %r319, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs55, %rs56, %rs57, %rs58}, [%rd134];
+ // inline asm
+ { cvt.f32.f16 %f1040, %rs55;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1041, %rs56;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1042, %rs57;}
+
+ // inline asm
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd135, %r98, %r319, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f1043, %f322, %f1040;
+ add.f32 %f1044, %f323, %f1041;
+ add.f32 %f1045, %f324, %f1042;
+ // inline asm
+ { cvt.rn.f16.f32 %rs54, %f1045;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f1044;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f1043;}
+
+ // inline asm
+ st.v4.u16 [%rd140], {%rs52, %rs53, %rs54, %rs48};
+ bra.uni BB0_133;
+
+BB0_132:
+ mov.u64 %rd153, image_RNM1;
+ cvta.global.u64 %rd148, %rd153;
+ mov.u32 %r321, 8;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r98, %r321, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs61, %f324;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f323;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f322;}
+
+ // inline asm
+ st.v4.u16 [%rd147], {%rs59, %rs60, %rs61, %rs48};
+
+BB0_133:
+ ld.global.u32 %r322, [additive];
+ setp.eq.s32 %p137, %r322, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs62, %f537;}
+
+ // inline asm
+ @%p137 bra BB0_135;
+
+ mov.u64 %rd166, image_RNM2;
+ cvta.global.u64 %rd155, %rd166;
+ mov.u32 %r326, 8;
+ // inline asm
+ call (%rd154), _rt_buffer_get_64, (%rd155, %r98, %r326, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs69, %rs70, %rs71, %rs72}, [%rd154];
+ // inline asm
+ { cvt.f32.f16 %f1050, %rs69;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1051, %rs70;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1052, %rs71;}
+
+ // inline asm
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd155, %r98, %r326, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f1053, %f325, %f1050;
+ add.f32 %f1054, %f326, %f1051;
+ add.f32 %f1055, %f327, %f1052;
+ // inline asm
+ { cvt.rn.f16.f32 %rs68, %f1055;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs67, %f1054;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f1053;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs66, %rs67, %rs68, %rs62};
+ bra.uni BB0_136;
+
+BB0_135:
+ mov.u64 %rd173, image_RNM2;
+ cvta.global.u64 %rd168, %rd173;
+ mov.u32 %r328, 8;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r98, %r328, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs75, %f327;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f326;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f325;}
+
+ // inline asm
+ st.v4.u16 [%rd167], {%rs73, %rs74, %rs75, %rs62};
+
+BB0_136:
+ ld.global.u32 %r329, [additive];
+ setp.eq.s32 %p138, %r329, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f537;}
+
+ // inline asm
+ @%p138 bra BB0_138;
+
+ mov.u64 %rd186, image_RNM3;
+ cvta.global.u64 %rd175, %rd186;
+ mov.u32 %r333, 8;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r98, %r333, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs83, %rs84, %rs85, %rs86}, [%rd174];
+ // inline asm
+ { cvt.f32.f16 %f1060, %rs83;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1061, %rs84;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1062, %rs85;}
+
+ // inline asm
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd175, %r98, %r333, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f1063, %f328, %f1060;
+ add.f32 %f1064, %f329, %f1061;
+ add.f32 %f1065, %f330, %f1062;
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f1065;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f1064;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs80, %f1063;}
+
+ // inline asm
+ st.v4.u16 [%rd180], {%rs80, %rs81, %rs82, %rs76};
+ bra.uni BB0_159;
+
+BB0_138:
+ mov.u64 %rd193, image_RNM3;
+ cvta.global.u64 %rd188, %rd193;
+ mov.u32 %r335, 8;
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd188, %r98, %r335, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs89, %f330;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f329;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f328;}
+
+ // inline asm
+ st.v4.u16 [%rd187], {%rs87, %rs88, %rs89, %rs76};
+
+BB0_159:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightProbeSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightProbeSH.ptx.meta
new file mode 100644
index 00000000..a04d8c76
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightProbeSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ec188f20f5499f14ca412579106b1919
+timeCreated: 1551460554
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightRNM.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightRNM.ptx
new file mode 100644
index 00000000..8889a81c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightRNM.ptx
@@ -0,0 +1,2587 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 uvtangent[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 lightMeshBuffer[1];
+.global .align 4 .u32 lightMeshBufferSize;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightPointSize;
+.global .align 4 .b8 lightColor[12];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo19lightMeshBufferSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightPointSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename19lightMeshBufferSizeE[13] = {117, 110, 115, 105, 103, 110, 101, 100, 32, 105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightPointSizeE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum19lightMeshBufferSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightPointSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightPointSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightPointSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[44];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<157>;
+ .reg .b16 %rs<157>;
+ .reg .f32 %f<1384>;
+ .reg .b32 %r<439>;
+ .reg .b64 %rd<301>;
+
+
+ mov.u64 %rd300, __local_depot0;
+ cvta.local.u64 %SP, %rd300;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r109, %r110}, [pixelID];
+ cvt.u64.u32 %rd26, %r109;
+ cvt.u64.u32 %rd27, %r110;
+ mov.u64 %rd30, uvnormal;
+ cvta.global.u64 %rd25, %rd30;
+ mov.u32 %r107, 2;
+ mov.u32 %r108, 4;
+ mov.u64 %rd29, 0;
+ // inline asm
+ call (%rd24), _rt_buffer_get_64, (%rd25, %r107, %r108, %rd26, %rd27, %rd29, %rd29);
+ // inline asm
+ ld.u32 %r2, [%rd24];
+ shr.u32 %r113, %r2, 16;
+ cvt.u16.u32 %rs1, %r113;
+ and.b16 %rs6, %rs1, 255;
+ cvt.u16.u32 %rs7, %r2;
+ or.b16 %rs8, %rs7, %rs6;
+ setp.eq.s16 %p7, %rs8, 0;
+ mov.f32 %f1244, 0f00000000;
+ mov.f32 %f1245, %f1244;
+ mov.f32 %f1246, %f1244;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs9, [%rd24+1];
+ and.b16 %rs11, %rs7, 255;
+ cvt.rn.f32.u16 %f340, %rs11;
+ div.rn.f32 %f341, %f340, 0f437F0000;
+ fma.rn.f32 %f342, %f341, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f343, %rs9;
+ div.rn.f32 %f344, %f343, 0f437F0000;
+ fma.rn.f32 %f345, %f344, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f346, %rs6;
+ div.rn.f32 %f347, %f346, 0f437F0000;
+ fma.rn.f32 %f348, %f347, 0f40000000, 0fBF800000;
+ mul.f32 %f349, %f345, %f345;
+ fma.rn.f32 %f350, %f342, %f342, %f349;
+ fma.rn.f32 %f351, %f348, %f348, %f350;
+ sqrt.rn.f32 %f352, %f351;
+ rcp.rn.f32 %f353, %f352;
+ mul.f32 %f1244, %f342, %f353;
+ mul.f32 %f1245, %f345, %f353;
+ mul.f32 %f1246, %f348, %f353;
+
+BB0_2:
+ ld.global.v2.u32 {%r114, %r115}, [pixelID];
+ ld.global.v2.u32 {%r117, %r118}, [tileInfo];
+ add.s32 %r3, %r114, %r117;
+ add.s32 %r4, %r115, %r118;
+ setp.eq.f32 %p8, %f1245, 0f00000000;
+ setp.eq.f32 %p9, %f1244, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f1246, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_144;
+ bra.uni BB0_3;
+
+BB0_144:
+ ld.global.u32 %r438, [imageEnabled];
+ and.b32 %r356, %r438, 1;
+ setp.eq.b32 %p149, %r356, 1;
+ @!%p149 bra BB0_146;
+ bra.uni BB0_145;
+
+BB0_145:
+ cvt.u64.u32 %rd200, %r3;
+ cvt.u64.u32 %rd201, %r4;
+ mov.u64 %rd204, image;
+ cvta.global.u64 %rd199, %rd204;
+ mov.u64 %rd203, 0;
+ // inline asm
+ call (%rd198), _rt_buffer_get_64, (%rd199, %r107, %r108, %rd200, %rd201, %rd203, %rd203);
+ // inline asm
+ mov.u16 %rs102, 0;
+ st.v4.u8 [%rd198], {%rs102, %rs102, %rs102, %rs102};
+ ld.global.u32 %r438, [imageEnabled];
+
+BB0_146:
+ and.b32 %r359, %r438, 8;
+ setp.eq.s32 %p150, %r359, 0;
+ @%p150 bra BB0_148;
+
+ cvt.u64.u32 %rd208, %r4;
+ cvt.u64.u32 %rd207, %r3;
+ mov.u64 %rd211, image_Mask;
+ cvta.global.u64 %rd206, %rd211;
+ mov.u64 %rd210, 0;
+ // inline asm
+ call (%rd205), _rt_buffer_get_64, (%rd206, %r107, %r107, %rd207, %rd208, %rd210, %rd210);
+ // inline asm
+ mov.f32 %f1206, 0f00000000;
+ cvt.rzi.u32.f32 %r362, %f1206;
+ cvt.u16.u32 %rs103, %r362;
+ mov.u16 %rs104, 0;
+ st.v2.u8 [%rd205], {%rs103, %rs104};
+ ld.global.u32 %r438, [imageEnabled];
+
+BB0_148:
+ cvt.u64.u32 %rd22, %r3;
+ cvt.u64.u32 %rd23, %r4;
+ and.b32 %r363, %r438, 4;
+ setp.eq.s32 %p151, %r363, 0;
+ @%p151 bra BB0_152;
+
+ ld.global.u32 %r364, [additive];
+ setp.eq.s32 %p152, %r364, 0;
+ @%p152 bra BB0_151;
+
+ mov.u64 %rd224, image_HDR;
+ cvta.global.u64 %rd213, %rd224;
+ mov.u32 %r368, 8;
+ mov.u64 %rd223, 0;
+ // inline asm
+ call (%rd212), _rt_buffer_get_64, (%rd213, %r107, %r368, %rd22, %rd23, %rd223, %rd223);
+ // inline asm
+ ld.v4.u16 {%rs111, %rs112, %rs113, %rs114}, [%rd212];
+ // inline asm
+ { cvt.f32.f16 %f1207, %rs111;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1208, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1209, %rs113;}
+
+ // inline asm
+ // inline asm
+ call (%rd218), _rt_buffer_get_64, (%rd213, %r107, %r368, %rd22, %rd23, %rd223, %rd223);
+ // inline asm
+ add.f32 %f1210, %f1207, 0f00000000;
+ add.f32 %f1211, %f1208, 0f00000000;
+ add.f32 %f1212, %f1209, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f1212;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f1211;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs108, %f1210;}
+
+ // inline asm
+ mov.u16 %rs115, 0;
+ st.v4.u16 [%rd218], {%rs108, %rs109, %rs110, %rs115};
+ bra.uni BB0_152;
+
+BB0_3:
+ ld.global.v2.u32 {%r126, %r127}, [pixelID];
+ cvt.u64.u32 %rd33, %r126;
+ cvt.u64.u32 %rd34, %r127;
+ mov.u64 %rd43, uvpos;
+ cvta.global.u64 %rd32, %rd43;
+ mov.u32 %r123, 12;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd32, %r107, %r123, %rd33, %rd34, %rd29, %rd29);
+ // inline asm
+ ld.f32 %f9, [%rd31+8];
+ ld.f32 %f8, [%rd31+4];
+ ld.f32 %f7, [%rd31];
+ mul.f32 %f357, %f7, 0f3456BF95;
+ mul.f32 %f358, %f8, 0f3456BF95;
+ mul.f32 %f359, %f9, 0f3456BF95;
+ abs.f32 %f10, %f1244;
+ div.rn.f32 %f360, %f357, %f10;
+ abs.f32 %f361, %f1245;
+ div.rn.f32 %f362, %f358, %f361;
+ abs.f32 %f11, %f1246;
+ div.rn.f32 %f363, %f359, %f11;
+ abs.f32 %f364, %f360;
+ abs.f32 %f365, %f362;
+ abs.f32 %f366, %f363;
+ mov.f32 %f367, 0f38D1B717;
+ max.f32 %f368, %f364, %f367;
+ max.f32 %f369, %f365, %f367;
+ max.f32 %f370, %f366, %f367;
+ fma.rn.f32 %f12, %f1244, %f368, %f7;
+ fma.rn.f32 %f13, %f1245, %f369, %f8;
+ fma.rn.f32 %f14, %f1246, %f370, %f9;
+ ld.global.v2.u32 {%r130, %r131}, [pixelID];
+ cvt.u64.u32 %rd39, %r130;
+ cvt.u64.u32 %rd40, %r131;
+ mov.u64 %rd44, uvtangent;
+ cvta.global.u64 %rd38, %rd44;
+ // inline asm
+ call (%rd37), _rt_buffer_get_64, (%rd38, %r107, %r108, %rd39, %rd40, %rd29, %rd29);
+ // inline asm
+ ld.u32 %r5, [%rd37];
+ shr.u32 %r6, %r5, 16;
+ cvt.u16.u32 %rs13, %r6;
+ and.b16 %rs14, %rs13, 255;
+ cvt.u16.u32 %rs15, %r5;
+ or.b16 %rs16, %rs15, %rs14;
+ setp.eq.s16 %p13, %rs16, 0;
+ mov.f32 %f50, 0f00000000;
+ mov.f32 %f1247, %f50;
+ mov.f32 %f1248, %f50;
+ mov.f32 %f1249, %f50;
+ @%p13 bra BB0_5;
+
+ ld.u8 %rs17, [%rd37+1];
+ and.b16 %rs19, %rs15, 255;
+ cvt.rn.f32.u16 %f371, %rs19;
+ div.rn.f32 %f372, %f371, 0f437F0000;
+ fma.rn.f32 %f373, %f372, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f374, %rs17;
+ div.rn.f32 %f375, %f374, 0f437F0000;
+ fma.rn.f32 %f376, %f375, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f377, %rs14;
+ div.rn.f32 %f378, %f377, 0f437F0000;
+ fma.rn.f32 %f379, %f378, 0f40000000, 0fBF800000;
+ mul.f32 %f380, %f376, %f376;
+ fma.rn.f32 %f381, %f373, %f373, %f380;
+ fma.rn.f32 %f382, %f379, %f379, %f381;
+ sqrt.rn.f32 %f383, %f382;
+ rcp.rn.f32 %f384, %f383;
+ mul.f32 %f1247, %f373, %f384;
+ mul.f32 %f1248, %f376, %f384;
+ mul.f32 %f1249, %f379, %f384;
+
+BB0_5:
+ mul.f32 %f388, %f1246, %f1248;
+ mul.f32 %f389, %f1245, %f1249;
+ sub.f32 %f390, %f389, %f388;
+ mul.f32 %f391, %f1244, %f1249;
+ mul.f32 %f392, %f1246, %f1247;
+ sub.f32 %f393, %f392, %f391;
+ mul.f32 %f394, %f1245, %f1247;
+ mul.f32 %f395, %f1244, %f1248;
+ sub.f32 %f396, %f395, %f394;
+ setp.lt.u32 %p14, %r5, 16777216;
+ selp.f32 %f397, 0fBF800000, 0f3F800000, %p14;
+ mul.f32 %f398, %f390, %f397;
+ mul.f32 %f399, %f393, %f397;
+ mul.f32 %f400, %f396, %f397;
+ mul.f32 %f401, %f398, 0f00000000;
+ mul.f32 %f402, %f399, 0f00000000;
+ mul.f32 %f403, %f400, 0f00000000;
+ fma.rn.f32 %f404, %f1247, 0f3F5105EC, %f401;
+ fma.rn.f32 %f405, %f1248, 0f3F5105EC, %f402;
+ fma.rn.f32 %f406, %f1249, 0f3F5105EC, %f403;
+ mul.f32 %f21, %f1244, 0f3F13CD3A;
+ add.f32 %f22, %f21, %f404;
+ mul.f32 %f23, %f1245, 0f3F13CD3A;
+ add.f32 %f24, %f23, %f405;
+ mul.f32 %f25, %f1246, 0f3F13CD3A;
+ add.f32 %f26, %f25, %f406;
+ ld.global.v2.u32 {%r136, %r137}, [pixelID];
+ cvt.u64.u32 %rd47, %r136;
+ cvt.u64.u32 %rd48, %r137;
+ // inline asm
+ call (%rd45), _rt_buffer_get_64, (%rd38, %r107, %r108, %rd47, %rd48, %rd29, %rd29);
+ // inline asm
+ ld.u32 %r7, [%rd45];
+ shr.u32 %r8, %r7, 16;
+ cvt.u16.u32 %rs22, %r8;
+ and.b16 %rs23, %rs22, 255;
+ cvt.u16.u32 %rs24, %r7;
+ or.b16 %rs25, %rs24, %rs23;
+ setp.eq.s16 %p15, %rs25, 0;
+ mov.f32 %f1250, %f50;
+ mov.f32 %f1251, %f50;
+ mov.f32 %f1252, %f50;
+ @%p15 bra BB0_7;
+
+ ld.u8 %rs26, [%rd45+1];
+ and.b16 %rs28, %rs24, 255;
+ cvt.rn.f32.u16 %f407, %rs28;
+ div.rn.f32 %f408, %f407, 0f437F0000;
+ fma.rn.f32 %f409, %f408, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f410, %rs26;
+ div.rn.f32 %f411, %f410, 0f437F0000;
+ fma.rn.f32 %f412, %f411, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f413, %rs23;
+ div.rn.f32 %f414, %f413, 0f437F0000;
+ fma.rn.f32 %f415, %f414, 0f40000000, 0fBF800000;
+ mul.f32 %f416, %f412, %f412;
+ fma.rn.f32 %f417, %f409, %f409, %f416;
+ fma.rn.f32 %f418, %f415, %f415, %f417;
+ sqrt.rn.f32 %f419, %f418;
+ rcp.rn.f32 %f420, %f419;
+ mul.f32 %f1250, %f409, %f420;
+ mul.f32 %f1251, %f412, %f420;
+ mul.f32 %f1252, %f415, %f420;
+
+BB0_7:
+ mul.f32 %f424, %f1246, %f1251;
+ mul.f32 %f425, %f1245, %f1252;
+ sub.f32 %f426, %f425, %f424;
+ mul.f32 %f427, %f1244, %f1252;
+ mul.f32 %f428, %f1246, %f1250;
+ sub.f32 %f429, %f428, %f427;
+ mul.f32 %f430, %f1245, %f1250;
+ mul.f32 %f431, %f1244, %f1251;
+ sub.f32 %f432, %f431, %f430;
+ setp.lt.u32 %p16, %r7, 16777216;
+ selp.f32 %f433, 0fBF800000, 0f3F800000, %p16;
+ mul.f32 %f434, %f426, %f433;
+ mul.f32 %f435, %f429, %f433;
+ mul.f32 %f436, %f432, %f433;
+ mul.f32 %f437, %f434, 0f3F3504F3;
+ mul.f32 %f438, %f435, 0f3F3504F3;
+ mul.f32 %f439, %f436, 0f3F3504F3;
+ fma.rn.f32 %f440, %f1250, 0fBED105EC, %f437;
+ fma.rn.f32 %f441, %f1251, 0fBED105EC, %f438;
+ fma.rn.f32 %f442, %f1252, 0fBED105EC, %f439;
+ add.f32 %f33, %f21, %f440;
+ add.f32 %f34, %f23, %f441;
+ add.f32 %f35, %f25, %f442;
+ ld.global.v2.u32 {%r142, %r143}, [pixelID];
+ cvt.u64.u32 %rd54, %r142;
+ cvt.u64.u32 %rd55, %r143;
+ // inline asm
+ call (%rd52), _rt_buffer_get_64, (%rd38, %r107, %r108, %rd54, %rd55, %rd29, %rd29);
+ // inline asm
+ ld.u32 %r9, [%rd52];
+ shr.u32 %r10, %r9, 16;
+ cvt.u16.u32 %rs31, %r10;
+ and.b16 %rs32, %rs31, 255;
+ cvt.u16.u32 %rs33, %r9;
+ or.b16 %rs34, %rs33, %rs32;
+ setp.eq.s16 %p17, %rs34, 0;
+ mov.f32 %f1253, %f50;
+ mov.f32 %f1254, %f50;
+ mov.f32 %f1255, %f50;
+ @%p17 bra BB0_9;
+
+ ld.u8 %rs35, [%rd52+1];
+ and.b16 %rs37, %rs33, 255;
+ cvt.rn.f32.u16 %f443, %rs37;
+ div.rn.f32 %f444, %f443, 0f437F0000;
+ fma.rn.f32 %f445, %f444, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f446, %rs35;
+ div.rn.f32 %f447, %f446, 0f437F0000;
+ fma.rn.f32 %f448, %f447, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f449, %rs32;
+ div.rn.f32 %f450, %f449, 0f437F0000;
+ fma.rn.f32 %f451, %f450, 0f40000000, 0fBF800000;
+ mul.f32 %f452, %f448, %f448;
+ fma.rn.f32 %f453, %f445, %f445, %f452;
+ fma.rn.f32 %f454, %f451, %f451, %f453;
+ sqrt.rn.f32 %f455, %f454;
+ rcp.rn.f32 %f456, %f455;
+ mul.f32 %f1253, %f445, %f456;
+ mul.f32 %f1254, %f448, %f456;
+ mul.f32 %f1255, %f451, %f456;
+
+BB0_9:
+ mul.f32 %f470, %f1246, %f1254;
+ mul.f32 %f471, %f1245, %f1255;
+ sub.f32 %f472, %f471, %f470;
+ mul.f32 %f473, %f1244, %f1255;
+ mul.f32 %f474, %f1246, %f1253;
+ sub.f32 %f475, %f474, %f473;
+ mul.f32 %f476, %f1245, %f1253;
+ mul.f32 %f477, %f1244, %f1254;
+ sub.f32 %f478, %f477, %f476;
+ setp.lt.u32 %p19, %r9, 16777216;
+ selp.f32 %f479, 0fBF800000, 0f3F800000, %p19;
+ mul.f32 %f480, %f472, %f479;
+ mul.f32 %f481, %f475, %f479;
+ mul.f32 %f482, %f478, %f479;
+ mul.f32 %f483, %f480, 0fBF3504F3;
+ mul.f32 %f484, %f481, 0fBF3504F3;
+ mul.f32 %f485, %f482, 0fBF3504F3;
+ fma.rn.f32 %f486, %f1253, 0fBED105EC, %f483;
+ fma.rn.f32 %f487, %f1254, 0fBED105EC, %f484;
+ fma.rn.f32 %f488, %f1255, 0fBED105EC, %f485;
+ add.f32 %f42, %f21, %f486;
+ add.f32 %f43, %f23, %f487;
+ add.f32 %f44, %f25, %f488;
+ ld.global.v2.u32 {%r149, %r150}, [pixelID];
+ cvt.u64.u32 %rd61, %r149;
+ cvt.u64.u32 %rd62, %r150;
+ mov.u64 %rd65, rnd_seeds;
+ cvta.global.u64 %rd60, %rd65;
+ // inline asm
+ call (%rd59), _rt_buffer_get_64, (%rd60, %r107, %r108, %rd61, %rd62, %rd29, %rd29);
+ // inline asm
+ ld.u32 %r153, [%rd59];
+ mad.lo.s32 %r11, %r153, 1664525, 1013904223;
+ ld.global.u32 %r154, [lightMeshBufferSize];
+ setp.eq.s32 %p20, %r154, 0;
+ mov.pred %p18, 0;
+ mov.u32 %r13, 0;
+ @%p20 bra BB0_10;
+
+ ld.global.f32 %f45, [lightPointSize];
+ mul.f32 %f46, %f12, 0f3456BF95;
+ mul.f32 %f47, %f13, 0f3456BF95;
+ mul.f32 %f48, %f14, 0f3456BF95;
+ and.b32 %r157, %r11, 16777215;
+ cvt.rn.f32.u32 %f502, %r157;
+ mul.f32 %f503, %f502, 0fB3800000;
+ fma.rn.f32 %f49, %f503, 0f3F333333, 0f3F800000;
+ mov.f32 %f50, 0f00000000;
+ mov.u32 %r407, 0;
+ abs.f32 %f626, %f47;
+ abs.f32 %f627, %f46;
+ max.f32 %f628, %f627, %f626;
+ abs.f32 %f629, %f48;
+ max.f32 %f630, %f628, %f629;
+ mov.u32 %r13, %r407;
+ mov.f32 %f51, %f50;
+ mov.f32 %f52, %f50;
+ mov.f32 %f53, %f50;
+ mov.f32 %f54, %f50;
+ mov.f32 %f55, %f50;
+ mov.f32 %f56, %f50;
+ mov.f32 %f57, %f50;
+ mov.f32 %f58, %f50;
+ mov.f32 %f59, %f50;
+ mov.f32 %f60, %f50;
+ mov.f32 %f61, %f50;
+ mov.f32 %f62, %f50;
+
+BB0_12:
+ mul.lo.s32 %r14, %r407, 3;
+ cvt.s64.s32 %rd68, %r14;
+ mov.u64 %rd72, lightMeshBuffer;
+ cvta.global.u64 %rd67, %rd72;
+ mov.u32 %r158, 1;
+ // inline asm
+ call (%rd66), _rt_buffer_get_64, (%rd67, %r158, %r123, %rd68, %rd29, %rd29, %rd29);
+ // inline asm
+ ld.f32 %f504, [%rd66];
+ sub.f32 %f505, %f504, %f7;
+ ld.f32 %f506, [%rd66+4];
+ sub.f32 %f507, %f506, %f8;
+ ld.f32 %f508, [%rd66+8];
+ sub.f32 %f509, %f508, %f9;
+ mul.f32 %f510, %f507, %f507;
+ fma.rn.f32 %f511, %f505, %f505, %f510;
+ fma.rn.f32 %f512, %f509, %f509, %f511;
+ sqrt.rn.f32 %f63, %f512;
+ rcp.rn.f32 %f513, %f63;
+ mul.f32 %f64, %f505, %f513;
+ mul.f32 %f65, %f507, %f513;
+ mul.f32 %f66, %f509, %f513;
+ mul.f32 %f514, %f1245, %f65;
+ fma.rn.f32 %f515, %f1244, %f64, %f514;
+ fma.rn.f32 %f67, %f1246, %f66, %f515;
+ setp.leu.f32 %p21, %f67, 0f00000000;
+ @%p21 bra BB0_28;
+
+ setp.ne.s32 %p23, %r1, 0;
+ mul.f32 %f516, %f63, %f63;
+ mul.f32 %f517, %f516, 0f40C90FDB;
+ div.rn.f32 %f518, %f45, %f517;
+ add.f32 %f68, %f518, %f518;
+ setp.gt.f32 %p24, %f68, %f49;
+ and.pred %p25, %p23, %p24;
+ mov.pred %p156, -1;
+ @%p25 bra BB0_30;
+
+ ld.global.f32 %f521, [lightInvCutoff];
+ mul.f32 %f69, %f63, %f521;
+ mov.f32 %f525, 0f40800000;
+ abs.f32 %f71, %f69;
+ setp.lt.f32 %p26, %f71, 0f00800000;
+ mul.f32 %f527, %f71, 0f4B800000;
+ selp.f32 %f528, 0fC3170000, 0fC2FE0000, %p26;
+ selp.f32 %f529, %f527, %f71, %p26;
+ mov.b32 %r160, %f529;
+ and.b32 %r161, %r160, 8388607;
+ or.b32 %r162, %r161, 1065353216;
+ mov.b32 %f530, %r162;
+ shr.u32 %r163, %r160, 23;
+ cvt.rn.f32.u32 %f531, %r163;
+ add.f32 %f532, %f528, %f531;
+ setp.gt.f32 %p27, %f530, 0f3FB504F3;
+ mul.f32 %f533, %f530, 0f3F000000;
+ add.f32 %f534, %f532, 0f3F800000;
+ selp.f32 %f535, %f533, %f530, %p27;
+ selp.f32 %f536, %f534, %f532, %p27;
+ add.f32 %f537, %f535, 0fBF800000;
+ add.f32 %f520, %f535, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f519,%f520;
+ // inline asm
+ add.f32 %f538, %f537, %f537;
+ mul.f32 %f539, %f519, %f538;
+ mul.f32 %f540, %f539, %f539;
+ mov.f32 %f541, 0f3C4CAF63;
+ mov.f32 %f542, 0f3B18F0FE;
+ fma.rn.f32 %f543, %f542, %f540, %f541;
+ mov.f32 %f544, 0f3DAAAABD;
+ fma.rn.f32 %f545, %f543, %f540, %f544;
+ mul.rn.f32 %f546, %f545, %f540;
+ mul.rn.f32 %f547, %f546, %f539;
+ sub.f32 %f548, %f537, %f539;
+ neg.f32 %f549, %f539;
+ add.f32 %f550, %f548, %f548;
+ fma.rn.f32 %f551, %f549, %f537, %f550;
+ mul.rn.f32 %f552, %f519, %f551;
+ add.f32 %f553, %f547, %f539;
+ sub.f32 %f554, %f539, %f553;
+ add.f32 %f555, %f547, %f554;
+ add.f32 %f556, %f552, %f555;
+ add.f32 %f557, %f553, %f556;
+ sub.f32 %f558, %f553, %f557;
+ add.f32 %f559, %f556, %f558;
+ mov.f32 %f560, 0f3F317200;
+ mul.rn.f32 %f561, %f536, %f560;
+ mov.f32 %f562, 0f35BFBE8E;
+ mul.rn.f32 %f563, %f536, %f562;
+ add.f32 %f564, %f561, %f557;
+ sub.f32 %f565, %f561, %f564;
+ add.f32 %f566, %f557, %f565;
+ add.f32 %f567, %f559, %f566;
+ add.f32 %f568, %f563, %f567;
+ add.f32 %f569, %f564, %f568;
+ sub.f32 %f570, %f564, %f569;
+ add.f32 %f571, %f568, %f570;
+ mul.rn.f32 %f572, %f525, %f569;
+ neg.f32 %f573, %f572;
+ fma.rn.f32 %f574, %f525, %f569, %f573;
+ fma.rn.f32 %f575, %f525, %f571, %f574;
+ mov.f32 %f576, 0f00000000;
+ fma.rn.f32 %f577, %f576, %f569, %f575;
+ add.rn.f32 %f578, %f572, %f577;
+ neg.f32 %f579, %f578;
+ add.rn.f32 %f580, %f572, %f579;
+ add.rn.f32 %f581, %f580, %f577;
+ mov.b32 %r164, %f578;
+ setp.eq.s32 %p28, %r164, 1118925336;
+ add.s32 %r165, %r164, -1;
+ mov.b32 %f582, %r165;
+ add.f32 %f583, %f581, 0f37000000;
+ selp.f32 %f584, %f582, %f578, %p28;
+ selp.f32 %f72, %f583, %f581, %p28;
+ mul.f32 %f585, %f584, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f586, %f585;
+ mov.f32 %f587, 0fBF317200;
+ fma.rn.f32 %f588, %f586, %f587, %f584;
+ mov.f32 %f589, 0fB5BFBE8E;
+ fma.rn.f32 %f590, %f586, %f589, %f588;
+ mul.f32 %f591, %f590, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f592, %f591;
+ add.f32 %f593, %f586, 0f00000000;
+ ex2.approx.f32 %f594, %f593;
+ mul.f32 %f595, %f592, %f594;
+ setp.lt.f32 %p29, %f584, 0fC2D20000;
+ selp.f32 %f596, 0f00000000, %f595, %p29;
+ setp.gt.f32 %p30, %f584, 0f42D20000;
+ selp.f32 %f1269, 0f7F800000, %f596, %p30;
+ setp.eq.f32 %p31, %f1269, 0f7F800000;
+ @%p31 bra BB0_16;
+
+ fma.rn.f32 %f1269, %f1269, %f72, %f1269;
+
+BB0_16:
+ mov.f32 %f1240, 0f40000000;
+ cvt.rzi.f32.f32 %f1239, %f1240;
+ add.f32 %f1238, %f1239, %f1239;
+ mov.f32 %f1237, 0f40800000;
+ sub.f32 %f1236, %f1237, %f1238;
+ abs.f32 %f1235, %f1236;
+ setp.lt.f32 %p32, %f69, 0f00000000;
+ setp.eq.f32 %p33, %f1235, 0f3F800000;
+ and.pred %p1, %p32, %p33;
+ mov.b32 %r166, %f1269;
+ xor.b32 %r167, %r166, -2147483648;
+ mov.b32 %f597, %r167;
+ selp.f32 %f1271, %f597, %f1269, %p1;
+ setp.eq.f32 %p34, %f69, 0f00000000;
+ @%p34 bra BB0_19;
+ bra.uni BB0_17;
+
+BB0_19:
+ add.f32 %f600, %f69, %f69;
+ selp.f32 %f1271, %f600, 0f00000000, %p33;
+ bra.uni BB0_20;
+
+BB0_17:
+ setp.geu.f32 %p35, %f69, 0f00000000;
+ @%p35 bra BB0_20;
+
+ mov.f32 %f1243, 0f40800000;
+ cvt.rzi.f32.f32 %f599, %f1243;
+ setp.neu.f32 %p36, %f599, 0f40800000;
+ selp.f32 %f1271, 0f7FFFFFFF, %f1271, %p36;
+
+BB0_20:
+ add.f32 %f601, %f71, 0f40800000;
+ mov.b32 %r168, %f601;
+ setp.lt.s32 %p38, %r168, 2139095040;
+ @%p38 bra BB0_25;
+
+ setp.gtu.f32 %p39, %f71, 0f7F800000;
+ @%p39 bra BB0_24;
+ bra.uni BB0_22;
+
+BB0_24:
+ add.f32 %f1271, %f69, 0f40800000;
+ bra.uni BB0_25;
+
+BB0_22:
+ setp.neu.f32 %p40, %f71, 0f7F800000;
+ @%p40 bra BB0_25;
+
+ selp.f32 %f1271, 0fFF800000, 0f7F800000, %p1;
+
+BB0_25:
+ mov.u32 %r393, 1;
+ mov.u64 %rd293, lightMeshBuffer;
+ cvta.global.u64 %rd292, %rd293;
+ mul.lo.s32 %r392, %r407, 3;
+ mov.f32 %f602, 0f3F800000;
+ sub.f32 %f603, %f602, %f1271;
+ setp.eq.f32 %p41, %f69, 0f3F800000;
+ selp.f32 %f604, 0f00000000, %f603, %p41;
+ cvt.sat.f32.f32 %f605, %f604;
+ mul.f32 %f606, %f68, %f605;
+ add.s32 %r171, %r392, 1;
+ cvt.s64.s32 %rd75, %r171;
+ // inline asm
+ call (%rd73), _rt_buffer_get_64, (%rd292, %r393, %r123, %rd75, %rd29, %rd29, %rd29);
+ // inline asm
+ ld.f32 %f607, [%rd73];
+ mul.f32 %f608, %f64, %f607;
+ ld.f32 %f609, [%rd73+4];
+ mul.f32 %f610, %f65, %f609;
+ neg.f32 %f611, %f610;
+ sub.f32 %f612, %f611, %f608;
+ ld.f32 %f613, [%rd73+8];
+ mul.f32 %f614, %f66, %f613;
+ sub.f32 %f615, %f612, %f614;
+ cvt.sat.f32.f32 %f616, %f615;
+ mul.f32 %f83, %f606, %f616;
+ setp.leu.f32 %p42, %f83, 0f3727C5AC;
+ @%p42 bra BB0_27;
+
+ mov.u32 %r406, 1;
+ mov.u64 %rd295, lightMeshBuffer;
+ cvta.global.u64 %rd294, %rd295;
+ mul.lo.s32 %r405, %r407, 3;
+ cvt.sat.f32.f32 %f625, %f67;
+ add.u64 %rd80, %SP, 12;
+ cvta.to.local.u64 %rd87, %rd80;
+ max.f32 %f623, %f630, %f367;
+ sub.f32 %f624, %f63, %f623;
+ mov.u32 %r177, 1065353216;
+ st.local.u32 [%rd87], %r177;
+ ld.global.u32 %r172, [root];
+ // inline asm
+ call _rt_trace_64, (%r172, %f12, %f13, %f14, %f64, %f65, %f66, %r406, %f623, %f624, %rd80, %r108);
+ // inline asm
+ add.s32 %r178, %r405, 2;
+ cvt.s64.s32 %rd83, %r178;
+ // inline asm
+ call (%rd81), _rt_buffer_get_64, (%rd294, %r406, %r123, %rd83, %rd29, %rd29, %rd29);
+ // inline asm
+ ld.f32 %f632, [%rd81];
+ ld.local.f32 %f633, [%rd87];
+ mul.f32 %f634, %f633, %f632;
+ ld.f32 %f635, [%rd81+4];
+ mul.f32 %f636, %f633, %f635;
+ ld.f32 %f637, [%rd81+8];
+ mul.f32 %f638, %f633, %f637;
+ mul.f32 %f639, %f83, %f634;
+ mul.f32 %f640, %f83, %f636;
+ mul.f32 %f641, %f83, %f638;
+ fma.rn.f32 %f53, %f625, %f639, %f53;
+ fma.rn.f32 %f52, %f625, %f640, %f52;
+ fma.rn.f32 %f51, %f625, %f641, %f51;
+ mul.f32 %f642, %f24, %f65;
+ fma.rn.f32 %f643, %f22, %f64, %f642;
+ fma.rn.f32 %f644, %f26, %f66, %f643;
+ cvt.sat.f32.f32 %f645, %f644;
+ fma.rn.f32 %f56, %f639, %f645, %f56;
+ fma.rn.f32 %f55, %f640, %f645, %f55;
+ fma.rn.f32 %f54, %f645, %f641, %f54;
+ mul.f32 %f646, %f34, %f65;
+ fma.rn.f32 %f647, %f33, %f64, %f646;
+ fma.rn.f32 %f648, %f35, %f66, %f647;
+ cvt.sat.f32.f32 %f649, %f648;
+ fma.rn.f32 %f59, %f639, %f649, %f59;
+ fma.rn.f32 %f58, %f640, %f649, %f58;
+ fma.rn.f32 %f57, %f641, %f649, %f57;
+ mul.f32 %f650, %f43, %f65;
+ fma.rn.f32 %f651, %f42, %f64, %f650;
+ fma.rn.f32 %f652, %f44, %f66, %f651;
+ cvt.sat.f32.f32 %f653, %f652;
+ fma.rn.f32 %f62, %f639, %f653, %f62;
+ fma.rn.f32 %f61, %f640, %f653, %f61;
+ fma.rn.f32 %f60, %f641, %f653, %f60;
+ add.f32 %f50, %f50, %f633;
+
+BB0_27:
+ add.s32 %r13, %r13, 1;
+
+BB0_28:
+ ld.global.u32 %r179, [lightMeshBufferSize];
+ add.s32 %r407, %r407, 1;
+ setp.lt.u32 %p44, %r407, %r179;
+ @%p44 bra BB0_12;
+ bra.uni BB0_29;
+
+BB0_10:
+ mov.f32 %f51, %f50;
+ mov.f32 %f52, %f50;
+ mov.f32 %f53, %f50;
+ mov.f32 %f54, %f50;
+ mov.f32 %f55, %f50;
+ mov.f32 %f56, %f50;
+ mov.f32 %f57, %f50;
+ mov.f32 %f58, %f50;
+ mov.f32 %f59, %f50;
+ mov.f32 %f60, %f50;
+ mov.f32 %f61, %f50;
+ mov.f32 %f62, %f50;
+
+BB0_29:
+ mov.pred %p156, %p18;
+
+BB0_30:
+ cvt.rn.f32.s32 %f654, %r13;
+ mov.f32 %f655, 0f3F800000;
+ max.f32 %f656, %f654, %f655;
+ rcp.rn.f32 %f657, %f656;
+ mul.f32 %f1368, %f53, %f657;
+ mul.f32 %f1369, %f52, %f657;
+ mul.f32 %f1370, %f51, %f657;
+ div.rn.f32 %f1371, %f50, %f656;
+ mul.f32 %f1365, %f56, %f657;
+ mul.f32 %f1366, %f55, %f657;
+ mul.f32 %f1367, %f54, %f657;
+ mul.f32 %f1362, %f59, %f657;
+ mul.f32 %f1363, %f58, %f657;
+ mul.f32 %f1364, %f57, %f657;
+ mul.f32 %f1359, %f62, %f657;
+ mul.f32 %f1360, %f61, %f657;
+ mul.f32 %f1361, %f60, %f657;
+ @!%p156 bra BB0_83;
+ bra.uni BB0_31;
+
+BB0_31:
+ abs.f32 %f1242, %f1246;
+ abs.f32 %f1241, %f1244;
+ setp.gt.f32 %p45, %f1241, %f1242;
+ neg.f32 %f670, %f1245;
+ selp.f32 %f671, %f670, 0f00000000, %p45;
+ neg.f32 %f672, %f1246;
+ selp.f32 %f673, %f1244, %f672, %p45;
+ selp.f32 %f674, 0f00000000, %f1245, %p45;
+ mul.f32 %f675, %f673, %f673;
+ fma.rn.f32 %f676, %f671, %f671, %f675;
+ fma.rn.f32 %f677, %f674, %f674, %f676;
+ sqrt.rn.f32 %f678, %f677;
+ rcp.rn.f32 %f679, %f678;
+ mul.f32 %f149, %f671, %f679;
+ mul.f32 %f150, %f673, %f679;
+ mul.f32 %f151, %f674, %f679;
+ mov.f32 %f669, 0f00000000;
+ setp.lt.s32 %p46, %r1, 1;
+ mov.f32 %f1323, %f669;
+ mov.f32 %f1324, %f669;
+ mov.f32 %f1325, %f669;
+ mov.f32 %f1326, %f669;
+ mov.f32 %f1327, %f669;
+ mov.f32 %f1328, %f669;
+ mov.f32 %f1329, %f669;
+ mov.f32 %f1330, %f669;
+ mov.f32 %f1331, %f669;
+ mov.f32 %f1332, %f669;
+ mov.f32 %f1333, %f669;
+ mov.f32 %f1334, %f669;
+ @%p46 bra BB0_82;
+
+ mad.lo.s32 %r414, %r153, 1664525, 1013904223;
+ cvt.rn.f32.s32 %f692, %r1;
+ rcp.rn.f32 %f152, %f692;
+ add.u64 %rd89, %SP, 16;
+ cvta.to.local.u64 %rd5, %rd89;
+ mul.f32 %f153, %f12, 0f3456BF95;
+ mul.f32 %f154, %f13, 0f3456BF95;
+ mul.f32 %f155, %f14, 0f3456BF95;
+ add.u64 %rd90, %SP, 0;
+ cvta.to.local.u64 %rd6, %rd90;
+ mul.f32 %f693, %f1244, %f150;
+ mul.f32 %f694, %f1245, %f149;
+ sub.f32 %f156, %f694, %f693;
+ mul.f32 %f695, %f1246, %f149;
+ mul.f32 %f696, %f1244, %f151;
+ sub.f32 %f157, %f696, %f695;
+ mul.f32 %f697, %f1245, %f151;
+ mul.f32 %f698, %f1246, %f150;
+ sub.f32 %f158, %f698, %f697;
+ mov.f32 %f1323, 0f00000000;
+ mov.u32 %r180, 0;
+ abs.f32 %f699, %f154;
+ abs.f32 %f700, %f153;
+ max.f32 %f701, %f700, %f699;
+ abs.f32 %f702, %f155;
+ max.f32 %f703, %f701, %f702;
+ mov.u32 %r411, %r180;
+ mov.f32 %f1324, %f1323;
+ mov.f32 %f1325, %f1323;
+ mov.f32 %f1326, %f1323;
+ mov.f32 %f1327, %f1323;
+ mov.f32 %f1328, %f1323;
+ mov.f32 %f1329, %f1323;
+ mov.f32 %f1330, %f1323;
+ mov.f32 %f1331, %f1323;
+ mov.f32 %f1332, %f1323;
+ mov.f32 %f1333, %f1323;
+ mov.f32 %f1334, %f1323;
+
+BB0_33:
+ cvt.rn.f32.s32 %f171, %r411;
+ max.f32 %f172, %f703, %f367;
+ mov.u32 %r413, %r180;
+
+BB0_34:
+ mad.lo.s32 %r182, %r414, 1664525, 1013904223;
+ and.b32 %r183, %r182, 16777215;
+ cvt.rn.f32.u32 %f705, %r183;
+ fma.rn.f32 %f706, %f705, 0f33800000, %f171;
+ mul.f32 %f185, %f152, %f706;
+ mad.lo.s32 %r414, %r182, 1664525, 1013904223;
+ and.b32 %r184, %r414, 16777215;
+ cvt.rn.f32.u32 %f707, %r184;
+ cvt.rn.f32.s32 %f708, %r413;
+ fma.rn.f32 %f709, %f707, 0f33800000, %f708;
+ mul.f32 %f710, %f152, %f709;
+ mul.f32 %f711, %f185, %f185;
+ sub.f32 %f713, %f655, %f711;
+ mov.f32 %f714, 0f00000000;
+ max.f32 %f715, %f714, %f713;
+ sqrt.rn.f32 %f186, %f715;
+ mul.f32 %f1341, %f710, 0f40C90FDB;
+ abs.f32 %f188, %f1341;
+ setp.neu.f32 %p47, %f188, 0f7F800000;
+ mov.f32 %f1335, %f1341;
+ @%p47 bra BB0_36;
+
+ mul.rn.f32 %f1335, %f1341, %f714;
+
+BB0_36:
+ mul.f32 %f717, %f1335, 0f3F22F983;
+ cvt.rni.s32.f32 %r424, %f717;
+ cvt.rn.f32.s32 %f718, %r424;
+ neg.f32 %f719, %f718;
+ mov.f32 %f720, 0f3FC90FDA;
+ fma.rn.f32 %f721, %f719, %f720, %f1335;
+ mov.f32 %f722, 0f33A22168;
+ fma.rn.f32 %f723, %f719, %f722, %f721;
+ mov.f32 %f724, 0f27C234C5;
+ fma.rn.f32 %f1336, %f719, %f724, %f723;
+ abs.f32 %f725, %f1335;
+ setp.leu.f32 %p48, %f725, 0f47CE4780;
+ @%p48 bra BB0_47;
+
+ mov.b32 %r25, %f1335;
+ shr.u32 %r26, %r25, 23;
+ shl.b32 %r187, %r25, 8;
+ or.b32 %r27, %r187, -2147483648;
+ mov.u32 %r415, 0;
+ mov.u64 %rd297, 0;
+ mov.u64 %rd296, %rd5;
+ mov.u32 %r416, %r415;
+
+BB0_38:
+ .pragma "nounroll";
+ shl.b64 %rd92, %rd297, 2;
+ mov.u64 %rd93, __cudart_i2opi_f;
+ add.s64 %rd94, %rd93, %rd92;
+ ld.const.u32 %r190, [%rd94];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r188, %r190, %r27, %r416;
+ madc.hi.u32 %r416, %r190, %r27, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd296], %r188;
+ add.s32 %r415, %r415, 1;
+ cvt.s64.s32 %rd297, %r415;
+ mul.wide.s32 %rd95, %r415, 4;
+ add.s64 %rd296, %rd5, %rd95;
+ setp.ne.s32 %p49, %r415, 6;
+ @%p49 bra BB0_38;
+
+ and.b32 %r193, %r26, 255;
+ add.s32 %r194, %r193, -128;
+ shr.u32 %r195, %r194, 5;
+ and.b32 %r32, %r25, -2147483648;
+ st.local.u32 [%rd5+24], %r416;
+ mov.u32 %r196, 6;
+ sub.s32 %r197, %r196, %r195;
+ mul.wide.s32 %rd96, %r197, 4;
+ add.s64 %rd12, %rd5, %rd96;
+ ld.local.u32 %r417, [%rd12];
+ ld.local.u32 %r418, [%rd12+-4];
+ and.b32 %r35, %r26, 31;
+ setp.eq.s32 %p50, %r35, 0;
+ @%p50 bra BB0_41;
+
+ mov.u32 %r198, 32;
+ sub.s32 %r199, %r198, %r35;
+ shr.u32 %r200, %r418, %r199;
+ shl.b32 %r201, %r417, %r35;
+ add.s32 %r417, %r200, %r201;
+ ld.local.u32 %r202, [%rd12+-8];
+ shr.u32 %r203, %r202, %r199;
+ shl.b32 %r204, %r418, %r35;
+ add.s32 %r418, %r203, %r204;
+
+BB0_41:
+ shr.u32 %r205, %r418, 30;
+ shl.b32 %r206, %r417, 2;
+ add.s32 %r419, %r205, %r206;
+ shl.b32 %r41, %r418, 2;
+ shr.u32 %r207, %r419, 31;
+ shr.u32 %r208, %r417, 30;
+ add.s32 %r42, %r207, %r208;
+ setp.eq.s32 %p51, %r207, 0;
+ @%p51 bra BB0_42;
+ bra.uni BB0_43;
+
+BB0_42:
+ mov.u32 %r420, %r32;
+ mov.u32 %r421, %r41;
+ bra.uni BB0_44;
+
+BB0_43:
+ not.b32 %r209, %r419;
+ neg.s32 %r421, %r41;
+ setp.eq.s32 %p52, %r41, 0;
+ selp.u32 %r210, 1, 0, %p52;
+ add.s32 %r419, %r210, %r209;
+ xor.b32 %r420, %r32, -2147483648;
+
+BB0_44:
+ clz.b32 %r423, %r419;
+ setp.eq.s32 %p53, %r423, 0;
+ shl.b32 %r211, %r419, %r423;
+ mov.u32 %r212, 32;
+ sub.s32 %r213, %r212, %r423;
+ shr.u32 %r214, %r421, %r213;
+ add.s32 %r215, %r214, %r211;
+ selp.b32 %r50, %r419, %r215, %p53;
+ mov.u32 %r216, -921707870;
+ mul.hi.u32 %r422, %r50, %r216;
+ setp.eq.s32 %p54, %r32, 0;
+ neg.s32 %r217, %r42;
+ selp.b32 %r424, %r42, %r217, %p54;
+ setp.lt.s32 %p55, %r422, 1;
+ @%p55 bra BB0_46;
+
+ mul.lo.s32 %r218, %r50, -921707870;
+ shr.u32 %r219, %r218, 31;
+ shl.b32 %r220, %r422, 1;
+ add.s32 %r422, %r219, %r220;
+ add.s32 %r423, %r423, 1;
+
+BB0_46:
+ mov.u32 %r221, 126;
+ sub.s32 %r222, %r221, %r423;
+ shl.b32 %r223, %r222, 23;
+ add.s32 %r224, %r422, 1;
+ shr.u32 %r225, %r224, 7;
+ add.s32 %r226, %r225, 1;
+ shr.u32 %r227, %r226, 1;
+ add.s32 %r228, %r227, %r223;
+ or.b32 %r229, %r228, %r420;
+ mov.b32 %f1336, %r229;
+
+BB0_47:
+ mul.rn.f32 %f194, %f1336, %f1336;
+ add.s32 %r58, %r424, 1;
+ and.b32 %r59, %r58, 1;
+ setp.eq.s32 %p56, %r59, 0;
+ @%p56 bra BB0_49;
+ bra.uni BB0_48;
+
+BB0_49:
+ mov.f32 %f728, 0f3C08839E;
+ mov.f32 %f729, 0fB94CA1F9;
+ fma.rn.f32 %f1337, %f729, %f194, %f728;
+ bra.uni BB0_50;
+
+BB0_48:
+ mov.f32 %f726, 0fBAB6061A;
+ mov.f32 %f727, 0f37CCF5CE;
+ fma.rn.f32 %f1337, %f727, %f194, %f726;
+
+BB0_50:
+ @%p56 bra BB0_52;
+ bra.uni BB0_51;
+
+BB0_52:
+ mov.f32 %f733, 0fBE2AAAA3;
+ fma.rn.f32 %f734, %f1337, %f194, %f733;
+ fma.rn.f32 %f1338, %f734, %f194, %f714;
+ bra.uni BB0_53;
+
+BB0_51:
+ mov.f32 %f730, 0f3D2AAAA5;
+ fma.rn.f32 %f731, %f1337, %f194, %f730;
+ mov.f32 %f732, 0fBF000000;
+ fma.rn.f32 %f1338, %f731, %f194, %f732;
+
+BB0_53:
+ fma.rn.f32 %f1339, %f1338, %f1336, %f1336;
+ @%p56 bra BB0_55;
+
+ fma.rn.f32 %f1339, %f1338, %f194, %f655;
+
+BB0_55:
+ and.b32 %r230, %r58, 2;
+ setp.eq.s32 %p59, %r230, 0;
+ @%p59 bra BB0_57;
+
+ mov.f32 %f738, 0fBF800000;
+ fma.rn.f32 %f1339, %f1339, %f738, %f714;
+
+BB0_57:
+ @%p47 bra BB0_59;
+
+ mul.rn.f32 %f1341, %f1341, %f714;
+
+BB0_59:
+ mul.f32 %f740, %f1341, 0f3F22F983;
+ cvt.rni.s32.f32 %r434, %f740;
+ cvt.rn.f32.s32 %f741, %r434;
+ neg.f32 %f742, %f741;
+ fma.rn.f32 %f744, %f742, %f720, %f1341;
+ fma.rn.f32 %f746, %f742, %f722, %f744;
+ fma.rn.f32 %f1342, %f742, %f724, %f746;
+ abs.f32 %f748, %f1341;
+ setp.leu.f32 %p61, %f748, 0f47CE4780;
+ @%p61 bra BB0_70;
+
+ mov.b32 %r61, %f1341;
+ shr.u32 %r62, %r61, 23;
+ shl.b32 %r233, %r61, 8;
+ or.b32 %r63, %r233, -2147483648;
+ mov.u32 %r425, 0;
+ mov.u64 %rd298, %rd5;
+ mov.u64 %rd299, %rd29;
+ mov.u32 %r426, %r425;
+
+BB0_61:
+ .pragma "nounroll";
+ shl.b64 %rd98, %rd299, 2;
+ mov.u64 %rd99, __cudart_i2opi_f;
+ add.s64 %rd100, %rd99, %rd98;
+ ld.const.u32 %r236, [%rd100];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r234, %r236, %r63, %r426;
+ madc.hi.u32 %r426, %r236, %r63, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd298], %r234;
+ add.s32 %r425, %r425, 1;
+ cvt.s64.s32 %rd299, %r425;
+ mul.wide.s32 %rd101, %r425, 4;
+ add.s64 %rd298, %rd5, %rd101;
+ setp.ne.s32 %p62, %r425, 6;
+ @%p62 bra BB0_61;
+
+ and.b32 %r239, %r62, 255;
+ add.s32 %r240, %r239, -128;
+ shr.u32 %r241, %r240, 5;
+ and.b32 %r68, %r61, -2147483648;
+ st.local.u32 [%rd5+24], %r426;
+ mov.u32 %r242, 6;
+ sub.s32 %r243, %r242, %r241;
+ mul.wide.s32 %rd102, %r243, 4;
+ add.s64 %rd18, %rd5, %rd102;
+ ld.local.u32 %r427, [%rd18];
+ ld.local.u32 %r428, [%rd18+-4];
+ and.b32 %r71, %r62, 31;
+ setp.eq.s32 %p63, %r71, 0;
+ @%p63 bra BB0_64;
+
+ mov.u32 %r244, 32;
+ sub.s32 %r245, %r244, %r71;
+ shr.u32 %r246, %r428, %r245;
+ shl.b32 %r247, %r427, %r71;
+ add.s32 %r427, %r246, %r247;
+ ld.local.u32 %r248, [%rd18+-8];
+ shr.u32 %r249, %r248, %r245;
+ shl.b32 %r250, %r428, %r71;
+ add.s32 %r428, %r249, %r250;
+
+BB0_64:
+ shr.u32 %r251, %r428, 30;
+ shl.b32 %r252, %r427, 2;
+ add.s32 %r429, %r251, %r252;
+ shl.b32 %r77, %r428, 2;
+ shr.u32 %r253, %r429, 31;
+ shr.u32 %r254, %r427, 30;
+ add.s32 %r78, %r253, %r254;
+ setp.eq.s32 %p64, %r253, 0;
+ @%p64 bra BB0_65;
+ bra.uni BB0_66;
+
+BB0_65:
+ mov.u32 %r430, %r68;
+ mov.u32 %r431, %r77;
+ bra.uni BB0_67;
+
+BB0_66:
+ not.b32 %r255, %r429;
+ neg.s32 %r431, %r77;
+ setp.eq.s32 %p65, %r77, 0;
+ selp.u32 %r256, 1, 0, %p65;
+ add.s32 %r429, %r256, %r255;
+ xor.b32 %r430, %r68, -2147483648;
+
+BB0_67:
+ clz.b32 %r433, %r429;
+ setp.eq.s32 %p66, %r433, 0;
+ shl.b32 %r257, %r429, %r433;
+ mov.u32 %r258, 32;
+ sub.s32 %r259, %r258, %r433;
+ shr.u32 %r260, %r431, %r259;
+ add.s32 %r261, %r260, %r257;
+ selp.b32 %r86, %r429, %r261, %p66;
+ mov.u32 %r262, -921707870;
+ mul.hi.u32 %r432, %r86, %r262;
+ setp.eq.s32 %p67, %r68, 0;
+ neg.s32 %r263, %r78;
+ selp.b32 %r434, %r78, %r263, %p67;
+ setp.lt.s32 %p68, %r432, 1;
+ @%p68 bra BB0_69;
+
+ mul.lo.s32 %r264, %r86, -921707870;
+ shr.u32 %r265, %r264, 31;
+ shl.b32 %r266, %r432, 1;
+ add.s32 %r432, %r265, %r266;
+ add.s32 %r433, %r433, 1;
+
+BB0_69:
+ mov.u32 %r267, 126;
+ sub.s32 %r268, %r267, %r433;
+ shl.b32 %r269, %r268, 23;
+ add.s32 %r270, %r432, 1;
+ shr.u32 %r271, %r270, 7;
+ add.s32 %r272, %r271, 1;
+ shr.u32 %r273, %r272, 1;
+ add.s32 %r274, %r273, %r269;
+ or.b32 %r275, %r274, %r430;
+ mov.b32 %f1342, %r275;
+
+BB0_70:
+ mul.rn.f32 %f211, %f1342, %f1342;
+ and.b32 %r94, %r434, 1;
+ setp.eq.s32 %p69, %r94, 0;
+ @%p69 bra BB0_72;
+ bra.uni BB0_71;
+
+BB0_72:
+ mov.f32 %f751, 0f3C08839E;
+ mov.f32 %f752, 0fB94CA1F9;
+ fma.rn.f32 %f1343, %f752, %f211, %f751;
+ bra.uni BB0_73;
+
+BB0_71:
+ mov.f32 %f749, 0fBAB6061A;
+ mov.f32 %f750, 0f37CCF5CE;
+ fma.rn.f32 %f1343, %f750, %f211, %f749;
+
+BB0_73:
+ @%p69 bra BB0_75;
+ bra.uni BB0_74;
+
+BB0_75:
+ mov.f32 %f756, 0fBE2AAAA3;
+ fma.rn.f32 %f757, %f1343, %f211, %f756;
+ fma.rn.f32 %f1344, %f757, %f211, %f714;
+ bra.uni BB0_76;
+
+BB0_74:
+ mov.f32 %f753, 0f3D2AAAA5;
+ fma.rn.f32 %f754, %f1343, %f211, %f753;
+ mov.f32 %f755, 0fBF000000;
+ fma.rn.f32 %f1344, %f754, %f211, %f755;
+
+BB0_76:
+ fma.rn.f32 %f1345, %f1344, %f1342, %f1342;
+ @%p69 bra BB0_78;
+
+ fma.rn.f32 %f1345, %f1344, %f211, %f655;
+
+BB0_78:
+ and.b32 %r276, %r434, 2;
+ setp.eq.s32 %p72, %r276, 0;
+ @%p72 bra BB0_80;
+
+ mov.f32 %f761, 0fBF800000;
+ fma.rn.f32 %f1345, %f1345, %f761, %f714;
+
+BB0_80:
+ mul.f32 %f770, %f186, %f1339;
+ mul.f32 %f771, %f186, %f1345;
+ mul.f32 %f772, %f149, %f771;
+ mul.f32 %f773, %f150, %f771;
+ mul.f32 %f774, %f151, %f771;
+ fma.rn.f32 %f775, %f158, %f770, %f772;
+ fma.rn.f32 %f776, %f157, %f770, %f773;
+ fma.rn.f32 %f777, %f156, %f770, %f774;
+ fma.rn.f32 %f765, %f1244, %f185, %f775;
+ fma.rn.f32 %f766, %f1245, %f185, %f776;
+ fma.rn.f32 %f767, %f1246, %f185, %f777;
+ mov.u32 %r278, 0;
+ st.local.u32 [%rd6+8], %r278;
+ st.local.u32 [%rd6+4], %r278;
+ st.local.u32 [%rd6], %r278;
+ ld.global.u32 %r277, [root];
+ mov.f32 %f769, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r277, %f12, %f13, %f14, %f765, %f766, %f767, %r278, %f172, %f769, %rd90, %r123);
+ // inline asm
+ ld.local.f32 %f778, [%rd6];
+ max.f32 %f780, %f778, %f714;
+ ld.local.f32 %f781, [%rd6+4];
+ max.f32 %f782, %f781, %f714;
+ ld.local.f32 %f783, [%rd6+8];
+ max.f32 %f784, %f783, %f714;
+ mul.f32 %f785, %f24, %f766;
+ fma.rn.f32 %f786, %f22, %f765, %f785;
+ fma.rn.f32 %f787, %f26, %f767, %f786;
+ cvt.sat.f32.f32 %f788, %f787;
+ fma.rn.f32 %f1328, %f780, %f788, %f1328;
+ fma.rn.f32 %f1327, %f782, %f788, %f1327;
+ fma.rn.f32 %f1326, %f784, %f788, %f1326;
+ mul.f32 %f789, %f34, %f766;
+ fma.rn.f32 %f790, %f33, %f765, %f789;
+ fma.rn.f32 %f791, %f35, %f767, %f790;
+ cvt.sat.f32.f32 %f792, %f791;
+ fma.rn.f32 %f1331, %f780, %f792, %f1331;
+ fma.rn.f32 %f1330, %f782, %f792, %f1330;
+ fma.rn.f32 %f1329, %f784, %f792, %f1329;
+ mul.f32 %f793, %f43, %f766;
+ fma.rn.f32 %f794, %f42, %f765, %f793;
+ fma.rn.f32 %f795, %f44, %f767, %f794;
+ cvt.sat.f32.f32 %f796, %f795;
+ fma.rn.f32 %f1334, %f780, %f796, %f1334;
+ fma.rn.f32 %f1333, %f782, %f796, %f1333;
+ fma.rn.f32 %f1332, %f784, %f796, %f1332;
+ mul.f32 %f797, %f1245, %f766;
+ fma.rn.f32 %f798, %f1244, %f765, %f797;
+ fma.rn.f32 %f799, %f1246, %f767, %f798;
+ cvt.sat.f32.f32 %f800, %f799;
+ fma.rn.f32 %f1325, %f780, %f800, %f1325;
+ fma.rn.f32 %f1324, %f782, %f800, %f1324;
+ fma.rn.f32 %f1323, %f784, %f800, %f1323;
+ add.s32 %r413, %r413, 1;
+ setp.lt.s32 %p73, %r413, %r1;
+ @%p73 bra BB0_34;
+
+ add.s32 %r411, %r411, 1;
+ setp.lt.s32 %p74, %r411, %r1;
+ @%p74 bra BB0_33;
+
+BB0_82:
+ mul.lo.s32 %r280, %r1, %r1;
+ cvt.rn.f32.s32 %f801, %r280;
+ rcp.rn.f32 %f802, %f801;
+ mul.f32 %f803, %f1325, %f802;
+ mul.f32 %f804, %f1324, %f802;
+ mul.f32 %f805, %f1323, %f802;
+ div.rn.f32 %f1371, %f669, %f801;
+ mul.f32 %f1365, %f1328, %f802;
+ mul.f32 %f1366, %f1327, %f802;
+ mul.f32 %f1367, %f1326, %f802;
+ mul.f32 %f1362, %f1331, %f802;
+ mul.f32 %f1363, %f1330, %f802;
+ mul.f32 %f1364, %f1329, %f802;
+ mul.f32 %f1359, %f1334, %f802;
+ mul.f32 %f1360, %f1333, %f802;
+ mul.f32 %f1361, %f1332, %f802;
+ fma.rn.f32 %f1368, %f1325, %f802, %f803;
+ fma.rn.f32 %f1369, %f1324, %f802, %f804;
+ fma.rn.f32 %f1370, %f1323, %f802, %f805;
+
+BB0_83:
+ ld.global.u32 %r436, [imageEnabled];
+ and.b32 %r281, %r436, 8;
+ setp.eq.s32 %p75, %r281, 0;
+ @%p75 bra BB0_96;
+
+ mov.u32 %r394, 2;
+ cvt.u64.u32 %rd106, %r3;
+ cvt.u64.u32 %rd107, %r4;
+ mov.u64 %rd110, image_Mask;
+ cvta.global.u64 %rd105, %rd110;
+ // inline asm
+ call (%rd104), _rt_buffer_get_64, (%rd105, %r394, %r394, %rd106, %rd107, %rd29, %rd29);
+ // inline asm
+ mov.f32 %f809, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f810, %f809;
+ fma.rn.f32 %f811, %f810, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f273, %f811;
+ abs.f32 %f274, %f1371;
+ setp.lt.f32 %p76, %f274, 0f00800000;
+ mul.f32 %f812, %f274, 0f4B800000;
+ selp.f32 %f813, 0fC3170000, 0fC2FE0000, %p76;
+ selp.f32 %f814, %f812, %f274, %p76;
+ mov.b32 %r284, %f814;
+ and.b32 %r285, %r284, 8388607;
+ or.b32 %r286, %r285, 1065353216;
+ mov.b32 %f815, %r286;
+ shr.u32 %r287, %r284, 23;
+ cvt.rn.f32.u32 %f816, %r287;
+ add.f32 %f817, %f813, %f816;
+ setp.gt.f32 %p77, %f815, 0f3FB504F3;
+ mul.f32 %f818, %f815, 0f3F000000;
+ add.f32 %f819, %f817, 0f3F800000;
+ selp.f32 %f820, %f818, %f815, %p77;
+ selp.f32 %f821, %f819, %f817, %p77;
+ add.f32 %f822, %f820, 0fBF800000;
+ add.f32 %f808, %f820, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f807,%f808;
+ // inline asm
+ add.f32 %f823, %f822, %f822;
+ mul.f32 %f824, %f807, %f823;
+ mul.f32 %f825, %f824, %f824;
+ mov.f32 %f826, 0f3C4CAF63;
+ mov.f32 %f827, 0f3B18F0FE;
+ fma.rn.f32 %f828, %f827, %f825, %f826;
+ mov.f32 %f829, 0f3DAAAABD;
+ fma.rn.f32 %f830, %f828, %f825, %f829;
+ mul.rn.f32 %f831, %f830, %f825;
+ mul.rn.f32 %f832, %f831, %f824;
+ sub.f32 %f833, %f822, %f824;
+ neg.f32 %f834, %f824;
+ add.f32 %f835, %f833, %f833;
+ fma.rn.f32 %f836, %f834, %f822, %f835;
+ mul.rn.f32 %f837, %f807, %f836;
+ add.f32 %f838, %f832, %f824;
+ sub.f32 %f839, %f824, %f838;
+ add.f32 %f840, %f832, %f839;
+ add.f32 %f841, %f837, %f840;
+ add.f32 %f842, %f838, %f841;
+ sub.f32 %f843, %f838, %f842;
+ add.f32 %f844, %f841, %f843;
+ mov.f32 %f845, 0f3F317200;
+ mul.rn.f32 %f846, %f821, %f845;
+ mov.f32 %f847, 0f35BFBE8E;
+ mul.rn.f32 %f848, %f821, %f847;
+ add.f32 %f849, %f846, %f842;
+ sub.f32 %f850, %f846, %f849;
+ add.f32 %f851, %f842, %f850;
+ add.f32 %f852, %f844, %f851;
+ add.f32 %f853, %f848, %f852;
+ add.f32 %f854, %f849, %f853;
+ sub.f32 %f855, %f849, %f854;
+ add.f32 %f856, %f853, %f855;
+ mov.f32 %f857, 0f3EE8BA2E;
+ mul.rn.f32 %f858, %f857, %f854;
+ neg.f32 %f859, %f858;
+ fma.rn.f32 %f860, %f857, %f854, %f859;
+ fma.rn.f32 %f861, %f857, %f856, %f860;
+ mov.f32 %f862, 0f00000000;
+ fma.rn.f32 %f863, %f862, %f854, %f861;
+ add.rn.f32 %f864, %f858, %f863;
+ neg.f32 %f865, %f864;
+ add.rn.f32 %f866, %f858, %f865;
+ add.rn.f32 %f867, %f866, %f863;
+ mov.b32 %r288, %f864;
+ setp.eq.s32 %p78, %r288, 1118925336;
+ add.s32 %r289, %r288, -1;
+ mov.b32 %f868, %r289;
+ add.f32 %f869, %f867, 0f37000000;
+ selp.f32 %f870, %f868, %f864, %p78;
+ selp.f32 %f275, %f869, %f867, %p78;
+ mul.f32 %f871, %f870, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f872, %f871;
+ mov.f32 %f873, 0fBF317200;
+ fma.rn.f32 %f874, %f872, %f873, %f870;
+ mov.f32 %f875, 0fB5BFBE8E;
+ fma.rn.f32 %f876, %f872, %f875, %f874;
+ mul.f32 %f877, %f876, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f878, %f877;
+ add.f32 %f879, %f872, 0f00000000;
+ ex2.approx.f32 %f880, %f879;
+ mul.f32 %f881, %f878, %f880;
+ setp.lt.f32 %p79, %f870, 0fC2D20000;
+ selp.f32 %f882, 0f00000000, %f881, %p79;
+ setp.gt.f32 %p80, %f870, 0f42D20000;
+ selp.f32 %f1372, 0f7F800000, %f882, %p80;
+ setp.eq.f32 %p81, %f1372, 0f7F800000;
+ @%p81 bra BB0_86;
+
+ fma.rn.f32 %f1372, %f1372, %f275, %f1372;
+
+BB0_86:
+ setp.lt.f32 %p82, %f1371, 0f00000000;
+ setp.eq.f32 %p83, %f273, 0f3F800000;
+ and.pred %p3, %p82, %p83;
+ mov.b32 %r290, %f1372;
+ xor.b32 %r291, %r290, -2147483648;
+ mov.b32 %f883, %r291;
+ selp.f32 %f1374, %f883, %f1372, %p3;
+ setp.eq.f32 %p84, %f1371, 0f00000000;
+ @%p84 bra BB0_89;
+ bra.uni BB0_87;
+
+BB0_89:
+ add.f32 %f886, %f1371, %f1371;
+ selp.f32 %f1374, %f886, 0f00000000, %p83;
+ bra.uni BB0_90;
+
+BB0_151:
+ mov.u64 %rd231, image_HDR;
+ cvta.global.u64 %rd226, %rd231;
+ mov.u32 %r370, 8;
+ mov.u64 %rd230, 0;
+ // inline asm
+ call (%rd225), _rt_buffer_get_64, (%rd226, %r107, %r370, %rd22, %rd23, %rd230, %rd230);
+ // inline asm
+ mov.f32 %f1213, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f1213;}
+
+ // inline asm
+ mov.u16 %rs117, 0;
+ st.v4.u16 [%rd225], {%rs116, %rs116, %rs116, %rs117};
+
+BB0_152:
+ ld.global.u32 %r371, [additive];
+ setp.eq.s32 %p153, %r371, 0;
+ @%p153 bra BB0_154;
+
+ mov.u64 %rd244, image_RNM0;
+ cvta.global.u64 %rd233, %rd244;
+ mov.u32 %r375, 8;
+ mov.u64 %rd243, 0;
+ // inline asm
+ call (%rd232), _rt_buffer_get_64, (%rd233, %r107, %r375, %rd22, %rd23, %rd243, %rd243);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd232];
+ // inline asm
+ { cvt.f32.f16 %f1214, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1215, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1216, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd238), _rt_buffer_get_64, (%rd233, %r107, %r375, %rd22, %rd23, %rd243, %rd243);
+ // inline asm
+ add.f32 %f1217, %f1214, 0f00000000;
+ add.f32 %f1218, %f1215, 0f00000000;
+ add.f32 %f1219, %f1216, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f1219;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f1218;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f1217;}
+
+ // inline asm
+ mov.u16 %rs128, 0;
+ st.v4.u16 [%rd238], {%rs121, %rs122, %rs123, %rs128};
+ bra.uni BB0_155;
+
+BB0_154:
+ mov.u64 %rd251, image_RNM0;
+ cvta.global.u64 %rd246, %rd251;
+ mov.u32 %r377, 8;
+ mov.u64 %rd250, 0;
+ // inline asm
+ call (%rd245), _rt_buffer_get_64, (%rd246, %r107, %r377, %rd22, %rd23, %rd250, %rd250);
+ // inline asm
+ mov.f32 %f1220, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f1220;}
+
+ // inline asm
+ mov.u16 %rs130, 0;
+ st.v4.u16 [%rd245], {%rs129, %rs129, %rs129, %rs130};
+
+BB0_155:
+ ld.global.u32 %r378, [additive];
+ setp.eq.s32 %p154, %r378, 0;
+ @%p154 bra BB0_157;
+
+ mov.u64 %rd264, image_RNM1;
+ cvta.global.u64 %rd253, %rd264;
+ mov.u32 %r382, 8;
+ mov.u64 %rd263, 0;
+ // inline asm
+ call (%rd252), _rt_buffer_get_64, (%rd253, %r107, %r382, %rd22, %rd23, %rd263, %rd263);
+ // inline asm
+ ld.v4.u16 {%rs137, %rs138, %rs139, %rs140}, [%rd252];
+ // inline asm
+ { cvt.f32.f16 %f1221, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1222, %rs138;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1223, %rs139;}
+
+ // inline asm
+ // inline asm
+ call (%rd258), _rt_buffer_get_64, (%rd253, %r107, %r382, %rd22, %rd23, %rd263, %rd263);
+ // inline asm
+ add.f32 %f1224, %f1221, 0f00000000;
+ add.f32 %f1225, %f1222, 0f00000000;
+ add.f32 %f1226, %f1223, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs136, %f1226;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f1225;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f1224;}
+
+ // inline asm
+ mov.u16 %rs141, 0;
+ st.v4.u16 [%rd258], {%rs134, %rs135, %rs136, %rs141};
+ bra.uni BB0_158;
+
+BB0_157:
+ mov.u64 %rd271, image_RNM1;
+ cvta.global.u64 %rd266, %rd271;
+ mov.u32 %r384, 8;
+ mov.u64 %rd270, 0;
+ // inline asm
+ call (%rd265), _rt_buffer_get_64, (%rd266, %r107, %r384, %rd22, %rd23, %rd270, %rd270);
+ // inline asm
+ mov.f32 %f1227, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs142, %f1227;}
+
+ // inline asm
+ mov.u16 %rs143, 0;
+ st.v4.u16 [%rd265], {%rs142, %rs142, %rs142, %rs143};
+
+BB0_158:
+ ld.global.u32 %r385, [additive];
+ setp.eq.s32 %p155, %r385, 0;
+ @%p155 bra BB0_160;
+
+ mov.u64 %rd284, image_RNM2;
+ cvta.global.u64 %rd273, %rd284;
+ mov.u32 %r389, 8;
+ mov.u64 %rd283, 0;
+ // inline asm
+ call (%rd272), _rt_buffer_get_64, (%rd273, %r107, %r389, %rd22, %rd23, %rd283, %rd283);
+ // inline asm
+ ld.v4.u16 {%rs150, %rs151, %rs152, %rs153}, [%rd272];
+ // inline asm
+ { cvt.f32.f16 %f1228, %rs150;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1229, %rs151;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1230, %rs152;}
+
+ // inline asm
+ // inline asm
+ call (%rd278), _rt_buffer_get_64, (%rd273, %r107, %r389, %rd22, %rd23, %rd283, %rd283);
+ // inline asm
+ add.f32 %f1231, %f1228, 0f00000000;
+ add.f32 %f1232, %f1229, 0f00000000;
+ add.f32 %f1233, %f1230, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs149, %f1233;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs148, %f1232;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs147, %f1231;}
+
+ // inline asm
+ mov.u16 %rs154, 0;
+ st.v4.u16 [%rd278], {%rs147, %rs148, %rs149, %rs154};
+ bra.uni BB0_161;
+
+BB0_160:
+ mov.u64 %rd291, image_RNM2;
+ cvta.global.u64 %rd286, %rd291;
+ mov.u32 %r391, 8;
+ mov.u64 %rd290, 0;
+ // inline asm
+ call (%rd285), _rt_buffer_get_64, (%rd286, %r107, %r391, %rd22, %rd23, %rd290, %rd290);
+ // inline asm
+ mov.f32 %f1234, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs155, %f1234;}
+
+ // inline asm
+ mov.u16 %rs156, 0;
+ st.v4.u16 [%rd285], {%rs155, %rs155, %rs155, %rs156};
+ bra.uni BB0_161;
+
+BB0_87:
+ setp.geu.f32 %p85, %f1371, 0f00000000;
+ @%p85 bra BB0_90;
+
+ cvt.rzi.f32.f32 %f885, %f857;
+ setp.neu.f32 %p86, %f885, 0f3EE8BA2E;
+ selp.f32 %f1374, 0f7FFFFFFF, %f1374, %p86;
+
+BB0_90:
+ add.f32 %f887, %f274, 0f3EE8BA2E;
+ mov.b32 %r292, %f887;
+ setp.lt.s32 %p88, %r292, 2139095040;
+ @%p88 bra BB0_95;
+
+ setp.gtu.f32 %p89, %f274, 0f7F800000;
+ @%p89 bra BB0_94;
+ bra.uni BB0_92;
+
+BB0_94:
+ add.f32 %f1374, %f1371, 0f3EE8BA2E;
+ bra.uni BB0_95;
+
+BB0_92:
+ setp.neu.f32 %p90, %f274, 0f7F800000;
+ @%p90 bra BB0_95;
+
+ selp.f32 %f1374, 0fFF800000, 0f7F800000, %p3;
+
+BB0_95:
+ mul.f32 %f888, %f1374, 0f437F0000;
+ setp.eq.f32 %p91, %f1371, 0f3F800000;
+ selp.f32 %f889, 0f437F0000, %f888, %p91;
+ cvt.rzi.u32.f32 %r293, %f889;
+ cvt.u16.u32 %rs40, %r293;
+ mov.u16 %rs41, 255;
+ st.v2.u8 [%rd104], {%rs40, %rs41};
+ ld.global.u32 %r436, [imageEnabled];
+
+BB0_96:
+ ld.global.f32 %f890, [lightColor];
+ mul.f32 %f286, %f1368, %f890;
+ ld.global.f32 %f891, [lightColor+4];
+ mul.f32 %f287, %f1369, %f891;
+ ld.global.f32 %f892, [lightColor+8];
+ mul.f32 %f288, %f1370, %f892;
+ and.b32 %r294, %r436, 1;
+ setp.eq.b32 %p92, %r294, 1;
+ @!%p92 bra BB0_131;
+ bra.uni BB0_97;
+
+BB0_97:
+ mov.f32 %f895, 0f3E666666;
+ cvt.rzi.f32.f32 %f896, %f895;
+ fma.rn.f32 %f897, %f896, 0fC0000000, 0f3EE66666;
+ abs.f32 %f289, %f897;
+ abs.f32 %f290, %f286;
+ setp.lt.f32 %p93, %f290, 0f00800000;
+ mul.f32 %f898, %f290, 0f4B800000;
+ selp.f32 %f899, 0fC3170000, 0fC2FE0000, %p93;
+ selp.f32 %f900, %f898, %f290, %p93;
+ mov.b32 %r295, %f900;
+ and.b32 %r296, %r295, 8388607;
+ or.b32 %r297, %r296, 1065353216;
+ mov.b32 %f901, %r297;
+ shr.u32 %r298, %r295, 23;
+ cvt.rn.f32.u32 %f902, %r298;
+ add.f32 %f903, %f899, %f902;
+ setp.gt.f32 %p94, %f901, 0f3FB504F3;
+ mul.f32 %f904, %f901, 0f3F000000;
+ add.f32 %f905, %f903, 0f3F800000;
+ selp.f32 %f906, %f904, %f901, %p94;
+ selp.f32 %f907, %f905, %f903, %p94;
+ add.f32 %f908, %f906, 0fBF800000;
+ add.f32 %f894, %f906, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f893,%f894;
+ // inline asm
+ add.f32 %f909, %f908, %f908;
+ mul.f32 %f910, %f893, %f909;
+ mul.f32 %f911, %f910, %f910;
+ mov.f32 %f912, 0f3C4CAF63;
+ mov.f32 %f913, 0f3B18F0FE;
+ fma.rn.f32 %f914, %f913, %f911, %f912;
+ mov.f32 %f915, 0f3DAAAABD;
+ fma.rn.f32 %f916, %f914, %f911, %f915;
+ mul.rn.f32 %f917, %f916, %f911;
+ mul.rn.f32 %f918, %f917, %f910;
+ sub.f32 %f919, %f908, %f910;
+ neg.f32 %f920, %f910;
+ add.f32 %f921, %f919, %f919;
+ fma.rn.f32 %f922, %f920, %f908, %f921;
+ mul.rn.f32 %f923, %f893, %f922;
+ add.f32 %f924, %f918, %f910;
+ sub.f32 %f925, %f910, %f924;
+ add.f32 %f926, %f918, %f925;
+ add.f32 %f927, %f923, %f926;
+ add.f32 %f928, %f924, %f927;
+ sub.f32 %f929, %f924, %f928;
+ add.f32 %f930, %f927, %f929;
+ mov.f32 %f931, 0f3F317200;
+ mul.rn.f32 %f932, %f907, %f931;
+ mov.f32 %f933, 0f35BFBE8E;
+ mul.rn.f32 %f934, %f907, %f933;
+ add.f32 %f935, %f932, %f928;
+ sub.f32 %f936, %f932, %f935;
+ add.f32 %f937, %f928, %f936;
+ add.f32 %f938, %f930, %f937;
+ add.f32 %f939, %f934, %f938;
+ add.f32 %f940, %f935, %f939;
+ sub.f32 %f941, %f935, %f940;
+ add.f32 %f942, %f939, %f941;
+ mov.f32 %f943, 0f3EE66666;
+ mul.rn.f32 %f944, %f943, %f940;
+ neg.f32 %f945, %f944;
+ fma.rn.f32 %f946, %f943, %f940, %f945;
+ fma.rn.f32 %f947, %f943, %f942, %f946;
+ mov.f32 %f948, 0f00000000;
+ fma.rn.f32 %f949, %f948, %f940, %f947;
+ add.rn.f32 %f950, %f944, %f949;
+ neg.f32 %f951, %f950;
+ add.rn.f32 %f952, %f944, %f951;
+ add.rn.f32 %f953, %f952, %f949;
+ mov.b32 %r299, %f950;
+ setp.eq.s32 %p95, %r299, 1118925336;
+ add.s32 %r300, %r299, -1;
+ mov.b32 %f954, %r300;
+ add.f32 %f955, %f953, 0f37000000;
+ selp.f32 %f956, %f954, %f950, %p95;
+ selp.f32 %f291, %f955, %f953, %p95;
+ mul.f32 %f957, %f956, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f958, %f957;
+ mov.f32 %f959, 0fBF317200;
+ fma.rn.f32 %f960, %f958, %f959, %f956;
+ mov.f32 %f961, 0fB5BFBE8E;
+ fma.rn.f32 %f962, %f958, %f961, %f960;
+ mul.f32 %f963, %f962, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f964, %f963;
+ add.f32 %f965, %f958, 0f00000000;
+ ex2.approx.f32 %f966, %f965;
+ mul.f32 %f967, %f964, %f966;
+ setp.lt.f32 %p96, %f956, 0fC2D20000;
+ selp.f32 %f968, 0f00000000, %f967, %p96;
+ setp.gt.f32 %p97, %f956, 0f42D20000;
+ selp.f32 %f1375, 0f7F800000, %f968, %p97;
+ setp.eq.f32 %p98, %f1375, 0f7F800000;
+ @%p98 bra BB0_99;
+
+ fma.rn.f32 %f1375, %f1375, %f291, %f1375;
+
+BB0_99:
+ setp.lt.f32 %p99, %f286, 0f00000000;
+ setp.eq.f32 %p100, %f289, 0f3F800000;
+ and.pred %p4, %p99, %p100;
+ mov.b32 %r301, %f1375;
+ xor.b32 %r302, %r301, -2147483648;
+ mov.b32 %f969, %r302;
+ selp.f32 %f1377, %f969, %f1375, %p4;
+ setp.eq.f32 %p101, %f286, 0f00000000;
+ @%p101 bra BB0_102;
+ bra.uni BB0_100;
+
+BB0_102:
+ add.f32 %f972, %f286, %f286;
+ selp.f32 %f1377, %f972, 0f00000000, %p100;
+ bra.uni BB0_103;
+
+BB0_100:
+ setp.geu.f32 %p102, %f286, 0f00000000;
+ @%p102 bra BB0_103;
+
+ cvt.rzi.f32.f32 %f971, %f943;
+ setp.neu.f32 %p103, %f971, 0f3EE66666;
+ selp.f32 %f1377, 0f7FFFFFFF, %f1377, %p103;
+
+BB0_103:
+ add.f32 %f973, %f290, 0f3EE66666;
+ mov.b32 %r303, %f973;
+ setp.lt.s32 %p105, %r303, 2139095040;
+ @%p105 bra BB0_108;
+
+ setp.gtu.f32 %p106, %f290, 0f7F800000;
+ @%p106 bra BB0_107;
+ bra.uni BB0_105;
+
+BB0_107:
+ add.f32 %f1377, %f286, 0f3EE66666;
+ bra.uni BB0_108;
+
+BB0_105:
+ setp.neu.f32 %p107, %f290, 0f7F800000;
+ @%p107 bra BB0_108;
+
+ selp.f32 %f1377, 0fFF800000, 0f7F800000, %p4;
+
+BB0_108:
+ setp.eq.f32 %p108, %f286, 0f3F800000;
+ selp.f32 %f302, 0f3F800000, %f1377, %p108;
+ abs.f32 %f303, %f287;
+ setp.lt.f32 %p109, %f303, 0f00800000;
+ mul.f32 %f976, %f303, 0f4B800000;
+ selp.f32 %f977, 0fC3170000, 0fC2FE0000, %p109;
+ selp.f32 %f978, %f976, %f303, %p109;
+ mov.b32 %r304, %f978;
+ and.b32 %r305, %r304, 8388607;
+ or.b32 %r306, %r305, 1065353216;
+ mov.b32 %f979, %r306;
+ shr.u32 %r307, %r304, 23;
+ cvt.rn.f32.u32 %f980, %r307;
+ add.f32 %f981, %f977, %f980;
+ setp.gt.f32 %p110, %f979, 0f3FB504F3;
+ mul.f32 %f982, %f979, 0f3F000000;
+ add.f32 %f983, %f981, 0f3F800000;
+ selp.f32 %f984, %f982, %f979, %p110;
+ selp.f32 %f985, %f983, %f981, %p110;
+ add.f32 %f986, %f984, 0fBF800000;
+ add.f32 %f975, %f984, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f974,%f975;
+ // inline asm
+ add.f32 %f987, %f986, %f986;
+ mul.f32 %f988, %f974, %f987;
+ mul.f32 %f989, %f988, %f988;
+ fma.rn.f32 %f992, %f913, %f989, %f912;
+ fma.rn.f32 %f994, %f992, %f989, %f915;
+ mul.rn.f32 %f995, %f994, %f989;
+ mul.rn.f32 %f996, %f995, %f988;
+ sub.f32 %f997, %f986, %f988;
+ neg.f32 %f998, %f988;
+ add.f32 %f999, %f997, %f997;
+ fma.rn.f32 %f1000, %f998, %f986, %f999;
+ mul.rn.f32 %f1001, %f974, %f1000;
+ add.f32 %f1002, %f996, %f988;
+ sub.f32 %f1003, %f988, %f1002;
+ add.f32 %f1004, %f996, %f1003;
+ add.f32 %f1005, %f1001, %f1004;
+ add.f32 %f1006, %f1002, %f1005;
+ sub.f32 %f1007, %f1002, %f1006;
+ add.f32 %f1008, %f1005, %f1007;
+ mul.rn.f32 %f1010, %f985, %f931;
+ mul.rn.f32 %f1012, %f985, %f933;
+ add.f32 %f1013, %f1010, %f1006;
+ sub.f32 %f1014, %f1010, %f1013;
+ add.f32 %f1015, %f1006, %f1014;
+ add.f32 %f1016, %f1008, %f1015;
+ add.f32 %f1017, %f1012, %f1016;
+ add.f32 %f1018, %f1013, %f1017;
+ sub.f32 %f1019, %f1013, %f1018;
+ add.f32 %f1020, %f1017, %f1019;
+ mul.rn.f32 %f1022, %f943, %f1018;
+ neg.f32 %f1023, %f1022;
+ fma.rn.f32 %f1024, %f943, %f1018, %f1023;
+ fma.rn.f32 %f1025, %f943, %f1020, %f1024;
+ fma.rn.f32 %f1027, %f948, %f1018, %f1025;
+ add.rn.f32 %f1028, %f1022, %f1027;
+ neg.f32 %f1029, %f1028;
+ add.rn.f32 %f1030, %f1022, %f1029;
+ add.rn.f32 %f1031, %f1030, %f1027;
+ mov.b32 %r308, %f1028;
+ setp.eq.s32 %p111, %r308, 1118925336;
+ add.s32 %r309, %r308, -1;
+ mov.b32 %f1032, %r309;
+ add.f32 %f1033, %f1031, 0f37000000;
+ selp.f32 %f1034, %f1032, %f1028, %p111;
+ selp.f32 %f304, %f1033, %f1031, %p111;
+ mul.f32 %f1035, %f1034, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1036, %f1035;
+ fma.rn.f32 %f1038, %f1036, %f959, %f1034;
+ fma.rn.f32 %f1040, %f1036, %f961, %f1038;
+ mul.f32 %f1041, %f1040, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1042, %f1041;
+ add.f32 %f1043, %f1036, 0f00000000;
+ ex2.approx.f32 %f1044, %f1043;
+ mul.f32 %f1045, %f1042, %f1044;
+ setp.lt.f32 %p112, %f1034, 0fC2D20000;
+ selp.f32 %f1046, 0f00000000, %f1045, %p112;
+ setp.gt.f32 %p113, %f1034, 0f42D20000;
+ selp.f32 %f1378, 0f7F800000, %f1046, %p113;
+ setp.eq.f32 %p114, %f1378, 0f7F800000;
+ @%p114 bra BB0_110;
+
+ fma.rn.f32 %f1378, %f1378, %f304, %f1378;
+
+BB0_110:
+ setp.lt.f32 %p115, %f287, 0f00000000;
+ and.pred %p5, %p115, %p100;
+ mov.b32 %r310, %f1378;
+ xor.b32 %r311, %r310, -2147483648;
+ mov.b32 %f1047, %r311;
+ selp.f32 %f1380, %f1047, %f1378, %p5;
+ setp.eq.f32 %p117, %f287, 0f00000000;
+ @%p117 bra BB0_113;
+ bra.uni BB0_111;
+
+BB0_113:
+ add.f32 %f1050, %f287, %f287;
+ selp.f32 %f1380, %f1050, 0f00000000, %p100;
+ bra.uni BB0_114;
+
+BB0_111:
+ setp.geu.f32 %p118, %f287, 0f00000000;
+ @%p118 bra BB0_114;
+
+ cvt.rzi.f32.f32 %f1049, %f943;
+ setp.neu.f32 %p119, %f1049, 0f3EE66666;
+ selp.f32 %f1380, 0f7FFFFFFF, %f1380, %p119;
+
+BB0_114:
+ add.f32 %f1051, %f303, 0f3EE66666;
+ mov.b32 %r312, %f1051;
+ setp.lt.s32 %p121, %r312, 2139095040;
+ @%p121 bra BB0_119;
+
+ setp.gtu.f32 %p122, %f303, 0f7F800000;
+ @%p122 bra BB0_118;
+ bra.uni BB0_116;
+
+BB0_118:
+ add.f32 %f1380, %f287, 0f3EE66666;
+ bra.uni BB0_119;
+
+BB0_116:
+ setp.neu.f32 %p123, %f303, 0f7F800000;
+ @%p123 bra BB0_119;
+
+ selp.f32 %f1380, 0fFF800000, 0f7F800000, %p5;
+
+BB0_119:
+ setp.eq.f32 %p124, %f287, 0f3F800000;
+ selp.f32 %f315, 0f3F800000, %f1380, %p124;
+ abs.f32 %f316, %f288;
+ setp.lt.f32 %p125, %f316, 0f00800000;
+ mul.f32 %f1054, %f316, 0f4B800000;
+ selp.f32 %f1055, 0fC3170000, 0fC2FE0000, %p125;
+ selp.f32 %f1056, %f1054, %f316, %p125;
+ mov.b32 %r313, %f1056;
+ and.b32 %r314, %r313, 8388607;
+ or.b32 %r315, %r314, 1065353216;
+ mov.b32 %f1057, %r315;
+ shr.u32 %r316, %r313, 23;
+ cvt.rn.f32.u32 %f1058, %r316;
+ add.f32 %f1059, %f1055, %f1058;
+ setp.gt.f32 %p126, %f1057, 0f3FB504F3;
+ mul.f32 %f1060, %f1057, 0f3F000000;
+ add.f32 %f1061, %f1059, 0f3F800000;
+ selp.f32 %f1062, %f1060, %f1057, %p126;
+ selp.f32 %f1063, %f1061, %f1059, %p126;
+ add.f32 %f1064, %f1062, 0fBF800000;
+ add.f32 %f1053, %f1062, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f1052,%f1053;
+ // inline asm
+ add.f32 %f1065, %f1064, %f1064;
+ mul.f32 %f1066, %f1052, %f1065;
+ mul.f32 %f1067, %f1066, %f1066;
+ fma.rn.f32 %f1070, %f913, %f1067, %f912;
+ fma.rn.f32 %f1072, %f1070, %f1067, %f915;
+ mul.rn.f32 %f1073, %f1072, %f1067;
+ mul.rn.f32 %f1074, %f1073, %f1066;
+ sub.f32 %f1075, %f1064, %f1066;
+ neg.f32 %f1076, %f1066;
+ add.f32 %f1077, %f1075, %f1075;
+ fma.rn.f32 %f1078, %f1076, %f1064, %f1077;
+ mul.rn.f32 %f1079, %f1052, %f1078;
+ add.f32 %f1080, %f1074, %f1066;
+ sub.f32 %f1081, %f1066, %f1080;
+ add.f32 %f1082, %f1074, %f1081;
+ add.f32 %f1083, %f1079, %f1082;
+ add.f32 %f1084, %f1080, %f1083;
+ sub.f32 %f1085, %f1080, %f1084;
+ add.f32 %f1086, %f1083, %f1085;
+ mul.rn.f32 %f1088, %f1063, %f931;
+ mul.rn.f32 %f1090, %f1063, %f933;
+ add.f32 %f1091, %f1088, %f1084;
+ sub.f32 %f1092, %f1088, %f1091;
+ add.f32 %f1093, %f1084, %f1092;
+ add.f32 %f1094, %f1086, %f1093;
+ add.f32 %f1095, %f1090, %f1094;
+ add.f32 %f1096, %f1091, %f1095;
+ sub.f32 %f1097, %f1091, %f1096;
+ add.f32 %f1098, %f1095, %f1097;
+ mul.rn.f32 %f1100, %f943, %f1096;
+ neg.f32 %f1101, %f1100;
+ fma.rn.f32 %f1102, %f943, %f1096, %f1101;
+ fma.rn.f32 %f1103, %f943, %f1098, %f1102;
+ fma.rn.f32 %f1105, %f948, %f1096, %f1103;
+ add.rn.f32 %f1106, %f1100, %f1105;
+ neg.f32 %f1107, %f1106;
+ add.rn.f32 %f1108, %f1100, %f1107;
+ add.rn.f32 %f1109, %f1108, %f1105;
+ mov.b32 %r317, %f1106;
+ setp.eq.s32 %p127, %r317, 1118925336;
+ add.s32 %r318, %r317, -1;
+ mov.b32 %f1110, %r318;
+ add.f32 %f1111, %f1109, 0f37000000;
+ selp.f32 %f1112, %f1110, %f1106, %p127;
+ selp.f32 %f317, %f1111, %f1109, %p127;
+ mul.f32 %f1113, %f1112, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1114, %f1113;
+ fma.rn.f32 %f1116, %f1114, %f959, %f1112;
+ fma.rn.f32 %f1118, %f1114, %f961, %f1116;
+ mul.f32 %f1119, %f1118, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1120, %f1119;
+ add.f32 %f1121, %f1114, 0f00000000;
+ ex2.approx.f32 %f1122, %f1121;
+ mul.f32 %f1123, %f1120, %f1122;
+ setp.lt.f32 %p128, %f1112, 0fC2D20000;
+ selp.f32 %f1124, 0f00000000, %f1123, %p128;
+ setp.gt.f32 %p129, %f1112, 0f42D20000;
+ selp.f32 %f1381, 0f7F800000, %f1124, %p129;
+ setp.eq.f32 %p130, %f1381, 0f7F800000;
+ @%p130 bra BB0_121;
+
+ fma.rn.f32 %f1381, %f1381, %f317, %f1381;
+
+BB0_121:
+ setp.lt.f32 %p131, %f288, 0f00000000;
+ and.pred %p6, %p131, %p100;
+ mov.b32 %r319, %f1381;
+ xor.b32 %r320, %r319, -2147483648;
+ mov.b32 %f1125, %r320;
+ selp.f32 %f1383, %f1125, %f1381, %p6;
+ setp.eq.f32 %p133, %f288, 0f00000000;
+ @%p133 bra BB0_124;
+ bra.uni BB0_122;
+
+BB0_124:
+ add.f32 %f1128, %f288, %f288;
+ selp.f32 %f1383, %f1128, 0f00000000, %p100;
+ bra.uni BB0_125;
+
+BB0_122:
+ setp.geu.f32 %p134, %f288, 0f00000000;
+ @%p134 bra BB0_125;
+
+ cvt.rzi.f32.f32 %f1127, %f943;
+ setp.neu.f32 %p135, %f1127, 0f3EE66666;
+ selp.f32 %f1383, 0f7FFFFFFF, %f1383, %p135;
+
+BB0_125:
+ add.f32 %f1129, %f316, 0f3EE66666;
+ mov.b32 %r321, %f1129;
+ setp.lt.s32 %p137, %r321, 2139095040;
+ @%p137 bra BB0_130;
+
+ setp.gtu.f32 %p138, %f316, 0f7F800000;
+ @%p138 bra BB0_129;
+ bra.uni BB0_127;
+
+BB0_129:
+ add.f32 %f1383, %f288, 0f3EE66666;
+ bra.uni BB0_130;
+
+BB0_127:
+ setp.neu.f32 %p139, %f316, 0f7F800000;
+ @%p139 bra BB0_130;
+
+ selp.f32 %f1383, 0fFF800000, 0f7F800000, %p6;
+
+BB0_130:
+ mov.u32 %r395, 2;
+ setp.eq.f32 %p140, %f288, 0f3F800000;
+ selp.f32 %f1130, 0f3F800000, %f1383, %p140;
+ cvt.u64.u32 %rd114, %r4;
+ cvt.u64.u32 %rd113, %r3;
+ mov.u64 %rd117, image;
+ cvta.global.u64 %rd112, %rd117;
+ // inline asm
+ call (%rd111), _rt_buffer_get_64, (%rd112, %r395, %r108, %rd113, %rd114, %rd29, %rd29);
+ // inline asm
+ cvt.sat.f32.f32 %f1131, %f1130;
+ mul.f32 %f1132, %f1131, 0f437FFD71;
+ cvt.rzi.u32.f32 %r324, %f1132;
+ cvt.sat.f32.f32 %f1133, %f315;
+ mul.f32 %f1134, %f1133, 0f437FFD71;
+ cvt.rzi.u32.f32 %r325, %f1134;
+ cvt.sat.f32.f32 %f1135, %f302;
+ mul.f32 %f1136, %f1135, 0f437FFD71;
+ cvt.rzi.u32.f32 %r326, %f1136;
+ cvt.u16.u32 %rs42, %r324;
+ cvt.u16.u32 %rs43, %r326;
+ cvt.u16.u32 %rs44, %r325;
+ mov.u16 %rs45, 255;
+ st.v4.u8 [%rd111], {%rs42, %rs44, %rs43, %rs45};
+ ld.global.u32 %r436, [imageEnabled];
+
+BB0_131:
+ cvt.u64.u32 %rd20, %r3;
+ cvt.u64.u32 %rd21, %r4;
+ and.b32 %r327, %r436, 4;
+ setp.eq.s32 %p141, %r327, 0;
+ @%p141 bra BB0_135;
+
+ ld.global.u32 %r328, [additive];
+ setp.eq.s32 %p142, %r328, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f655;}
+
+ // inline asm
+ @%p142 bra BB0_134;
+
+ mov.u32 %r396, 2;
+ mov.u64 %rd130, image_HDR;
+ cvta.global.u64 %rd119, %rd130;
+ mov.u32 %r332, 8;
+ // inline asm
+ call (%rd118), _rt_buffer_get_64, (%rd119, %r396, %r332, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ ld.v4.u16 {%rs53, %rs54, %rs55, %rs56}, [%rd118];
+ // inline asm
+ { cvt.f32.f16 %f1138, %rs53;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1139, %rs54;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1140, %rs55;}
+
+ // inline asm
+ // inline asm
+ call (%rd124), _rt_buffer_get_64, (%rd119, %r396, %r332, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ add.f32 %f1141, %f286, %f1138;
+ add.f32 %f1142, %f287, %f1139;
+ add.f32 %f1143, %f288, %f1140;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f1143;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f1142;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f1141;}
+
+ // inline asm
+ st.v4.u16 [%rd124], {%rs50, %rs51, %rs52, %rs46};
+ bra.uni BB0_135;
+
+BB0_134:
+ mov.u32 %r397, 2;
+ mov.u64 %rd137, image_HDR;
+ cvta.global.u64 %rd132, %rd137;
+ mov.u32 %r334, 8;
+ // inline asm
+ call (%rd131), _rt_buffer_get_64, (%rd132, %r397, %r334, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f288;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f287;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f286;}
+
+ // inline asm
+ st.v4.u16 [%rd131], {%rs57, %rs58, %rs59, %rs46};
+
+BB0_135:
+ ld.global.f32 %f1148, [lightColor];
+ mul.f32 %f1149, %f1365, %f1148;
+ ld.global.f32 %f1150, [lightColor+4];
+ mul.f32 %f1151, %f1366, %f1150;
+ ld.global.f32 %f1152, [lightColor+8];
+ mul.f32 %f1153, %f1367, %f1152;
+ mul.f32 %f1154, %f1362, %f1148;
+ mul.f32 %f1155, %f1363, %f1150;
+ mul.f32 %f1156, %f1364, %f1152;
+ mul.f32 %f1157, %f1359, %f1148;
+ mul.f32 %f1158, %f1360, %f1150;
+ mul.f32 %f1159, %f1361, %f1152;
+ add.f32 %f1160, %f1149, %f1154;
+ add.f32 %f1161, %f1151, %f1155;
+ add.f32 %f1162, %f1153, %f1156;
+ add.f32 %f1163, %f1160, %f1157;
+ add.f32 %f1164, %f1161, %f1158;
+ add.f32 %f1165, %f1162, %f1159;
+ mul.f32 %f1166, %f1163, 0f3F13CD3A;
+ mul.f32 %f1167, %f1164, 0f3F13CD3A;
+ mul.f32 %f1168, %f1165, 0f3F13CD3A;
+ div.rn.f32 %f1169, %f286, %f1166;
+ div.rn.f32 %f1170, %f287, %f1167;
+ div.rn.f32 %f1171, %f288, %f1168;
+ setp.eq.f32 %p143, %f286, 0f00000000;
+ selp.f32 %f1172, 0f00000000, %f1169, %p143;
+ setp.eq.f32 %p144, %f287, 0f00000000;
+ selp.f32 %f1173, 0f00000000, %f1170, %p144;
+ setp.eq.f32 %p145, %f288, 0f00000000;
+ selp.f32 %f1174, 0f00000000, %f1171, %p145;
+ mul.f32 %f328, %f1149, %f1172;
+ mul.f32 %f329, %f1151, %f1173;
+ mul.f32 %f330, %f1153, %f1174;
+ mul.f32 %f331, %f1154, %f1172;
+ mul.f32 %f332, %f1155, %f1173;
+ mul.f32 %f333, %f1156, %f1174;
+ mul.f32 %f334, %f1157, %f1172;
+ mul.f32 %f335, %f1158, %f1173;
+ mul.f32 %f336, %f1159, %f1174;
+ ld.global.u32 %r335, [additive];
+ setp.eq.s32 %p146, %r335, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f655;}
+
+ // inline asm
+ @%p146 bra BB0_137;
+
+ mov.u32 %r398, 2;
+ mov.u64 %rd150, image_RNM0;
+ cvta.global.u64 %rd139, %rd150;
+ mov.u32 %r339, 8;
+ // inline asm
+ call (%rd138), _rt_buffer_get_64, (%rd139, %r398, %r339, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd138];
+ // inline asm
+ { cvt.f32.f16 %f1175, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1176, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1177, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd144), _rt_buffer_get_64, (%rd139, %r398, %r339, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ add.f32 %f1178, %f328, %f1175;
+ add.f32 %f1179, %f329, %f1176;
+ add.f32 %f1180, %f330, %f1177;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f1180;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f1179;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f1178;}
+
+ // inline asm
+ st.v4.u16 [%rd144], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_138;
+
+BB0_137:
+ mov.u32 %r403, 2;
+ mov.u64 %rd157, image_RNM0;
+ cvta.global.u64 %rd152, %rd157;
+ mov.u32 %r341, 8;
+ // inline asm
+ call (%rd151), _rt_buffer_get_64, (%rd152, %r403, %r341, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f330;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f329;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f328;}
+
+ // inline asm
+ st.v4.u16 [%rd151], {%rs71, %rs72, %rs73, %rs60};
+
+BB0_138:
+ ld.global.u32 %r342, [additive];
+ setp.eq.s32 %p147, %r342, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f655;}
+
+ // inline asm
+ @%p147 bra BB0_140;
+
+ mov.u32 %r399, 2;
+ mov.u64 %rd170, image_RNM1;
+ cvta.global.u64 %rd159, %rd170;
+ mov.u32 %r346, 8;
+ // inline asm
+ call (%rd158), _rt_buffer_get_64, (%rd159, %r399, %r346, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ ld.v4.u16 {%rs81, %rs82, %rs83, %rs84}, [%rd158];
+ // inline asm
+ { cvt.f32.f16 %f1185, %rs81;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1186, %rs82;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1187, %rs83;}
+
+ // inline asm
+ // inline asm
+ call (%rd164), _rt_buffer_get_64, (%rd159, %r399, %r346, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ add.f32 %f1188, %f331, %f1185;
+ add.f32 %f1189, %f332, %f1186;
+ add.f32 %f1190, %f333, %f1187;
+ // inline asm
+ { cvt.rn.f16.f32 %rs80, %f1190;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs79, %f1189;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f1188;}
+
+ // inline asm
+ st.v4.u16 [%rd164], {%rs78, %rs79, %rs80, %rs74};
+ bra.uni BB0_141;
+
+BB0_140:
+ mov.u32 %r402, 2;
+ mov.u64 %rd177, image_RNM1;
+ cvta.global.u64 %rd172, %rd177;
+ mov.u32 %r348, 8;
+ // inline asm
+ call (%rd171), _rt_buffer_get_64, (%rd172, %r402, %r348, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f333;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f332;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f331;}
+
+ // inline asm
+ st.v4.u16 [%rd171], {%rs85, %rs86, %rs87, %rs74};
+
+BB0_141:
+ ld.global.u32 %r349, [additive];
+ setp.eq.s32 %p148, %r349, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f655;}
+
+ // inline asm
+ @%p148 bra BB0_143;
+
+ mov.u32 %r400, 2;
+ mov.u64 %rd190, image_RNM2;
+ cvta.global.u64 %rd179, %rd190;
+ mov.u32 %r353, 8;
+ // inline asm
+ call (%rd178), _rt_buffer_get_64, (%rd179, %r400, %r353, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ ld.v4.u16 {%rs95, %rs96, %rs97, %rs98}, [%rd178];
+ // inline asm
+ { cvt.f32.f16 %f1195, %rs95;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1196, %rs96;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1197, %rs97;}
+
+ // inline asm
+ // inline asm
+ call (%rd184), _rt_buffer_get_64, (%rd179, %r400, %r353, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ add.f32 %f1198, %f334, %f1195;
+ add.f32 %f1199, %f335, %f1196;
+ add.f32 %f1200, %f336, %f1197;
+ // inline asm
+ { cvt.rn.f16.f32 %rs94, %f1200;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs93, %f1199;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f1198;}
+
+ // inline asm
+ st.v4.u16 [%rd184], {%rs92, %rs93, %rs94, %rs88};
+ bra.uni BB0_161;
+
+BB0_143:
+ mov.u32 %r401, 2;
+ mov.u64 %rd197, image_RNM2;
+ cvta.global.u64 %rd192, %rd197;
+ mov.u32 %r355, 8;
+ // inline asm
+ call (%rd191), _rt_buffer_get_64, (%rd192, %r401, %r355, %rd20, %rd21, %rd29, %rd29);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs101, %f336;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs100, %f335;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f334;}
+
+ // inline asm
+ st.v4.u16 [%rd191], {%rs99, %rs100, %rs101, %rs88};
+
+BB0_161:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightRNM.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightRNM.ptx.meta
new file mode 100644
index 00000000..e5712304
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightRNM.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 03c9f175f319b3146ac59add615feea0
+timeCreated: 1537530465
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightSH.ptx
new file mode 100644
index 00000000..e51b7c9a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightSH.ptx
@@ -0,0 +1,2535 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Mask[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 lightMeshBuffer[1];
+.global .align 4 .u32 lightMeshBufferSize;
+.global .align 4 .f32 lightInvCutoff;
+.global .align 4 .f32 lightPointSize;
+.global .align 4 .b8 lightColor[12];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo19lightMeshBufferSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightInvCutoffE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo14lightPointSizeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10lightColorE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename19lightMeshBufferSizeE[13] = {117, 110, 115, 105, 103, 110, 101, 100, 32, 105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightInvCutoffE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename14lightPointSizeE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10lightColorE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum19lightMeshBufferSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightInvCutoffE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum14lightPointSizeE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10lightColorE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic14lightPointSizeE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic10lightColorE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation19lightMeshBufferSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightInvCutoffE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation14lightPointSizeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10lightColorE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[44];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<150>;
+ .reg .b16 %rs<158>;
+ .reg .f32 %f<1321>;
+ .reg .b32 %r<419>;
+ .reg .b64 %rd<317>;
+
+
+ mov.u64 %rd316, __local_depot0;
+ cvta.local.u64 %SP, %rd316;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r103, %r104}, [pixelID];
+ cvt.u64.u32 %rd23, %r103;
+ cvt.u64.u32 %rd24, %r104;
+ mov.u64 %rd27, uvnormal;
+ cvta.global.u64 %rd22, %rd27;
+ mov.u32 %r101, 2;
+ mov.u32 %r102, 4;
+ mov.u64 %rd26, 0;
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd22, %r101, %r102, %rd23, %rd24, %rd26, %rd26);
+ // inline asm
+ ld.u32 %r2, [%rd21];
+ shr.u32 %r107, %r2, 16;
+ cvt.u16.u32 %rs1, %r107;
+ and.b16 %rs7, %rs1, 255;
+ cvt.u16.u32 %rs8, %r2;
+ or.b16 %rs9, %rs8, %rs7;
+ setp.eq.s16 %p7, %rs9, 0;
+ mov.f32 %f1166, 0f00000000;
+ mov.f32 %f1167, %f1166;
+ mov.f32 %f1168, %f1166;
+ @%p7 bra BB0_2;
+
+ ld.u8 %rs10, [%rd21+1];
+ and.b16 %rs12, %rs8, 255;
+ cvt.rn.f32.u16 %f358, %rs12;
+ div.rn.f32 %f359, %f358, 0f437F0000;
+ fma.rn.f32 %f360, %f359, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f361, %rs10;
+ div.rn.f32 %f362, %f361, 0f437F0000;
+ fma.rn.f32 %f363, %f362, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f364, %rs7;
+ div.rn.f32 %f365, %f364, 0f437F0000;
+ fma.rn.f32 %f366, %f365, 0f40000000, 0fBF800000;
+ mul.f32 %f367, %f363, %f363;
+ fma.rn.f32 %f368, %f360, %f360, %f367;
+ fma.rn.f32 %f369, %f366, %f366, %f368;
+ sqrt.rn.f32 %f370, %f369;
+ rcp.rn.f32 %f371, %f370;
+ mul.f32 %f1166, %f360, %f371;
+ mul.f32 %f1167, %f363, %f371;
+ mul.f32 %f1168, %f366, %f371;
+
+BB0_2:
+ ld.global.v2.u32 {%r108, %r109}, [pixelID];
+ ld.global.v2.u32 {%r111, %r112}, [tileInfo];
+ add.s32 %r3, %r108, %r111;
+ add.s32 %r4, %r109, %r112;
+ setp.eq.f32 %p8, %f1167, 0f00000000;
+ setp.eq.f32 %p9, %f1166, 0f00000000;
+ and.pred %p10, %p9, %p8;
+ setp.eq.f32 %p11, %f1168, 0f00000000;
+ and.pred %p12, %p10, %p11;
+ @%p12 bra BB0_141;
+ bra.uni BB0_3;
+
+BB0_141:
+ ld.global.u32 %r418, [imageEnabled];
+ and.b32 %r339, %r418, 1;
+ setp.eq.b32 %p141, %r339, 1;
+ @!%p141 bra BB0_143;
+ bra.uni BB0_142;
+
+BB0_142:
+ cvt.u64.u32 %rd196, %r3;
+ cvt.u64.u32 %rd197, %r4;
+ mov.u64 %rd200, image;
+ cvta.global.u64 %rd195, %rd200;
+ mov.u64 %rd199, 0;
+ // inline asm
+ call (%rd194), _rt_buffer_get_64, (%rd195, %r101, %r102, %rd196, %rd197, %rd199, %rd199);
+ // inline asm
+ mov.u16 %rs90, 0;
+ st.v4.u8 [%rd194], {%rs90, %rs90, %rs90, %rs90};
+ ld.global.u32 %r418, [imageEnabled];
+
+BB0_143:
+ and.b32 %r342, %r418, 8;
+ setp.eq.s32 %p142, %r342, 0;
+ @%p142 bra BB0_145;
+
+ cvt.u64.u32 %rd204, %r4;
+ cvt.u64.u32 %rd203, %r3;
+ mov.u64 %rd207, image_Mask;
+ cvta.global.u64 %rd202, %rd207;
+ mov.u64 %rd206, 0;
+ // inline asm
+ call (%rd201), _rt_buffer_get_64, (%rd202, %r101, %r101, %rd203, %rd204, %rd206, %rd206);
+ // inline asm
+ mov.f32 %f1121, 0f00000000;
+ cvt.rzi.u32.f32 %r345, %f1121;
+ cvt.u16.u32 %rs91, %r345;
+ mov.u16 %rs92, 0;
+ st.v2.u8 [%rd201], {%rs91, %rs92};
+ ld.global.u32 %r418, [imageEnabled];
+
+BB0_145:
+ cvt.u64.u32 %rd19, %r3;
+ cvt.u64.u32 %rd20, %r4;
+ and.b32 %r346, %r418, 4;
+ setp.eq.s32 %p143, %r346, 0;
+ @%p143 bra BB0_149;
+
+ ld.global.u32 %r347, [additive];
+ setp.eq.s32 %p144, %r347, 0;
+ @%p144 bra BB0_148;
+
+ mov.u64 %rd220, image_HDR;
+ cvta.global.u64 %rd209, %rd220;
+ mov.u32 %r351, 8;
+ mov.u64 %rd219, 0;
+ // inline asm
+ call (%rd208), _rt_buffer_get_64, (%rd209, %r101, %r351, %rd19, %rd20, %rd219, %rd219);
+ // inline asm
+ ld.v4.u16 {%rs99, %rs100, %rs101, %rs102}, [%rd208];
+ // inline asm
+ { cvt.f32.f16 %f1122, %rs99;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1123, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1124, %rs101;}
+
+ // inline asm
+ // inline asm
+ call (%rd214), _rt_buffer_get_64, (%rd209, %r101, %r351, %rd19, %rd20, %rd219, %rd219);
+ // inline asm
+ add.f32 %f1125, %f1122, 0f00000000;
+ add.f32 %f1126, %f1123, 0f00000000;
+ add.f32 %f1127, %f1124, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f1127;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f1126;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs96, %f1125;}
+
+ // inline asm
+ mov.u16 %rs103, 0;
+ st.v4.u16 [%rd214], {%rs96, %rs97, %rs98, %rs103};
+ bra.uni BB0_149;
+
+BB0_3:
+ ld.global.v2.u32 {%r121, %r122}, [pixelID];
+ cvt.u64.u32 %rd30, %r121;
+ cvt.u64.u32 %rd31, %r122;
+ mov.u64 %rd40, uvpos;
+ cvta.global.u64 %rd29, %rd40;
+ mov.u32 %r117, 12;
+ // inline asm
+ call (%rd28), _rt_buffer_get_64, (%rd29, %r101, %r117, %rd30, %rd31, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f9, [%rd28+8];
+ ld.f32 %f8, [%rd28+4];
+ ld.f32 %f7, [%rd28];
+ mul.f32 %f388, %f7, 0f3456BF95;
+ mul.f32 %f389, %f8, 0f3456BF95;
+ mul.f32 %f390, %f9, 0f3456BF95;
+ abs.f32 %f10, %f1166;
+ div.rn.f32 %f391, %f388, %f10;
+ abs.f32 %f392, %f1167;
+ div.rn.f32 %f393, %f389, %f392;
+ abs.f32 %f11, %f1168;
+ div.rn.f32 %f394, %f390, %f11;
+ abs.f32 %f395, %f391;
+ abs.f32 %f396, %f393;
+ abs.f32 %f397, %f394;
+ mov.f32 %f398, 0f38D1B717;
+ max.f32 %f399, %f395, %f398;
+ max.f32 %f400, %f396, %f398;
+ max.f32 %f401, %f397, %f398;
+ fma.rn.f32 %f12, %f1166, %f399, %f7;
+ fma.rn.f32 %f13, %f1167, %f400, %f8;
+ fma.rn.f32 %f14, %f1168, %f401, %f9;
+ ld.global.v2.u32 {%r125, %r126}, [pixelID];
+ cvt.u64.u32 %rd36, %r125;
+ cvt.u64.u32 %rd37, %r126;
+ mov.u64 %rd41, rnd_seeds;
+ cvta.global.u64 %rd35, %rd41;
+ // inline asm
+ call (%rd34), _rt_buffer_get_64, (%rd35, %r101, %r102, %rd36, %rd37, %rd26, %rd26);
+ // inline asm
+ ld.u32 %r129, [%rd34];
+ mad.lo.s32 %r5, %r129, 1664525, 1013904223;
+ ld.global.u32 %r130, [lightMeshBufferSize];
+ setp.eq.s32 %p14, %r130, 0;
+ mov.pred %p13, 0;
+ mov.f32 %f20, 0f00000000;
+ mov.u32 %r7, 0;
+ @%p14 bra BB0_4;
+
+ ld.global.f32 %f15, [lightPointSize];
+ mul.f32 %f16, %f12, 0f3456BF95;
+ mul.f32 %f17, %f13, 0f3456BF95;
+ mul.f32 %f18, %f14, 0f3456BF95;
+ and.b32 %r133, %r5, 16777215;
+ cvt.rn.f32.u32 %f418, %r133;
+ mul.f32 %f419, %f418, 0fB3800000;
+ fma.rn.f32 %f19, %f419, 0f3F333333, 0f3F800000;
+ mov.f32 %f20, 0f00000000;
+ mov.u32 %r387, 0;
+ abs.f32 %f542, %f17;
+ abs.f32 %f543, %f16;
+ max.f32 %f544, %f543, %f542;
+ abs.f32 %f545, %f18;
+ max.f32 %f546, %f544, %f545;
+ mov.u32 %r7, %r387;
+ mov.f32 %f21, %f20;
+ mov.f32 %f22, %f20;
+ mov.f32 %f23, %f20;
+ mov.f32 %f24, %f20;
+ mov.f32 %f25, %f20;
+ mov.f32 %f26, %f20;
+ mov.f32 %f27, %f20;
+ mov.f32 %f28, %f20;
+ mov.f32 %f29, %f20;
+ mov.f32 %f30, %f20;
+ mov.f32 %f31, %f20;
+ mov.f32 %f32, %f20;
+ mov.f32 %f33, %f20;
+ mov.f32 %f34, %f20;
+ mov.f32 %f35, %f20;
+
+BB0_6:
+ mul.lo.s32 %r8, %r387, 3;
+ cvt.s64.s32 %rd44, %r8;
+ mov.u64 %rd48, lightMeshBuffer;
+ cvta.global.u64 %rd43, %rd48;
+ mov.u32 %r134, 1;
+ // inline asm
+ call (%rd42), _rt_buffer_get_64, (%rd43, %r134, %r117, %rd44, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f420, [%rd42];
+ sub.f32 %f421, %f420, %f7;
+ ld.f32 %f422, [%rd42+4];
+ sub.f32 %f423, %f422, %f8;
+ ld.f32 %f424, [%rd42+8];
+ sub.f32 %f425, %f424, %f9;
+ mul.f32 %f426, %f423, %f423;
+ fma.rn.f32 %f427, %f421, %f421, %f426;
+ fma.rn.f32 %f428, %f425, %f425, %f427;
+ sqrt.rn.f32 %f36, %f428;
+ rcp.rn.f32 %f429, %f36;
+ mul.f32 %f37, %f421, %f429;
+ mul.f32 %f38, %f423, %f429;
+ mul.f32 %f39, %f425, %f429;
+ mul.f32 %f430, %f1167, %f38;
+ fma.rn.f32 %f431, %f1166, %f37, %f430;
+ fma.rn.f32 %f40, %f1168, %f39, %f431;
+ setp.leu.f32 %p15, %f40, 0f00000000;
+ @%p15 bra BB0_22;
+
+ setp.ne.s32 %p17, %r1, 0;
+ mul.f32 %f432, %f36, %f36;
+ mul.f32 %f433, %f432, 0f40C90FDB;
+ div.rn.f32 %f434, %f15, %f433;
+ add.f32 %f41, %f434, %f434;
+ setp.gt.f32 %p18, %f41, %f19;
+ and.pred %p19, %p17, %p18;
+ mov.pred %p149, -1;
+ @%p19 bra BB0_24;
+
+ ld.global.f32 %f437, [lightInvCutoff];
+ mul.f32 %f42, %f36, %f437;
+ mov.f32 %f441, 0f40800000;
+ abs.f32 %f44, %f42;
+ setp.lt.f32 %p20, %f44, 0f00800000;
+ mul.f32 %f443, %f44, 0f4B800000;
+ selp.f32 %f444, 0fC3170000, 0fC2FE0000, %p20;
+ selp.f32 %f445, %f443, %f44, %p20;
+ mov.b32 %r136, %f445;
+ and.b32 %r137, %r136, 8388607;
+ or.b32 %r138, %r137, 1065353216;
+ mov.b32 %f446, %r138;
+ shr.u32 %r139, %r136, 23;
+ cvt.rn.f32.u32 %f447, %r139;
+ add.f32 %f448, %f444, %f447;
+ setp.gt.f32 %p21, %f446, 0f3FB504F3;
+ mul.f32 %f449, %f446, 0f3F000000;
+ add.f32 %f450, %f448, 0f3F800000;
+ selp.f32 %f451, %f449, %f446, %p21;
+ selp.f32 %f452, %f450, %f448, %p21;
+ add.f32 %f453, %f451, 0fBF800000;
+ add.f32 %f436, %f451, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f435,%f436;
+ // inline asm
+ add.f32 %f454, %f453, %f453;
+ mul.f32 %f455, %f435, %f454;
+ mul.f32 %f456, %f455, %f455;
+ mov.f32 %f457, 0f3C4CAF63;
+ mov.f32 %f458, 0f3B18F0FE;
+ fma.rn.f32 %f459, %f458, %f456, %f457;
+ mov.f32 %f460, 0f3DAAAABD;
+ fma.rn.f32 %f461, %f459, %f456, %f460;
+ mul.rn.f32 %f462, %f461, %f456;
+ mul.rn.f32 %f463, %f462, %f455;
+ sub.f32 %f464, %f453, %f455;
+ neg.f32 %f465, %f455;
+ add.f32 %f466, %f464, %f464;
+ fma.rn.f32 %f467, %f465, %f453, %f466;
+ mul.rn.f32 %f468, %f435, %f467;
+ add.f32 %f469, %f463, %f455;
+ sub.f32 %f470, %f455, %f469;
+ add.f32 %f471, %f463, %f470;
+ add.f32 %f472, %f468, %f471;
+ add.f32 %f473, %f469, %f472;
+ sub.f32 %f474, %f469, %f473;
+ add.f32 %f475, %f472, %f474;
+ mov.f32 %f476, 0f3F317200;
+ mul.rn.f32 %f477, %f452, %f476;
+ mov.f32 %f478, 0f35BFBE8E;
+ mul.rn.f32 %f479, %f452, %f478;
+ add.f32 %f480, %f477, %f473;
+ sub.f32 %f481, %f477, %f480;
+ add.f32 %f482, %f473, %f481;
+ add.f32 %f483, %f475, %f482;
+ add.f32 %f484, %f479, %f483;
+ add.f32 %f485, %f480, %f484;
+ sub.f32 %f486, %f480, %f485;
+ add.f32 %f487, %f484, %f486;
+ mul.rn.f32 %f488, %f441, %f485;
+ neg.f32 %f489, %f488;
+ fma.rn.f32 %f490, %f441, %f485, %f489;
+ fma.rn.f32 %f491, %f441, %f487, %f490;
+ mov.f32 %f492, 0f00000000;
+ fma.rn.f32 %f493, %f492, %f485, %f491;
+ add.rn.f32 %f494, %f488, %f493;
+ neg.f32 %f495, %f494;
+ add.rn.f32 %f496, %f488, %f495;
+ add.rn.f32 %f497, %f496, %f493;
+ mov.b32 %r140, %f494;
+ setp.eq.s32 %p22, %r140, 1118925336;
+ add.s32 %r141, %r140, -1;
+ mov.b32 %f498, %r141;
+ add.f32 %f499, %f497, 0f37000000;
+ selp.f32 %f500, %f498, %f494, %p22;
+ selp.f32 %f45, %f499, %f497, %p22;
+ mul.f32 %f501, %f500, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f502, %f501;
+ mov.f32 %f503, 0fBF317200;
+ fma.rn.f32 %f504, %f502, %f503, %f500;
+ mov.f32 %f505, 0fB5BFBE8E;
+ fma.rn.f32 %f506, %f502, %f505, %f504;
+ mul.f32 %f507, %f506, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f508, %f507;
+ add.f32 %f509, %f502, 0f00000000;
+ ex2.approx.f32 %f510, %f509;
+ mul.f32 %f511, %f508, %f510;
+ setp.lt.f32 %p23, %f500, 0fC2D20000;
+ selp.f32 %f512, 0f00000000, %f511, %p23;
+ setp.gt.f32 %p24, %f500, 0f42D20000;
+ selp.f32 %f1185, 0f7F800000, %f512, %p24;
+ setp.eq.f32 %p25, %f1185, 0f7F800000;
+ @%p25 bra BB0_10;
+
+ fma.rn.f32 %f1185, %f1185, %f45, %f1185;
+
+BB0_10:
+ mov.f32 %f1162, 0f40000000;
+ cvt.rzi.f32.f32 %f1161, %f1162;
+ add.f32 %f1160, %f1161, %f1161;
+ mov.f32 %f1159, 0f40800000;
+ sub.f32 %f1158, %f1159, %f1160;
+ abs.f32 %f1157, %f1158;
+ setp.lt.f32 %p26, %f42, 0f00000000;
+ setp.eq.f32 %p27, %f1157, 0f3F800000;
+ and.pred %p1, %p26, %p27;
+ mov.b32 %r142, %f1185;
+ xor.b32 %r143, %r142, -2147483648;
+ mov.b32 %f513, %r143;
+ selp.f32 %f1187, %f513, %f1185, %p1;
+ setp.eq.f32 %p28, %f42, 0f00000000;
+ @%p28 bra BB0_13;
+ bra.uni BB0_11;
+
+BB0_13:
+ add.f32 %f516, %f42, %f42;
+ selp.f32 %f1187, %f516, 0f00000000, %p27;
+ bra.uni BB0_14;
+
+BB0_11:
+ setp.geu.f32 %p29, %f42, 0f00000000;
+ @%p29 bra BB0_14;
+
+ mov.f32 %f1165, 0f40800000;
+ cvt.rzi.f32.f32 %f515, %f1165;
+ setp.neu.f32 %p30, %f515, 0f40800000;
+ selp.f32 %f1187, 0f7FFFFFFF, %f1187, %p30;
+
+BB0_14:
+ add.f32 %f517, %f44, 0f40800000;
+ mov.b32 %r144, %f517;
+ setp.lt.s32 %p32, %r144, 2139095040;
+ @%p32 bra BB0_19;
+
+ setp.gtu.f32 %p33, %f44, 0f7F800000;
+ @%p33 bra BB0_18;
+ bra.uni BB0_16;
+
+BB0_18:
+ add.f32 %f1187, %f42, 0f40800000;
+ bra.uni BB0_19;
+
+BB0_16:
+ setp.neu.f32 %p34, %f44, 0f7F800000;
+ @%p34 bra BB0_19;
+
+ selp.f32 %f1187, 0fFF800000, 0f7F800000, %p1;
+
+BB0_19:
+ mov.u32 %r383, 1;
+ mov.u64 %rd309, lightMeshBuffer;
+ cvta.global.u64 %rd308, %rd309;
+ mul.lo.s32 %r382, %r387, 3;
+ mov.f32 %f518, 0f3F800000;
+ sub.f32 %f519, %f518, %f1187;
+ setp.eq.f32 %p35, %f42, 0f3F800000;
+ selp.f32 %f520, 0f00000000, %f519, %p35;
+ cvt.sat.f32.f32 %f521, %f520;
+ mul.f32 %f522, %f41, %f521;
+ add.s32 %r147, %r382, 1;
+ cvt.s64.s32 %rd51, %r147;
+ // inline asm
+ call (%rd49), _rt_buffer_get_64, (%rd308, %r383, %r117, %rd51, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f523, [%rd49];
+ mul.f32 %f524, %f37, %f523;
+ ld.f32 %f525, [%rd49+4];
+ mul.f32 %f526, %f38, %f525;
+ neg.f32 %f527, %f526;
+ sub.f32 %f528, %f527, %f524;
+ ld.f32 %f529, [%rd49+8];
+ mul.f32 %f530, %f39, %f529;
+ sub.f32 %f531, %f528, %f530;
+ cvt.sat.f32.f32 %f532, %f531;
+ mul.f32 %f56, %f522, %f532;
+ setp.leu.f32 %p36, %f56, 0f3727C5AC;
+ @%p36 bra BB0_21;
+
+ mov.u32 %r386, 1;
+ mov.u64 %rd311, lightMeshBuffer;
+ cvta.global.u64 %rd310, %rd311;
+ mul.lo.s32 %r385, %r387, 3;
+ cvt.sat.f32.f32 %f541, %f40;
+ add.u64 %rd56, %SP, 12;
+ cvta.to.local.u64 %rd63, %rd56;
+ max.f32 %f539, %f546, %f398;
+ sub.f32 %f540, %f36, %f539;
+ mov.u32 %r153, 1065353216;
+ st.local.u32 [%rd63], %r153;
+ ld.global.u32 %r148, [root];
+ // inline asm
+ call _rt_trace_64, (%r148, %f12, %f13, %f14, %f37, %f38, %f39, %r386, %f539, %f540, %rd56, %r102);
+ // inline asm
+ add.s32 %r154, %r385, 2;
+ cvt.s64.s32 %rd59, %r154;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd310, %r386, %r117, %rd59, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f548, [%rd57];
+ ld.local.f32 %f549, [%rd63];
+ mul.f32 %f550, %f549, %f548;
+ ld.f32 %f551, [%rd57+4];
+ mul.f32 %f552, %f549, %f551;
+ ld.f32 %f553, [%rd57+8];
+ mul.f32 %f554, %f549, %f553;
+ mul.f32 %f555, %f56, %f550;
+ mul.f32 %f556, %f56, %f552;
+ mul.f32 %f557, %f56, %f554;
+ fma.rn.f32 %f23, %f541, %f555, %f23;
+ fma.rn.f32 %f22, %f541, %f556, %f22;
+ fma.rn.f32 %f21, %f541, %f557, %f21;
+ mul.f32 %f558, %f40, 0f40800000;
+ cvt.sat.f32.f32 %f559, %f558;
+ mul.f32 %f560, %f555, %f559;
+ mul.f32 %f561, %f556, %f559;
+ mul.f32 %f562, %f559, %f557;
+ fma.rn.f32 %f29, %f37, %f560, %f29;
+ fma.rn.f32 %f28, %f37, %f561, %f28;
+ fma.rn.f32 %f27, %f37, %f562, %f27;
+ fma.rn.f32 %f32, %f38, %f560, %f32;
+ fma.rn.f32 %f31, %f38, %f561, %f31;
+ fma.rn.f32 %f30, %f38, %f562, %f30;
+ fma.rn.f32 %f35, %f39, %f560, %f35;
+ fma.rn.f32 %f34, %f39, %f561, %f34;
+ fma.rn.f32 %f33, %f39, %f562, %f33;
+ add.f32 %f26, %f26, %f560;
+ add.f32 %f25, %f25, %f561;
+ add.f32 %f24, %f24, %f562;
+ add.f32 %f20, %f20, %f549;
+
+BB0_21:
+ add.s32 %r7, %r7, 1;
+
+BB0_22:
+ ld.global.u32 %r155, [lightMeshBufferSize];
+ add.s32 %r387, %r387, 1;
+ setp.lt.u32 %p38, %r387, %r155;
+ @%p38 bra BB0_6;
+ bra.uni BB0_23;
+
+BB0_4:
+ mov.f32 %f21, %f20;
+ mov.f32 %f22, %f20;
+ mov.f32 %f23, %f20;
+ mov.f32 %f24, %f20;
+ mov.f32 %f25, %f20;
+ mov.f32 %f26, %f20;
+ mov.f32 %f27, %f20;
+ mov.f32 %f28, %f20;
+ mov.f32 %f29, %f20;
+ mov.f32 %f30, %f20;
+ mov.f32 %f31, %f20;
+ mov.f32 %f32, %f20;
+ mov.f32 %f33, %f20;
+ mov.f32 %f34, %f20;
+ mov.f32 %f35, %f20;
+
+BB0_23:
+ mov.pred %p149, %p13;
+
+BB0_24:
+ cvt.rn.f32.s32 %f563, %r7;
+ mov.f32 %f564, 0f3F800000;
+ max.f32 %f565, %f563, %f564;
+ rcp.rn.f32 %f566, %f565;
+ mul.f32 %f1305, %f23, %f566;
+ mul.f32 %f1306, %f22, %f566;
+ mul.f32 %f1307, %f21, %f566;
+ div.rn.f32 %f1308, %f20, %f565;
+ mul.f32 %f1302, %f26, %f566;
+ mul.f32 %f1303, %f25, %f566;
+ mul.f32 %f1304, %f24, %f566;
+ mul.f32 %f1299, %f29, %f566;
+ mul.f32 %f1300, %f28, %f566;
+ mul.f32 %f1301, %f27, %f566;
+ mul.f32 %f1296, %f32, %f566;
+ mul.f32 %f1297, %f31, %f566;
+ mul.f32 %f1298, %f30, %f566;
+ mul.f32 %f1293, %f35, %f566;
+ mul.f32 %f1294, %f34, %f566;
+ mul.f32 %f1295, %f33, %f566;
+ @!%p149 bra BB0_77;
+ bra.uni BB0_25;
+
+BB0_25:
+ abs.f32 %f1164, %f1168;
+ abs.f32 %f1163, %f1166;
+ setp.gt.f32 %p39, %f1163, %f1164;
+ neg.f32 %f582, %f1167;
+ selp.f32 %f583, %f582, 0f00000000, %p39;
+ neg.f32 %f584, %f1168;
+ selp.f32 %f585, %f1166, %f584, %p39;
+ selp.f32 %f586, 0f00000000, %f1167, %p39;
+ mul.f32 %f587, %f585, %f585;
+ fma.rn.f32 %f588, %f583, %f583, %f587;
+ fma.rn.f32 %f589, %f586, %f586, %f588;
+ sqrt.rn.f32 %f590, %f589;
+ rcp.rn.f32 %f591, %f590;
+ mul.f32 %f137, %f583, %f591;
+ mul.f32 %f138, %f585, %f591;
+ mul.f32 %f139, %f586, %f591;
+ mov.f32 %f581, 0f00000000;
+ setp.lt.s32 %p40, %r1, 1;
+ mov.f32 %f1251, %f581;
+ mov.f32 %f1252, %f581;
+ mov.f32 %f1253, %f581;
+ mov.f32 %f1254, %f581;
+ mov.f32 %f1255, %f581;
+ mov.f32 %f1256, %f581;
+ mov.f32 %f1257, %f581;
+ mov.f32 %f1258, %f581;
+ mov.f32 %f1259, %f581;
+ mov.f32 %f1260, %f581;
+ mov.f32 %f1261, %f581;
+ mov.f32 %f1262, %f581;
+ mov.f32 %f1263, %f581;
+ mov.f32 %f1264, %f581;
+ mov.f32 %f1265, %f581;
+ @%p40 bra BB0_76;
+
+ mad.lo.s32 %r394, %r129, 1664525, 1013904223;
+ cvt.rn.f32.s32 %f607, %r1;
+ rcp.rn.f32 %f140, %f607;
+ add.u64 %rd65, %SP, 16;
+ cvta.to.local.u64 %rd2, %rd65;
+ mul.f32 %f141, %f12, 0f3456BF95;
+ mul.f32 %f142, %f13, 0f3456BF95;
+ mul.f32 %f143, %f14, 0f3456BF95;
+ add.u64 %rd66, %SP, 0;
+ cvta.to.local.u64 %rd3, %rd66;
+ mul.f32 %f608, %f1166, %f138;
+ mul.f32 %f609, %f1167, %f137;
+ sub.f32 %f144, %f609, %f608;
+ mul.f32 %f610, %f1168, %f137;
+ mul.f32 %f611, %f1166, %f139;
+ sub.f32 %f145, %f611, %f610;
+ mul.f32 %f612, %f1167, %f139;
+ mul.f32 %f613, %f1168, %f138;
+ sub.f32 %f146, %f613, %f612;
+ mov.f32 %f1251, 0f00000000;
+ mov.u32 %r156, 0;
+ abs.f32 %f614, %f142;
+ abs.f32 %f615, %f141;
+ max.f32 %f616, %f615, %f614;
+ abs.f32 %f617, %f143;
+ max.f32 %f618, %f616, %f617;
+ mov.u32 %r391, %r156;
+ mov.f32 %f1252, %f1251;
+ mov.f32 %f1253, %f1251;
+ mov.f32 %f1254, %f1251;
+ mov.f32 %f1255, %f1251;
+ mov.f32 %f1256, %f1251;
+ mov.f32 %f1257, %f1251;
+ mov.f32 %f1258, %f1251;
+ mov.f32 %f1259, %f1251;
+ mov.f32 %f1260, %f1251;
+ mov.f32 %f1261, %f1251;
+ mov.f32 %f1262, %f1251;
+ mov.f32 %f1263, %f1251;
+ mov.f32 %f1264, %f1251;
+ mov.f32 %f1265, %f1251;
+
+BB0_27:
+ cvt.rn.f32.s32 %f162, %r391;
+ max.f32 %f163, %f618, %f398;
+ mov.u32 %r393, %r156;
+
+BB0_28:
+ mad.lo.s32 %r158, %r394, 1664525, 1013904223;
+ and.b32 %r159, %r158, 16777215;
+ cvt.rn.f32.u32 %f620, %r159;
+ fma.rn.f32 %f621, %f620, 0f33800000, %f162;
+ mul.f32 %f179, %f140, %f621;
+ mad.lo.s32 %r394, %r158, 1664525, 1013904223;
+ and.b32 %r160, %r394, 16777215;
+ cvt.rn.f32.u32 %f622, %r160;
+ cvt.rn.f32.s32 %f623, %r393;
+ fma.rn.f32 %f624, %f622, 0f33800000, %f623;
+ mul.f32 %f625, %f140, %f624;
+ mul.f32 %f626, %f179, %f179;
+ sub.f32 %f628, %f564, %f626;
+ mov.f32 %f629, 0f00000000;
+ max.f32 %f630, %f629, %f628;
+ sqrt.rn.f32 %f180, %f630;
+ mul.f32 %f1272, %f625, 0f40C90FDB;
+ abs.f32 %f182, %f1272;
+ setp.neu.f32 %p41, %f182, 0f7F800000;
+ mov.f32 %f1266, %f1272;
+ @%p41 bra BB0_30;
+
+ mul.rn.f32 %f1266, %f1272, %f629;
+
+BB0_30:
+ mul.f32 %f632, %f1266, 0f3F22F983;
+ cvt.rni.s32.f32 %r404, %f632;
+ cvt.rn.f32.s32 %f633, %r404;
+ neg.f32 %f634, %f633;
+ mov.f32 %f635, 0f3FC90FDA;
+ fma.rn.f32 %f636, %f634, %f635, %f1266;
+ mov.f32 %f637, 0f33A22168;
+ fma.rn.f32 %f638, %f634, %f637, %f636;
+ mov.f32 %f639, 0f27C234C5;
+ fma.rn.f32 %f1267, %f634, %f639, %f638;
+ abs.f32 %f640, %f1266;
+ setp.leu.f32 %p42, %f640, 0f47CE4780;
+ @%p42 bra BB0_41;
+
+ mov.b32 %r19, %f1266;
+ shr.u32 %r20, %r19, 23;
+ shl.b32 %r163, %r19, 8;
+ or.b32 %r21, %r163, -2147483648;
+ mov.u32 %r395, 0;
+ mov.u64 %rd313, 0;
+ mov.u64 %rd312, %rd2;
+ mov.u32 %r396, %r395;
+
+BB0_32:
+ .pragma "nounroll";
+ shl.b64 %rd68, %rd313, 2;
+ mov.u64 %rd69, __cudart_i2opi_f;
+ add.s64 %rd70, %rd69, %rd68;
+ ld.const.u32 %r166, [%rd70];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r164, %r166, %r21, %r396;
+ madc.hi.u32 %r396, %r166, %r21, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd312], %r164;
+ add.s32 %r395, %r395, 1;
+ cvt.s64.s32 %rd313, %r395;
+ mul.wide.s32 %rd71, %r395, 4;
+ add.s64 %rd312, %rd2, %rd71;
+ setp.ne.s32 %p43, %r395, 6;
+ @%p43 bra BB0_32;
+
+ and.b32 %r169, %r20, 255;
+ add.s32 %r170, %r169, -128;
+ shr.u32 %r171, %r170, 5;
+ and.b32 %r26, %r19, -2147483648;
+ st.local.u32 [%rd2+24], %r396;
+ mov.u32 %r172, 6;
+ sub.s32 %r173, %r172, %r171;
+ mul.wide.s32 %rd72, %r173, 4;
+ add.s64 %rd9, %rd2, %rd72;
+ ld.local.u32 %r397, [%rd9];
+ ld.local.u32 %r398, [%rd9+-4];
+ and.b32 %r29, %r20, 31;
+ setp.eq.s32 %p44, %r29, 0;
+ @%p44 bra BB0_35;
+
+ mov.u32 %r174, 32;
+ sub.s32 %r175, %r174, %r29;
+ shr.u32 %r176, %r398, %r175;
+ shl.b32 %r177, %r397, %r29;
+ add.s32 %r397, %r176, %r177;
+ ld.local.u32 %r178, [%rd9+-8];
+ shr.u32 %r179, %r178, %r175;
+ shl.b32 %r180, %r398, %r29;
+ add.s32 %r398, %r179, %r180;
+
+BB0_35:
+ shr.u32 %r181, %r398, 30;
+ shl.b32 %r182, %r397, 2;
+ add.s32 %r399, %r181, %r182;
+ shl.b32 %r35, %r398, 2;
+ shr.u32 %r183, %r399, 31;
+ shr.u32 %r184, %r397, 30;
+ add.s32 %r36, %r183, %r184;
+ setp.eq.s32 %p45, %r183, 0;
+ @%p45 bra BB0_36;
+ bra.uni BB0_37;
+
+BB0_36:
+ mov.u32 %r400, %r26;
+ mov.u32 %r401, %r35;
+ bra.uni BB0_38;
+
+BB0_37:
+ not.b32 %r185, %r399;
+ neg.s32 %r401, %r35;
+ setp.eq.s32 %p46, %r35, 0;
+ selp.u32 %r186, 1, 0, %p46;
+ add.s32 %r399, %r186, %r185;
+ xor.b32 %r400, %r26, -2147483648;
+
+BB0_38:
+ clz.b32 %r403, %r399;
+ setp.eq.s32 %p47, %r403, 0;
+ shl.b32 %r187, %r399, %r403;
+ mov.u32 %r188, 32;
+ sub.s32 %r189, %r188, %r403;
+ shr.u32 %r190, %r401, %r189;
+ add.s32 %r191, %r190, %r187;
+ selp.b32 %r44, %r399, %r191, %p47;
+ mov.u32 %r192, -921707870;
+ mul.hi.u32 %r402, %r44, %r192;
+ setp.eq.s32 %p48, %r26, 0;
+ neg.s32 %r193, %r36;
+ selp.b32 %r404, %r36, %r193, %p48;
+ setp.lt.s32 %p49, %r402, 1;
+ @%p49 bra BB0_40;
+
+ mul.lo.s32 %r194, %r44, -921707870;
+ shr.u32 %r195, %r194, 31;
+ shl.b32 %r196, %r402, 1;
+ add.s32 %r402, %r195, %r196;
+ add.s32 %r403, %r403, 1;
+
+BB0_40:
+ mov.u32 %r197, 126;
+ sub.s32 %r198, %r197, %r403;
+ shl.b32 %r199, %r198, 23;
+ add.s32 %r200, %r402, 1;
+ shr.u32 %r201, %r200, 7;
+ add.s32 %r202, %r201, 1;
+ shr.u32 %r203, %r202, 1;
+ add.s32 %r204, %r203, %r199;
+ or.b32 %r205, %r204, %r400;
+ mov.b32 %f1267, %r205;
+
+BB0_41:
+ mul.rn.f32 %f188, %f1267, %f1267;
+ add.s32 %r52, %r404, 1;
+ and.b32 %r53, %r52, 1;
+ setp.eq.s32 %p50, %r53, 0;
+ @%p50 bra BB0_43;
+ bra.uni BB0_42;
+
+BB0_43:
+ mov.f32 %f643, 0f3C08839E;
+ mov.f32 %f644, 0fB94CA1F9;
+ fma.rn.f32 %f1268, %f644, %f188, %f643;
+ bra.uni BB0_44;
+
+BB0_42:
+ mov.f32 %f641, 0fBAB6061A;
+ mov.f32 %f642, 0f37CCF5CE;
+ fma.rn.f32 %f1268, %f642, %f188, %f641;
+
+BB0_44:
+ @%p50 bra BB0_46;
+ bra.uni BB0_45;
+
+BB0_46:
+ mov.f32 %f648, 0fBE2AAAA3;
+ fma.rn.f32 %f649, %f1268, %f188, %f648;
+ fma.rn.f32 %f1269, %f649, %f188, %f629;
+ bra.uni BB0_47;
+
+BB0_45:
+ mov.f32 %f645, 0f3D2AAAA5;
+ fma.rn.f32 %f646, %f1268, %f188, %f645;
+ mov.f32 %f647, 0fBF000000;
+ fma.rn.f32 %f1269, %f646, %f188, %f647;
+
+BB0_47:
+ fma.rn.f32 %f1270, %f1269, %f1267, %f1267;
+ @%p50 bra BB0_49;
+
+ fma.rn.f32 %f1270, %f1269, %f188, %f564;
+
+BB0_49:
+ and.b32 %r206, %r52, 2;
+ setp.eq.s32 %p53, %r206, 0;
+ @%p53 bra BB0_51;
+
+ mov.f32 %f653, 0fBF800000;
+ fma.rn.f32 %f1270, %f1270, %f653, %f629;
+
+BB0_51:
+ @%p41 bra BB0_53;
+
+ mul.rn.f32 %f1272, %f1272, %f629;
+
+BB0_53:
+ mul.f32 %f655, %f1272, 0f3F22F983;
+ cvt.rni.s32.f32 %r414, %f655;
+ cvt.rn.f32.s32 %f656, %r414;
+ neg.f32 %f657, %f656;
+ fma.rn.f32 %f659, %f657, %f635, %f1272;
+ fma.rn.f32 %f661, %f657, %f637, %f659;
+ fma.rn.f32 %f1273, %f657, %f639, %f661;
+ abs.f32 %f663, %f1272;
+ setp.leu.f32 %p55, %f663, 0f47CE4780;
+ @%p55 bra BB0_64;
+
+ mov.b32 %r55, %f1272;
+ shr.u32 %r56, %r55, 23;
+ shl.b32 %r209, %r55, 8;
+ or.b32 %r57, %r209, -2147483648;
+ mov.u32 %r405, 0;
+ mov.u64 %rd314, %rd2;
+ mov.u64 %rd315, %rd26;
+ mov.u32 %r406, %r405;
+
+BB0_55:
+ .pragma "nounroll";
+ shl.b64 %rd74, %rd315, 2;
+ mov.u64 %rd75, __cudart_i2opi_f;
+ add.s64 %rd76, %rd75, %rd74;
+ ld.const.u32 %r212, [%rd76];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r210, %r212, %r57, %r406;
+ madc.hi.u32 %r406, %r212, %r57, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd314], %r210;
+ add.s32 %r405, %r405, 1;
+ cvt.s64.s32 %rd315, %r405;
+ mul.wide.s32 %rd77, %r405, 4;
+ add.s64 %rd314, %rd2, %rd77;
+ setp.ne.s32 %p56, %r405, 6;
+ @%p56 bra BB0_55;
+
+ and.b32 %r215, %r56, 255;
+ add.s32 %r216, %r215, -128;
+ shr.u32 %r217, %r216, 5;
+ and.b32 %r62, %r55, -2147483648;
+ st.local.u32 [%rd2+24], %r406;
+ mov.u32 %r218, 6;
+ sub.s32 %r219, %r218, %r217;
+ mul.wide.s32 %rd78, %r219, 4;
+ add.s64 %rd15, %rd2, %rd78;
+ ld.local.u32 %r407, [%rd15];
+ ld.local.u32 %r408, [%rd15+-4];
+ and.b32 %r65, %r56, 31;
+ setp.eq.s32 %p57, %r65, 0;
+ @%p57 bra BB0_58;
+
+ mov.u32 %r220, 32;
+ sub.s32 %r221, %r220, %r65;
+ shr.u32 %r222, %r408, %r221;
+ shl.b32 %r223, %r407, %r65;
+ add.s32 %r407, %r222, %r223;
+ ld.local.u32 %r224, [%rd15+-8];
+ shr.u32 %r225, %r224, %r221;
+ shl.b32 %r226, %r408, %r65;
+ add.s32 %r408, %r225, %r226;
+
+BB0_58:
+ shr.u32 %r227, %r408, 30;
+ shl.b32 %r228, %r407, 2;
+ add.s32 %r409, %r227, %r228;
+ shl.b32 %r71, %r408, 2;
+ shr.u32 %r229, %r409, 31;
+ shr.u32 %r230, %r407, 30;
+ add.s32 %r72, %r229, %r230;
+ setp.eq.s32 %p58, %r229, 0;
+ @%p58 bra BB0_59;
+ bra.uni BB0_60;
+
+BB0_59:
+ mov.u32 %r410, %r62;
+ mov.u32 %r411, %r71;
+ bra.uni BB0_61;
+
+BB0_60:
+ not.b32 %r231, %r409;
+ neg.s32 %r411, %r71;
+ setp.eq.s32 %p59, %r71, 0;
+ selp.u32 %r232, 1, 0, %p59;
+ add.s32 %r409, %r232, %r231;
+ xor.b32 %r410, %r62, -2147483648;
+
+BB0_61:
+ clz.b32 %r413, %r409;
+ setp.eq.s32 %p60, %r413, 0;
+ shl.b32 %r233, %r409, %r413;
+ mov.u32 %r234, 32;
+ sub.s32 %r235, %r234, %r413;
+ shr.u32 %r236, %r411, %r235;
+ add.s32 %r237, %r236, %r233;
+ selp.b32 %r80, %r409, %r237, %p60;
+ mov.u32 %r238, -921707870;
+ mul.hi.u32 %r412, %r80, %r238;
+ setp.eq.s32 %p61, %r62, 0;
+ neg.s32 %r239, %r72;
+ selp.b32 %r414, %r72, %r239, %p61;
+ setp.lt.s32 %p62, %r412, 1;
+ @%p62 bra BB0_63;
+
+ mul.lo.s32 %r240, %r80, -921707870;
+ shr.u32 %r241, %r240, 31;
+ shl.b32 %r242, %r412, 1;
+ add.s32 %r412, %r241, %r242;
+ add.s32 %r413, %r413, 1;
+
+BB0_63:
+ mov.u32 %r243, 126;
+ sub.s32 %r244, %r243, %r413;
+ shl.b32 %r245, %r244, 23;
+ add.s32 %r246, %r412, 1;
+ shr.u32 %r247, %r246, 7;
+ add.s32 %r248, %r247, 1;
+ shr.u32 %r249, %r248, 1;
+ add.s32 %r250, %r249, %r245;
+ or.b32 %r251, %r250, %r410;
+ mov.b32 %f1273, %r251;
+
+BB0_64:
+ mul.rn.f32 %f205, %f1273, %f1273;
+ and.b32 %r88, %r414, 1;
+ setp.eq.s32 %p63, %r88, 0;
+ @%p63 bra BB0_66;
+ bra.uni BB0_65;
+
+BB0_66:
+ mov.f32 %f666, 0f3C08839E;
+ mov.f32 %f667, 0fB94CA1F9;
+ fma.rn.f32 %f1274, %f667, %f205, %f666;
+ bra.uni BB0_67;
+
+BB0_65:
+ mov.f32 %f664, 0fBAB6061A;
+ mov.f32 %f665, 0f37CCF5CE;
+ fma.rn.f32 %f1274, %f665, %f205, %f664;
+
+BB0_67:
+ @%p63 bra BB0_69;
+ bra.uni BB0_68;
+
+BB0_69:
+ mov.f32 %f671, 0fBE2AAAA3;
+ fma.rn.f32 %f672, %f1274, %f205, %f671;
+ fma.rn.f32 %f1275, %f672, %f205, %f629;
+ bra.uni BB0_70;
+
+BB0_68:
+ mov.f32 %f668, 0f3D2AAAA5;
+ fma.rn.f32 %f669, %f1274, %f205, %f668;
+ mov.f32 %f670, 0fBF000000;
+ fma.rn.f32 %f1275, %f669, %f205, %f670;
+
+BB0_70:
+ fma.rn.f32 %f1276, %f1275, %f1273, %f1273;
+ @%p63 bra BB0_72;
+
+ fma.rn.f32 %f1276, %f1275, %f205, %f564;
+
+BB0_72:
+ and.b32 %r252, %r414, 2;
+ setp.eq.s32 %p66, %r252, 0;
+ @%p66 bra BB0_74;
+
+ mov.f32 %f676, 0fBF800000;
+ fma.rn.f32 %f1276, %f1276, %f676, %f629;
+
+BB0_74:
+ mul.f32 %f685, %f180, %f1270;
+ mul.f32 %f686, %f180, %f1276;
+ mul.f32 %f687, %f137, %f686;
+ mul.f32 %f688, %f138, %f686;
+ mul.f32 %f689, %f139, %f686;
+ fma.rn.f32 %f690, %f146, %f685, %f687;
+ fma.rn.f32 %f691, %f145, %f685, %f688;
+ fma.rn.f32 %f692, %f144, %f685, %f689;
+ fma.rn.f32 %f680, %f1166, %f179, %f690;
+ fma.rn.f32 %f681, %f1167, %f179, %f691;
+ fma.rn.f32 %f682, %f1168, %f179, %f692;
+ mov.u32 %r254, 0;
+ st.local.u32 [%rd3+8], %r254;
+ st.local.u32 [%rd3+4], %r254;
+ st.local.u32 [%rd3], %r254;
+ ld.global.u32 %r253, [root];
+ mov.f32 %f684, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r253, %f12, %f13, %f14, %f680, %f681, %f682, %r254, %f163, %f684, %rd66, %r117);
+ // inline asm
+ ld.local.f32 %f693, [%rd3];
+ max.f32 %f695, %f693, %f629;
+ ld.local.f32 %f696, [%rd3+4];
+ max.f32 %f697, %f696, %f629;
+ ld.local.f32 %f698, [%rd3+8];
+ max.f32 %f699, %f698, %f629;
+ fma.rn.f32 %f1259, %f680, %f695, %f1259;
+ fma.rn.f32 %f1258, %f680, %f697, %f1258;
+ fma.rn.f32 %f1257, %f680, %f699, %f1257;
+ fma.rn.f32 %f1262, %f681, %f695, %f1262;
+ fma.rn.f32 %f1261, %f681, %f697, %f1261;
+ fma.rn.f32 %f1260, %f681, %f699, %f1260;
+ fma.rn.f32 %f1265, %f682, %f695, %f1265;
+ fma.rn.f32 %f1264, %f682, %f697, %f1264;
+ fma.rn.f32 %f1263, %f682, %f699, %f1263;
+ add.f32 %f1256, %f1256, %f695;
+ add.f32 %f1255, %f1255, %f697;
+ add.f32 %f1254, %f1254, %f699;
+ mul.f32 %f700, %f1167, %f681;
+ fma.rn.f32 %f701, %f1166, %f680, %f700;
+ fma.rn.f32 %f702, %f1168, %f682, %f701;
+ cvt.sat.f32.f32 %f703, %f702;
+ fma.rn.f32 %f1253, %f695, %f703, %f1253;
+ fma.rn.f32 %f1252, %f697, %f703, %f1252;
+ fma.rn.f32 %f1251, %f699, %f703, %f1251;
+ add.s32 %r393, %r393, 1;
+ setp.lt.s32 %p67, %r393, %r1;
+ @%p67 bra BB0_28;
+
+ add.s32 %r391, %r391, 1;
+ setp.lt.s32 %p68, %r391, %r1;
+ @%p68 bra BB0_27;
+
+BB0_76:
+ mul.lo.s32 %r256, %r1, %r1;
+ cvt.rn.f32.s32 %f704, %r256;
+ rcp.rn.f32 %f705, %f704;
+ mul.f32 %f706, %f1253, %f705;
+ mul.f32 %f707, %f1252, %f705;
+ mul.f32 %f708, %f1251, %f705;
+ div.rn.f32 %f1308, %f581, %f704;
+ mul.f32 %f1302, %f1256, %f705;
+ mul.f32 %f1303, %f1255, %f705;
+ mul.f32 %f1304, %f1254, %f705;
+ mul.f32 %f1299, %f1259, %f705;
+ mul.f32 %f1300, %f1258, %f705;
+ mul.f32 %f1301, %f1257, %f705;
+ mul.f32 %f1296, %f1262, %f705;
+ mul.f32 %f1297, %f1261, %f705;
+ mul.f32 %f1298, %f1260, %f705;
+ mul.f32 %f1293, %f1265, %f705;
+ mul.f32 %f1294, %f1264, %f705;
+ mul.f32 %f1295, %f1263, %f705;
+ fma.rn.f32 %f1305, %f1253, %f705, %f706;
+ fma.rn.f32 %f1306, %f1252, %f705, %f707;
+ fma.rn.f32 %f1307, %f1251, %f705, %f708;
+
+BB0_77:
+ ld.global.u32 %r416, [imageEnabled];
+ and.b32 %r257, %r416, 8;
+ setp.eq.s32 %p69, %r257, 0;
+ @%p69 bra BB0_90;
+
+ cvt.u64.u32 %rd82, %r3;
+ cvt.u64.u32 %rd83, %r4;
+ mov.u64 %rd86, image_Mask;
+ cvta.global.u64 %rd81, %rd86;
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd81, %r101, %r101, %rd82, %rd83, %rd26, %rd26);
+ // inline asm
+ mov.f32 %f712, 0f3E68BA2E;
+ cvt.rzi.f32.f32 %f713, %f712;
+ fma.rn.f32 %f714, %f713, 0fC0000000, 0f3EE8BA2E;
+ abs.f32 %f279, %f714;
+ abs.f32 %f280, %f1308;
+ setp.lt.f32 %p70, %f280, 0f00800000;
+ mul.f32 %f715, %f280, 0f4B800000;
+ selp.f32 %f716, 0fC3170000, 0fC2FE0000, %p70;
+ selp.f32 %f717, %f715, %f280, %p70;
+ mov.b32 %r260, %f717;
+ and.b32 %r261, %r260, 8388607;
+ or.b32 %r262, %r261, 1065353216;
+ mov.b32 %f718, %r262;
+ shr.u32 %r263, %r260, 23;
+ cvt.rn.f32.u32 %f719, %r263;
+ add.f32 %f720, %f716, %f719;
+ setp.gt.f32 %p71, %f718, 0f3FB504F3;
+ mul.f32 %f721, %f718, 0f3F000000;
+ add.f32 %f722, %f720, 0f3F800000;
+ selp.f32 %f723, %f721, %f718, %p71;
+ selp.f32 %f724, %f722, %f720, %p71;
+ add.f32 %f725, %f723, 0fBF800000;
+ add.f32 %f711, %f723, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f710,%f711;
+ // inline asm
+ add.f32 %f726, %f725, %f725;
+ mul.f32 %f727, %f710, %f726;
+ mul.f32 %f728, %f727, %f727;
+ mov.f32 %f729, 0f3C4CAF63;
+ mov.f32 %f730, 0f3B18F0FE;
+ fma.rn.f32 %f731, %f730, %f728, %f729;
+ mov.f32 %f732, 0f3DAAAABD;
+ fma.rn.f32 %f733, %f731, %f728, %f732;
+ mul.rn.f32 %f734, %f733, %f728;
+ mul.rn.f32 %f735, %f734, %f727;
+ sub.f32 %f736, %f725, %f727;
+ neg.f32 %f737, %f727;
+ add.f32 %f738, %f736, %f736;
+ fma.rn.f32 %f739, %f737, %f725, %f738;
+ mul.rn.f32 %f740, %f710, %f739;
+ add.f32 %f741, %f735, %f727;
+ sub.f32 %f742, %f727, %f741;
+ add.f32 %f743, %f735, %f742;
+ add.f32 %f744, %f740, %f743;
+ add.f32 %f745, %f741, %f744;
+ sub.f32 %f746, %f741, %f745;
+ add.f32 %f747, %f744, %f746;
+ mov.f32 %f748, 0f3F317200;
+ mul.rn.f32 %f749, %f724, %f748;
+ mov.f32 %f750, 0f35BFBE8E;
+ mul.rn.f32 %f751, %f724, %f750;
+ add.f32 %f752, %f749, %f745;
+ sub.f32 %f753, %f749, %f752;
+ add.f32 %f754, %f745, %f753;
+ add.f32 %f755, %f747, %f754;
+ add.f32 %f756, %f751, %f755;
+ add.f32 %f757, %f752, %f756;
+ sub.f32 %f758, %f752, %f757;
+ add.f32 %f759, %f756, %f758;
+ mov.f32 %f760, 0f3EE8BA2E;
+ mul.rn.f32 %f761, %f760, %f757;
+ neg.f32 %f762, %f761;
+ fma.rn.f32 %f763, %f760, %f757, %f762;
+ fma.rn.f32 %f764, %f760, %f759, %f763;
+ mov.f32 %f765, 0f00000000;
+ fma.rn.f32 %f766, %f765, %f757, %f764;
+ add.rn.f32 %f767, %f761, %f766;
+ neg.f32 %f768, %f767;
+ add.rn.f32 %f769, %f761, %f768;
+ add.rn.f32 %f770, %f769, %f766;
+ mov.b32 %r264, %f767;
+ setp.eq.s32 %p72, %r264, 1118925336;
+ add.s32 %r265, %r264, -1;
+ mov.b32 %f771, %r265;
+ add.f32 %f772, %f770, 0f37000000;
+ selp.f32 %f773, %f771, %f767, %p72;
+ selp.f32 %f281, %f772, %f770, %p72;
+ mul.f32 %f774, %f773, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f775, %f774;
+ mov.f32 %f776, 0fBF317200;
+ fma.rn.f32 %f777, %f775, %f776, %f773;
+ mov.f32 %f778, 0fB5BFBE8E;
+ fma.rn.f32 %f779, %f775, %f778, %f777;
+ mul.f32 %f780, %f779, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f781, %f780;
+ add.f32 %f782, %f775, 0f00000000;
+ ex2.approx.f32 %f783, %f782;
+ mul.f32 %f784, %f781, %f783;
+ setp.lt.f32 %p73, %f773, 0fC2D20000;
+ selp.f32 %f785, 0f00000000, %f784, %p73;
+ setp.gt.f32 %p74, %f773, 0f42D20000;
+ selp.f32 %f1309, 0f7F800000, %f785, %p74;
+ setp.eq.f32 %p75, %f1309, 0f7F800000;
+ @%p75 bra BB0_80;
+
+ fma.rn.f32 %f1309, %f1309, %f281, %f1309;
+
+BB0_80:
+ setp.lt.f32 %p76, %f1308, 0f00000000;
+ setp.eq.f32 %p77, %f279, 0f3F800000;
+ and.pred %p3, %p76, %p77;
+ mov.b32 %r266, %f1309;
+ xor.b32 %r267, %r266, -2147483648;
+ mov.b32 %f786, %r267;
+ selp.f32 %f1311, %f786, %f1309, %p3;
+ setp.eq.f32 %p78, %f1308, 0f00000000;
+ @%p78 bra BB0_83;
+ bra.uni BB0_81;
+
+BB0_83:
+ add.f32 %f789, %f1308, %f1308;
+ selp.f32 %f1311, %f789, 0f00000000, %p77;
+ bra.uni BB0_84;
+
+BB0_148:
+ mov.u64 %rd227, image_HDR;
+ cvta.global.u64 %rd222, %rd227;
+ mov.u32 %r353, 8;
+ mov.u64 %rd226, 0;
+ // inline asm
+ call (%rd221), _rt_buffer_get_64, (%rd222, %r101, %r353, %rd19, %rd20, %rd226, %rd226);
+ // inline asm
+ mov.f32 %f1128, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f1128;}
+
+ // inline asm
+ mov.u16 %rs105, 0;
+ st.v4.u16 [%rd221], {%rs104, %rs104, %rs104, %rs105};
+
+BB0_149:
+ ld.global.u32 %r354, [additive];
+ setp.eq.s32 %p145, %r354, 0;
+ @%p145 bra BB0_151;
+
+ mov.u64 %rd240, image_RNM0;
+ cvta.global.u64 %rd229, %rd240;
+ mov.u32 %r358, 8;
+ mov.u64 %rd239, 0;
+ // inline asm
+ call (%rd228), _rt_buffer_get_64, (%rd229, %r101, %r358, %rd19, %rd20, %rd239, %rd239);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd228];
+ // inline asm
+ { cvt.f32.f16 %f1129, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1130, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1131, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd234), _rt_buffer_get_64, (%rd229, %r101, %r358, %rd19, %rd20, %rd239, %rd239);
+ // inline asm
+ add.f32 %f1132, %f1129, 0f00000000;
+ add.f32 %f1133, %f1130, 0f00000000;
+ add.f32 %f1134, %f1131, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f1134;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f1133;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f1132;}
+
+ // inline asm
+ mov.u16 %rs116, 0;
+ st.v4.u16 [%rd234], {%rs109, %rs110, %rs111, %rs116};
+ bra.uni BB0_152;
+
+BB0_151:
+ mov.u64 %rd247, image_RNM0;
+ cvta.global.u64 %rd242, %rd247;
+ mov.u32 %r360, 8;
+ mov.u64 %rd246, 0;
+ // inline asm
+ call (%rd241), _rt_buffer_get_64, (%rd242, %r101, %r360, %rd19, %rd20, %rd246, %rd246);
+ // inline asm
+ mov.f32 %f1135, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f1135;}
+
+ // inline asm
+ mov.u16 %rs118, 0;
+ st.v4.u16 [%rd241], {%rs117, %rs117, %rs117, %rs118};
+
+BB0_152:
+ ld.global.u32 %r361, [additive];
+ setp.eq.s32 %p146, %r361, 0;
+ @%p146 bra BB0_154;
+
+ mov.u64 %rd260, image_RNM1;
+ cvta.global.u64 %rd249, %rd260;
+ mov.u32 %r365, 8;
+ mov.u64 %rd259, 0;
+ // inline asm
+ call (%rd248), _rt_buffer_get_64, (%rd249, %r101, %r365, %rd19, %rd20, %rd259, %rd259);
+ // inline asm
+ ld.v4.u16 {%rs125, %rs126, %rs127, %rs128}, [%rd248];
+ // inline asm
+ { cvt.f32.f16 %f1136, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1137, %rs126;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1138, %rs127;}
+
+ // inline asm
+ // inline asm
+ call (%rd254), _rt_buffer_get_64, (%rd249, %r101, %r365, %rd19, %rd20, %rd259, %rd259);
+ // inline asm
+ add.f32 %f1139, %f1136, 0f00000000;
+ add.f32 %f1140, %f1137, 0f00000000;
+ add.f32 %f1141, %f1138, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs124, %f1141;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f1140;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f1139;}
+
+ // inline asm
+ mov.u16 %rs129, 0;
+ st.v4.u16 [%rd254], {%rs122, %rs123, %rs124, %rs129};
+ bra.uni BB0_155;
+
+BB0_154:
+ mov.u64 %rd267, image_RNM1;
+ cvta.global.u64 %rd262, %rd267;
+ mov.u32 %r367, 8;
+ mov.u64 %rd266, 0;
+ // inline asm
+ call (%rd261), _rt_buffer_get_64, (%rd262, %r101, %r367, %rd19, %rd20, %rd266, %rd266);
+ // inline asm
+ mov.f32 %f1142, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f1142;}
+
+ // inline asm
+ mov.u16 %rs131, 0;
+ st.v4.u16 [%rd261], {%rs130, %rs130, %rs130, %rs131};
+
+BB0_155:
+ ld.global.u32 %r368, [additive];
+ setp.eq.s32 %p147, %r368, 0;
+ @%p147 bra BB0_157;
+
+ mov.u64 %rd280, image_RNM2;
+ cvta.global.u64 %rd269, %rd280;
+ mov.u32 %r372, 8;
+ mov.u64 %rd279, 0;
+ // inline asm
+ call (%rd268), _rt_buffer_get_64, (%rd269, %r101, %r372, %rd19, %rd20, %rd279, %rd279);
+ // inline asm
+ ld.v4.u16 {%rs138, %rs139, %rs140, %rs141}, [%rd268];
+ // inline asm
+ { cvt.f32.f16 %f1143, %rs138;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1144, %rs139;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1145, %rs140;}
+
+ // inline asm
+ // inline asm
+ call (%rd274), _rt_buffer_get_64, (%rd269, %r101, %r372, %rd19, %rd20, %rd279, %rd279);
+ // inline asm
+ add.f32 %f1146, %f1143, 0f00000000;
+ add.f32 %f1147, %f1144, 0f00000000;
+ add.f32 %f1148, %f1145, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs137, %f1148;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs136, %f1147;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f1146;}
+
+ // inline asm
+ mov.u16 %rs142, 0;
+ st.v4.u16 [%rd274], {%rs135, %rs136, %rs137, %rs142};
+ bra.uni BB0_158;
+
+BB0_157:
+ mov.u64 %rd287, image_RNM2;
+ cvta.global.u64 %rd282, %rd287;
+ mov.u32 %r374, 8;
+ mov.u64 %rd286, 0;
+ // inline asm
+ call (%rd281), _rt_buffer_get_64, (%rd282, %r101, %r374, %rd19, %rd20, %rd286, %rd286);
+ // inline asm
+ mov.f32 %f1149, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f1149;}
+
+ // inline asm
+ mov.u16 %rs144, 0;
+ st.v4.u16 [%rd281], {%rs143, %rs143, %rs143, %rs144};
+
+BB0_158:
+ ld.global.u32 %r375, [additive];
+ setp.eq.s32 %p148, %r375, 0;
+ @%p148 bra BB0_160;
+
+ mov.u64 %rd300, image_RNM3;
+ cvta.global.u64 %rd289, %rd300;
+ mov.u32 %r379, 8;
+ mov.u64 %rd299, 0;
+ // inline asm
+ call (%rd288), _rt_buffer_get_64, (%rd289, %r101, %r379, %rd19, %rd20, %rd299, %rd299);
+ // inline asm
+ ld.v4.u16 {%rs151, %rs152, %rs153, %rs154}, [%rd288];
+ // inline asm
+ { cvt.f32.f16 %f1150, %rs151;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1151, %rs152;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1152, %rs153;}
+
+ // inline asm
+ // inline asm
+ call (%rd294), _rt_buffer_get_64, (%rd289, %r101, %r379, %rd19, %rd20, %rd299, %rd299);
+ // inline asm
+ add.f32 %f1153, %f1150, 0f00000000;
+ add.f32 %f1154, %f1151, 0f00000000;
+ add.f32 %f1155, %f1152, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs150, %f1155;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs149, %f1154;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs148, %f1153;}
+
+ // inline asm
+ mov.u16 %rs155, 0;
+ st.v4.u16 [%rd294], {%rs148, %rs149, %rs150, %rs155};
+ bra.uni BB0_161;
+
+BB0_160:
+ mov.u64 %rd307, image_RNM3;
+ cvta.global.u64 %rd302, %rd307;
+ mov.u32 %r381, 8;
+ mov.u64 %rd306, 0;
+ // inline asm
+ call (%rd301), _rt_buffer_get_64, (%rd302, %r101, %r381, %rd19, %rd20, %rd306, %rd306);
+ // inline asm
+ mov.f32 %f1156, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs156, %f1156;}
+
+ // inline asm
+ mov.u16 %rs157, 0;
+ st.v4.u16 [%rd301], {%rs156, %rs156, %rs156, %rs157};
+ bra.uni BB0_161;
+
+BB0_81:
+ setp.geu.f32 %p79, %f1308, 0f00000000;
+ @%p79 bra BB0_84;
+
+ cvt.rzi.f32.f32 %f788, %f760;
+ setp.neu.f32 %p80, %f788, 0f3EE8BA2E;
+ selp.f32 %f1311, 0f7FFFFFFF, %f1311, %p80;
+
+BB0_84:
+ add.f32 %f790, %f280, 0f3EE8BA2E;
+ mov.b32 %r268, %f790;
+ setp.lt.s32 %p82, %r268, 2139095040;
+ @%p82 bra BB0_89;
+
+ setp.gtu.f32 %p83, %f280, 0f7F800000;
+ @%p83 bra BB0_88;
+ bra.uni BB0_86;
+
+BB0_88:
+ add.f32 %f1311, %f1308, 0f3EE8BA2E;
+ bra.uni BB0_89;
+
+BB0_86:
+ setp.neu.f32 %p84, %f280, 0f7F800000;
+ @%p84 bra BB0_89;
+
+ selp.f32 %f1311, 0fFF800000, 0f7F800000, %p3;
+
+BB0_89:
+ mul.f32 %f791, %f1311, 0f437F0000;
+ setp.eq.f32 %p85, %f1308, 0f3F800000;
+ selp.f32 %f792, 0f437F0000, %f791, %p85;
+ cvt.rzi.u32.f32 %r269, %f792;
+ cvt.u16.u32 %rs14, %r269;
+ mov.u16 %rs15, 255;
+ st.v2.u8 [%rd80], {%rs14, %rs15};
+ ld.global.u32 %r416, [imageEnabled];
+
+BB0_90:
+ ld.global.f32 %f793, [lightColor];
+ mul.f32 %f292, %f1305, %f793;
+ ld.global.f32 %f794, [lightColor+4];
+ mul.f32 %f293, %f1306, %f794;
+ ld.global.f32 %f795, [lightColor+8];
+ mul.f32 %f294, %f1307, %f795;
+ and.b32 %r270, %r416, 1;
+ setp.eq.b32 %p86, %r270, 1;
+ @!%p86 bra BB0_125;
+ bra.uni BB0_91;
+
+BB0_91:
+ mov.f32 %f798, 0f3E666666;
+ cvt.rzi.f32.f32 %f799, %f798;
+ fma.rn.f32 %f800, %f799, 0fC0000000, 0f3EE66666;
+ abs.f32 %f295, %f800;
+ abs.f32 %f296, %f292;
+ setp.lt.f32 %p87, %f296, 0f00800000;
+ mul.f32 %f801, %f296, 0f4B800000;
+ selp.f32 %f802, 0fC3170000, 0fC2FE0000, %p87;
+ selp.f32 %f803, %f801, %f296, %p87;
+ mov.b32 %r271, %f803;
+ and.b32 %r272, %r271, 8388607;
+ or.b32 %r273, %r272, 1065353216;
+ mov.b32 %f804, %r273;
+ shr.u32 %r274, %r271, 23;
+ cvt.rn.f32.u32 %f805, %r274;
+ add.f32 %f806, %f802, %f805;
+ setp.gt.f32 %p88, %f804, 0f3FB504F3;
+ mul.f32 %f807, %f804, 0f3F000000;
+ add.f32 %f808, %f806, 0f3F800000;
+ selp.f32 %f809, %f807, %f804, %p88;
+ selp.f32 %f810, %f808, %f806, %p88;
+ add.f32 %f811, %f809, 0fBF800000;
+ add.f32 %f797, %f809, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f796,%f797;
+ // inline asm
+ add.f32 %f812, %f811, %f811;
+ mul.f32 %f813, %f796, %f812;
+ mul.f32 %f814, %f813, %f813;
+ mov.f32 %f815, 0f3C4CAF63;
+ mov.f32 %f816, 0f3B18F0FE;
+ fma.rn.f32 %f817, %f816, %f814, %f815;
+ mov.f32 %f818, 0f3DAAAABD;
+ fma.rn.f32 %f819, %f817, %f814, %f818;
+ mul.rn.f32 %f820, %f819, %f814;
+ mul.rn.f32 %f821, %f820, %f813;
+ sub.f32 %f822, %f811, %f813;
+ neg.f32 %f823, %f813;
+ add.f32 %f824, %f822, %f822;
+ fma.rn.f32 %f825, %f823, %f811, %f824;
+ mul.rn.f32 %f826, %f796, %f825;
+ add.f32 %f827, %f821, %f813;
+ sub.f32 %f828, %f813, %f827;
+ add.f32 %f829, %f821, %f828;
+ add.f32 %f830, %f826, %f829;
+ add.f32 %f831, %f827, %f830;
+ sub.f32 %f832, %f827, %f831;
+ add.f32 %f833, %f830, %f832;
+ mov.f32 %f834, 0f3F317200;
+ mul.rn.f32 %f835, %f810, %f834;
+ mov.f32 %f836, 0f35BFBE8E;
+ mul.rn.f32 %f837, %f810, %f836;
+ add.f32 %f838, %f835, %f831;
+ sub.f32 %f839, %f835, %f838;
+ add.f32 %f840, %f831, %f839;
+ add.f32 %f841, %f833, %f840;
+ add.f32 %f842, %f837, %f841;
+ add.f32 %f843, %f838, %f842;
+ sub.f32 %f844, %f838, %f843;
+ add.f32 %f845, %f842, %f844;
+ mov.f32 %f846, 0f3EE66666;
+ mul.rn.f32 %f847, %f846, %f843;
+ neg.f32 %f848, %f847;
+ fma.rn.f32 %f849, %f846, %f843, %f848;
+ fma.rn.f32 %f850, %f846, %f845, %f849;
+ mov.f32 %f851, 0f00000000;
+ fma.rn.f32 %f852, %f851, %f843, %f850;
+ add.rn.f32 %f853, %f847, %f852;
+ neg.f32 %f854, %f853;
+ add.rn.f32 %f855, %f847, %f854;
+ add.rn.f32 %f856, %f855, %f852;
+ mov.b32 %r275, %f853;
+ setp.eq.s32 %p89, %r275, 1118925336;
+ add.s32 %r276, %r275, -1;
+ mov.b32 %f857, %r276;
+ add.f32 %f858, %f856, 0f37000000;
+ selp.f32 %f859, %f857, %f853, %p89;
+ selp.f32 %f297, %f858, %f856, %p89;
+ mul.f32 %f860, %f859, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f861, %f860;
+ mov.f32 %f862, 0fBF317200;
+ fma.rn.f32 %f863, %f861, %f862, %f859;
+ mov.f32 %f864, 0fB5BFBE8E;
+ fma.rn.f32 %f865, %f861, %f864, %f863;
+ mul.f32 %f866, %f865, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f867, %f866;
+ add.f32 %f868, %f861, 0f00000000;
+ ex2.approx.f32 %f869, %f868;
+ mul.f32 %f870, %f867, %f869;
+ setp.lt.f32 %p90, %f859, 0fC2D20000;
+ selp.f32 %f871, 0f00000000, %f870, %p90;
+ setp.gt.f32 %p91, %f859, 0f42D20000;
+ selp.f32 %f1312, 0f7F800000, %f871, %p91;
+ setp.eq.f32 %p92, %f1312, 0f7F800000;
+ @%p92 bra BB0_93;
+
+ fma.rn.f32 %f1312, %f1312, %f297, %f1312;
+
+BB0_93:
+ setp.lt.f32 %p93, %f292, 0f00000000;
+ setp.eq.f32 %p94, %f295, 0f3F800000;
+ and.pred %p4, %p93, %p94;
+ mov.b32 %r277, %f1312;
+ xor.b32 %r278, %r277, -2147483648;
+ mov.b32 %f872, %r278;
+ selp.f32 %f1314, %f872, %f1312, %p4;
+ setp.eq.f32 %p95, %f292, 0f00000000;
+ @%p95 bra BB0_96;
+ bra.uni BB0_94;
+
+BB0_96:
+ add.f32 %f875, %f292, %f292;
+ selp.f32 %f1314, %f875, 0f00000000, %p94;
+ bra.uni BB0_97;
+
+BB0_94:
+ setp.geu.f32 %p96, %f292, 0f00000000;
+ @%p96 bra BB0_97;
+
+ cvt.rzi.f32.f32 %f874, %f846;
+ setp.neu.f32 %p97, %f874, 0f3EE66666;
+ selp.f32 %f1314, 0f7FFFFFFF, %f1314, %p97;
+
+BB0_97:
+ add.f32 %f876, %f296, 0f3EE66666;
+ mov.b32 %r279, %f876;
+ setp.lt.s32 %p99, %r279, 2139095040;
+ @%p99 bra BB0_102;
+
+ setp.gtu.f32 %p100, %f296, 0f7F800000;
+ @%p100 bra BB0_101;
+ bra.uni BB0_99;
+
+BB0_101:
+ add.f32 %f1314, %f292, 0f3EE66666;
+ bra.uni BB0_102;
+
+BB0_99:
+ setp.neu.f32 %p101, %f296, 0f7F800000;
+ @%p101 bra BB0_102;
+
+ selp.f32 %f1314, 0fFF800000, 0f7F800000, %p4;
+
+BB0_102:
+ setp.eq.f32 %p102, %f292, 0f3F800000;
+ selp.f32 %f308, 0f3F800000, %f1314, %p102;
+ abs.f32 %f309, %f293;
+ setp.lt.f32 %p103, %f309, 0f00800000;
+ mul.f32 %f879, %f309, 0f4B800000;
+ selp.f32 %f880, 0fC3170000, 0fC2FE0000, %p103;
+ selp.f32 %f881, %f879, %f309, %p103;
+ mov.b32 %r280, %f881;
+ and.b32 %r281, %r280, 8388607;
+ or.b32 %r282, %r281, 1065353216;
+ mov.b32 %f882, %r282;
+ shr.u32 %r283, %r280, 23;
+ cvt.rn.f32.u32 %f883, %r283;
+ add.f32 %f884, %f880, %f883;
+ setp.gt.f32 %p104, %f882, 0f3FB504F3;
+ mul.f32 %f885, %f882, 0f3F000000;
+ add.f32 %f886, %f884, 0f3F800000;
+ selp.f32 %f887, %f885, %f882, %p104;
+ selp.f32 %f888, %f886, %f884, %p104;
+ add.f32 %f889, %f887, 0fBF800000;
+ add.f32 %f878, %f887, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f877,%f878;
+ // inline asm
+ add.f32 %f890, %f889, %f889;
+ mul.f32 %f891, %f877, %f890;
+ mul.f32 %f892, %f891, %f891;
+ fma.rn.f32 %f895, %f816, %f892, %f815;
+ fma.rn.f32 %f897, %f895, %f892, %f818;
+ mul.rn.f32 %f898, %f897, %f892;
+ mul.rn.f32 %f899, %f898, %f891;
+ sub.f32 %f900, %f889, %f891;
+ neg.f32 %f901, %f891;
+ add.f32 %f902, %f900, %f900;
+ fma.rn.f32 %f903, %f901, %f889, %f902;
+ mul.rn.f32 %f904, %f877, %f903;
+ add.f32 %f905, %f899, %f891;
+ sub.f32 %f906, %f891, %f905;
+ add.f32 %f907, %f899, %f906;
+ add.f32 %f908, %f904, %f907;
+ add.f32 %f909, %f905, %f908;
+ sub.f32 %f910, %f905, %f909;
+ add.f32 %f911, %f908, %f910;
+ mul.rn.f32 %f913, %f888, %f834;
+ mul.rn.f32 %f915, %f888, %f836;
+ add.f32 %f916, %f913, %f909;
+ sub.f32 %f917, %f913, %f916;
+ add.f32 %f918, %f909, %f917;
+ add.f32 %f919, %f911, %f918;
+ add.f32 %f920, %f915, %f919;
+ add.f32 %f921, %f916, %f920;
+ sub.f32 %f922, %f916, %f921;
+ add.f32 %f923, %f920, %f922;
+ mul.rn.f32 %f925, %f846, %f921;
+ neg.f32 %f926, %f925;
+ fma.rn.f32 %f927, %f846, %f921, %f926;
+ fma.rn.f32 %f928, %f846, %f923, %f927;
+ fma.rn.f32 %f930, %f851, %f921, %f928;
+ add.rn.f32 %f931, %f925, %f930;
+ neg.f32 %f932, %f931;
+ add.rn.f32 %f933, %f925, %f932;
+ add.rn.f32 %f934, %f933, %f930;
+ mov.b32 %r284, %f931;
+ setp.eq.s32 %p105, %r284, 1118925336;
+ add.s32 %r285, %r284, -1;
+ mov.b32 %f935, %r285;
+ add.f32 %f936, %f934, 0f37000000;
+ selp.f32 %f937, %f935, %f931, %p105;
+ selp.f32 %f310, %f936, %f934, %p105;
+ mul.f32 %f938, %f937, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f939, %f938;
+ fma.rn.f32 %f941, %f939, %f862, %f937;
+ fma.rn.f32 %f943, %f939, %f864, %f941;
+ mul.f32 %f944, %f943, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f945, %f944;
+ add.f32 %f946, %f939, 0f00000000;
+ ex2.approx.f32 %f947, %f946;
+ mul.f32 %f948, %f945, %f947;
+ setp.lt.f32 %p106, %f937, 0fC2D20000;
+ selp.f32 %f949, 0f00000000, %f948, %p106;
+ setp.gt.f32 %p107, %f937, 0f42D20000;
+ selp.f32 %f1315, 0f7F800000, %f949, %p107;
+ setp.eq.f32 %p108, %f1315, 0f7F800000;
+ @%p108 bra BB0_104;
+
+ fma.rn.f32 %f1315, %f1315, %f310, %f1315;
+
+BB0_104:
+ setp.lt.f32 %p109, %f293, 0f00000000;
+ and.pred %p5, %p109, %p94;
+ mov.b32 %r286, %f1315;
+ xor.b32 %r287, %r286, -2147483648;
+ mov.b32 %f950, %r287;
+ selp.f32 %f1317, %f950, %f1315, %p5;
+ setp.eq.f32 %p111, %f293, 0f00000000;
+ @%p111 bra BB0_107;
+ bra.uni BB0_105;
+
+BB0_107:
+ add.f32 %f953, %f293, %f293;
+ selp.f32 %f1317, %f953, 0f00000000, %p94;
+ bra.uni BB0_108;
+
+BB0_105:
+ setp.geu.f32 %p112, %f293, 0f00000000;
+ @%p112 bra BB0_108;
+
+ cvt.rzi.f32.f32 %f952, %f846;
+ setp.neu.f32 %p113, %f952, 0f3EE66666;
+ selp.f32 %f1317, 0f7FFFFFFF, %f1317, %p113;
+
+BB0_108:
+ add.f32 %f954, %f309, 0f3EE66666;
+ mov.b32 %r288, %f954;
+ setp.lt.s32 %p115, %r288, 2139095040;
+ @%p115 bra BB0_113;
+
+ setp.gtu.f32 %p116, %f309, 0f7F800000;
+ @%p116 bra BB0_112;
+ bra.uni BB0_110;
+
+BB0_112:
+ add.f32 %f1317, %f293, 0f3EE66666;
+ bra.uni BB0_113;
+
+BB0_110:
+ setp.neu.f32 %p117, %f309, 0f7F800000;
+ @%p117 bra BB0_113;
+
+ selp.f32 %f1317, 0fFF800000, 0f7F800000, %p5;
+
+BB0_113:
+ setp.eq.f32 %p118, %f293, 0f3F800000;
+ selp.f32 %f321, 0f3F800000, %f1317, %p118;
+ abs.f32 %f322, %f294;
+ setp.lt.f32 %p119, %f322, 0f00800000;
+ mul.f32 %f957, %f322, 0f4B800000;
+ selp.f32 %f958, 0fC3170000, 0fC2FE0000, %p119;
+ selp.f32 %f959, %f957, %f322, %p119;
+ mov.b32 %r289, %f959;
+ and.b32 %r290, %r289, 8388607;
+ or.b32 %r291, %r290, 1065353216;
+ mov.b32 %f960, %r291;
+ shr.u32 %r292, %r289, 23;
+ cvt.rn.f32.u32 %f961, %r292;
+ add.f32 %f962, %f958, %f961;
+ setp.gt.f32 %p120, %f960, 0f3FB504F3;
+ mul.f32 %f963, %f960, 0f3F000000;
+ add.f32 %f964, %f962, 0f3F800000;
+ selp.f32 %f965, %f963, %f960, %p120;
+ selp.f32 %f966, %f964, %f962, %p120;
+ add.f32 %f967, %f965, 0fBF800000;
+ add.f32 %f956, %f965, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f955,%f956;
+ // inline asm
+ add.f32 %f968, %f967, %f967;
+ mul.f32 %f969, %f955, %f968;
+ mul.f32 %f970, %f969, %f969;
+ fma.rn.f32 %f973, %f816, %f970, %f815;
+ fma.rn.f32 %f975, %f973, %f970, %f818;
+ mul.rn.f32 %f976, %f975, %f970;
+ mul.rn.f32 %f977, %f976, %f969;
+ sub.f32 %f978, %f967, %f969;
+ neg.f32 %f979, %f969;
+ add.f32 %f980, %f978, %f978;
+ fma.rn.f32 %f981, %f979, %f967, %f980;
+ mul.rn.f32 %f982, %f955, %f981;
+ add.f32 %f983, %f977, %f969;
+ sub.f32 %f984, %f969, %f983;
+ add.f32 %f985, %f977, %f984;
+ add.f32 %f986, %f982, %f985;
+ add.f32 %f987, %f983, %f986;
+ sub.f32 %f988, %f983, %f987;
+ add.f32 %f989, %f986, %f988;
+ mul.rn.f32 %f991, %f966, %f834;
+ mul.rn.f32 %f993, %f966, %f836;
+ add.f32 %f994, %f991, %f987;
+ sub.f32 %f995, %f991, %f994;
+ add.f32 %f996, %f987, %f995;
+ add.f32 %f997, %f989, %f996;
+ add.f32 %f998, %f993, %f997;
+ add.f32 %f999, %f994, %f998;
+ sub.f32 %f1000, %f994, %f999;
+ add.f32 %f1001, %f998, %f1000;
+ mul.rn.f32 %f1003, %f846, %f999;
+ neg.f32 %f1004, %f1003;
+ fma.rn.f32 %f1005, %f846, %f999, %f1004;
+ fma.rn.f32 %f1006, %f846, %f1001, %f1005;
+ fma.rn.f32 %f1008, %f851, %f999, %f1006;
+ add.rn.f32 %f1009, %f1003, %f1008;
+ neg.f32 %f1010, %f1009;
+ add.rn.f32 %f1011, %f1003, %f1010;
+ add.rn.f32 %f1012, %f1011, %f1008;
+ mov.b32 %r293, %f1009;
+ setp.eq.s32 %p121, %r293, 1118925336;
+ add.s32 %r294, %r293, -1;
+ mov.b32 %f1013, %r294;
+ add.f32 %f1014, %f1012, 0f37000000;
+ selp.f32 %f1015, %f1013, %f1009, %p121;
+ selp.f32 %f323, %f1014, %f1012, %p121;
+ mul.f32 %f1016, %f1015, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f1017, %f1016;
+ fma.rn.f32 %f1019, %f1017, %f862, %f1015;
+ fma.rn.f32 %f1021, %f1017, %f864, %f1019;
+ mul.f32 %f1022, %f1021, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f1023, %f1022;
+ add.f32 %f1024, %f1017, 0f00000000;
+ ex2.approx.f32 %f1025, %f1024;
+ mul.f32 %f1026, %f1023, %f1025;
+ setp.lt.f32 %p122, %f1015, 0fC2D20000;
+ selp.f32 %f1027, 0f00000000, %f1026, %p122;
+ setp.gt.f32 %p123, %f1015, 0f42D20000;
+ selp.f32 %f1318, 0f7F800000, %f1027, %p123;
+ setp.eq.f32 %p124, %f1318, 0f7F800000;
+ @%p124 bra BB0_115;
+
+ fma.rn.f32 %f1318, %f1318, %f323, %f1318;
+
+BB0_115:
+ setp.lt.f32 %p125, %f294, 0f00000000;
+ and.pred %p6, %p125, %p94;
+ mov.b32 %r295, %f1318;
+ xor.b32 %r296, %r295, -2147483648;
+ mov.b32 %f1028, %r296;
+ selp.f32 %f1320, %f1028, %f1318, %p6;
+ setp.eq.f32 %p127, %f294, 0f00000000;
+ @%p127 bra BB0_118;
+ bra.uni BB0_116;
+
+BB0_118:
+ add.f32 %f1031, %f294, %f294;
+ selp.f32 %f1320, %f1031, 0f00000000, %p94;
+ bra.uni BB0_119;
+
+BB0_116:
+ setp.geu.f32 %p128, %f294, 0f00000000;
+ @%p128 bra BB0_119;
+
+ cvt.rzi.f32.f32 %f1030, %f846;
+ setp.neu.f32 %p129, %f1030, 0f3EE66666;
+ selp.f32 %f1320, 0f7FFFFFFF, %f1320, %p129;
+
+BB0_119:
+ add.f32 %f1032, %f322, 0f3EE66666;
+ mov.b32 %r297, %f1032;
+ setp.lt.s32 %p131, %r297, 2139095040;
+ @%p131 bra BB0_124;
+
+ setp.gtu.f32 %p132, %f322, 0f7F800000;
+ @%p132 bra BB0_123;
+ bra.uni BB0_121;
+
+BB0_123:
+ add.f32 %f1320, %f294, 0f3EE66666;
+ bra.uni BB0_124;
+
+BB0_121:
+ setp.neu.f32 %p133, %f322, 0f7F800000;
+ @%p133 bra BB0_124;
+
+ selp.f32 %f1320, 0fFF800000, 0f7F800000, %p6;
+
+BB0_124:
+ setp.eq.f32 %p134, %f294, 0f3F800000;
+ selp.f32 %f1033, 0f3F800000, %f1320, %p134;
+ cvt.u64.u32 %rd90, %r4;
+ cvt.u64.u32 %rd89, %r3;
+ mov.u64 %rd93, image;
+ cvta.global.u64 %rd88, %rd93;
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd88, %r101, %r102, %rd89, %rd90, %rd26, %rd26);
+ // inline asm
+ cvt.sat.f32.f32 %f1034, %f1033;
+ mul.f32 %f1035, %f1034, 0f437FFD71;
+ cvt.rzi.u32.f32 %r300, %f1035;
+ cvt.sat.f32.f32 %f1036, %f321;
+ mul.f32 %f1037, %f1036, 0f437FFD71;
+ cvt.rzi.u32.f32 %r301, %f1037;
+ cvt.sat.f32.f32 %f1038, %f308;
+ mul.f32 %f1039, %f1038, 0f437FFD71;
+ cvt.rzi.u32.f32 %r302, %f1039;
+ cvt.u16.u32 %rs16, %r300;
+ cvt.u16.u32 %rs17, %r302;
+ cvt.u16.u32 %rs18, %r301;
+ mov.u16 %rs19, 255;
+ st.v4.u8 [%rd87], {%rs16, %rs18, %rs17, %rs19};
+ ld.global.u32 %r416, [imageEnabled];
+
+BB0_125:
+ cvt.u64.u32 %rd17, %r3;
+ cvt.u64.u32 %rd18, %r4;
+ and.b32 %r303, %r416, 4;
+ setp.eq.s32 %p135, %r303, 0;
+ @%p135 bra BB0_129;
+
+ ld.global.u32 %r304, [additive];
+ setp.eq.s32 %p136, %r304, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f564;}
+
+ // inline asm
+ @%p136 bra BB0_128;
+
+ mov.u64 %rd106, image_HDR;
+ cvta.global.u64 %rd95, %rd106;
+ mov.u32 %r308, 8;
+ // inline asm
+ call (%rd94), _rt_buffer_get_64, (%rd95, %r101, %r308, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs27, %rs28, %rs29, %rs30}, [%rd94];
+ // inline asm
+ { cvt.f32.f16 %f1041, %rs27;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1042, %rs28;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1043, %rs29;}
+
+ // inline asm
+ // inline asm
+ call (%rd100), _rt_buffer_get_64, (%rd95, %r101, %r308, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f1044, %f292, %f1041;
+ add.f32 %f1045, %f293, %f1042;
+ add.f32 %f1046, %f294, %f1043;
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f1046;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f1045;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f1044;}
+
+ // inline asm
+ st.v4.u16 [%rd100], {%rs24, %rs25, %rs26, %rs20};
+ bra.uni BB0_129;
+
+BB0_128:
+ mov.u64 %rd113, image_HDR;
+ cvta.global.u64 %rd108, %rd113;
+ mov.u32 %r310, 8;
+ // inline asm
+ call (%rd107), _rt_buffer_get_64, (%rd108, %r101, %r310, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs33, %f294;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f293;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f292;}
+
+ // inline asm
+ st.v4.u16 [%rd107], {%rs31, %rs32, %rs33, %rs20};
+
+BB0_129:
+ selp.f32 %f1051, 0f3F000000, 0f3E800000, %p149;
+ mul.f32 %f1052, %f1051, %f1302;
+ mul.f32 %f1053, %f1051, %f1303;
+ mul.f32 %f1054, %f1051, %f1304;
+ mul.f32 %f1055, %f1051, %f1299;
+ mul.f32 %f1056, %f1051, %f1300;
+ mul.f32 %f1057, %f1051, %f1301;
+ mul.f32 %f1058, %f1051, %f1296;
+ mul.f32 %f1059, %f1051, %f1297;
+ mul.f32 %f1060, %f1051, %f1298;
+ mul.f32 %f1061, %f1051, %f1293;
+ mul.f32 %f1062, %f1051, %f1294;
+ mul.f32 %f1063, %f1051, %f1295;
+ ld.global.f32 %f1064, [lightColor];
+ mul.f32 %f334, %f1052, %f1064;
+ ld.global.f32 %f1065, [lightColor+4];
+ mul.f32 %f335, %f1053, %f1065;
+ ld.global.f32 %f1066, [lightColor+8];
+ mul.f32 %f336, %f1054, %f1066;
+ mul.f32 %f337, %f1055, %f1064;
+ mul.f32 %f338, %f1056, %f1065;
+ mul.f32 %f339, %f1057, %f1066;
+ mul.f32 %f340, %f1058, %f1064;
+ mul.f32 %f341, %f1059, %f1065;
+ mul.f32 %f342, %f1060, %f1066;
+ mul.f32 %f343, %f1061, %f1064;
+ mul.f32 %f344, %f1062, %f1065;
+ mul.f32 %f345, %f1063, %f1066;
+ ld.global.u32 %r311, [additive];
+ setp.eq.s32 %p137, %r311, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs34, %f564;}
+
+ // inline asm
+ @%p137 bra BB0_131;
+
+ mov.u64 %rd126, image_RNM0;
+ cvta.global.u64 %rd115, %rd126;
+ mov.u32 %r315, 8;
+ // inline asm
+ call (%rd114), _rt_buffer_get_64, (%rd115, %r101, %r315, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs41, %rs42, %rs43, %rs44}, [%rd114];
+ // inline asm
+ { cvt.f32.f16 %f1067, %rs41;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1068, %rs42;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1069, %rs43;}
+
+ // inline asm
+ // inline asm
+ call (%rd120), _rt_buffer_get_64, (%rd115, %r101, %r315, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f1070, %f334, %f1067;
+ add.f32 %f1071, %f335, %f1068;
+ add.f32 %f1072, %f336, %f1069;
+ // inline asm
+ { cvt.rn.f16.f32 %rs40, %f1072;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f1071;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f1070;}
+
+ // inline asm
+ st.v4.u16 [%rd120], {%rs38, %rs39, %rs40, %rs34};
+ bra.uni BB0_132;
+
+BB0_131:
+ mov.u64 %rd133, image_RNM0;
+ cvta.global.u64 %rd128, %rd133;
+ mov.u32 %r317, 8;
+ // inline asm
+ call (%rd127), _rt_buffer_get_64, (%rd128, %r101, %r317, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs47, %f336;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f335;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f334;}
+
+ // inline asm
+ st.v4.u16 [%rd127], {%rs45, %rs46, %rs47, %rs34};
+
+BB0_132:
+ mov.f32 %f1077, 0f34000000;
+ max.f32 %f1078, %f334, %f1077;
+ div.rn.f32 %f1079, %f337, %f1078;
+ max.f32 %f1080, %f335, %f1077;
+ div.rn.f32 %f1081, %f338, %f1080;
+ max.f32 %f1082, %f336, %f1077;
+ div.rn.f32 %f1083, %f339, %f1082;
+ fma.rn.f32 %f346, %f1079, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f347, %f1081, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f348, %f1083, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f1084, %f340, %f1078;
+ div.rn.f32 %f1085, %f341, %f1080;
+ div.rn.f32 %f1086, %f342, %f1082;
+ fma.rn.f32 %f349, %f1084, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f350, %f1085, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f351, %f1086, 0f3F000000, 0f3F000000;
+ div.rn.f32 %f1087, %f343, %f1078;
+ div.rn.f32 %f1088, %f344, %f1080;
+ div.rn.f32 %f1089, %f345, %f1082;
+ fma.rn.f32 %f352, %f1087, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f353, %f1088, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f354, %f1089, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r318, [additive];
+ setp.eq.s32 %p138, %r318, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs48, %f564;}
+
+ // inline asm
+ @%p138 bra BB0_134;
+
+ mov.u64 %rd146, image_RNM1;
+ cvta.global.u64 %rd135, %rd146;
+ mov.u32 %r322, 8;
+ // inline asm
+ call (%rd134), _rt_buffer_get_64, (%rd135, %r101, %r322, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs55, %rs56, %rs57, %rs58}, [%rd134];
+ // inline asm
+ { cvt.f32.f16 %f1090, %rs55;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1091, %rs56;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1092, %rs57;}
+
+ // inline asm
+ // inline asm
+ call (%rd140), _rt_buffer_get_64, (%rd135, %r101, %r322, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f1093, %f346, %f1090;
+ add.f32 %f1094, %f347, %f1091;
+ add.f32 %f1095, %f348, %f1092;
+ // inline asm
+ { cvt.rn.f16.f32 %rs54, %f1095;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f1094;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f1093;}
+
+ // inline asm
+ st.v4.u16 [%rd140], {%rs52, %rs53, %rs54, %rs48};
+ bra.uni BB0_135;
+
+BB0_134:
+ mov.u64 %rd153, image_RNM1;
+ cvta.global.u64 %rd148, %rd153;
+ mov.u32 %r324, 8;
+ // inline asm
+ call (%rd147), _rt_buffer_get_64, (%rd148, %r101, %r324, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs61, %f348;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f347;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f346;}
+
+ // inline asm
+ st.v4.u16 [%rd147], {%rs59, %rs60, %rs61, %rs48};
+
+BB0_135:
+ ld.global.u32 %r325, [additive];
+ setp.eq.s32 %p139, %r325, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs62, %f564;}
+
+ // inline asm
+ @%p139 bra BB0_137;
+
+ mov.u64 %rd166, image_RNM2;
+ cvta.global.u64 %rd155, %rd166;
+ mov.u32 %r329, 8;
+ // inline asm
+ call (%rd154), _rt_buffer_get_64, (%rd155, %r101, %r329, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs69, %rs70, %rs71, %rs72}, [%rd154];
+ // inline asm
+ { cvt.f32.f16 %f1100, %rs69;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1101, %rs70;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1102, %rs71;}
+
+ // inline asm
+ // inline asm
+ call (%rd160), _rt_buffer_get_64, (%rd155, %r101, %r329, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f1103, %f349, %f1100;
+ add.f32 %f1104, %f350, %f1101;
+ add.f32 %f1105, %f351, %f1102;
+ // inline asm
+ { cvt.rn.f16.f32 %rs68, %f1105;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs67, %f1104;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f1103;}
+
+ // inline asm
+ st.v4.u16 [%rd160], {%rs66, %rs67, %rs68, %rs62};
+ bra.uni BB0_138;
+
+BB0_137:
+ mov.u64 %rd173, image_RNM2;
+ cvta.global.u64 %rd168, %rd173;
+ mov.u32 %r331, 8;
+ // inline asm
+ call (%rd167), _rt_buffer_get_64, (%rd168, %r101, %r331, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs75, %f351;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f350;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f349;}
+
+ // inline asm
+ st.v4.u16 [%rd167], {%rs73, %rs74, %rs75, %rs62};
+
+BB0_138:
+ ld.global.u32 %r332, [additive];
+ setp.eq.s32 %p140, %r332, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f564;}
+
+ // inline asm
+ @%p140 bra BB0_140;
+
+ mov.u64 %rd186, image_RNM3;
+ cvta.global.u64 %rd175, %rd186;
+ mov.u32 %r336, 8;
+ // inline asm
+ call (%rd174), _rt_buffer_get_64, (%rd175, %r101, %r336, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ ld.v4.u16 {%rs83, %rs84, %rs85, %rs86}, [%rd174];
+ // inline asm
+ { cvt.f32.f16 %f1110, %rs83;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1111, %rs84;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f1112, %rs85;}
+
+ // inline asm
+ // inline asm
+ call (%rd180), _rt_buffer_get_64, (%rd175, %r101, %r336, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ add.f32 %f1113, %f352, %f1110;
+ add.f32 %f1114, %f353, %f1111;
+ add.f32 %f1115, %f354, %f1112;
+ // inline asm
+ { cvt.rn.f16.f32 %rs82, %f1115;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs81, %f1114;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs80, %f1113;}
+
+ // inline asm
+ st.v4.u16 [%rd180], {%rs80, %rs81, %rs82, %rs76};
+ bra.uni BB0_161;
+
+BB0_140:
+ mov.u64 %rd193, image_RNM3;
+ cvta.global.u64 %rd188, %rd193;
+ mov.u32 %r338, 8;
+ // inline asm
+ call (%rd187), _rt_buffer_get_64, (%rd188, %r101, %r338, %rd17, %rd18, %rd26, %rd26);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs89, %f354;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs88, %f353;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f352;}
+
+ // inline asm
+ st.v4.u16 [%rd187], {%rs87, %rs88, %rs89, %rs76};
+
+BB0_161:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightSH.ptx.meta
new file mode 100644
index 00000000..879d935b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexAreaLightSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4cf8d5d79f6aaf7498b3b5a187abb322
+timeCreated: 1537818498
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGI.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGI.ptx
new file mode 100644
index 00000000..7da66c37
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGI.ptx
@@ -0,0 +1,1347 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 8 .b8 texCoords[8];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 1 .b8 lightmapDirect[1];
+.global .texref albedoTex;
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<94>;
+ .reg .b16 %rs<33>;
+ .reg .f32 %f<595>;
+ .reg .b32 %r<310>;
+ .reg .b64 %rd<106>;
+
+
+ mov.u64 %rd105, __local_depot0;
+ cvta.local.u64 %SP, %rd105;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r96, %r97}, [pixelID];
+ cvt.u64.u32 %rd17, %r96;
+ cvt.u64.u32 %rd18, %r97;
+ mov.u64 %rd21, uvnormal;
+ cvta.global.u64 %rd16, %rd21;
+ mov.u32 %r94, 2;
+ mov.u32 %r95, 4;
+ mov.u64 %rd20, 0;
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd16, %r94, %r95, %rd17, %rd18, %rd20, %rd20);
+ // inline asm
+ ld.u32 %r2, [%rd15];
+ shr.u32 %r100, %r2, 16;
+ cvt.u16.u32 %rs1, %r100;
+ and.b16 %rs2, %rs1, 255;
+ cvt.u16.u32 %rs3, %r2;
+ or.b16 %rs4, %rs3, %rs2;
+ setp.eq.s16 %p4, %rs4, 0;
+ mov.f32 %f562, 0f00000000;
+ mov.f32 %f563, %f562;
+ mov.f32 %f564, %f562;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs5, [%rd15+1];
+ and.b16 %rs7, %rs3, 255;
+ cvt.rn.f32.u16 %f122, %rs7;
+ div.rn.f32 %f123, %f122, 0f437F0000;
+ fma.rn.f32 %f124, %f123, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f125, %rs5;
+ div.rn.f32 %f126, %f125, 0f437F0000;
+ fma.rn.f32 %f127, %f126, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f128, %rs2;
+ div.rn.f32 %f129, %f128, 0f437F0000;
+ fma.rn.f32 %f130, %f129, 0f40000000, 0fBF800000;
+ mul.f32 %f131, %f127, %f127;
+ fma.rn.f32 %f132, %f124, %f124, %f131;
+ fma.rn.f32 %f133, %f130, %f130, %f132;
+ sqrt.rn.f32 %f134, %f133;
+ rcp.rn.f32 %f135, %f134;
+ mul.f32 %f562, %f124, %f135;
+ mul.f32 %f563, %f127, %f135;
+ mul.f32 %f564, %f130, %f135;
+
+BB0_2:
+ ld.global.v2.u32 {%r101, %r102}, [pixelID];
+ ld.global.v2.u32 {%r104, %r105}, [tileInfo];
+ add.s32 %r3, %r101, %r104;
+ add.s32 %r4, %r102, %r105;
+ setp.eq.f32 %p5, %f563, 0f00000000;
+ setp.eq.f32 %p6, %f562, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f564, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_93;
+ bra.uni BB0_3;
+
+BB0_93:
+ ld.global.u32 %r309, [imageEnabled];
+ and.b32 %r267, %r309, 1;
+ setp.eq.b32 %p91, %r267, 1;
+ @!%p91 bra BB0_95;
+ bra.uni BB0_94;
+
+BB0_94:
+ cvt.u64.u32 %rd79, %r3;
+ cvt.u64.u32 %rd80, %r4;
+ mov.u64 %rd83, image;
+ cvta.global.u64 %rd78, %rd83;
+ // inline asm
+ call (%rd77), _rt_buffer_get_64, (%rd78, %r94, %r95, %rd79, %rd80, %rd20, %rd20);
+ // inline asm
+ mov.u16 %rs28, 0;
+ st.v4.u8 [%rd77], {%rs28, %rs28, %rs28, %rs28};
+ ld.global.u32 %r309, [imageEnabled];
+
+BB0_95:
+ and.b32 %r270, %r309, 4;
+ setp.eq.s32 %p92, %r270, 0;
+ @%p92 bra BB0_97;
+
+ cvt.u64.u32 %rd86, %r3;
+ cvt.u64.u32 %rd87, %r4;
+ mov.u64 %rd90, image_HDR;
+ cvta.global.u64 %rd85, %rd90;
+ mov.u32 %r272, 8;
+ // inline asm
+ call (%rd84), _rt_buffer_get_64, (%rd85, %r94, %r272, %rd86, %rd87, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f530, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f530;}
+
+ // inline asm
+ mov.u16 %rs30, 0;
+ st.v4.u16 [%rd84], {%rs29, %rs29, %rs29, %rs30};
+ ld.global.u32 %r309, [imageEnabled];
+
+BB0_97:
+ and.b32 %r273, %r309, 16;
+ setp.eq.s32 %p93, %r273, 0;
+ @%p93 bra BB0_99;
+
+ cvt.u64.u32 %rd93, %r3;
+ cvt.u64.u32 %rd94, %r4;
+ mov.u64 %rd97, image_HDR2;
+ cvta.global.u64 %rd92, %rd97;
+ mov.u32 %r275, 8;
+ // inline asm
+ call (%rd91), _rt_buffer_get_64, (%rd92, %r94, %r275, %rd93, %rd94, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f531, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f531;}
+
+ // inline asm
+ mov.u16 %rs32, 0;
+ st.v4.u16 [%rd91], {%rs31, %rs31, %rs31, %rs32};
+ bra.uni BB0_99;
+
+BB0_3:
+ ld.global.v2.u32 {%r115, %r116}, [pixelID];
+ cvt.u64.u32 %rd24, %r115;
+ cvt.u64.u32 %rd25, %r116;
+ mov.u64 %rd40, lightmapDirect;
+ cvta.global.u64 %rd23, %rd40;
+ mov.u32 %r110, 8;
+ // inline asm
+ call (%rd22), _rt_buffer_get_64, (%rd23, %r94, %r110, %rd24, %rd25, %rd20, %rd20);
+ // inline asm
+ ld.v4.u16 {%rs12, %rs13, %rs14, %rs15}, [%rd22];
+ // inline asm
+ { cvt.f32.f16 %f136, %rs12;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f137, %rs13;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f138, %rs14;}
+
+ // inline asm
+ ld.global.v2.u32 {%r119, %r120}, [pixelID];
+ cvt.u64.u32 %rd30, %r119;
+ cvt.u64.u32 %rd31, %r120;
+ mov.u64 %rd41, uvpos;
+ cvta.global.u64 %rd29, %rd41;
+ mov.u32 %r112, 12;
+ // inline asm
+ call (%rd28), _rt_buffer_get_64, (%rd29, %r94, %r112, %rd30, %rd31, %rd20, %rd20);
+ // inline asm
+ ld.f32 %f142, [%rd28+8];
+ ld.f32 %f143, [%rd28+4];
+ ld.f32 %f144, [%rd28];
+ mul.f32 %f145, %f144, 0f3456BF95;
+ mul.f32 %f146, %f143, 0f3456BF95;
+ mul.f32 %f147, %f142, 0f3456BF95;
+ abs.f32 %f148, %f562;
+ div.rn.f32 %f149, %f145, %f148;
+ abs.f32 %f150, %f563;
+ div.rn.f32 %f151, %f146, %f150;
+ abs.f32 %f152, %f564;
+ div.rn.f32 %f153, %f147, %f152;
+ abs.f32 %f154, %f149;
+ abs.f32 %f155, %f151;
+ abs.f32 %f156, %f153;
+ mov.f32 %f157, 0f38D1B717;
+ max.f32 %f158, %f154, %f157;
+ max.f32 %f159, %f155, %f157;
+ max.f32 %f160, %f156, %f157;
+ fma.rn.f32 %f10, %f562, %f158, %f144;
+ fma.rn.f32 %f11, %f563, %f159, %f143;
+ fma.rn.f32 %f12, %f564, %f160, %f142;
+ setp.gt.f32 %p10, %f148, %f152;
+ neg.f32 %f161, %f563;
+ selp.f32 %f162, %f161, 0f00000000, %p10;
+ neg.f32 %f163, %f564;
+ selp.f32 %f164, %f562, %f163, %p10;
+ selp.f32 %f165, 0f00000000, %f563, %p10;
+ mul.f32 %f166, %f164, %f164;
+ fma.rn.f32 %f167, %f162, %f162, %f166;
+ fma.rn.f32 %f168, %f165, %f165, %f167;
+ sqrt.rn.f32 %f169, %f168;
+ rcp.rn.f32 %f170, %f169;
+ mul.f32 %f13, %f162, %f170;
+ mul.f32 %f14, %f164, %f170;
+ mul.f32 %f15, %f165, %f170;
+ ld.global.v2.u32 {%r123, %r124}, [pixelID];
+ cvt.u64.u32 %rd36, %r123;
+ cvt.u64.u32 %rd37, %r124;
+ mov.u64 %rd42, rnd_seeds;
+ cvta.global.u64 %rd35, %rd42;
+ // inline asm
+ call (%rd34), _rt_buffer_get_64, (%rd35, %r94, %r95, %rd36, %rd37, %rd20, %rd20);
+ // inline asm
+ mov.f32 %f568, 0f00000000;
+ setp.lt.s32 %p11, %r1, 1;
+ mov.f32 %f569, %f568;
+ mov.f32 %f570, %f568;
+ @%p11 bra BB0_54;
+
+ cvt.rn.f32.s32 %f174, %r1;
+ rcp.rn.f32 %f16, %f174;
+ ld.u32 %r285, [%rd34];
+ mul.f32 %f17, %f10, 0f3456BF95;
+ mul.f32 %f18, %f11, 0f3456BF95;
+ mul.f32 %f19, %f12, 0f3456BF95;
+ mul.f32 %f175, %f562, %f14;
+ mul.f32 %f176, %f563, %f13;
+ sub.f32 %f20, %f176, %f175;
+ mul.f32 %f177, %f564, %f13;
+ mul.f32 %f178, %f562, %f15;
+ sub.f32 %f21, %f178, %f177;
+ mul.f32 %f179, %f563, %f15;
+ mul.f32 %f180, %f564, %f14;
+ sub.f32 %f22, %f180, %f179;
+ mov.f32 %f568, 0f00000000;
+ mov.u32 %r127, 0;
+ abs.f32 %f181, %f18;
+ abs.f32 %f182, %f17;
+ max.f32 %f183, %f182, %f181;
+ abs.f32 %f184, %f19;
+ max.f32 %f185, %f183, %f184;
+ mov.u32 %r282, %r127;
+ mov.f32 %f569, %f568;
+ mov.f32 %f570, %f568;
+
+BB0_5:
+ cvt.rn.f32.s32 %f26, %r282;
+ max.f32 %f27, %f185, %f157;
+ mov.u32 %r284, %r127;
+
+BB0_6:
+ mad.lo.s32 %r129, %r285, 1664525, 1013904223;
+ and.b32 %r130, %r129, 16777215;
+ cvt.rn.f32.u32 %f187, %r130;
+ fma.rn.f32 %f188, %f187, 0f33800000, %f26;
+ mul.f32 %f189, %f16, %f188;
+ mad.lo.s32 %r285, %r129, 1664525, 1013904223;
+ and.b32 %r131, %r285, 16777215;
+ cvt.rn.f32.u32 %f190, %r131;
+ cvt.rn.f32.s32 %f191, %r284;
+ fma.rn.f32 %f192, %f190, 0f33800000, %f191;
+ mul.f32 %f193, %f16, %f192;
+ sqrt.rn.f32 %f31, %f189;
+ mul.f32 %f577, %f193, 0f40C90FDB;
+ abs.f32 %f33, %f577;
+ setp.neu.f32 %p12, %f33, 0f7F800000;
+ mov.f32 %f571, %f577;
+ @%p12 bra BB0_8;
+
+ mov.f32 %f194, 0f00000000;
+ mul.rn.f32 %f571, %f577, %f194;
+
+BB0_8:
+ mul.f32 %f195, %f571, 0f3F22F983;
+ cvt.rni.s32.f32 %r295, %f195;
+ cvt.rn.f32.s32 %f196, %r295;
+ neg.f32 %f197, %f196;
+ mov.f32 %f198, 0f3FC90FDA;
+ fma.rn.f32 %f199, %f197, %f198, %f571;
+ mov.f32 %f200, 0f33A22168;
+ fma.rn.f32 %f201, %f197, %f200, %f199;
+ mov.f32 %f202, 0f27C234C5;
+ fma.rn.f32 %f572, %f197, %f202, %f201;
+ abs.f32 %f203, %f571;
+ setp.leu.f32 %p13, %f203, 0f47CE4780;
+ @%p13 bra BB0_19;
+
+ mov.b32 %r12, %f571;
+ shr.u32 %r13, %r12, 23;
+ shl.b32 %r134, %r12, 8;
+ or.b32 %r14, %r134, -2147483648;
+ add.u64 %rd44, %SP, 12;
+ cvta.to.local.u64 %rd102, %rd44;
+ mov.u32 %r287, 0;
+ mov.u64 %rd101, __cudart_i2opi_f;
+ mov.u32 %r286, -6;
+
+BB0_10:
+ .pragma "nounroll";
+ ld.const.u32 %r137, [%rd101];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r135, %r137, %r14, %r287;
+ madc.hi.u32 %r287, %r137, %r14, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd102], %r135;
+ add.s64 %rd102, %rd102, 4;
+ add.s64 %rd101, %rd101, 4;
+ add.s32 %r286, %r286, 1;
+ setp.ne.s32 %p14, %r286, 0;
+ @%p14 bra BB0_10;
+
+ and.b32 %r140, %r13, 255;
+ add.s32 %r141, %r140, -128;
+ shr.u32 %r142, %r141, 5;
+ and.b32 %r19, %r12, -2147483648;
+ cvta.to.local.u64 %rd46, %rd44;
+ st.local.u32 [%rd46+24], %r287;
+ mov.u32 %r143, 6;
+ sub.s32 %r144, %r143, %r142;
+ mul.wide.s32 %rd47, %r144, 4;
+ add.s64 %rd8, %rd46, %rd47;
+ ld.local.u32 %r288, [%rd8];
+ ld.local.u32 %r289, [%rd8+-4];
+ and.b32 %r22, %r13, 31;
+ setp.eq.s32 %p15, %r22, 0;
+ @%p15 bra BB0_13;
+
+ mov.u32 %r145, 32;
+ sub.s32 %r146, %r145, %r22;
+ shr.u32 %r147, %r289, %r146;
+ shl.b32 %r148, %r288, %r22;
+ add.s32 %r288, %r147, %r148;
+ ld.local.u32 %r149, [%rd8+-8];
+ shr.u32 %r150, %r149, %r146;
+ shl.b32 %r151, %r289, %r22;
+ add.s32 %r289, %r150, %r151;
+
+BB0_13:
+ shr.u32 %r152, %r289, 30;
+ shl.b32 %r153, %r288, 2;
+ add.s32 %r290, %r152, %r153;
+ shl.b32 %r28, %r289, 2;
+ shr.u32 %r154, %r290, 31;
+ shr.u32 %r155, %r288, 30;
+ add.s32 %r29, %r154, %r155;
+ setp.eq.s32 %p16, %r154, 0;
+ @%p16 bra BB0_14;
+ bra.uni BB0_15;
+
+BB0_14:
+ mov.u32 %r291, %r19;
+ mov.u32 %r292, %r28;
+ bra.uni BB0_16;
+
+BB0_15:
+ not.b32 %r156, %r290;
+ neg.s32 %r292, %r28;
+ setp.eq.s32 %p17, %r28, 0;
+ selp.u32 %r157, 1, 0, %p17;
+ add.s32 %r290, %r157, %r156;
+ xor.b32 %r291, %r19, -2147483648;
+
+BB0_16:
+ clz.b32 %r294, %r290;
+ setp.eq.s32 %p18, %r294, 0;
+ shl.b32 %r158, %r290, %r294;
+ mov.u32 %r159, 32;
+ sub.s32 %r160, %r159, %r294;
+ shr.u32 %r161, %r292, %r160;
+ add.s32 %r162, %r161, %r158;
+ selp.b32 %r37, %r290, %r162, %p18;
+ mov.u32 %r163, -921707870;
+ mul.hi.u32 %r293, %r37, %r163;
+ setp.eq.s32 %p19, %r19, 0;
+ neg.s32 %r164, %r29;
+ selp.b32 %r295, %r29, %r164, %p19;
+ setp.lt.s32 %p20, %r293, 1;
+ @%p20 bra BB0_18;
+
+ mul.lo.s32 %r165, %r37, -921707870;
+ shr.u32 %r166, %r165, 31;
+ shl.b32 %r167, %r293, 1;
+ add.s32 %r293, %r166, %r167;
+ add.s32 %r294, %r294, 1;
+
+BB0_18:
+ mov.u32 %r168, 126;
+ sub.s32 %r169, %r168, %r294;
+ shl.b32 %r170, %r169, 23;
+ add.s32 %r171, %r293, 1;
+ shr.u32 %r172, %r171, 7;
+ add.s32 %r173, %r172, 1;
+ shr.u32 %r174, %r173, 1;
+ add.s32 %r175, %r174, %r170;
+ or.b32 %r176, %r175, %r291;
+ mov.b32 %f572, %r176;
+
+BB0_19:
+ mul.rn.f32 %f39, %f572, %f572;
+ add.s32 %r45, %r295, 1;
+ and.b32 %r46, %r45, 1;
+ setp.eq.s32 %p21, %r46, 0;
+ @%p21 bra BB0_21;
+ bra.uni BB0_20;
+
+BB0_21:
+ mov.f32 %f206, 0f3C08839E;
+ mov.f32 %f207, 0fB94CA1F9;
+ fma.rn.f32 %f573, %f207, %f39, %f206;
+ bra.uni BB0_22;
+
+BB0_20:
+ mov.f32 %f204, 0fBAB6061A;
+ mov.f32 %f205, 0f37CCF5CE;
+ fma.rn.f32 %f573, %f205, %f39, %f204;
+
+BB0_22:
+ @%p21 bra BB0_24;
+ bra.uni BB0_23;
+
+BB0_24:
+ mov.f32 %f211, 0fBE2AAAA3;
+ fma.rn.f32 %f212, %f573, %f39, %f211;
+ mov.f32 %f213, 0f00000000;
+ fma.rn.f32 %f574, %f212, %f39, %f213;
+ bra.uni BB0_25;
+
+BB0_23:
+ mov.f32 %f208, 0f3D2AAAA5;
+ fma.rn.f32 %f209, %f573, %f39, %f208;
+ mov.f32 %f210, 0fBF000000;
+ fma.rn.f32 %f574, %f209, %f39, %f210;
+
+BB0_25:
+ fma.rn.f32 %f575, %f574, %f572, %f572;
+ @%p21 bra BB0_27;
+
+ mov.f32 %f214, 0f3F800000;
+ fma.rn.f32 %f575, %f574, %f39, %f214;
+
+BB0_27:
+ and.b32 %r177, %r45, 2;
+ setp.eq.s32 %p24, %r177, 0;
+ @%p24 bra BB0_29;
+
+ mov.f32 %f215, 0f00000000;
+ mov.f32 %f216, 0fBF800000;
+ fma.rn.f32 %f575, %f575, %f216, %f215;
+
+BB0_29:
+ @%p12 bra BB0_31;
+
+ mov.f32 %f217, 0f00000000;
+ mul.rn.f32 %f577, %f577, %f217;
+
+BB0_31:
+ mul.f32 %f218, %f577, 0f3F22F983;
+ cvt.rni.s32.f32 %r305, %f218;
+ cvt.rn.f32.s32 %f219, %r305;
+ neg.f32 %f220, %f219;
+ fma.rn.f32 %f222, %f220, %f198, %f577;
+ fma.rn.f32 %f224, %f220, %f200, %f222;
+ fma.rn.f32 %f578, %f220, %f202, %f224;
+ abs.f32 %f226, %f577;
+ setp.leu.f32 %p26, %f226, 0f47CE4780;
+ @%p26 bra BB0_42;
+
+ mov.b32 %r48, %f577;
+ shr.u32 %r49, %r48, 23;
+ shl.b32 %r180, %r48, 8;
+ or.b32 %r50, %r180, -2147483648;
+ add.u64 %rd49, %SP, 12;
+ cvta.to.local.u64 %rd104, %rd49;
+ mov.u32 %r297, 0;
+ mov.u64 %rd103, __cudart_i2opi_f;
+ mov.u32 %r296, -6;
+
+BB0_33:
+ .pragma "nounroll";
+ ld.const.u32 %r183, [%rd103];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r181, %r183, %r50, %r297;
+ madc.hi.u32 %r297, %r183, %r50, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd104], %r181;
+ add.s64 %rd104, %rd104, 4;
+ add.s64 %rd103, %rd103, 4;
+ add.s32 %r296, %r296, 1;
+ setp.ne.s32 %p27, %r296, 0;
+ @%p27 bra BB0_33;
+
+ and.b32 %r186, %r49, 255;
+ add.s32 %r187, %r186, -128;
+ shr.u32 %r188, %r187, 5;
+ and.b32 %r55, %r48, -2147483648;
+ cvta.to.local.u64 %rd51, %rd49;
+ st.local.u32 [%rd51+24], %r297;
+ mov.u32 %r189, 6;
+ sub.s32 %r190, %r189, %r188;
+ mul.wide.s32 %rd52, %r190, 4;
+ add.s64 %rd14, %rd51, %rd52;
+ ld.local.u32 %r298, [%rd14];
+ ld.local.u32 %r299, [%rd14+-4];
+ and.b32 %r58, %r49, 31;
+ setp.eq.s32 %p28, %r58, 0;
+ @%p28 bra BB0_36;
+
+ mov.u32 %r191, 32;
+ sub.s32 %r192, %r191, %r58;
+ shr.u32 %r193, %r299, %r192;
+ shl.b32 %r194, %r298, %r58;
+ add.s32 %r298, %r193, %r194;
+ ld.local.u32 %r195, [%rd14+-8];
+ shr.u32 %r196, %r195, %r192;
+ shl.b32 %r197, %r299, %r58;
+ add.s32 %r299, %r196, %r197;
+
+BB0_36:
+ shr.u32 %r198, %r299, 30;
+ shl.b32 %r199, %r298, 2;
+ add.s32 %r300, %r198, %r199;
+ shl.b32 %r64, %r299, 2;
+ shr.u32 %r200, %r300, 31;
+ shr.u32 %r201, %r298, 30;
+ add.s32 %r65, %r200, %r201;
+ setp.eq.s32 %p29, %r200, 0;
+ @%p29 bra BB0_37;
+ bra.uni BB0_38;
+
+BB0_37:
+ mov.u32 %r301, %r55;
+ mov.u32 %r302, %r64;
+ bra.uni BB0_39;
+
+BB0_38:
+ not.b32 %r202, %r300;
+ neg.s32 %r302, %r64;
+ setp.eq.s32 %p30, %r64, 0;
+ selp.u32 %r203, 1, 0, %p30;
+ add.s32 %r300, %r203, %r202;
+ xor.b32 %r301, %r55, -2147483648;
+
+BB0_39:
+ clz.b32 %r304, %r300;
+ setp.eq.s32 %p31, %r304, 0;
+ shl.b32 %r204, %r300, %r304;
+ mov.u32 %r205, 32;
+ sub.s32 %r206, %r205, %r304;
+ shr.u32 %r207, %r302, %r206;
+ add.s32 %r208, %r207, %r204;
+ selp.b32 %r73, %r300, %r208, %p31;
+ mov.u32 %r209, -921707870;
+ mul.hi.u32 %r303, %r73, %r209;
+ setp.eq.s32 %p32, %r55, 0;
+ neg.s32 %r210, %r65;
+ selp.b32 %r305, %r65, %r210, %p32;
+ setp.lt.s32 %p33, %r303, 1;
+ @%p33 bra BB0_41;
+
+ mul.lo.s32 %r211, %r73, -921707870;
+ shr.u32 %r212, %r211, 31;
+ shl.b32 %r213, %r303, 1;
+ add.s32 %r303, %r212, %r213;
+ add.s32 %r304, %r304, 1;
+
+BB0_41:
+ mov.u32 %r214, 126;
+ sub.s32 %r215, %r214, %r304;
+ shl.b32 %r216, %r215, 23;
+ add.s32 %r217, %r303, 1;
+ shr.u32 %r218, %r217, 7;
+ add.s32 %r219, %r218, 1;
+ shr.u32 %r220, %r219, 1;
+ add.s32 %r221, %r220, %r216;
+ or.b32 %r222, %r221, %r301;
+ mov.b32 %f578, %r222;
+
+BB0_42:
+ mul.rn.f32 %f56, %f578, %f578;
+ and.b32 %r81, %r305, 1;
+ setp.eq.s32 %p34, %r81, 0;
+ @%p34 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mov.f32 %f229, 0f3C08839E;
+ mov.f32 %f230, 0fB94CA1F9;
+ fma.rn.f32 %f579, %f230, %f56, %f229;
+ bra.uni BB0_45;
+
+BB0_43:
+ mov.f32 %f227, 0fBAB6061A;
+ mov.f32 %f228, 0f37CCF5CE;
+ fma.rn.f32 %f579, %f228, %f56, %f227;
+
+BB0_45:
+ @%p34 bra BB0_47;
+ bra.uni BB0_46;
+
+BB0_47:
+ mov.f32 %f234, 0fBE2AAAA3;
+ fma.rn.f32 %f235, %f579, %f56, %f234;
+ mov.f32 %f236, 0f00000000;
+ fma.rn.f32 %f580, %f235, %f56, %f236;
+ bra.uni BB0_48;
+
+BB0_46:
+ mov.f32 %f231, 0f3D2AAAA5;
+ fma.rn.f32 %f232, %f579, %f56, %f231;
+ mov.f32 %f233, 0fBF000000;
+ fma.rn.f32 %f580, %f232, %f56, %f233;
+
+BB0_48:
+ fma.rn.f32 %f581, %f580, %f578, %f578;
+ @%p34 bra BB0_50;
+
+ mov.f32 %f237, 0f3F800000;
+ fma.rn.f32 %f581, %f580, %f56, %f237;
+
+BB0_50:
+ and.b32 %r223, %r305, 2;
+ setp.eq.s32 %p37, %r223, 0;
+ @%p37 bra BB0_52;
+
+ mov.f32 %f238, 0f00000000;
+ mov.f32 %f239, 0fBF800000;
+ fma.rn.f32 %f581, %f581, %f239, %f238;
+
+BB0_52:
+ mul.f32 %f248, %f31, %f575;
+ add.u64 %rd53, %SP, 0;
+ cvta.to.local.u64 %rd54, %rd53;
+ mul.f32 %f249, %f248, %f248;
+ mov.f32 %f250, 0f3F800000;
+ sub.f32 %f251, %f250, %f249;
+ mul.f32 %f252, %f31, %f581;
+ mul.f32 %f253, %f252, %f252;
+ sub.f32 %f254, %f251, %f253;
+ mov.f32 %f255, 0f00000000;
+ max.f32 %f256, %f255, %f254;
+ sqrt.rn.f32 %f257, %f256;
+ mul.f32 %f258, %f13, %f252;
+ mul.f32 %f259, %f14, %f252;
+ mul.f32 %f260, %f15, %f252;
+ fma.rn.f32 %f261, %f22, %f248, %f258;
+ fma.rn.f32 %f262, %f21, %f248, %f259;
+ fma.rn.f32 %f263, %f20, %f248, %f260;
+ fma.rn.f32 %f243, %f562, %f257, %f261;
+ fma.rn.f32 %f244, %f563, %f257, %f262;
+ fma.rn.f32 %f245, %f564, %f257, %f263;
+ mov.u32 %r225, 0;
+ st.local.u32 [%rd54+8], %r225;
+ st.local.u32 [%rd54+4], %r225;
+ st.local.u32 [%rd54], %r225;
+ ld.global.u32 %r224, [root];
+ mov.f32 %f247, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r224, %f10, %f11, %f12, %f243, %f244, %f245, %r225, %f27, %f247, %rd53, %r112);
+ // inline asm
+ ld.local.f32 %f264, [%rd54];
+ add.f32 %f570, %f570, %f264;
+ ld.local.f32 %f265, [%rd54+4];
+ add.f32 %f569, %f569, %f265;
+ ld.local.f32 %f266, [%rd54+8];
+ add.f32 %f568, %f568, %f266;
+ add.s32 %r284, %r284, 1;
+ setp.lt.s32 %p38, %r284, %r1;
+ @%p38 bra BB0_6;
+
+ add.s32 %r282, %r282, 1;
+ setp.lt.s32 %p39, %r282, %r1;
+ @%p39 bra BB0_5;
+
+BB0_54:
+ cvt.rn.f32.u32 %f267, %r4;
+ cvt.rn.f32.u32 %f268, %r3;
+ tex.2d.v4.f32.f32 {%f269, %f270, %f271, %f272}, [albedoTex, {%f268, %f267}];
+ mul.lo.s32 %r227, %r1, %r1;
+ cvt.rn.f32.s32 %f273, %r227;
+ rcp.rn.f32 %f274, %f273;
+ mul.f32 %f275, %f570, %f274;
+ mul.f32 %f276, %f569, %f274;
+ mul.f32 %f277, %f568, %f274;
+ mul.f32 %f74, %f275, %f269;
+ mul.f32 %f75, %f276, %f270;
+ mul.f32 %f76, %f277, %f271;
+ add.f32 %f77, %f136, %f74;
+ add.f32 %f78, %f137, %f75;
+ add.f32 %f79, %f138, %f76;
+ ld.global.u32 %r307, [imageEnabled];
+ and.b32 %r228, %r307, 1;
+ setp.eq.b32 %p40, %r228, 1;
+ @!%p40 bra BB0_89;
+ bra.uni BB0_55;
+
+BB0_55:
+ mov.f32 %f280, 0f3E666666;
+ cvt.rzi.f32.f32 %f281, %f280;
+ fma.rn.f32 %f282, %f281, 0fC0000000, 0f3EE66666;
+ abs.f32 %f80, %f282;
+ abs.f32 %f81, %f77;
+ setp.lt.f32 %p41, %f81, 0f00800000;
+ mul.f32 %f283, %f81, 0f4B800000;
+ selp.f32 %f284, 0fC3170000, 0fC2FE0000, %p41;
+ selp.f32 %f285, %f283, %f81, %p41;
+ mov.b32 %r229, %f285;
+ and.b32 %r230, %r229, 8388607;
+ or.b32 %r231, %r230, 1065353216;
+ mov.b32 %f286, %r231;
+ shr.u32 %r232, %r229, 23;
+ cvt.rn.f32.u32 %f287, %r232;
+ add.f32 %f288, %f284, %f287;
+ setp.gt.f32 %p42, %f286, 0f3FB504F3;
+ mul.f32 %f289, %f286, 0f3F000000;
+ add.f32 %f290, %f288, 0f3F800000;
+ selp.f32 %f291, %f289, %f286, %p42;
+ selp.f32 %f292, %f290, %f288, %p42;
+ add.f32 %f293, %f291, 0fBF800000;
+ add.f32 %f279, %f291, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f278,%f279;
+ // inline asm
+ add.f32 %f294, %f293, %f293;
+ mul.f32 %f295, %f278, %f294;
+ mul.f32 %f296, %f295, %f295;
+ mov.f32 %f297, 0f3C4CAF63;
+ mov.f32 %f298, 0f3B18F0FE;
+ fma.rn.f32 %f299, %f298, %f296, %f297;
+ mov.f32 %f300, 0f3DAAAABD;
+ fma.rn.f32 %f301, %f299, %f296, %f300;
+ mul.rn.f32 %f302, %f301, %f296;
+ mul.rn.f32 %f303, %f302, %f295;
+ sub.f32 %f304, %f293, %f295;
+ neg.f32 %f305, %f295;
+ add.f32 %f306, %f304, %f304;
+ fma.rn.f32 %f307, %f305, %f293, %f306;
+ mul.rn.f32 %f308, %f278, %f307;
+ add.f32 %f309, %f303, %f295;
+ sub.f32 %f310, %f295, %f309;
+ add.f32 %f311, %f303, %f310;
+ add.f32 %f312, %f308, %f311;
+ add.f32 %f313, %f309, %f312;
+ sub.f32 %f314, %f309, %f313;
+ add.f32 %f315, %f312, %f314;
+ mov.f32 %f316, 0f3F317200;
+ mul.rn.f32 %f317, %f292, %f316;
+ mov.f32 %f318, 0f35BFBE8E;
+ mul.rn.f32 %f319, %f292, %f318;
+ add.f32 %f320, %f317, %f313;
+ sub.f32 %f321, %f317, %f320;
+ add.f32 %f322, %f313, %f321;
+ add.f32 %f323, %f315, %f322;
+ add.f32 %f324, %f319, %f323;
+ add.f32 %f325, %f320, %f324;
+ sub.f32 %f326, %f320, %f325;
+ add.f32 %f327, %f324, %f326;
+ mov.f32 %f328, 0f3EE66666;
+ mul.rn.f32 %f329, %f328, %f325;
+ neg.f32 %f330, %f329;
+ fma.rn.f32 %f331, %f328, %f325, %f330;
+ fma.rn.f32 %f332, %f328, %f327, %f331;
+ mov.f32 %f333, 0f00000000;
+ fma.rn.f32 %f334, %f333, %f325, %f332;
+ add.rn.f32 %f335, %f329, %f334;
+ neg.f32 %f336, %f335;
+ add.rn.f32 %f337, %f329, %f336;
+ add.rn.f32 %f338, %f337, %f334;
+ mov.b32 %r233, %f335;
+ setp.eq.s32 %p43, %r233, 1118925336;
+ add.s32 %r234, %r233, -1;
+ mov.b32 %f339, %r234;
+ add.f32 %f340, %f338, 0f37000000;
+ selp.f32 %f341, %f339, %f335, %p43;
+ selp.f32 %f82, %f340, %f338, %p43;
+ mul.f32 %f342, %f341, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f343, %f342;
+ mov.f32 %f344, 0fBF317200;
+ fma.rn.f32 %f345, %f343, %f344, %f341;
+ mov.f32 %f346, 0fB5BFBE8E;
+ fma.rn.f32 %f347, %f343, %f346, %f345;
+ mul.f32 %f348, %f347, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f349, %f348;
+ add.f32 %f350, %f343, 0f00000000;
+ ex2.approx.f32 %f351, %f350;
+ mul.f32 %f352, %f349, %f351;
+ setp.lt.f32 %p44, %f341, 0fC2D20000;
+ selp.f32 %f353, 0f00000000, %f352, %p44;
+ setp.gt.f32 %p45, %f341, 0f42D20000;
+ selp.f32 %f586, 0f7F800000, %f353, %p45;
+ setp.eq.f32 %p46, %f586, 0f7F800000;
+ @%p46 bra BB0_57;
+
+ fma.rn.f32 %f586, %f586, %f82, %f586;
+
+BB0_57:
+ setp.lt.f32 %p47, %f77, 0f00000000;
+ setp.eq.f32 %p48, %f80, 0f3F800000;
+ and.pred %p1, %p47, %p48;
+ mov.b32 %r235, %f586;
+ xor.b32 %r236, %r235, -2147483648;
+ mov.b32 %f354, %r236;
+ selp.f32 %f588, %f354, %f586, %p1;
+ setp.eq.f32 %p49, %f77, 0f00000000;
+ @%p49 bra BB0_60;
+ bra.uni BB0_58;
+
+BB0_60:
+ add.f32 %f357, %f77, %f77;
+ selp.f32 %f588, %f357, 0f00000000, %p48;
+ bra.uni BB0_61;
+
+BB0_58:
+ setp.geu.f32 %p50, %f77, 0f00000000;
+ @%p50 bra BB0_61;
+
+ mov.f32 %f555, 0f3EE66666;
+ cvt.rzi.f32.f32 %f356, %f555;
+ setp.neu.f32 %p51, %f356, 0f3EE66666;
+ selp.f32 %f588, 0f7FFFFFFF, %f588, %p51;
+
+BB0_61:
+ abs.f32 %f532, %f77;
+ add.f32 %f358, %f532, 0f3EE66666;
+ mov.b32 %r237, %f358;
+ setp.lt.s32 %p53, %r237, 2139095040;
+ @%p53 bra BB0_66;
+
+ abs.f32 %f553, %f77;
+ setp.gtu.f32 %p54, %f553, 0f7F800000;
+ @%p54 bra BB0_65;
+ bra.uni BB0_63;
+
+BB0_65:
+ add.f32 %f588, %f77, 0f3EE66666;
+ bra.uni BB0_66;
+
+BB0_63:
+ abs.f32 %f554, %f77;
+ setp.neu.f32 %p55, %f554, 0f7F800000;
+ @%p55 bra BB0_66;
+
+ selp.f32 %f588, 0fFF800000, 0f7F800000, %p1;
+
+BB0_66:
+ mov.f32 %f541, 0fB5BFBE8E;
+ mov.f32 %f540, 0fBF317200;
+ mov.f32 %f539, 0f00000000;
+ mov.f32 %f538, 0f35BFBE8E;
+ mov.f32 %f537, 0f3F317200;
+ mov.f32 %f536, 0f3DAAAABD;
+ mov.f32 %f535, 0f3C4CAF63;
+ mov.f32 %f534, 0f3B18F0FE;
+ mov.f32 %f533, 0f3EE66666;
+ setp.eq.f32 %p56, %f77, 0f3F800000;
+ selp.f32 %f93, 0f3F800000, %f588, %p56;
+ abs.f32 %f94, %f78;
+ setp.lt.f32 %p57, %f94, 0f00800000;
+ mul.f32 %f361, %f94, 0f4B800000;
+ selp.f32 %f362, 0fC3170000, 0fC2FE0000, %p57;
+ selp.f32 %f363, %f361, %f94, %p57;
+ mov.b32 %r238, %f363;
+ and.b32 %r239, %r238, 8388607;
+ or.b32 %r240, %r239, 1065353216;
+ mov.b32 %f364, %r240;
+ shr.u32 %r241, %r238, 23;
+ cvt.rn.f32.u32 %f365, %r241;
+ add.f32 %f366, %f362, %f365;
+ setp.gt.f32 %p58, %f364, 0f3FB504F3;
+ mul.f32 %f367, %f364, 0f3F000000;
+ add.f32 %f368, %f366, 0f3F800000;
+ selp.f32 %f369, %f367, %f364, %p58;
+ selp.f32 %f370, %f368, %f366, %p58;
+ add.f32 %f371, %f369, 0fBF800000;
+ add.f32 %f360, %f369, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f359,%f360;
+ // inline asm
+ add.f32 %f372, %f371, %f371;
+ mul.f32 %f373, %f359, %f372;
+ mul.f32 %f374, %f373, %f373;
+ fma.rn.f32 %f377, %f534, %f374, %f535;
+ fma.rn.f32 %f379, %f377, %f374, %f536;
+ mul.rn.f32 %f380, %f379, %f374;
+ mul.rn.f32 %f381, %f380, %f373;
+ sub.f32 %f382, %f371, %f373;
+ neg.f32 %f383, %f373;
+ add.f32 %f384, %f382, %f382;
+ fma.rn.f32 %f385, %f383, %f371, %f384;
+ mul.rn.f32 %f386, %f359, %f385;
+ add.f32 %f387, %f381, %f373;
+ sub.f32 %f388, %f373, %f387;
+ add.f32 %f389, %f381, %f388;
+ add.f32 %f390, %f386, %f389;
+ add.f32 %f391, %f387, %f390;
+ sub.f32 %f392, %f387, %f391;
+ add.f32 %f393, %f390, %f392;
+ mul.rn.f32 %f395, %f370, %f537;
+ mul.rn.f32 %f397, %f370, %f538;
+ add.f32 %f398, %f395, %f391;
+ sub.f32 %f399, %f395, %f398;
+ add.f32 %f400, %f391, %f399;
+ add.f32 %f401, %f393, %f400;
+ add.f32 %f402, %f397, %f401;
+ add.f32 %f403, %f398, %f402;
+ sub.f32 %f404, %f398, %f403;
+ add.f32 %f405, %f402, %f404;
+ mul.rn.f32 %f407, %f533, %f403;
+ neg.f32 %f408, %f407;
+ fma.rn.f32 %f409, %f533, %f403, %f408;
+ fma.rn.f32 %f410, %f533, %f405, %f409;
+ fma.rn.f32 %f412, %f539, %f403, %f410;
+ add.rn.f32 %f413, %f407, %f412;
+ neg.f32 %f414, %f413;
+ add.rn.f32 %f415, %f407, %f414;
+ add.rn.f32 %f416, %f415, %f412;
+ mov.b32 %r242, %f413;
+ setp.eq.s32 %p59, %r242, 1118925336;
+ add.s32 %r243, %r242, -1;
+ mov.b32 %f417, %r243;
+ add.f32 %f418, %f416, 0f37000000;
+ selp.f32 %f419, %f417, %f413, %p59;
+ selp.f32 %f95, %f418, %f416, %p59;
+ mul.f32 %f420, %f419, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f421, %f420;
+ fma.rn.f32 %f423, %f421, %f540, %f419;
+ fma.rn.f32 %f425, %f421, %f541, %f423;
+ mul.f32 %f426, %f425, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f427, %f426;
+ add.f32 %f428, %f421, 0f00000000;
+ ex2.approx.f32 %f429, %f428;
+ mul.f32 %f430, %f427, %f429;
+ setp.lt.f32 %p60, %f419, 0fC2D20000;
+ selp.f32 %f431, 0f00000000, %f430, %p60;
+ setp.gt.f32 %p61, %f419, 0f42D20000;
+ selp.f32 %f589, 0f7F800000, %f431, %p61;
+ setp.eq.f32 %p62, %f589, 0f7F800000;
+ @%p62 bra BB0_68;
+
+ fma.rn.f32 %f589, %f589, %f95, %f589;
+
+BB0_68:
+ setp.lt.f32 %p63, %f78, 0f00000000;
+ and.pred %p2, %p63, %p48;
+ mov.b32 %r244, %f589;
+ xor.b32 %r245, %r244, -2147483648;
+ mov.b32 %f432, %r245;
+ selp.f32 %f591, %f432, %f589, %p2;
+ setp.eq.f32 %p65, %f78, 0f00000000;
+ @%p65 bra BB0_71;
+ bra.uni BB0_69;
+
+BB0_71:
+ add.f32 %f435, %f78, %f78;
+ selp.f32 %f591, %f435, 0f00000000, %p48;
+ bra.uni BB0_72;
+
+BB0_69:
+ setp.geu.f32 %p66, %f78, 0f00000000;
+ @%p66 bra BB0_72;
+
+ mov.f32 %f552, 0f3EE66666;
+ cvt.rzi.f32.f32 %f434, %f552;
+ setp.neu.f32 %p67, %f434, 0f3EE66666;
+ selp.f32 %f591, 0f7FFFFFFF, %f591, %p67;
+
+BB0_72:
+ abs.f32 %f556, %f78;
+ add.f32 %f436, %f556, 0f3EE66666;
+ mov.b32 %r246, %f436;
+ setp.lt.s32 %p69, %r246, 2139095040;
+ @%p69 bra BB0_77;
+
+ abs.f32 %f557, %f78;
+ setp.gtu.f32 %p70, %f557, 0f7F800000;
+ @%p70 bra BB0_76;
+ bra.uni BB0_74;
+
+BB0_76:
+ add.f32 %f591, %f78, 0f3EE66666;
+ bra.uni BB0_77;
+
+BB0_74:
+ abs.f32 %f558, %f78;
+ setp.neu.f32 %p71, %f558, 0f7F800000;
+ @%p71 bra BB0_77;
+
+ selp.f32 %f591, 0fFF800000, 0f7F800000, %p2;
+
+BB0_77:
+ mov.f32 %f550, 0fB5BFBE8E;
+ mov.f32 %f549, 0fBF317200;
+ mov.f32 %f548, 0f00000000;
+ mov.f32 %f547, 0f35BFBE8E;
+ mov.f32 %f546, 0f3F317200;
+ mov.f32 %f545, 0f3DAAAABD;
+ mov.f32 %f544, 0f3C4CAF63;
+ mov.f32 %f543, 0f3B18F0FE;
+ mov.f32 %f542, 0f3EE66666;
+ setp.eq.f32 %p72, %f78, 0f3F800000;
+ selp.f32 %f106, 0f3F800000, %f591, %p72;
+ abs.f32 %f107, %f79;
+ setp.lt.f32 %p73, %f107, 0f00800000;
+ mul.f32 %f439, %f107, 0f4B800000;
+ selp.f32 %f440, 0fC3170000, 0fC2FE0000, %p73;
+ selp.f32 %f441, %f439, %f107, %p73;
+ mov.b32 %r247, %f441;
+ and.b32 %r248, %r247, 8388607;
+ or.b32 %r249, %r248, 1065353216;
+ mov.b32 %f442, %r249;
+ shr.u32 %r250, %r247, 23;
+ cvt.rn.f32.u32 %f443, %r250;
+ add.f32 %f444, %f440, %f443;
+ setp.gt.f32 %p74, %f442, 0f3FB504F3;
+ mul.f32 %f445, %f442, 0f3F000000;
+ add.f32 %f446, %f444, 0f3F800000;
+ selp.f32 %f447, %f445, %f442, %p74;
+ selp.f32 %f448, %f446, %f444, %p74;
+ add.f32 %f449, %f447, 0fBF800000;
+ add.f32 %f438, %f447, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f437,%f438;
+ // inline asm
+ add.f32 %f450, %f449, %f449;
+ mul.f32 %f451, %f437, %f450;
+ mul.f32 %f452, %f451, %f451;
+ fma.rn.f32 %f455, %f543, %f452, %f544;
+ fma.rn.f32 %f457, %f455, %f452, %f545;
+ mul.rn.f32 %f458, %f457, %f452;
+ mul.rn.f32 %f459, %f458, %f451;
+ sub.f32 %f460, %f449, %f451;
+ neg.f32 %f461, %f451;
+ add.f32 %f462, %f460, %f460;
+ fma.rn.f32 %f463, %f461, %f449, %f462;
+ mul.rn.f32 %f464, %f437, %f463;
+ add.f32 %f465, %f459, %f451;
+ sub.f32 %f466, %f451, %f465;
+ add.f32 %f467, %f459, %f466;
+ add.f32 %f468, %f464, %f467;
+ add.f32 %f469, %f465, %f468;
+ sub.f32 %f470, %f465, %f469;
+ add.f32 %f471, %f468, %f470;
+ mul.rn.f32 %f473, %f448, %f546;
+ mul.rn.f32 %f475, %f448, %f547;
+ add.f32 %f476, %f473, %f469;
+ sub.f32 %f477, %f473, %f476;
+ add.f32 %f478, %f469, %f477;
+ add.f32 %f479, %f471, %f478;
+ add.f32 %f480, %f475, %f479;
+ add.f32 %f481, %f476, %f480;
+ sub.f32 %f482, %f476, %f481;
+ add.f32 %f483, %f480, %f482;
+ mul.rn.f32 %f485, %f542, %f481;
+ neg.f32 %f486, %f485;
+ fma.rn.f32 %f487, %f542, %f481, %f486;
+ fma.rn.f32 %f488, %f542, %f483, %f487;
+ fma.rn.f32 %f490, %f548, %f481, %f488;
+ add.rn.f32 %f491, %f485, %f490;
+ neg.f32 %f492, %f491;
+ add.rn.f32 %f493, %f485, %f492;
+ add.rn.f32 %f494, %f493, %f490;
+ mov.b32 %r251, %f491;
+ setp.eq.s32 %p75, %r251, 1118925336;
+ add.s32 %r252, %r251, -1;
+ mov.b32 %f495, %r252;
+ add.f32 %f496, %f494, 0f37000000;
+ selp.f32 %f497, %f495, %f491, %p75;
+ selp.f32 %f108, %f496, %f494, %p75;
+ mul.f32 %f498, %f497, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f499, %f498;
+ fma.rn.f32 %f501, %f499, %f549, %f497;
+ fma.rn.f32 %f503, %f499, %f550, %f501;
+ mul.f32 %f504, %f503, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f505, %f504;
+ add.f32 %f506, %f499, 0f00000000;
+ ex2.approx.f32 %f507, %f506;
+ mul.f32 %f508, %f505, %f507;
+ setp.lt.f32 %p76, %f497, 0fC2D20000;
+ selp.f32 %f509, 0f00000000, %f508, %p76;
+ setp.gt.f32 %p77, %f497, 0f42D20000;
+ selp.f32 %f592, 0f7F800000, %f509, %p77;
+ setp.eq.f32 %p78, %f592, 0f7F800000;
+ @%p78 bra BB0_79;
+
+ fma.rn.f32 %f592, %f592, %f108, %f592;
+
+BB0_79:
+ setp.lt.f32 %p79, %f79, 0f00000000;
+ and.pred %p3, %p79, %p48;
+ mov.b32 %r253, %f592;
+ xor.b32 %r254, %r253, -2147483648;
+ mov.b32 %f510, %r254;
+ selp.f32 %f594, %f510, %f592, %p3;
+ setp.eq.f32 %p81, %f79, 0f00000000;
+ @%p81 bra BB0_82;
+ bra.uni BB0_80;
+
+BB0_82:
+ add.f32 %f513, %f79, %f79;
+ selp.f32 %f594, %f513, 0f00000000, %p48;
+ bra.uni BB0_83;
+
+BB0_80:
+ setp.geu.f32 %p82, %f79, 0f00000000;
+ @%p82 bra BB0_83;
+
+ mov.f32 %f551, 0f3EE66666;
+ cvt.rzi.f32.f32 %f512, %f551;
+ setp.neu.f32 %p83, %f512, 0f3EE66666;
+ selp.f32 %f594, 0f7FFFFFFF, %f594, %p83;
+
+BB0_83:
+ abs.f32 %f559, %f79;
+ add.f32 %f514, %f559, 0f3EE66666;
+ mov.b32 %r255, %f514;
+ setp.lt.s32 %p85, %r255, 2139095040;
+ @%p85 bra BB0_88;
+
+ abs.f32 %f560, %f79;
+ setp.gtu.f32 %p86, %f560, 0f7F800000;
+ @%p86 bra BB0_87;
+ bra.uni BB0_85;
+
+BB0_87:
+ add.f32 %f594, %f79, 0f3EE66666;
+ bra.uni BB0_88;
+
+BB0_85:
+ abs.f32 %f561, %f79;
+ setp.neu.f32 %p87, %f561, 0f7F800000;
+ @%p87 bra BB0_88;
+
+ selp.f32 %f594, 0fFF800000, 0f7F800000, %p3;
+
+BB0_88:
+ mov.u32 %r277, 4;
+ mov.u64 %rd98, 0;
+ mov.u32 %r276, 2;
+ setp.eq.f32 %p88, %f79, 0f3F800000;
+ selp.f32 %f515, 0f3F800000, %f594, %p88;
+ cvt.u64.u32 %rd59, %r4;
+ cvt.u64.u32 %rd58, %r3;
+ mov.u64 %rd62, image;
+ cvta.global.u64 %rd57, %rd62;
+ // inline asm
+ call (%rd56), _rt_buffer_get_64, (%rd57, %r276, %r277, %rd58, %rd59, %rd98, %rd98);
+ // inline asm
+ cvt.sat.f32.f32 %f516, %f515;
+ mul.f32 %f517, %f516, 0f437FFD71;
+ cvt.rzi.u32.f32 %r258, %f517;
+ cvt.sat.f32.f32 %f518, %f106;
+ mul.f32 %f519, %f518, 0f437FFD71;
+ cvt.rzi.u32.f32 %r259, %f519;
+ cvt.sat.f32.f32 %f520, %f93;
+ mul.f32 %f521, %f520, 0f437FFD71;
+ cvt.rzi.u32.f32 %r260, %f521;
+ cvt.u16.u32 %rs16, %r258;
+ cvt.u16.u32 %rs17, %r260;
+ cvt.u16.u32 %rs18, %r259;
+ mov.u16 %rs19, 255;
+ st.v4.u8 [%rd56], {%rs16, %rs18, %rs17, %rs19};
+ ld.global.u32 %r307, [imageEnabled];
+
+BB0_89:
+ and.b32 %r261, %r307, 4;
+ setp.eq.s32 %p89, %r261, 0;
+ @%p89 bra BB0_91;
+
+ mov.u32 %r279, 8;
+ mov.u64 %rd99, 0;
+ mov.u32 %r278, 2;
+ cvt.u64.u32 %rd65, %r3;
+ cvt.u64.u32 %rd66, %r4;
+ mov.u64 %rd69, image_HDR;
+ cvta.global.u64 %rd64, %rd69;
+ // inline asm
+ call (%rd63), _rt_buffer_get_64, (%rd64, %r278, %r279, %rd65, %rd66, %rd99, %rd99);
+ // inline asm
+ mov.f32 %f525, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f525;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f79;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs21, %f78;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f77;}
+
+ // inline asm
+ st.v4.u16 [%rd63], {%rs20, %rs21, %rs22, %rs23};
+ ld.global.u32 %r307, [imageEnabled];
+
+BB0_91:
+ and.b32 %r264, %r307, 16;
+ setp.eq.s32 %p90, %r264, 0;
+ @%p90 bra BB0_99;
+
+ mov.u32 %r281, 8;
+ mov.u64 %rd100, 0;
+ mov.u32 %r280, 2;
+ cvt.u64.u32 %rd72, %r3;
+ cvt.u64.u32 %rd73, %r4;
+ mov.u64 %rd76, image_HDR2;
+ cvta.global.u64 %rd71, %rd76;
+ // inline asm
+ call (%rd70), _rt_buffer_get_64, (%rd71, %r280, %r281, %rd72, %rd73, %rd100, %rd100);
+ // inline asm
+ mov.f32 %f529, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f529;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f76;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f75;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f74;}
+
+ // inline asm
+ st.v4.u16 [%rd70], {%rs24, %rs25, %rs26, %rs27};
+
+BB0_99:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGI.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGI.ptx.meta
new file mode 100644
index 00000000..84c24315
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGI.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9b6f1240c52e9eb45af48301d0c56ef7
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIProbeSH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIProbeSH.ptx
new file mode 100644
index 00000000..80448490
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIProbeSH.ptx
@@ -0,0 +1,2016 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 8 .b8 texCoords[8];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 1 .b8 lightmapDirect[1];
+.global .texref albedoTex;
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<103>;
+ .reg .b16 %rs<145>;
+ .reg .f32 %f<850>;
+ .reg .b32 %r<398>;
+ .reg .b64 %rd<284>;
+
+
+ mov.u64 %rd283, __local_depot0;
+ cvta.local.u64 %SP, %rd283;
+ ld.global.u32 %r1, [samples];
+ shl.b32 %r2, %r1, 1;
+ ld.global.v2.u32 {%r97, %r98}, [pixelID];
+ cvt.u64.u32 %rd22, %r97;
+ cvt.u64.u32 %rd23, %r98;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r95, 2;
+ mov.u32 %r96, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r95, %r96, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r3, [%rd20];
+ shr.u32 %r101, %r3, 16;
+ cvt.u16.u32 %rs1, %r101;
+ and.b16 %rs6, %rs1, 255;
+ cvt.u16.u32 %rs7, %r3;
+ or.b16 %rs8, %rs7, %rs6;
+ setp.eq.s16 %p4, %rs8, 0;
+ mov.f32 %f781, 0f00000000;
+ mov.f32 %f782, %f781;
+ mov.f32 %f783, %f781;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs9, [%rd20+1];
+ and.b16 %rs11, %rs7, 255;
+ cvt.rn.f32.u16 %f195, %rs11;
+ div.rn.f32 %f196, %f195, 0f437F0000;
+ fma.rn.f32 %f197, %f196, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f198, %rs9;
+ div.rn.f32 %f199, %f198, 0f437F0000;
+ fma.rn.f32 %f200, %f199, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f201, %rs6;
+ div.rn.f32 %f202, %f201, 0f437F0000;
+ fma.rn.f32 %f203, %f202, 0f40000000, 0fBF800000;
+ mul.f32 %f204, %f200, %f200;
+ fma.rn.f32 %f205, %f197, %f197, %f204;
+ fma.rn.f32 %f206, %f203, %f203, %f205;
+ sqrt.rn.f32 %f207, %f206;
+ rcp.rn.f32 %f208, %f207;
+ mul.f32 %f781, %f197, %f208;
+ mul.f32 %f782, %f200, %f208;
+ mul.f32 %f783, %f203, %f208;
+
+BB0_2:
+ ld.global.v2.u32 {%r102, %r103}, [pixelID];
+ ld.global.v2.u32 {%r105, %r106}, [tileInfo];
+ add.s32 %r4, %r102, %r105;
+ add.s32 %r5, %r103, %r106;
+ setp.eq.f32 %p5, %f782, 0f00000000;
+ setp.eq.f32 %p6, %f781, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f783, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_105;
+ bra.uni BB0_3;
+
+BB0_105:
+ ld.global.u32 %r397, [imageEnabled];
+ and.b32 %r296, %r397, 1;
+ setp.eq.b32 %p95, %r296, 1;
+ @!%p95 bra BB0_107;
+ bra.uni BB0_106;
+
+BB0_106:
+ cvt.u64.u32 %rd174, %r4;
+ cvt.u64.u32 %rd175, %r5;
+ mov.u64 %rd178, image;
+ cvta.global.u64 %rd173, %rd178;
+ mov.u64 %rd177, 0;
+ // inline asm
+ call (%rd172), _rt_buffer_get_64, (%rd173, %r95, %r96, %rd174, %rd175, %rd177, %rd177);
+ // inline asm
+ mov.u16 %rs88, 0;
+ st.v4.u8 [%rd172], {%rs88, %rs88, %rs88, %rs88};
+ ld.global.u32 %r397, [imageEnabled];
+
+BB0_107:
+ and.b32 %r299, %r397, 4;
+ setp.eq.s32 %p96, %r299, 0;
+ @%p96 bra BB0_109;
+
+ cvt.u64.u32 %rd181, %r4;
+ cvt.u64.u32 %rd182, %r5;
+ mov.u64 %rd185, image_HDR;
+ cvta.global.u64 %rd180, %rd185;
+ mov.u32 %r301, 8;
+ mov.u64 %rd184, 0;
+ // inline asm
+ call (%rd179), _rt_buffer_get_64, (%rd180, %r95, %r301, %rd181, %rd182, %rd184, %rd184);
+ // inline asm
+ mov.f32 %f693, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs89, %f693;}
+
+ // inline asm
+ mov.u16 %rs90, 0;
+ st.v4.u16 [%rd179], {%rs89, %rs89, %rs89, %rs90};
+ ld.global.u32 %r397, [imageEnabled];
+
+BB0_109:
+ and.b32 %r302, %r397, 16;
+ setp.eq.s32 %p97, %r302, 0;
+ @%p97 bra BB0_111;
+
+ cvt.u64.u32 %rd189, %r5;
+ cvt.u64.u32 %rd188, %r4;
+ mov.u64 %rd192, image_HDR2;
+ cvta.global.u64 %rd187, %rd192;
+ mov.u32 %r304, 8;
+ mov.u64 %rd191, 0;
+ // inline asm
+ call (%rd186), _rt_buffer_get_64, (%rd187, %r95, %r304, %rd188, %rd189, %rd191, %rd191);
+ // inline asm
+ mov.f32 %f694, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f694;}
+
+ // inline asm
+ mov.u16 %rs92, 0;
+ st.v4.u16 [%rd186], {%rs91, %rs91, %rs91, %rs92};
+
+BB0_111:
+ cvt.u64.u32 %rd18, %r4;
+ cvt.u64.u32 %rd19, %r5;
+ ld.global.u32 %r305, [additive];
+ setp.eq.s32 %p98, %r305, 0;
+ @%p98 bra BB0_113;
+
+ mov.u64 %rd205, image_RNM0;
+ cvta.global.u64 %rd194, %rd205;
+ mov.u32 %r309, 8;
+ mov.u64 %rd204, 0;
+ // inline asm
+ call (%rd193), _rt_buffer_get_64, (%rd194, %r95, %r309, %rd18, %rd19, %rd204, %rd204);
+ // inline asm
+ ld.v4.u16 {%rs99, %rs100, %rs101, %rs102}, [%rd193];
+ // inline asm
+ { cvt.f32.f16 %f695, %rs99;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f696, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f697, %rs101;}
+
+ // inline asm
+ // inline asm
+ call (%rd199), _rt_buffer_get_64, (%rd194, %r95, %r309, %rd18, %rd19, %rd204, %rd204);
+ // inline asm
+ add.f32 %f698, %f695, 0f00000000;
+ add.f32 %f699, %f696, 0f00000000;
+ add.f32 %f700, %f697, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f700;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f699;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs96, %f698;}
+
+ // inline asm
+ mov.u16 %rs103, 0;
+ st.v4.u16 [%rd199], {%rs96, %rs97, %rs98, %rs103};
+ bra.uni BB0_114;
+
+BB0_3:
+ ld.global.v2.u32 {%r116, %r117}, [pixelID];
+ cvt.u64.u32 %rd29, %r116;
+ cvt.u64.u32 %rd30, %r117;
+ mov.u64 %rd45, lightmapDirect;
+ cvta.global.u64 %rd28, %rd45;
+ mov.u32 %r111, 8;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r95, %r111, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs16, %rs17, %rs18, %rs19}, [%rd27];
+ // inline asm
+ { cvt.f32.f16 %f209, %rs16;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f210, %rs17;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f211, %rs18;}
+
+ // inline asm
+ ld.global.v2.u32 {%r120, %r121}, [pixelID];
+ cvt.u64.u32 %rd35, %r120;
+ cvt.u64.u32 %rd36, %r121;
+ mov.u64 %rd46, uvpos;
+ cvta.global.u64 %rd34, %rd46;
+ mov.u32 %r113, 12;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r95, %r113, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f227, [%rd33+8];
+ ld.f32 %f228, [%rd33+4];
+ ld.f32 %f229, [%rd33];
+ mul.f32 %f230, %f229, 0f3456BF95;
+ mul.f32 %f231, %f228, 0f3456BF95;
+ mul.f32 %f232, %f227, 0f3456BF95;
+ abs.f32 %f233, %f781;
+ div.rn.f32 %f234, %f230, %f233;
+ abs.f32 %f235, %f782;
+ div.rn.f32 %f236, %f231, %f235;
+ abs.f32 %f237, %f783;
+ div.rn.f32 %f238, %f232, %f237;
+ abs.f32 %f239, %f234;
+ abs.f32 %f240, %f236;
+ abs.f32 %f241, %f238;
+ mov.f32 %f242, 0f38D1B717;
+ max.f32 %f243, %f239, %f242;
+ max.f32 %f244, %f240, %f242;
+ max.f32 %f245, %f241, %f242;
+ fma.rn.f32 %f10, %f781, %f243, %f229;
+ fma.rn.f32 %f11, %f782, %f244, %f228;
+ fma.rn.f32 %f12, %f783, %f245, %f227;
+ setp.gt.f32 %p10, %f233, %f237;
+ neg.f32 %f246, %f782;
+ selp.f32 %f247, %f246, 0f00000000, %p10;
+ neg.f32 %f248, %f783;
+ selp.f32 %f249, %f781, %f248, %p10;
+ selp.f32 %f250, 0f00000000, %f782, %p10;
+ mul.f32 %f251, %f249, %f249;
+ fma.rn.f32 %f252, %f247, %f247, %f251;
+ fma.rn.f32 %f253, %f250, %f250, %f252;
+ sqrt.rn.f32 %f254, %f253;
+ rcp.rn.f32 %f255, %f254;
+ mul.f32 %f13, %f247, %f255;
+ mul.f32 %f14, %f249, %f255;
+ mul.f32 %f15, %f250, %f255;
+ ld.global.v2.u32 {%r124, %r125}, [pixelID];
+ cvt.u64.u32 %rd41, %r124;
+ cvt.u64.u32 %rd42, %r125;
+ mov.u64 %rd47, rnd_seeds;
+ cvta.global.u64 %rd40, %rd47;
+ // inline asm
+ call (%rd39), _rt_buffer_get_64, (%rd40, %r95, %r96, %rd41, %rd42, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f799, 0f00000000;
+ setp.lt.s32 %p11, %r1, 1;
+ mov.f32 %f800, %f799;
+ mov.f32 %f801, %f799;
+ mov.f32 %f802, %f799;
+ mov.f32 %f803, %f799;
+ mov.f32 %f804, %f799;
+ mov.f32 %f805, %f799;
+ mov.f32 %f806, %f799;
+ mov.f32 %f807, %f799;
+ mov.f32 %f808, %f799;
+ mov.f32 %f809, %f799;
+ mov.f32 %f810, %f799;
+ mov.f32 %f811, %f799;
+ mov.f32 %f812, %f799;
+ mov.f32 %f813, %f799;
+ @%p11 bra BB0_54;
+
+ cvt.rn.f32.s32 %f271, %r2;
+ rcp.rn.f32 %f16, %f271;
+ ld.u32 %r373, [%rd39];
+ mul.f32 %f17, %f10, 0f3456BF95;
+ mul.f32 %f18, %f11, 0f3456BF95;
+ mul.f32 %f19, %f12, 0f3456BF95;
+ mul.f32 %f272, %f781, %f14;
+ mul.f32 %f273, %f782, %f13;
+ sub.f32 %f20, %f273, %f272;
+ mul.f32 %f274, %f783, %f13;
+ mul.f32 %f275, %f781, %f15;
+ sub.f32 %f21, %f275, %f274;
+ mul.f32 %f276, %f782, %f15;
+ mul.f32 %f277, %f783, %f14;
+ sub.f32 %f22, %f277, %f276;
+ mov.f32 %f799, 0f00000000;
+ mov.u32 %r128, 0;
+ abs.f32 %f278, %f18;
+ abs.f32 %f279, %f17;
+ max.f32 %f280, %f279, %f278;
+ abs.f32 %f281, %f19;
+ max.f32 %f282, %f280, %f281;
+ mov.u32 %r370, %r128;
+ mov.f32 %f800, %f799;
+ mov.f32 %f801, %f799;
+ mov.f32 %f802, %f799;
+ mov.f32 %f803, %f799;
+ mov.f32 %f804, %f799;
+ mov.f32 %f805, %f799;
+ mov.f32 %f806, %f799;
+ mov.f32 %f807, %f799;
+ mov.f32 %f808, %f799;
+ mov.f32 %f809, %f799;
+ mov.f32 %f810, %f799;
+ mov.f32 %f811, %f799;
+ mov.f32 %f812, %f799;
+ mov.f32 %f813, %f799;
+
+BB0_5:
+ mov.u32 %r372, %r128;
+
+BB0_6:
+ mov.u32 %r10, %r373;
+ cvt.rn.f32.s32 %f763, %r370;
+ mad.lo.s32 %r130, %r10, 1664525, 1013904223;
+ and.b32 %r131, %r130, 16777215;
+ cvt.rn.f32.u32 %f284, %r131;
+ fma.rn.f32 %f285, %f284, 0f33800000, %f763;
+ mul.f32 %f286, %f16, %f285;
+ mad.lo.s32 %r11, %r130, 1664525, 1013904223;
+ and.b32 %r132, %r11, 16777215;
+ cvt.rn.f32.u32 %f287, %r132;
+ cvt.rn.f32.s32 %f288, %r372;
+ fma.rn.f32 %f289, %f287, 0f33800000, %f288;
+ mul.f32 %f290, %f16, %f289;
+ fma.rn.f32 %f55, %f286, 0fC0000000, 0f3F800000;
+ mul.f32 %f291, %f55, %f55;
+ mov.f32 %f292, 0f3F800000;
+ sub.f32 %f293, %f292, %f291;
+ mov.f32 %f294, 0f00000000;
+ max.f32 %f295, %f294, %f293;
+ sqrt.rn.f32 %f56, %f295;
+ mul.f32 %f820, %f290, 0f40C90FDB;
+ abs.f32 %f58, %f820;
+ setp.neu.f32 %p12, %f58, 0f7F800000;
+ mov.f32 %f814, %f820;
+ @%p12 bra BB0_8;
+
+ mov.f32 %f764, 0f00000000;
+ mul.rn.f32 %f814, %f820, %f764;
+
+BB0_8:
+ mul.f32 %f297, %f814, 0f3F22F983;
+ cvt.rni.s32.f32 %r383, %f297;
+ cvt.rn.f32.s32 %f298, %r383;
+ neg.f32 %f299, %f298;
+ mov.f32 %f300, 0f3FC90FDA;
+ fma.rn.f32 %f301, %f299, %f300, %f814;
+ mov.f32 %f302, 0f33A22168;
+ fma.rn.f32 %f303, %f299, %f302, %f301;
+ mov.f32 %f304, 0f27C234C5;
+ fma.rn.f32 %f815, %f299, %f304, %f303;
+ abs.f32 %f305, %f814;
+ setp.leu.f32 %p13, %f305, 0f47CE4780;
+ @%p13 bra BB0_19;
+
+ add.u64 %rd49, %SP, 12;
+ cvta.to.local.u64 %rd279, %rd49;
+ mov.u32 %r374, 0;
+ mov.u64 %rd280, 0;
+ mov.u32 %r375, %r374;
+
+BB0_10:
+ .pragma "nounroll";
+ mov.b32 %r350, %f814;
+ shl.b32 %r349, %r350, 8;
+ or.b32 %r348, %r349, -2147483648;
+ add.u64 %rd275, %SP, 12;
+ cvta.to.local.u64 %rd274, %rd275;
+ shl.b64 %rd50, %rd280, 2;
+ mov.u64 %rd51, __cudart_i2opi_f;
+ add.s64 %rd52, %rd51, %rd50;
+ ld.const.u32 %r138, [%rd52];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r136, %r138, %r348, %r375;
+ madc.hi.u32 %r375, %r138, %r348, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd279], %r136;
+ add.s32 %r374, %r374, 1;
+ cvt.s64.s32 %rd280, %r374;
+ mul.wide.s32 %rd55, %r374, 4;
+ add.s64 %rd279, %rd274, %rd55;
+ setp.ne.s32 %p14, %r374, 6;
+ @%p14 bra BB0_10;
+
+ mov.b32 %r352, %f814;
+ shr.u32 %r351, %r352, 23;
+ add.u64 %rd273, %SP, 12;
+ and.b32 %r141, %r351, 255;
+ add.s32 %r142, %r141, -128;
+ shr.u32 %r143, %r142, 5;
+ cvta.to.local.u64 %rd57, %rd273;
+ st.local.u32 [%rd57+24], %r375;
+ mov.u32 %r144, 6;
+ sub.s32 %r145, %r144, %r143;
+ mul.wide.s32 %rd58, %r145, 4;
+ add.s64 %rd8, %rd57, %rd58;
+ ld.local.u32 %r376, [%rd8];
+ ld.local.u32 %r377, [%rd8+-4];
+ and.b32 %r23, %r351, 31;
+ setp.eq.s32 %p15, %r23, 0;
+ @%p15 bra BB0_13;
+
+ mov.u32 %r146, 32;
+ sub.s32 %r147, %r146, %r23;
+ shr.u32 %r148, %r377, %r147;
+ shl.b32 %r149, %r376, %r23;
+ add.s32 %r376, %r148, %r149;
+ ld.local.u32 %r150, [%rd8+-8];
+ shr.u32 %r151, %r150, %r147;
+ shl.b32 %r152, %r377, %r23;
+ add.s32 %r377, %r151, %r152;
+
+BB0_13:
+ mov.b32 %r355, %f814;
+ and.b32 %r379, %r355, -2147483648;
+ shr.u32 %r153, %r377, 30;
+ shl.b32 %r154, %r376, 2;
+ add.s32 %r378, %r153, %r154;
+ shl.b32 %r29, %r377, 2;
+ shr.u32 %r155, %r378, 31;
+ shr.u32 %r156, %r376, 30;
+ add.s32 %r30, %r155, %r156;
+ setp.eq.s32 %p16, %r155, 0;
+ @%p16 bra BB0_14;
+ bra.uni BB0_15;
+
+BB0_14:
+ mov.u32 %r380, %r29;
+ bra.uni BB0_16;
+
+BB0_15:
+ mov.b32 %r357, %f814;
+ and.b32 %r356, %r357, -2147483648;
+ not.b32 %r157, %r378;
+ neg.s32 %r380, %r29;
+ setp.eq.s32 %p17, %r29, 0;
+ selp.u32 %r158, 1, 0, %p17;
+ add.s32 %r378, %r158, %r157;
+ xor.b32 %r379, %r356, -2147483648;
+
+BB0_16:
+ mov.b32 %r359, %f814;
+ and.b32 %r358, %r359, -2147483648;
+ clz.b32 %r382, %r378;
+ setp.eq.s32 %p18, %r382, 0;
+ shl.b32 %r159, %r378, %r382;
+ mov.u32 %r160, 32;
+ sub.s32 %r161, %r160, %r382;
+ shr.u32 %r162, %r380, %r161;
+ add.s32 %r163, %r162, %r159;
+ selp.b32 %r38, %r378, %r163, %p18;
+ mov.u32 %r164, -921707870;
+ mul.hi.u32 %r381, %r38, %r164;
+ setp.eq.s32 %p19, %r358, 0;
+ neg.s32 %r165, %r30;
+ selp.b32 %r383, %r30, %r165, %p19;
+ setp.lt.s32 %p20, %r381, 1;
+ @%p20 bra BB0_18;
+
+ mul.lo.s32 %r166, %r38, -921707870;
+ shr.u32 %r167, %r166, 31;
+ shl.b32 %r168, %r381, 1;
+ add.s32 %r381, %r167, %r168;
+ add.s32 %r382, %r382, 1;
+
+BB0_18:
+ mov.u32 %r169, 126;
+ sub.s32 %r170, %r169, %r382;
+ shl.b32 %r171, %r170, 23;
+ add.s32 %r172, %r381, 1;
+ shr.u32 %r173, %r172, 7;
+ add.s32 %r174, %r173, 1;
+ shr.u32 %r175, %r174, 1;
+ add.s32 %r176, %r175, %r171;
+ or.b32 %r177, %r176, %r379;
+ mov.b32 %f815, %r177;
+
+BB0_19:
+ add.s32 %r46, %r383, 1;
+ and.b32 %r47, %r46, 1;
+ setp.eq.s32 %p21, %r47, 0;
+ @%p21 bra BB0_21;
+ bra.uni BB0_20;
+
+BB0_21:
+ mul.rn.f32 %f772, %f815, %f815;
+ mov.f32 %f308, 0f3C08839E;
+ mov.f32 %f309, 0fB94CA1F9;
+ fma.rn.f32 %f816, %f309, %f772, %f308;
+ bra.uni BB0_22;
+
+BB0_20:
+ mul.rn.f32 %f768, %f815, %f815;
+ mov.f32 %f306, 0fBAB6061A;
+ mov.f32 %f307, 0f37CCF5CE;
+ fma.rn.f32 %f816, %f307, %f768, %f306;
+
+BB0_22:
+ @%p21 bra BB0_24;
+ bra.uni BB0_23;
+
+BB0_24:
+ mul.rn.f32 %f771, %f815, %f815;
+ mov.f32 %f767, 0f00000000;
+ mov.f32 %f313, 0fBE2AAAA3;
+ fma.rn.f32 %f314, %f816, %f771, %f313;
+ fma.rn.f32 %f817, %f314, %f771, %f767;
+ bra.uni BB0_25;
+
+BB0_23:
+ mul.rn.f32 %f769, %f815, %f815;
+ mov.f32 %f310, 0f3D2AAAA5;
+ fma.rn.f32 %f311, %f816, %f769, %f310;
+ mov.f32 %f312, 0fBF000000;
+ fma.rn.f32 %f817, %f311, %f769, %f312;
+
+BB0_25:
+ fma.rn.f32 %f818, %f817, %f815, %f815;
+ @%p21 bra BB0_27;
+
+ mul.rn.f32 %f770, %f815, %f815;
+ mov.f32 %f754, 0f3F800000;
+ fma.rn.f32 %f818, %f817, %f770, %f754;
+
+BB0_27:
+ add.s32 %r360, %r383, 1;
+ and.b32 %r178, %r360, 2;
+ setp.eq.s32 %p24, %r178, 0;
+ @%p24 bra BB0_29;
+
+ mov.f32 %f755, 0f00000000;
+ mov.f32 %f318, 0fBF800000;
+ fma.rn.f32 %f818, %f818, %f318, %f755;
+
+BB0_29:
+ abs.f32 %f756, %f820;
+ setp.neu.f32 %p102, %f756, 0f7F800000;
+ @%p102 bra BB0_31;
+
+ mov.f32 %f766, 0f00000000;
+ mul.rn.f32 %f820, %f820, %f766;
+
+BB0_31:
+ mov.f32 %f759, 0f27C234C5;
+ mov.f32 %f758, 0f33A22168;
+ mov.f32 %f757, 0f3FC90FDA;
+ mul.f32 %f320, %f820, 0f3F22F983;
+ cvt.rni.s32.f32 %r393, %f320;
+ cvt.rn.f32.s32 %f321, %r393;
+ neg.f32 %f322, %f321;
+ fma.rn.f32 %f324, %f322, %f757, %f820;
+ fma.rn.f32 %f326, %f322, %f758, %f324;
+ fma.rn.f32 %f821, %f322, %f759, %f326;
+ abs.f32 %f328, %f820;
+ setp.leu.f32 %p26, %f328, 0f47CE4780;
+ @%p26 bra BB0_42;
+
+ add.u64 %rd60, %SP, 12;
+ cvta.to.local.u64 %rd281, %rd60;
+ mov.b32 %r49, %f820;
+ shl.b32 %r181, %r49, 8;
+ or.b32 %r51, %r181, -2147483648;
+ mov.u32 %r384, 0;
+ mov.u64 %rd282, %rd25;
+ mov.u32 %r385, %r384;
+
+BB0_33:
+ .pragma "nounroll";
+ add.u64 %rd277, %SP, 12;
+ cvta.to.local.u64 %rd276, %rd277;
+ shl.b64 %rd61, %rd282, 2;
+ mov.u64 %rd62, __cudart_i2opi_f;
+ add.s64 %rd63, %rd62, %rd61;
+ ld.const.u32 %r184, [%rd63];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r182, %r184, %r51, %r385;
+ madc.hi.u32 %r385, %r184, %r51, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd281], %r182;
+ add.s32 %r384, %r384, 1;
+ cvt.s64.s32 %rd282, %r384;
+ mul.wide.s32 %rd64, %r384, 4;
+ add.s64 %rd281, %rd276, %rd64;
+ setp.ne.s32 %p27, %r384, 6;
+ @%p27 bra BB0_33;
+
+ mov.b32 %r362, %f820;
+ shr.u32 %r361, %r362, 23;
+ add.u64 %rd278, %SP, 12;
+ and.b32 %r187, %r361, 255;
+ add.s32 %r188, %r187, -128;
+ shr.u32 %r189, %r188, 5;
+ cvta.to.local.u64 %rd66, %rd278;
+ st.local.u32 [%rd66+24], %r385;
+ mov.u32 %r190, 6;
+ sub.s32 %r191, %r190, %r189;
+ mul.wide.s32 %rd67, %r191, 4;
+ add.s64 %rd15, %rd66, %rd67;
+ ld.local.u32 %r386, [%rd15];
+ ld.local.u32 %r387, [%rd15+-4];
+ and.b32 %r59, %r361, 31;
+ setp.eq.s32 %p28, %r59, 0;
+ @%p28 bra BB0_36;
+
+ mov.u32 %r192, 32;
+ sub.s32 %r193, %r192, %r59;
+ shr.u32 %r194, %r387, %r193;
+ shl.b32 %r195, %r386, %r59;
+ add.s32 %r386, %r194, %r195;
+ ld.local.u32 %r196, [%rd15+-8];
+ shr.u32 %r197, %r196, %r193;
+ shl.b32 %r198, %r387, %r59;
+ add.s32 %r387, %r197, %r198;
+
+BB0_36:
+ mov.b32 %r365, %f820;
+ and.b32 %r389, %r365, -2147483648;
+ shr.u32 %r199, %r387, 30;
+ shl.b32 %r200, %r386, 2;
+ add.s32 %r388, %r199, %r200;
+ shl.b32 %r65, %r387, 2;
+ shr.u32 %r201, %r388, 31;
+ shr.u32 %r202, %r386, 30;
+ add.s32 %r66, %r201, %r202;
+ setp.eq.s32 %p29, %r201, 0;
+ @%p29 bra BB0_37;
+ bra.uni BB0_38;
+
+BB0_37:
+ mov.u32 %r390, %r65;
+ bra.uni BB0_39;
+
+BB0_38:
+ mov.b32 %r367, %f820;
+ and.b32 %r366, %r367, -2147483648;
+ not.b32 %r203, %r388;
+ neg.s32 %r390, %r65;
+ setp.eq.s32 %p30, %r65, 0;
+ selp.u32 %r204, 1, 0, %p30;
+ add.s32 %r388, %r204, %r203;
+ xor.b32 %r389, %r366, -2147483648;
+
+BB0_39:
+ mov.b32 %r369, %f820;
+ and.b32 %r368, %r369, -2147483648;
+ clz.b32 %r392, %r388;
+ setp.eq.s32 %p31, %r392, 0;
+ shl.b32 %r205, %r388, %r392;
+ mov.u32 %r206, 32;
+ sub.s32 %r207, %r206, %r392;
+ shr.u32 %r208, %r390, %r207;
+ add.s32 %r209, %r208, %r205;
+ selp.b32 %r74, %r388, %r209, %p31;
+ mov.u32 %r210, -921707870;
+ mul.hi.u32 %r391, %r74, %r210;
+ setp.eq.s32 %p32, %r368, 0;
+ neg.s32 %r211, %r66;
+ selp.b32 %r393, %r66, %r211, %p32;
+ setp.lt.s32 %p33, %r391, 1;
+ @%p33 bra BB0_41;
+
+ mul.lo.s32 %r212, %r74, -921707870;
+ shr.u32 %r213, %r212, 31;
+ shl.b32 %r214, %r391, 1;
+ add.s32 %r391, %r213, %r214;
+ add.s32 %r392, %r392, 1;
+
+BB0_41:
+ mov.u32 %r215, 126;
+ sub.s32 %r216, %r215, %r392;
+ shl.b32 %r217, %r216, 23;
+ add.s32 %r218, %r391, 1;
+ shr.u32 %r219, %r218, 7;
+ add.s32 %r220, %r219, 1;
+ shr.u32 %r221, %r220, 1;
+ add.s32 %r222, %r221, %r217;
+ or.b32 %r223, %r222, %r389;
+ mov.b32 %f821, %r223;
+
+BB0_42:
+ and.b32 %r82, %r393, 1;
+ setp.eq.s32 %p34, %r82, 0;
+ @%p34 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mul.rn.f32 %f780, %f821, %f821;
+ mov.f32 %f331, 0f3C08839E;
+ mov.f32 %f332, 0fB94CA1F9;
+ fma.rn.f32 %f822, %f332, %f780, %f331;
+ bra.uni BB0_45;
+
+BB0_43:
+ mul.rn.f32 %f776, %f821, %f821;
+ mov.f32 %f329, 0fBAB6061A;
+ mov.f32 %f330, 0f37CCF5CE;
+ fma.rn.f32 %f822, %f330, %f776, %f329;
+
+BB0_45:
+ @%p34 bra BB0_47;
+ bra.uni BB0_46;
+
+BB0_47:
+ mul.rn.f32 %f779, %f821, %f821;
+ mov.f32 %f765, 0f00000000;
+ mov.f32 %f336, 0fBE2AAAA3;
+ fma.rn.f32 %f337, %f822, %f779, %f336;
+ fma.rn.f32 %f823, %f337, %f779, %f765;
+ bra.uni BB0_48;
+
+BB0_46:
+ mul.rn.f32 %f777, %f821, %f821;
+ mov.f32 %f333, 0f3D2AAAA5;
+ fma.rn.f32 %f334, %f822, %f777, %f333;
+ mov.f32 %f335, 0fBF000000;
+ fma.rn.f32 %f823, %f334, %f777, %f335;
+
+BB0_48:
+ fma.rn.f32 %f824, %f823, %f821, %f821;
+ @%p34 bra BB0_50;
+
+ mul.rn.f32 %f778, %f821, %f821;
+ mov.f32 %f760, 0f3F800000;
+ fma.rn.f32 %f824, %f823, %f778, %f760;
+
+BB0_50:
+ and.b32 %r224, %r393, 2;
+ setp.eq.s32 %p37, %r224, 0;
+ @%p37 bra BB0_52;
+
+ mov.f32 %f761, 0f00000000;
+ mov.f32 %f341, 0fBF800000;
+ fma.rn.f32 %f824, %f824, %f341, %f761;
+
+BB0_52:
+ mad.lo.s32 %r345, %r10, 1664525, 1013904223;
+ mad.lo.s32 %r373, %r345, 1664525, 1013904223;
+ max.f32 %f762, %f282, %f242;
+ mul.f32 %f350, %f56, %f818;
+ add.u64 %rd68, %SP, 0;
+ cvta.to.local.u64 %rd69, %rd68;
+ mul.f32 %f351, %f56, %f824;
+ mul.f32 %f352, %f13, %f351;
+ mul.f32 %f353, %f14, %f351;
+ mul.f32 %f354, %f15, %f351;
+ fma.rn.f32 %f355, %f22, %f350, %f352;
+ fma.rn.f32 %f356, %f21, %f350, %f353;
+ fma.rn.f32 %f357, %f20, %f350, %f354;
+ fma.rn.f32 %f345, %f781, %f55, %f355;
+ fma.rn.f32 %f346, %f782, %f55, %f356;
+ fma.rn.f32 %f347, %f783, %f55, %f357;
+ mov.u32 %r226, 0;
+ st.local.u32 [%rd69+8], %r226;
+ st.local.u32 [%rd69+4], %r226;
+ st.local.u32 [%rd69], %r226;
+ ld.global.u32 %r225, [root];
+ mov.f32 %f349, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r225, %f10, %f11, %f12, %f345, %f346, %f347, %r226, %f762, %f349, %rd68, %r113);
+ // inline asm
+ mul.f32 %f358, %f782, %f346;
+ fma.rn.f32 %f359, %f781, %f345, %f358;
+ fma.rn.f32 %f360, %f783, %f347, %f359;
+ ld.local.f32 %f361, [%rd69+8];
+ ld.local.f32 %f362, [%rd69+4];
+ ld.local.f32 %f363, [%rd69];
+ fma.rn.f32 %f807, %f345, %f363, %f807;
+ fma.rn.f32 %f806, %f345, %f362, %f806;
+ fma.rn.f32 %f805, %f345, %f361, %f805;
+ fma.rn.f32 %f810, %f346, %f363, %f810;
+ fma.rn.f32 %f809, %f346, %f362, %f809;
+ fma.rn.f32 %f808, %f346, %f361, %f808;
+ fma.rn.f32 %f813, %f347, %f363, %f813;
+ fma.rn.f32 %f812, %f347, %f362, %f812;
+ fma.rn.f32 %f811, %f347, %f361, %f811;
+ add.f32 %f804, %f804, %f363;
+ add.f32 %f803, %f803, %f362;
+ add.f32 %f802, %f802, %f361;
+ cvt.sat.f32.f32 %f364, %f360;
+ fma.rn.f32 %f801, %f364, %f363, %f801;
+ fma.rn.f32 %f800, %f364, %f362, %f800;
+ fma.rn.f32 %f799, %f364, %f361, %f799;
+ add.s32 %r372, %r372, 1;
+ setp.lt.s32 %p38, %r372, %r2;
+ @%p38 bra BB0_6;
+
+ mad.lo.s32 %r347, %r10, 1664525, 1013904223;
+ mad.lo.s32 %r373, %r347, 1664525, 1013904223;
+ add.s32 %r370, %r370, 1;
+ setp.lt.s32 %p39, %r370, %r2;
+ @%p39 bra BB0_5;
+
+BB0_54:
+ mul.lo.s32 %r228, %r2, %r2;
+ cvt.rn.f32.s32 %f365, %r228;
+ rcp.rn.f32 %f366, %f365;
+ cvt.rn.f32.u32 %f367, %r5;
+ cvt.rn.f32.u32 %f368, %r4;
+ tex.2d.v4.f32.f32 {%f369, %f370, %f371, %f372}, [albedoTex, {%f368, %f367}];
+ mul.f32 %f123, %f804, %f366;
+ mul.f32 %f124, %f803, %f366;
+ mul.f32 %f125, %f802, %f366;
+ mul.f32 %f126, %f807, %f366;
+ mul.f32 %f127, %f806, %f366;
+ mul.f32 %f128, %f805, %f366;
+ mul.f32 %f129, %f810, %f366;
+ mul.f32 %f130, %f809, %f366;
+ mul.f32 %f131, %f808, %f366;
+ mul.f32 %f132, %f813, %f366;
+ mul.f32 %f133, %f812, %f366;
+ mul.f32 %f134, %f811, %f366;
+ mul.f32 %f373, %f801, %f366;
+ mul.f32 %f374, %f800, %f366;
+ mul.f32 %f375, %f799, %f366;
+ fma.rn.f32 %f376, %f801, %f366, %f373;
+ fma.rn.f32 %f377, %f800, %f366, %f374;
+ fma.rn.f32 %f378, %f799, %f366, %f375;
+ mul.f32 %f135, %f376, %f369;
+ mul.f32 %f136, %f377, %f370;
+ mul.f32 %f137, %f378, %f371;
+ add.f32 %f138, %f209, %f135;
+ add.f32 %f139, %f210, %f136;
+ add.f32 %f140, %f211, %f137;
+ ld.global.u32 %r395, [imageEnabled];
+ and.b32 %r229, %r395, 1;
+ setp.eq.b32 %p40, %r229, 1;
+ @!%p40 bra BB0_89;
+ bra.uni BB0_55;
+
+BB0_55:
+ abs.f32 %f142, %f138;
+ setp.lt.f32 %p41, %f142, 0f00800000;
+ mul.f32 %f384, %f142, 0f4B800000;
+ selp.f32 %f385, 0fC3170000, 0fC2FE0000, %p41;
+ selp.f32 %f386, %f384, %f142, %p41;
+ mov.b32 %r230, %f386;
+ and.b32 %r231, %r230, 8388607;
+ or.b32 %r232, %r231, 1065353216;
+ mov.b32 %f387, %r232;
+ shr.u32 %r233, %r230, 23;
+ cvt.rn.f32.u32 %f388, %r233;
+ add.f32 %f389, %f385, %f388;
+ setp.gt.f32 %p42, %f387, 0f3FB504F3;
+ mul.f32 %f390, %f387, 0f3F000000;
+ add.f32 %f391, %f389, 0f3F800000;
+ selp.f32 %f392, %f390, %f387, %p42;
+ selp.f32 %f393, %f391, %f389, %p42;
+ add.f32 %f394, %f392, 0fBF800000;
+ add.f32 %f380, %f392, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f379,%f380;
+ // inline asm
+ add.f32 %f395, %f394, %f394;
+ mul.f32 %f396, %f379, %f395;
+ mul.f32 %f397, %f396, %f396;
+ mov.f32 %f398, 0f3C4CAF63;
+ mov.f32 %f399, 0f3B18F0FE;
+ fma.rn.f32 %f400, %f399, %f397, %f398;
+ mov.f32 %f401, 0f3DAAAABD;
+ fma.rn.f32 %f402, %f400, %f397, %f401;
+ mul.rn.f32 %f403, %f402, %f397;
+ mul.rn.f32 %f404, %f403, %f396;
+ sub.f32 %f405, %f394, %f396;
+ neg.f32 %f406, %f396;
+ add.f32 %f407, %f405, %f405;
+ fma.rn.f32 %f408, %f406, %f394, %f407;
+ mul.rn.f32 %f409, %f379, %f408;
+ add.f32 %f410, %f404, %f396;
+ sub.f32 %f411, %f396, %f410;
+ add.f32 %f412, %f404, %f411;
+ add.f32 %f413, %f409, %f412;
+ add.f32 %f414, %f410, %f413;
+ sub.f32 %f415, %f410, %f414;
+ add.f32 %f416, %f413, %f415;
+ mov.f32 %f417, 0f3F317200;
+ mul.rn.f32 %f418, %f393, %f417;
+ mov.f32 %f419, 0f35BFBE8E;
+ mul.rn.f32 %f420, %f393, %f419;
+ add.f32 %f421, %f418, %f414;
+ sub.f32 %f422, %f418, %f421;
+ add.f32 %f423, %f414, %f422;
+ add.f32 %f424, %f416, %f423;
+ add.f32 %f425, %f420, %f424;
+ add.f32 %f426, %f421, %f425;
+ sub.f32 %f427, %f421, %f426;
+ add.f32 %f428, %f425, %f427;
+ mov.f32 %f429, 0f3EE66666;
+ mul.rn.f32 %f430, %f429, %f426;
+ neg.f32 %f431, %f430;
+ fma.rn.f32 %f432, %f429, %f426, %f431;
+ fma.rn.f32 %f433, %f429, %f428, %f432;
+ mov.f32 %f434, 0f00000000;
+ fma.rn.f32 %f435, %f434, %f426, %f433;
+ add.rn.f32 %f436, %f430, %f435;
+ neg.f32 %f437, %f436;
+ add.rn.f32 %f438, %f430, %f437;
+ add.rn.f32 %f439, %f438, %f435;
+ mov.b32 %r234, %f436;
+ setp.eq.s32 %p43, %r234, 1118925336;
+ add.s32 %r235, %r234, -1;
+ mov.b32 %f440, %r235;
+ add.f32 %f441, %f439, 0f37000000;
+ selp.f32 %f442, %f440, %f436, %p43;
+ selp.f32 %f143, %f441, %f439, %p43;
+ mul.f32 %f443, %f442, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f444, %f443;
+ mov.f32 %f445, 0fBF317200;
+ fma.rn.f32 %f446, %f444, %f445, %f442;
+ mov.f32 %f447, 0fB5BFBE8E;
+ fma.rn.f32 %f448, %f444, %f447, %f446;
+ mul.f32 %f449, %f448, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f450, %f449;
+ add.f32 %f451, %f444, 0f00000000;
+ ex2.approx.f32 %f452, %f451;
+ mul.f32 %f453, %f450, %f452;
+ setp.lt.f32 %p44, %f442, 0fC2D20000;
+ selp.f32 %f454, 0f00000000, %f453, %p44;
+ setp.gt.f32 %p45, %f442, 0f42D20000;
+ selp.f32 %f841, 0f7F800000, %f454, %p45;
+ setp.eq.f32 %p46, %f841, 0f7F800000;
+ @%p46 bra BB0_57;
+
+ fma.rn.f32 %f841, %f841, %f143, %f841;
+
+BB0_57:
+ mov.f32 %f726, 0f3E666666;
+ cvt.rzi.f32.f32 %f725, %f726;
+ fma.rn.f32 %f724, %f725, 0fC0000000, 0f3EE66666;
+ abs.f32 %f723, %f724;
+ setp.lt.f32 %p47, %f138, 0f00000000;
+ setp.eq.f32 %p48, %f723, 0f3F800000;
+ and.pred %p1, %p47, %p48;
+ mov.b32 %r236, %f841;
+ xor.b32 %r237, %r236, -2147483648;
+ mov.b32 %f455, %r237;
+ selp.f32 %f843, %f455, %f841, %p1;
+ setp.eq.f32 %p49, %f138, 0f00000000;
+ @%p49 bra BB0_60;
+ bra.uni BB0_58;
+
+BB0_60:
+ add.f32 %f458, %f138, %f138;
+ selp.f32 %f843, %f458, 0f00000000, %p48;
+ bra.uni BB0_61;
+
+BB0_113:
+ mov.u64 %rd212, image_RNM0;
+ cvta.global.u64 %rd207, %rd212;
+ mov.u32 %r311, 8;
+ mov.u64 %rd211, 0;
+ // inline asm
+ call (%rd206), _rt_buffer_get_64, (%rd207, %r95, %r311, %rd18, %rd19, %rd211, %rd211);
+ // inline asm
+ mov.f32 %f701, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f701;}
+
+ // inline asm
+ mov.u16 %rs105, 0;
+ st.v4.u16 [%rd206], {%rs104, %rs104, %rs104, %rs105};
+
+BB0_114:
+ ld.global.u32 %r312, [additive];
+ setp.eq.s32 %p99, %r312, 0;
+ @%p99 bra BB0_116;
+
+ mov.u64 %rd225, image_RNM1;
+ cvta.global.u64 %rd214, %rd225;
+ mov.u32 %r316, 8;
+ mov.u64 %rd224, 0;
+ // inline asm
+ call (%rd213), _rt_buffer_get_64, (%rd214, %r95, %r316, %rd18, %rd19, %rd224, %rd224);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd213];
+ // inline asm
+ { cvt.f32.f16 %f702, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f703, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f704, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd219), _rt_buffer_get_64, (%rd214, %r95, %r316, %rd18, %rd19, %rd224, %rd224);
+ // inline asm
+ add.f32 %f705, %f702, 0f00000000;
+ add.f32 %f706, %f703, 0f00000000;
+ add.f32 %f707, %f704, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f707;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f706;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f705;}
+
+ // inline asm
+ mov.u16 %rs116, 0;
+ st.v4.u16 [%rd219], {%rs109, %rs110, %rs111, %rs116};
+ bra.uni BB0_117;
+
+BB0_116:
+ mov.u64 %rd232, image_RNM1;
+ cvta.global.u64 %rd227, %rd232;
+ mov.u32 %r318, 8;
+ mov.u64 %rd231, 0;
+ // inline asm
+ call (%rd226), _rt_buffer_get_64, (%rd227, %r95, %r318, %rd18, %rd19, %rd231, %rd231);
+ // inline asm
+ mov.f32 %f708, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f708;}
+
+ // inline asm
+ mov.u16 %rs118, 0;
+ st.v4.u16 [%rd226], {%rs117, %rs117, %rs117, %rs118};
+
+BB0_117:
+ ld.global.u32 %r319, [additive];
+ setp.eq.s32 %p100, %r319, 0;
+ @%p100 bra BB0_119;
+
+ mov.u64 %rd245, image_RNM2;
+ cvta.global.u64 %rd234, %rd245;
+ mov.u32 %r323, 8;
+ mov.u64 %rd244, 0;
+ // inline asm
+ call (%rd233), _rt_buffer_get_64, (%rd234, %r95, %r323, %rd18, %rd19, %rd244, %rd244);
+ // inline asm
+ ld.v4.u16 {%rs125, %rs126, %rs127, %rs128}, [%rd233];
+ // inline asm
+ { cvt.f32.f16 %f709, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f710, %rs126;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f711, %rs127;}
+
+ // inline asm
+ // inline asm
+ call (%rd239), _rt_buffer_get_64, (%rd234, %r95, %r323, %rd18, %rd19, %rd244, %rd244);
+ // inline asm
+ add.f32 %f712, %f709, 0f00000000;
+ add.f32 %f713, %f710, 0f00000000;
+ add.f32 %f714, %f711, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs124, %f714;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f713;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f712;}
+
+ // inline asm
+ mov.u16 %rs129, 0;
+ st.v4.u16 [%rd239], {%rs122, %rs123, %rs124, %rs129};
+ bra.uni BB0_120;
+
+BB0_119:
+ mov.u64 %rd252, image_RNM2;
+ cvta.global.u64 %rd247, %rd252;
+ mov.u32 %r325, 8;
+ mov.u64 %rd251, 0;
+ // inline asm
+ call (%rd246), _rt_buffer_get_64, (%rd247, %r95, %r325, %rd18, %rd19, %rd251, %rd251);
+ // inline asm
+ mov.f32 %f715, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f715;}
+
+ // inline asm
+ mov.u16 %rs131, 0;
+ st.v4.u16 [%rd246], {%rs130, %rs130, %rs130, %rs131};
+
+BB0_120:
+ ld.global.u32 %r326, [additive];
+ setp.eq.s32 %p101, %r326, 0;
+ @%p101 bra BB0_122;
+
+ mov.u64 %rd265, image_RNM3;
+ cvta.global.u64 %rd254, %rd265;
+ mov.u32 %r330, 8;
+ mov.u64 %rd264, 0;
+ // inline asm
+ call (%rd253), _rt_buffer_get_64, (%rd254, %r95, %r330, %rd18, %rd19, %rd264, %rd264);
+ // inline asm
+ ld.v4.u16 {%rs138, %rs139, %rs140, %rs141}, [%rd253];
+ // inline asm
+ { cvt.f32.f16 %f716, %rs138;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f717, %rs139;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f718, %rs140;}
+
+ // inline asm
+ // inline asm
+ call (%rd259), _rt_buffer_get_64, (%rd254, %r95, %r330, %rd18, %rd19, %rd264, %rd264);
+ // inline asm
+ add.f32 %f719, %f716, 0f00000000;
+ add.f32 %f720, %f717, 0f00000000;
+ add.f32 %f721, %f718, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs137, %f721;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs136, %f720;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f719;}
+
+ // inline asm
+ mov.u16 %rs142, 0;
+ st.v4.u16 [%rd259], {%rs135, %rs136, %rs137, %rs142};
+ bra.uni BB0_123;
+
+BB0_122:
+ mov.u64 %rd272, image_RNM3;
+ cvta.global.u64 %rd267, %rd272;
+ mov.u32 %r332, 8;
+ mov.u64 %rd271, 0;
+ // inline asm
+ call (%rd266), _rt_buffer_get_64, (%rd267, %r95, %r332, %rd18, %rd19, %rd271, %rd271);
+ // inline asm
+ mov.f32 %f722, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f722;}
+
+ // inline asm
+ mov.u16 %rs144, 0;
+ st.v4.u16 [%rd266], {%rs143, %rs143, %rs143, %rs144};
+ bra.uni BB0_123;
+
+BB0_58:
+ setp.geu.f32 %p50, %f138, 0f00000000;
+ @%p50 bra BB0_61;
+
+ mov.f32 %f750, 0f3EE66666;
+ cvt.rzi.f32.f32 %f457, %f750;
+ setp.neu.f32 %p51, %f457, 0f3EE66666;
+ selp.f32 %f843, 0f7FFFFFFF, %f843, %p51;
+
+BB0_61:
+ abs.f32 %f727, %f138;
+ add.f32 %f459, %f727, 0f3EE66666;
+ mov.b32 %r238, %f459;
+ setp.lt.s32 %p53, %r238, 2139095040;
+ @%p53 bra BB0_66;
+
+ abs.f32 %f748, %f138;
+ setp.gtu.f32 %p54, %f748, 0f7F800000;
+ @%p54 bra BB0_65;
+ bra.uni BB0_63;
+
+BB0_65:
+ add.f32 %f843, %f138, 0f3EE66666;
+ bra.uni BB0_66;
+
+BB0_63:
+ abs.f32 %f749, %f138;
+ setp.neu.f32 %p55, %f749, 0f7F800000;
+ @%p55 bra BB0_66;
+
+ selp.f32 %f843, 0fFF800000, 0f7F800000, %p1;
+
+BB0_66:
+ mov.f32 %f736, 0fB5BFBE8E;
+ mov.f32 %f735, 0fBF317200;
+ mov.f32 %f734, 0f00000000;
+ mov.f32 %f733, 0f35BFBE8E;
+ mov.f32 %f732, 0f3F317200;
+ mov.f32 %f731, 0f3DAAAABD;
+ mov.f32 %f730, 0f3C4CAF63;
+ mov.f32 %f729, 0f3B18F0FE;
+ mov.f32 %f728, 0f3EE66666;
+ setp.eq.f32 %p56, %f138, 0f3F800000;
+ selp.f32 %f154, 0f3F800000, %f843, %p56;
+ abs.f32 %f155, %f139;
+ setp.lt.f32 %p57, %f155, 0f00800000;
+ mul.f32 %f462, %f155, 0f4B800000;
+ selp.f32 %f463, 0fC3170000, 0fC2FE0000, %p57;
+ selp.f32 %f464, %f462, %f155, %p57;
+ mov.b32 %r239, %f464;
+ and.b32 %r240, %r239, 8388607;
+ or.b32 %r241, %r240, 1065353216;
+ mov.b32 %f465, %r241;
+ shr.u32 %r242, %r239, 23;
+ cvt.rn.f32.u32 %f466, %r242;
+ add.f32 %f467, %f463, %f466;
+ setp.gt.f32 %p58, %f465, 0f3FB504F3;
+ mul.f32 %f468, %f465, 0f3F000000;
+ add.f32 %f469, %f467, 0f3F800000;
+ selp.f32 %f470, %f468, %f465, %p58;
+ selp.f32 %f471, %f469, %f467, %p58;
+ add.f32 %f472, %f470, 0fBF800000;
+ add.f32 %f461, %f470, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f460,%f461;
+ // inline asm
+ add.f32 %f473, %f472, %f472;
+ mul.f32 %f474, %f460, %f473;
+ mul.f32 %f475, %f474, %f474;
+ fma.rn.f32 %f478, %f729, %f475, %f730;
+ fma.rn.f32 %f480, %f478, %f475, %f731;
+ mul.rn.f32 %f481, %f480, %f475;
+ mul.rn.f32 %f482, %f481, %f474;
+ sub.f32 %f483, %f472, %f474;
+ neg.f32 %f484, %f474;
+ add.f32 %f485, %f483, %f483;
+ fma.rn.f32 %f486, %f484, %f472, %f485;
+ mul.rn.f32 %f487, %f460, %f486;
+ add.f32 %f488, %f482, %f474;
+ sub.f32 %f489, %f474, %f488;
+ add.f32 %f490, %f482, %f489;
+ add.f32 %f491, %f487, %f490;
+ add.f32 %f492, %f488, %f491;
+ sub.f32 %f493, %f488, %f492;
+ add.f32 %f494, %f491, %f493;
+ mul.rn.f32 %f496, %f471, %f732;
+ mul.rn.f32 %f498, %f471, %f733;
+ add.f32 %f499, %f496, %f492;
+ sub.f32 %f500, %f496, %f499;
+ add.f32 %f501, %f492, %f500;
+ add.f32 %f502, %f494, %f501;
+ add.f32 %f503, %f498, %f502;
+ add.f32 %f504, %f499, %f503;
+ sub.f32 %f505, %f499, %f504;
+ add.f32 %f506, %f503, %f505;
+ mul.rn.f32 %f508, %f728, %f504;
+ neg.f32 %f509, %f508;
+ fma.rn.f32 %f510, %f728, %f504, %f509;
+ fma.rn.f32 %f511, %f728, %f506, %f510;
+ fma.rn.f32 %f513, %f734, %f504, %f511;
+ add.rn.f32 %f514, %f508, %f513;
+ neg.f32 %f515, %f514;
+ add.rn.f32 %f516, %f508, %f515;
+ add.rn.f32 %f517, %f516, %f513;
+ mov.b32 %r243, %f514;
+ setp.eq.s32 %p59, %r243, 1118925336;
+ add.s32 %r244, %r243, -1;
+ mov.b32 %f518, %r244;
+ add.f32 %f519, %f517, 0f37000000;
+ selp.f32 %f520, %f518, %f514, %p59;
+ selp.f32 %f156, %f519, %f517, %p59;
+ mul.f32 %f521, %f520, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f522, %f521;
+ fma.rn.f32 %f524, %f522, %f735, %f520;
+ fma.rn.f32 %f526, %f522, %f736, %f524;
+ mul.f32 %f527, %f526, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f528, %f527;
+ add.f32 %f529, %f522, 0f00000000;
+ ex2.approx.f32 %f530, %f529;
+ mul.f32 %f531, %f528, %f530;
+ setp.lt.f32 %p60, %f520, 0fC2D20000;
+ selp.f32 %f532, 0f00000000, %f531, %p60;
+ setp.gt.f32 %p61, %f520, 0f42D20000;
+ selp.f32 %f844, 0f7F800000, %f532, %p61;
+ setp.eq.f32 %p62, %f844, 0f7F800000;
+ @%p62 bra BB0_68;
+
+ fma.rn.f32 %f844, %f844, %f156, %f844;
+
+BB0_68:
+ setp.lt.f32 %p63, %f139, 0f00000000;
+ and.pred %p2, %p63, %p48;
+ mov.b32 %r245, %f844;
+ xor.b32 %r246, %r245, -2147483648;
+ mov.b32 %f533, %r246;
+ selp.f32 %f846, %f533, %f844, %p2;
+ setp.eq.f32 %p65, %f139, 0f00000000;
+ @%p65 bra BB0_71;
+ bra.uni BB0_69;
+
+BB0_71:
+ add.f32 %f536, %f139, %f139;
+ selp.f32 %f846, %f536, 0f00000000, %p48;
+ bra.uni BB0_72;
+
+BB0_69:
+ setp.geu.f32 %p66, %f139, 0f00000000;
+ @%p66 bra BB0_72;
+
+ mov.f32 %f747, 0f3EE66666;
+ cvt.rzi.f32.f32 %f535, %f747;
+ setp.neu.f32 %p67, %f535, 0f3EE66666;
+ selp.f32 %f846, 0f7FFFFFFF, %f846, %p67;
+
+BB0_72:
+ abs.f32 %f751, %f139;
+ add.f32 %f537, %f751, 0f3EE66666;
+ mov.b32 %r247, %f537;
+ setp.lt.s32 %p69, %r247, 2139095040;
+ @%p69 bra BB0_77;
+
+ abs.f32 %f752, %f139;
+ setp.gtu.f32 %p70, %f752, 0f7F800000;
+ @%p70 bra BB0_76;
+ bra.uni BB0_74;
+
+BB0_76:
+ add.f32 %f846, %f139, 0f3EE66666;
+ bra.uni BB0_77;
+
+BB0_74:
+ abs.f32 %f753, %f139;
+ setp.neu.f32 %p71, %f753, 0f7F800000;
+ @%p71 bra BB0_77;
+
+ selp.f32 %f846, 0fFF800000, 0f7F800000, %p2;
+
+BB0_77:
+ mov.f32 %f745, 0fB5BFBE8E;
+ mov.f32 %f744, 0fBF317200;
+ mov.f32 %f743, 0f00000000;
+ mov.f32 %f742, 0f35BFBE8E;
+ mov.f32 %f741, 0f3F317200;
+ mov.f32 %f740, 0f3DAAAABD;
+ mov.f32 %f739, 0f3C4CAF63;
+ mov.f32 %f738, 0f3B18F0FE;
+ mov.f32 %f737, 0f3EE66666;
+ setp.eq.f32 %p72, %f139, 0f3F800000;
+ selp.f32 %f167, 0f3F800000, %f846, %p72;
+ abs.f32 %f168, %f140;
+ setp.lt.f32 %p73, %f168, 0f00800000;
+ mul.f32 %f540, %f168, 0f4B800000;
+ selp.f32 %f541, 0fC3170000, 0fC2FE0000, %p73;
+ selp.f32 %f542, %f540, %f168, %p73;
+ mov.b32 %r248, %f542;
+ and.b32 %r249, %r248, 8388607;
+ or.b32 %r250, %r249, 1065353216;
+ mov.b32 %f543, %r250;
+ shr.u32 %r251, %r248, 23;
+ cvt.rn.f32.u32 %f544, %r251;
+ add.f32 %f545, %f541, %f544;
+ setp.gt.f32 %p74, %f543, 0f3FB504F3;
+ mul.f32 %f546, %f543, 0f3F000000;
+ add.f32 %f547, %f545, 0f3F800000;
+ selp.f32 %f548, %f546, %f543, %p74;
+ selp.f32 %f549, %f547, %f545, %p74;
+ add.f32 %f550, %f548, 0fBF800000;
+ add.f32 %f539, %f548, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f538,%f539;
+ // inline asm
+ add.f32 %f551, %f550, %f550;
+ mul.f32 %f552, %f538, %f551;
+ mul.f32 %f553, %f552, %f552;
+ fma.rn.f32 %f556, %f738, %f553, %f739;
+ fma.rn.f32 %f558, %f556, %f553, %f740;
+ mul.rn.f32 %f559, %f558, %f553;
+ mul.rn.f32 %f560, %f559, %f552;
+ sub.f32 %f561, %f550, %f552;
+ neg.f32 %f562, %f552;
+ add.f32 %f563, %f561, %f561;
+ fma.rn.f32 %f564, %f562, %f550, %f563;
+ mul.rn.f32 %f565, %f538, %f564;
+ add.f32 %f566, %f560, %f552;
+ sub.f32 %f567, %f552, %f566;
+ add.f32 %f568, %f560, %f567;
+ add.f32 %f569, %f565, %f568;
+ add.f32 %f570, %f566, %f569;
+ sub.f32 %f571, %f566, %f570;
+ add.f32 %f572, %f569, %f571;
+ mul.rn.f32 %f574, %f549, %f741;
+ mul.rn.f32 %f576, %f549, %f742;
+ add.f32 %f577, %f574, %f570;
+ sub.f32 %f578, %f574, %f577;
+ add.f32 %f579, %f570, %f578;
+ add.f32 %f580, %f572, %f579;
+ add.f32 %f581, %f576, %f580;
+ add.f32 %f582, %f577, %f581;
+ sub.f32 %f583, %f577, %f582;
+ add.f32 %f584, %f581, %f583;
+ mul.rn.f32 %f586, %f737, %f582;
+ neg.f32 %f587, %f586;
+ fma.rn.f32 %f588, %f737, %f582, %f587;
+ fma.rn.f32 %f589, %f737, %f584, %f588;
+ fma.rn.f32 %f591, %f743, %f582, %f589;
+ add.rn.f32 %f592, %f586, %f591;
+ neg.f32 %f593, %f592;
+ add.rn.f32 %f594, %f586, %f593;
+ add.rn.f32 %f595, %f594, %f591;
+ mov.b32 %r252, %f592;
+ setp.eq.s32 %p75, %r252, 1118925336;
+ add.s32 %r253, %r252, -1;
+ mov.b32 %f596, %r253;
+ add.f32 %f597, %f595, 0f37000000;
+ selp.f32 %f598, %f596, %f592, %p75;
+ selp.f32 %f169, %f597, %f595, %p75;
+ mul.f32 %f599, %f598, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f600, %f599;
+ fma.rn.f32 %f602, %f600, %f744, %f598;
+ fma.rn.f32 %f604, %f600, %f745, %f602;
+ mul.f32 %f605, %f604, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f606, %f605;
+ add.f32 %f607, %f600, 0f00000000;
+ ex2.approx.f32 %f608, %f607;
+ mul.f32 %f609, %f606, %f608;
+ setp.lt.f32 %p76, %f598, 0fC2D20000;
+ selp.f32 %f610, 0f00000000, %f609, %p76;
+ setp.gt.f32 %p77, %f598, 0f42D20000;
+ selp.f32 %f847, 0f7F800000, %f610, %p77;
+ setp.eq.f32 %p78, %f847, 0f7F800000;
+ @%p78 bra BB0_79;
+
+ fma.rn.f32 %f847, %f847, %f169, %f847;
+
+BB0_79:
+ setp.lt.f32 %p79, %f140, 0f00000000;
+ and.pred %p3, %p79, %p48;
+ mov.b32 %r254, %f847;
+ xor.b32 %r255, %r254, -2147483648;
+ mov.b32 %f611, %r255;
+ selp.f32 %f849, %f611, %f847, %p3;
+ setp.eq.f32 %p81, %f140, 0f00000000;
+ @%p81 bra BB0_82;
+ bra.uni BB0_80;
+
+BB0_82:
+ add.f32 %f614, %f140, %f140;
+ selp.f32 %f849, %f614, 0f00000000, %p48;
+ bra.uni BB0_83;
+
+BB0_80:
+ setp.geu.f32 %p82, %f140, 0f00000000;
+ @%p82 bra BB0_83;
+
+ mov.f32 %f746, 0f3EE66666;
+ cvt.rzi.f32.f32 %f613, %f746;
+ setp.neu.f32 %p83, %f613, 0f3EE66666;
+ selp.f32 %f849, 0f7FFFFFFF, %f849, %p83;
+
+BB0_83:
+ abs.f32 %f773, %f140;
+ add.f32 %f615, %f773, 0f3EE66666;
+ mov.b32 %r256, %f615;
+ setp.lt.s32 %p85, %r256, 2139095040;
+ @%p85 bra BB0_88;
+
+ abs.f32 %f774, %f140;
+ setp.gtu.f32 %p86, %f774, 0f7F800000;
+ @%p86 bra BB0_87;
+ bra.uni BB0_85;
+
+BB0_87:
+ add.f32 %f849, %f140, 0f3EE66666;
+ bra.uni BB0_88;
+
+BB0_85:
+ abs.f32 %f775, %f140;
+ setp.neu.f32 %p87, %f775, 0f7F800000;
+ @%p87 bra BB0_88;
+
+ selp.f32 %f849, 0fFF800000, 0f7F800000, %p3;
+
+BB0_88:
+ mov.u32 %r333, 4;
+ setp.eq.f32 %p88, %f140, 0f3F800000;
+ selp.f32 %f616, 0f3F800000, %f849, %p88;
+ cvt.u64.u32 %rd74, %r5;
+ cvt.u64.u32 %rd73, %r4;
+ mov.u64 %rd77, image;
+ cvta.global.u64 %rd72, %rd77;
+ // inline asm
+ call (%rd71), _rt_buffer_get_64, (%rd72, %r95, %r333, %rd73, %rd74, %rd25, %rd25);
+ // inline asm
+ cvt.sat.f32.f32 %f617, %f616;
+ mul.f32 %f618, %f617, 0f437FFD71;
+ cvt.rzi.u32.f32 %r259, %f618;
+ cvt.sat.f32.f32 %f619, %f167;
+ mul.f32 %f620, %f619, 0f437FFD71;
+ cvt.rzi.u32.f32 %r260, %f620;
+ cvt.sat.f32.f32 %f621, %f154;
+ mul.f32 %f622, %f621, 0f437FFD71;
+ cvt.rzi.u32.f32 %r261, %f622;
+ cvt.u16.u32 %rs20, %r259;
+ cvt.u16.u32 %rs21, %r261;
+ cvt.u16.u32 %rs22, %r260;
+ mov.u16 %rs23, 255;
+ st.v4.u8 [%rd71], {%rs20, %rs22, %rs21, %rs23};
+ ld.global.u32 %r395, [imageEnabled];
+
+BB0_89:
+ and.b32 %r262, %r395, 4;
+ setp.eq.s32 %p89, %r262, 0;
+ @%p89 bra BB0_91;
+
+ mov.u32 %r334, 8;
+ cvt.u64.u32 %rd80, %r4;
+ cvt.u64.u32 %rd81, %r5;
+ mov.u64 %rd84, image_HDR;
+ cvta.global.u64 %rd79, %rd84;
+ // inline asm
+ call (%rd78), _rt_buffer_get_64, (%rd79, %r95, %r334, %rd80, %rd81, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f626, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f626;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f140;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f139;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f138;}
+
+ // inline asm
+ st.v4.u16 [%rd78], {%rs24, %rs25, %rs26, %rs27};
+ ld.global.u32 %r395, [imageEnabled];
+
+BB0_91:
+ and.b32 %r265, %r395, 16;
+ setp.eq.s32 %p90, %r265, 0;
+ @%p90 bra BB0_93;
+
+ mov.u32 %r335, 8;
+ cvt.u64.u32 %rd88, %r5;
+ cvt.u64.u32 %rd87, %r4;
+ mov.u64 %rd91, image_HDR2;
+ cvta.global.u64 %rd86, %rd91;
+ // inline asm
+ call (%rd85), _rt_buffer_get_64, (%rd86, %r95, %r335, %rd87, %rd88, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f630, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f630;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f137;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f136;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f135;}
+
+ // inline asm
+ st.v4.u16 [%rd85], {%rs28, %rs29, %rs30, %rs31};
+
+BB0_93:
+ cvt.u64.u32 %rd16, %r4;
+ cvt.u64.u32 %rd17, %r5;
+ mul.f32 %f180, %f123, 0f3F000000;
+ mul.f32 %f181, %f124, 0f3F000000;
+ mul.f32 %f182, %f125, 0f3F000000;
+ ld.global.u32 %r268, [additive];
+ setp.eq.s32 %p91, %r268, 0;
+ mov.f32 %f631, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f631;}
+
+ // inline asm
+ @%p91 bra BB0_95;
+
+ mov.u32 %r336, 8;
+ mov.u64 %rd104, image_RNM0;
+ cvta.global.u64 %rd93, %rd104;
+ // inline asm
+ call (%rd92), _rt_buffer_get_64, (%rd93, %r95, %r336, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs39, %rs40, %rs41, %rs42}, [%rd92];
+ // inline asm
+ { cvt.f32.f16 %f632, %rs39;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f633, %rs40;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f634, %rs41;}
+
+ // inline asm
+ // inline asm
+ call (%rd98), _rt_buffer_get_64, (%rd93, %r95, %r336, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f635, %f180, %f632;
+ add.f32 %f636, %f181, %f633;
+ add.f32 %f637, %f182, %f634;
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f637;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f636;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f635;}
+
+ // inline asm
+ st.v4.u16 [%rd98], {%rs36, %rs37, %rs38, %rs32};
+ bra.uni BB0_96;
+
+BB0_95:
+ mov.u32 %r343, 8;
+ mov.u64 %rd111, image_RNM0;
+ cvta.global.u64 %rd106, %rd111;
+ // inline asm
+ call (%rd105), _rt_buffer_get_64, (%rd106, %r95, %r343, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f182;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f181;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f180;}
+
+ // inline asm
+ st.v4.u16 [%rd105], {%rs43, %rs44, %rs45, %rs32};
+
+BB0_96:
+ mov.f32 %f642, 0f34000000;
+ max.f32 %f643, %f180, %f642;
+ mul.f32 %f644, %f126, 0f3F000000;
+ div.rn.f32 %f645, %f644, %f643;
+ max.f32 %f646, %f181, %f642;
+ mul.f32 %f647, %f127, 0f3F000000;
+ div.rn.f32 %f648, %f647, %f646;
+ max.f32 %f649, %f182, %f642;
+ mul.f32 %f650, %f128, 0f3F000000;
+ div.rn.f32 %f651, %f650, %f649;
+ fma.rn.f32 %f183, %f645, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f184, %f648, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f185, %f651, 0f3F000000, 0f3F000000;
+ mul.f32 %f652, %f129, 0f3F000000;
+ div.rn.f32 %f653, %f652, %f643;
+ mul.f32 %f654, %f130, 0f3F000000;
+ div.rn.f32 %f655, %f654, %f646;
+ mul.f32 %f656, %f131, 0f3F000000;
+ div.rn.f32 %f657, %f656, %f649;
+ fma.rn.f32 %f186, %f653, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f187, %f655, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f188, %f657, 0f3F000000, 0f3F000000;
+ mul.f32 %f658, %f132, 0f3F000000;
+ div.rn.f32 %f659, %f658, %f643;
+ mul.f32 %f660, %f133, 0f3F000000;
+ div.rn.f32 %f661, %f660, %f646;
+ mul.f32 %f662, %f134, 0f3F000000;
+ div.rn.f32 %f663, %f662, %f649;
+ fma.rn.f32 %f189, %f659, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f190, %f661, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f191, %f663, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r275, [additive];
+ setp.eq.s32 %p92, %r275, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f631;}
+
+ // inline asm
+ @%p92 bra BB0_98;
+
+ mov.u32 %r337, 8;
+ mov.u64 %rd124, image_RNM1;
+ cvta.global.u64 %rd113, %rd124;
+ // inline asm
+ call (%rd112), _rt_buffer_get_64, (%rd113, %r95, %r337, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs53, %rs54, %rs55, %rs56}, [%rd112];
+ // inline asm
+ { cvt.f32.f16 %f664, %rs53;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f665, %rs54;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f666, %rs55;}
+
+ // inline asm
+ // inline asm
+ call (%rd118), _rt_buffer_get_64, (%rd113, %r95, %r337, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f667, %f183, %f664;
+ add.f32 %f668, %f184, %f665;
+ add.f32 %f669, %f185, %f666;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f669;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f668;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f667;}
+
+ // inline asm
+ st.v4.u16 [%rd118], {%rs50, %rs51, %rs52, %rs46};
+ bra.uni BB0_99;
+
+BB0_98:
+ mov.u32 %r342, 8;
+ mov.u64 %rd131, image_RNM1;
+ cvta.global.u64 %rd126, %rd131;
+ // inline asm
+ call (%rd125), _rt_buffer_get_64, (%rd126, %r95, %r342, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f185;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f184;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f183;}
+
+ // inline asm
+ st.v4.u16 [%rd125], {%rs57, %rs58, %rs59, %rs46};
+
+BB0_99:
+ ld.global.u32 %r282, [additive];
+ setp.eq.s32 %p93, %r282, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f631;}
+
+ // inline asm
+ @%p93 bra BB0_101;
+
+ mov.u32 %r338, 8;
+ mov.u64 %rd144, image_RNM2;
+ cvta.global.u64 %rd133, %rd144;
+ // inline asm
+ call (%rd132), _rt_buffer_get_64, (%rd133, %r95, %r338, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd132];
+ // inline asm
+ { cvt.f32.f16 %f674, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f675, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f676, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd138), _rt_buffer_get_64, (%rd133, %r95, %r338, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f677, %f186, %f674;
+ add.f32 %f678, %f187, %f675;
+ add.f32 %f679, %f188, %f676;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f679;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f678;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f677;}
+
+ // inline asm
+ st.v4.u16 [%rd138], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_102;
+
+BB0_101:
+ mov.u32 %r341, 8;
+ mov.u64 %rd151, image_RNM2;
+ cvta.global.u64 %rd146, %rd151;
+ // inline asm
+ call (%rd145), _rt_buffer_get_64, (%rd146, %r95, %r341, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f188;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f187;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f186;}
+
+ // inline asm
+ st.v4.u16 [%rd145], {%rs71, %rs72, %rs73, %rs60};
+
+BB0_102:
+ ld.global.u32 %r289, [additive];
+ setp.eq.s32 %p94, %r289, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f631;}
+
+ // inline asm
+ @%p94 bra BB0_104;
+
+ mov.u32 %r339, 8;
+ mov.u64 %rd164, image_RNM3;
+ cvta.global.u64 %rd153, %rd164;
+ // inline asm
+ call (%rd152), _rt_buffer_get_64, (%rd153, %r95, %r339, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs81, %rs82, %rs83, %rs84}, [%rd152];
+ // inline asm
+ { cvt.f32.f16 %f684, %rs81;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f685, %rs82;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f686, %rs83;}
+
+ // inline asm
+ // inline asm
+ call (%rd158), _rt_buffer_get_64, (%rd153, %r95, %r339, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f687, %f189, %f684;
+ add.f32 %f688, %f190, %f685;
+ add.f32 %f689, %f191, %f686;
+ // inline asm
+ { cvt.rn.f16.f32 %rs80, %f689;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs79, %f688;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f687;}
+
+ // inline asm
+ st.v4.u16 [%rd158], {%rs78, %rs79, %rs80, %rs74};
+ bra.uni BB0_123;
+
+BB0_104:
+ mov.u32 %r340, 8;
+ mov.u64 %rd171, image_RNM3;
+ cvta.global.u64 %rd166, %rd171;
+ // inline asm
+ call (%rd165), _rt_buffer_get_64, (%rd166, %r95, %r340, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f191;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f190;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f189;}
+
+ // inline asm
+ st.v4.u16 [%rd165], {%rs85, %rs86, %rs87, %rs74};
+
+BB0_123:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIProbeSH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIProbeSH.ptx.meta
new file mode 100644
index 00000000..73e84e0f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIProbeSH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e693de86f9494154fa7c323b3888e9af
+timeCreated: 1551461328
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIRNM.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIRNM.ptx
new file mode 100644
index 00000000..65e05d9c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIRNM.ptx
@@ -0,0 +1,2088 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 uvtangent[1];
+.global .align 8 .b8 texCoords[8];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 1 .b8 lightmapDirect[1];
+.global .texref albedoTex;
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<110>;
+ .reg .b16 %rs<144>;
+ .reg .f32 %f<955>;
+ .reg .b32 %r<413>;
+ .reg .b64 %rd<278>;
+
+
+ mov.u64 %rd277, __local_depot0;
+ cvta.local.u64 %SP, %rd277;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r102, %r103}, [pixelID];
+ cvt.u64.u32 %rd24, %r102;
+ cvt.u64.u32 %rd25, %r103;
+ mov.u64 %rd28, uvnormal;
+ cvta.global.u64 %rd23, %rd28;
+ mov.u32 %r100, 2;
+ mov.u32 %r101, 4;
+ mov.u64 %rd27, 0;
+ // inline asm
+ call (%rd22), _rt_buffer_get_64, (%rd23, %r100, %r101, %rd24, %rd25, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r2, [%rd22];
+ shr.u32 %r106, %r2, 16;
+ cvt.u16.u32 %rs1, %r106;
+ and.b16 %rs5, %rs1, 255;
+ cvt.u16.u32 %rs6, %r2;
+ or.b16 %rs7, %rs6, %rs5;
+ setp.eq.s16 %p4, %rs7, 0;
+ mov.f32 %f886, 0f00000000;
+ mov.f32 %f887, %f886;
+ mov.f32 %f888, %f886;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs8, [%rd22+1];
+ and.b16 %rs10, %rs6, 255;
+ cvt.rn.f32.u16 %f210, %rs10;
+ div.rn.f32 %f211, %f210, 0f437F0000;
+ fma.rn.f32 %f212, %f211, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f213, %rs8;
+ div.rn.f32 %f214, %f213, 0f437F0000;
+ fma.rn.f32 %f215, %f214, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f216, %rs5;
+ div.rn.f32 %f217, %f216, 0f437F0000;
+ fma.rn.f32 %f218, %f217, 0f40000000, 0fBF800000;
+ mul.f32 %f219, %f215, %f215;
+ fma.rn.f32 %f220, %f212, %f212, %f219;
+ fma.rn.f32 %f221, %f218, %f218, %f220;
+ sqrt.rn.f32 %f222, %f221;
+ rcp.rn.f32 %f223, %f222;
+ mul.f32 %f886, %f212, %f223;
+ mul.f32 %f887, %f215, %f223;
+ mul.f32 %f888, %f218, %f223;
+
+BB0_2:
+ ld.global.v2.u32 {%r107, %r108}, [pixelID];
+ ld.global.v2.u32 {%r110, %r111}, [tileInfo];
+ add.s32 %r3, %r107, %r110;
+ add.s32 %r4, %r108, %r111;
+ setp.eq.f32 %p5, %f887, 0f00000000;
+ setp.eq.f32 %p6, %f886, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f888, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_108;
+ bra.uni BB0_3;
+
+BB0_108:
+ ld.global.u32 %r412, [imageEnabled];
+ and.b32 %r312, %r412, 1;
+ setp.eq.b32 %p103, %r312, 1;
+ @!%p103 bra BB0_110;
+ bra.uni BB0_109;
+
+BB0_109:
+ cvt.u64.u32 %rd177, %r3;
+ cvt.u64.u32 %rd178, %r4;
+ mov.u64 %rd181, image;
+ cvta.global.u64 %rd176, %rd181;
+ mov.u64 %rd180, 0;
+ // inline asm
+ call (%rd175), _rt_buffer_get_64, (%rd176, %r100, %r101, %rd177, %rd178, %rd180, %rd180);
+ // inline asm
+ mov.u16 %rs100, 0;
+ st.v4.u8 [%rd175], {%rs100, %rs100, %rs100, %rs100};
+ ld.global.u32 %r412, [imageEnabled];
+
+BB0_110:
+ and.b32 %r315, %r412, 4;
+ setp.eq.s32 %p104, %r315, 0;
+ @%p104 bra BB0_112;
+
+ cvt.u64.u32 %rd184, %r3;
+ cvt.u64.u32 %rd185, %r4;
+ mov.u64 %rd188, image_HDR;
+ cvta.global.u64 %rd183, %rd188;
+ mov.u32 %r317, 8;
+ mov.u64 %rd187, 0;
+ // inline asm
+ call (%rd182), _rt_buffer_get_64, (%rd183, %r100, %r317, %rd184, %rd185, %rd187, %rd187);
+ // inline asm
+ mov.f32 %f801, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs101, %f801;}
+
+ // inline asm
+ mov.u16 %rs102, 0;
+ st.v4.u16 [%rd182], {%rs101, %rs101, %rs101, %rs102};
+ ld.global.u32 %r412, [imageEnabled];
+
+BB0_112:
+ and.b32 %r318, %r412, 16;
+ setp.eq.s32 %p105, %r318, 0;
+ @%p105 bra BB0_114;
+
+ cvt.u64.u32 %rd192, %r4;
+ cvt.u64.u32 %rd191, %r3;
+ mov.u64 %rd195, image_HDR2;
+ cvta.global.u64 %rd190, %rd195;
+ mov.u32 %r320, 8;
+ mov.u64 %rd194, 0;
+ // inline asm
+ call (%rd189), _rt_buffer_get_64, (%rd190, %r100, %r320, %rd191, %rd192, %rd194, %rd194);
+ // inline asm
+ mov.f32 %f802, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs103, %f802;}
+
+ // inline asm
+ mov.u16 %rs104, 0;
+ st.v4.u16 [%rd189], {%rs103, %rs103, %rs103, %rs104};
+
+BB0_114:
+ cvt.u64.u32 %rd20, %r3;
+ cvt.u64.u32 %rd21, %r4;
+ ld.global.u32 %r321, [additive];
+ setp.eq.s32 %p106, %r321, 0;
+ @%p106 bra BB0_116;
+
+ mov.u64 %rd208, image_RNM0;
+ cvta.global.u64 %rd197, %rd208;
+ mov.u32 %r325, 8;
+ mov.u64 %rd207, 0;
+ // inline asm
+ call (%rd196), _rt_buffer_get_64, (%rd197, %r100, %r325, %rd20, %rd21, %rd207, %rd207);
+ // inline asm
+ ld.v4.u16 {%rs111, %rs112, %rs113, %rs114}, [%rd196];
+ // inline asm
+ { cvt.f32.f16 %f803, %rs111;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f804, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f805, %rs113;}
+
+ // inline asm
+ // inline asm
+ call (%rd202), _rt_buffer_get_64, (%rd197, %r100, %r325, %rd20, %rd21, %rd207, %rd207);
+ // inline asm
+ add.f32 %f806, %f803, 0f00000000;
+ add.f32 %f807, %f804, 0f00000000;
+ add.f32 %f808, %f805, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f808;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f807;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs108, %f806;}
+
+ // inline asm
+ mov.u16 %rs115, 0;
+ st.v4.u16 [%rd202], {%rs108, %rs109, %rs110, %rs115};
+ bra.uni BB0_117;
+
+BB0_3:
+ ld.global.v2.u32 {%r123, %r124}, [pixelID];
+ cvt.u64.u32 %rd31, %r123;
+ cvt.u64.u32 %rd32, %r124;
+ mov.u64 %rd53, lightmapDirect;
+ cvta.global.u64 %rd30, %rd53;
+ mov.u32 %r116, 8;
+ // inline asm
+ call (%rd29), _rt_buffer_get_64, (%rd30, %r100, %r116, %rd31, %rd32, %rd27, %rd27);
+ // inline asm
+ ld.v4.u16 {%rs15, %rs16, %rs17, %rs18}, [%rd29];
+ // inline asm
+ { cvt.f32.f16 %f224, %rs15;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f225, %rs16;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f226, %rs17;}
+
+ // inline asm
+ ld.global.v2.u32 {%r127, %r128}, [pixelID];
+ cvt.u64.u32 %rd37, %r127;
+ cvt.u64.u32 %rd38, %r128;
+ mov.u64 %rd54, uvpos;
+ cvta.global.u64 %rd36, %rd54;
+ mov.u32 %r118, 12;
+ // inline asm
+ call (%rd35), _rt_buffer_get_64, (%rd36, %r100, %r118, %rd37, %rd38, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f230, [%rd35+8];
+ ld.f32 %f231, [%rd35+4];
+ ld.f32 %f232, [%rd35];
+ mul.f32 %f233, %f232, 0f3456BF95;
+ mul.f32 %f234, %f231, 0f3456BF95;
+ mul.f32 %f235, %f230, 0f3456BF95;
+ abs.f32 %f236, %f886;
+ div.rn.f32 %f237, %f233, %f236;
+ abs.f32 %f238, %f887;
+ div.rn.f32 %f239, %f234, %f238;
+ abs.f32 %f240, %f888;
+ div.rn.f32 %f241, %f235, %f240;
+ abs.f32 %f242, %f237;
+ abs.f32 %f243, %f239;
+ abs.f32 %f244, %f241;
+ mov.f32 %f245, 0f38D1B717;
+ max.f32 %f246, %f242, %f245;
+ max.f32 %f247, %f243, %f245;
+ max.f32 %f248, %f244, %f245;
+ fma.rn.f32 %f10, %f886, %f246, %f232;
+ fma.rn.f32 %f11, %f887, %f247, %f231;
+ fma.rn.f32 %f12, %f888, %f248, %f230;
+ setp.gt.f32 %p10, %f236, %f240;
+ neg.f32 %f249, %f887;
+ selp.f32 %f250, %f249, 0f00000000, %p10;
+ neg.f32 %f251, %f888;
+ selp.f32 %f252, %f886, %f251, %p10;
+ selp.f32 %f253, 0f00000000, %f887, %p10;
+ mul.f32 %f254, %f252, %f252;
+ fma.rn.f32 %f255, %f250, %f250, %f254;
+ fma.rn.f32 %f256, %f253, %f253, %f255;
+ sqrt.rn.f32 %f257, %f256;
+ rcp.rn.f32 %f258, %f257;
+ mul.f32 %f13, %f250, %f258;
+ mul.f32 %f14, %f252, %f258;
+ mul.f32 %f15, %f253, %f258;
+ ld.global.v2.u32 {%r131, %r132}, [pixelID];
+ cvt.u64.u32 %rd43, %r131;
+ cvt.u64.u32 %rd44, %r132;
+ mov.u64 %rd55, rnd_seeds;
+ cvta.global.u64 %rd42, %rd55;
+ // inline asm
+ call (%rd41), _rt_buffer_get_64, (%rd42, %r100, %r101, %rd43, %rd44, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r388, [%rd41];
+ ld.global.v2.u32 {%r135, %r136}, [pixelID];
+ cvt.u64.u32 %rd49, %r135;
+ cvt.u64.u32 %rd50, %r136;
+ mov.u64 %rd56, uvtangent;
+ cvta.global.u64 %rd48, %rd56;
+ // inline asm
+ call (%rd47), _rt_buffer_get_64, (%rd48, %r100, %r101, %rd49, %rd50, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r6, [%rd47];
+ shr.u32 %r7, %r6, 16;
+ cvt.u16.u32 %rs19, %r7;
+ and.b16 %rs20, %rs19, 255;
+ cvt.u16.u32 %rs21, %r6;
+ or.b16 %rs22, %rs21, %rs20;
+ setp.eq.s16 %p11, %rs22, 0;
+ mov.f32 %f892, 0f00000000;
+ mov.f32 %f889, %f892;
+ mov.f32 %f890, %f892;
+ mov.f32 %f891, %f892;
+ @%p11 bra BB0_5;
+
+ ld.u8 %rs23, [%rd47+1];
+ and.b16 %rs25, %rs21, 255;
+ cvt.rn.f32.u16 %f259, %rs25;
+ div.rn.f32 %f260, %f259, 0f437F0000;
+ fma.rn.f32 %f261, %f260, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f262, %rs23;
+ div.rn.f32 %f263, %f262, 0f437F0000;
+ fma.rn.f32 %f264, %f263, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f265, %rs20;
+ div.rn.f32 %f266, %f265, 0f437F0000;
+ fma.rn.f32 %f267, %f266, 0f40000000, 0fBF800000;
+ mul.f32 %f268, %f264, %f264;
+ fma.rn.f32 %f269, %f261, %f261, %f268;
+ fma.rn.f32 %f270, %f267, %f267, %f269;
+ sqrt.rn.f32 %f271, %f270;
+ rcp.rn.f32 %f272, %f271;
+ mul.f32 %f889, %f261, %f272;
+ mul.f32 %f890, %f264, %f272;
+ mul.f32 %f891, %f267, %f272;
+
+BB0_5:
+ mul.f32 %f276, %f888, %f890;
+ mul.f32 %f277, %f887, %f891;
+ sub.f32 %f278, %f277, %f276;
+ mul.f32 %f279, %f886, %f891;
+ mul.f32 %f280, %f888, %f889;
+ sub.f32 %f281, %f280, %f279;
+ mul.f32 %f282, %f887, %f889;
+ mul.f32 %f283, %f886, %f890;
+ sub.f32 %f284, %f283, %f282;
+ setp.lt.u32 %p12, %r6, 16777216;
+ selp.f32 %f285, 0fBF800000, 0f3F800000, %p12;
+ mul.f32 %f286, %f278, %f285;
+ mul.f32 %f287, %f281, %f285;
+ mul.f32 %f288, %f284, %f285;
+ mul.f32 %f289, %f286, 0f00000000;
+ mul.f32 %f290, %f287, 0f00000000;
+ mul.f32 %f291, %f288, 0f00000000;
+ fma.rn.f32 %f292, %f889, 0f3F5105EC, %f289;
+ fma.rn.f32 %f293, %f890, 0f3F5105EC, %f290;
+ fma.rn.f32 %f294, %f891, 0f3F5105EC, %f291;
+ mul.f32 %f22, %f886, 0f3F13CD3A;
+ add.f32 %f23, %f22, %f292;
+ mul.f32 %f24, %f887, 0f3F13CD3A;
+ add.f32 %f25, %f24, %f293;
+ mul.f32 %f26, %f888, 0f3F13CD3A;
+ add.f32 %f27, %f26, %f294;
+ ld.global.v2.u32 {%r141, %r142}, [pixelID];
+ cvt.u64.u32 %rd59, %r141;
+ cvt.u64.u32 %rd60, %r142;
+ // inline asm
+ call (%rd57), _rt_buffer_get_64, (%rd48, %r100, %r101, %rd59, %rd60, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r8, [%rd57];
+ shr.u32 %r9, %r8, 16;
+ cvt.u16.u32 %rs28, %r9;
+ and.b16 %rs29, %rs28, 255;
+ cvt.u16.u32 %rs30, %r8;
+ or.b16 %rs31, %rs30, %rs29;
+ setp.eq.s16 %p13, %rs31, 0;
+ mov.f32 %f893, %f892;
+ mov.f32 %f894, %f892;
+ @%p13 bra BB0_7;
+
+ ld.u8 %rs32, [%rd57+1];
+ and.b16 %rs34, %rs30, 255;
+ cvt.rn.f32.u16 %f295, %rs34;
+ div.rn.f32 %f296, %f295, 0f437F0000;
+ fma.rn.f32 %f297, %f296, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f298, %rs32;
+ div.rn.f32 %f299, %f298, 0f437F0000;
+ fma.rn.f32 %f300, %f299, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f301, %rs29;
+ div.rn.f32 %f302, %f301, 0f437F0000;
+ fma.rn.f32 %f303, %f302, 0f40000000, 0fBF800000;
+ mul.f32 %f304, %f300, %f300;
+ fma.rn.f32 %f305, %f297, %f297, %f304;
+ fma.rn.f32 %f306, %f303, %f303, %f305;
+ sqrt.rn.f32 %f307, %f306;
+ rcp.rn.f32 %f308, %f307;
+ mul.f32 %f892, %f297, %f308;
+ mul.f32 %f893, %f300, %f308;
+ mul.f32 %f894, %f303, %f308;
+
+BB0_7:
+ mov.f32 %f895, 0f00000000;
+ mov.u32 %r384, 4;
+ mov.u64 %rd272, 0;
+ mov.u32 %r383, 2;
+ mul.f32 %f312, %f888, %f893;
+ mul.f32 %f313, %f887, %f894;
+ sub.f32 %f314, %f313, %f312;
+ mul.f32 %f315, %f886, %f894;
+ mul.f32 %f316, %f888, %f892;
+ sub.f32 %f317, %f316, %f315;
+ mul.f32 %f318, %f887, %f892;
+ mul.f32 %f319, %f886, %f893;
+ sub.f32 %f320, %f319, %f318;
+ setp.lt.u32 %p14, %r8, 16777216;
+ selp.f32 %f321, 0fBF800000, 0f3F800000, %p14;
+ mul.f32 %f322, %f314, %f321;
+ mul.f32 %f323, %f317, %f321;
+ mul.f32 %f324, %f320, %f321;
+ mul.f32 %f325, %f322, 0f3F3504F3;
+ mul.f32 %f326, %f323, 0f3F3504F3;
+ mul.f32 %f327, %f324, 0f3F3504F3;
+ fma.rn.f32 %f328, %f892, 0fBED105EC, %f325;
+ fma.rn.f32 %f329, %f893, 0fBED105EC, %f326;
+ fma.rn.f32 %f330, %f894, 0fBED105EC, %f327;
+ add.f32 %f34, %f22, %f328;
+ add.f32 %f35, %f24, %f329;
+ add.f32 %f36, %f26, %f330;
+ ld.global.v2.u32 {%r147, %r148}, [pixelID];
+ cvt.u64.u32 %rd66, %r147;
+ cvt.u64.u32 %rd67, %r148;
+ // inline asm
+ call (%rd64), _rt_buffer_get_64, (%rd48, %r383, %r384, %rd66, %rd67, %rd272, %rd272);
+ // inline asm
+ ld.u32 %r10, [%rd64];
+ shr.u32 %r11, %r10, 16;
+ cvt.u16.u32 %rs37, %r11;
+ and.b16 %rs38, %rs37, 255;
+ cvt.u16.u32 %rs39, %r10;
+ or.b16 %rs40, %rs39, %rs38;
+ setp.eq.s16 %p15, %rs40, 0;
+ mov.f32 %f896, %f895;
+ mov.f32 %f897, %f895;
+ @%p15 bra BB0_9;
+
+ ld.u8 %rs41, [%rd64+1];
+ and.b16 %rs43, %rs39, 255;
+ cvt.rn.f32.u16 %f331, %rs43;
+ div.rn.f32 %f332, %f331, 0f437F0000;
+ fma.rn.f32 %f333, %f332, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f334, %rs41;
+ div.rn.f32 %f335, %f334, 0f437F0000;
+ fma.rn.f32 %f336, %f335, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f337, %rs38;
+ div.rn.f32 %f338, %f337, 0f437F0000;
+ fma.rn.f32 %f339, %f338, 0f40000000, 0fBF800000;
+ mul.f32 %f340, %f336, %f336;
+ fma.rn.f32 %f341, %f333, %f333, %f340;
+ fma.rn.f32 %f342, %f339, %f339, %f341;
+ sqrt.rn.f32 %f343, %f342;
+ rcp.rn.f32 %f344, %f343;
+ mul.f32 %f895, %f333, %f344;
+ mul.f32 %f896, %f336, %f344;
+ mul.f32 %f897, %f339, %f344;
+
+BB0_9:
+ mul.f32 %f881, %f887, 0f3F13CD3A;
+ mul.f32 %f880, %f886, 0f3F13CD3A;
+ mov.f32 %f910, 0f00000000;
+ mul.f32 %f357, %f888, %f896;
+ mul.f32 %f358, %f887, %f897;
+ sub.f32 %f359, %f358, %f357;
+ mul.f32 %f360, %f886, %f897;
+ mul.f32 %f361, %f888, %f895;
+ sub.f32 %f362, %f361, %f360;
+ mul.f32 %f363, %f887, %f895;
+ mul.f32 %f364, %f886, %f896;
+ sub.f32 %f365, %f364, %f363;
+ setp.lt.u32 %p16, %r10, 16777216;
+ selp.f32 %f366, 0fBF800000, 0f3F800000, %p16;
+ mul.f32 %f367, %f359, %f366;
+ mul.f32 %f368, %f362, %f366;
+ mul.f32 %f369, %f365, %f366;
+ mul.f32 %f370, %f367, 0fBF3504F3;
+ mul.f32 %f371, %f368, 0fBF3504F3;
+ mul.f32 %f372, %f369, 0fBF3504F3;
+ fma.rn.f32 %f373, %f895, 0fBED105EC, %f370;
+ fma.rn.f32 %f374, %f896, 0fBED105EC, %f371;
+ fma.rn.f32 %f375, %f897, 0fBED105EC, %f372;
+ add.f32 %f43, %f880, %f373;
+ add.f32 %f44, %f881, %f374;
+ add.f32 %f45, %f26, %f375;
+ setp.lt.s32 %p17, %r1, 1;
+ mov.f32 %f911, %f910;
+ mov.f32 %f912, %f910;
+ mov.f32 %f913, %f910;
+ mov.f32 %f914, %f910;
+ mov.f32 %f915, %f910;
+ mov.f32 %f916, %f910;
+ mov.f32 %f917, %f910;
+ mov.f32 %f918, %f910;
+ mov.f32 %f919, %f910;
+ mov.f32 %f920, %f910;
+ mov.f32 %f921, %f910;
+ @%p17 bra BB0_60;
+
+ cvt.rn.f32.s32 %f388, %r1;
+ rcp.rn.f32 %f46, %f388;
+ mul.f32 %f47, %f10, 0f3456BF95;
+ mul.f32 %f48, %f11, 0f3456BF95;
+ mul.f32 %f49, %f12, 0f3456BF95;
+ mul.f32 %f389, %f888, %f14;
+ mul.f32 %f390, %f887, %f15;
+ sub.f32 %f50, %f389, %f390;
+ mul.f32 %f391, %f886, %f15;
+ mul.f32 %f392, %f888, %f13;
+ sub.f32 %f51, %f391, %f392;
+ mul.f32 %f393, %f887, %f13;
+ mul.f32 %f394, %f886, %f14;
+ sub.f32 %f52, %f393, %f394;
+ mov.f32 %f910, 0f00000000;
+ mov.u32 %r151, 0;
+ abs.f32 %f395, %f48;
+ abs.f32 %f396, %f47;
+ max.f32 %f397, %f396, %f395;
+ abs.f32 %f398, %f49;
+ max.f32 %f399, %f397, %f398;
+ mov.u32 %r385, %r151;
+ mov.f32 %f911, %f910;
+ mov.f32 %f912, %f910;
+ mov.f32 %f913, %f910;
+ mov.f32 %f914, %f910;
+ mov.f32 %f915, %f910;
+ mov.f32 %f916, %f910;
+ mov.f32 %f917, %f910;
+ mov.f32 %f918, %f910;
+ mov.f32 %f919, %f910;
+ mov.f32 %f920, %f910;
+ mov.f32 %f921, %f910;
+
+BB0_11:
+ mov.u32 %r387, %r151;
+
+BB0_12:
+ mov.u32 %r15, %r388;
+ cvt.rn.f32.s32 %f864, %r385;
+ mad.lo.s32 %r153, %r15, 1664525, 1013904223;
+ and.b32 %r154, %r153, 16777215;
+ cvt.rn.f32.u32 %f401, %r154;
+ fma.rn.f32 %f402, %f401, 0f33800000, %f864;
+ mul.f32 %f79, %f46, %f402;
+ mad.lo.s32 %r16, %r153, 1664525, 1013904223;
+ and.b32 %r155, %r16, 16777215;
+ cvt.rn.f32.u32 %f403, %r155;
+ cvt.rn.f32.s32 %f404, %r387;
+ fma.rn.f32 %f405, %f403, 0f33800000, %f404;
+ mul.f32 %f406, %f46, %f405;
+ mul.f32 %f407, %f79, %f79;
+ mov.f32 %f408, 0f3F800000;
+ sub.f32 %f409, %f408, %f407;
+ mov.f32 %f410, 0f00000000;
+ max.f32 %f411, %f410, %f409;
+ sqrt.rn.f32 %f80, %f411;
+ mul.f32 %f928, %f406, 0f40C90FDB;
+ abs.f32 %f82, %f928;
+ setp.neu.f32 %p18, %f82, 0f7F800000;
+ mov.f32 %f922, %f928;
+ @%p18 bra BB0_14;
+
+ mov.f32 %f865, 0f00000000;
+ mul.rn.f32 %f922, %f928, %f865;
+
+BB0_14:
+ mul.f32 %f413, %f922, 0f3F22F983;
+ cvt.rni.s32.f32 %r398, %f413;
+ cvt.rn.f32.s32 %f414, %r398;
+ neg.f32 %f415, %f414;
+ mov.f32 %f416, 0f3FC90FDA;
+ fma.rn.f32 %f417, %f415, %f416, %f922;
+ mov.f32 %f418, 0f33A22168;
+ fma.rn.f32 %f419, %f415, %f418, %f417;
+ mov.f32 %f420, 0f27C234C5;
+ fma.rn.f32 %f923, %f415, %f420, %f419;
+ abs.f32 %f421, %f922;
+ setp.leu.f32 %p19, %f421, 0f47CE4780;
+ @%p19 bra BB0_25;
+
+ add.u64 %rd72, %SP, 12;
+ cvta.to.local.u64 %rd273, %rd72;
+ mov.b32 %r18, %f922;
+ shl.b32 %r158, %r18, 8;
+ or.b32 %r20, %r158, -2147483648;
+ mov.u32 %r389, 0;
+ mov.u64 %rd274, 0;
+ mov.u32 %r390, %r389;
+
+BB0_16:
+ .pragma "nounroll";
+ add.u64 %rd267, %SP, 12;
+ cvta.to.local.u64 %rd266, %rd267;
+ shl.b64 %rd73, %rd274, 2;
+ mov.u64 %rd74, __cudart_i2opi_f;
+ add.s64 %rd75, %rd74, %rd73;
+ ld.const.u32 %r161, [%rd75];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r159, %r161, %r20, %r390;
+ madc.hi.u32 %r390, %r161, %r20, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd273], %r159;
+ add.s32 %r389, %r389, 1;
+ cvt.s64.s32 %rd274, %r389;
+ mul.wide.s32 %rd78, %r389, 4;
+ add.s64 %rd273, %rd266, %rd78;
+ setp.ne.s32 %p20, %r389, 6;
+ @%p20 bra BB0_16;
+
+ mov.b32 %r365, %f922;
+ shr.u32 %r364, %r365, 23;
+ add.u64 %rd268, %SP, 12;
+ and.b32 %r164, %r364, 255;
+ add.s32 %r165, %r164, -128;
+ shr.u32 %r166, %r165, 5;
+ cvta.to.local.u64 %rd80, %rd268;
+ st.local.u32 [%rd80+24], %r390;
+ mov.u32 %r167, 6;
+ sub.s32 %r168, %r167, %r166;
+ mul.wide.s32 %rd81, %r168, 4;
+ add.s64 %rd10, %rd80, %rd81;
+ ld.local.u32 %r391, [%rd10];
+ ld.local.u32 %r392, [%rd10+-4];
+ and.b32 %r28, %r364, 31;
+ setp.eq.s32 %p21, %r28, 0;
+ @%p21 bra BB0_19;
+
+ mov.u32 %r169, 32;
+ sub.s32 %r170, %r169, %r28;
+ shr.u32 %r171, %r392, %r170;
+ shl.b32 %r172, %r391, %r28;
+ add.s32 %r391, %r171, %r172;
+ ld.local.u32 %r173, [%rd10+-8];
+ shr.u32 %r174, %r173, %r170;
+ shl.b32 %r175, %r392, %r28;
+ add.s32 %r392, %r174, %r175;
+
+BB0_19:
+ mov.b32 %r368, %f922;
+ and.b32 %r394, %r368, -2147483648;
+ shr.u32 %r176, %r392, 30;
+ shl.b32 %r177, %r391, 2;
+ add.s32 %r393, %r176, %r177;
+ shl.b32 %r34, %r392, 2;
+ shr.u32 %r178, %r393, 31;
+ shr.u32 %r179, %r391, 30;
+ add.s32 %r35, %r178, %r179;
+ setp.eq.s32 %p22, %r178, 0;
+ @%p22 bra BB0_20;
+ bra.uni BB0_21;
+
+BB0_20:
+ mov.u32 %r395, %r34;
+ bra.uni BB0_22;
+
+BB0_21:
+ mov.b32 %r370, %f922;
+ and.b32 %r369, %r370, -2147483648;
+ not.b32 %r180, %r393;
+ neg.s32 %r395, %r34;
+ setp.eq.s32 %p23, %r34, 0;
+ selp.u32 %r181, 1, 0, %p23;
+ add.s32 %r393, %r181, %r180;
+ xor.b32 %r394, %r369, -2147483648;
+
+BB0_22:
+ mov.b32 %r372, %f922;
+ and.b32 %r371, %r372, -2147483648;
+ clz.b32 %r397, %r393;
+ setp.eq.s32 %p24, %r397, 0;
+ shl.b32 %r182, %r393, %r397;
+ mov.u32 %r183, 32;
+ sub.s32 %r184, %r183, %r397;
+ shr.u32 %r185, %r395, %r184;
+ add.s32 %r186, %r185, %r182;
+ selp.b32 %r43, %r393, %r186, %p24;
+ mov.u32 %r187, -921707870;
+ mul.hi.u32 %r396, %r43, %r187;
+ setp.eq.s32 %p25, %r371, 0;
+ neg.s32 %r188, %r35;
+ selp.b32 %r398, %r35, %r188, %p25;
+ setp.lt.s32 %p26, %r396, 1;
+ @%p26 bra BB0_24;
+
+ mul.lo.s32 %r189, %r43, -921707870;
+ shr.u32 %r190, %r189, 31;
+ shl.b32 %r191, %r396, 1;
+ add.s32 %r396, %r190, %r191;
+ add.s32 %r397, %r397, 1;
+
+BB0_24:
+ mov.u32 %r192, 126;
+ sub.s32 %r193, %r192, %r397;
+ shl.b32 %r194, %r193, 23;
+ add.s32 %r195, %r396, 1;
+ shr.u32 %r196, %r195, 7;
+ add.s32 %r197, %r196, 1;
+ shr.u32 %r198, %r197, 1;
+ add.s32 %r199, %r198, %r194;
+ or.b32 %r200, %r199, %r394;
+ mov.b32 %f923, %r200;
+
+BB0_25:
+ add.s32 %r51, %r398, 1;
+ and.b32 %r52, %r51, 1;
+ setp.eq.s32 %p27, %r52, 0;
+ @%p27 bra BB0_27;
+ bra.uni BB0_26;
+
+BB0_27:
+ mul.rn.f32 %f873, %f923, %f923;
+ mov.f32 %f424, 0f3C08839E;
+ mov.f32 %f425, 0fB94CA1F9;
+ fma.rn.f32 %f924, %f425, %f873, %f424;
+ bra.uni BB0_28;
+
+BB0_26:
+ mul.rn.f32 %f869, %f923, %f923;
+ mov.f32 %f422, 0fBAB6061A;
+ mov.f32 %f423, 0f37CCF5CE;
+ fma.rn.f32 %f924, %f423, %f869, %f422;
+
+BB0_28:
+ @%p27 bra BB0_30;
+ bra.uni BB0_29;
+
+BB0_30:
+ mul.rn.f32 %f872, %f923, %f923;
+ mov.f32 %f868, 0f00000000;
+ mov.f32 %f429, 0fBE2AAAA3;
+ fma.rn.f32 %f430, %f924, %f872, %f429;
+ fma.rn.f32 %f925, %f430, %f872, %f868;
+ bra.uni BB0_31;
+
+BB0_29:
+ mul.rn.f32 %f870, %f923, %f923;
+ mov.f32 %f426, 0f3D2AAAA5;
+ fma.rn.f32 %f427, %f924, %f870, %f426;
+ mov.f32 %f428, 0fBF000000;
+ fma.rn.f32 %f925, %f427, %f870, %f428;
+
+BB0_31:
+ fma.rn.f32 %f926, %f925, %f923, %f923;
+ @%p27 bra BB0_33;
+
+ mul.rn.f32 %f871, %f923, %f923;
+ mov.f32 %f855, 0f3F800000;
+ fma.rn.f32 %f926, %f925, %f871, %f855;
+
+BB0_33:
+ add.s32 %r373, %r398, 1;
+ and.b32 %r201, %r373, 2;
+ setp.eq.s32 %p30, %r201, 0;
+ @%p30 bra BB0_35;
+
+ mov.f32 %f856, 0f00000000;
+ mov.f32 %f434, 0fBF800000;
+ fma.rn.f32 %f926, %f926, %f434, %f856;
+
+BB0_35:
+ abs.f32 %f857, %f928;
+ setp.neu.f32 %p109, %f857, 0f7F800000;
+ @%p109 bra BB0_37;
+
+ mov.f32 %f867, 0f00000000;
+ mul.rn.f32 %f928, %f928, %f867;
+
+BB0_37:
+ mov.f32 %f860, 0f27C234C5;
+ mov.f32 %f859, 0f33A22168;
+ mov.f32 %f858, 0f3FC90FDA;
+ mul.f32 %f436, %f928, 0f3F22F983;
+ cvt.rni.s32.f32 %r408, %f436;
+ cvt.rn.f32.s32 %f437, %r408;
+ neg.f32 %f438, %f437;
+ fma.rn.f32 %f440, %f438, %f858, %f928;
+ fma.rn.f32 %f442, %f438, %f859, %f440;
+ fma.rn.f32 %f929, %f438, %f860, %f442;
+ abs.f32 %f444, %f928;
+ setp.leu.f32 %p32, %f444, 0f47CE4780;
+ @%p32 bra BB0_48;
+
+ mov.u64 %rd276, 0;
+ add.u64 %rd83, %SP, 12;
+ cvta.to.local.u64 %rd275, %rd83;
+ mov.b32 %r54, %f928;
+ shl.b32 %r204, %r54, 8;
+ or.b32 %r56, %r204, -2147483648;
+ mov.u32 %r399, 0;
+ mov.u32 %r400, %r399;
+
+BB0_39:
+ .pragma "nounroll";
+ add.u64 %rd270, %SP, 12;
+ cvta.to.local.u64 %rd269, %rd270;
+ shl.b64 %rd84, %rd276, 2;
+ mov.u64 %rd85, __cudart_i2opi_f;
+ add.s64 %rd86, %rd85, %rd84;
+ ld.const.u32 %r207, [%rd86];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r205, %r207, %r56, %r400;
+ madc.hi.u32 %r400, %r207, %r56, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd275], %r205;
+ add.s32 %r399, %r399, 1;
+ cvt.s64.s32 %rd276, %r399;
+ mul.wide.s32 %rd87, %r399, 4;
+ add.s64 %rd275, %rd269, %rd87;
+ setp.ne.s32 %p33, %r399, 6;
+ @%p33 bra BB0_39;
+
+ mov.b32 %r375, %f928;
+ shr.u32 %r374, %r375, 23;
+ add.u64 %rd271, %SP, 12;
+ and.b32 %r210, %r374, 255;
+ add.s32 %r211, %r210, -128;
+ shr.u32 %r212, %r211, 5;
+ cvta.to.local.u64 %rd89, %rd271;
+ st.local.u32 [%rd89+24], %r400;
+ mov.u32 %r213, 6;
+ sub.s32 %r214, %r213, %r212;
+ mul.wide.s32 %rd90, %r214, 4;
+ add.s64 %rd17, %rd89, %rd90;
+ ld.local.u32 %r401, [%rd17];
+ ld.local.u32 %r402, [%rd17+-4];
+ and.b32 %r64, %r374, 31;
+ setp.eq.s32 %p34, %r64, 0;
+ @%p34 bra BB0_42;
+
+ mov.u32 %r215, 32;
+ sub.s32 %r216, %r215, %r64;
+ shr.u32 %r217, %r402, %r216;
+ shl.b32 %r218, %r401, %r64;
+ add.s32 %r401, %r217, %r218;
+ ld.local.u32 %r219, [%rd17+-8];
+ shr.u32 %r220, %r219, %r216;
+ shl.b32 %r221, %r402, %r64;
+ add.s32 %r402, %r220, %r221;
+
+BB0_42:
+ mov.b32 %r378, %f928;
+ and.b32 %r404, %r378, -2147483648;
+ shr.u32 %r222, %r402, 30;
+ shl.b32 %r223, %r401, 2;
+ add.s32 %r403, %r222, %r223;
+ shl.b32 %r70, %r402, 2;
+ shr.u32 %r224, %r403, 31;
+ shr.u32 %r225, %r401, 30;
+ add.s32 %r71, %r224, %r225;
+ setp.eq.s32 %p35, %r224, 0;
+ @%p35 bra BB0_43;
+ bra.uni BB0_44;
+
+BB0_43:
+ mov.u32 %r405, %r70;
+ bra.uni BB0_45;
+
+BB0_44:
+ mov.b32 %r380, %f928;
+ and.b32 %r379, %r380, -2147483648;
+ not.b32 %r226, %r403;
+ neg.s32 %r405, %r70;
+ setp.eq.s32 %p36, %r70, 0;
+ selp.u32 %r227, 1, 0, %p36;
+ add.s32 %r403, %r227, %r226;
+ xor.b32 %r404, %r379, -2147483648;
+
+BB0_45:
+ mov.b32 %r382, %f928;
+ and.b32 %r381, %r382, -2147483648;
+ clz.b32 %r407, %r403;
+ setp.eq.s32 %p37, %r407, 0;
+ shl.b32 %r228, %r403, %r407;
+ mov.u32 %r229, 32;
+ sub.s32 %r230, %r229, %r407;
+ shr.u32 %r231, %r405, %r230;
+ add.s32 %r232, %r231, %r228;
+ selp.b32 %r79, %r403, %r232, %p37;
+ mov.u32 %r233, -921707870;
+ mul.hi.u32 %r406, %r79, %r233;
+ setp.eq.s32 %p38, %r381, 0;
+ neg.s32 %r234, %r71;
+ selp.b32 %r408, %r71, %r234, %p38;
+ setp.lt.s32 %p39, %r406, 1;
+ @%p39 bra BB0_47;
+
+ mul.lo.s32 %r235, %r79, -921707870;
+ shr.u32 %r236, %r235, 31;
+ shl.b32 %r237, %r406, 1;
+ add.s32 %r406, %r236, %r237;
+ add.s32 %r407, %r407, 1;
+
+BB0_47:
+ mov.u32 %r238, 126;
+ sub.s32 %r239, %r238, %r407;
+ shl.b32 %r240, %r239, 23;
+ add.s32 %r241, %r406, 1;
+ shr.u32 %r242, %r241, 7;
+ add.s32 %r243, %r242, 1;
+ shr.u32 %r244, %r243, 1;
+ add.s32 %r245, %r244, %r240;
+ or.b32 %r246, %r245, %r404;
+ mov.b32 %f929, %r246;
+
+BB0_48:
+ and.b32 %r87, %r408, 1;
+ setp.eq.s32 %p40, %r87, 0;
+ @%p40 bra BB0_50;
+ bra.uni BB0_49;
+
+BB0_50:
+ mul.rn.f32 %f885, %f929, %f929;
+ mov.f32 %f447, 0f3C08839E;
+ mov.f32 %f448, 0fB94CA1F9;
+ fma.rn.f32 %f930, %f448, %f885, %f447;
+ bra.uni BB0_51;
+
+BB0_49:
+ mul.rn.f32 %f882, %f929, %f929;
+ mov.f32 %f445, 0fBAB6061A;
+ mov.f32 %f446, 0f37CCF5CE;
+ fma.rn.f32 %f930, %f446, %f882, %f445;
+
+BB0_51:
+ @%p40 bra BB0_53;
+ bra.uni BB0_52;
+
+BB0_53:
+ mul.rn.f32 %f884, %f929, %f929;
+ mov.f32 %f866, 0f00000000;
+ mov.f32 %f452, 0fBE2AAAA3;
+ fma.rn.f32 %f453, %f930, %f884, %f452;
+ fma.rn.f32 %f931, %f453, %f884, %f866;
+ bra.uni BB0_54;
+
+BB0_52:
+ mul.rn.f32 %f883, %f929, %f929;
+ mov.f32 %f449, 0f3D2AAAA5;
+ fma.rn.f32 %f450, %f930, %f883, %f449;
+ mov.f32 %f451, 0fBF000000;
+ fma.rn.f32 %f931, %f450, %f883, %f451;
+
+BB0_54:
+ fma.rn.f32 %f932, %f931, %f929, %f929;
+ @%p40 bra BB0_56;
+
+ mul.rn.f32 %f874, %f929, %f929;
+ mov.f32 %f861, 0f3F800000;
+ fma.rn.f32 %f932, %f931, %f874, %f861;
+
+BB0_56:
+ and.b32 %r247, %r408, 2;
+ setp.eq.s32 %p43, %r247, 0;
+ @%p43 bra BB0_58;
+
+ mov.f32 %f862, 0f00000000;
+ mov.f32 %f457, 0fBF800000;
+ fma.rn.f32 %f932, %f932, %f457, %f862;
+
+BB0_58:
+ mad.lo.s32 %r361, %r15, 1664525, 1013904223;
+ mad.lo.s32 %r388, %r361, 1664525, 1013904223;
+ max.f32 %f863, %f399, %f245;
+ mul.f32 %f466, %f80, %f926;
+ add.u64 %rd91, %SP, 0;
+ cvta.to.local.u64 %rd92, %rd91;
+ mul.f32 %f467, %f80, %f932;
+ mul.f32 %f468, %f13, %f467;
+ mul.f32 %f469, %f14, %f467;
+ mul.f32 %f470, %f15, %f467;
+ fma.rn.f32 %f471, %f50, %f466, %f468;
+ fma.rn.f32 %f472, %f51, %f466, %f469;
+ fma.rn.f32 %f473, %f52, %f466, %f470;
+ fma.rn.f32 %f461, %f886, %f79, %f471;
+ fma.rn.f32 %f462, %f887, %f79, %f472;
+ fma.rn.f32 %f463, %f888, %f79, %f473;
+ mov.u32 %r249, 0;
+ st.local.u32 [%rd92+8], %r249;
+ st.local.u32 [%rd92+4], %r249;
+ st.local.u32 [%rd92], %r249;
+ ld.global.u32 %r248, [root];
+ mov.f32 %f465, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r248, %f10, %f11, %f12, %f461, %f462, %f463, %r249, %f863, %f465, %rd91, %r118);
+ // inline asm
+ mul.f32 %f474, %f25, %f462;
+ fma.rn.f32 %f475, %f23, %f461, %f474;
+ fma.rn.f32 %f476, %f27, %f463, %f475;
+ cvt.sat.f32.f32 %f477, %f476;
+ ld.local.f32 %f478, [%rd92];
+ ld.local.f32 %f479, [%rd92+4];
+ ld.local.f32 %f480, [%rd92+8];
+ fma.rn.f32 %f915, %f477, %f478, %f915;
+ fma.rn.f32 %f914, %f477, %f479, %f914;
+ fma.rn.f32 %f913, %f477, %f480, %f913;
+ mul.f32 %f481, %f35, %f462;
+ fma.rn.f32 %f482, %f34, %f461, %f481;
+ fma.rn.f32 %f483, %f36, %f463, %f482;
+ cvt.sat.f32.f32 %f484, %f483;
+ fma.rn.f32 %f918, %f484, %f478, %f918;
+ fma.rn.f32 %f917, %f484, %f479, %f917;
+ fma.rn.f32 %f916, %f484, %f480, %f916;
+ mul.f32 %f485, %f44, %f462;
+ fma.rn.f32 %f486, %f43, %f461, %f485;
+ fma.rn.f32 %f487, %f45, %f463, %f486;
+ cvt.sat.f32.f32 %f488, %f487;
+ fma.rn.f32 %f921, %f488, %f478, %f921;
+ fma.rn.f32 %f920, %f488, %f479, %f920;
+ fma.rn.f32 %f919, %f488, %f480, %f919;
+ mul.f32 %f489, %f887, %f462;
+ fma.rn.f32 %f490, %f886, %f461, %f489;
+ fma.rn.f32 %f491, %f888, %f463, %f490;
+ cvt.sat.f32.f32 %f492, %f491;
+ fma.rn.f32 %f912, %f492, %f478, %f912;
+ fma.rn.f32 %f911, %f492, %f479, %f911;
+ fma.rn.f32 %f910, %f492, %f480, %f910;
+ add.s32 %r387, %r387, 1;
+ setp.lt.s32 %p44, %r387, %r1;
+ @%p44 bra BB0_12;
+
+ mad.lo.s32 %r363, %r15, 1664525, 1013904223;
+ mad.lo.s32 %r388, %r363, 1664525, 1013904223;
+ add.s32 %r385, %r385, 1;
+ setp.lt.s32 %p45, %r385, %r1;
+ @%p45 bra BB0_11;
+
+BB0_60:
+ mul.lo.s32 %r251, %r1, %r1;
+ cvt.rn.f32.s32 %f493, %r251;
+ rcp.rn.f32 %f494, %f493;
+ cvt.rn.f32.u32 %f495, %r4;
+ cvt.rn.f32.u32 %f496, %r3;
+ tex.2d.v4.f32.f32 {%f497, %f498, %f499, %f500}, [albedoTex, {%f496, %f495}];
+ mul.f32 %f141, %f915, %f494;
+ mul.f32 %f142, %f914, %f494;
+ mul.f32 %f143, %f913, %f494;
+ mul.f32 %f144, %f918, %f494;
+ mul.f32 %f145, %f917, %f494;
+ mul.f32 %f146, %f916, %f494;
+ mul.f32 %f147, %f921, %f494;
+ mul.f32 %f148, %f920, %f494;
+ mul.f32 %f149, %f919, %f494;
+ mul.f32 %f501, %f912, %f494;
+ mul.f32 %f502, %f911, %f494;
+ mul.f32 %f503, %f910, %f494;
+ fma.rn.f32 %f150, %f912, %f494, %f501;
+ fma.rn.f32 %f151, %f911, %f494, %f502;
+ fma.rn.f32 %f152, %f910, %f494, %f503;
+ mul.f32 %f153, %f150, %f497;
+ mul.f32 %f154, %f151, %f498;
+ mul.f32 %f155, %f152, %f499;
+ add.f32 %f156, %f224, %f153;
+ add.f32 %f157, %f225, %f154;
+ add.f32 %f158, %f226, %f155;
+ ld.global.u32 %r410, [imageEnabled];
+ and.b32 %r252, %r410, 1;
+ setp.eq.b32 %p46, %r252, 1;
+ @!%p46 bra BB0_95;
+ bra.uni BB0_61;
+
+BB0_61:
+ abs.f32 %f160, %f156;
+ setp.lt.f32 %p47, %f160, 0f00800000;
+ mul.f32 %f509, %f160, 0f4B800000;
+ selp.f32 %f510, 0fC3170000, 0fC2FE0000, %p47;
+ selp.f32 %f511, %f509, %f160, %p47;
+ mov.b32 %r253, %f511;
+ and.b32 %r254, %r253, 8388607;
+ or.b32 %r255, %r254, 1065353216;
+ mov.b32 %f512, %r255;
+ shr.u32 %r256, %r253, 23;
+ cvt.rn.f32.u32 %f513, %r256;
+ add.f32 %f514, %f510, %f513;
+ setp.gt.f32 %p48, %f512, 0f3FB504F3;
+ mul.f32 %f515, %f512, 0f3F000000;
+ add.f32 %f516, %f514, 0f3F800000;
+ selp.f32 %f517, %f515, %f512, %p48;
+ selp.f32 %f518, %f516, %f514, %p48;
+ add.f32 %f519, %f517, 0fBF800000;
+ add.f32 %f505, %f517, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f504,%f505;
+ // inline asm
+ add.f32 %f520, %f519, %f519;
+ mul.f32 %f521, %f504, %f520;
+ mul.f32 %f522, %f521, %f521;
+ mov.f32 %f523, 0f3C4CAF63;
+ mov.f32 %f524, 0f3B18F0FE;
+ fma.rn.f32 %f525, %f524, %f522, %f523;
+ mov.f32 %f526, 0f3DAAAABD;
+ fma.rn.f32 %f527, %f525, %f522, %f526;
+ mul.rn.f32 %f528, %f527, %f522;
+ mul.rn.f32 %f529, %f528, %f521;
+ sub.f32 %f530, %f519, %f521;
+ neg.f32 %f531, %f521;
+ add.f32 %f532, %f530, %f530;
+ fma.rn.f32 %f533, %f531, %f519, %f532;
+ mul.rn.f32 %f534, %f504, %f533;
+ add.f32 %f535, %f529, %f521;
+ sub.f32 %f536, %f521, %f535;
+ add.f32 %f537, %f529, %f536;
+ add.f32 %f538, %f534, %f537;
+ add.f32 %f539, %f535, %f538;
+ sub.f32 %f540, %f535, %f539;
+ add.f32 %f541, %f538, %f540;
+ mov.f32 %f542, 0f3F317200;
+ mul.rn.f32 %f543, %f518, %f542;
+ mov.f32 %f544, 0f35BFBE8E;
+ mul.rn.f32 %f545, %f518, %f544;
+ add.f32 %f546, %f543, %f539;
+ sub.f32 %f547, %f543, %f546;
+ add.f32 %f548, %f539, %f547;
+ add.f32 %f549, %f541, %f548;
+ add.f32 %f550, %f545, %f549;
+ add.f32 %f551, %f546, %f550;
+ sub.f32 %f552, %f546, %f551;
+ add.f32 %f553, %f550, %f552;
+ mov.f32 %f554, 0f3EE66666;
+ mul.rn.f32 %f555, %f554, %f551;
+ neg.f32 %f556, %f555;
+ fma.rn.f32 %f557, %f554, %f551, %f556;
+ fma.rn.f32 %f558, %f554, %f553, %f557;
+ mov.f32 %f559, 0f00000000;
+ fma.rn.f32 %f560, %f559, %f551, %f558;
+ add.rn.f32 %f561, %f555, %f560;
+ neg.f32 %f562, %f561;
+ add.rn.f32 %f563, %f555, %f562;
+ add.rn.f32 %f564, %f563, %f560;
+ mov.b32 %r257, %f561;
+ setp.eq.s32 %p49, %r257, 1118925336;
+ add.s32 %r258, %r257, -1;
+ mov.b32 %f565, %r258;
+ add.f32 %f566, %f564, 0f37000000;
+ selp.f32 %f567, %f565, %f561, %p49;
+ selp.f32 %f161, %f566, %f564, %p49;
+ mul.f32 %f568, %f567, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f569, %f568;
+ mov.f32 %f570, 0fBF317200;
+ fma.rn.f32 %f571, %f569, %f570, %f567;
+ mov.f32 %f572, 0fB5BFBE8E;
+ fma.rn.f32 %f573, %f569, %f572, %f571;
+ mul.f32 %f574, %f573, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f575, %f574;
+ add.f32 %f576, %f569, 0f00000000;
+ ex2.approx.f32 %f577, %f576;
+ mul.f32 %f578, %f575, %f577;
+ setp.lt.f32 %p50, %f567, 0fC2D20000;
+ selp.f32 %f579, 0f00000000, %f578, %p50;
+ setp.gt.f32 %p51, %f567, 0f42D20000;
+ selp.f32 %f946, 0f7F800000, %f579, %p51;
+ setp.eq.f32 %p52, %f946, 0f7F800000;
+ @%p52 bra BB0_63;
+
+ fma.rn.f32 %f946, %f946, %f161, %f946;
+
+BB0_63:
+ mov.f32 %f827, 0f3E666666;
+ cvt.rzi.f32.f32 %f826, %f827;
+ fma.rn.f32 %f825, %f826, 0fC0000000, 0f3EE66666;
+ abs.f32 %f824, %f825;
+ setp.lt.f32 %p53, %f156, 0f00000000;
+ setp.eq.f32 %p54, %f824, 0f3F800000;
+ and.pred %p1, %p53, %p54;
+ mov.b32 %r259, %f946;
+ xor.b32 %r260, %r259, -2147483648;
+ mov.b32 %f580, %r260;
+ selp.f32 %f948, %f580, %f946, %p1;
+ setp.eq.f32 %p55, %f156, 0f00000000;
+ @%p55 bra BB0_66;
+ bra.uni BB0_64;
+
+BB0_66:
+ add.f32 %f583, %f156, %f156;
+ selp.f32 %f948, %f583, 0f00000000, %p54;
+ bra.uni BB0_67;
+
+BB0_116:
+ mov.u64 %rd215, image_RNM0;
+ cvta.global.u64 %rd210, %rd215;
+ mov.u32 %r327, 8;
+ mov.u64 %rd214, 0;
+ // inline asm
+ call (%rd209), _rt_buffer_get_64, (%rd210, %r100, %r327, %rd20, %rd21, %rd214, %rd214);
+ // inline asm
+ mov.f32 %f809, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs116, %f809;}
+
+ // inline asm
+ mov.u16 %rs117, 0;
+ st.v4.u16 [%rd209], {%rs116, %rs116, %rs116, %rs117};
+
+BB0_117:
+ ld.global.u32 %r328, [additive];
+ setp.eq.s32 %p107, %r328, 0;
+ @%p107 bra BB0_119;
+
+ mov.u64 %rd228, image_RNM1;
+ cvta.global.u64 %rd217, %rd228;
+ mov.u32 %r332, 8;
+ mov.u64 %rd227, 0;
+ // inline asm
+ call (%rd216), _rt_buffer_get_64, (%rd217, %r100, %r332, %rd20, %rd21, %rd227, %rd227);
+ // inline asm
+ ld.v4.u16 {%rs124, %rs125, %rs126, %rs127}, [%rd216];
+ // inline asm
+ { cvt.f32.f16 %f810, %rs124;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f811, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f812, %rs126;}
+
+ // inline asm
+ // inline asm
+ call (%rd222), _rt_buffer_get_64, (%rd217, %r100, %r332, %rd20, %rd21, %rd227, %rd227);
+ // inline asm
+ add.f32 %f813, %f810, 0f00000000;
+ add.f32 %f814, %f811, 0f00000000;
+ add.f32 %f815, %f812, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f815;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f814;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs121, %f813;}
+
+ // inline asm
+ mov.u16 %rs128, 0;
+ st.v4.u16 [%rd222], {%rs121, %rs122, %rs123, %rs128};
+ bra.uni BB0_120;
+
+BB0_119:
+ mov.u64 %rd235, image_RNM1;
+ cvta.global.u64 %rd230, %rd235;
+ mov.u32 %r334, 8;
+ mov.u64 %rd234, 0;
+ // inline asm
+ call (%rd229), _rt_buffer_get_64, (%rd230, %r100, %r334, %rd20, %rd21, %rd234, %rd234);
+ // inline asm
+ mov.f32 %f816, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs129, %f816;}
+
+ // inline asm
+ mov.u16 %rs130, 0;
+ st.v4.u16 [%rd229], {%rs129, %rs129, %rs129, %rs130};
+
+BB0_120:
+ ld.global.u32 %r335, [additive];
+ setp.eq.s32 %p108, %r335, 0;
+ @%p108 bra BB0_122;
+
+ mov.u64 %rd248, image_RNM2;
+ cvta.global.u64 %rd237, %rd248;
+ mov.u32 %r339, 8;
+ mov.u64 %rd247, 0;
+ // inline asm
+ call (%rd236), _rt_buffer_get_64, (%rd237, %r100, %r339, %rd20, %rd21, %rd247, %rd247);
+ // inline asm
+ ld.v4.u16 {%rs137, %rs138, %rs139, %rs140}, [%rd236];
+ // inline asm
+ { cvt.f32.f16 %f817, %rs137;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f818, %rs138;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f819, %rs139;}
+
+ // inline asm
+ // inline asm
+ call (%rd242), _rt_buffer_get_64, (%rd237, %r100, %r339, %rd20, %rd21, %rd247, %rd247);
+ // inline asm
+ add.f32 %f820, %f817, 0f00000000;
+ add.f32 %f821, %f818, 0f00000000;
+ add.f32 %f822, %f819, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs136, %f822;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f821;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs134, %f820;}
+
+ // inline asm
+ mov.u16 %rs141, 0;
+ st.v4.u16 [%rd242], {%rs134, %rs135, %rs136, %rs141};
+ bra.uni BB0_123;
+
+BB0_122:
+ mov.u64 %rd255, image_RNM2;
+ cvta.global.u64 %rd250, %rd255;
+ mov.u32 %r341, 8;
+ mov.u64 %rd254, 0;
+ // inline asm
+ call (%rd249), _rt_buffer_get_64, (%rd250, %r100, %r341, %rd20, %rd21, %rd254, %rd254);
+ // inline asm
+ mov.f32 %f823, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs142, %f823;}
+
+ // inline asm
+ mov.u16 %rs143, 0;
+ st.v4.u16 [%rd249], {%rs142, %rs142, %rs142, %rs143};
+ bra.uni BB0_123;
+
+BB0_64:
+ setp.geu.f32 %p56, %f156, 0f00000000;
+ @%p56 bra BB0_67;
+
+ mov.f32 %f851, 0f3EE66666;
+ cvt.rzi.f32.f32 %f582, %f851;
+ setp.neu.f32 %p57, %f582, 0f3EE66666;
+ selp.f32 %f948, 0f7FFFFFFF, %f948, %p57;
+
+BB0_67:
+ abs.f32 %f828, %f156;
+ add.f32 %f584, %f828, 0f3EE66666;
+ mov.b32 %r261, %f584;
+ setp.lt.s32 %p59, %r261, 2139095040;
+ @%p59 bra BB0_72;
+
+ abs.f32 %f849, %f156;
+ setp.gtu.f32 %p60, %f849, 0f7F800000;
+ @%p60 bra BB0_71;
+ bra.uni BB0_69;
+
+BB0_71:
+ add.f32 %f948, %f156, 0f3EE66666;
+ bra.uni BB0_72;
+
+BB0_69:
+ abs.f32 %f850, %f156;
+ setp.neu.f32 %p61, %f850, 0f7F800000;
+ @%p61 bra BB0_72;
+
+ selp.f32 %f948, 0fFF800000, 0f7F800000, %p1;
+
+BB0_72:
+ mov.f32 %f837, 0fB5BFBE8E;
+ mov.f32 %f836, 0fBF317200;
+ mov.f32 %f835, 0f00000000;
+ mov.f32 %f834, 0f35BFBE8E;
+ mov.f32 %f833, 0f3F317200;
+ mov.f32 %f832, 0f3DAAAABD;
+ mov.f32 %f831, 0f3C4CAF63;
+ mov.f32 %f830, 0f3B18F0FE;
+ mov.f32 %f829, 0f3EE66666;
+ setp.eq.f32 %p62, %f156, 0f3F800000;
+ selp.f32 %f172, 0f3F800000, %f948, %p62;
+ abs.f32 %f173, %f157;
+ setp.lt.f32 %p63, %f173, 0f00800000;
+ mul.f32 %f587, %f173, 0f4B800000;
+ selp.f32 %f588, 0fC3170000, 0fC2FE0000, %p63;
+ selp.f32 %f589, %f587, %f173, %p63;
+ mov.b32 %r262, %f589;
+ and.b32 %r263, %r262, 8388607;
+ or.b32 %r264, %r263, 1065353216;
+ mov.b32 %f590, %r264;
+ shr.u32 %r265, %r262, 23;
+ cvt.rn.f32.u32 %f591, %r265;
+ add.f32 %f592, %f588, %f591;
+ setp.gt.f32 %p64, %f590, 0f3FB504F3;
+ mul.f32 %f593, %f590, 0f3F000000;
+ add.f32 %f594, %f592, 0f3F800000;
+ selp.f32 %f595, %f593, %f590, %p64;
+ selp.f32 %f596, %f594, %f592, %p64;
+ add.f32 %f597, %f595, 0fBF800000;
+ add.f32 %f586, %f595, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f585,%f586;
+ // inline asm
+ add.f32 %f598, %f597, %f597;
+ mul.f32 %f599, %f585, %f598;
+ mul.f32 %f600, %f599, %f599;
+ fma.rn.f32 %f603, %f830, %f600, %f831;
+ fma.rn.f32 %f605, %f603, %f600, %f832;
+ mul.rn.f32 %f606, %f605, %f600;
+ mul.rn.f32 %f607, %f606, %f599;
+ sub.f32 %f608, %f597, %f599;
+ neg.f32 %f609, %f599;
+ add.f32 %f610, %f608, %f608;
+ fma.rn.f32 %f611, %f609, %f597, %f610;
+ mul.rn.f32 %f612, %f585, %f611;
+ add.f32 %f613, %f607, %f599;
+ sub.f32 %f614, %f599, %f613;
+ add.f32 %f615, %f607, %f614;
+ add.f32 %f616, %f612, %f615;
+ add.f32 %f617, %f613, %f616;
+ sub.f32 %f618, %f613, %f617;
+ add.f32 %f619, %f616, %f618;
+ mul.rn.f32 %f621, %f596, %f833;
+ mul.rn.f32 %f623, %f596, %f834;
+ add.f32 %f624, %f621, %f617;
+ sub.f32 %f625, %f621, %f624;
+ add.f32 %f626, %f617, %f625;
+ add.f32 %f627, %f619, %f626;
+ add.f32 %f628, %f623, %f627;
+ add.f32 %f629, %f624, %f628;
+ sub.f32 %f630, %f624, %f629;
+ add.f32 %f631, %f628, %f630;
+ mul.rn.f32 %f633, %f829, %f629;
+ neg.f32 %f634, %f633;
+ fma.rn.f32 %f635, %f829, %f629, %f634;
+ fma.rn.f32 %f636, %f829, %f631, %f635;
+ fma.rn.f32 %f638, %f835, %f629, %f636;
+ add.rn.f32 %f639, %f633, %f638;
+ neg.f32 %f640, %f639;
+ add.rn.f32 %f641, %f633, %f640;
+ add.rn.f32 %f642, %f641, %f638;
+ mov.b32 %r266, %f639;
+ setp.eq.s32 %p65, %r266, 1118925336;
+ add.s32 %r267, %r266, -1;
+ mov.b32 %f643, %r267;
+ add.f32 %f644, %f642, 0f37000000;
+ selp.f32 %f645, %f643, %f639, %p65;
+ selp.f32 %f174, %f644, %f642, %p65;
+ mul.f32 %f646, %f645, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f647, %f646;
+ fma.rn.f32 %f649, %f647, %f836, %f645;
+ fma.rn.f32 %f651, %f647, %f837, %f649;
+ mul.f32 %f652, %f651, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f653, %f652;
+ add.f32 %f654, %f647, 0f00000000;
+ ex2.approx.f32 %f655, %f654;
+ mul.f32 %f656, %f653, %f655;
+ setp.lt.f32 %p66, %f645, 0fC2D20000;
+ selp.f32 %f657, 0f00000000, %f656, %p66;
+ setp.gt.f32 %p67, %f645, 0f42D20000;
+ selp.f32 %f949, 0f7F800000, %f657, %p67;
+ setp.eq.f32 %p68, %f949, 0f7F800000;
+ @%p68 bra BB0_74;
+
+ fma.rn.f32 %f949, %f949, %f174, %f949;
+
+BB0_74:
+ setp.lt.f32 %p69, %f157, 0f00000000;
+ and.pred %p2, %p69, %p54;
+ mov.b32 %r268, %f949;
+ xor.b32 %r269, %r268, -2147483648;
+ mov.b32 %f658, %r269;
+ selp.f32 %f951, %f658, %f949, %p2;
+ setp.eq.f32 %p71, %f157, 0f00000000;
+ @%p71 bra BB0_77;
+ bra.uni BB0_75;
+
+BB0_77:
+ add.f32 %f661, %f157, %f157;
+ selp.f32 %f951, %f661, 0f00000000, %p54;
+ bra.uni BB0_78;
+
+BB0_75:
+ setp.geu.f32 %p72, %f157, 0f00000000;
+ @%p72 bra BB0_78;
+
+ mov.f32 %f848, 0f3EE66666;
+ cvt.rzi.f32.f32 %f660, %f848;
+ setp.neu.f32 %p73, %f660, 0f3EE66666;
+ selp.f32 %f951, 0f7FFFFFFF, %f951, %p73;
+
+BB0_78:
+ abs.f32 %f852, %f157;
+ add.f32 %f662, %f852, 0f3EE66666;
+ mov.b32 %r270, %f662;
+ setp.lt.s32 %p75, %r270, 2139095040;
+ @%p75 bra BB0_83;
+
+ abs.f32 %f853, %f157;
+ setp.gtu.f32 %p76, %f853, 0f7F800000;
+ @%p76 bra BB0_82;
+ bra.uni BB0_80;
+
+BB0_82:
+ add.f32 %f951, %f157, 0f3EE66666;
+ bra.uni BB0_83;
+
+BB0_80:
+ abs.f32 %f854, %f157;
+ setp.neu.f32 %p77, %f854, 0f7F800000;
+ @%p77 bra BB0_83;
+
+ selp.f32 %f951, 0fFF800000, 0f7F800000, %p2;
+
+BB0_83:
+ mov.f32 %f846, 0fB5BFBE8E;
+ mov.f32 %f845, 0fBF317200;
+ mov.f32 %f844, 0f00000000;
+ mov.f32 %f843, 0f35BFBE8E;
+ mov.f32 %f842, 0f3F317200;
+ mov.f32 %f841, 0f3DAAAABD;
+ mov.f32 %f840, 0f3C4CAF63;
+ mov.f32 %f839, 0f3B18F0FE;
+ mov.f32 %f838, 0f3EE66666;
+ setp.eq.f32 %p78, %f157, 0f3F800000;
+ selp.f32 %f185, 0f3F800000, %f951, %p78;
+ abs.f32 %f186, %f158;
+ setp.lt.f32 %p79, %f186, 0f00800000;
+ mul.f32 %f665, %f186, 0f4B800000;
+ selp.f32 %f666, 0fC3170000, 0fC2FE0000, %p79;
+ selp.f32 %f667, %f665, %f186, %p79;
+ mov.b32 %r271, %f667;
+ and.b32 %r272, %r271, 8388607;
+ or.b32 %r273, %r272, 1065353216;
+ mov.b32 %f668, %r273;
+ shr.u32 %r274, %r271, 23;
+ cvt.rn.f32.u32 %f669, %r274;
+ add.f32 %f670, %f666, %f669;
+ setp.gt.f32 %p80, %f668, 0f3FB504F3;
+ mul.f32 %f671, %f668, 0f3F000000;
+ add.f32 %f672, %f670, 0f3F800000;
+ selp.f32 %f673, %f671, %f668, %p80;
+ selp.f32 %f674, %f672, %f670, %p80;
+ add.f32 %f675, %f673, 0fBF800000;
+ add.f32 %f664, %f673, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f663,%f664;
+ // inline asm
+ add.f32 %f676, %f675, %f675;
+ mul.f32 %f677, %f663, %f676;
+ mul.f32 %f678, %f677, %f677;
+ fma.rn.f32 %f681, %f839, %f678, %f840;
+ fma.rn.f32 %f683, %f681, %f678, %f841;
+ mul.rn.f32 %f684, %f683, %f678;
+ mul.rn.f32 %f685, %f684, %f677;
+ sub.f32 %f686, %f675, %f677;
+ neg.f32 %f687, %f677;
+ add.f32 %f688, %f686, %f686;
+ fma.rn.f32 %f689, %f687, %f675, %f688;
+ mul.rn.f32 %f690, %f663, %f689;
+ add.f32 %f691, %f685, %f677;
+ sub.f32 %f692, %f677, %f691;
+ add.f32 %f693, %f685, %f692;
+ add.f32 %f694, %f690, %f693;
+ add.f32 %f695, %f691, %f694;
+ sub.f32 %f696, %f691, %f695;
+ add.f32 %f697, %f694, %f696;
+ mul.rn.f32 %f699, %f674, %f842;
+ mul.rn.f32 %f701, %f674, %f843;
+ add.f32 %f702, %f699, %f695;
+ sub.f32 %f703, %f699, %f702;
+ add.f32 %f704, %f695, %f703;
+ add.f32 %f705, %f697, %f704;
+ add.f32 %f706, %f701, %f705;
+ add.f32 %f707, %f702, %f706;
+ sub.f32 %f708, %f702, %f707;
+ add.f32 %f709, %f706, %f708;
+ mul.rn.f32 %f711, %f838, %f707;
+ neg.f32 %f712, %f711;
+ fma.rn.f32 %f713, %f838, %f707, %f712;
+ fma.rn.f32 %f714, %f838, %f709, %f713;
+ fma.rn.f32 %f716, %f844, %f707, %f714;
+ add.rn.f32 %f717, %f711, %f716;
+ neg.f32 %f718, %f717;
+ add.rn.f32 %f719, %f711, %f718;
+ add.rn.f32 %f720, %f719, %f716;
+ mov.b32 %r275, %f717;
+ setp.eq.s32 %p81, %r275, 1118925336;
+ add.s32 %r276, %r275, -1;
+ mov.b32 %f721, %r276;
+ add.f32 %f722, %f720, 0f37000000;
+ selp.f32 %f723, %f721, %f717, %p81;
+ selp.f32 %f187, %f722, %f720, %p81;
+ mul.f32 %f724, %f723, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f725, %f724;
+ fma.rn.f32 %f727, %f725, %f845, %f723;
+ fma.rn.f32 %f729, %f725, %f846, %f727;
+ mul.f32 %f730, %f729, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f731, %f730;
+ add.f32 %f732, %f725, 0f00000000;
+ ex2.approx.f32 %f733, %f732;
+ mul.f32 %f734, %f731, %f733;
+ setp.lt.f32 %p82, %f723, 0fC2D20000;
+ selp.f32 %f735, 0f00000000, %f734, %p82;
+ setp.gt.f32 %p83, %f723, 0f42D20000;
+ selp.f32 %f952, 0f7F800000, %f735, %p83;
+ setp.eq.f32 %p84, %f952, 0f7F800000;
+ @%p84 bra BB0_85;
+
+ fma.rn.f32 %f952, %f952, %f187, %f952;
+
+BB0_85:
+ setp.lt.f32 %p85, %f158, 0f00000000;
+ and.pred %p3, %p85, %p54;
+ mov.b32 %r277, %f952;
+ xor.b32 %r278, %r277, -2147483648;
+ mov.b32 %f736, %r278;
+ selp.f32 %f954, %f736, %f952, %p3;
+ setp.eq.f32 %p87, %f158, 0f00000000;
+ @%p87 bra BB0_88;
+ bra.uni BB0_86;
+
+BB0_88:
+ add.f32 %f739, %f158, %f158;
+ selp.f32 %f954, %f739, 0f00000000, %p54;
+ bra.uni BB0_89;
+
+BB0_86:
+ setp.geu.f32 %p88, %f158, 0f00000000;
+ @%p88 bra BB0_89;
+
+ mov.f32 %f847, 0f3EE66666;
+ cvt.rzi.f32.f32 %f738, %f847;
+ setp.neu.f32 %p89, %f738, 0f3EE66666;
+ selp.f32 %f954, 0f7FFFFFFF, %f954, %p89;
+
+BB0_89:
+ abs.f32 %f875, %f158;
+ add.f32 %f740, %f875, 0f3EE66666;
+ mov.b32 %r279, %f740;
+ setp.lt.s32 %p91, %r279, 2139095040;
+ @%p91 bra BB0_94;
+
+ abs.f32 %f876, %f158;
+ setp.gtu.f32 %p92, %f876, 0f7F800000;
+ @%p92 bra BB0_93;
+ bra.uni BB0_91;
+
+BB0_93:
+ add.f32 %f954, %f158, 0f3EE66666;
+ bra.uni BB0_94;
+
+BB0_91:
+ abs.f32 %f877, %f158;
+ setp.neu.f32 %p93, %f877, 0f7F800000;
+ @%p93 bra BB0_94;
+
+ selp.f32 %f954, 0fFF800000, 0f7F800000, %p3;
+
+BB0_94:
+ mov.u32 %r351, 2;
+ mov.u32 %r342, 4;
+ mov.u64 %rd256, 0;
+ setp.eq.f32 %p94, %f158, 0f3F800000;
+ selp.f32 %f741, 0f3F800000, %f954, %p94;
+ cvt.u64.u32 %rd97, %r4;
+ cvt.u64.u32 %rd96, %r3;
+ mov.u64 %rd100, image;
+ cvta.global.u64 %rd95, %rd100;
+ // inline asm
+ call (%rd94), _rt_buffer_get_64, (%rd95, %r351, %r342, %rd96, %rd97, %rd256, %rd256);
+ // inline asm
+ cvt.sat.f32.f32 %f742, %f741;
+ mul.f32 %f743, %f742, 0f437FFD71;
+ cvt.rzi.u32.f32 %r282, %f743;
+ cvt.sat.f32.f32 %f744, %f185;
+ mul.f32 %f745, %f744, 0f437FFD71;
+ cvt.rzi.u32.f32 %r283, %f745;
+ cvt.sat.f32.f32 %f746, %f172;
+ mul.f32 %f747, %f746, 0f437FFD71;
+ cvt.rzi.u32.f32 %r284, %f747;
+ cvt.u16.u32 %rs46, %r282;
+ cvt.u16.u32 %rs47, %r284;
+ cvt.u16.u32 %rs48, %r283;
+ mov.u16 %rs49, 255;
+ st.v4.u8 [%rd94], {%rs46, %rs48, %rs47, %rs49};
+ ld.global.u32 %r410, [imageEnabled];
+
+BB0_95:
+ and.b32 %r285, %r410, 4;
+ setp.eq.s32 %p95, %r285, 0;
+ @%p95 bra BB0_97;
+
+ mov.u32 %r352, 2;
+ mov.u32 %r343, 8;
+ mov.u64 %rd257, 0;
+ cvt.u64.u32 %rd103, %r3;
+ cvt.u64.u32 %rd104, %r4;
+ mov.u64 %rd107, image_HDR;
+ cvta.global.u64 %rd102, %rd107;
+ // inline asm
+ call (%rd101), _rt_buffer_get_64, (%rd102, %r352, %r343, %rd103, %rd104, %rd257, %rd257);
+ // inline asm
+ mov.f32 %f751, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs53, %f751;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f158;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f157;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f156;}
+
+ // inline asm
+ st.v4.u16 [%rd101], {%rs50, %rs51, %rs52, %rs53};
+ ld.global.u32 %r410, [imageEnabled];
+
+BB0_97:
+ and.b32 %r288, %r410, 16;
+ setp.eq.s32 %p96, %r288, 0;
+ @%p96 bra BB0_99;
+
+ mov.u32 %r353, 2;
+ mov.u32 %r344, 8;
+ mov.u64 %rd258, 0;
+ cvt.u64.u32 %rd111, %r4;
+ cvt.u64.u32 %rd110, %r3;
+ mov.u64 %rd114, image_HDR2;
+ cvta.global.u64 %rd109, %rd114;
+ // inline asm
+ call (%rd108), _rt_buffer_get_64, (%rd109, %r353, %r344, %rd110, %rd111, %rd258, %rd258);
+ // inline asm
+ mov.f32 %f755, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f755;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs56, %f155;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs55, %f154;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs54, %f153;}
+
+ // inline asm
+ st.v4.u16 [%rd108], {%rs54, %rs55, %rs56, %rs57};
+
+BB0_99:
+ cvt.u64.u32 %rd18, %r3;
+ cvt.u64.u32 %rd19, %r4;
+ add.f32 %f757, %f141, %f144;
+ add.f32 %f758, %f147, %f757;
+ add.f32 %f759, %f142, %f145;
+ add.f32 %f760, %f148, %f759;
+ add.f32 %f761, %f143, %f146;
+ add.f32 %f762, %f149, %f761;
+ mul.f32 %f763, %f758, 0f3F13CD3A;
+ mul.f32 %f764, %f760, 0f3F13CD3A;
+ mul.f32 %f765, %f762, 0f3F13CD3A;
+ div.rn.f32 %f766, %f150, %f763;
+ div.rn.f32 %f767, %f151, %f764;
+ div.rn.f32 %f768, %f152, %f765;
+ setp.eq.f32 %p97, %f150, 0f00000000;
+ selp.f32 %f769, 0f00000000, %f766, %p97;
+ setp.eq.f32 %p98, %f151, 0f00000000;
+ selp.f32 %f770, 0f00000000, %f767, %p98;
+ setp.eq.f32 %p99, %f152, 0f00000000;
+ selp.f32 %f771, 0f00000000, %f768, %p99;
+ mul.f32 %f198, %f141, %f769;
+ mul.f32 %f199, %f142, %f770;
+ mul.f32 %f200, %f143, %f771;
+ mul.f32 %f201, %f144, %f769;
+ mul.f32 %f202, %f145, %f770;
+ mul.f32 %f203, %f146, %f771;
+ mul.f32 %f204, %f147, %f769;
+ mul.f32 %f205, %f148, %f770;
+ mul.f32 %f206, %f149, %f771;
+ ld.global.u32 %r291, [additive];
+ setp.eq.s32 %p100, %r291, 0;
+ mov.f32 %f756, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f756;}
+
+ // inline asm
+ @%p100 bra BB0_101;
+
+ mov.u32 %r354, 2;
+ mov.u32 %r345, 8;
+ mov.u64 %rd259, 0;
+ mov.u64 %rd127, image_RNM0;
+ cvta.global.u64 %rd116, %rd127;
+ // inline asm
+ call (%rd115), _rt_buffer_get_64, (%rd116, %r354, %r345, %rd18, %rd19, %rd259, %rd259);
+ // inline asm
+ ld.v4.u16 {%rs65, %rs66, %rs67, %rs68}, [%rd115];
+ // inline asm
+ { cvt.f32.f16 %f772, %rs65;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f773, %rs66;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f774, %rs67;}
+
+ // inline asm
+ // inline asm
+ call (%rd121), _rt_buffer_get_64, (%rd116, %r354, %r345, %rd18, %rd19, %rd259, %rd259);
+ // inline asm
+ add.f32 %f775, %f198, %f772;
+ add.f32 %f776, %f199, %f773;
+ add.f32 %f777, %f200, %f774;
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f777;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs63, %f776;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs62, %f775;}
+
+ // inline asm
+ st.v4.u16 [%rd121], {%rs62, %rs63, %rs64, %rs58};
+ bra.uni BB0_102;
+
+BB0_101:
+ mov.u32 %r359, 2;
+ mov.u32 %r350, 8;
+ mov.u64 %rd264, 0;
+ mov.u64 %rd134, image_RNM0;
+ cvta.global.u64 %rd129, %rd134;
+ // inline asm
+ call (%rd128), _rt_buffer_get_64, (%rd129, %r359, %r350, %rd18, %rd19, %rd264, %rd264);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f200;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs70, %f199;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs69, %f198;}
+
+ // inline asm
+ st.v4.u16 [%rd128], {%rs69, %rs70, %rs71, %rs58};
+
+BB0_102:
+ ld.global.u32 %r298, [additive];
+ setp.eq.s32 %p101, %r298, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f756;}
+
+ // inline asm
+ @%p101 bra BB0_104;
+
+ mov.u32 %r355, 2;
+ mov.u32 %r346, 8;
+ mov.u64 %rd260, 0;
+ mov.u64 %rd147, image_RNM1;
+ cvta.global.u64 %rd136, %rd147;
+ // inline asm
+ call (%rd135), _rt_buffer_get_64, (%rd136, %r355, %r346, %rd18, %rd19, %rd260, %rd260);
+ // inline asm
+ ld.v4.u16 {%rs79, %rs80, %rs81, %rs82}, [%rd135];
+ // inline asm
+ { cvt.f32.f16 %f782, %rs79;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f783, %rs80;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f784, %rs81;}
+
+ // inline asm
+ // inline asm
+ call (%rd141), _rt_buffer_get_64, (%rd136, %r355, %r346, %rd18, %rd19, %rd260, %rd260);
+ // inline asm
+ add.f32 %f785, %f201, %f782;
+ add.f32 %f786, %f202, %f783;
+ add.f32 %f787, %f203, %f784;
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f787;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs77, %f786;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs76, %f785;}
+
+ // inline asm
+ st.v4.u16 [%rd141], {%rs76, %rs77, %rs78, %rs72};
+ bra.uni BB0_105;
+
+BB0_104:
+ mov.u32 %r358, 2;
+ mov.u32 %r349, 8;
+ mov.u64 %rd263, 0;
+ mov.u64 %rd154, image_RNM1;
+ cvta.global.u64 %rd149, %rd154;
+ // inline asm
+ call (%rd148), _rt_buffer_get_64, (%rd149, %r358, %r349, %rd18, %rd19, %rd263, %rd263);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f203;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs84, %f202;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs83, %f201;}
+
+ // inline asm
+ st.v4.u16 [%rd148], {%rs83, %rs84, %rs85, %rs72};
+
+BB0_105:
+ ld.global.u32 %r305, [additive];
+ setp.eq.s32 %p102, %r305, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f756;}
+
+ // inline asm
+ @%p102 bra BB0_107;
+
+ mov.u32 %r356, 2;
+ mov.u32 %r347, 8;
+ mov.u64 %rd261, 0;
+ mov.u64 %rd167, image_RNM2;
+ cvta.global.u64 %rd156, %rd167;
+ // inline asm
+ call (%rd155), _rt_buffer_get_64, (%rd156, %r356, %r347, %rd18, %rd19, %rd261, %rd261);
+ // inline asm
+ ld.v4.u16 {%rs93, %rs94, %rs95, %rs96}, [%rd155];
+ // inline asm
+ { cvt.f32.f16 %f792, %rs93;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f793, %rs94;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f794, %rs95;}
+
+ // inline asm
+ // inline asm
+ call (%rd161), _rt_buffer_get_64, (%rd156, %r356, %r347, %rd18, %rd19, %rd261, %rd261);
+ // inline asm
+ add.f32 %f795, %f204, %f792;
+ add.f32 %f796, %f205, %f793;
+ add.f32 %f797, %f206, %f794;
+ // inline asm
+ { cvt.rn.f16.f32 %rs92, %f797;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f796;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs90, %f795;}
+
+ // inline asm
+ st.v4.u16 [%rd161], {%rs90, %rs91, %rs92, %rs86};
+ bra.uni BB0_123;
+
+BB0_107:
+ mov.u32 %r357, 2;
+ mov.u32 %r348, 8;
+ mov.u64 %rd262, 0;
+ mov.u64 %rd174, image_RNM2;
+ cvta.global.u64 %rd169, %rd174;
+ // inline asm
+ call (%rd168), _rt_buffer_get_64, (%rd169, %r357, %r348, %rd18, %rd19, %rd262, %rd262);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs99, %f206;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f205;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f204;}
+
+ // inline asm
+ st.v4.u16 [%rd168], {%rs97, %rs98, %rs99, %rs86};
+
+BB0_123:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIRNM.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIRNM.ptx.meta
new file mode 100644
index 00000000..2726860b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIRNM.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4d3c71a84172b604794c477e7eff48c3
+timeCreated: 1537535653
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGISH.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGISH.ptx
new file mode 100644
index 00000000..37e79797
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGISH.ptx
@@ -0,0 +1,2019 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_RNM0[1];
+.global .align 1 .b8 image_RNM1[1];
+.global .align 1 .b8 image_RNM2[1];
+.global .align 1 .b8 image_RNM3[1];
+.global .align 8 .b8 texCoords[8];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 1 .b8 lightmapDirect[1];
+.global .texref albedoTex;
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<103>;
+ .reg .b16 %rs<145>;
+ .reg .f32 %f<854>;
+ .reg .b32 %r<397>;
+ .reg .b64 %rd<284>;
+
+
+ mov.u64 %rd283, __local_depot0;
+ cvta.local.u64 %SP, %rd283;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r96, %r97}, [pixelID];
+ cvt.u64.u32 %rd22, %r96;
+ cvt.u64.u32 %rd23, %r97;
+ mov.u64 %rd26, uvnormal;
+ cvta.global.u64 %rd21, %rd26;
+ mov.u32 %r94, 2;
+ mov.u32 %r95, 4;
+ mov.u64 %rd25, 0;
+ // inline asm
+ call (%rd20), _rt_buffer_get_64, (%rd21, %r94, %r95, %rd22, %rd23, %rd25, %rd25);
+ // inline asm
+ ld.u32 %r2, [%rd20];
+ shr.u32 %r100, %r2, 16;
+ cvt.u16.u32 %rs1, %r100;
+ and.b16 %rs6, %rs1, 255;
+ cvt.u16.u32 %rs7, %r2;
+ or.b16 %rs8, %rs7, %rs6;
+ setp.eq.s16 %p4, %rs8, 0;
+ mov.f32 %f785, 0f00000000;
+ mov.f32 %f786, %f785;
+ mov.f32 %f787, %f785;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs9, [%rd20+1];
+ and.b16 %rs11, %rs7, 255;
+ cvt.rn.f32.u16 %f195, %rs11;
+ div.rn.f32 %f196, %f195, 0f437F0000;
+ fma.rn.f32 %f197, %f196, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f198, %rs9;
+ div.rn.f32 %f199, %f198, 0f437F0000;
+ fma.rn.f32 %f200, %f199, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f201, %rs6;
+ div.rn.f32 %f202, %f201, 0f437F0000;
+ fma.rn.f32 %f203, %f202, 0f40000000, 0fBF800000;
+ mul.f32 %f204, %f200, %f200;
+ fma.rn.f32 %f205, %f197, %f197, %f204;
+ fma.rn.f32 %f206, %f203, %f203, %f205;
+ sqrt.rn.f32 %f207, %f206;
+ rcp.rn.f32 %f208, %f207;
+ mul.f32 %f785, %f197, %f208;
+ mul.f32 %f786, %f200, %f208;
+ mul.f32 %f787, %f203, %f208;
+
+BB0_2:
+ ld.global.v2.u32 {%r101, %r102}, [pixelID];
+ ld.global.v2.u32 {%r104, %r105}, [tileInfo];
+ add.s32 %r3, %r101, %r104;
+ add.s32 %r4, %r102, %r105;
+ setp.eq.f32 %p5, %f786, 0f00000000;
+ setp.eq.f32 %p6, %f785, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f787, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_105;
+ bra.uni BB0_3;
+
+BB0_105:
+ ld.global.u32 %r396, [imageEnabled];
+ and.b32 %r295, %r396, 1;
+ setp.eq.b32 %p95, %r295, 1;
+ @!%p95 bra BB0_107;
+ bra.uni BB0_106;
+
+BB0_106:
+ cvt.u64.u32 %rd174, %r3;
+ cvt.u64.u32 %rd175, %r4;
+ mov.u64 %rd178, image;
+ cvta.global.u64 %rd173, %rd178;
+ mov.u64 %rd177, 0;
+ // inline asm
+ call (%rd172), _rt_buffer_get_64, (%rd173, %r94, %r95, %rd174, %rd175, %rd177, %rd177);
+ // inline asm
+ mov.u16 %rs88, 0;
+ st.v4.u8 [%rd172], {%rs88, %rs88, %rs88, %rs88};
+ ld.global.u32 %r396, [imageEnabled];
+
+BB0_107:
+ and.b32 %r298, %r396, 4;
+ setp.eq.s32 %p96, %r298, 0;
+ @%p96 bra BB0_109;
+
+ cvt.u64.u32 %rd181, %r3;
+ cvt.u64.u32 %rd182, %r4;
+ mov.u64 %rd185, image_HDR;
+ cvta.global.u64 %rd180, %rd185;
+ mov.u32 %r300, 8;
+ mov.u64 %rd184, 0;
+ // inline asm
+ call (%rd179), _rt_buffer_get_64, (%rd180, %r94, %r300, %rd181, %rd182, %rd184, %rd184);
+ // inline asm
+ mov.f32 %f697, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs89, %f697;}
+
+ // inline asm
+ mov.u16 %rs90, 0;
+ st.v4.u16 [%rd179], {%rs89, %rs89, %rs89, %rs90};
+ ld.global.u32 %r396, [imageEnabled];
+
+BB0_109:
+ and.b32 %r301, %r396, 16;
+ setp.eq.s32 %p97, %r301, 0;
+ @%p97 bra BB0_111;
+
+ cvt.u64.u32 %rd189, %r4;
+ cvt.u64.u32 %rd188, %r3;
+ mov.u64 %rd192, image_HDR2;
+ cvta.global.u64 %rd187, %rd192;
+ mov.u32 %r303, 8;
+ mov.u64 %rd191, 0;
+ // inline asm
+ call (%rd186), _rt_buffer_get_64, (%rd187, %r94, %r303, %rd188, %rd189, %rd191, %rd191);
+ // inline asm
+ mov.f32 %f698, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs91, %f698;}
+
+ // inline asm
+ mov.u16 %rs92, 0;
+ st.v4.u16 [%rd186], {%rs91, %rs91, %rs91, %rs92};
+
+BB0_111:
+ cvt.u64.u32 %rd18, %r3;
+ cvt.u64.u32 %rd19, %r4;
+ ld.global.u32 %r304, [additive];
+ setp.eq.s32 %p98, %r304, 0;
+ @%p98 bra BB0_113;
+
+ mov.u64 %rd205, image_RNM0;
+ cvta.global.u64 %rd194, %rd205;
+ mov.u32 %r308, 8;
+ mov.u64 %rd204, 0;
+ // inline asm
+ call (%rd193), _rt_buffer_get_64, (%rd194, %r94, %r308, %rd18, %rd19, %rd204, %rd204);
+ // inline asm
+ ld.v4.u16 {%rs99, %rs100, %rs101, %rs102}, [%rd193];
+ // inline asm
+ { cvt.f32.f16 %f699, %rs99;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f700, %rs100;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f701, %rs101;}
+
+ // inline asm
+ // inline asm
+ call (%rd199), _rt_buffer_get_64, (%rd194, %r94, %r308, %rd18, %rd19, %rd204, %rd204);
+ // inline asm
+ add.f32 %f702, %f699, 0f00000000;
+ add.f32 %f703, %f700, 0f00000000;
+ add.f32 %f704, %f701, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs98, %f704;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs97, %f703;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs96, %f702;}
+
+ // inline asm
+ mov.u16 %rs103, 0;
+ st.v4.u16 [%rd199], {%rs96, %rs97, %rs98, %rs103};
+ bra.uni BB0_114;
+
+BB0_3:
+ ld.global.v2.u32 {%r115, %r116}, [pixelID];
+ cvt.u64.u32 %rd29, %r115;
+ cvt.u64.u32 %rd30, %r116;
+ mov.u64 %rd45, lightmapDirect;
+ cvta.global.u64 %rd28, %rd45;
+ mov.u32 %r110, 8;
+ // inline asm
+ call (%rd27), _rt_buffer_get_64, (%rd28, %r94, %r110, %rd29, %rd30, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs16, %rs17, %rs18, %rs19}, [%rd27];
+ // inline asm
+ { cvt.f32.f16 %f209, %rs16;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f210, %rs17;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f211, %rs18;}
+
+ // inline asm
+ ld.global.v2.u32 {%r119, %r120}, [pixelID];
+ cvt.u64.u32 %rd35, %r119;
+ cvt.u64.u32 %rd36, %r120;
+ mov.u64 %rd46, uvpos;
+ cvta.global.u64 %rd34, %rd46;
+ mov.u32 %r112, 12;
+ // inline asm
+ call (%rd33), _rt_buffer_get_64, (%rd34, %r94, %r112, %rd35, %rd36, %rd25, %rd25);
+ // inline asm
+ ld.f32 %f227, [%rd33+8];
+ ld.f32 %f228, [%rd33+4];
+ ld.f32 %f229, [%rd33];
+ mul.f32 %f230, %f229, 0f3456BF95;
+ mul.f32 %f231, %f228, 0f3456BF95;
+ mul.f32 %f232, %f227, 0f3456BF95;
+ abs.f32 %f233, %f785;
+ div.rn.f32 %f234, %f230, %f233;
+ abs.f32 %f235, %f786;
+ div.rn.f32 %f236, %f231, %f235;
+ abs.f32 %f237, %f787;
+ div.rn.f32 %f238, %f232, %f237;
+ abs.f32 %f239, %f234;
+ abs.f32 %f240, %f236;
+ abs.f32 %f241, %f238;
+ mov.f32 %f242, 0f38D1B717;
+ max.f32 %f243, %f239, %f242;
+ max.f32 %f244, %f240, %f242;
+ max.f32 %f245, %f241, %f242;
+ fma.rn.f32 %f10, %f785, %f243, %f229;
+ fma.rn.f32 %f11, %f786, %f244, %f228;
+ fma.rn.f32 %f12, %f787, %f245, %f227;
+ setp.gt.f32 %p10, %f233, %f237;
+ neg.f32 %f246, %f786;
+ selp.f32 %f247, %f246, 0f00000000, %p10;
+ neg.f32 %f248, %f787;
+ selp.f32 %f249, %f785, %f248, %p10;
+ selp.f32 %f250, 0f00000000, %f786, %p10;
+ mul.f32 %f251, %f249, %f249;
+ fma.rn.f32 %f252, %f247, %f247, %f251;
+ fma.rn.f32 %f253, %f250, %f250, %f252;
+ sqrt.rn.f32 %f254, %f253;
+ rcp.rn.f32 %f255, %f254;
+ mul.f32 %f13, %f247, %f255;
+ mul.f32 %f14, %f249, %f255;
+ mul.f32 %f15, %f250, %f255;
+ ld.global.v2.u32 {%r123, %r124}, [pixelID];
+ cvt.u64.u32 %rd41, %r123;
+ cvt.u64.u32 %rd42, %r124;
+ mov.u64 %rd47, rnd_seeds;
+ cvta.global.u64 %rd40, %rd47;
+ // inline asm
+ call (%rd39), _rt_buffer_get_64, (%rd40, %r94, %r95, %rd41, %rd42, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f803, 0f00000000;
+ setp.lt.s32 %p11, %r1, 1;
+ mov.f32 %f804, %f803;
+ mov.f32 %f805, %f803;
+ mov.f32 %f806, %f803;
+ mov.f32 %f807, %f803;
+ mov.f32 %f808, %f803;
+ mov.f32 %f809, %f803;
+ mov.f32 %f810, %f803;
+ mov.f32 %f811, %f803;
+ mov.f32 %f812, %f803;
+ mov.f32 %f813, %f803;
+ mov.f32 %f814, %f803;
+ mov.f32 %f815, %f803;
+ mov.f32 %f816, %f803;
+ mov.f32 %f817, %f803;
+ @%p11 bra BB0_54;
+
+ cvt.rn.f32.s32 %f271, %r1;
+ rcp.rn.f32 %f16, %f271;
+ ld.u32 %r372, [%rd39];
+ mul.f32 %f17, %f10, 0f3456BF95;
+ mul.f32 %f18, %f11, 0f3456BF95;
+ mul.f32 %f19, %f12, 0f3456BF95;
+ mul.f32 %f272, %f785, %f14;
+ mul.f32 %f273, %f786, %f13;
+ sub.f32 %f20, %f273, %f272;
+ mul.f32 %f274, %f787, %f13;
+ mul.f32 %f275, %f785, %f15;
+ sub.f32 %f21, %f275, %f274;
+ mul.f32 %f276, %f786, %f15;
+ mul.f32 %f277, %f787, %f14;
+ sub.f32 %f22, %f277, %f276;
+ mov.f32 %f803, 0f00000000;
+ mov.u32 %r127, 0;
+ abs.f32 %f278, %f18;
+ abs.f32 %f279, %f17;
+ max.f32 %f280, %f279, %f278;
+ abs.f32 %f281, %f19;
+ max.f32 %f282, %f280, %f281;
+ mov.u32 %r369, %r127;
+ mov.f32 %f804, %f803;
+ mov.f32 %f805, %f803;
+ mov.f32 %f806, %f803;
+ mov.f32 %f807, %f803;
+ mov.f32 %f808, %f803;
+ mov.f32 %f809, %f803;
+ mov.f32 %f810, %f803;
+ mov.f32 %f811, %f803;
+ mov.f32 %f812, %f803;
+ mov.f32 %f813, %f803;
+ mov.f32 %f814, %f803;
+ mov.f32 %f815, %f803;
+ mov.f32 %f816, %f803;
+ mov.f32 %f817, %f803;
+
+BB0_5:
+ mov.u32 %r371, %r127;
+
+BB0_6:
+ mov.u32 %r9, %r372;
+ cvt.rn.f32.s32 %f767, %r369;
+ mad.lo.s32 %r129, %r9, 1664525, 1013904223;
+ and.b32 %r130, %r129, 16777215;
+ cvt.rn.f32.u32 %f284, %r130;
+ fma.rn.f32 %f285, %f284, 0f33800000, %f767;
+ mul.f32 %f55, %f16, %f285;
+ mad.lo.s32 %r10, %r129, 1664525, 1013904223;
+ and.b32 %r131, %r10, 16777215;
+ cvt.rn.f32.u32 %f286, %r131;
+ cvt.rn.f32.s32 %f287, %r371;
+ fma.rn.f32 %f288, %f286, 0f33800000, %f287;
+ mul.f32 %f289, %f16, %f288;
+ mul.f32 %f290, %f55, %f55;
+ mov.f32 %f291, 0f3F800000;
+ sub.f32 %f292, %f291, %f290;
+ mov.f32 %f293, 0f00000000;
+ max.f32 %f294, %f293, %f292;
+ sqrt.rn.f32 %f56, %f294;
+ mul.f32 %f824, %f289, 0f40C90FDB;
+ abs.f32 %f58, %f824;
+ setp.neu.f32 %p12, %f58, 0f7F800000;
+ mov.f32 %f818, %f824;
+ @%p12 bra BB0_8;
+
+ mov.f32 %f768, 0f00000000;
+ mul.rn.f32 %f818, %f824, %f768;
+
+BB0_8:
+ mul.f32 %f296, %f818, 0f3F22F983;
+ cvt.rni.s32.f32 %r382, %f296;
+ cvt.rn.f32.s32 %f297, %r382;
+ neg.f32 %f298, %f297;
+ mov.f32 %f299, 0f3FC90FDA;
+ fma.rn.f32 %f300, %f298, %f299, %f818;
+ mov.f32 %f301, 0f33A22168;
+ fma.rn.f32 %f302, %f298, %f301, %f300;
+ mov.f32 %f303, 0f27C234C5;
+ fma.rn.f32 %f819, %f298, %f303, %f302;
+ abs.f32 %f304, %f818;
+ setp.leu.f32 %p13, %f304, 0f47CE4780;
+ @%p13 bra BB0_19;
+
+ add.u64 %rd49, %SP, 12;
+ cvta.to.local.u64 %rd279, %rd49;
+ mov.u32 %r373, 0;
+ mov.u64 %rd280, 0;
+ mov.u32 %r374, %r373;
+
+BB0_10:
+ .pragma "nounroll";
+ mov.b32 %r349, %f818;
+ shl.b32 %r348, %r349, 8;
+ or.b32 %r347, %r348, -2147483648;
+ add.u64 %rd275, %SP, 12;
+ cvta.to.local.u64 %rd274, %rd275;
+ shl.b64 %rd50, %rd280, 2;
+ mov.u64 %rd51, __cudart_i2opi_f;
+ add.s64 %rd52, %rd51, %rd50;
+ ld.const.u32 %r137, [%rd52];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r135, %r137, %r347, %r374;
+ madc.hi.u32 %r374, %r137, %r347, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd279], %r135;
+ add.s32 %r373, %r373, 1;
+ cvt.s64.s32 %rd280, %r373;
+ mul.wide.s32 %rd55, %r373, 4;
+ add.s64 %rd279, %rd274, %rd55;
+ setp.ne.s32 %p14, %r373, 6;
+ @%p14 bra BB0_10;
+
+ mov.b32 %r351, %f818;
+ shr.u32 %r350, %r351, 23;
+ add.u64 %rd273, %SP, 12;
+ and.b32 %r140, %r350, 255;
+ add.s32 %r141, %r140, -128;
+ shr.u32 %r142, %r141, 5;
+ cvta.to.local.u64 %rd57, %rd273;
+ st.local.u32 [%rd57+24], %r374;
+ mov.u32 %r143, 6;
+ sub.s32 %r144, %r143, %r142;
+ mul.wide.s32 %rd58, %r144, 4;
+ add.s64 %rd8, %rd57, %rd58;
+ ld.local.u32 %r375, [%rd8];
+ ld.local.u32 %r376, [%rd8+-4];
+ and.b32 %r22, %r350, 31;
+ setp.eq.s32 %p15, %r22, 0;
+ @%p15 bra BB0_13;
+
+ mov.u32 %r145, 32;
+ sub.s32 %r146, %r145, %r22;
+ shr.u32 %r147, %r376, %r146;
+ shl.b32 %r148, %r375, %r22;
+ add.s32 %r375, %r147, %r148;
+ ld.local.u32 %r149, [%rd8+-8];
+ shr.u32 %r150, %r149, %r146;
+ shl.b32 %r151, %r376, %r22;
+ add.s32 %r376, %r150, %r151;
+
+BB0_13:
+ mov.b32 %r354, %f818;
+ and.b32 %r378, %r354, -2147483648;
+ shr.u32 %r152, %r376, 30;
+ shl.b32 %r153, %r375, 2;
+ add.s32 %r377, %r152, %r153;
+ shl.b32 %r28, %r376, 2;
+ shr.u32 %r154, %r377, 31;
+ shr.u32 %r155, %r375, 30;
+ add.s32 %r29, %r154, %r155;
+ setp.eq.s32 %p16, %r154, 0;
+ @%p16 bra BB0_14;
+ bra.uni BB0_15;
+
+BB0_14:
+ mov.u32 %r379, %r28;
+ bra.uni BB0_16;
+
+BB0_15:
+ mov.b32 %r356, %f818;
+ and.b32 %r355, %r356, -2147483648;
+ not.b32 %r156, %r377;
+ neg.s32 %r379, %r28;
+ setp.eq.s32 %p17, %r28, 0;
+ selp.u32 %r157, 1, 0, %p17;
+ add.s32 %r377, %r157, %r156;
+ xor.b32 %r378, %r355, -2147483648;
+
+BB0_16:
+ mov.b32 %r358, %f818;
+ and.b32 %r357, %r358, -2147483648;
+ clz.b32 %r381, %r377;
+ setp.eq.s32 %p18, %r381, 0;
+ shl.b32 %r158, %r377, %r381;
+ mov.u32 %r159, 32;
+ sub.s32 %r160, %r159, %r381;
+ shr.u32 %r161, %r379, %r160;
+ add.s32 %r162, %r161, %r158;
+ selp.b32 %r37, %r377, %r162, %p18;
+ mov.u32 %r163, -921707870;
+ mul.hi.u32 %r380, %r37, %r163;
+ setp.eq.s32 %p19, %r357, 0;
+ neg.s32 %r164, %r29;
+ selp.b32 %r382, %r29, %r164, %p19;
+ setp.lt.s32 %p20, %r380, 1;
+ @%p20 bra BB0_18;
+
+ mul.lo.s32 %r165, %r37, -921707870;
+ shr.u32 %r166, %r165, 31;
+ shl.b32 %r167, %r380, 1;
+ add.s32 %r380, %r166, %r167;
+ add.s32 %r381, %r381, 1;
+
+BB0_18:
+ mov.u32 %r168, 126;
+ sub.s32 %r169, %r168, %r381;
+ shl.b32 %r170, %r169, 23;
+ add.s32 %r171, %r380, 1;
+ shr.u32 %r172, %r171, 7;
+ add.s32 %r173, %r172, 1;
+ shr.u32 %r174, %r173, 1;
+ add.s32 %r175, %r174, %r170;
+ or.b32 %r176, %r175, %r378;
+ mov.b32 %f819, %r176;
+
+BB0_19:
+ add.s32 %r45, %r382, 1;
+ and.b32 %r46, %r45, 1;
+ setp.eq.s32 %p21, %r46, 0;
+ @%p21 bra BB0_21;
+ bra.uni BB0_20;
+
+BB0_21:
+ mul.rn.f32 %f776, %f819, %f819;
+ mov.f32 %f307, 0f3C08839E;
+ mov.f32 %f308, 0fB94CA1F9;
+ fma.rn.f32 %f820, %f308, %f776, %f307;
+ bra.uni BB0_22;
+
+BB0_20:
+ mul.rn.f32 %f772, %f819, %f819;
+ mov.f32 %f305, 0fBAB6061A;
+ mov.f32 %f306, 0f37CCF5CE;
+ fma.rn.f32 %f820, %f306, %f772, %f305;
+
+BB0_22:
+ @%p21 bra BB0_24;
+ bra.uni BB0_23;
+
+BB0_24:
+ mul.rn.f32 %f775, %f819, %f819;
+ mov.f32 %f771, 0f00000000;
+ mov.f32 %f312, 0fBE2AAAA3;
+ fma.rn.f32 %f313, %f820, %f775, %f312;
+ fma.rn.f32 %f821, %f313, %f775, %f771;
+ bra.uni BB0_25;
+
+BB0_23:
+ mul.rn.f32 %f773, %f819, %f819;
+ mov.f32 %f309, 0f3D2AAAA5;
+ fma.rn.f32 %f310, %f820, %f773, %f309;
+ mov.f32 %f311, 0fBF000000;
+ fma.rn.f32 %f821, %f310, %f773, %f311;
+
+BB0_25:
+ fma.rn.f32 %f822, %f821, %f819, %f819;
+ @%p21 bra BB0_27;
+
+ mul.rn.f32 %f774, %f819, %f819;
+ mov.f32 %f758, 0f3F800000;
+ fma.rn.f32 %f822, %f821, %f774, %f758;
+
+BB0_27:
+ add.s32 %r359, %r382, 1;
+ and.b32 %r177, %r359, 2;
+ setp.eq.s32 %p24, %r177, 0;
+ @%p24 bra BB0_29;
+
+ mov.f32 %f759, 0f00000000;
+ mov.f32 %f317, 0fBF800000;
+ fma.rn.f32 %f822, %f822, %f317, %f759;
+
+BB0_29:
+ abs.f32 %f760, %f824;
+ setp.neu.f32 %p102, %f760, 0f7F800000;
+ @%p102 bra BB0_31;
+
+ mov.f32 %f770, 0f00000000;
+ mul.rn.f32 %f824, %f824, %f770;
+
+BB0_31:
+ mov.f32 %f763, 0f27C234C5;
+ mov.f32 %f762, 0f33A22168;
+ mov.f32 %f761, 0f3FC90FDA;
+ mul.f32 %f319, %f824, 0f3F22F983;
+ cvt.rni.s32.f32 %r392, %f319;
+ cvt.rn.f32.s32 %f320, %r392;
+ neg.f32 %f321, %f320;
+ fma.rn.f32 %f323, %f321, %f761, %f824;
+ fma.rn.f32 %f325, %f321, %f762, %f323;
+ fma.rn.f32 %f825, %f321, %f763, %f325;
+ abs.f32 %f327, %f824;
+ setp.leu.f32 %p26, %f327, 0f47CE4780;
+ @%p26 bra BB0_42;
+
+ add.u64 %rd60, %SP, 12;
+ cvta.to.local.u64 %rd281, %rd60;
+ mov.b32 %r48, %f824;
+ shl.b32 %r180, %r48, 8;
+ or.b32 %r50, %r180, -2147483648;
+ mov.u32 %r383, 0;
+ mov.u64 %rd282, %rd25;
+ mov.u32 %r384, %r383;
+
+BB0_33:
+ .pragma "nounroll";
+ add.u64 %rd277, %SP, 12;
+ cvta.to.local.u64 %rd276, %rd277;
+ shl.b64 %rd61, %rd282, 2;
+ mov.u64 %rd62, __cudart_i2opi_f;
+ add.s64 %rd63, %rd62, %rd61;
+ ld.const.u32 %r183, [%rd63];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r181, %r183, %r50, %r384;
+ madc.hi.u32 %r384, %r183, %r50, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd281], %r181;
+ add.s32 %r383, %r383, 1;
+ cvt.s64.s32 %rd282, %r383;
+ mul.wide.s32 %rd64, %r383, 4;
+ add.s64 %rd281, %rd276, %rd64;
+ setp.ne.s32 %p27, %r383, 6;
+ @%p27 bra BB0_33;
+
+ mov.b32 %r361, %f824;
+ shr.u32 %r360, %r361, 23;
+ add.u64 %rd278, %SP, 12;
+ and.b32 %r186, %r360, 255;
+ add.s32 %r187, %r186, -128;
+ shr.u32 %r188, %r187, 5;
+ cvta.to.local.u64 %rd66, %rd278;
+ st.local.u32 [%rd66+24], %r384;
+ mov.u32 %r189, 6;
+ sub.s32 %r190, %r189, %r188;
+ mul.wide.s32 %rd67, %r190, 4;
+ add.s64 %rd15, %rd66, %rd67;
+ ld.local.u32 %r385, [%rd15];
+ ld.local.u32 %r386, [%rd15+-4];
+ and.b32 %r58, %r360, 31;
+ setp.eq.s32 %p28, %r58, 0;
+ @%p28 bra BB0_36;
+
+ mov.u32 %r191, 32;
+ sub.s32 %r192, %r191, %r58;
+ shr.u32 %r193, %r386, %r192;
+ shl.b32 %r194, %r385, %r58;
+ add.s32 %r385, %r193, %r194;
+ ld.local.u32 %r195, [%rd15+-8];
+ shr.u32 %r196, %r195, %r192;
+ shl.b32 %r197, %r386, %r58;
+ add.s32 %r386, %r196, %r197;
+
+BB0_36:
+ mov.b32 %r364, %f824;
+ and.b32 %r388, %r364, -2147483648;
+ shr.u32 %r198, %r386, 30;
+ shl.b32 %r199, %r385, 2;
+ add.s32 %r387, %r198, %r199;
+ shl.b32 %r64, %r386, 2;
+ shr.u32 %r200, %r387, 31;
+ shr.u32 %r201, %r385, 30;
+ add.s32 %r65, %r200, %r201;
+ setp.eq.s32 %p29, %r200, 0;
+ @%p29 bra BB0_37;
+ bra.uni BB0_38;
+
+BB0_37:
+ mov.u32 %r389, %r64;
+ bra.uni BB0_39;
+
+BB0_38:
+ mov.b32 %r366, %f824;
+ and.b32 %r365, %r366, -2147483648;
+ not.b32 %r202, %r387;
+ neg.s32 %r389, %r64;
+ setp.eq.s32 %p30, %r64, 0;
+ selp.u32 %r203, 1, 0, %p30;
+ add.s32 %r387, %r203, %r202;
+ xor.b32 %r388, %r365, -2147483648;
+
+BB0_39:
+ mov.b32 %r368, %f824;
+ and.b32 %r367, %r368, -2147483648;
+ clz.b32 %r391, %r387;
+ setp.eq.s32 %p31, %r391, 0;
+ shl.b32 %r204, %r387, %r391;
+ mov.u32 %r205, 32;
+ sub.s32 %r206, %r205, %r391;
+ shr.u32 %r207, %r389, %r206;
+ add.s32 %r208, %r207, %r204;
+ selp.b32 %r73, %r387, %r208, %p31;
+ mov.u32 %r209, -921707870;
+ mul.hi.u32 %r390, %r73, %r209;
+ setp.eq.s32 %p32, %r367, 0;
+ neg.s32 %r210, %r65;
+ selp.b32 %r392, %r65, %r210, %p32;
+ setp.lt.s32 %p33, %r390, 1;
+ @%p33 bra BB0_41;
+
+ mul.lo.s32 %r211, %r73, -921707870;
+ shr.u32 %r212, %r211, 31;
+ shl.b32 %r213, %r390, 1;
+ add.s32 %r390, %r212, %r213;
+ add.s32 %r391, %r391, 1;
+
+BB0_41:
+ mov.u32 %r214, 126;
+ sub.s32 %r215, %r214, %r391;
+ shl.b32 %r216, %r215, 23;
+ add.s32 %r217, %r390, 1;
+ shr.u32 %r218, %r217, 7;
+ add.s32 %r219, %r218, 1;
+ shr.u32 %r220, %r219, 1;
+ add.s32 %r221, %r220, %r216;
+ or.b32 %r222, %r221, %r388;
+ mov.b32 %f825, %r222;
+
+BB0_42:
+ and.b32 %r81, %r392, 1;
+ setp.eq.s32 %p34, %r81, 0;
+ @%p34 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mul.rn.f32 %f784, %f825, %f825;
+ mov.f32 %f330, 0f3C08839E;
+ mov.f32 %f331, 0fB94CA1F9;
+ fma.rn.f32 %f826, %f331, %f784, %f330;
+ bra.uni BB0_45;
+
+BB0_43:
+ mul.rn.f32 %f780, %f825, %f825;
+ mov.f32 %f328, 0fBAB6061A;
+ mov.f32 %f329, 0f37CCF5CE;
+ fma.rn.f32 %f826, %f329, %f780, %f328;
+
+BB0_45:
+ @%p34 bra BB0_47;
+ bra.uni BB0_46;
+
+BB0_47:
+ mul.rn.f32 %f783, %f825, %f825;
+ mov.f32 %f769, 0f00000000;
+ mov.f32 %f335, 0fBE2AAAA3;
+ fma.rn.f32 %f336, %f826, %f783, %f335;
+ fma.rn.f32 %f827, %f336, %f783, %f769;
+ bra.uni BB0_48;
+
+BB0_46:
+ mul.rn.f32 %f781, %f825, %f825;
+ mov.f32 %f332, 0f3D2AAAA5;
+ fma.rn.f32 %f333, %f826, %f781, %f332;
+ mov.f32 %f334, 0fBF000000;
+ fma.rn.f32 %f827, %f333, %f781, %f334;
+
+BB0_48:
+ fma.rn.f32 %f828, %f827, %f825, %f825;
+ @%p34 bra BB0_50;
+
+ mul.rn.f32 %f782, %f825, %f825;
+ mov.f32 %f764, 0f3F800000;
+ fma.rn.f32 %f828, %f827, %f782, %f764;
+
+BB0_50:
+ and.b32 %r223, %r392, 2;
+ setp.eq.s32 %p37, %r223, 0;
+ @%p37 bra BB0_52;
+
+ mov.f32 %f765, 0f00000000;
+ mov.f32 %f340, 0fBF800000;
+ fma.rn.f32 %f828, %f828, %f340, %f765;
+
+BB0_52:
+ mad.lo.s32 %r344, %r9, 1664525, 1013904223;
+ mad.lo.s32 %r372, %r344, 1664525, 1013904223;
+ max.f32 %f766, %f282, %f242;
+ mul.f32 %f349, %f56, %f822;
+ add.u64 %rd68, %SP, 0;
+ cvta.to.local.u64 %rd69, %rd68;
+ mul.f32 %f350, %f56, %f828;
+ mul.f32 %f351, %f13, %f350;
+ mul.f32 %f352, %f14, %f350;
+ mul.f32 %f353, %f15, %f350;
+ fma.rn.f32 %f354, %f22, %f349, %f351;
+ fma.rn.f32 %f355, %f21, %f349, %f352;
+ fma.rn.f32 %f356, %f20, %f349, %f353;
+ fma.rn.f32 %f344, %f785, %f55, %f354;
+ fma.rn.f32 %f345, %f786, %f55, %f355;
+ fma.rn.f32 %f346, %f787, %f55, %f356;
+ mov.u32 %r225, 0;
+ st.local.u32 [%rd69+8], %r225;
+ st.local.u32 [%rd69+4], %r225;
+ st.local.u32 [%rd69], %r225;
+ ld.global.u32 %r224, [root];
+ mov.f32 %f348, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r224, %f10, %f11, %f12, %f344, %f345, %f346, %r225, %f766, %f348, %rd68, %r112);
+ // inline asm
+ mul.f32 %f357, %f786, %f345;
+ fma.rn.f32 %f358, %f785, %f344, %f357;
+ fma.rn.f32 %f359, %f787, %f346, %f358;
+ mul.f32 %f360, %f359, 0f40800000;
+ cvt.sat.f32.f32 %f361, %f360;
+ ld.local.f32 %f362, [%rd69];
+ mul.f32 %f363, %f361, %f362;
+ ld.local.f32 %f364, [%rd69+4];
+ mul.f32 %f365, %f361, %f364;
+ ld.local.f32 %f366, [%rd69+8];
+ mul.f32 %f367, %f361, %f366;
+ fma.rn.f32 %f811, %f344, %f363, %f811;
+ fma.rn.f32 %f810, %f344, %f365, %f810;
+ fma.rn.f32 %f809, %f344, %f367, %f809;
+ fma.rn.f32 %f814, %f345, %f363, %f814;
+ fma.rn.f32 %f813, %f345, %f365, %f813;
+ fma.rn.f32 %f812, %f345, %f367, %f812;
+ fma.rn.f32 %f817, %f346, %f363, %f817;
+ fma.rn.f32 %f816, %f346, %f365, %f816;
+ fma.rn.f32 %f815, %f346, %f367, %f815;
+ add.f32 %f808, %f808, %f363;
+ add.f32 %f807, %f807, %f365;
+ add.f32 %f806, %f806, %f367;
+ cvt.sat.f32.f32 %f368, %f359;
+ fma.rn.f32 %f805, %f368, %f362, %f805;
+ fma.rn.f32 %f804, %f368, %f364, %f804;
+ fma.rn.f32 %f803, %f368, %f366, %f803;
+ add.s32 %r371, %r371, 1;
+ setp.lt.s32 %p38, %r371, %r1;
+ @%p38 bra BB0_6;
+
+ mad.lo.s32 %r346, %r9, 1664525, 1013904223;
+ mad.lo.s32 %r372, %r346, 1664525, 1013904223;
+ add.s32 %r369, %r369, 1;
+ setp.lt.s32 %p39, %r369, %r1;
+ @%p39 bra BB0_5;
+
+BB0_54:
+ mul.lo.s32 %r227, %r1, %r1;
+ cvt.rn.f32.s32 %f369, %r227;
+ rcp.rn.f32 %f370, %f369;
+ cvt.rn.f32.u32 %f371, %r4;
+ cvt.rn.f32.u32 %f372, %r3;
+ tex.2d.v4.f32.f32 {%f373, %f374, %f375, %f376}, [albedoTex, {%f372, %f371}];
+ mul.f32 %f123, %f808, %f370;
+ mul.f32 %f124, %f807, %f370;
+ mul.f32 %f125, %f806, %f370;
+ mul.f32 %f126, %f811, %f370;
+ mul.f32 %f127, %f810, %f370;
+ mul.f32 %f128, %f809, %f370;
+ mul.f32 %f129, %f814, %f370;
+ mul.f32 %f130, %f813, %f370;
+ mul.f32 %f131, %f812, %f370;
+ mul.f32 %f132, %f817, %f370;
+ mul.f32 %f133, %f816, %f370;
+ mul.f32 %f134, %f815, %f370;
+ mul.f32 %f377, %f805, %f370;
+ mul.f32 %f378, %f804, %f370;
+ mul.f32 %f379, %f803, %f370;
+ fma.rn.f32 %f380, %f805, %f370, %f377;
+ fma.rn.f32 %f381, %f804, %f370, %f378;
+ fma.rn.f32 %f382, %f803, %f370, %f379;
+ mul.f32 %f135, %f380, %f373;
+ mul.f32 %f136, %f381, %f374;
+ mul.f32 %f137, %f382, %f375;
+ add.f32 %f138, %f209, %f135;
+ add.f32 %f139, %f210, %f136;
+ add.f32 %f140, %f211, %f137;
+ ld.global.u32 %r394, [imageEnabled];
+ and.b32 %r228, %r394, 1;
+ setp.eq.b32 %p40, %r228, 1;
+ @!%p40 bra BB0_89;
+ bra.uni BB0_55;
+
+BB0_55:
+ abs.f32 %f142, %f138;
+ setp.lt.f32 %p41, %f142, 0f00800000;
+ mul.f32 %f388, %f142, 0f4B800000;
+ selp.f32 %f389, 0fC3170000, 0fC2FE0000, %p41;
+ selp.f32 %f390, %f388, %f142, %p41;
+ mov.b32 %r229, %f390;
+ and.b32 %r230, %r229, 8388607;
+ or.b32 %r231, %r230, 1065353216;
+ mov.b32 %f391, %r231;
+ shr.u32 %r232, %r229, 23;
+ cvt.rn.f32.u32 %f392, %r232;
+ add.f32 %f393, %f389, %f392;
+ setp.gt.f32 %p42, %f391, 0f3FB504F3;
+ mul.f32 %f394, %f391, 0f3F000000;
+ add.f32 %f395, %f393, 0f3F800000;
+ selp.f32 %f396, %f394, %f391, %p42;
+ selp.f32 %f397, %f395, %f393, %p42;
+ add.f32 %f398, %f396, 0fBF800000;
+ add.f32 %f384, %f396, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f383,%f384;
+ // inline asm
+ add.f32 %f399, %f398, %f398;
+ mul.f32 %f400, %f383, %f399;
+ mul.f32 %f401, %f400, %f400;
+ mov.f32 %f402, 0f3C4CAF63;
+ mov.f32 %f403, 0f3B18F0FE;
+ fma.rn.f32 %f404, %f403, %f401, %f402;
+ mov.f32 %f405, 0f3DAAAABD;
+ fma.rn.f32 %f406, %f404, %f401, %f405;
+ mul.rn.f32 %f407, %f406, %f401;
+ mul.rn.f32 %f408, %f407, %f400;
+ sub.f32 %f409, %f398, %f400;
+ neg.f32 %f410, %f400;
+ add.f32 %f411, %f409, %f409;
+ fma.rn.f32 %f412, %f410, %f398, %f411;
+ mul.rn.f32 %f413, %f383, %f412;
+ add.f32 %f414, %f408, %f400;
+ sub.f32 %f415, %f400, %f414;
+ add.f32 %f416, %f408, %f415;
+ add.f32 %f417, %f413, %f416;
+ add.f32 %f418, %f414, %f417;
+ sub.f32 %f419, %f414, %f418;
+ add.f32 %f420, %f417, %f419;
+ mov.f32 %f421, 0f3F317200;
+ mul.rn.f32 %f422, %f397, %f421;
+ mov.f32 %f423, 0f35BFBE8E;
+ mul.rn.f32 %f424, %f397, %f423;
+ add.f32 %f425, %f422, %f418;
+ sub.f32 %f426, %f422, %f425;
+ add.f32 %f427, %f418, %f426;
+ add.f32 %f428, %f420, %f427;
+ add.f32 %f429, %f424, %f428;
+ add.f32 %f430, %f425, %f429;
+ sub.f32 %f431, %f425, %f430;
+ add.f32 %f432, %f429, %f431;
+ mov.f32 %f433, 0f3EE66666;
+ mul.rn.f32 %f434, %f433, %f430;
+ neg.f32 %f435, %f434;
+ fma.rn.f32 %f436, %f433, %f430, %f435;
+ fma.rn.f32 %f437, %f433, %f432, %f436;
+ mov.f32 %f438, 0f00000000;
+ fma.rn.f32 %f439, %f438, %f430, %f437;
+ add.rn.f32 %f440, %f434, %f439;
+ neg.f32 %f441, %f440;
+ add.rn.f32 %f442, %f434, %f441;
+ add.rn.f32 %f443, %f442, %f439;
+ mov.b32 %r233, %f440;
+ setp.eq.s32 %p43, %r233, 1118925336;
+ add.s32 %r234, %r233, -1;
+ mov.b32 %f444, %r234;
+ add.f32 %f445, %f443, 0f37000000;
+ selp.f32 %f446, %f444, %f440, %p43;
+ selp.f32 %f143, %f445, %f443, %p43;
+ mul.f32 %f447, %f446, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f448, %f447;
+ mov.f32 %f449, 0fBF317200;
+ fma.rn.f32 %f450, %f448, %f449, %f446;
+ mov.f32 %f451, 0fB5BFBE8E;
+ fma.rn.f32 %f452, %f448, %f451, %f450;
+ mul.f32 %f453, %f452, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f454, %f453;
+ add.f32 %f455, %f448, 0f00000000;
+ ex2.approx.f32 %f456, %f455;
+ mul.f32 %f457, %f454, %f456;
+ setp.lt.f32 %p44, %f446, 0fC2D20000;
+ selp.f32 %f458, 0f00000000, %f457, %p44;
+ setp.gt.f32 %p45, %f446, 0f42D20000;
+ selp.f32 %f845, 0f7F800000, %f458, %p45;
+ setp.eq.f32 %p46, %f845, 0f7F800000;
+ @%p46 bra BB0_57;
+
+ fma.rn.f32 %f845, %f845, %f143, %f845;
+
+BB0_57:
+ mov.f32 %f730, 0f3E666666;
+ cvt.rzi.f32.f32 %f729, %f730;
+ fma.rn.f32 %f728, %f729, 0fC0000000, 0f3EE66666;
+ abs.f32 %f727, %f728;
+ setp.lt.f32 %p47, %f138, 0f00000000;
+ setp.eq.f32 %p48, %f727, 0f3F800000;
+ and.pred %p1, %p47, %p48;
+ mov.b32 %r235, %f845;
+ xor.b32 %r236, %r235, -2147483648;
+ mov.b32 %f459, %r236;
+ selp.f32 %f847, %f459, %f845, %p1;
+ setp.eq.f32 %p49, %f138, 0f00000000;
+ @%p49 bra BB0_60;
+ bra.uni BB0_58;
+
+BB0_60:
+ add.f32 %f462, %f138, %f138;
+ selp.f32 %f847, %f462, 0f00000000, %p48;
+ bra.uni BB0_61;
+
+BB0_113:
+ mov.u64 %rd212, image_RNM0;
+ cvta.global.u64 %rd207, %rd212;
+ mov.u32 %r310, 8;
+ mov.u64 %rd211, 0;
+ // inline asm
+ call (%rd206), _rt_buffer_get_64, (%rd207, %r94, %r310, %rd18, %rd19, %rd211, %rd211);
+ // inline asm
+ mov.f32 %f705, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs104, %f705;}
+
+ // inline asm
+ mov.u16 %rs105, 0;
+ st.v4.u16 [%rd206], {%rs104, %rs104, %rs104, %rs105};
+
+BB0_114:
+ ld.global.u32 %r311, [additive];
+ setp.eq.s32 %p99, %r311, 0;
+ @%p99 bra BB0_116;
+
+ mov.u64 %rd225, image_RNM1;
+ cvta.global.u64 %rd214, %rd225;
+ mov.u32 %r315, 8;
+ mov.u64 %rd224, 0;
+ // inline asm
+ call (%rd213), _rt_buffer_get_64, (%rd214, %r94, %r315, %rd18, %rd19, %rd224, %rd224);
+ // inline asm
+ ld.v4.u16 {%rs112, %rs113, %rs114, %rs115}, [%rd213];
+ // inline asm
+ { cvt.f32.f16 %f706, %rs112;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f707, %rs113;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f708, %rs114;}
+
+ // inline asm
+ // inline asm
+ call (%rd219), _rt_buffer_get_64, (%rd214, %r94, %r315, %rd18, %rd19, %rd224, %rd224);
+ // inline asm
+ add.f32 %f709, %f706, 0f00000000;
+ add.f32 %f710, %f707, 0f00000000;
+ add.f32 %f711, %f708, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs111, %f711;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs110, %f710;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs109, %f709;}
+
+ // inline asm
+ mov.u16 %rs116, 0;
+ st.v4.u16 [%rd219], {%rs109, %rs110, %rs111, %rs116};
+ bra.uni BB0_117;
+
+BB0_116:
+ mov.u64 %rd232, image_RNM1;
+ cvta.global.u64 %rd227, %rd232;
+ mov.u32 %r317, 8;
+ mov.u64 %rd231, 0;
+ // inline asm
+ call (%rd226), _rt_buffer_get_64, (%rd227, %r94, %r317, %rd18, %rd19, %rd231, %rd231);
+ // inline asm
+ mov.f32 %f712, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs117, %f712;}
+
+ // inline asm
+ mov.u16 %rs118, 0;
+ st.v4.u16 [%rd226], {%rs117, %rs117, %rs117, %rs118};
+
+BB0_117:
+ ld.global.u32 %r318, [additive];
+ setp.eq.s32 %p100, %r318, 0;
+ @%p100 bra BB0_119;
+
+ mov.u64 %rd245, image_RNM2;
+ cvta.global.u64 %rd234, %rd245;
+ mov.u32 %r322, 8;
+ mov.u64 %rd244, 0;
+ // inline asm
+ call (%rd233), _rt_buffer_get_64, (%rd234, %r94, %r322, %rd18, %rd19, %rd244, %rd244);
+ // inline asm
+ ld.v4.u16 {%rs125, %rs126, %rs127, %rs128}, [%rd233];
+ // inline asm
+ { cvt.f32.f16 %f713, %rs125;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f714, %rs126;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f715, %rs127;}
+
+ // inline asm
+ // inline asm
+ call (%rd239), _rt_buffer_get_64, (%rd234, %r94, %r322, %rd18, %rd19, %rd244, %rd244);
+ // inline asm
+ add.f32 %f716, %f713, 0f00000000;
+ add.f32 %f717, %f714, 0f00000000;
+ add.f32 %f718, %f715, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs124, %f718;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs123, %f717;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs122, %f716;}
+
+ // inline asm
+ mov.u16 %rs129, 0;
+ st.v4.u16 [%rd239], {%rs122, %rs123, %rs124, %rs129};
+ bra.uni BB0_120;
+
+BB0_119:
+ mov.u64 %rd252, image_RNM2;
+ cvta.global.u64 %rd247, %rd252;
+ mov.u32 %r324, 8;
+ mov.u64 %rd251, 0;
+ // inline asm
+ call (%rd246), _rt_buffer_get_64, (%rd247, %r94, %r324, %rd18, %rd19, %rd251, %rd251);
+ // inline asm
+ mov.f32 %f719, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs130, %f719;}
+
+ // inline asm
+ mov.u16 %rs131, 0;
+ st.v4.u16 [%rd246], {%rs130, %rs130, %rs130, %rs131};
+
+BB0_120:
+ ld.global.u32 %r325, [additive];
+ setp.eq.s32 %p101, %r325, 0;
+ @%p101 bra BB0_122;
+
+ mov.u64 %rd265, image_RNM3;
+ cvta.global.u64 %rd254, %rd265;
+ mov.u32 %r329, 8;
+ mov.u64 %rd264, 0;
+ // inline asm
+ call (%rd253), _rt_buffer_get_64, (%rd254, %r94, %r329, %rd18, %rd19, %rd264, %rd264);
+ // inline asm
+ ld.v4.u16 {%rs138, %rs139, %rs140, %rs141}, [%rd253];
+ // inline asm
+ { cvt.f32.f16 %f720, %rs138;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f721, %rs139;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f722, %rs140;}
+
+ // inline asm
+ // inline asm
+ call (%rd259), _rt_buffer_get_64, (%rd254, %r94, %r329, %rd18, %rd19, %rd264, %rd264);
+ // inline asm
+ add.f32 %f723, %f720, 0f00000000;
+ add.f32 %f724, %f721, 0f00000000;
+ add.f32 %f725, %f722, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs137, %f725;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs136, %f724;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs135, %f723;}
+
+ // inline asm
+ mov.u16 %rs142, 0;
+ st.v4.u16 [%rd259], {%rs135, %rs136, %rs137, %rs142};
+ bra.uni BB0_123;
+
+BB0_122:
+ mov.u64 %rd272, image_RNM3;
+ cvta.global.u64 %rd267, %rd272;
+ mov.u32 %r331, 8;
+ mov.u64 %rd271, 0;
+ // inline asm
+ call (%rd266), _rt_buffer_get_64, (%rd267, %r94, %r331, %rd18, %rd19, %rd271, %rd271);
+ // inline asm
+ mov.f32 %f726, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs143, %f726;}
+
+ // inline asm
+ mov.u16 %rs144, 0;
+ st.v4.u16 [%rd266], {%rs143, %rs143, %rs143, %rs144};
+ bra.uni BB0_123;
+
+BB0_58:
+ setp.geu.f32 %p50, %f138, 0f00000000;
+ @%p50 bra BB0_61;
+
+ mov.f32 %f754, 0f3EE66666;
+ cvt.rzi.f32.f32 %f461, %f754;
+ setp.neu.f32 %p51, %f461, 0f3EE66666;
+ selp.f32 %f847, 0f7FFFFFFF, %f847, %p51;
+
+BB0_61:
+ abs.f32 %f731, %f138;
+ add.f32 %f463, %f731, 0f3EE66666;
+ mov.b32 %r237, %f463;
+ setp.lt.s32 %p53, %r237, 2139095040;
+ @%p53 bra BB0_66;
+
+ abs.f32 %f752, %f138;
+ setp.gtu.f32 %p54, %f752, 0f7F800000;
+ @%p54 bra BB0_65;
+ bra.uni BB0_63;
+
+BB0_65:
+ add.f32 %f847, %f138, 0f3EE66666;
+ bra.uni BB0_66;
+
+BB0_63:
+ abs.f32 %f753, %f138;
+ setp.neu.f32 %p55, %f753, 0f7F800000;
+ @%p55 bra BB0_66;
+
+ selp.f32 %f847, 0fFF800000, 0f7F800000, %p1;
+
+BB0_66:
+ mov.f32 %f740, 0fB5BFBE8E;
+ mov.f32 %f739, 0fBF317200;
+ mov.f32 %f738, 0f00000000;
+ mov.f32 %f737, 0f35BFBE8E;
+ mov.f32 %f736, 0f3F317200;
+ mov.f32 %f735, 0f3DAAAABD;
+ mov.f32 %f734, 0f3C4CAF63;
+ mov.f32 %f733, 0f3B18F0FE;
+ mov.f32 %f732, 0f3EE66666;
+ setp.eq.f32 %p56, %f138, 0f3F800000;
+ selp.f32 %f154, 0f3F800000, %f847, %p56;
+ abs.f32 %f155, %f139;
+ setp.lt.f32 %p57, %f155, 0f00800000;
+ mul.f32 %f466, %f155, 0f4B800000;
+ selp.f32 %f467, 0fC3170000, 0fC2FE0000, %p57;
+ selp.f32 %f468, %f466, %f155, %p57;
+ mov.b32 %r238, %f468;
+ and.b32 %r239, %r238, 8388607;
+ or.b32 %r240, %r239, 1065353216;
+ mov.b32 %f469, %r240;
+ shr.u32 %r241, %r238, 23;
+ cvt.rn.f32.u32 %f470, %r241;
+ add.f32 %f471, %f467, %f470;
+ setp.gt.f32 %p58, %f469, 0f3FB504F3;
+ mul.f32 %f472, %f469, 0f3F000000;
+ add.f32 %f473, %f471, 0f3F800000;
+ selp.f32 %f474, %f472, %f469, %p58;
+ selp.f32 %f475, %f473, %f471, %p58;
+ add.f32 %f476, %f474, 0fBF800000;
+ add.f32 %f465, %f474, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f464,%f465;
+ // inline asm
+ add.f32 %f477, %f476, %f476;
+ mul.f32 %f478, %f464, %f477;
+ mul.f32 %f479, %f478, %f478;
+ fma.rn.f32 %f482, %f733, %f479, %f734;
+ fma.rn.f32 %f484, %f482, %f479, %f735;
+ mul.rn.f32 %f485, %f484, %f479;
+ mul.rn.f32 %f486, %f485, %f478;
+ sub.f32 %f487, %f476, %f478;
+ neg.f32 %f488, %f478;
+ add.f32 %f489, %f487, %f487;
+ fma.rn.f32 %f490, %f488, %f476, %f489;
+ mul.rn.f32 %f491, %f464, %f490;
+ add.f32 %f492, %f486, %f478;
+ sub.f32 %f493, %f478, %f492;
+ add.f32 %f494, %f486, %f493;
+ add.f32 %f495, %f491, %f494;
+ add.f32 %f496, %f492, %f495;
+ sub.f32 %f497, %f492, %f496;
+ add.f32 %f498, %f495, %f497;
+ mul.rn.f32 %f500, %f475, %f736;
+ mul.rn.f32 %f502, %f475, %f737;
+ add.f32 %f503, %f500, %f496;
+ sub.f32 %f504, %f500, %f503;
+ add.f32 %f505, %f496, %f504;
+ add.f32 %f506, %f498, %f505;
+ add.f32 %f507, %f502, %f506;
+ add.f32 %f508, %f503, %f507;
+ sub.f32 %f509, %f503, %f508;
+ add.f32 %f510, %f507, %f509;
+ mul.rn.f32 %f512, %f732, %f508;
+ neg.f32 %f513, %f512;
+ fma.rn.f32 %f514, %f732, %f508, %f513;
+ fma.rn.f32 %f515, %f732, %f510, %f514;
+ fma.rn.f32 %f517, %f738, %f508, %f515;
+ add.rn.f32 %f518, %f512, %f517;
+ neg.f32 %f519, %f518;
+ add.rn.f32 %f520, %f512, %f519;
+ add.rn.f32 %f521, %f520, %f517;
+ mov.b32 %r242, %f518;
+ setp.eq.s32 %p59, %r242, 1118925336;
+ add.s32 %r243, %r242, -1;
+ mov.b32 %f522, %r243;
+ add.f32 %f523, %f521, 0f37000000;
+ selp.f32 %f524, %f522, %f518, %p59;
+ selp.f32 %f156, %f523, %f521, %p59;
+ mul.f32 %f525, %f524, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f526, %f525;
+ fma.rn.f32 %f528, %f526, %f739, %f524;
+ fma.rn.f32 %f530, %f526, %f740, %f528;
+ mul.f32 %f531, %f530, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f532, %f531;
+ add.f32 %f533, %f526, 0f00000000;
+ ex2.approx.f32 %f534, %f533;
+ mul.f32 %f535, %f532, %f534;
+ setp.lt.f32 %p60, %f524, 0fC2D20000;
+ selp.f32 %f536, 0f00000000, %f535, %p60;
+ setp.gt.f32 %p61, %f524, 0f42D20000;
+ selp.f32 %f848, 0f7F800000, %f536, %p61;
+ setp.eq.f32 %p62, %f848, 0f7F800000;
+ @%p62 bra BB0_68;
+
+ fma.rn.f32 %f848, %f848, %f156, %f848;
+
+BB0_68:
+ setp.lt.f32 %p63, %f139, 0f00000000;
+ and.pred %p2, %p63, %p48;
+ mov.b32 %r244, %f848;
+ xor.b32 %r245, %r244, -2147483648;
+ mov.b32 %f537, %r245;
+ selp.f32 %f850, %f537, %f848, %p2;
+ setp.eq.f32 %p65, %f139, 0f00000000;
+ @%p65 bra BB0_71;
+ bra.uni BB0_69;
+
+BB0_71:
+ add.f32 %f540, %f139, %f139;
+ selp.f32 %f850, %f540, 0f00000000, %p48;
+ bra.uni BB0_72;
+
+BB0_69:
+ setp.geu.f32 %p66, %f139, 0f00000000;
+ @%p66 bra BB0_72;
+
+ mov.f32 %f751, 0f3EE66666;
+ cvt.rzi.f32.f32 %f539, %f751;
+ setp.neu.f32 %p67, %f539, 0f3EE66666;
+ selp.f32 %f850, 0f7FFFFFFF, %f850, %p67;
+
+BB0_72:
+ abs.f32 %f755, %f139;
+ add.f32 %f541, %f755, 0f3EE66666;
+ mov.b32 %r246, %f541;
+ setp.lt.s32 %p69, %r246, 2139095040;
+ @%p69 bra BB0_77;
+
+ abs.f32 %f756, %f139;
+ setp.gtu.f32 %p70, %f756, 0f7F800000;
+ @%p70 bra BB0_76;
+ bra.uni BB0_74;
+
+BB0_76:
+ add.f32 %f850, %f139, 0f3EE66666;
+ bra.uni BB0_77;
+
+BB0_74:
+ abs.f32 %f757, %f139;
+ setp.neu.f32 %p71, %f757, 0f7F800000;
+ @%p71 bra BB0_77;
+
+ selp.f32 %f850, 0fFF800000, 0f7F800000, %p2;
+
+BB0_77:
+ mov.f32 %f749, 0fB5BFBE8E;
+ mov.f32 %f748, 0fBF317200;
+ mov.f32 %f747, 0f00000000;
+ mov.f32 %f746, 0f35BFBE8E;
+ mov.f32 %f745, 0f3F317200;
+ mov.f32 %f744, 0f3DAAAABD;
+ mov.f32 %f743, 0f3C4CAF63;
+ mov.f32 %f742, 0f3B18F0FE;
+ mov.f32 %f741, 0f3EE66666;
+ setp.eq.f32 %p72, %f139, 0f3F800000;
+ selp.f32 %f167, 0f3F800000, %f850, %p72;
+ abs.f32 %f168, %f140;
+ setp.lt.f32 %p73, %f168, 0f00800000;
+ mul.f32 %f544, %f168, 0f4B800000;
+ selp.f32 %f545, 0fC3170000, 0fC2FE0000, %p73;
+ selp.f32 %f546, %f544, %f168, %p73;
+ mov.b32 %r247, %f546;
+ and.b32 %r248, %r247, 8388607;
+ or.b32 %r249, %r248, 1065353216;
+ mov.b32 %f547, %r249;
+ shr.u32 %r250, %r247, 23;
+ cvt.rn.f32.u32 %f548, %r250;
+ add.f32 %f549, %f545, %f548;
+ setp.gt.f32 %p74, %f547, 0f3FB504F3;
+ mul.f32 %f550, %f547, 0f3F000000;
+ add.f32 %f551, %f549, 0f3F800000;
+ selp.f32 %f552, %f550, %f547, %p74;
+ selp.f32 %f553, %f551, %f549, %p74;
+ add.f32 %f554, %f552, 0fBF800000;
+ add.f32 %f543, %f552, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f542,%f543;
+ // inline asm
+ add.f32 %f555, %f554, %f554;
+ mul.f32 %f556, %f542, %f555;
+ mul.f32 %f557, %f556, %f556;
+ fma.rn.f32 %f560, %f742, %f557, %f743;
+ fma.rn.f32 %f562, %f560, %f557, %f744;
+ mul.rn.f32 %f563, %f562, %f557;
+ mul.rn.f32 %f564, %f563, %f556;
+ sub.f32 %f565, %f554, %f556;
+ neg.f32 %f566, %f556;
+ add.f32 %f567, %f565, %f565;
+ fma.rn.f32 %f568, %f566, %f554, %f567;
+ mul.rn.f32 %f569, %f542, %f568;
+ add.f32 %f570, %f564, %f556;
+ sub.f32 %f571, %f556, %f570;
+ add.f32 %f572, %f564, %f571;
+ add.f32 %f573, %f569, %f572;
+ add.f32 %f574, %f570, %f573;
+ sub.f32 %f575, %f570, %f574;
+ add.f32 %f576, %f573, %f575;
+ mul.rn.f32 %f578, %f553, %f745;
+ mul.rn.f32 %f580, %f553, %f746;
+ add.f32 %f581, %f578, %f574;
+ sub.f32 %f582, %f578, %f581;
+ add.f32 %f583, %f574, %f582;
+ add.f32 %f584, %f576, %f583;
+ add.f32 %f585, %f580, %f584;
+ add.f32 %f586, %f581, %f585;
+ sub.f32 %f587, %f581, %f586;
+ add.f32 %f588, %f585, %f587;
+ mul.rn.f32 %f590, %f741, %f586;
+ neg.f32 %f591, %f590;
+ fma.rn.f32 %f592, %f741, %f586, %f591;
+ fma.rn.f32 %f593, %f741, %f588, %f592;
+ fma.rn.f32 %f595, %f747, %f586, %f593;
+ add.rn.f32 %f596, %f590, %f595;
+ neg.f32 %f597, %f596;
+ add.rn.f32 %f598, %f590, %f597;
+ add.rn.f32 %f599, %f598, %f595;
+ mov.b32 %r251, %f596;
+ setp.eq.s32 %p75, %r251, 1118925336;
+ add.s32 %r252, %r251, -1;
+ mov.b32 %f600, %r252;
+ add.f32 %f601, %f599, 0f37000000;
+ selp.f32 %f602, %f600, %f596, %p75;
+ selp.f32 %f169, %f601, %f599, %p75;
+ mul.f32 %f603, %f602, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f604, %f603;
+ fma.rn.f32 %f606, %f604, %f748, %f602;
+ fma.rn.f32 %f608, %f604, %f749, %f606;
+ mul.f32 %f609, %f608, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f610, %f609;
+ add.f32 %f611, %f604, 0f00000000;
+ ex2.approx.f32 %f612, %f611;
+ mul.f32 %f613, %f610, %f612;
+ setp.lt.f32 %p76, %f602, 0fC2D20000;
+ selp.f32 %f614, 0f00000000, %f613, %p76;
+ setp.gt.f32 %p77, %f602, 0f42D20000;
+ selp.f32 %f851, 0f7F800000, %f614, %p77;
+ setp.eq.f32 %p78, %f851, 0f7F800000;
+ @%p78 bra BB0_79;
+
+ fma.rn.f32 %f851, %f851, %f169, %f851;
+
+BB0_79:
+ setp.lt.f32 %p79, %f140, 0f00000000;
+ and.pred %p3, %p79, %p48;
+ mov.b32 %r253, %f851;
+ xor.b32 %r254, %r253, -2147483648;
+ mov.b32 %f615, %r254;
+ selp.f32 %f853, %f615, %f851, %p3;
+ setp.eq.f32 %p81, %f140, 0f00000000;
+ @%p81 bra BB0_82;
+ bra.uni BB0_80;
+
+BB0_82:
+ add.f32 %f618, %f140, %f140;
+ selp.f32 %f853, %f618, 0f00000000, %p48;
+ bra.uni BB0_83;
+
+BB0_80:
+ setp.geu.f32 %p82, %f140, 0f00000000;
+ @%p82 bra BB0_83;
+
+ mov.f32 %f750, 0f3EE66666;
+ cvt.rzi.f32.f32 %f617, %f750;
+ setp.neu.f32 %p83, %f617, 0f3EE66666;
+ selp.f32 %f853, 0f7FFFFFFF, %f853, %p83;
+
+BB0_83:
+ abs.f32 %f777, %f140;
+ add.f32 %f619, %f777, 0f3EE66666;
+ mov.b32 %r255, %f619;
+ setp.lt.s32 %p85, %r255, 2139095040;
+ @%p85 bra BB0_88;
+
+ abs.f32 %f778, %f140;
+ setp.gtu.f32 %p86, %f778, 0f7F800000;
+ @%p86 bra BB0_87;
+ bra.uni BB0_85;
+
+BB0_87:
+ add.f32 %f853, %f140, 0f3EE66666;
+ bra.uni BB0_88;
+
+BB0_85:
+ abs.f32 %f779, %f140;
+ setp.neu.f32 %p87, %f779, 0f7F800000;
+ @%p87 bra BB0_88;
+
+ selp.f32 %f853, 0fFF800000, 0f7F800000, %p3;
+
+BB0_88:
+ mov.u32 %r332, 4;
+ setp.eq.f32 %p88, %f140, 0f3F800000;
+ selp.f32 %f620, 0f3F800000, %f853, %p88;
+ cvt.u64.u32 %rd74, %r4;
+ cvt.u64.u32 %rd73, %r3;
+ mov.u64 %rd77, image;
+ cvta.global.u64 %rd72, %rd77;
+ // inline asm
+ call (%rd71), _rt_buffer_get_64, (%rd72, %r94, %r332, %rd73, %rd74, %rd25, %rd25);
+ // inline asm
+ cvt.sat.f32.f32 %f621, %f620;
+ mul.f32 %f622, %f621, 0f437FFD71;
+ cvt.rzi.u32.f32 %r258, %f622;
+ cvt.sat.f32.f32 %f623, %f167;
+ mul.f32 %f624, %f623, 0f437FFD71;
+ cvt.rzi.u32.f32 %r259, %f624;
+ cvt.sat.f32.f32 %f625, %f154;
+ mul.f32 %f626, %f625, 0f437FFD71;
+ cvt.rzi.u32.f32 %r260, %f626;
+ cvt.u16.u32 %rs20, %r258;
+ cvt.u16.u32 %rs21, %r260;
+ cvt.u16.u32 %rs22, %r259;
+ mov.u16 %rs23, 255;
+ st.v4.u8 [%rd71], {%rs20, %rs22, %rs21, %rs23};
+ ld.global.u32 %r394, [imageEnabled];
+
+BB0_89:
+ and.b32 %r261, %r394, 4;
+ setp.eq.s32 %p89, %r261, 0;
+ @%p89 bra BB0_91;
+
+ mov.u32 %r333, 8;
+ cvt.u64.u32 %rd80, %r3;
+ cvt.u64.u32 %rd81, %r4;
+ mov.u64 %rd84, image_HDR;
+ cvta.global.u64 %rd79, %rd84;
+ // inline asm
+ call (%rd78), _rt_buffer_get_64, (%rd79, %r94, %r333, %rd80, %rd81, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f630, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f630;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f140;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f139;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f138;}
+
+ // inline asm
+ st.v4.u16 [%rd78], {%rs24, %rs25, %rs26, %rs27};
+ ld.global.u32 %r394, [imageEnabled];
+
+BB0_91:
+ and.b32 %r264, %r394, 16;
+ setp.eq.s32 %p90, %r264, 0;
+ @%p90 bra BB0_93;
+
+ mov.u32 %r334, 8;
+ cvt.u64.u32 %rd88, %r4;
+ cvt.u64.u32 %rd87, %r3;
+ mov.u64 %rd91, image_HDR2;
+ cvta.global.u64 %rd86, %rd91;
+ // inline asm
+ call (%rd85), _rt_buffer_get_64, (%rd86, %r94, %r334, %rd87, %rd88, %rd25, %rd25);
+ // inline asm
+ mov.f32 %f634, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs31, %f634;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs30, %f137;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs29, %f136;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs28, %f135;}
+
+ // inline asm
+ st.v4.u16 [%rd85], {%rs28, %rs29, %rs30, %rs31};
+
+BB0_93:
+ cvt.u64.u32 %rd16, %r3;
+ cvt.u64.u32 %rd17, %r4;
+ mul.f32 %f180, %f123, 0f3F000000;
+ mul.f32 %f181, %f124, 0f3F000000;
+ mul.f32 %f182, %f125, 0f3F000000;
+ ld.global.u32 %r267, [additive];
+ setp.eq.s32 %p91, %r267, 0;
+ mov.f32 %f635, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs32, %f635;}
+
+ // inline asm
+ @%p91 bra BB0_95;
+
+ mov.u32 %r335, 8;
+ mov.u64 %rd104, image_RNM0;
+ cvta.global.u64 %rd93, %rd104;
+ // inline asm
+ call (%rd92), _rt_buffer_get_64, (%rd93, %r94, %r335, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs39, %rs40, %rs41, %rs42}, [%rd92];
+ // inline asm
+ { cvt.f32.f16 %f636, %rs39;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f637, %rs40;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f638, %rs41;}
+
+ // inline asm
+ // inline asm
+ call (%rd98), _rt_buffer_get_64, (%rd93, %r94, %r335, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f639, %f180, %f636;
+ add.f32 %f640, %f181, %f637;
+ add.f32 %f641, %f182, %f638;
+ // inline asm
+ { cvt.rn.f16.f32 %rs38, %f641;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs37, %f640;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs36, %f639;}
+
+ // inline asm
+ st.v4.u16 [%rd98], {%rs36, %rs37, %rs38, %rs32};
+ bra.uni BB0_96;
+
+BB0_95:
+ mov.u32 %r342, 8;
+ mov.u64 %rd111, image_RNM0;
+ cvta.global.u64 %rd106, %rd111;
+ // inline asm
+ call (%rd105), _rt_buffer_get_64, (%rd106, %r94, %r342, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs45, %f182;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs44, %f181;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs43, %f180;}
+
+ // inline asm
+ st.v4.u16 [%rd105], {%rs43, %rs44, %rs45, %rs32};
+
+BB0_96:
+ mov.f32 %f646, 0f34000000;
+ max.f32 %f647, %f180, %f646;
+ mul.f32 %f648, %f126, 0f3F000000;
+ div.rn.f32 %f649, %f648, %f647;
+ max.f32 %f650, %f181, %f646;
+ mul.f32 %f651, %f127, 0f3F000000;
+ div.rn.f32 %f652, %f651, %f650;
+ max.f32 %f653, %f182, %f646;
+ mul.f32 %f654, %f128, 0f3F000000;
+ div.rn.f32 %f655, %f654, %f653;
+ fma.rn.f32 %f183, %f649, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f184, %f652, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f185, %f655, 0f3F000000, 0f3F000000;
+ mul.f32 %f656, %f129, 0f3F000000;
+ div.rn.f32 %f657, %f656, %f647;
+ mul.f32 %f658, %f130, 0f3F000000;
+ div.rn.f32 %f659, %f658, %f650;
+ mul.f32 %f660, %f131, 0f3F000000;
+ div.rn.f32 %f661, %f660, %f653;
+ fma.rn.f32 %f186, %f657, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f187, %f659, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f188, %f661, 0f3F000000, 0f3F000000;
+ mul.f32 %f662, %f132, 0f3F000000;
+ div.rn.f32 %f663, %f662, %f647;
+ mul.f32 %f664, %f133, 0f3F000000;
+ div.rn.f32 %f665, %f664, %f650;
+ mul.f32 %f666, %f134, 0f3F000000;
+ div.rn.f32 %f667, %f666, %f653;
+ fma.rn.f32 %f189, %f663, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f190, %f665, 0f3F000000, 0f3F000000;
+ fma.rn.f32 %f191, %f667, 0f3F000000, 0f3F000000;
+ ld.global.u32 %r274, [additive];
+ setp.eq.s32 %p92, %r274, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs46, %f635;}
+
+ // inline asm
+ @%p92 bra BB0_98;
+
+ mov.u32 %r336, 8;
+ mov.u64 %rd124, image_RNM1;
+ cvta.global.u64 %rd113, %rd124;
+ // inline asm
+ call (%rd112), _rt_buffer_get_64, (%rd113, %r94, %r336, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs53, %rs54, %rs55, %rs56}, [%rd112];
+ // inline asm
+ { cvt.f32.f16 %f668, %rs53;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f669, %rs54;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f670, %rs55;}
+
+ // inline asm
+ // inline asm
+ call (%rd118), _rt_buffer_get_64, (%rd113, %r94, %r336, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f671, %f183, %f668;
+ add.f32 %f672, %f184, %f669;
+ add.f32 %f673, %f185, %f670;
+ // inline asm
+ { cvt.rn.f16.f32 %rs52, %f673;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs51, %f672;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs50, %f671;}
+
+ // inline asm
+ st.v4.u16 [%rd118], {%rs50, %rs51, %rs52, %rs46};
+ bra.uni BB0_99;
+
+BB0_98:
+ mov.u32 %r341, 8;
+ mov.u64 %rd131, image_RNM1;
+ cvta.global.u64 %rd126, %rd131;
+ // inline asm
+ call (%rd125), _rt_buffer_get_64, (%rd126, %r94, %r341, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs59, %f185;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs58, %f184;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs57, %f183;}
+
+ // inline asm
+ st.v4.u16 [%rd125], {%rs57, %rs58, %rs59, %rs46};
+
+BB0_99:
+ ld.global.u32 %r281, [additive];
+ setp.eq.s32 %p93, %r281, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs60, %f635;}
+
+ // inline asm
+ @%p93 bra BB0_101;
+
+ mov.u32 %r337, 8;
+ mov.u64 %rd144, image_RNM2;
+ cvta.global.u64 %rd133, %rd144;
+ // inline asm
+ call (%rd132), _rt_buffer_get_64, (%rd133, %r94, %r337, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs67, %rs68, %rs69, %rs70}, [%rd132];
+ // inline asm
+ { cvt.f32.f16 %f678, %rs67;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f679, %rs68;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f680, %rs69;}
+
+ // inline asm
+ // inline asm
+ call (%rd138), _rt_buffer_get_64, (%rd133, %r94, %r337, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f681, %f186, %f678;
+ add.f32 %f682, %f187, %f679;
+ add.f32 %f683, %f188, %f680;
+ // inline asm
+ { cvt.rn.f16.f32 %rs66, %f683;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs65, %f682;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs64, %f681;}
+
+ // inline asm
+ st.v4.u16 [%rd138], {%rs64, %rs65, %rs66, %rs60};
+ bra.uni BB0_102;
+
+BB0_101:
+ mov.u32 %r340, 8;
+ mov.u64 %rd151, image_RNM2;
+ cvta.global.u64 %rd146, %rd151;
+ // inline asm
+ call (%rd145), _rt_buffer_get_64, (%rd146, %r94, %r340, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs73, %f188;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs72, %f187;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs71, %f186;}
+
+ // inline asm
+ st.v4.u16 [%rd145], {%rs71, %rs72, %rs73, %rs60};
+
+BB0_102:
+ ld.global.u32 %r288, [additive];
+ setp.eq.s32 %p94, %r288, 0;
+ // inline asm
+ { cvt.rn.f16.f32 %rs74, %f635;}
+
+ // inline asm
+ @%p94 bra BB0_104;
+
+ mov.u32 %r338, 8;
+ mov.u64 %rd164, image_RNM3;
+ cvta.global.u64 %rd153, %rd164;
+ // inline asm
+ call (%rd152), _rt_buffer_get_64, (%rd153, %r94, %r338, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ ld.v4.u16 {%rs81, %rs82, %rs83, %rs84}, [%rd152];
+ // inline asm
+ { cvt.f32.f16 %f688, %rs81;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f689, %rs82;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f690, %rs83;}
+
+ // inline asm
+ // inline asm
+ call (%rd158), _rt_buffer_get_64, (%rd153, %r94, %r338, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ add.f32 %f691, %f189, %f688;
+ add.f32 %f692, %f190, %f689;
+ add.f32 %f693, %f191, %f690;
+ // inline asm
+ { cvt.rn.f16.f32 %rs80, %f693;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs79, %f692;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs78, %f691;}
+
+ // inline asm
+ st.v4.u16 [%rd158], {%rs78, %rs79, %rs80, %rs74};
+ bra.uni BB0_123;
+
+BB0_104:
+ mov.u32 %r339, 8;
+ mov.u64 %rd171, image_RNM3;
+ cvta.global.u64 %rd166, %rd171;
+ // inline asm
+ call (%rd165), _rt_buffer_get_64, (%rd166, %r94, %r339, %rd16, %rd17, %rd25, %rd25);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs87, %f191;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs86, %f190;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs85, %f189;}
+
+ // inline asm
+ st.v4.u16 [%rd165], {%rs85, %rs86, %rs87, %rs74};
+
+BB0_123:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGISH.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGISH.ptx.meta
new file mode 100644
index 00000000..b4ff723a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGISH.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5384622bb51954d41929eed4d3c6c807
+timeCreated: 1537829407
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIdir.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIdir.ptx
new file mode 100644
index 00000000..2d6bfae1
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIdir.ptx
@@ -0,0 +1,1523 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 1 .b8 image_Dir[1];
+.global .align 8 .b8 texCoords[8];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 1 .b8 lightmapDirect[1];
+.global .align 1 .b8 lightmapDirectDir[1];
+.global .texref albedoTex;
+.global .align 4 .u32 samples;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7samplesE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename7samplesE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7samplesE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic7samplesE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7samplesE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<100>;
+ .reg .b16 %rs<44>;
+ .reg .f32 %f<715>;
+ .reg .b32 %r<332>;
+ .reg .b64 %rd<143>;
+
+
+ mov.u64 %rd142, __local_depot0;
+ cvta.local.u64 %SP, %rd142;
+ ld.global.u32 %r1, [samples];
+ ld.global.v2.u32 {%r100, %r101}, [pixelID];
+ cvt.u64.u32 %rd20, %r100;
+ cvt.u64.u32 %rd21, %r101;
+ mov.u64 %rd24, uvnormal;
+ cvta.global.u64 %rd19, %rd24;
+ mov.u32 %r98, 2;
+ mov.u32 %r99, 4;
+ mov.u64 %rd23, 0;
+ // inline asm
+ call (%rd18), _rt_buffer_get_64, (%rd19, %r98, %r99, %rd20, %rd21, %rd23, %rd23);
+ // inline asm
+ ld.u32 %r2, [%rd18];
+ shr.u32 %r104, %r2, 16;
+ cvt.u16.u32 %rs1, %r104;
+ and.b16 %rs2, %rs1, 255;
+ cvt.u16.u32 %rs3, %r2;
+ or.b16 %rs4, %rs3, %rs2;
+ setp.eq.s16 %p4, %rs4, 0;
+ mov.f32 %f670, 0f00000000;
+ mov.f32 %f671, %f670;
+ mov.f32 %f672, %f670;
+ @%p4 bra BB0_2;
+
+ ld.u8 %rs5, [%rd18+1];
+ and.b16 %rs7, %rs3, 255;
+ cvt.rn.f32.u16 %f145, %rs7;
+ div.rn.f32 %f146, %f145, 0f437F0000;
+ fma.rn.f32 %f147, %f146, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f148, %rs5;
+ div.rn.f32 %f149, %f148, 0f437F0000;
+ fma.rn.f32 %f150, %f149, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f151, %rs2;
+ div.rn.f32 %f152, %f151, 0f437F0000;
+ fma.rn.f32 %f153, %f152, 0f40000000, 0fBF800000;
+ mul.f32 %f154, %f150, %f150;
+ fma.rn.f32 %f155, %f147, %f147, %f154;
+ fma.rn.f32 %f156, %f153, %f153, %f155;
+ sqrt.rn.f32 %f157, %f156;
+ rcp.rn.f32 %f158, %f157;
+ mul.f32 %f670, %f147, %f158;
+ mul.f32 %f671, %f150, %f158;
+ mul.f32 %f672, %f153, %f158;
+
+BB0_2:
+ ld.global.v2.u32 {%r105, %r106}, [pixelID];
+ ld.global.v2.u32 {%r108, %r109}, [tileInfo];
+ add.s32 %r3, %r105, %r108;
+ add.s32 %r4, %r106, %r109;
+ setp.eq.f32 %p5, %f671, 0f00000000;
+ setp.eq.f32 %p6, %f670, 0f00000000;
+ and.pred %p7, %p6, %p5;
+ setp.eq.f32 %p8, %f672, 0f00000000;
+ and.pred %p9, %p7, %p8;
+ @%p9 bra BB0_101;
+ bra.uni BB0_3;
+
+BB0_101:
+ ld.global.u32 %r330, [imageEnabled];
+ and.b32 %r280, %r330, 1;
+ setp.eq.b32 %p96, %r280, 1;
+ @!%p96 bra BB0_103;
+ bra.uni BB0_102;
+
+BB0_102:
+ cvt.u64.u32 %rd106, %r3;
+ cvt.u64.u32 %rd107, %r4;
+ mov.u64 %rd110, image;
+ cvta.global.u64 %rd105, %rd110;
+ mov.u64 %rd109, 0;
+ // inline asm
+ call (%rd104), _rt_buffer_get_64, (%rd105, %r98, %r99, %rd106, %rd107, %rd109, %rd109);
+ // inline asm
+ mov.u16 %rs38, 0;
+ st.v4.u8 [%rd104], {%rs38, %rs38, %rs38, %rs38};
+ ld.global.u32 %r330, [imageEnabled];
+
+BB0_103:
+ and.b32 %r283, %r330, 4;
+ setp.eq.s32 %p97, %r283, 0;
+ @%p97 bra BB0_105;
+
+ cvt.u64.u32 %rd113, %r3;
+ cvt.u64.u32 %rd114, %r4;
+ mov.u64 %rd117, image_HDR;
+ cvta.global.u64 %rd112, %rd117;
+ mov.u32 %r285, 8;
+ mov.u64 %rd116, 0;
+ // inline asm
+ call (%rd111), _rt_buffer_get_64, (%rd112, %r98, %r285, %rd113, %rd114, %rd116, %rd116);
+ // inline asm
+ mov.f32 %f619, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs39, %f619;}
+
+ // inline asm
+ mov.u16 %rs40, 0;
+ st.v4.u16 [%rd111], {%rs39, %rs39, %rs39, %rs40};
+ ld.global.u32 %r330, [imageEnabled];
+
+BB0_105:
+ and.b32 %r286, %r330, 16;
+ setp.eq.s32 %p98, %r286, 0;
+ @%p98 bra BB0_107;
+
+ cvt.u64.u32 %rd120, %r3;
+ cvt.u64.u32 %rd121, %r4;
+ mov.u64 %rd124, image_HDR2;
+ cvta.global.u64 %rd119, %rd124;
+ mov.u32 %r288, 8;
+ mov.u64 %rd123, 0;
+ // inline asm
+ call (%rd118), _rt_buffer_get_64, (%rd119, %r98, %r288, %rd120, %rd121, %rd123, %rd123);
+ // inline asm
+ mov.f32 %f620, 0f00000000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs41, %f620;}
+
+ // inline asm
+ mov.u16 %rs42, 0;
+ st.v4.u16 [%rd118], {%rs41, %rs41, %rs41, %rs42};
+ ld.global.u32 %r330, [imageEnabled];
+
+BB0_107:
+ and.b32 %r289, %r330, 64;
+ setp.eq.s32 %p99, %r289, 0;
+ @%p99 bra BB0_109;
+
+ cvt.u64.u32 %rd127, %r3;
+ cvt.u64.u32 %rd128, %r4;
+ mov.u64 %rd131, image_Dir;
+ cvta.global.u64 %rd126, %rd131;
+ mov.u64 %rd130, 0;
+ // inline asm
+ call (%rd125), _rt_buffer_get_64, (%rd126, %r98, %r99, %rd127, %rd128, %rd130, %rd130);
+ // inline asm
+ mov.u16 %rs43, 0;
+ st.v4.u8 [%rd125], {%rs43, %rs43, %rs43, %rs43};
+ bra.uni BB0_109;
+
+BB0_3:
+ ld.global.v2.u32 {%r119, %r120}, [pixelID];
+ cvt.u64.u32 %rd27, %r119;
+ cvt.u64.u32 %rd28, %r120;
+ mov.u64 %rd43, lightmapDirect;
+ cvta.global.u64 %rd26, %rd43;
+ mov.u32 %r114, 8;
+ // inline asm
+ call (%rd25), _rt_buffer_get_64, (%rd26, %r98, %r114, %rd27, %rd28, %rd23, %rd23);
+ // inline asm
+ ld.v4.u16 {%rs12, %rs13, %rs14, %rs15}, [%rd25];
+ // inline asm
+ { cvt.f32.f16 %f159, %rs12;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f160, %rs13;}
+
+ // inline asm
+ // inline asm
+ { cvt.f32.f16 %f161, %rs14;}
+
+ // inline asm
+ ld.global.v2.u32 {%r123, %r124}, [pixelID];
+ cvt.u64.u32 %rd33, %r123;
+ cvt.u64.u32 %rd34, %r124;
+ mov.u64 %rd44, uvpos;
+ cvta.global.u64 %rd32, %rd44;
+ mov.u32 %r116, 12;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd32, %r98, %r116, %rd33, %rd34, %rd23, %rd23);
+ // inline asm
+ ld.f32 %f168, [%rd31+8];
+ ld.f32 %f169, [%rd31+4];
+ ld.f32 %f170, [%rd31];
+ mul.f32 %f171, %f170, 0f3456BF95;
+ mul.f32 %f172, %f169, 0f3456BF95;
+ mul.f32 %f173, %f168, 0f3456BF95;
+ abs.f32 %f174, %f670;
+ div.rn.f32 %f175, %f171, %f174;
+ abs.f32 %f176, %f671;
+ div.rn.f32 %f177, %f172, %f176;
+ abs.f32 %f178, %f672;
+ div.rn.f32 %f179, %f173, %f178;
+ abs.f32 %f180, %f175;
+ abs.f32 %f181, %f177;
+ abs.f32 %f182, %f179;
+ mov.f32 %f183, 0f38D1B717;
+ max.f32 %f184, %f180, %f183;
+ max.f32 %f185, %f181, %f183;
+ max.f32 %f186, %f182, %f183;
+ fma.rn.f32 %f10, %f670, %f184, %f170;
+ fma.rn.f32 %f11, %f671, %f185, %f169;
+ fma.rn.f32 %f12, %f672, %f186, %f168;
+ setp.gt.f32 %p10, %f174, %f178;
+ neg.f32 %f187, %f671;
+ selp.f32 %f188, %f187, 0f00000000, %p10;
+ neg.f32 %f189, %f672;
+ selp.f32 %f190, %f670, %f189, %p10;
+ selp.f32 %f191, 0f00000000, %f671, %p10;
+ mul.f32 %f192, %f190, %f190;
+ fma.rn.f32 %f193, %f188, %f188, %f192;
+ fma.rn.f32 %f194, %f191, %f191, %f193;
+ sqrt.rn.f32 %f195, %f194;
+ rcp.rn.f32 %f196, %f195;
+ mul.f32 %f13, %f188, %f196;
+ mul.f32 %f14, %f190, %f196;
+ mul.f32 %f15, %f191, %f196;
+ ld.global.v2.u32 {%r127, %r128}, [pixelID];
+ cvt.u64.u32 %rd39, %r127;
+ cvt.u64.u32 %rd40, %r128;
+ mov.u64 %rd45, rnd_seeds;
+ cvta.global.u64 %rd38, %rd45;
+ // inline asm
+ call (%rd37), _rt_buffer_get_64, (%rd38, %r98, %r99, %rd39, %rd40, %rd23, %rd23);
+ // inline asm
+ mov.f32 %f679, 0f00000000;
+ setp.lt.s32 %p11, %r1, 1;
+ mov.f32 %f680, %f679;
+ mov.f32 %f681, %f679;
+ mov.f32 %f682, %f679;
+ mov.f32 %f683, %f679;
+ mov.f32 %f684, %f679;
+ @%p11 bra BB0_54;
+
+ cvt.rn.f32.s32 %f203, %r1;
+ rcp.rn.f32 %f16, %f203;
+ ld.u32 %r305, [%rd37];
+ mul.f32 %f17, %f10, 0f3456BF95;
+ mul.f32 %f18, %f11, 0f3456BF95;
+ mul.f32 %f19, %f12, 0f3456BF95;
+ mul.f32 %f204, %f670, %f14;
+ mul.f32 %f205, %f671, %f13;
+ sub.f32 %f20, %f205, %f204;
+ mul.f32 %f206, %f672, %f13;
+ mul.f32 %f207, %f670, %f15;
+ sub.f32 %f21, %f207, %f206;
+ mul.f32 %f208, %f671, %f15;
+ mul.f32 %f209, %f672, %f14;
+ sub.f32 %f22, %f209, %f208;
+ mov.f32 %f679, 0f00000000;
+ mov.u32 %r131, 0;
+ abs.f32 %f210, %f18;
+ abs.f32 %f211, %f17;
+ max.f32 %f212, %f211, %f210;
+ abs.f32 %f213, %f19;
+ max.f32 %f214, %f212, %f213;
+ mov.u32 %r302, %r131;
+ mov.f32 %f680, %f679;
+ mov.f32 %f681, %f679;
+ mov.f32 %f682, %f679;
+ mov.f32 %f683, %f679;
+ mov.f32 %f684, %f679;
+
+BB0_5:
+ max.f32 %f30, %f214, %f183;
+ mov.u32 %r304, %r131;
+
+BB0_6:
+ cvt.rn.f32.s32 %f667, %r302;
+ mad.lo.s32 %r133, %r305, 1664525, 1013904223;
+ and.b32 %r134, %r133, 16777215;
+ cvt.rn.f32.u32 %f216, %r134;
+ fma.rn.f32 %f217, %f216, 0f33800000, %f667;
+ mul.f32 %f37, %f16, %f217;
+ mad.lo.s32 %r305, %r133, 1664525, 1013904223;
+ and.b32 %r135, %r305, 16777215;
+ cvt.rn.f32.u32 %f218, %r135;
+ cvt.rn.f32.s32 %f219, %r304;
+ fma.rn.f32 %f220, %f218, 0f33800000, %f219;
+ mul.f32 %f221, %f16, %f220;
+ mul.f32 %f222, %f37, %f37;
+ mov.f32 %f223, 0f3F800000;
+ sub.f32 %f224, %f223, %f222;
+ mov.f32 %f225, 0f00000000;
+ max.f32 %f226, %f225, %f224;
+ sqrt.rn.f32 %f38, %f226;
+ mul.f32 %f691, %f221, 0f40C90FDB;
+ abs.f32 %f40, %f691;
+ setp.neu.f32 %p12, %f40, 0f7F800000;
+ mov.f32 %f685, %f691;
+ @%p12 bra BB0_8;
+
+ mul.rn.f32 %f685, %f691, %f225;
+
+BB0_8:
+ mul.f32 %f228, %f685, 0f3F22F983;
+ cvt.rni.s32.f32 %r315, %f228;
+ cvt.rn.f32.s32 %f229, %r315;
+ neg.f32 %f230, %f229;
+ mov.f32 %f231, 0f3FC90FDA;
+ fma.rn.f32 %f232, %f230, %f231, %f685;
+ mov.f32 %f233, 0f33A22168;
+ fma.rn.f32 %f234, %f230, %f233, %f232;
+ mov.f32 %f235, 0f27C234C5;
+ fma.rn.f32 %f686, %f230, %f235, %f234;
+ abs.f32 %f236, %f685;
+ setp.leu.f32 %p13, %f236, 0f47CE4780;
+ @%p13 bra BB0_19;
+
+ add.u64 %rd47, %SP, 12;
+ cvta.to.local.u64 %rd3, %rd47;
+ mov.b32 %r12, %f685;
+ shr.u32 %r13, %r12, 23;
+ shl.b32 %r138, %r12, 8;
+ or.b32 %r14, %r138, -2147483648;
+ mov.u32 %r306, 0;
+ mov.u64 %rd139, 0;
+ mov.u64 %rd138, %rd3;
+ mov.u32 %r307, %r306;
+
+BB0_10:
+ .pragma "nounroll";
+ shl.b64 %rd48, %rd139, 2;
+ mov.u64 %rd49, __cudart_i2opi_f;
+ add.s64 %rd50, %rd49, %rd48;
+ ld.const.u32 %r141, [%rd50];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r139, %r141, %r14, %r307;
+ madc.hi.u32 %r307, %r141, %r14, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd138], %r139;
+ add.s32 %r306, %r306, 1;
+ cvt.s64.s32 %rd139, %r306;
+ mul.wide.s32 %rd53, %r306, 4;
+ add.s64 %rd138, %rd3, %rd53;
+ setp.ne.s32 %p14, %r306, 6;
+ @%p14 bra BB0_10;
+
+ add.u64 %rd137, %SP, 12;
+ and.b32 %r144, %r13, 255;
+ add.s32 %r145, %r144, -128;
+ shr.u32 %r146, %r145, 5;
+ and.b32 %r19, %r12, -2147483648;
+ cvta.to.local.u64 %rd55, %rd137;
+ st.local.u32 [%rd55+24], %r307;
+ mov.u32 %r147, 6;
+ sub.s32 %r148, %r147, %r146;
+ mul.wide.s32 %rd56, %r148, 4;
+ add.s64 %rd8, %rd55, %rd56;
+ ld.local.u32 %r308, [%rd8];
+ ld.local.u32 %r309, [%rd8+-4];
+ and.b32 %r22, %r13, 31;
+ setp.eq.s32 %p15, %r22, 0;
+ @%p15 bra BB0_13;
+
+ mov.u32 %r149, 32;
+ sub.s32 %r150, %r149, %r22;
+ shr.u32 %r151, %r309, %r150;
+ shl.b32 %r152, %r308, %r22;
+ add.s32 %r308, %r151, %r152;
+ ld.local.u32 %r153, [%rd8+-8];
+ shr.u32 %r154, %r153, %r150;
+ shl.b32 %r155, %r309, %r22;
+ add.s32 %r309, %r154, %r155;
+
+BB0_13:
+ shr.u32 %r156, %r309, 30;
+ shl.b32 %r157, %r308, 2;
+ add.s32 %r310, %r156, %r157;
+ shl.b32 %r28, %r309, 2;
+ shr.u32 %r158, %r310, 31;
+ shr.u32 %r159, %r308, 30;
+ add.s32 %r29, %r158, %r159;
+ setp.eq.s32 %p16, %r158, 0;
+ @%p16 bra BB0_14;
+ bra.uni BB0_15;
+
+BB0_14:
+ mov.u32 %r311, %r19;
+ mov.u32 %r312, %r28;
+ bra.uni BB0_16;
+
+BB0_15:
+ not.b32 %r160, %r310;
+ neg.s32 %r312, %r28;
+ setp.eq.s32 %p17, %r28, 0;
+ selp.u32 %r161, 1, 0, %p17;
+ add.s32 %r310, %r161, %r160;
+ xor.b32 %r311, %r19, -2147483648;
+
+BB0_16:
+ clz.b32 %r314, %r310;
+ setp.eq.s32 %p18, %r314, 0;
+ shl.b32 %r162, %r310, %r314;
+ mov.u32 %r163, 32;
+ sub.s32 %r164, %r163, %r314;
+ shr.u32 %r165, %r312, %r164;
+ add.s32 %r166, %r165, %r162;
+ selp.b32 %r37, %r310, %r166, %p18;
+ mov.u32 %r167, -921707870;
+ mul.hi.u32 %r313, %r37, %r167;
+ setp.eq.s32 %p19, %r19, 0;
+ neg.s32 %r168, %r29;
+ selp.b32 %r315, %r29, %r168, %p19;
+ setp.lt.s32 %p20, %r313, 1;
+ @%p20 bra BB0_18;
+
+ mul.lo.s32 %r169, %r37, -921707870;
+ shr.u32 %r170, %r169, 31;
+ shl.b32 %r171, %r313, 1;
+ add.s32 %r313, %r170, %r171;
+ add.s32 %r314, %r314, 1;
+
+BB0_18:
+ mov.u32 %r172, 126;
+ sub.s32 %r173, %r172, %r314;
+ shl.b32 %r174, %r173, 23;
+ add.s32 %r175, %r313, 1;
+ shr.u32 %r176, %r175, 7;
+ add.s32 %r177, %r176, 1;
+ shr.u32 %r178, %r177, 1;
+ add.s32 %r179, %r178, %r174;
+ or.b32 %r180, %r179, %r311;
+ mov.b32 %f686, %r180;
+
+BB0_19:
+ mul.rn.f32 %f46, %f686, %f686;
+ add.s32 %r45, %r315, 1;
+ and.b32 %r46, %r45, 1;
+ setp.eq.s32 %p21, %r46, 0;
+ @%p21 bra BB0_21;
+ bra.uni BB0_20;
+
+BB0_21:
+ mov.f32 %f239, 0f3C08839E;
+ mov.f32 %f240, 0fB94CA1F9;
+ fma.rn.f32 %f687, %f240, %f46, %f239;
+ bra.uni BB0_22;
+
+BB0_20:
+ mov.f32 %f237, 0fBAB6061A;
+ mov.f32 %f238, 0f37CCF5CE;
+ fma.rn.f32 %f687, %f238, %f46, %f237;
+
+BB0_22:
+ @%p21 bra BB0_24;
+ bra.uni BB0_23;
+
+BB0_24:
+ mov.f32 %f244, 0fBE2AAAA3;
+ fma.rn.f32 %f245, %f687, %f46, %f244;
+ fma.rn.f32 %f688, %f245, %f46, %f225;
+ bra.uni BB0_25;
+
+BB0_23:
+ mov.f32 %f241, 0f3D2AAAA5;
+ fma.rn.f32 %f242, %f687, %f46, %f241;
+ mov.f32 %f243, 0fBF000000;
+ fma.rn.f32 %f688, %f242, %f46, %f243;
+
+BB0_25:
+ fma.rn.f32 %f689, %f688, %f686, %f686;
+ @%p21 bra BB0_27;
+
+ fma.rn.f32 %f689, %f688, %f46, %f223;
+
+BB0_27:
+ and.b32 %r181, %r45, 2;
+ setp.eq.s32 %p24, %r181, 0;
+ @%p24 bra BB0_29;
+
+ mov.f32 %f249, 0fBF800000;
+ fma.rn.f32 %f689, %f689, %f249, %f225;
+
+BB0_29:
+ @%p12 bra BB0_31;
+
+ mul.rn.f32 %f691, %f691, %f225;
+
+BB0_31:
+ mov.f32 %f669, 0f27C234C5;
+ mov.f32 %f668, 0f33A22168;
+ mov.f32 %f666, 0f3FC90FDA;
+ mul.f32 %f251, %f691, 0f3F22F983;
+ cvt.rni.s32.f32 %r325, %f251;
+ cvt.rn.f32.s32 %f252, %r325;
+ neg.f32 %f253, %f252;
+ fma.rn.f32 %f255, %f253, %f666, %f691;
+ fma.rn.f32 %f257, %f253, %f668, %f255;
+ fma.rn.f32 %f692, %f253, %f669, %f257;
+ abs.f32 %f259, %f691;
+ setp.leu.f32 %p26, %f259, 0f47CE4780;
+ @%p26 bra BB0_42;
+
+ add.u64 %rd58, %SP, 12;
+ cvta.to.local.u64 %rd9, %rd58;
+ mov.b32 %r48, %f691;
+ shr.u32 %r49, %r48, 23;
+ shl.b32 %r184, %r48, 8;
+ or.b32 %r50, %r184, -2147483648;
+ mov.u32 %r316, 0;
+ mov.u64 %rd140, %rd9;
+ mov.u64 %rd141, %rd23;
+ mov.u32 %r317, %r316;
+
+BB0_33:
+ .pragma "nounroll";
+ shl.b64 %rd59, %rd141, 2;
+ mov.u64 %rd60, __cudart_i2opi_f;
+ add.s64 %rd61, %rd60, %rd59;
+ ld.const.u32 %r187, [%rd61];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r185, %r187, %r50, %r317;
+ madc.hi.u32 %r317, %r187, %r50, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd140], %r185;
+ add.s32 %r316, %r316, 1;
+ cvt.s64.s32 %rd141, %r316;
+ mul.wide.s32 %rd62, %r316, 4;
+ add.s64 %rd140, %rd9, %rd62;
+ setp.ne.s32 %p27, %r316, 6;
+ @%p27 bra BB0_33;
+
+ and.b32 %r190, %r49, 255;
+ add.s32 %r191, %r190, -128;
+ shr.u32 %r192, %r191, 5;
+ and.b32 %r55, %r48, -2147483648;
+ cvta.to.local.u64 %rd64, %rd58;
+ st.local.u32 [%rd64+24], %r317;
+ mov.u32 %r193, 6;
+ sub.s32 %r194, %r193, %r192;
+ mul.wide.s32 %rd65, %r194, 4;
+ add.s64 %rd15, %rd64, %rd65;
+ ld.local.u32 %r318, [%rd15];
+ ld.local.u32 %r319, [%rd15+-4];
+ and.b32 %r58, %r49, 31;
+ setp.eq.s32 %p28, %r58, 0;
+ @%p28 bra BB0_36;
+
+ mov.u32 %r195, 32;
+ sub.s32 %r196, %r195, %r58;
+ shr.u32 %r197, %r319, %r196;
+ shl.b32 %r198, %r318, %r58;
+ add.s32 %r318, %r197, %r198;
+ ld.local.u32 %r199, [%rd15+-8];
+ shr.u32 %r200, %r199, %r196;
+ shl.b32 %r201, %r319, %r58;
+ add.s32 %r319, %r200, %r201;
+
+BB0_36:
+ shr.u32 %r202, %r319, 30;
+ shl.b32 %r203, %r318, 2;
+ add.s32 %r320, %r202, %r203;
+ shl.b32 %r64, %r319, 2;
+ shr.u32 %r204, %r320, 31;
+ shr.u32 %r205, %r318, 30;
+ add.s32 %r65, %r204, %r205;
+ setp.eq.s32 %p29, %r204, 0;
+ @%p29 bra BB0_37;
+ bra.uni BB0_38;
+
+BB0_37:
+ mov.u32 %r321, %r55;
+ mov.u32 %r322, %r64;
+ bra.uni BB0_39;
+
+BB0_38:
+ not.b32 %r206, %r320;
+ neg.s32 %r322, %r64;
+ setp.eq.s32 %p30, %r64, 0;
+ selp.u32 %r207, 1, 0, %p30;
+ add.s32 %r320, %r207, %r206;
+ xor.b32 %r321, %r55, -2147483648;
+
+BB0_39:
+ clz.b32 %r324, %r320;
+ setp.eq.s32 %p31, %r324, 0;
+ shl.b32 %r208, %r320, %r324;
+ mov.u32 %r209, 32;
+ sub.s32 %r210, %r209, %r324;
+ shr.u32 %r211, %r322, %r210;
+ add.s32 %r212, %r211, %r208;
+ selp.b32 %r73, %r320, %r212, %p31;
+ mov.u32 %r213, -921707870;
+ mul.hi.u32 %r323, %r73, %r213;
+ setp.eq.s32 %p32, %r55, 0;
+ neg.s32 %r214, %r65;
+ selp.b32 %r325, %r65, %r214, %p32;
+ setp.lt.s32 %p33, %r323, 1;
+ @%p33 bra BB0_41;
+
+ mul.lo.s32 %r215, %r73, -921707870;
+ shr.u32 %r216, %r215, 31;
+ shl.b32 %r217, %r323, 1;
+ add.s32 %r323, %r216, %r217;
+ add.s32 %r324, %r324, 1;
+
+BB0_41:
+ mov.u32 %r218, 126;
+ sub.s32 %r219, %r218, %r324;
+ shl.b32 %r220, %r219, 23;
+ add.s32 %r221, %r323, 1;
+ shr.u32 %r222, %r221, 7;
+ add.s32 %r223, %r222, 1;
+ shr.u32 %r224, %r223, 1;
+ add.s32 %r225, %r224, %r220;
+ or.b32 %r226, %r225, %r321;
+ mov.b32 %f692, %r226;
+
+BB0_42:
+ mul.rn.f32 %f63, %f692, %f692;
+ and.b32 %r81, %r325, 1;
+ setp.eq.s32 %p34, %r81, 0;
+ @%p34 bra BB0_44;
+ bra.uni BB0_43;
+
+BB0_44:
+ mov.f32 %f262, 0f3C08839E;
+ mov.f32 %f263, 0fB94CA1F9;
+ fma.rn.f32 %f693, %f263, %f63, %f262;
+ bra.uni BB0_45;
+
+BB0_43:
+ mov.f32 %f260, 0fBAB6061A;
+ mov.f32 %f261, 0f37CCF5CE;
+ fma.rn.f32 %f693, %f261, %f63, %f260;
+
+BB0_45:
+ @%p34 bra BB0_47;
+ bra.uni BB0_46;
+
+BB0_47:
+ mov.f32 %f267, 0fBE2AAAA3;
+ fma.rn.f32 %f268, %f693, %f63, %f267;
+ fma.rn.f32 %f694, %f268, %f63, %f225;
+ bra.uni BB0_48;
+
+BB0_46:
+ mov.f32 %f264, 0f3D2AAAA5;
+ fma.rn.f32 %f265, %f693, %f63, %f264;
+ mov.f32 %f266, 0fBF000000;
+ fma.rn.f32 %f694, %f265, %f63, %f266;
+
+BB0_48:
+ fma.rn.f32 %f695, %f694, %f692, %f692;
+ @%p34 bra BB0_50;
+
+ fma.rn.f32 %f695, %f694, %f63, %f223;
+
+BB0_50:
+ and.b32 %r227, %r325, 2;
+ setp.eq.s32 %p37, %r227, 0;
+ @%p37 bra BB0_52;
+
+ mov.f32 %f272, 0fBF800000;
+ fma.rn.f32 %f695, %f695, %f272, %f225;
+
+BB0_52:
+ mul.f32 %f281, %f38, %f689;
+ add.u64 %rd66, %SP, 0;
+ cvta.to.local.u64 %rd67, %rd66;
+ mul.f32 %f282, %f38, %f695;
+ mul.f32 %f283, %f13, %f282;
+ mul.f32 %f284, %f14, %f282;
+ mul.f32 %f285, %f15, %f282;
+ fma.rn.f32 %f286, %f22, %f281, %f283;
+ fma.rn.f32 %f287, %f21, %f281, %f284;
+ fma.rn.f32 %f288, %f20, %f281, %f285;
+ fma.rn.f32 %f276, %f670, %f37, %f286;
+ fma.rn.f32 %f277, %f671, %f37, %f287;
+ fma.rn.f32 %f278, %f672, %f37, %f288;
+ mov.u32 %r229, 0;
+ st.local.u32 [%rd67+8], %r229;
+ st.local.u32 [%rd67+4], %r229;
+ st.local.u32 [%rd67], %r229;
+ ld.global.u32 %r228, [root];
+ mov.f32 %f280, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r228, %f10, %f11, %f12, %f276, %f277, %f278, %r229, %f30, %f280, %rd66, %r116);
+ // inline asm
+ ld.local.f32 %f289, [%rd67];
+ ld.local.f32 %f290, [%rd67+4];
+ mul.f32 %f291, %f290, 0f3F372474;
+ fma.rn.f32 %f292, %f289, 0f3E59999A, %f291;
+ ld.local.f32 %f293, [%rd67+8];
+ fma.rn.f32 %f294, %f293, 0f3D93A92A, %f292;
+ fma.rn.f32 %f684, %f276, %f294, %f684;
+ fma.rn.f32 %f683, %f277, %f294, %f683;
+ fma.rn.f32 %f682, %f278, %f294, %f682;
+ mul.f32 %f295, %f671, %f277;
+ fma.rn.f32 %f296, %f670, %f276, %f295;
+ fma.rn.f32 %f297, %f672, %f278, %f296;
+ cvt.sat.f32.f32 %f298, %f297;
+ fma.rn.f32 %f681, %f298, %f289, %f681;
+ fma.rn.f32 %f680, %f298, %f290, %f680;
+ fma.rn.f32 %f679, %f298, %f293, %f679;
+ add.s32 %r304, %r304, 1;
+ setp.lt.s32 %p38, %r304, %r1;
+ @%p38 bra BB0_6;
+
+ add.s32 %r302, %r302, 1;
+ setp.lt.s32 %p39, %r302, %r1;
+ @%p39 bra BB0_5;
+
+BB0_54:
+ cvt.rn.f32.u32 %f299, %r4;
+ cvt.rn.f32.u32 %f300, %r3;
+ tex.2d.v4.f32.f32 {%f301, %f302, %f303, %f304}, [albedoTex, {%f300, %f299}];
+ mul.lo.s32 %r231, %r1, %r1;
+ cvt.rn.f32.s32 %f305, %r231;
+ rcp.rn.f32 %f306, %f305;
+ mul.f32 %f307, %f681, %f306;
+ mul.f32 %f308, %f680, %f306;
+ mul.f32 %f309, %f679, %f306;
+ fma.rn.f32 %f310, %f681, %f306, %f307;
+ fma.rn.f32 %f311, %f680, %f306, %f308;
+ fma.rn.f32 %f312, %f679, %f306, %f309;
+ mul.f32 %f87, %f310, %f301;
+ mul.f32 %f88, %f311, %f302;
+ mul.f32 %f89, %f312, %f303;
+ add.f32 %f90, %f159, %f87;
+ add.f32 %f91, %f160, %f88;
+ add.f32 %f92, %f161, %f89;
+ ld.global.u32 %r327, [imageEnabled];
+ and.b32 %r232, %r327, 1;
+ setp.eq.b32 %p40, %r232, 1;
+ @!%p40 bra BB0_89;
+ bra.uni BB0_55;
+
+BB0_55:
+ abs.f32 %f94, %f90;
+ setp.lt.f32 %p41, %f94, 0f00800000;
+ mul.f32 %f318, %f94, 0f4B800000;
+ selp.f32 %f319, 0fC3170000, 0fC2FE0000, %p41;
+ selp.f32 %f320, %f318, %f94, %p41;
+ mov.b32 %r233, %f320;
+ and.b32 %r234, %r233, 8388607;
+ or.b32 %r235, %r234, 1065353216;
+ mov.b32 %f321, %r235;
+ shr.u32 %r236, %r233, 23;
+ cvt.rn.f32.u32 %f322, %r236;
+ add.f32 %f323, %f319, %f322;
+ setp.gt.f32 %p42, %f321, 0f3FB504F3;
+ mul.f32 %f324, %f321, 0f3F000000;
+ add.f32 %f325, %f323, 0f3F800000;
+ selp.f32 %f326, %f324, %f321, %p42;
+ selp.f32 %f327, %f325, %f323, %p42;
+ add.f32 %f328, %f326, 0fBF800000;
+ add.f32 %f314, %f326, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f313,%f314;
+ // inline asm
+ add.f32 %f329, %f328, %f328;
+ mul.f32 %f330, %f313, %f329;
+ mul.f32 %f331, %f330, %f330;
+ mov.f32 %f332, 0f3C4CAF63;
+ mov.f32 %f333, 0f3B18F0FE;
+ fma.rn.f32 %f334, %f333, %f331, %f332;
+ mov.f32 %f335, 0f3DAAAABD;
+ fma.rn.f32 %f336, %f334, %f331, %f335;
+ mul.rn.f32 %f337, %f336, %f331;
+ mul.rn.f32 %f338, %f337, %f330;
+ sub.f32 %f339, %f328, %f330;
+ neg.f32 %f340, %f330;
+ add.f32 %f341, %f339, %f339;
+ fma.rn.f32 %f342, %f340, %f328, %f341;
+ mul.rn.f32 %f343, %f313, %f342;
+ add.f32 %f344, %f338, %f330;
+ sub.f32 %f345, %f330, %f344;
+ add.f32 %f346, %f338, %f345;
+ add.f32 %f347, %f343, %f346;
+ add.f32 %f348, %f344, %f347;
+ sub.f32 %f349, %f344, %f348;
+ add.f32 %f350, %f347, %f349;
+ mov.f32 %f351, 0f3F317200;
+ mul.rn.f32 %f352, %f327, %f351;
+ mov.f32 %f353, 0f35BFBE8E;
+ mul.rn.f32 %f354, %f327, %f353;
+ add.f32 %f355, %f352, %f348;
+ sub.f32 %f356, %f352, %f355;
+ add.f32 %f357, %f348, %f356;
+ add.f32 %f358, %f350, %f357;
+ add.f32 %f359, %f354, %f358;
+ add.f32 %f360, %f355, %f359;
+ sub.f32 %f361, %f355, %f360;
+ add.f32 %f362, %f359, %f361;
+ mov.f32 %f363, 0f3EE66666;
+ mul.rn.f32 %f364, %f363, %f360;
+ neg.f32 %f365, %f364;
+ fma.rn.f32 %f366, %f363, %f360, %f365;
+ fma.rn.f32 %f367, %f363, %f362, %f366;
+ mov.f32 %f368, 0f00000000;
+ fma.rn.f32 %f369, %f368, %f360, %f367;
+ add.rn.f32 %f370, %f364, %f369;
+ neg.f32 %f371, %f370;
+ add.rn.f32 %f372, %f364, %f371;
+ add.rn.f32 %f373, %f372, %f369;
+ mov.b32 %r237, %f370;
+ setp.eq.s32 %p43, %r237, 1118925336;
+ add.s32 %r238, %r237, -1;
+ mov.b32 %f374, %r238;
+ add.f32 %f375, %f373, 0f37000000;
+ selp.f32 %f376, %f374, %f370, %p43;
+ selp.f32 %f95, %f375, %f373, %p43;
+ mul.f32 %f377, %f376, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f378, %f377;
+ mov.f32 %f379, 0fBF317200;
+ fma.rn.f32 %f380, %f378, %f379, %f376;
+ mov.f32 %f381, 0fB5BFBE8E;
+ fma.rn.f32 %f382, %f378, %f381, %f380;
+ mul.f32 %f383, %f382, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f384, %f383;
+ add.f32 %f385, %f378, 0f00000000;
+ ex2.approx.f32 %f386, %f385;
+ mul.f32 %f387, %f384, %f386;
+ setp.lt.f32 %p44, %f376, 0fC2D20000;
+ selp.f32 %f388, 0f00000000, %f387, %p44;
+ setp.gt.f32 %p45, %f376, 0f42D20000;
+ selp.f32 %f703, 0f7F800000, %f388, %p45;
+ setp.eq.f32 %p46, %f703, 0f7F800000;
+ @%p46 bra BB0_57;
+
+ fma.rn.f32 %f703, %f703, %f95, %f703;
+
+BB0_57:
+ mov.f32 %f624, 0f3E666666;
+ cvt.rzi.f32.f32 %f623, %f624;
+ fma.rn.f32 %f622, %f623, 0fC0000000, 0f3EE66666;
+ abs.f32 %f621, %f622;
+ setp.lt.f32 %p47, %f90, 0f00000000;
+ setp.eq.f32 %p48, %f621, 0f3F800000;
+ and.pred %p1, %p47, %p48;
+ mov.b32 %r239, %f703;
+ xor.b32 %r240, %r239, -2147483648;
+ mov.b32 %f389, %r240;
+ selp.f32 %f705, %f389, %f703, %p1;
+ setp.eq.f32 %p49, %f90, 0f00000000;
+ @%p49 bra BB0_60;
+ bra.uni BB0_58;
+
+BB0_60:
+ add.f32 %f392, %f90, %f90;
+ selp.f32 %f705, %f392, 0f00000000, %p48;
+ bra.uni BB0_61;
+
+BB0_58:
+ setp.geu.f32 %p50, %f90, 0f00000000;
+ @%p50 bra BB0_61;
+
+ mov.f32 %f651, 0f3EE66666;
+ cvt.rzi.f32.f32 %f391, %f651;
+ setp.neu.f32 %p51, %f391, 0f3EE66666;
+ selp.f32 %f705, 0f7FFFFFFF, %f705, %p51;
+
+BB0_61:
+ add.f32 %f626, %f159, %f87;
+ abs.f32 %f625, %f626;
+ add.f32 %f393, %f625, 0f3EE66666;
+ mov.b32 %r241, %f393;
+ setp.lt.s32 %p53, %r241, 2139095040;
+ @%p53 bra BB0_66;
+
+ add.f32 %f648, %f159, %f87;
+ abs.f32 %f647, %f648;
+ setp.gtu.f32 %p54, %f647, 0f7F800000;
+ @%p54 bra BB0_65;
+ bra.uni BB0_63;
+
+BB0_65:
+ add.f32 %f705, %f90, 0f3EE66666;
+ bra.uni BB0_66;
+
+BB0_63:
+ add.f32 %f650, %f159, %f87;
+ abs.f32 %f649, %f650;
+ setp.neu.f32 %p55, %f649, 0f7F800000;
+ @%p55 bra BB0_66;
+
+ selp.f32 %f705, 0fFF800000, 0f7F800000, %p1;
+
+BB0_66:
+ mov.f32 %f635, 0fB5BFBE8E;
+ mov.f32 %f634, 0fBF317200;
+ mov.f32 %f633, 0f00000000;
+ mov.f32 %f632, 0f35BFBE8E;
+ mov.f32 %f631, 0f3F317200;
+ mov.f32 %f630, 0f3DAAAABD;
+ mov.f32 %f629, 0f3C4CAF63;
+ mov.f32 %f628, 0f3B18F0FE;
+ mov.f32 %f627, 0f3EE66666;
+ setp.eq.f32 %p56, %f90, 0f3F800000;
+ selp.f32 %f106, 0f3F800000, %f705, %p56;
+ abs.f32 %f107, %f91;
+ setp.lt.f32 %p57, %f107, 0f00800000;
+ mul.f32 %f396, %f107, 0f4B800000;
+ selp.f32 %f397, 0fC3170000, 0fC2FE0000, %p57;
+ selp.f32 %f398, %f396, %f107, %p57;
+ mov.b32 %r242, %f398;
+ and.b32 %r243, %r242, 8388607;
+ or.b32 %r244, %r243, 1065353216;
+ mov.b32 %f399, %r244;
+ shr.u32 %r245, %r242, 23;
+ cvt.rn.f32.u32 %f400, %r245;
+ add.f32 %f401, %f397, %f400;
+ setp.gt.f32 %p58, %f399, 0f3FB504F3;
+ mul.f32 %f402, %f399, 0f3F000000;
+ add.f32 %f403, %f401, 0f3F800000;
+ selp.f32 %f404, %f402, %f399, %p58;
+ selp.f32 %f405, %f403, %f401, %p58;
+ add.f32 %f406, %f404, 0fBF800000;
+ add.f32 %f395, %f404, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f394,%f395;
+ // inline asm
+ add.f32 %f407, %f406, %f406;
+ mul.f32 %f408, %f394, %f407;
+ mul.f32 %f409, %f408, %f408;
+ fma.rn.f32 %f412, %f628, %f409, %f629;
+ fma.rn.f32 %f414, %f412, %f409, %f630;
+ mul.rn.f32 %f415, %f414, %f409;
+ mul.rn.f32 %f416, %f415, %f408;
+ sub.f32 %f417, %f406, %f408;
+ neg.f32 %f418, %f408;
+ add.f32 %f419, %f417, %f417;
+ fma.rn.f32 %f420, %f418, %f406, %f419;
+ mul.rn.f32 %f421, %f394, %f420;
+ add.f32 %f422, %f416, %f408;
+ sub.f32 %f423, %f408, %f422;
+ add.f32 %f424, %f416, %f423;
+ add.f32 %f425, %f421, %f424;
+ add.f32 %f426, %f422, %f425;
+ sub.f32 %f427, %f422, %f426;
+ add.f32 %f428, %f425, %f427;
+ mul.rn.f32 %f430, %f405, %f631;
+ mul.rn.f32 %f432, %f405, %f632;
+ add.f32 %f433, %f430, %f426;
+ sub.f32 %f434, %f430, %f433;
+ add.f32 %f435, %f426, %f434;
+ add.f32 %f436, %f428, %f435;
+ add.f32 %f437, %f432, %f436;
+ add.f32 %f438, %f433, %f437;
+ sub.f32 %f439, %f433, %f438;
+ add.f32 %f440, %f437, %f439;
+ mul.rn.f32 %f442, %f627, %f438;
+ neg.f32 %f443, %f442;
+ fma.rn.f32 %f444, %f627, %f438, %f443;
+ fma.rn.f32 %f445, %f627, %f440, %f444;
+ fma.rn.f32 %f447, %f633, %f438, %f445;
+ add.rn.f32 %f448, %f442, %f447;
+ neg.f32 %f449, %f448;
+ add.rn.f32 %f450, %f442, %f449;
+ add.rn.f32 %f451, %f450, %f447;
+ mov.b32 %r246, %f448;
+ setp.eq.s32 %p59, %r246, 1118925336;
+ add.s32 %r247, %r246, -1;
+ mov.b32 %f452, %r247;
+ add.f32 %f453, %f451, 0f37000000;
+ selp.f32 %f454, %f452, %f448, %p59;
+ selp.f32 %f108, %f453, %f451, %p59;
+ mul.f32 %f455, %f454, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f456, %f455;
+ fma.rn.f32 %f458, %f456, %f634, %f454;
+ fma.rn.f32 %f460, %f456, %f635, %f458;
+ mul.f32 %f461, %f460, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f462, %f461;
+ add.f32 %f463, %f456, 0f00000000;
+ ex2.approx.f32 %f464, %f463;
+ mul.f32 %f465, %f462, %f464;
+ setp.lt.f32 %p60, %f454, 0fC2D20000;
+ selp.f32 %f466, 0f00000000, %f465, %p60;
+ setp.gt.f32 %p61, %f454, 0f42D20000;
+ selp.f32 %f706, 0f7F800000, %f466, %p61;
+ setp.eq.f32 %p62, %f706, 0f7F800000;
+ @%p62 bra BB0_68;
+
+ fma.rn.f32 %f706, %f706, %f108, %f706;
+
+BB0_68:
+ setp.lt.f32 %p63, %f91, 0f00000000;
+ and.pred %p2, %p63, %p48;
+ mov.b32 %r248, %f706;
+ xor.b32 %r249, %r248, -2147483648;
+ mov.b32 %f467, %r249;
+ selp.f32 %f708, %f467, %f706, %p2;
+ setp.eq.f32 %p65, %f91, 0f00000000;
+ @%p65 bra BB0_71;
+ bra.uni BB0_69;
+
+BB0_71:
+ add.f32 %f470, %f91, %f91;
+ selp.f32 %f708, %f470, 0f00000000, %p48;
+ bra.uni BB0_72;
+
+BB0_69:
+ setp.geu.f32 %p66, %f91, 0f00000000;
+ @%p66 bra BB0_72;
+
+ mov.f32 %f646, 0f3EE66666;
+ cvt.rzi.f32.f32 %f469, %f646;
+ setp.neu.f32 %p67, %f469, 0f3EE66666;
+ selp.f32 %f708, 0f7FFFFFFF, %f708, %p67;
+
+BB0_72:
+ add.f32 %f653, %f160, %f88;
+ abs.f32 %f652, %f653;
+ add.f32 %f471, %f652, 0f3EE66666;
+ mov.b32 %r250, %f471;
+ setp.lt.s32 %p69, %r250, 2139095040;
+ @%p69 bra BB0_77;
+
+ add.f32 %f656, %f160, %f88;
+ abs.f32 %f655, %f656;
+ setp.gtu.f32 %p70, %f655, 0f7F800000;
+ @%p70 bra BB0_76;
+ bra.uni BB0_74;
+
+BB0_76:
+ add.f32 %f708, %f91, 0f3EE66666;
+ bra.uni BB0_77;
+
+BB0_74:
+ add.f32 %f658, %f160, %f88;
+ abs.f32 %f657, %f658;
+ setp.neu.f32 %p71, %f657, 0f7F800000;
+ @%p71 bra BB0_77;
+
+ selp.f32 %f708, 0fFF800000, 0f7F800000, %p2;
+
+BB0_77:
+ mov.f32 %f644, 0fB5BFBE8E;
+ mov.f32 %f643, 0fBF317200;
+ mov.f32 %f642, 0f00000000;
+ mov.f32 %f641, 0f35BFBE8E;
+ mov.f32 %f640, 0f3F317200;
+ mov.f32 %f639, 0f3DAAAABD;
+ mov.f32 %f638, 0f3C4CAF63;
+ mov.f32 %f637, 0f3B18F0FE;
+ mov.f32 %f636, 0f3EE66666;
+ setp.eq.f32 %p72, %f91, 0f3F800000;
+ selp.f32 %f119, 0f3F800000, %f708, %p72;
+ abs.f32 %f120, %f92;
+ setp.lt.f32 %p73, %f120, 0f00800000;
+ mul.f32 %f474, %f120, 0f4B800000;
+ selp.f32 %f475, 0fC3170000, 0fC2FE0000, %p73;
+ selp.f32 %f476, %f474, %f120, %p73;
+ mov.b32 %r251, %f476;
+ and.b32 %r252, %r251, 8388607;
+ or.b32 %r253, %r252, 1065353216;
+ mov.b32 %f477, %r253;
+ shr.u32 %r254, %r251, 23;
+ cvt.rn.f32.u32 %f478, %r254;
+ add.f32 %f479, %f475, %f478;
+ setp.gt.f32 %p74, %f477, 0f3FB504F3;
+ mul.f32 %f480, %f477, 0f3F000000;
+ add.f32 %f481, %f479, 0f3F800000;
+ selp.f32 %f482, %f480, %f477, %p74;
+ selp.f32 %f483, %f481, %f479, %p74;
+ add.f32 %f484, %f482, 0fBF800000;
+ add.f32 %f473, %f482, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f472,%f473;
+ // inline asm
+ add.f32 %f485, %f484, %f484;
+ mul.f32 %f486, %f472, %f485;
+ mul.f32 %f487, %f486, %f486;
+ fma.rn.f32 %f490, %f637, %f487, %f638;
+ fma.rn.f32 %f492, %f490, %f487, %f639;
+ mul.rn.f32 %f493, %f492, %f487;
+ mul.rn.f32 %f494, %f493, %f486;
+ sub.f32 %f495, %f484, %f486;
+ neg.f32 %f496, %f486;
+ add.f32 %f497, %f495, %f495;
+ fma.rn.f32 %f498, %f496, %f484, %f497;
+ mul.rn.f32 %f499, %f472, %f498;
+ add.f32 %f500, %f494, %f486;
+ sub.f32 %f501, %f486, %f500;
+ add.f32 %f502, %f494, %f501;
+ add.f32 %f503, %f499, %f502;
+ add.f32 %f504, %f500, %f503;
+ sub.f32 %f505, %f500, %f504;
+ add.f32 %f506, %f503, %f505;
+ mul.rn.f32 %f508, %f483, %f640;
+ mul.rn.f32 %f510, %f483, %f641;
+ add.f32 %f511, %f508, %f504;
+ sub.f32 %f512, %f508, %f511;
+ add.f32 %f513, %f504, %f512;
+ add.f32 %f514, %f506, %f513;
+ add.f32 %f515, %f510, %f514;
+ add.f32 %f516, %f511, %f515;
+ sub.f32 %f517, %f511, %f516;
+ add.f32 %f518, %f515, %f517;
+ mul.rn.f32 %f520, %f636, %f516;
+ neg.f32 %f521, %f520;
+ fma.rn.f32 %f522, %f636, %f516, %f521;
+ fma.rn.f32 %f523, %f636, %f518, %f522;
+ fma.rn.f32 %f525, %f642, %f516, %f523;
+ add.rn.f32 %f526, %f520, %f525;
+ neg.f32 %f527, %f526;
+ add.rn.f32 %f528, %f520, %f527;
+ add.rn.f32 %f529, %f528, %f525;
+ mov.b32 %r255, %f526;
+ setp.eq.s32 %p75, %r255, 1118925336;
+ add.s32 %r256, %r255, -1;
+ mov.b32 %f530, %r256;
+ add.f32 %f531, %f529, 0f37000000;
+ selp.f32 %f532, %f530, %f526, %p75;
+ selp.f32 %f121, %f531, %f529, %p75;
+ mul.f32 %f533, %f532, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f534, %f533;
+ fma.rn.f32 %f536, %f534, %f643, %f532;
+ fma.rn.f32 %f538, %f534, %f644, %f536;
+ mul.f32 %f539, %f538, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f540, %f539;
+ add.f32 %f541, %f534, 0f00000000;
+ ex2.approx.f32 %f542, %f541;
+ mul.f32 %f543, %f540, %f542;
+ setp.lt.f32 %p76, %f532, 0fC2D20000;
+ selp.f32 %f544, 0f00000000, %f543, %p76;
+ setp.gt.f32 %p77, %f532, 0f42D20000;
+ selp.f32 %f709, 0f7F800000, %f544, %p77;
+ setp.eq.f32 %p78, %f709, 0f7F800000;
+ @%p78 bra BB0_79;
+
+ fma.rn.f32 %f709, %f709, %f121, %f709;
+
+BB0_79:
+ setp.lt.f32 %p79, %f92, 0f00000000;
+ and.pred %p3, %p79, %p48;
+ mov.b32 %r257, %f709;
+ xor.b32 %r258, %r257, -2147483648;
+ mov.b32 %f545, %r258;
+ selp.f32 %f711, %f545, %f709, %p3;
+ setp.eq.f32 %p81, %f92, 0f00000000;
+ @%p81 bra BB0_82;
+ bra.uni BB0_80;
+
+BB0_82:
+ add.f32 %f548, %f92, %f92;
+ selp.f32 %f711, %f548, 0f00000000, %p48;
+ bra.uni BB0_83;
+
+BB0_80:
+ setp.geu.f32 %p82, %f92, 0f00000000;
+ @%p82 bra BB0_83;
+
+ mov.f32 %f645, 0f3EE66666;
+ cvt.rzi.f32.f32 %f547, %f645;
+ setp.neu.f32 %p83, %f547, 0f3EE66666;
+ selp.f32 %f711, 0f7FFFFFFF, %f711, %p83;
+
+BB0_83:
+ add.f32 %f660, %f161, %f89;
+ abs.f32 %f659, %f660;
+ add.f32 %f549, %f659, 0f3EE66666;
+ mov.b32 %r259, %f549;
+ setp.lt.s32 %p85, %r259, 2139095040;
+ @%p85 bra BB0_88;
+
+ add.f32 %f663, %f161, %f89;
+ abs.f32 %f662, %f663;
+ setp.gtu.f32 %p86, %f662, 0f7F800000;
+ @%p86 bra BB0_87;
+ bra.uni BB0_85;
+
+BB0_87:
+ add.f32 %f711, %f92, 0f3EE66666;
+ bra.uni BB0_88;
+
+BB0_85:
+ add.f32 %f665, %f161, %f89;
+ abs.f32 %f664, %f665;
+ setp.neu.f32 %p87, %f664, 0f7F800000;
+ @%p87 bra BB0_88;
+
+ selp.f32 %f711, 0fFF800000, 0f7F800000, %p3;
+
+BB0_88:
+ mov.u32 %r293, 4;
+ mov.u64 %rd132, 0;
+ mov.u32 %r292, 2;
+ setp.eq.f32 %p88, %f92, 0f3F800000;
+ selp.f32 %f550, 0f3F800000, %f711, %p88;
+ cvt.u64.u32 %rd72, %r4;
+ cvt.u64.u32 %rd71, %r3;
+ mov.u64 %rd75, image;
+ cvta.global.u64 %rd70, %rd75;
+ // inline asm
+ call (%rd69), _rt_buffer_get_64, (%rd70, %r292, %r293, %rd71, %rd72, %rd132, %rd132);
+ // inline asm
+ cvt.sat.f32.f32 %f551, %f550;
+ mul.f32 %f552, %f551, 0f437FFD71;
+ cvt.rzi.u32.f32 %r262, %f552;
+ cvt.sat.f32.f32 %f553, %f119;
+ mul.f32 %f554, %f553, 0f437FFD71;
+ cvt.rzi.u32.f32 %r263, %f554;
+ cvt.sat.f32.f32 %f555, %f106;
+ mul.f32 %f556, %f555, 0f437FFD71;
+ cvt.rzi.u32.f32 %r264, %f556;
+ cvt.u16.u32 %rs16, %r262;
+ cvt.u16.u32 %rs17, %r264;
+ cvt.u16.u32 %rs18, %r263;
+ mov.u16 %rs19, 255;
+ st.v4.u8 [%rd69], {%rs16, %rs18, %rs17, %rs19};
+ ld.global.u32 %r327, [imageEnabled];
+
+BB0_89:
+ and.b32 %r265, %r327, 4;
+ setp.eq.s32 %p89, %r265, 0;
+ @%p89 bra BB0_91;
+
+ add.f32 %f661, %f160, %f88;
+ add.f32 %f654, %f159, %f87;
+ mov.u32 %r295, 8;
+ mov.u64 %rd133, 0;
+ mov.u32 %r294, 2;
+ cvt.u64.u32 %rd78, %r3;
+ cvt.u64.u32 %rd79, %r4;
+ mov.u64 %rd82, image_HDR;
+ cvta.global.u64 %rd77, %rd82;
+ // inline asm
+ call (%rd76), _rt_buffer_get_64, (%rd77, %r294, %r295, %rd78, %rd79, %rd133, %rd133);
+ // inline asm
+ mov.f32 %f560, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs23, %f560;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs22, %f92;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs21, %f661;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs20, %f654;}
+
+ // inline asm
+ st.v4.u16 [%rd76], {%rs20, %rs21, %rs22, %rs23};
+ ld.global.u32 %r327, [imageEnabled];
+
+BB0_91:
+ and.b32 %r268, %r327, 16;
+ setp.eq.s32 %p90, %r268, 0;
+ @%p90 bra BB0_93;
+
+ mov.u32 %r297, 8;
+ mov.u64 %rd134, 0;
+ mov.u32 %r296, 2;
+ cvt.u64.u32 %rd85, %r3;
+ cvt.u64.u32 %rd86, %r4;
+ mov.u64 %rd89, image_HDR2;
+ cvta.global.u64 %rd84, %rd89;
+ // inline asm
+ call (%rd83), _rt_buffer_get_64, (%rd84, %r296, %r297, %rd85, %rd86, %rd134, %rd134);
+ // inline asm
+ mov.f32 %f564, 0f3F800000;
+ // inline asm
+ { cvt.rn.f16.f32 %rs27, %f564;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs26, %f89;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs25, %f88;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs24, %f87;}
+
+ // inline asm
+ st.v4.u16 [%rd83], {%rs24, %rs25, %rs26, %rs27};
+ ld.global.u32 %r327, [imageEnabled];
+
+BB0_93:
+ and.b32 %r271, %r327, 64;
+ setp.eq.s32 %p91, %r271, 0;
+ @%p91 bra BB0_109;
+
+ mov.u32 %r299, 4;
+ mov.u64 %rd135, 0;
+ mov.u32 %r298, 2;
+ mul.f32 %f565, %f160, 0f3F372474;
+ fma.rn.f32 %f566, %f159, 0f3E59999A, %f565;
+ fma.rn.f32 %f132, %f161, 0f3D93A92A, %f566;
+ cvt.u64.u32 %rd93, %r4;
+ cvt.u64.u32 %rd92, %r3;
+ mov.u64 %rd96, lightmapDirectDir;
+ cvta.global.u64 %rd91, %rd96;
+ // inline asm
+ call (%rd90), _rt_buffer_get_64, (%rd91, %r298, %r299, %rd92, %rd93, %rd135, %rd135);
+ // inline asm
+ ld.v4.u8 {%rs28, %rs29, %rs30, %rs31}, [%rd90];
+ cvt.rn.f32.u16 %f567, %rs28;
+ div.rn.f32 %f568, %f567, 0f437F0000;
+ fma.rn.f32 %f569, %f568, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f570, %rs29;
+ div.rn.f32 %f571, %f570, 0f437F0000;
+ fma.rn.f32 %f572, %f571, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f573, %rs30;
+ div.rn.f32 %f574, %f573, 0f437F0000;
+ fma.rn.f32 %f575, %f574, 0f40000000, 0fBF800000;
+ mul.f32 %f576, %f572, %f572;
+ fma.rn.f32 %f577, %f569, %f569, %f576;
+ fma.rn.f32 %f578, %f575, %f575, %f577;
+ sqrt.rn.f32 %f579, %f578;
+ rcp.rn.f32 %f580, %f579;
+ mul.f32 %f712, %f569, %f580;
+ mul.f32 %f713, %f572, %f580;
+ mul.f32 %f714, %f575, %f580;
+ abs.f32 %f581, %f684;
+ setp.gt.f32 %p92, %f581, 0f00000000;
+ @%p92 bra BB0_97;
+
+ abs.f32 %f582, %f683;
+ setp.gt.f32 %p93, %f582, 0f00000000;
+ @%p93 bra BB0_97;
+
+ abs.f32 %f583, %f682;
+ setp.leu.f32 %p94, %f583, 0f00000000;
+ @%p94 bra BB0_100;
+
+BB0_97:
+ ld.global.u8 %rs32, [imageEnabled];
+ and.b16 %rs33, %rs32, 16;
+ setp.ne.s16 %p95, %rs33, 0;
+ @%p95 bra BB0_98;
+ bra.uni BB0_99;
+
+BB0_98:
+ mov.f32 %f712, %f684;
+ mov.f32 %f713, %f683;
+ mov.f32 %f714, %f682;
+ bra.uni BB0_100;
+
+BB0_99:
+ mul.f32 %f584, %f683, %f683;
+ fma.rn.f32 %f585, %f684, %f684, %f584;
+ fma.rn.f32 %f586, %f682, %f682, %f585;
+ sqrt.rn.f32 %f587, %f586;
+ rcp.rn.f32 %f588, %f587;
+ mul.f32 %f589, %f684, %f588;
+ mul.f32 %f590, %f683, %f588;
+ mul.f32 %f591, %f682, %f588;
+ mul.f32 %f592, %f88, 0f3F372474;
+ fma.rn.f32 %f593, %f87, 0f3E59999A, %f592;
+ fma.rn.f32 %f594, %f89, 0f3D93A92A, %f593;
+ mul.f32 %f595, %f594, %f589;
+ mul.f32 %f596, %f594, %f590;
+ mul.f32 %f597, %f594, %f591;
+ fma.rn.f32 %f712, %f132, %f712, %f595;
+ fma.rn.f32 %f713, %f132, %f713, %f596;
+ fma.rn.f32 %f714, %f132, %f714, %f597;
+
+BB0_100:
+ mov.u32 %r301, 4;
+ mov.u64 %rd136, 0;
+ mov.u32 %r300, 2;
+ mul.f32 %f598, %f713, %f713;
+ fma.rn.f32 %f599, %f712, %f712, %f598;
+ fma.rn.f32 %f600, %f714, %f714, %f599;
+ sqrt.rn.f32 %f601, %f600;
+ rcp.rn.f32 %f602, %f601;
+ mul.f32 %f603, %f712, %f602;
+ mul.f32 %f604, %f713, %f602;
+ mul.f32 %f605, %f714, %f602;
+ mul.f32 %f606, %f671, %f604;
+ fma.rn.f32 %f607, %f670, %f603, %f606;
+ fma.rn.f32 %f608, %f672, %f605, %f607;
+ fma.rn.f32 %f609, %f608, 0f3F000000, 0f3F000000;
+ mov.f32 %f610, 0f3B808081;
+ max.f32 %f611, %f609, %f610;
+ mul.f32 %f612, %f611, 0f437F0000;
+ cvt.rzi.s32.f32 %r276, %f612;
+ mov.u64 %rd103, image_Dir;
+ cvta.global.u64 %rd98, %rd103;
+ // inline asm
+ call (%rd97), _rt_buffer_get_64, (%rd98, %r300, %r301, %rd92, %rd93, %rd136, %rd136);
+ // inline asm
+ fma.rn.f32 %f613, %f603, 0f3F000000, 0f3F000000;
+ mul.f32 %f614, %f613, 0f437F0000;
+ cvt.rzi.u32.f32 %r277, %f614;
+ fma.rn.f32 %f615, %f604, 0f3F000000, 0f3F000000;
+ mul.f32 %f616, %f615, 0f437F0000;
+ cvt.rzi.u32.f32 %r278, %f616;
+ fma.rn.f32 %f617, %f605, 0f3F000000, 0f3F000000;
+ mul.f32 %f618, %f617, 0f437F0000;
+ cvt.rzi.u32.f32 %r279, %f618;
+ cvt.u16.u32 %rs34, %r276;
+ cvt.u16.u32 %rs35, %r279;
+ cvt.u16.u32 %rs36, %r278;
+ cvt.u16.u32 %rs37, %r277;
+ st.v4.u8 [%rd97], {%rs37, %rs36, %rs35, %rs34};
+
+BB0_109:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIdir.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIdir.ptx.meta
new file mode 100644
index 00000000..dc219f1d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmTexGIdir.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dc69dca9dca775c40af49664effbb86e
+timeCreated: 1537445843
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.pso
new file mode 100644
index 00000000..3e9fd074
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.pso.meta
new file mode 100644
index 00000000..cd5b718e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 67b662d933fb87b45a840a9dee387848
+timeCreated: 1530114290
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.vso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.vso
new file mode 100644
index 00000000..425cf069
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.vso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.vso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.vso.meta
new file mode 100644
index 00000000..70f119ca
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmr.vso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: eb53400d0b37d494193ada17212e3266
+timeCreated: 1530089609
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmrebake.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmrebake.dll
new file mode 100644
index 00000000..a7561868
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmrebake.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmrebake.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmrebake.dll.meta
new file mode 100644
index 00000000..15bca0bc
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lmrebake.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: 6bbf32c0d078be7489f8ddaf73bfb13c
+timeCreated: 1530050406
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lodselect.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lodselect.ptx
new file mode 100644
index 00000000..0c2cf561
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lodselect.ptx
@@ -0,0 +1,1927 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image_HDR[1];
+.global .align 1 .b8 image_HDR2[1];
+.global .align 8 .b8 texCoords[8];
+.global .align 1 .b8 uvpos[1];
+.global .align 1 .b8 uvnormal[1];
+.global .align 1 .b8 rnd_seeds[1];
+.global .align 1 .b8 lmidLODs[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.const .align 4 .b8 __cudart_i2opi_f[24] = {65, 144, 67, 60, 153, 149, 98, 219, 192, 221, 52, 245, 209, 87, 39, 252, 41, 21, 68, 78, 110, 131, 249, 162};
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .local .align 4 .b8 __local_depot0[40];
+ .reg .b64 %SP;
+ .reg .b64 %SPL;
+ .reg .pred %p<120>;
+ .reg .b16 %rs<9>;
+ .reg .f32 %f<646>;
+ .reg .b32 %r<802>;
+ .reg .b64 %rd<183>;
+
+
+ mov.u64 %rd182, __local_depot0;
+ cvta.local.u64 %SP, %rd182;
+ ld.global.v2.u32 {%r295, %r296}, [pixelID];
+ cvt.u64.u32 %rd53, %r295;
+ cvt.u64.u32 %rd54, %r296;
+ mov.u64 %rd57, uvnormal;
+ cvta.global.u64 %rd52, %rd57;
+ mov.u32 %r293, 2;
+ mov.u32 %r294, 4;
+ mov.u64 %rd56, 0;
+ // inline asm
+ call (%rd51), _rt_buffer_get_64, (%rd52, %r293, %r294, %rd53, %rd54, %rd56, %rd56);
+ // inline asm
+ ld.u32 %r1, [%rd51];
+ shr.u32 %r299, %r1, 16;
+ cvt.u16.u32 %rs1, %r299;
+ and.b16 %rs2, %rs1, 255;
+ cvt.u16.u32 %rs3, %r1;
+ or.b16 %rs4, %rs3, %rs2;
+ setp.eq.s16 %p1, %rs4, 0;
+ mov.f32 %f595, 0f00000000;
+ mov.f32 %f596, %f595;
+ mov.f32 %f597, %f595;
+ @%p1 bra BB0_2;
+
+ ld.u8 %rs5, [%rd51+1];
+ and.b16 %rs7, %rs3, 255;
+ cvt.rn.f32.u16 %f170, %rs7;
+ div.rn.f32 %f171, %f170, 0f437F0000;
+ fma.rn.f32 %f172, %f171, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f173, %rs5;
+ div.rn.f32 %f174, %f173, 0f437F0000;
+ fma.rn.f32 %f175, %f174, 0f40000000, 0fBF800000;
+ cvt.rn.f32.u16 %f176, %rs2;
+ div.rn.f32 %f177, %f176, 0f437F0000;
+ fma.rn.f32 %f178, %f177, 0f40000000, 0fBF800000;
+ mul.f32 %f179, %f175, %f175;
+ fma.rn.f32 %f180, %f172, %f172, %f179;
+ fma.rn.f32 %f181, %f178, %f178, %f180;
+ sqrt.rn.f32 %f182, %f181;
+ rcp.rn.f32 %f183, %f182;
+ mul.f32 %f595, %f172, %f183;
+ mul.f32 %f596, %f175, %f183;
+ mul.f32 %f597, %f178, %f183;
+
+BB0_2:
+ setp.eq.f32 %p2, %f596, 0f00000000;
+ setp.eq.f32 %p3, %f595, 0f00000000;
+ and.pred %p4, %p3, %p2;
+ setp.eq.f32 %p5, %f597, 0f00000000;
+ and.pred %p6, %p4, %p5;
+ @%p6 bra BB0_199;
+
+ ld.global.v2.u32 {%r304, %r305}, [pixelID];
+ cvt.u64.u32 %rd60, %r304;
+ cvt.u64.u32 %rd61, %r305;
+ mov.u64 %rd70, uvpos;
+ cvta.global.u64 %rd59, %rd70;
+ mov.u32 %r301, 12;
+ // inline asm
+ call (%rd58), _rt_buffer_get_64, (%rd59, %r293, %r301, %rd60, %rd61, %rd56, %rd56);
+ // inline asm
+ ld.f32 %f184, [%rd58+8];
+ ld.f32 %f185, [%rd58+4];
+ ld.f32 %f186, [%rd58];
+ mul.f32 %f187, %f186, 0f3456BF95;
+ mul.f32 %f188, %f185, 0f3456BF95;
+ mul.f32 %f189, %f184, 0f3456BF95;
+ abs.f32 %f190, %f595;
+ div.rn.f32 %f191, %f187, %f190;
+ abs.f32 %f192, %f596;
+ div.rn.f32 %f193, %f188, %f192;
+ abs.f32 %f194, %f597;
+ div.rn.f32 %f195, %f189, %f194;
+ abs.f32 %f196, %f191;
+ abs.f32 %f197, %f193;
+ abs.f32 %f198, %f195;
+ mov.f32 %f199, 0f38D1B717;
+ max.f32 %f200, %f196, %f199;
+ max.f32 %f201, %f197, %f199;
+ max.f32 %f202, %f198, %f199;
+ fma.rn.f32 %f7, %f595, %f200, %f186;
+ fma.rn.f32 %f8, %f596, %f201, %f185;
+ fma.rn.f32 %f9, %f597, %f202, %f184;
+ setp.gt.f32 %p7, %f190, %f194;
+ neg.f32 %f203, %f596;
+ selp.f32 %f204, %f203, 0f00000000, %p7;
+ neg.f32 %f205, %f597;
+ selp.f32 %f206, %f595, %f205, %p7;
+ selp.f32 %f207, 0f00000000, %f596, %p7;
+ mul.f32 %f208, %f206, %f206;
+ fma.rn.f32 %f209, %f204, %f204, %f208;
+ fma.rn.f32 %f210, %f207, %f207, %f209;
+ sqrt.rn.f32 %f211, %f210;
+ rcp.rn.f32 %f212, %f211;
+ mul.f32 %f10, %f204, %f212;
+ mul.f32 %f11, %f206, %f212;
+ mul.f32 %f12, %f207, %f212;
+ mul.f32 %f213, %f597, %f11;
+ mul.f32 %f214, %f596, %f12;
+ sub.f32 %f13, %f213, %f214;
+ mul.f32 %f215, %f595, %f12;
+ mul.f32 %f216, %f597, %f10;
+ sub.f32 %f14, %f215, %f216;
+ mul.f32 %f217, %f596, %f10;
+ mul.f32 %f218, %f595, %f11;
+ sub.f32 %f15, %f217, %f218;
+ ld.global.v2.u32 {%r308, %r309}, [pixelID];
+ cvt.u64.u32 %rd66, %r308;
+ cvt.u64.u32 %rd67, %r309;
+ mov.u64 %rd71, rnd_seeds;
+ cvta.global.u64 %rd65, %rd71;
+ // inline asm
+ call (%rd64), _rt_buffer_get_64, (%rd65, %r293, %r294, %rd66, %rd67, %rd56, %rd56);
+ // inline asm
+ add.u64 %rd72, %SP, 0;
+ cvta.to.local.u64 %rd2, %rd72;
+ mul.f32 %f16, %f7, 0f3456BF95;
+ mul.f32 %f17, %f8, 0f3456BF95;
+ mul.f32 %f18, %f9, 0f3456BF95;
+ ld.u32 %r312, [%rd64];
+ mad.lo.s32 %r313, %r312, 1664525, 1013904223;
+ and.b32 %r314, %r313, 16777215;
+ cvt.rn.f32.u32 %f219, %r314;
+ fma.rn.f32 %f220, %f219, 0f33800000, 0f00000000;
+ mul.f32 %f221, %f220, 0f3F000000;
+ mad.lo.s32 %r2, %r313, 1664525, 1013904223;
+ and.b32 %r315, %r2, 16777215;
+ cvt.rn.f32.u32 %f222, %r315;
+ fma.rn.f32 %f223, %f222, 0f33800000, 0f00000000;
+ mul.f32 %f224, %f223, 0f3F000000;
+ sqrt.rn.f32 %f19, %f221;
+ mul.f32 %f604, %f224, 0f40C90FDB;
+ abs.f32 %f21, %f604;
+ setp.neu.f32 %p8, %f21, 0f7F800000;
+ mov.f32 %f598, %f604;
+ @%p8 bra BB0_5;
+
+ mov.f32 %f225, 0f00000000;
+ mul.rn.f32 %f598, %f604, %f225;
+
+BB0_5:
+ mul.f32 %f226, %f598, 0f3F22F983;
+ cvt.rni.s32.f32 %r731, %f226;
+ cvt.rn.f32.s32 %f227, %r731;
+ neg.f32 %f228, %f227;
+ mov.f32 %f229, 0f3FC90FDA;
+ fma.rn.f32 %f230, %f228, %f229, %f598;
+ mov.f32 %f231, 0f33A22168;
+ fma.rn.f32 %f232, %f228, %f231, %f230;
+ mov.f32 %f233, 0f27C234C5;
+ fma.rn.f32 %f599, %f228, %f233, %f232;
+ abs.f32 %f234, %f598;
+ setp.leu.f32 %p9, %f234, 0f47CE4780;
+ @%p9 bra BB0_16;
+
+ mov.b32 %r4, %f598;
+ shr.u32 %r5, %r4, 23;
+ shl.b32 %r318, %r4, 8;
+ or.b32 %r6, %r318, -2147483648;
+ mov.u32 %r723, 0;
+ mov.u64 %rd166, __cudart_i2opi_f;
+ mov.u32 %r722, -6;
+ mov.u64 %rd167, %rd2;
+
+BB0_7:
+ .pragma "nounroll";
+ ld.const.u32 %r321, [%rd166];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r319, %r321, %r6, %r723;
+ madc.hi.u32 %r723, %r321, %r6, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd167], %r319;
+ add.s64 %rd167, %rd167, 4;
+ add.s64 %rd166, %rd166, 4;
+ add.s32 %r722, %r722, 1;
+ setp.ne.s32 %p10, %r722, 0;
+ @%p10 bra BB0_7;
+
+ and.b32 %r324, %r5, 255;
+ add.s32 %r325, %r324, -128;
+ shr.u32 %r326, %r325, 5;
+ and.b32 %r11, %r4, -2147483648;
+ st.local.u32 [%rd2+24], %r723;
+ mov.u32 %r327, 6;
+ sub.s32 %r328, %r327, %r326;
+ mul.wide.s32 %rd74, %r328, 4;
+ add.s64 %rd7, %rd2, %rd74;
+ ld.local.u32 %r724, [%rd7];
+ ld.local.u32 %r725, [%rd7+-4];
+ and.b32 %r14, %r5, 31;
+ setp.eq.s32 %p11, %r14, 0;
+ @%p11 bra BB0_10;
+
+ mov.u32 %r329, 32;
+ sub.s32 %r330, %r329, %r14;
+ shr.u32 %r331, %r725, %r330;
+ shl.b32 %r332, %r724, %r14;
+ add.s32 %r724, %r331, %r332;
+ ld.local.u32 %r333, [%rd7+-8];
+ shr.u32 %r334, %r333, %r330;
+ shl.b32 %r335, %r725, %r14;
+ add.s32 %r725, %r334, %r335;
+
+BB0_10:
+ shr.u32 %r336, %r725, 30;
+ shl.b32 %r337, %r724, 2;
+ add.s32 %r726, %r336, %r337;
+ shl.b32 %r20, %r725, 2;
+ shr.u32 %r338, %r726, 31;
+ shr.u32 %r339, %r724, 30;
+ add.s32 %r21, %r338, %r339;
+ setp.eq.s32 %p12, %r338, 0;
+ @%p12 bra BB0_11;
+
+ not.b32 %r340, %r726;
+ neg.s32 %r728, %r20;
+ setp.eq.s32 %p13, %r20, 0;
+ selp.u32 %r341, 1, 0, %p13;
+ add.s32 %r726, %r341, %r340;
+ xor.b32 %r727, %r11, -2147483648;
+ bra.uni BB0_13;
+
+BB0_11:
+ mov.u32 %r727, %r11;
+ mov.u32 %r728, %r20;
+
+BB0_13:
+ clz.b32 %r730, %r726;
+ setp.eq.s32 %p14, %r730, 0;
+ shl.b32 %r342, %r726, %r730;
+ mov.u32 %r343, 32;
+ sub.s32 %r344, %r343, %r730;
+ shr.u32 %r345, %r728, %r344;
+ add.s32 %r346, %r345, %r342;
+ selp.b32 %r29, %r726, %r346, %p14;
+ mov.u32 %r347, -921707870;
+ mul.hi.u32 %r729, %r29, %r347;
+ setp.eq.s32 %p15, %r11, 0;
+ neg.s32 %r348, %r21;
+ selp.b32 %r731, %r21, %r348, %p15;
+ setp.lt.s32 %p16, %r729, 1;
+ @%p16 bra BB0_15;
+
+ mul.lo.s32 %r349, %r29, -921707870;
+ shr.u32 %r350, %r349, 31;
+ shl.b32 %r351, %r729, 1;
+ add.s32 %r729, %r350, %r351;
+ add.s32 %r730, %r730, 1;
+
+BB0_15:
+ mov.u32 %r352, 126;
+ sub.s32 %r353, %r352, %r730;
+ shl.b32 %r354, %r353, 23;
+ add.s32 %r355, %r729, 1;
+ shr.u32 %r356, %r355, 7;
+ add.s32 %r357, %r356, 1;
+ shr.u32 %r358, %r357, 1;
+ add.s32 %r359, %r358, %r354;
+ or.b32 %r360, %r359, %r727;
+ mov.b32 %f599, %r360;
+
+BB0_16:
+ mul.rn.f32 %f27, %f599, %f599;
+ add.s32 %r37, %r731, 1;
+ and.b32 %r38, %r37, 1;
+ setp.eq.s32 %p17, %r38, 0;
+ @%p17 bra BB0_18;
+
+ mov.f32 %f235, 0fBAB6061A;
+ mov.f32 %f236, 0f37CCF5CE;
+ fma.rn.f32 %f600, %f236, %f27, %f235;
+ bra.uni BB0_19;
+
+BB0_18:
+ mov.f32 %f237, 0f3C08839E;
+ mov.f32 %f238, 0fB94CA1F9;
+ fma.rn.f32 %f600, %f238, %f27, %f237;
+
+BB0_19:
+ @%p17 bra BB0_21;
+
+ mov.f32 %f239, 0f3D2AAAA5;
+ fma.rn.f32 %f240, %f600, %f27, %f239;
+ mov.f32 %f241, 0fBF000000;
+ fma.rn.f32 %f601, %f240, %f27, %f241;
+ bra.uni BB0_22;
+
+BB0_21:
+ mov.f32 %f242, 0fBE2AAAA3;
+ fma.rn.f32 %f243, %f600, %f27, %f242;
+ mov.f32 %f244, 0f00000000;
+ fma.rn.f32 %f601, %f243, %f27, %f244;
+
+BB0_22:
+ fma.rn.f32 %f602, %f601, %f599, %f599;
+ @%p17 bra BB0_24;
+
+ mov.f32 %f245, 0f3F800000;
+ fma.rn.f32 %f602, %f601, %f27, %f245;
+
+BB0_24:
+ and.b32 %r361, %r37, 2;
+ setp.eq.s32 %p20, %r361, 0;
+ @%p20 bra BB0_26;
+
+ mov.f32 %f246, 0f00000000;
+ mov.f32 %f247, 0fBF800000;
+ fma.rn.f32 %f602, %f602, %f247, %f246;
+
+BB0_26:
+ @%p8 bra BB0_28;
+
+ mov.f32 %f248, 0f00000000;
+ mul.rn.f32 %f604, %f604, %f248;
+
+BB0_28:
+ mul.f32 %f249, %f604, 0f3F22F983;
+ cvt.rni.s32.f32 %r741, %f249;
+ cvt.rn.f32.s32 %f250, %r741;
+ neg.f32 %f251, %f250;
+ fma.rn.f32 %f253, %f251, %f229, %f604;
+ fma.rn.f32 %f255, %f251, %f231, %f253;
+ fma.rn.f32 %f605, %f251, %f233, %f255;
+ abs.f32 %f257, %f604;
+ setp.leu.f32 %p22, %f257, 0f47CE4780;
+ @%p22 bra BB0_39;
+
+ mov.b32 %r40, %f604;
+ shr.u32 %r41, %r40, 23;
+ shl.b32 %r364, %r40, 8;
+ or.b32 %r42, %r364, -2147483648;
+ cvta.to.local.u64 %rd169, %rd72;
+ mov.u32 %r733, 0;
+ mov.u64 %rd168, __cudart_i2opi_f;
+ mov.u32 %r732, -6;
+
+BB0_30:
+ .pragma "nounroll";
+ ld.const.u32 %r367, [%rd168];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r365, %r367, %r42, %r733;
+ madc.hi.u32 %r733, %r367, %r42, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd169], %r365;
+ add.s64 %rd169, %rd169, 4;
+ add.s64 %rd168, %rd168, 4;
+ add.s32 %r732, %r732, 1;
+ setp.ne.s32 %p23, %r732, 0;
+ @%p23 bra BB0_30;
+
+ and.b32 %r370, %r41, 255;
+ add.s32 %r371, %r370, -128;
+ shr.u32 %r372, %r371, 5;
+ and.b32 %r47, %r40, -2147483648;
+ cvta.to.local.u64 %rd78, %rd72;
+ st.local.u32 [%rd78+24], %r733;
+ mov.u32 %r373, 6;
+ sub.s32 %r374, %r373, %r372;
+ mul.wide.s32 %rd79, %r374, 4;
+ add.s64 %rd13, %rd78, %rd79;
+ ld.local.u32 %r734, [%rd13];
+ ld.local.u32 %r735, [%rd13+-4];
+ and.b32 %r50, %r41, 31;
+ setp.eq.s32 %p24, %r50, 0;
+ @%p24 bra BB0_33;
+
+ mov.u32 %r375, 32;
+ sub.s32 %r376, %r375, %r50;
+ shr.u32 %r377, %r735, %r376;
+ shl.b32 %r378, %r734, %r50;
+ add.s32 %r734, %r377, %r378;
+ ld.local.u32 %r379, [%rd13+-8];
+ shr.u32 %r380, %r379, %r376;
+ shl.b32 %r381, %r735, %r50;
+ add.s32 %r735, %r380, %r381;
+
+BB0_33:
+ shr.u32 %r382, %r735, 30;
+ shl.b32 %r383, %r734, 2;
+ add.s32 %r736, %r382, %r383;
+ shl.b32 %r56, %r735, 2;
+ shr.u32 %r384, %r736, 31;
+ shr.u32 %r385, %r734, 30;
+ add.s32 %r57, %r384, %r385;
+ setp.eq.s32 %p25, %r384, 0;
+ @%p25 bra BB0_34;
+
+ not.b32 %r386, %r736;
+ neg.s32 %r738, %r56;
+ setp.eq.s32 %p26, %r56, 0;
+ selp.u32 %r387, 1, 0, %p26;
+ add.s32 %r736, %r387, %r386;
+ xor.b32 %r737, %r47, -2147483648;
+ bra.uni BB0_36;
+
+BB0_34:
+ mov.u32 %r737, %r47;
+ mov.u32 %r738, %r56;
+
+BB0_36:
+ clz.b32 %r740, %r736;
+ setp.eq.s32 %p27, %r740, 0;
+ shl.b32 %r388, %r736, %r740;
+ mov.u32 %r389, 32;
+ sub.s32 %r390, %r389, %r740;
+ shr.u32 %r391, %r738, %r390;
+ add.s32 %r392, %r391, %r388;
+ selp.b32 %r65, %r736, %r392, %p27;
+ mov.u32 %r393, -921707870;
+ mul.hi.u32 %r739, %r65, %r393;
+ setp.eq.s32 %p28, %r47, 0;
+ neg.s32 %r394, %r57;
+ selp.b32 %r741, %r57, %r394, %p28;
+ setp.lt.s32 %p29, %r739, 1;
+ @%p29 bra BB0_38;
+
+ mul.lo.s32 %r395, %r65, -921707870;
+ shr.u32 %r396, %r395, 31;
+ shl.b32 %r397, %r739, 1;
+ add.s32 %r739, %r396, %r397;
+ add.s32 %r740, %r740, 1;
+
+BB0_38:
+ mov.u32 %r398, 126;
+ sub.s32 %r399, %r398, %r740;
+ shl.b32 %r400, %r399, 23;
+ add.s32 %r401, %r739, 1;
+ shr.u32 %r402, %r401, 7;
+ add.s32 %r403, %r402, 1;
+ shr.u32 %r404, %r403, 1;
+ add.s32 %r405, %r404, %r400;
+ or.b32 %r406, %r405, %r737;
+ mov.b32 %f605, %r406;
+
+BB0_39:
+ mul.rn.f32 %f44, %f605, %f605;
+ and.b32 %r73, %r741, 1;
+ setp.eq.s32 %p30, %r73, 0;
+ @%p30 bra BB0_41;
+
+ mov.f32 %f258, 0fBAB6061A;
+ mov.f32 %f259, 0f37CCF5CE;
+ fma.rn.f32 %f606, %f259, %f44, %f258;
+ bra.uni BB0_42;
+
+BB0_41:
+ mov.f32 %f260, 0f3C08839E;
+ mov.f32 %f261, 0fB94CA1F9;
+ fma.rn.f32 %f606, %f261, %f44, %f260;
+
+BB0_42:
+ @%p30 bra BB0_44;
+
+ mov.f32 %f262, 0f3D2AAAA5;
+ fma.rn.f32 %f263, %f606, %f44, %f262;
+ mov.f32 %f264, 0fBF000000;
+ fma.rn.f32 %f607, %f263, %f44, %f264;
+ bra.uni BB0_45;
+
+BB0_44:
+ mov.f32 %f265, 0fBE2AAAA3;
+ fma.rn.f32 %f266, %f606, %f44, %f265;
+ mov.f32 %f267, 0f00000000;
+ fma.rn.f32 %f607, %f266, %f44, %f267;
+
+BB0_45:
+ fma.rn.f32 %f608, %f607, %f605, %f605;
+ @%p30 bra BB0_47;
+
+ mov.f32 %f268, 0f3F800000;
+ fma.rn.f32 %f608, %f607, %f44, %f268;
+
+BB0_47:
+ and.b32 %r407, %r741, 2;
+ setp.eq.s32 %p33, %r407, 0;
+ @%p33 bra BB0_49;
+
+ mov.f32 %f269, 0f00000000;
+ mov.f32 %f270, 0fBF800000;
+ fma.rn.f32 %f608, %f608, %f270, %f269;
+
+BB0_49:
+ mul.f32 %f279, %f19, %f602;
+ add.u64 %rd80, %SP, 28;
+ cvta.to.local.u64 %rd14, %rd80;
+ mul.f32 %f280, %f279, %f279;
+ mov.f32 %f281, 0f3F800000;
+ sub.f32 %f282, %f281, %f280;
+ mul.f32 %f283, %f19, %f608;
+ mul.f32 %f284, %f283, %f283;
+ sub.f32 %f285, %f282, %f284;
+ mov.f32 %f286, 0f00000000;
+ max.f32 %f287, %f286, %f285;
+ sqrt.rn.f32 %f288, %f287;
+ mul.f32 %f289, %f10, %f283;
+ mul.f32 %f290, %f11, %f283;
+ mul.f32 %f291, %f12, %f283;
+ fma.rn.f32 %f292, %f13, %f279, %f289;
+ fma.rn.f32 %f293, %f14, %f279, %f290;
+ fma.rn.f32 %f294, %f15, %f279, %f291;
+ fma.rn.f32 %f274, %f595, %f288, %f292;
+ fma.rn.f32 %f275, %f596, %f288, %f293;
+ fma.rn.f32 %f276, %f597, %f288, %f294;
+ abs.f32 %f295, %f274;
+ abs.f32 %f296, %f275;
+ abs.f32 %f297, %f276;
+ div.rn.f32 %f298, %f16, %f295;
+ div.rn.f32 %f299, %f17, %f296;
+ div.rn.f32 %f300, %f18, %f297;
+ abs.f32 %f301, %f298;
+ abs.f32 %f302, %f299;
+ abs.f32 %f303, %f300;
+ max.f32 %f304, %f301, %f302;
+ max.f32 %f305, %f304, %f303;
+ max.f32 %f277, %f305, %f199;
+ mov.u32 %r409, 0;
+ st.local.u32 [%rd14+8], %r409;
+ st.local.u32 [%rd14+4], %r409;
+ st.local.u32 [%rd14], %r409;
+ ld.global.u32 %r408, [root];
+ mov.f32 %f278, 0f6C4ECB8F;
+ // inline asm
+ call _rt_trace_64, (%r408, %f7, %f8, %f9, %f274, %f275, %f276, %r409, %f277, %f278, %rd80, %r301);
+ // inline asm
+ ld.local.f32 %f307, [%rd14+4];
+ setp.leu.f32 %p34, %f307, 0f00000000;
+ @%p34 bra BB0_52;
+
+ ld.local.f32 %f308, [%rd14];
+ div.rn.f32 %f309, %f308, 0f41200000;
+ cvt.rzi.s32.f32 %r74, %f309;
+ setp.lt.s32 %p35, %r74, 0;
+ @%p35 bra BB0_52;
+
+ cvt.s64.s32 %rd89, %r74;
+ mov.u64 %rd93, lmidLODs;
+ cvta.global.u64 %rd82, %rd93;
+ mov.u32 %r413, 1;
+ // inline asm
+ call (%rd81), _rt_buffer_get_64, (%rd82, %r413, %r294, %rd89, %rd56, %rd56, %rd56);
+ // inline asm
+ ld.local.f32 %f310, [%rd14+4];
+ ld.f32 %f311, [%rd81];
+ max.f32 %f312, %f311, %f310;
+ // inline asm
+ call (%rd87), _rt_buffer_get_64, (%rd82, %r413, %r294, %rd89, %rd56, %rd56, %rd56);
+ // inline asm
+ st.f32 [%rd87], %f312;
+
+BB0_52:
+ mad.lo.s32 %r415, %r2, 1664525, 1013904223;
+ and.b32 %r416, %r415, 16777215;
+ cvt.rn.f32.u32 %f313, %r416;
+ fma.rn.f32 %f314, %f313, 0f33800000, 0f00000000;
+ mul.f32 %f315, %f314, 0f3F000000;
+ mad.lo.s32 %r75, %r415, 1664525, 1013904223;
+ and.b32 %r417, %r75, 16777215;
+ cvt.rn.f32.u32 %f316, %r417;
+ fma.rn.f32 %f317, %f316, 0f33800000, 0f3F800000;
+ mul.f32 %f318, %f317, 0f3F000000;
+ sqrt.rn.f32 %f56, %f315;
+ mul.f32 %f616, %f318, 0f40C90FDB;
+ abs.f32 %f58, %f616;
+ setp.neu.f32 %p36, %f58, 0f7F800000;
+ mov.f32 %f610, %f616;
+ @%p36 bra BB0_54;
+
+ mul.rn.f32 %f610, %f616, %f286;
+
+BB0_54:
+ mul.f32 %f320, %f610, 0f3F22F983;
+ cvt.rni.s32.f32 %r751, %f320;
+ cvt.rn.f32.s32 %f321, %r751;
+ neg.f32 %f322, %f321;
+ fma.rn.f32 %f324, %f322, %f229, %f610;
+ fma.rn.f32 %f326, %f322, %f231, %f324;
+ fma.rn.f32 %f611, %f322, %f233, %f326;
+ abs.f32 %f328, %f610;
+ setp.leu.f32 %p37, %f328, 0f47CE4780;
+ @%p37 bra BB0_65;
+
+ mov.b32 %r77, %f610;
+ shr.u32 %r78, %r77, 23;
+ shl.b32 %r420, %r77, 8;
+ or.b32 %r79, %r420, -2147483648;
+ cvta.to.local.u64 %rd171, %rd72;
+ mov.u32 %r743, 0;
+ mov.u64 %rd170, __cudart_i2opi_f;
+ mov.u32 %r742, -6;
+
+BB0_56:
+ .pragma "nounroll";
+ ld.const.u32 %r423, [%rd170];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r421, %r423, %r79, %r743;
+ madc.hi.u32 %r743, %r423, %r79, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd171], %r421;
+ add.s64 %rd171, %rd171, 4;
+ add.s64 %rd170, %rd170, 4;
+ add.s32 %r742, %r742, 1;
+ setp.ne.s32 %p38, %r742, 0;
+ @%p38 bra BB0_56;
+
+ and.b32 %r426, %r78, 255;
+ add.s32 %r427, %r426, -128;
+ shr.u32 %r428, %r427, 5;
+ and.b32 %r84, %r77, -2147483648;
+ cvta.to.local.u64 %rd97, %rd72;
+ st.local.u32 [%rd97+24], %r743;
+ mov.u32 %r429, 6;
+ sub.s32 %r430, %r429, %r428;
+ mul.wide.s32 %rd98, %r430, 4;
+ add.s64 %rd20, %rd97, %rd98;
+ ld.local.u32 %r744, [%rd20];
+ ld.local.u32 %r745, [%rd20+-4];
+ and.b32 %r87, %r78, 31;
+ setp.eq.s32 %p39, %r87, 0;
+ @%p39 bra BB0_59;
+
+ mov.u32 %r431, 32;
+ sub.s32 %r432, %r431, %r87;
+ shr.u32 %r433, %r745, %r432;
+ shl.b32 %r434, %r744, %r87;
+ add.s32 %r744, %r433, %r434;
+ ld.local.u32 %r435, [%rd20+-8];
+ shr.u32 %r436, %r435, %r432;
+ shl.b32 %r437, %r745, %r87;
+ add.s32 %r745, %r436, %r437;
+
+BB0_59:
+ shr.u32 %r438, %r745, 30;
+ shl.b32 %r439, %r744, 2;
+ add.s32 %r746, %r438, %r439;
+ shl.b32 %r93, %r745, 2;
+ shr.u32 %r440, %r746, 31;
+ shr.u32 %r441, %r744, 30;
+ add.s32 %r94, %r440, %r441;
+ setp.eq.s32 %p40, %r440, 0;
+ @%p40 bra BB0_60;
+
+ not.b32 %r442, %r746;
+ neg.s32 %r748, %r93;
+ setp.eq.s32 %p41, %r93, 0;
+ selp.u32 %r443, 1, 0, %p41;
+ add.s32 %r746, %r443, %r442;
+ xor.b32 %r747, %r84, -2147483648;
+ bra.uni BB0_62;
+
+BB0_60:
+ mov.u32 %r747, %r84;
+ mov.u32 %r748, %r93;
+
+BB0_62:
+ clz.b32 %r750, %r746;
+ setp.eq.s32 %p42, %r750, 0;
+ shl.b32 %r444, %r746, %r750;
+ mov.u32 %r445, 32;
+ sub.s32 %r446, %r445, %r750;
+ shr.u32 %r447, %r748, %r446;
+ add.s32 %r448, %r447, %r444;
+ selp.b32 %r102, %r746, %r448, %p42;
+ mov.u32 %r449, -921707870;
+ mul.hi.u32 %r749, %r102, %r449;
+ setp.eq.s32 %p43, %r84, 0;
+ neg.s32 %r450, %r94;
+ selp.b32 %r751, %r94, %r450, %p43;
+ setp.lt.s32 %p44, %r749, 1;
+ @%p44 bra BB0_64;
+
+ mul.lo.s32 %r451, %r102, -921707870;
+ shr.u32 %r452, %r451, 31;
+ shl.b32 %r453, %r749, 1;
+ add.s32 %r749, %r452, %r453;
+ add.s32 %r750, %r750, 1;
+
+BB0_64:
+ mov.u32 %r454, 126;
+ sub.s32 %r455, %r454, %r750;
+ shl.b32 %r456, %r455, 23;
+ add.s32 %r457, %r749, 1;
+ shr.u32 %r458, %r457, 7;
+ add.s32 %r459, %r458, 1;
+ shr.u32 %r460, %r459, 1;
+ add.s32 %r461, %r460, %r456;
+ or.b32 %r462, %r461, %r747;
+ mov.b32 %f611, %r462;
+
+BB0_65:
+ mul.rn.f32 %f64, %f611, %f611;
+ add.s32 %r110, %r751, 1;
+ and.b32 %r111, %r110, 1;
+ setp.eq.s32 %p45, %r111, 0;
+ @%p45 bra BB0_67;
+
+ mov.f32 %f329, 0fBAB6061A;
+ mov.f32 %f330, 0f37CCF5CE;
+ fma.rn.f32 %f612, %f330, %f64, %f329;
+ bra.uni BB0_68;
+
+BB0_67:
+ mov.f32 %f331, 0f3C08839E;
+ mov.f32 %f332, 0fB94CA1F9;
+ fma.rn.f32 %f612, %f332, %f64, %f331;
+
+BB0_68:
+ @%p45 bra BB0_70;
+
+ mov.f32 %f333, 0f3D2AAAA5;
+ fma.rn.f32 %f334, %f612, %f64, %f333;
+ mov.f32 %f335, 0fBF000000;
+ fma.rn.f32 %f613, %f334, %f64, %f335;
+ bra.uni BB0_71;
+
+BB0_70:
+ mov.f32 %f336, 0fBE2AAAA3;
+ fma.rn.f32 %f337, %f612, %f64, %f336;
+ fma.rn.f32 %f613, %f337, %f64, %f286;
+
+BB0_71:
+ fma.rn.f32 %f614, %f613, %f611, %f611;
+ @%p45 bra BB0_73;
+
+ fma.rn.f32 %f614, %f613, %f64, %f281;
+
+BB0_73:
+ and.b32 %r463, %r110, 2;
+ setp.eq.s32 %p48, %r463, 0;
+ @%p48 bra BB0_75;
+
+ mov.f32 %f341, 0fBF800000;
+ fma.rn.f32 %f614, %f614, %f341, %f286;
+
+BB0_75:
+ @%p36 bra BB0_77;
+
+ mul.rn.f32 %f616, %f616, %f286;
+
+BB0_77:
+ mul.f32 %f343, %f616, 0f3F22F983;
+ cvt.rni.s32.f32 %r761, %f343;
+ cvt.rn.f32.s32 %f344, %r761;
+ neg.f32 %f345, %f344;
+ fma.rn.f32 %f347, %f345, %f229, %f616;
+ fma.rn.f32 %f349, %f345, %f231, %f347;
+ fma.rn.f32 %f617, %f345, %f233, %f349;
+ abs.f32 %f351, %f616;
+ setp.leu.f32 %p50, %f351, 0f47CE4780;
+ @%p50 bra BB0_88;
+
+ mov.b32 %r113, %f616;
+ shr.u32 %r114, %r113, 23;
+ shl.b32 %r466, %r113, 8;
+ or.b32 %r115, %r466, -2147483648;
+ cvta.to.local.u64 %rd173, %rd72;
+ mov.u32 %r753, 0;
+ mov.u64 %rd172, __cudart_i2opi_f;
+ mov.u32 %r752, -6;
+
+BB0_79:
+ .pragma "nounroll";
+ ld.const.u32 %r469, [%rd172];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r467, %r469, %r115, %r753;
+ madc.hi.u32 %r753, %r469, %r115, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd173], %r467;
+ add.s64 %rd173, %rd173, 4;
+ add.s64 %rd172, %rd172, 4;
+ add.s32 %r752, %r752, 1;
+ setp.ne.s32 %p51, %r752, 0;
+ @%p51 bra BB0_79;
+
+ and.b32 %r472, %r114, 255;
+ add.s32 %r473, %r472, -128;
+ shr.u32 %r474, %r473, 5;
+ and.b32 %r120, %r113, -2147483648;
+ cvta.to.local.u64 %rd102, %rd72;
+ st.local.u32 [%rd102+24], %r753;
+ mov.u32 %r475, 6;
+ sub.s32 %r476, %r475, %r474;
+ mul.wide.s32 %rd103, %r476, 4;
+ add.s64 %rd26, %rd102, %rd103;
+ ld.local.u32 %r754, [%rd26];
+ ld.local.u32 %r755, [%rd26+-4];
+ and.b32 %r123, %r114, 31;
+ setp.eq.s32 %p52, %r123, 0;
+ @%p52 bra BB0_82;
+
+ mov.u32 %r477, 32;
+ sub.s32 %r478, %r477, %r123;
+ shr.u32 %r479, %r755, %r478;
+ shl.b32 %r480, %r754, %r123;
+ add.s32 %r754, %r479, %r480;
+ ld.local.u32 %r481, [%rd26+-8];
+ shr.u32 %r482, %r481, %r478;
+ shl.b32 %r483, %r755, %r123;
+ add.s32 %r755, %r482, %r483;
+
+BB0_82:
+ shr.u32 %r484, %r755, 30;
+ shl.b32 %r485, %r754, 2;
+ add.s32 %r756, %r484, %r485;
+ shl.b32 %r129, %r755, 2;
+ shr.u32 %r486, %r756, 31;
+ shr.u32 %r487, %r754, 30;
+ add.s32 %r130, %r486, %r487;
+ setp.eq.s32 %p53, %r486, 0;
+ @%p53 bra BB0_83;
+
+ not.b32 %r488, %r756;
+ neg.s32 %r758, %r129;
+ setp.eq.s32 %p54, %r129, 0;
+ selp.u32 %r489, 1, 0, %p54;
+ add.s32 %r756, %r489, %r488;
+ xor.b32 %r757, %r120, -2147483648;
+ bra.uni BB0_85;
+
+BB0_83:
+ mov.u32 %r757, %r120;
+ mov.u32 %r758, %r129;
+
+BB0_85:
+ clz.b32 %r760, %r756;
+ setp.eq.s32 %p55, %r760, 0;
+ shl.b32 %r490, %r756, %r760;
+ mov.u32 %r491, 32;
+ sub.s32 %r492, %r491, %r760;
+ shr.u32 %r493, %r758, %r492;
+ add.s32 %r494, %r493, %r490;
+ selp.b32 %r138, %r756, %r494, %p55;
+ mov.u32 %r495, -921707870;
+ mul.hi.u32 %r759, %r138, %r495;
+ setp.eq.s32 %p56, %r120, 0;
+ neg.s32 %r496, %r130;
+ selp.b32 %r761, %r130, %r496, %p56;
+ setp.lt.s32 %p57, %r759, 1;
+ @%p57 bra BB0_87;
+
+ mul.lo.s32 %r497, %r138, -921707870;
+ shr.u32 %r498, %r497, 31;
+ shl.b32 %r499, %r759, 1;
+ add.s32 %r759, %r498, %r499;
+ add.s32 %r760, %r760, 1;
+
+BB0_87:
+ mov.u32 %r500, 126;
+ sub.s32 %r501, %r500, %r760;
+ shl.b32 %r502, %r501, 23;
+ add.s32 %r503, %r759, 1;
+ shr.u32 %r504, %r503, 7;
+ add.s32 %r505, %r504, 1;
+ shr.u32 %r506, %r505, 1;
+ add.s32 %r507, %r506, %r502;
+ or.b32 %r508, %r507, %r757;
+ mov.b32 %f617, %r508;
+
+BB0_88:
+ mul.rn.f32 %f81, %f617, %f617;
+ and.b32 %r146, %r761, 1;
+ setp.eq.s32 %p58, %r146, 0;
+ @%p58 bra BB0_90;
+
+ mov.f32 %f352, 0fBAB6061A;
+ mov.f32 %f353, 0f37CCF5CE;
+ fma.rn.f32 %f618, %f353, %f81, %f352;
+ bra.uni BB0_91;
+
+BB0_90:
+ mov.f32 %f354, 0f3C08839E;
+ mov.f32 %f355, 0fB94CA1F9;
+ fma.rn.f32 %f618, %f355, %f81, %f354;
+
+BB0_91:
+ @%p58 bra BB0_93;
+
+ mov.f32 %f356, 0f3D2AAAA5;
+ fma.rn.f32 %f357, %f618, %f81, %f356;
+ mov.f32 %f358, 0fBF000000;
+ fma.rn.f32 %f619, %f357, %f81, %f358;
+ bra.uni BB0_94;
+
+BB0_93:
+ mov.f32 %f359, 0fBE2AAAA3;
+ fma.rn.f32 %f360, %f618, %f81, %f359;
+ fma.rn.f32 %f619, %f360, %f81, %f286;
+
+BB0_94:
+ fma.rn.f32 %f620, %f619, %f617, %f617;
+ @%p58 bra BB0_96;
+
+ fma.rn.f32 %f620, %f619, %f81, %f281;
+
+BB0_96:
+ and.b32 %r509, %r761, 2;
+ setp.eq.s32 %p61, %r509, 0;
+ @%p61 bra BB0_98;
+
+ mov.f32 %f364, 0fBF800000;
+ fma.rn.f32 %f620, %f620, %f364, %f286;
+
+BB0_98:
+ mul.f32 %f373, %f56, %f614;
+ mul.f32 %f374, %f373, %f373;
+ sub.f32 %f376, %f281, %f374;
+ mul.f32 %f377, %f56, %f620;
+ mul.f32 %f378, %f377, %f377;
+ sub.f32 %f379, %f376, %f378;
+ max.f32 %f381, %f286, %f379;
+ sqrt.rn.f32 %f382, %f381;
+ mul.f32 %f383, %f10, %f377;
+ mul.f32 %f384, %f11, %f377;
+ mul.f32 %f385, %f12, %f377;
+ fma.rn.f32 %f386, %f13, %f373, %f383;
+ fma.rn.f32 %f387, %f14, %f373, %f384;
+ fma.rn.f32 %f388, %f15, %f373, %f385;
+ fma.rn.f32 %f368, %f595, %f382, %f386;
+ fma.rn.f32 %f369, %f596, %f382, %f387;
+ fma.rn.f32 %f370, %f597, %f382, %f388;
+ abs.f32 %f389, %f368;
+ abs.f32 %f390, %f369;
+ abs.f32 %f391, %f370;
+ div.rn.f32 %f392, %f16, %f389;
+ div.rn.f32 %f393, %f17, %f390;
+ div.rn.f32 %f394, %f18, %f391;
+ abs.f32 %f395, %f392;
+ abs.f32 %f396, %f393;
+ abs.f32 %f397, %f394;
+ max.f32 %f398, %f395, %f396;
+ max.f32 %f399, %f398, %f397;
+ max.f32 %f371, %f399, %f199;
+ st.local.u32 [%rd14+8], %r409;
+ st.local.u32 [%rd14+4], %r409;
+ st.local.u32 [%rd14], %r409;
+ ld.global.u32 %r510, [root];
+ // inline asm
+ call _rt_trace_64, (%r510, %f7, %f8, %f9, %f368, %f369, %f370, %r409, %f371, %f278, %rd80, %r301);
+ // inline asm
+ ld.local.f32 %f401, [%rd14+4];
+ setp.leu.f32 %p62, %f401, 0f00000000;
+ @%p62 bra BB0_101;
+
+ ld.local.f32 %f402, [%rd14];
+ div.rn.f32 %f403, %f402, 0f41200000;
+ cvt.rzi.s32.f32 %r147, %f403;
+ setp.lt.s32 %p63, %r147, 0;
+ @%p63 bra BB0_101;
+
+ cvt.s64.s32 %rd113, %r147;
+ mov.u64 %rd117, lmidLODs;
+ cvta.global.u64 %rd106, %rd117;
+ mov.u32 %r515, 1;
+ // inline asm
+ call (%rd105), _rt_buffer_get_64, (%rd106, %r515, %r294, %rd113, %rd56, %rd56, %rd56);
+ // inline asm
+ ld.local.f32 %f404, [%rd14+4];
+ ld.f32 %f405, [%rd105];
+ max.f32 %f406, %f405, %f404;
+ // inline asm
+ call (%rd111), _rt_buffer_get_64, (%rd106, %r515, %r294, %rd113, %rd56, %rd56, %rd56);
+ // inline asm
+ st.f32 [%rd111], %f406;
+
+BB0_101:
+ mad.lo.s32 %r517, %r75, 1664525, 1013904223;
+ and.b32 %r518, %r517, 16777215;
+ cvt.rn.f32.u32 %f407, %r518;
+ fma.rn.f32 %f408, %f407, 0f33800000, 0f3F800000;
+ mul.f32 %f409, %f408, 0f3F000000;
+ mad.lo.s32 %r148, %r517, 1664525, 1013904223;
+ and.b32 %r519, %r148, 16777215;
+ cvt.rn.f32.u32 %f410, %r519;
+ fma.rn.f32 %f411, %f410, 0f33800000, 0f00000000;
+ mul.f32 %f412, %f411, 0f3F000000;
+ sqrt.rn.f32 %f93, %f409;
+ mul.f32 %f628, %f412, 0f40C90FDB;
+ abs.f32 %f95, %f628;
+ setp.neu.f32 %p64, %f95, 0f7F800000;
+ mov.f32 %f622, %f628;
+ @%p64 bra BB0_103;
+
+ mul.rn.f32 %f622, %f628, %f286;
+
+BB0_103:
+ mul.f32 %f414, %f622, 0f3F22F983;
+ cvt.rni.s32.f32 %r771, %f414;
+ cvt.rn.f32.s32 %f415, %r771;
+ neg.f32 %f416, %f415;
+ fma.rn.f32 %f418, %f416, %f229, %f622;
+ fma.rn.f32 %f420, %f416, %f231, %f418;
+ fma.rn.f32 %f623, %f416, %f233, %f420;
+ abs.f32 %f422, %f622;
+ setp.leu.f32 %p65, %f422, 0f47CE4780;
+ @%p65 bra BB0_114;
+
+ mov.b32 %r150, %f622;
+ shr.u32 %r151, %r150, 23;
+ shl.b32 %r522, %r150, 8;
+ or.b32 %r152, %r522, -2147483648;
+ cvta.to.local.u64 %rd175, %rd72;
+ mov.u32 %r763, 0;
+ mov.u64 %rd174, __cudart_i2opi_f;
+ mov.u32 %r762, -6;
+
+BB0_105:
+ .pragma "nounroll";
+ ld.const.u32 %r525, [%rd174];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r523, %r525, %r152, %r763;
+ madc.hi.u32 %r763, %r525, %r152, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd175], %r523;
+ add.s64 %rd175, %rd175, 4;
+ add.s64 %rd174, %rd174, 4;
+ add.s32 %r762, %r762, 1;
+ setp.ne.s32 %p66, %r762, 0;
+ @%p66 bra BB0_105;
+
+ and.b32 %r528, %r151, 255;
+ add.s32 %r529, %r528, -128;
+ shr.u32 %r530, %r529, 5;
+ and.b32 %r157, %r150, -2147483648;
+ cvta.to.local.u64 %rd121, %rd72;
+ st.local.u32 [%rd121+24], %r763;
+ mov.u32 %r531, 6;
+ sub.s32 %r532, %r531, %r530;
+ mul.wide.s32 %rd122, %r532, 4;
+ add.s64 %rd32, %rd121, %rd122;
+ ld.local.u32 %r764, [%rd32];
+ ld.local.u32 %r765, [%rd32+-4];
+ and.b32 %r160, %r151, 31;
+ setp.eq.s32 %p67, %r160, 0;
+ @%p67 bra BB0_108;
+
+ mov.u32 %r533, 32;
+ sub.s32 %r534, %r533, %r160;
+ shr.u32 %r535, %r765, %r534;
+ shl.b32 %r536, %r764, %r160;
+ add.s32 %r764, %r535, %r536;
+ ld.local.u32 %r537, [%rd32+-8];
+ shr.u32 %r538, %r537, %r534;
+ shl.b32 %r539, %r765, %r160;
+ add.s32 %r765, %r538, %r539;
+
+BB0_108:
+ shr.u32 %r540, %r765, 30;
+ shl.b32 %r541, %r764, 2;
+ add.s32 %r766, %r540, %r541;
+ shl.b32 %r166, %r765, 2;
+ shr.u32 %r542, %r766, 31;
+ shr.u32 %r543, %r764, 30;
+ add.s32 %r167, %r542, %r543;
+ setp.eq.s32 %p68, %r542, 0;
+ @%p68 bra BB0_109;
+
+ not.b32 %r544, %r766;
+ neg.s32 %r768, %r166;
+ setp.eq.s32 %p69, %r166, 0;
+ selp.u32 %r545, 1, 0, %p69;
+ add.s32 %r766, %r545, %r544;
+ xor.b32 %r767, %r157, -2147483648;
+ bra.uni BB0_111;
+
+BB0_109:
+ mov.u32 %r767, %r157;
+ mov.u32 %r768, %r166;
+
+BB0_111:
+ clz.b32 %r770, %r766;
+ setp.eq.s32 %p70, %r770, 0;
+ shl.b32 %r546, %r766, %r770;
+ mov.u32 %r547, 32;
+ sub.s32 %r548, %r547, %r770;
+ shr.u32 %r549, %r768, %r548;
+ add.s32 %r550, %r549, %r546;
+ selp.b32 %r175, %r766, %r550, %p70;
+ mov.u32 %r551, -921707870;
+ mul.hi.u32 %r769, %r175, %r551;
+ setp.eq.s32 %p71, %r157, 0;
+ neg.s32 %r552, %r167;
+ selp.b32 %r771, %r167, %r552, %p71;
+ setp.lt.s32 %p72, %r769, 1;
+ @%p72 bra BB0_113;
+
+ mul.lo.s32 %r553, %r175, -921707870;
+ shr.u32 %r554, %r553, 31;
+ shl.b32 %r555, %r769, 1;
+ add.s32 %r769, %r554, %r555;
+ add.s32 %r770, %r770, 1;
+
+BB0_113:
+ mov.u32 %r556, 126;
+ sub.s32 %r557, %r556, %r770;
+ shl.b32 %r558, %r557, 23;
+ add.s32 %r559, %r769, 1;
+ shr.u32 %r560, %r559, 7;
+ add.s32 %r561, %r560, 1;
+ shr.u32 %r562, %r561, 1;
+ add.s32 %r563, %r562, %r558;
+ or.b32 %r564, %r563, %r767;
+ mov.b32 %f623, %r564;
+
+BB0_114:
+ mul.rn.f32 %f101, %f623, %f623;
+ add.s32 %r183, %r771, 1;
+ and.b32 %r184, %r183, 1;
+ setp.eq.s32 %p73, %r184, 0;
+ @%p73 bra BB0_116;
+
+ mov.f32 %f423, 0fBAB6061A;
+ mov.f32 %f424, 0f37CCF5CE;
+ fma.rn.f32 %f624, %f424, %f101, %f423;
+ bra.uni BB0_117;
+
+BB0_116:
+ mov.f32 %f425, 0f3C08839E;
+ mov.f32 %f426, 0fB94CA1F9;
+ fma.rn.f32 %f624, %f426, %f101, %f425;
+
+BB0_117:
+ @%p73 bra BB0_119;
+
+ mov.f32 %f427, 0f3D2AAAA5;
+ fma.rn.f32 %f428, %f624, %f101, %f427;
+ mov.f32 %f429, 0fBF000000;
+ fma.rn.f32 %f625, %f428, %f101, %f429;
+ bra.uni BB0_120;
+
+BB0_119:
+ mov.f32 %f430, 0fBE2AAAA3;
+ fma.rn.f32 %f431, %f624, %f101, %f430;
+ fma.rn.f32 %f625, %f431, %f101, %f286;
+
+BB0_120:
+ fma.rn.f32 %f626, %f625, %f623, %f623;
+ @%p73 bra BB0_122;
+
+ fma.rn.f32 %f626, %f625, %f101, %f281;
+
+BB0_122:
+ and.b32 %r565, %r183, 2;
+ setp.eq.s32 %p76, %r565, 0;
+ @%p76 bra BB0_124;
+
+ mov.f32 %f435, 0fBF800000;
+ fma.rn.f32 %f626, %f626, %f435, %f286;
+
+BB0_124:
+ @%p64 bra BB0_126;
+
+ mul.rn.f32 %f628, %f628, %f286;
+
+BB0_126:
+ mul.f32 %f437, %f628, 0f3F22F983;
+ cvt.rni.s32.f32 %r781, %f437;
+ cvt.rn.f32.s32 %f438, %r781;
+ neg.f32 %f439, %f438;
+ fma.rn.f32 %f441, %f439, %f229, %f628;
+ fma.rn.f32 %f443, %f439, %f231, %f441;
+ fma.rn.f32 %f629, %f439, %f233, %f443;
+ abs.f32 %f445, %f628;
+ setp.leu.f32 %p78, %f445, 0f47CE4780;
+ @%p78 bra BB0_137;
+
+ mov.b32 %r186, %f628;
+ shr.u32 %r187, %r186, 23;
+ shl.b32 %r568, %r186, 8;
+ or.b32 %r188, %r568, -2147483648;
+ cvta.to.local.u64 %rd177, %rd72;
+ mov.u32 %r773, 0;
+ mov.u64 %rd176, __cudart_i2opi_f;
+ mov.u32 %r772, -6;
+
+BB0_128:
+ .pragma "nounroll";
+ ld.const.u32 %r571, [%rd176];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r569, %r571, %r188, %r773;
+ madc.hi.u32 %r773, %r571, %r188, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd177], %r569;
+ add.s64 %rd177, %rd177, 4;
+ add.s64 %rd176, %rd176, 4;
+ add.s32 %r772, %r772, 1;
+ setp.ne.s32 %p79, %r772, 0;
+ @%p79 bra BB0_128;
+
+ and.b32 %r574, %r187, 255;
+ add.s32 %r575, %r574, -128;
+ shr.u32 %r576, %r575, 5;
+ and.b32 %r193, %r186, -2147483648;
+ cvta.to.local.u64 %rd126, %rd72;
+ st.local.u32 [%rd126+24], %r773;
+ mov.u32 %r577, 6;
+ sub.s32 %r578, %r577, %r576;
+ mul.wide.s32 %rd127, %r578, 4;
+ add.s64 %rd38, %rd126, %rd127;
+ ld.local.u32 %r774, [%rd38];
+ ld.local.u32 %r775, [%rd38+-4];
+ and.b32 %r196, %r187, 31;
+ setp.eq.s32 %p80, %r196, 0;
+ @%p80 bra BB0_131;
+
+ mov.u32 %r579, 32;
+ sub.s32 %r580, %r579, %r196;
+ shr.u32 %r581, %r775, %r580;
+ shl.b32 %r582, %r774, %r196;
+ add.s32 %r774, %r581, %r582;
+ ld.local.u32 %r583, [%rd38+-8];
+ shr.u32 %r584, %r583, %r580;
+ shl.b32 %r585, %r775, %r196;
+ add.s32 %r775, %r584, %r585;
+
+BB0_131:
+ shr.u32 %r586, %r775, 30;
+ shl.b32 %r587, %r774, 2;
+ add.s32 %r776, %r586, %r587;
+ shl.b32 %r202, %r775, 2;
+ shr.u32 %r588, %r776, 31;
+ shr.u32 %r589, %r774, 30;
+ add.s32 %r203, %r588, %r589;
+ setp.eq.s32 %p81, %r588, 0;
+ @%p81 bra BB0_132;
+
+ not.b32 %r590, %r776;
+ neg.s32 %r778, %r202;
+ setp.eq.s32 %p82, %r202, 0;
+ selp.u32 %r591, 1, 0, %p82;
+ add.s32 %r776, %r591, %r590;
+ xor.b32 %r777, %r193, -2147483648;
+ bra.uni BB0_134;
+
+BB0_132:
+ mov.u32 %r777, %r193;
+ mov.u32 %r778, %r202;
+
+BB0_134:
+ clz.b32 %r780, %r776;
+ setp.eq.s32 %p83, %r780, 0;
+ shl.b32 %r592, %r776, %r780;
+ mov.u32 %r593, 32;
+ sub.s32 %r594, %r593, %r780;
+ shr.u32 %r595, %r778, %r594;
+ add.s32 %r596, %r595, %r592;
+ selp.b32 %r211, %r776, %r596, %p83;
+ mov.u32 %r597, -921707870;
+ mul.hi.u32 %r779, %r211, %r597;
+ setp.eq.s32 %p84, %r193, 0;
+ neg.s32 %r598, %r203;
+ selp.b32 %r781, %r203, %r598, %p84;
+ setp.lt.s32 %p85, %r779, 1;
+ @%p85 bra BB0_136;
+
+ mul.lo.s32 %r599, %r211, -921707870;
+ shr.u32 %r600, %r599, 31;
+ shl.b32 %r601, %r779, 1;
+ add.s32 %r779, %r600, %r601;
+ add.s32 %r780, %r780, 1;
+
+BB0_136:
+ mov.u32 %r602, 126;
+ sub.s32 %r603, %r602, %r780;
+ shl.b32 %r604, %r603, 23;
+ add.s32 %r605, %r779, 1;
+ shr.u32 %r606, %r605, 7;
+ add.s32 %r607, %r606, 1;
+ shr.u32 %r608, %r607, 1;
+ add.s32 %r609, %r608, %r604;
+ or.b32 %r610, %r609, %r777;
+ mov.b32 %f629, %r610;
+
+BB0_137:
+ mul.rn.f32 %f118, %f629, %f629;
+ and.b32 %r219, %r781, 1;
+ setp.eq.s32 %p86, %r219, 0;
+ @%p86 bra BB0_139;
+
+ mov.f32 %f446, 0fBAB6061A;
+ mov.f32 %f447, 0f37CCF5CE;
+ fma.rn.f32 %f630, %f447, %f118, %f446;
+ bra.uni BB0_140;
+
+BB0_139:
+ mov.f32 %f448, 0f3C08839E;
+ mov.f32 %f449, 0fB94CA1F9;
+ fma.rn.f32 %f630, %f449, %f118, %f448;
+
+BB0_140:
+ @%p86 bra BB0_142;
+
+ mov.f32 %f450, 0f3D2AAAA5;
+ fma.rn.f32 %f451, %f630, %f118, %f450;
+ mov.f32 %f452, 0fBF000000;
+ fma.rn.f32 %f631, %f451, %f118, %f452;
+ bra.uni BB0_143;
+
+BB0_142:
+ mov.f32 %f453, 0fBE2AAAA3;
+ fma.rn.f32 %f454, %f630, %f118, %f453;
+ fma.rn.f32 %f631, %f454, %f118, %f286;
+
+BB0_143:
+ fma.rn.f32 %f632, %f631, %f629, %f629;
+ @%p86 bra BB0_145;
+
+ fma.rn.f32 %f632, %f631, %f118, %f281;
+
+BB0_145:
+ and.b32 %r611, %r781, 2;
+ setp.eq.s32 %p89, %r611, 0;
+ @%p89 bra BB0_147;
+
+ mov.f32 %f458, 0fBF800000;
+ fma.rn.f32 %f632, %f632, %f458, %f286;
+
+BB0_147:
+ mul.f32 %f467, %f93, %f626;
+ mul.f32 %f468, %f467, %f467;
+ sub.f32 %f470, %f281, %f468;
+ mul.f32 %f471, %f93, %f632;
+ mul.f32 %f472, %f471, %f471;
+ sub.f32 %f473, %f470, %f472;
+ max.f32 %f475, %f286, %f473;
+ sqrt.rn.f32 %f476, %f475;
+ mul.f32 %f477, %f10, %f471;
+ mul.f32 %f478, %f11, %f471;
+ mul.f32 %f479, %f12, %f471;
+ fma.rn.f32 %f480, %f13, %f467, %f477;
+ fma.rn.f32 %f481, %f14, %f467, %f478;
+ fma.rn.f32 %f482, %f15, %f467, %f479;
+ fma.rn.f32 %f462, %f595, %f476, %f480;
+ fma.rn.f32 %f463, %f596, %f476, %f481;
+ fma.rn.f32 %f464, %f597, %f476, %f482;
+ abs.f32 %f483, %f462;
+ abs.f32 %f484, %f463;
+ abs.f32 %f485, %f464;
+ div.rn.f32 %f486, %f16, %f483;
+ div.rn.f32 %f487, %f17, %f484;
+ div.rn.f32 %f488, %f18, %f485;
+ abs.f32 %f489, %f486;
+ abs.f32 %f490, %f487;
+ abs.f32 %f491, %f488;
+ max.f32 %f492, %f489, %f490;
+ max.f32 %f493, %f492, %f491;
+ max.f32 %f465, %f493, %f199;
+ st.local.u32 [%rd14+8], %r409;
+ st.local.u32 [%rd14+4], %r409;
+ st.local.u32 [%rd14], %r409;
+ ld.global.u32 %r612, [root];
+ // inline asm
+ call _rt_trace_64, (%r612, %f7, %f8, %f9, %f462, %f463, %f464, %r409, %f465, %f278, %rd80, %r301);
+ // inline asm
+ ld.local.f32 %f495, [%rd14+4];
+ setp.leu.f32 %p90, %f495, 0f00000000;
+ @%p90 bra BB0_150;
+
+ ld.local.f32 %f496, [%rd14];
+ div.rn.f32 %f497, %f496, 0f41200000;
+ cvt.rzi.s32.f32 %r220, %f497;
+ setp.lt.s32 %p91, %r220, 0;
+ @%p91 bra BB0_150;
+
+ cvt.s64.s32 %rd137, %r220;
+ mov.u64 %rd141, lmidLODs;
+ cvta.global.u64 %rd130, %rd141;
+ mov.u32 %r617, 1;
+ // inline asm
+ call (%rd129), _rt_buffer_get_64, (%rd130, %r617, %r294, %rd137, %rd56, %rd56, %rd56);
+ // inline asm
+ ld.local.f32 %f498, [%rd14+4];
+ ld.f32 %f499, [%rd129];
+ max.f32 %f500, %f499, %f498;
+ // inline asm
+ call (%rd135), _rt_buffer_get_64, (%rd130, %r617, %r294, %rd137, %rd56, %rd56, %rd56);
+ // inline asm
+ st.f32 [%rd135], %f500;
+
+BB0_150:
+ mad.lo.s32 %r619, %r148, 1664525, 1013904223;
+ and.b32 %r620, %r619, 16777215;
+ cvt.rn.f32.u32 %f501, %r620;
+ fma.rn.f32 %f502, %f501, 0f33800000, 0f3F800000;
+ mul.f32 %f503, %f502, 0f3F000000;
+ mad.lo.s32 %r621, %r619, 1664525, 7271263;
+ and.b32 %r622, %r621, 16777215;
+ cvt.rn.f32.u32 %f504, %r622;
+ fma.rn.f32 %f505, %f504, 0f33800000, 0f3F800000;
+ mul.f32 %f506, %f505, 0f3F000000;
+ sqrt.rn.f32 %f130, %f503;
+ mul.f32 %f640, %f506, 0f40C90FDB;
+ abs.f32 %f132, %f640;
+ setp.neu.f32 %p92, %f132, 0f7F800000;
+ mov.f32 %f634, %f640;
+ @%p92 bra BB0_152;
+
+ mul.rn.f32 %f634, %f640, %f286;
+
+BB0_152:
+ mul.f32 %f508, %f634, 0f3F22F983;
+ cvt.rni.s32.f32 %r791, %f508;
+ cvt.rn.f32.s32 %f509, %r791;
+ neg.f32 %f510, %f509;
+ fma.rn.f32 %f512, %f510, %f229, %f634;
+ fma.rn.f32 %f514, %f510, %f231, %f512;
+ fma.rn.f32 %f635, %f510, %f233, %f514;
+ abs.f32 %f516, %f634;
+ setp.leu.f32 %p93, %f516, 0f47CE4780;
+ @%p93 bra BB0_163;
+
+ mov.b32 %r222, %f634;
+ shr.u32 %r223, %r222, 23;
+ shl.b32 %r625, %r222, 8;
+ or.b32 %r224, %r625, -2147483648;
+ cvta.to.local.u64 %rd179, %rd72;
+ mov.u32 %r783, 0;
+ mov.u64 %rd178, __cudart_i2opi_f;
+ mov.u32 %r782, -6;
+
+BB0_154:
+ .pragma "nounroll";
+ ld.const.u32 %r628, [%rd178];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r626, %r628, %r224, %r783;
+ madc.hi.u32 %r783, %r628, %r224, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd179], %r626;
+ add.s64 %rd179, %rd179, 4;
+ add.s64 %rd178, %rd178, 4;
+ add.s32 %r782, %r782, 1;
+ setp.ne.s32 %p94, %r782, 0;
+ @%p94 bra BB0_154;
+
+ and.b32 %r631, %r223, 255;
+ add.s32 %r632, %r631, -128;
+ shr.u32 %r633, %r632, 5;
+ and.b32 %r229, %r222, -2147483648;
+ cvta.to.local.u64 %rd145, %rd72;
+ st.local.u32 [%rd145+24], %r783;
+ mov.u32 %r634, 6;
+ sub.s32 %r635, %r634, %r633;
+ mul.wide.s32 %rd146, %r635, 4;
+ add.s64 %rd44, %rd145, %rd146;
+ ld.local.u32 %r784, [%rd44];
+ ld.local.u32 %r785, [%rd44+-4];
+ and.b32 %r232, %r223, 31;
+ setp.eq.s32 %p95, %r232, 0;
+ @%p95 bra BB0_157;
+
+ mov.u32 %r636, 32;
+ sub.s32 %r637, %r636, %r232;
+ shr.u32 %r638, %r785, %r637;
+ shl.b32 %r639, %r784, %r232;
+ add.s32 %r784, %r638, %r639;
+ ld.local.u32 %r640, [%rd44+-8];
+ shr.u32 %r641, %r640, %r637;
+ shl.b32 %r642, %r785, %r232;
+ add.s32 %r785, %r641, %r642;
+
+BB0_157:
+ shr.u32 %r643, %r785, 30;
+ shl.b32 %r644, %r784, 2;
+ add.s32 %r786, %r643, %r644;
+ shl.b32 %r238, %r785, 2;
+ shr.u32 %r645, %r786, 31;
+ shr.u32 %r646, %r784, 30;
+ add.s32 %r239, %r645, %r646;
+ setp.eq.s32 %p96, %r645, 0;
+ @%p96 bra BB0_158;
+
+ not.b32 %r647, %r786;
+ neg.s32 %r788, %r238;
+ setp.eq.s32 %p97, %r238, 0;
+ selp.u32 %r648, 1, 0, %p97;
+ add.s32 %r786, %r648, %r647;
+ xor.b32 %r787, %r229, -2147483648;
+ bra.uni BB0_160;
+
+BB0_158:
+ mov.u32 %r787, %r229;
+ mov.u32 %r788, %r238;
+
+BB0_160:
+ clz.b32 %r790, %r786;
+ setp.eq.s32 %p98, %r790, 0;
+ shl.b32 %r649, %r786, %r790;
+ mov.u32 %r650, 32;
+ sub.s32 %r651, %r650, %r790;
+ shr.u32 %r652, %r788, %r651;
+ add.s32 %r653, %r652, %r649;
+ selp.b32 %r247, %r786, %r653, %p98;
+ mov.u32 %r654, -921707870;
+ mul.hi.u32 %r789, %r247, %r654;
+ setp.eq.s32 %p99, %r229, 0;
+ neg.s32 %r655, %r239;
+ selp.b32 %r791, %r239, %r655, %p99;
+ setp.lt.s32 %p100, %r789, 1;
+ @%p100 bra BB0_162;
+
+ mul.lo.s32 %r656, %r247, -921707870;
+ shr.u32 %r657, %r656, 31;
+ shl.b32 %r658, %r789, 1;
+ add.s32 %r789, %r657, %r658;
+ add.s32 %r790, %r790, 1;
+
+BB0_162:
+ mov.u32 %r659, 126;
+ sub.s32 %r660, %r659, %r790;
+ shl.b32 %r661, %r660, 23;
+ add.s32 %r662, %r789, 1;
+ shr.u32 %r663, %r662, 7;
+ add.s32 %r664, %r663, 1;
+ shr.u32 %r665, %r664, 1;
+ add.s32 %r666, %r665, %r661;
+ or.b32 %r667, %r666, %r787;
+ mov.b32 %f635, %r667;
+
+BB0_163:
+ mul.rn.f32 %f138, %f635, %f635;
+ add.s32 %r255, %r791, 1;
+ and.b32 %r256, %r255, 1;
+ setp.eq.s32 %p101, %r256, 0;
+ @%p101 bra BB0_165;
+
+ mov.f32 %f517, 0fBAB6061A;
+ mov.f32 %f518, 0f37CCF5CE;
+ fma.rn.f32 %f636, %f518, %f138, %f517;
+ bra.uni BB0_166;
+
+BB0_165:
+ mov.f32 %f519, 0f3C08839E;
+ mov.f32 %f520, 0fB94CA1F9;
+ fma.rn.f32 %f636, %f520, %f138, %f519;
+
+BB0_166:
+ @%p101 bra BB0_168;
+
+ mov.f32 %f521, 0f3D2AAAA5;
+ fma.rn.f32 %f522, %f636, %f138, %f521;
+ mov.f32 %f523, 0fBF000000;
+ fma.rn.f32 %f637, %f522, %f138, %f523;
+ bra.uni BB0_169;
+
+BB0_168:
+ mov.f32 %f524, 0fBE2AAAA3;
+ fma.rn.f32 %f525, %f636, %f138, %f524;
+ fma.rn.f32 %f637, %f525, %f138, %f286;
+
+BB0_169:
+ fma.rn.f32 %f638, %f637, %f635, %f635;
+ @%p101 bra BB0_171;
+
+ fma.rn.f32 %f638, %f637, %f138, %f281;
+
+BB0_171:
+ and.b32 %r668, %r255, 2;
+ setp.eq.s32 %p104, %r668, 0;
+ @%p104 bra BB0_173;
+
+ mov.f32 %f529, 0fBF800000;
+ fma.rn.f32 %f638, %f638, %f529, %f286;
+
+BB0_173:
+ @%p92 bra BB0_175;
+
+ mul.rn.f32 %f640, %f640, %f286;
+
+BB0_175:
+ mul.f32 %f531, %f640, 0f3F22F983;
+ cvt.rni.s32.f32 %r801, %f531;
+ cvt.rn.f32.s32 %f532, %r801;
+ neg.f32 %f533, %f532;
+ fma.rn.f32 %f535, %f533, %f229, %f640;
+ fma.rn.f32 %f537, %f533, %f231, %f535;
+ fma.rn.f32 %f641, %f533, %f233, %f537;
+ abs.f32 %f539, %f640;
+ setp.leu.f32 %p106, %f539, 0f47CE4780;
+ @%p106 bra BB0_186;
+
+ mov.b32 %r258, %f640;
+ shr.u32 %r259, %r258, 23;
+ shl.b32 %r671, %r258, 8;
+ or.b32 %r260, %r671, -2147483648;
+ cvta.to.local.u64 %rd181, %rd72;
+ mov.u64 %rd180, __cudart_i2opi_f;
+ mov.u32 %r792, -6;
+ mov.u32 %r793, %r409;
+
+BB0_177:
+ .pragma "nounroll";
+ ld.const.u32 %r674, [%rd180];
+ // inline asm
+ {
+ mad.lo.cc.u32 %r672, %r674, %r260, %r793;
+ madc.hi.u32 %r793, %r674, %r260, 0;
+ }
+ // inline asm
+ st.local.u32 [%rd181], %r672;
+ add.s64 %rd181, %rd181, 4;
+ add.s64 %rd180, %rd180, 4;
+ add.s32 %r792, %r792, 1;
+ setp.ne.s32 %p107, %r792, 0;
+ @%p107 bra BB0_177;
+
+ and.b32 %r677, %r259, 255;
+ add.s32 %r678, %r677, -128;
+ shr.u32 %r679, %r678, 5;
+ and.b32 %r265, %r258, -2147483648;
+ cvta.to.local.u64 %rd150, %rd72;
+ st.local.u32 [%rd150+24], %r793;
+ mov.u32 %r680, 6;
+ sub.s32 %r681, %r680, %r679;
+ mul.wide.s32 %rd151, %r681, 4;
+ add.s64 %rd50, %rd150, %rd151;
+ ld.local.u32 %r794, [%rd50];
+ ld.local.u32 %r795, [%rd50+-4];
+ and.b32 %r268, %r259, 31;
+ setp.eq.s32 %p108, %r268, 0;
+ @%p108 bra BB0_180;
+
+ mov.u32 %r682, 32;
+ sub.s32 %r683, %r682, %r268;
+ shr.u32 %r684, %r795, %r683;
+ shl.b32 %r685, %r794, %r268;
+ add.s32 %r794, %r684, %r685;
+ ld.local.u32 %r686, [%rd50+-8];
+ shr.u32 %r687, %r686, %r683;
+ shl.b32 %r688, %r795, %r268;
+ add.s32 %r795, %r687, %r688;
+
+BB0_180:
+ shr.u32 %r689, %r795, 30;
+ shl.b32 %r690, %r794, 2;
+ add.s32 %r796, %r689, %r690;
+ shl.b32 %r274, %r795, 2;
+ shr.u32 %r691, %r796, 31;
+ shr.u32 %r692, %r794, 30;
+ add.s32 %r275, %r691, %r692;
+ setp.eq.s32 %p109, %r691, 0;
+ @%p109 bra BB0_181;
+
+ not.b32 %r693, %r796;
+ neg.s32 %r798, %r274;
+ setp.eq.s32 %p110, %r274, 0;
+ selp.u32 %r694, 1, 0, %p110;
+ add.s32 %r796, %r694, %r693;
+ xor.b32 %r797, %r265, -2147483648;
+ bra.uni BB0_183;
+
+BB0_181:
+ mov.u32 %r797, %r265;
+ mov.u32 %r798, %r274;
+
+BB0_183:
+ clz.b32 %r800, %r796;
+ setp.eq.s32 %p111, %r800, 0;
+ shl.b32 %r695, %r796, %r800;
+ mov.u32 %r696, 32;
+ sub.s32 %r697, %r696, %r800;
+ shr.u32 %r698, %r798, %r697;
+ add.s32 %r699, %r698, %r695;
+ selp.b32 %r283, %r796, %r699, %p111;
+ mov.u32 %r700, -921707870;
+ mul.hi.u32 %r799, %r283, %r700;
+ setp.eq.s32 %p112, %r265, 0;
+ neg.s32 %r701, %r275;
+ selp.b32 %r801, %r275, %r701, %p112;
+ setp.lt.s32 %p113, %r799, 1;
+ @%p113 bra BB0_185;
+
+ mul.lo.s32 %r702, %r283, -921707870;
+ shr.u32 %r703, %r702, 31;
+ shl.b32 %r704, %r799, 1;
+ add.s32 %r799, %r703, %r704;
+ add.s32 %r800, %r800, 1;
+
+BB0_185:
+ mov.u32 %r705, 126;
+ sub.s32 %r706, %r705, %r800;
+ shl.b32 %r707, %r706, 23;
+ add.s32 %r708, %r799, 1;
+ shr.u32 %r709, %r708, 7;
+ add.s32 %r710, %r709, 1;
+ shr.u32 %r711, %r710, 1;
+ add.s32 %r712, %r711, %r707;
+ or.b32 %r713, %r712, %r797;
+ mov.b32 %f641, %r713;
+
+BB0_186:
+ mul.rn.f32 %f155, %f641, %f641;
+ and.b32 %r291, %r801, 1;
+ setp.eq.s32 %p114, %r291, 0;
+ @%p114 bra BB0_188;
+
+ mov.f32 %f540, 0fBAB6061A;
+ mov.f32 %f541, 0f37CCF5CE;
+ fma.rn.f32 %f642, %f541, %f155, %f540;
+ bra.uni BB0_189;
+
+BB0_188:
+ mov.f32 %f542, 0f3C08839E;
+ mov.f32 %f543, 0fB94CA1F9;
+ fma.rn.f32 %f642, %f543, %f155, %f542;
+
+BB0_189:
+ @%p114 bra BB0_191;
+
+ mov.f32 %f544, 0f3D2AAAA5;
+ fma.rn.f32 %f545, %f642, %f155, %f544;
+ mov.f32 %f546, 0fBF000000;
+ fma.rn.f32 %f643, %f545, %f155, %f546;
+ bra.uni BB0_192;
+
+BB0_191:
+ mov.f32 %f547, 0fBE2AAAA3;
+ fma.rn.f32 %f548, %f642, %f155, %f547;
+ fma.rn.f32 %f643, %f548, %f155, %f286;
+
+BB0_192:
+ fma.rn.f32 %f644, %f643, %f641, %f641;
+ @%p114 bra BB0_194;
+
+ fma.rn.f32 %f644, %f643, %f155, %f281;
+
+BB0_194:
+ and.b32 %r714, %r801, 2;
+ setp.eq.s32 %p117, %r714, 0;
+ @%p117 bra BB0_196;
+
+ mov.f32 %f552, 0fBF800000;
+ fma.rn.f32 %f644, %f644, %f552, %f286;
+
+BB0_196:
+ mul.f32 %f561, %f130, %f638;
+ mul.f32 %f562, %f561, %f561;
+ sub.f32 %f564, %f281, %f562;
+ mul.f32 %f565, %f130, %f644;
+ mul.f32 %f566, %f565, %f565;
+ sub.f32 %f567, %f564, %f566;
+ max.f32 %f569, %f286, %f567;
+ sqrt.rn.f32 %f570, %f569;
+ mul.f32 %f571, %f10, %f565;
+ mul.f32 %f572, %f11, %f565;
+ mul.f32 %f573, %f12, %f565;
+ fma.rn.f32 %f574, %f13, %f561, %f571;
+ fma.rn.f32 %f575, %f14, %f561, %f572;
+ fma.rn.f32 %f576, %f15, %f561, %f573;
+ fma.rn.f32 %f556, %f595, %f570, %f574;
+ fma.rn.f32 %f557, %f596, %f570, %f575;
+ fma.rn.f32 %f558, %f597, %f570, %f576;
+ abs.f32 %f577, %f556;
+ abs.f32 %f578, %f557;
+ abs.f32 %f579, %f558;
+ div.rn.f32 %f580, %f16, %f577;
+ div.rn.f32 %f581, %f17, %f578;
+ div.rn.f32 %f582, %f18, %f579;
+ abs.f32 %f583, %f580;
+ abs.f32 %f584, %f581;
+ abs.f32 %f585, %f582;
+ max.f32 %f586, %f583, %f584;
+ max.f32 %f587, %f586, %f585;
+ max.f32 %f559, %f587, %f199;
+ st.local.u32 [%rd14+8], %r409;
+ st.local.u32 [%rd14+4], %r409;
+ st.local.u32 [%rd14], %r409;
+ ld.global.u32 %r715, [root];
+ // inline asm
+ call _rt_trace_64, (%r715, %f7, %f8, %f9, %f556, %f557, %f558, %r409, %f559, %f278, %rd80, %r301);
+ // inline asm
+ ld.local.f32 %f589, [%rd14+4];
+ setp.leu.f32 %p118, %f589, 0f00000000;
+ @%p118 bra BB0_199;
+
+ ld.local.f32 %f590, [%rd14];
+ div.rn.f32 %f591, %f590, 0f41200000;
+ cvt.rzi.s32.f32 %r292, %f591;
+ setp.lt.s32 %p119, %r292, 0;
+ @%p119 bra BB0_199;
+
+ cvt.s64.s32 %rd161, %r292;
+ mov.u64 %rd165, lmidLODs;
+ cvta.global.u64 %rd154, %rd165;
+ mov.u32 %r720, 1;
+ // inline asm
+ call (%rd153), _rt_buffer_get_64, (%rd154, %r720, %r294, %rd161, %rd56, %rd56, %rd56);
+ // inline asm
+ ld.local.f32 %f592, [%rd14+4];
+ ld.f32 %f593, [%rd153];
+ max.f32 %f594, %f593, %f592;
+ // inline asm
+ call (%rd159), _rt_buffer_get_64, (%rd154, %r720, %r294, %rd161, %rd56, %rd56, %rd56);
+ // inline asm
+ st.f32 [%rd159], %f594;
+
+BB0_199:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lodselect.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lodselect.ptx.meta
new file mode 100644
index 00000000..133e0a6f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/lodselect.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 140d569d2348c164ea102e2533a4a218
+timeCreated: 1530260521
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/miss.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/miss.ptx
new file mode 100644
index 00000000..d38c600f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/miss.ptx
@@ -0,0 +1,106 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 4 .b8 payload[4];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7payloadE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename7payloadE[8] = {82, 97, 121, 68, 97, 116, 97, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7payloadE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic7payloadE[10] = {114, 116, 80, 97, 121, 108, 111, 97, 100, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7payloadE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .b32 %r<2>;
+
+
+ mov.u32 %r1, -1082130432;
+ st.global.u32 [payload], %r1;
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/miss.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/miss.ptx.meta
new file mode 100644
index 00000000..d738dbbd
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/miss.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c53c1c79fd22950478ebe4c561e08083
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/mulHalfByte.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/mulHalfByte.ptx
new file mode 100644
index 00000000..b1b2008d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/mulHalfByte.ptx
@@ -0,0 +1,652 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image2[1];
+.global .align 1 .b8 image3[1];
+.global .align 4 .u32 composeMode;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo11composeModeE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename11composeModeE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum11composeModeE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic11composeModeE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation11composeModeE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<52>;
+ .reg .b16 %rs<12>;
+ .reg .f32 %f<334>;
+ .reg .b32 %r<79>;
+ .reg .b64 %rd<55>;
+
+
+ ld.global.v2.u32 {%r15, %r16}, [pixelID];
+ cvt.u64.u32 %rd3, %r15;
+ cvt.u64.u32 %rd4, %r16;
+ mov.u64 %rd43, image2;
+ cvta.global.u64 %rd2, %rd43;
+ mov.u32 %r13, 2;
+ mov.u32 %r8, 8;
+ mov.u64 %rd42, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r13, %r8, %rd3, %rd4, %rd42, %rd42);
+ // inline asm
+ ld.u16 %rs4, [%rd1+6];
+ cvt.rn.f32.u16 %f1, %rs4;
+ ld.global.v2.u32 {%r19, %r20}, [pixelID];
+ cvt.u64.u32 %rd9, %r19;
+ cvt.u64.u32 %rd10, %r20;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd2, %r13, %r8, %rd9, %rd10, %rd42, %rd42);
+ // inline asm
+ ld.u16 %rs1, [%rd7];
+ // inline asm
+ { cvt.f32.f16 %f47, %rs1;}
+
+ // inline asm
+ ld.global.v2.u32 {%r23, %r24}, [pixelID];
+ cvt.u64.u32 %rd15, %r23;
+ cvt.u64.u32 %rd16, %r24;
+ // inline asm
+ call (%rd13), _rt_buffer_get_64, (%rd2, %r13, %r8, %rd15, %rd16, %rd42, %rd42);
+ // inline asm
+ ld.u16 %rs2, [%rd13+2];
+ // inline asm
+ { cvt.f32.f16 %f48, %rs2;}
+
+ // inline asm
+ ld.global.v2.u32 {%r27, %r28}, [pixelID];
+ cvt.u64.u32 %rd21, %r27;
+ cvt.u64.u32 %rd22, %r28;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd2, %r13, %r8, %rd21, %rd22, %rd42, %rd42);
+ // inline asm
+ ld.u16 %rs3, [%rd19+4];
+ // inline asm
+ { cvt.f32.f16 %f49, %rs3;}
+
+ // inline asm
+ ld.global.v2.u32 {%r31, %r32}, [pixelID];
+ cvt.u64.u32 %rd27, %r31;
+ cvt.u64.u32 %rd28, %r32;
+ mov.u64 %rd44, image3;
+ cvta.global.u64 %rd26, %rd44;
+ mov.u32 %r14, 4;
+ // inline asm
+ call (%rd25), _rt_buffer_get_64, (%rd26, %r13, %r14, %rd27, %rd28, %rd42, %rd42);
+ // inline asm
+ ld.u8 %rs5, [%rd25];
+ cvt.rn.f32.u16 %f52, %rs5;
+ div.rn.f32 %f5, %f52, 0f437F0000;
+ ld.global.v2.u32 {%r35, %r36}, [pixelID];
+ cvt.u64.u32 %rd33, %r35;
+ cvt.u64.u32 %rd34, %r36;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd26, %r13, %r14, %rd33, %rd34, %rd42, %rd42);
+ // inline asm
+ ld.u8 %rs6, [%rd31+1];
+ cvt.rn.f32.u16 %f53, %rs6;
+ div.rn.f32 %f6, %f53, 0f437F0000;
+ ld.global.v2.u32 {%r39, %r40}, [pixelID];
+ cvt.u64.u32 %rd39, %r39;
+ cvt.u64.u32 %rd40, %r40;
+ // inline asm
+ call (%rd37), _rt_buffer_get_64, (%rd26, %r13, %r14, %rd39, %rd40, %rd42, %rd42);
+ // inline asm
+ ld.u8 %rs7, [%rd37+2];
+ cvt.rn.f32.u16 %f54, %rs7;
+ div.rn.f32 %f7, %f54, 0f437F0000;
+ abs.f32 %f9, %f5;
+ setp.lt.f32 %p4, %f9, 0f00800000;
+ mul.f32 %f58, %f9, 0f4B800000;
+ selp.f32 %f59, 0fC3170000, 0fC2FE0000, %p4;
+ selp.f32 %f60, %f58, %f9, %p4;
+ mov.b32 %r43, %f60;
+ and.b32 %r44, %r43, 8388607;
+ or.b32 %r45, %r44, 1065353216;
+ mov.b32 %f61, %r45;
+ shr.u32 %r46, %r43, 23;
+ cvt.rn.f32.u32 %f62, %r46;
+ add.f32 %f63, %f59, %f62;
+ setp.gt.f32 %p5, %f61, 0f3FB504F3;
+ mul.f32 %f64, %f61, 0f3F000000;
+ add.f32 %f65, %f63, 0f3F800000;
+ selp.f32 %f66, %f64, %f61, %p5;
+ selp.f32 %f67, %f65, %f63, %p5;
+ add.f32 %f68, %f66, 0fBF800000;
+ add.f32 %f51, %f66, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f50,%f51;
+ // inline asm
+ add.f32 %f69, %f68, %f68;
+ mul.f32 %f70, %f50, %f69;
+ mul.f32 %f71, %f70, %f70;
+ mov.f32 %f72, 0f3C4CAF63;
+ mov.f32 %f73, 0f3B18F0FE;
+ fma.rn.f32 %f74, %f73, %f71, %f72;
+ mov.f32 %f75, 0f3DAAAABD;
+ fma.rn.f32 %f76, %f74, %f71, %f75;
+ mul.rn.f32 %f77, %f76, %f71;
+ mul.rn.f32 %f78, %f77, %f70;
+ sub.f32 %f79, %f68, %f70;
+ neg.f32 %f80, %f70;
+ add.f32 %f81, %f79, %f79;
+ fma.rn.f32 %f82, %f80, %f68, %f81;
+ mul.rn.f32 %f83, %f50, %f82;
+ add.f32 %f84, %f78, %f70;
+ sub.f32 %f85, %f70, %f84;
+ add.f32 %f86, %f78, %f85;
+ add.f32 %f87, %f83, %f86;
+ add.f32 %f88, %f84, %f87;
+ sub.f32 %f89, %f84, %f88;
+ add.f32 %f90, %f87, %f89;
+ mov.f32 %f91, 0f3F317200;
+ mul.rn.f32 %f92, %f67, %f91;
+ mov.f32 %f93, 0f35BFBE8E;
+ mul.rn.f32 %f94, %f67, %f93;
+ add.f32 %f95, %f92, %f88;
+ sub.f32 %f96, %f92, %f95;
+ add.f32 %f97, %f88, %f96;
+ add.f32 %f98, %f90, %f97;
+ add.f32 %f99, %f94, %f98;
+ add.f32 %f100, %f95, %f99;
+ sub.f32 %f101, %f95, %f100;
+ add.f32 %f102, %f99, %f101;
+ mov.f32 %f103, 0f400CCCCD;
+ mul.rn.f32 %f104, %f103, %f100;
+ neg.f32 %f105, %f104;
+ fma.rn.f32 %f106, %f103, %f100, %f105;
+ fma.rn.f32 %f107, %f103, %f102, %f106;
+ mov.f32 %f108, 0f00000000;
+ fma.rn.f32 %f109, %f108, %f100, %f107;
+ add.rn.f32 %f110, %f104, %f109;
+ neg.f32 %f111, %f110;
+ add.rn.f32 %f112, %f104, %f111;
+ add.rn.f32 %f113, %f112, %f109;
+ mov.b32 %r47, %f110;
+ setp.eq.s32 %p6, %r47, 1118925336;
+ add.s32 %r48, %r47, -1;
+ mov.b32 %f114, %r48;
+ add.f32 %f115, %f113, 0f37000000;
+ selp.f32 %f116, %f114, %f110, %p6;
+ selp.f32 %f10, %f115, %f113, %p6;
+ mul.f32 %f117, %f116, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f118, %f117;
+ mov.f32 %f119, 0fBF317200;
+ fma.rn.f32 %f120, %f118, %f119, %f116;
+ mov.f32 %f121, 0fB5BFBE8E;
+ fma.rn.f32 %f122, %f118, %f121, %f120;
+ mul.f32 %f123, %f122, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f124, %f123;
+ add.f32 %f125, %f118, 0f00000000;
+ ex2.approx.f32 %f126, %f125;
+ mul.f32 %f127, %f124, %f126;
+ setp.lt.f32 %p7, %f116, 0fC2D20000;
+ selp.f32 %f128, 0f00000000, %f127, %p7;
+ setp.gt.f32 %p8, %f116, 0f42D20000;
+ selp.f32 %f325, 0f7F800000, %f128, %p8;
+ setp.eq.f32 %p9, %f325, 0f7F800000;
+ @%p9 bra BB0_2;
+
+ fma.rn.f32 %f325, %f325, %f10, %f325;
+
+BB0_2:
+ mov.f32 %f322, 0f3F8CCCCD;
+ cvt.rzi.f32.f32 %f321, %f322;
+ fma.rn.f32 %f320, %f321, 0fC0000000, 0f400CCCCD;
+ abs.f32 %f319, %f320;
+ setp.lt.f32 %p10, %f5, 0f00000000;
+ setp.eq.f32 %p11, %f319, 0f3F800000;
+ and.pred %p1, %p10, %p11;
+ mov.b32 %r49, %f325;
+ xor.b32 %r50, %r49, -2147483648;
+ mov.b32 %f129, %r50;
+ selp.f32 %f327, %f129, %f325, %p1;
+ setp.eq.f32 %p12, %f5, 0f00000000;
+ @%p12 bra BB0_5;
+ bra.uni BB0_3;
+
+BB0_5:
+ add.f32 %f132, %f5, %f5;
+ selp.f32 %f327, %f132, 0f00000000, %p11;
+ bra.uni BB0_6;
+
+BB0_3:
+ setp.geu.f32 %p13, %f5, 0f00000000;
+ @%p13 bra BB0_6;
+
+ mov.f32 %f324, 0f400CCCCD;
+ cvt.rzi.f32.f32 %f131, %f324;
+ setp.neu.f32 %p14, %f131, 0f400CCCCD;
+ selp.f32 %f327, 0f7FFFFFFF, %f327, %p14;
+
+BB0_6:
+ abs.f32 %f294, %f5;
+ add.f32 %f133, %f294, 0f400CCCCD;
+ mov.b32 %r51, %f133;
+ setp.lt.s32 %p16, %r51, 2139095040;
+ @%p16 bra BB0_11;
+
+ abs.f32 %f311, %f5;
+ setp.gtu.f32 %p17, %f311, 0f7F800000;
+ @%p17 bra BB0_10;
+ bra.uni BB0_8;
+
+BB0_10:
+ add.f32 %f327, %f5, 0f400CCCCD;
+ bra.uni BB0_11;
+
+BB0_8:
+ abs.f32 %f312, %f5;
+ setp.neu.f32 %p18, %f312, 0f7F800000;
+ @%p18 bra BB0_11;
+
+ selp.f32 %f327, 0fFF800000, 0f7F800000, %p1;
+
+BB0_11:
+ mov.f32 %f323, 0f400CCCCD;
+ mov.f32 %f302, 0fB5BFBE8E;
+ mov.f32 %f301, 0fBF317200;
+ mov.f32 %f300, 0f00000000;
+ mov.f32 %f299, 0f35BFBE8E;
+ mov.f32 %f298, 0f3F317200;
+ mov.f32 %f297, 0f3DAAAABD;
+ mov.f32 %f296, 0f3C4CAF63;
+ mov.f32 %f295, 0f3B18F0FE;
+ setp.eq.f32 %p19, %f5, 0f3F800000;
+ selp.f32 %f21, 0f3F800000, %f327, %p19;
+ abs.f32 %f22, %f6;
+ setp.lt.f32 %p20, %f22, 0f00800000;
+ mul.f32 %f136, %f22, 0f4B800000;
+ selp.f32 %f137, 0fC3170000, 0fC2FE0000, %p20;
+ selp.f32 %f138, %f136, %f22, %p20;
+ mov.b32 %r52, %f138;
+ and.b32 %r53, %r52, 8388607;
+ or.b32 %r54, %r53, 1065353216;
+ mov.b32 %f139, %r54;
+ shr.u32 %r55, %r52, 23;
+ cvt.rn.f32.u32 %f140, %r55;
+ add.f32 %f141, %f137, %f140;
+ setp.gt.f32 %p21, %f139, 0f3FB504F3;
+ mul.f32 %f142, %f139, 0f3F000000;
+ add.f32 %f143, %f141, 0f3F800000;
+ selp.f32 %f144, %f142, %f139, %p21;
+ selp.f32 %f145, %f143, %f141, %p21;
+ add.f32 %f146, %f144, 0fBF800000;
+ add.f32 %f135, %f144, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f134,%f135;
+ // inline asm
+ add.f32 %f147, %f146, %f146;
+ mul.f32 %f148, %f134, %f147;
+ mul.f32 %f149, %f148, %f148;
+ fma.rn.f32 %f152, %f295, %f149, %f296;
+ fma.rn.f32 %f154, %f152, %f149, %f297;
+ mul.rn.f32 %f155, %f154, %f149;
+ mul.rn.f32 %f156, %f155, %f148;
+ sub.f32 %f157, %f146, %f148;
+ neg.f32 %f158, %f148;
+ add.f32 %f159, %f157, %f157;
+ fma.rn.f32 %f160, %f158, %f146, %f159;
+ mul.rn.f32 %f161, %f134, %f160;
+ add.f32 %f162, %f156, %f148;
+ sub.f32 %f163, %f148, %f162;
+ add.f32 %f164, %f156, %f163;
+ add.f32 %f165, %f161, %f164;
+ add.f32 %f166, %f162, %f165;
+ sub.f32 %f167, %f162, %f166;
+ add.f32 %f168, %f165, %f167;
+ mul.rn.f32 %f170, %f145, %f298;
+ mul.rn.f32 %f172, %f145, %f299;
+ add.f32 %f173, %f170, %f166;
+ sub.f32 %f174, %f170, %f173;
+ add.f32 %f175, %f166, %f174;
+ add.f32 %f176, %f168, %f175;
+ add.f32 %f177, %f172, %f176;
+ add.f32 %f178, %f173, %f177;
+ sub.f32 %f179, %f173, %f178;
+ add.f32 %f180, %f177, %f179;
+ mul.rn.f32 %f182, %f323, %f178;
+ neg.f32 %f183, %f182;
+ fma.rn.f32 %f184, %f323, %f178, %f183;
+ fma.rn.f32 %f185, %f323, %f180, %f184;
+ fma.rn.f32 %f187, %f300, %f178, %f185;
+ add.rn.f32 %f188, %f182, %f187;
+ neg.f32 %f189, %f188;
+ add.rn.f32 %f190, %f182, %f189;
+ add.rn.f32 %f191, %f190, %f187;
+ mov.b32 %r56, %f188;
+ setp.eq.s32 %p22, %r56, 1118925336;
+ add.s32 %r57, %r56, -1;
+ mov.b32 %f192, %r57;
+ add.f32 %f193, %f191, 0f37000000;
+ selp.f32 %f194, %f192, %f188, %p22;
+ selp.f32 %f23, %f193, %f191, %p22;
+ mul.f32 %f195, %f194, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f196, %f195;
+ fma.rn.f32 %f198, %f196, %f301, %f194;
+ fma.rn.f32 %f200, %f196, %f302, %f198;
+ mul.f32 %f201, %f200, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f202, %f201;
+ add.f32 %f203, %f196, 0f00000000;
+ ex2.approx.f32 %f204, %f203;
+ mul.f32 %f205, %f202, %f204;
+ setp.lt.f32 %p23, %f194, 0fC2D20000;
+ selp.f32 %f206, 0f00000000, %f205, %p23;
+ setp.gt.f32 %p24, %f194, 0f42D20000;
+ selp.f32 %f328, 0f7F800000, %f206, %p24;
+ setp.eq.f32 %p25, %f328, 0f7F800000;
+ @%p25 bra BB0_13;
+
+ fma.rn.f32 %f328, %f328, %f23, %f328;
+
+BB0_13:
+ setp.lt.f32 %p26, %f6, 0f00000000;
+ and.pred %p2, %p26, %p11;
+ mov.b32 %r58, %f328;
+ xor.b32 %r59, %r58, -2147483648;
+ mov.b32 %f207, %r59;
+ selp.f32 %f330, %f207, %f328, %p2;
+ setp.eq.f32 %p28, %f6, 0f00000000;
+ @%p28 bra BB0_16;
+ bra.uni BB0_14;
+
+BB0_16:
+ add.f32 %f210, %f6, %f6;
+ selp.f32 %f330, %f210, 0f00000000, %p11;
+ bra.uni BB0_17;
+
+BB0_14:
+ setp.geu.f32 %p29, %f6, 0f00000000;
+ @%p29 bra BB0_17;
+
+ mov.f32 %f318, 0f400CCCCD;
+ cvt.rzi.f32.f32 %f209, %f318;
+ setp.neu.f32 %p30, %f209, 0f400CCCCD;
+ selp.f32 %f330, 0f7FFFFFFF, %f330, %p30;
+
+BB0_17:
+ abs.f32 %f313, %f6;
+ add.f32 %f211, %f313, 0f400CCCCD;
+ mov.b32 %r60, %f211;
+ setp.lt.s32 %p32, %r60, 2139095040;
+ @%p32 bra BB0_22;
+
+ abs.f32 %f316, %f6;
+ setp.gtu.f32 %p33, %f316, 0f7F800000;
+ @%p33 bra BB0_21;
+ bra.uni BB0_19;
+
+BB0_21:
+ add.f32 %f330, %f6, 0f400CCCCD;
+ bra.uni BB0_22;
+
+BB0_19:
+ abs.f32 %f317, %f6;
+ setp.neu.f32 %p34, %f317, 0f7F800000;
+ @%p34 bra BB0_22;
+
+ selp.f32 %f330, 0fFF800000, 0f7F800000, %p2;
+
+BB0_22:
+ mov.f32 %f314, 0f400CCCCD;
+ mov.f32 %f310, 0fB5BFBE8E;
+ mov.f32 %f309, 0fBF317200;
+ mov.f32 %f308, 0f00000000;
+ mov.f32 %f307, 0f35BFBE8E;
+ mov.f32 %f306, 0f3F317200;
+ mov.f32 %f305, 0f3DAAAABD;
+ mov.f32 %f304, 0f3C4CAF63;
+ mov.f32 %f303, 0f3B18F0FE;
+ setp.eq.f32 %p35, %f6, 0f3F800000;
+ selp.f32 %f34, 0f3F800000, %f330, %p35;
+ abs.f32 %f35, %f7;
+ setp.lt.f32 %p36, %f35, 0f00800000;
+ mul.f32 %f214, %f35, 0f4B800000;
+ selp.f32 %f215, 0fC3170000, 0fC2FE0000, %p36;
+ selp.f32 %f216, %f214, %f35, %p36;
+ mov.b32 %r61, %f216;
+ and.b32 %r62, %r61, 8388607;
+ or.b32 %r63, %r62, 1065353216;
+ mov.b32 %f217, %r63;
+ shr.u32 %r64, %r61, 23;
+ cvt.rn.f32.u32 %f218, %r64;
+ add.f32 %f219, %f215, %f218;
+ setp.gt.f32 %p37, %f217, 0f3FB504F3;
+ mul.f32 %f220, %f217, 0f3F000000;
+ add.f32 %f221, %f219, 0f3F800000;
+ selp.f32 %f222, %f220, %f217, %p37;
+ selp.f32 %f223, %f221, %f219, %p37;
+ add.f32 %f224, %f222, 0fBF800000;
+ add.f32 %f213, %f222, 0f3F800000;
+ // inline asm
+ rcp.approx.ftz.f32 %f212,%f213;
+ // inline asm
+ add.f32 %f225, %f224, %f224;
+ mul.f32 %f226, %f212, %f225;
+ mul.f32 %f227, %f226, %f226;
+ fma.rn.f32 %f230, %f303, %f227, %f304;
+ fma.rn.f32 %f232, %f230, %f227, %f305;
+ mul.rn.f32 %f233, %f232, %f227;
+ mul.rn.f32 %f234, %f233, %f226;
+ sub.f32 %f235, %f224, %f226;
+ neg.f32 %f236, %f226;
+ add.f32 %f237, %f235, %f235;
+ fma.rn.f32 %f238, %f236, %f224, %f237;
+ mul.rn.f32 %f239, %f212, %f238;
+ add.f32 %f240, %f234, %f226;
+ sub.f32 %f241, %f226, %f240;
+ add.f32 %f242, %f234, %f241;
+ add.f32 %f243, %f239, %f242;
+ add.f32 %f244, %f240, %f243;
+ sub.f32 %f245, %f240, %f244;
+ add.f32 %f246, %f243, %f245;
+ mul.rn.f32 %f248, %f223, %f306;
+ mul.rn.f32 %f250, %f223, %f307;
+ add.f32 %f251, %f248, %f244;
+ sub.f32 %f252, %f248, %f251;
+ add.f32 %f253, %f244, %f252;
+ add.f32 %f254, %f246, %f253;
+ add.f32 %f255, %f250, %f254;
+ add.f32 %f256, %f251, %f255;
+ sub.f32 %f257, %f251, %f256;
+ add.f32 %f258, %f255, %f257;
+ mul.rn.f32 %f260, %f314, %f256;
+ neg.f32 %f261, %f260;
+ fma.rn.f32 %f262, %f314, %f256, %f261;
+ fma.rn.f32 %f263, %f314, %f258, %f262;
+ fma.rn.f32 %f265, %f308, %f256, %f263;
+ add.rn.f32 %f266, %f260, %f265;
+ neg.f32 %f267, %f266;
+ add.rn.f32 %f268, %f260, %f267;
+ add.rn.f32 %f269, %f268, %f265;
+ mov.b32 %r65, %f266;
+ setp.eq.s32 %p38, %r65, 1118925336;
+ add.s32 %r66, %r65, -1;
+ mov.b32 %f270, %r66;
+ add.f32 %f271, %f269, 0f37000000;
+ selp.f32 %f272, %f270, %f266, %p38;
+ selp.f32 %f36, %f271, %f269, %p38;
+ mul.f32 %f273, %f272, 0f3FB8AA3B;
+ cvt.rzi.f32.f32 %f274, %f273;
+ fma.rn.f32 %f276, %f274, %f309, %f272;
+ fma.rn.f32 %f278, %f274, %f310, %f276;
+ mul.f32 %f279, %f278, 0f3FB8AA3B;
+ ex2.approx.ftz.f32 %f280, %f279;
+ add.f32 %f281, %f274, 0f00000000;
+ ex2.approx.f32 %f282, %f281;
+ mul.f32 %f283, %f280, %f282;
+ setp.lt.f32 %p39, %f272, 0fC2D20000;
+ selp.f32 %f284, 0f00000000, %f283, %p39;
+ setp.gt.f32 %p40, %f272, 0f42D20000;
+ selp.f32 %f331, 0f7F800000, %f284, %p40;
+ setp.eq.f32 %p41, %f331, 0f7F800000;
+ @%p41 bra BB0_24;
+
+ fma.rn.f32 %f331, %f331, %f36, %f331;
+
+BB0_24:
+ setp.lt.f32 %p42, %f7, 0f00000000;
+ and.pred %p3, %p42, %p11;
+ mov.b32 %r67, %f331;
+ xor.b32 %r68, %r67, -2147483648;
+ mov.b32 %f285, %r68;
+ selp.f32 %f333, %f285, %f331, %p3;
+ setp.eq.f32 %p44, %f7, 0f00000000;
+ @%p44 bra BB0_27;
+ bra.uni BB0_25;
+
+BB0_27:
+ add.f32 %f288, %f7, %f7;
+ selp.f32 %f333, %f288, 0f00000000, %p11;
+ bra.uni BB0_28;
+
+BB0_25:
+ setp.geu.f32 %p45, %f7, 0f00000000;
+ @%p45 bra BB0_28;
+
+ mov.f32 %f315, 0f400CCCCD;
+ cvt.rzi.f32.f32 %f287, %f315;
+ setp.neu.f32 %p46, %f287, 0f400CCCCD;
+ selp.f32 %f333, 0f7FFFFFFF, %f333, %p46;
+
+BB0_28:
+ add.f32 %f289, %f35, 0f400CCCCD;
+ mov.b32 %r69, %f289;
+ setp.lt.s32 %p48, %r69, 2139095040;
+ @%p48 bra BB0_33;
+
+ setp.gtu.f32 %p49, %f35, 0f7F800000;
+ @%p49 bra BB0_32;
+ bra.uni BB0_30;
+
+BB0_32:
+ add.f32 %f333, %f7, 0f400CCCCD;
+ bra.uni BB0_33;
+
+BB0_30:
+ setp.neu.f32 %p50, %f35, 0f7F800000;
+ @%p50 bra BB0_33;
+
+ selp.f32 %f333, 0fFF800000, 0f7F800000, %p3;
+
+BB0_33:
+ mov.u64 %rd54, 0;
+ mov.u32 %r78, 8;
+ mov.u32 %r77, 2;
+ mov.u64 %rd53, image2;
+ cvta.global.u64 %rd52, %rd53;
+ setp.eq.f32 %p51, %f7, 0f3F800000;
+ selp.f32 %f293, 0f3F800000, %f333, %p51;
+ mul.f32 %f292, %f49, %f293;
+ ld.global.v2.u32 {%r72, %r73}, [pixelID];
+ cvt.u64.u32 %rd47, %r72;
+ cvt.u64.u32 %rd48, %r73;
+ // inline asm
+ call (%rd45), _rt_buffer_get_64, (%rd52, %r77, %r78, %rd47, %rd48, %rd54, %rd54);
+ // inline asm
+ mul.f32 %f290, %f47, %f21;
+ mul.f32 %f291, %f48, %f34;
+ cvt.rzi.u32.f32 %r76, %f1;
+ // inline asm
+ { cvt.rn.f16.f32 %rs10, %f292;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs9, %f291;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs8, %f290;}
+
+ // inline asm
+ cvt.u16.u32 %rs11, %r76;
+ st.v4.u16 [%rd45], {%rs8, %rs9, %rs10, %rs11};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/mulHalfByte.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/mulHalfByte.ptx.meta
new file mode 100644
index 00000000..df1e9316
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/mulHalfByte.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d83426084209bab47bfdba17f46666ba
+timeCreated: 1529763005
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.1.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.1.dll
new file mode 100644
index 00000000..e4967f60
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.1.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.1.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.1.dll.meta
new file mode 100644
index 00000000..3fbecbea
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.1.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: c02dbbbfa50b4d24bb80c38630c51d64
+timeCreated: 1538860310
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.51.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.51.dll
new file mode 100644
index 00000000..3a1af70a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.51.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.51.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.51.dll.meta
new file mode 100644
index 00000000..89e026e8
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.51.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: 69dd4159f541f8e43a25be4badf065a1
+timeCreated: 1540204891
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.6.0.0.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.6.0.0.dll
new file mode 100644
index 00000000..d4df47fe
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.6.0.0.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.6.0.0.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.6.0.0.dll.meta
new file mode 100644
index 00000000..ee01c1c9
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix.6.0.0.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: 3d18c0edb358677489f7fd4a6fae6f31
+timeCreated: 1549646857
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.51.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.51.dll
new file mode 100644
index 00000000..f7e44cdb
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.51.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.51.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.51.dll.meta
new file mode 100644
index 00000000..1c4ede31
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.51.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: bbb2d6b7ca7f3a748b1b1b13329bbf99
+timeCreated: 1540204891
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.6.0.0.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.6.0.0.dll
new file mode 100644
index 00000000..41545d2b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.6.0.0.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.6.0.0.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.6.0.0.dll.meta
new file mode 100644
index 00000000..1c5ecff3
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/optix_denoiser.6.0.0.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: 5bb70c44ee8310e468da42720600e2a9
+timeCreated: 1562931666
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/output.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/output.pso
new file mode 100644
index 00000000..d1cd0ace
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/output.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/output.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/output.pso.meta
new file mode 100644
index 00000000..9a34ca1b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/output.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fa6867e2d577d534ba9c77e525394941
+timeCreated: 1530270532
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha.pso
new file mode 100644
index 00000000..96ebe4aa
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha.pso.meta
new file mode 100644
index 00000000..cf060211
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8232c95120c18334da09ce9329de4963
+timeCreated: 1601292490
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha_noflip.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha_noflip.pso
new file mode 100644
index 00000000..ac6ff6cd
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha_noflip.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha_noflip.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha_noflip.pso.meta
new file mode 100644
index 00000000..d0964a1e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/packalpha_noflip.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7a7add73022b31d43b7cb052aba65692
+timeCreated: 1601293843
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddDir.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddDir.ptx
new file mode 100644
index 00000000..9e172923
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddDir.ptx
@@ -0,0 +1,159 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image2[1];
+.global .align 1 .b8 imageN[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<3>;
+ .reg .b16 %rs<18>;
+ .reg .b32 %r<37>;
+ .reg .b64 %rd<28>;
+
+
+ ld.global.v2.u32 {%r9, %r10}, [pixelID];
+ cvt.u64.u32 %rd3, %r9;
+ cvt.u64.u32 %rd4, %r10;
+ mov.u64 %rd25, image;
+ cvta.global.u64 %rd2, %rd25;
+ mov.u32 %r7, 2;
+ mov.u32 %r8, 4;
+ mov.u64 %rd24, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r7, %r8, %rd3, %rd4, %rd24, %rd24);
+ // inline asm
+ ld.v4.u8 {%rs1, %rs2, %rs3, %rs4}, [%rd1];
+ ld.global.v2.u32 {%r13, %r14}, [pixelID];
+ cvt.u64.u32 %rd9, %r13;
+ cvt.u64.u32 %rd10, %r14;
+ mov.u64 %rd26, image2;
+ cvta.global.u64 %rd8, %rd26;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd8, %r7, %r8, %rd9, %rd10, %rd24, %rd24);
+ // inline asm
+ ld.v4.u8 {%rs8, %rs9, %rs10, %rs11}, [%rd7];
+ ld.global.v2.u32 {%r17, %r18}, [pixelID];
+ cvt.u64.u32 %rd15, %r17;
+ cvt.u64.u32 %rd16, %r18;
+ mov.u64 %rd27, imageN;
+ cvta.global.u64 %rd14, %rd27;
+ // inline asm
+ call (%rd13), _rt_buffer_get_64, (%rd14, %r7, %r8, %rd15, %rd16, %rd24, %rd24);
+ // inline asm
+ ld.u8 %rs13, [%rd13+3];
+ setp.eq.s16 %p1, %rs13, 0;
+ setp.gt.u16 %p2, %rs11, %rs13;
+ cvt.u32.u16 %r21, %rs10;
+ cvt.u32.u16 %r22, %rs9;
+ cvt.u32.u16 %r23, %rs8;
+ cvt.u32.u16 %r24, %rs1;
+ selp.b32 %r25, 0, %r24, %p1;
+ add.s32 %r26, %r25, %r23;
+ cvt.u32.u16 %r27, %rs2;
+ selp.b32 %r28, 0, %r27, %p1;
+ add.s32 %r29, %r28, %r22;
+ cvt.u32.u16 %r30, %rs3;
+ selp.b32 %r31, 0, %r30, %p1;
+ add.s32 %r32, %r31, %r21;
+ ld.global.v2.u32 {%r33, %r34}, [pixelID];
+ cvt.u64.u32 %rd21, %r33;
+ cvt.u64.u32 %rd22, %r34;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd8, %r7, %r8, %rd21, %rd22, %rd24, %rd24);
+ // inline asm
+ selp.b16 %rs14, %rs11, %rs13, %p2;
+ cvt.u16.u32 %rs15, %r32;
+ cvt.u16.u32 %rs16, %r29;
+ cvt.u16.u32 %rs17, %r26;
+ st.v4.u8 [%rd19], {%rs17, %rs16, %rs15, %rs14};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddDir.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddDir.ptx.meta
new file mode 100644
index 00000000..5b9bb147
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddDir.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8c23f48640ddf1b42a6c1e95ad1e871f
+timeCreated: 1582382878
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddHalf.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddHalf.ptx
new file mode 100644
index 00000000..23758b6a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddHalf.ptx
@@ -0,0 +1,228 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image2[1];
+.global .align 1 .b8 imageN[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<2>;
+ .reg .b16 %rs<13>;
+ .reg .f32 %f<13>;
+ .reg .b32 %r<55>;
+ .reg .b64 %rd<58>;
+
+
+ ld.global.v2.u32 {%r19, %r20}, [pixelID];
+ cvt.u64.u32 %rd3, %r19;
+ cvt.u64.u32 %rd4, %r20;
+ mov.u64 %rd55, image;
+ cvta.global.u64 %rd2, %rd55;
+ mov.u32 %r17, 2;
+ mov.u32 %r18, 8;
+ mov.u64 %rd54, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r17, %r18, %rd3, %rd4, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs1, [%rd1];
+ // inline asm
+ { cvt.f32.f16 %f1, %rs1;}
+
+ // inline asm
+ ld.global.v2.u32 {%r23, %r24}, [pixelID];
+ cvt.u64.u32 %rd9, %r23;
+ cvt.u64.u32 %rd10, %r24;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd2, %r17, %r18, %rd9, %rd10, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs2, [%rd7+2];
+ // inline asm
+ { cvt.f32.f16 %f2, %rs2;}
+
+ // inline asm
+ ld.global.v2.u32 {%r27, %r28}, [pixelID];
+ cvt.u64.u32 %rd15, %r27;
+ cvt.u64.u32 %rd16, %r28;
+ // inline asm
+ call (%rd13), _rt_buffer_get_64, (%rd2, %r17, %r18, %rd15, %rd16, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs3, [%rd13+4];
+ // inline asm
+ { cvt.f32.f16 %f3, %rs3;}
+
+ // inline asm
+ ld.global.v2.u32 {%r31, %r32}, [pixelID];
+ cvt.u64.u32 %rd21, %r31;
+ cvt.u64.u32 %rd22, %r32;
+ mov.u64 %rd56, image2;
+ cvta.global.u64 %rd20, %rd56;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd20, %r17, %r18, %rd21, %rd22, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs4, [%rd19];
+ // inline asm
+ { cvt.f32.f16 %f4, %rs4;}
+
+ // inline asm
+ ld.global.v2.u32 {%r35, %r36}, [pixelID];
+ cvt.u64.u32 %rd27, %r35;
+ cvt.u64.u32 %rd28, %r36;
+ // inline asm
+ call (%rd25), _rt_buffer_get_64, (%rd20, %r17, %r18, %rd27, %rd28, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs5, [%rd25+2];
+ // inline asm
+ { cvt.f32.f16 %f5, %rs5;}
+
+ // inline asm
+ ld.global.v2.u32 {%r39, %r40}, [pixelID];
+ cvt.u64.u32 %rd33, %r39;
+ cvt.u64.u32 %rd34, %r40;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd20, %r17, %r18, %rd33, %rd34, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs6, [%rd31+4];
+ // inline asm
+ { cvt.f32.f16 %f6, %rs6;}
+
+ // inline asm
+ ld.global.v2.u32 {%r43, %r44}, [pixelID];
+ cvt.u64.u32 %rd39, %r43;
+ cvt.u64.u32 %rd40, %r44;
+ // inline asm
+ call (%rd37), _rt_buffer_get_64, (%rd20, %r17, %r18, %rd39, %rd40, %rd54, %rd54);
+ // inline asm
+ ld.u16 %rs7, [%rd37+6];
+ // inline asm
+ { cvt.f32.f16 %f7, %rs7;}
+
+ // inline asm
+ ld.global.v2.u32 {%r47, %r48}, [pixelID];
+ cvt.u64.u32 %rd45, %r47;
+ cvt.u64.u32 %rd46, %r48;
+ mov.u64 %rd57, imageN;
+ cvta.global.u64 %rd44, %rd57;
+ mov.u32 %r16, 4;
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd44, %r17, %r16, %rd45, %rd46, %rd54, %rd54);
+ // inline asm
+ ld.u8 %rs12, [%rd43+3];
+ setp.eq.s16 %p1, %rs12, 0;
+ selp.f32 %f12, 0f00000000, 0f3F800000, %p1;
+ max.f32 %f11, %f12, %f7;
+ fma.rn.f32 %f8, %f1, %f12, %f4;
+ fma.rn.f32 %f9, %f2, %f12, %f5;
+ fma.rn.f32 %f10, %f3, %f12, %f6;
+ ld.global.v2.u32 {%r51, %r52}, [pixelID];
+ cvt.u64.u32 %rd51, %r51;
+ cvt.u64.u32 %rd52, %r52;
+ // inline asm
+ call (%rd49), _rt_buffer_get_64, (%rd20, %r17, %r18, %rd51, %rd52, %rd54, %rd54);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs10, %f10;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs9, %f9;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs8, %f8;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs11, %f11;}
+
+ // inline asm
+ st.v4.u16 [%rd49], {%rs8, %rs9, %rs10, %rs11};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddHalf.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddHalf.ptx.meta
new file mode 100644
index 00000000..733e410f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/postAddHalf.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 62652ab2c12ee5a49bb1fee695c7ccc7
+timeCreated: 1582371819
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/quad.vso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/quad.vso
new file mode 100644
index 00000000..1a379525
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/quad.vso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/quad.vso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/quad.vso.meta
new file mode 100644
index 00000000..a0627481
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/quad.vso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d3f9a8abe9eb2a54b8a434c3d58513b0
+timeCreated: 1526155640
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/removeEmissive.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/removeEmissive.ptx
new file mode 100644
index 00000000..2bfbcb2b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/removeEmissive.ptx
@@ -0,0 +1,216 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 image[1];
+.global .align 1 .b8 image2[1];
+.global .align 1 .b8 image3[1];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .b16 %rs<12>;
+ .reg .f32 %f<12>;
+ .reg .b32 %r<49>;
+ .reg .b64 %rd<52>;
+
+
+ ld.global.v2.u32 {%r17, %r18}, [pixelID];
+ cvt.u64.u32 %rd3, %r17;
+ cvt.u64.u32 %rd4, %r18;
+ mov.u64 %rd49, image;
+ cvta.global.u64 %rd2, %rd49;
+ mov.u32 %r15, 2;
+ mov.u32 %r16, 8;
+ mov.u64 %rd48, 0;
+ // inline asm
+ call (%rd1), _rt_buffer_get_64, (%rd2, %r15, %r16, %rd3, %rd4, %rd48, %rd48);
+ // inline asm
+ ld.u16 %rs1, [%rd1+6];
+ // inline asm
+ { cvt.f32.f16 %f1, %rs1;}
+
+ // inline asm
+ ld.global.v2.u32 {%r21, %r22}, [pixelID];
+ cvt.u64.u32 %rd9, %r21;
+ cvt.u64.u32 %rd10, %r22;
+ // inline asm
+ call (%rd7), _rt_buffer_get_64, (%rd2, %r15, %r16, %rd9, %rd10, %rd48, %rd48);
+ // inline asm
+ ld.u16 %rs2, [%rd7];
+ // inline asm
+ { cvt.f32.f16 %f2, %rs2;}
+
+ // inline asm
+ ld.global.v2.u32 {%r25, %r26}, [pixelID];
+ cvt.u64.u32 %rd15, %r25;
+ cvt.u64.u32 %rd16, %r26;
+ // inline asm
+ call (%rd13), _rt_buffer_get_64, (%rd2, %r15, %r16, %rd15, %rd16, %rd48, %rd48);
+ // inline asm
+ ld.u16 %rs3, [%rd13+2];
+ // inline asm
+ { cvt.f32.f16 %f3, %rs3;}
+
+ // inline asm
+ ld.global.v2.u32 {%r29, %r30}, [pixelID];
+ cvt.u64.u32 %rd21, %r29;
+ cvt.u64.u32 %rd22, %r30;
+ // inline asm
+ call (%rd19), _rt_buffer_get_64, (%rd2, %r15, %r16, %rd21, %rd22, %rd48, %rd48);
+ // inline asm
+ ld.u16 %rs4, [%rd19+4];
+ // inline asm
+ { cvt.f32.f16 %f4, %rs4;}
+
+ // inline asm
+ ld.global.v2.u32 {%r33, %r34}, [pixelID];
+ cvt.u64.u32 %rd27, %r33;
+ cvt.u64.u32 %rd28, %r34;
+ mov.u64 %rd50, image3;
+ cvta.global.u64 %rd26, %rd50;
+ // inline asm
+ call (%rd25), _rt_buffer_get_64, (%rd26, %r15, %r16, %rd27, %rd28, %rd48, %rd48);
+ // inline asm
+ ld.u16 %rs5, [%rd25];
+ // inline asm
+ { cvt.f32.f16 %f5, %rs5;}
+
+ // inline asm
+ ld.global.v2.u32 {%r37, %r38}, [pixelID];
+ cvt.u64.u32 %rd33, %r37;
+ cvt.u64.u32 %rd34, %r38;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd26, %r15, %r16, %rd33, %rd34, %rd48, %rd48);
+ // inline asm
+ ld.u16 %rs6, [%rd31+2];
+ // inline asm
+ { cvt.f32.f16 %f6, %rs6;}
+
+ // inline asm
+ ld.global.v2.u32 {%r41, %r42}, [pixelID];
+ cvt.u64.u32 %rd39, %r41;
+ cvt.u64.u32 %rd40, %r42;
+ // inline asm
+ call (%rd37), _rt_buffer_get_64, (%rd26, %r15, %r16, %rd39, %rd40, %rd48, %rd48);
+ // inline asm
+ ld.u16 %rs7, [%rd37+4];
+ // inline asm
+ { cvt.f32.f16 %f7, %rs7;}
+
+ // inline asm
+ sub.f32 %f8, %f2, %f5;
+ sub.f32 %f9, %f3, %f6;
+ sub.f32 %f10, %f4, %f7;
+ ld.global.v2.u32 {%r45, %r46}, [pixelID];
+ cvt.u64.u32 %rd45, %r45;
+ cvt.u64.u32 %rd46, %r46;
+ mov.u64 %rd51, image2;
+ cvta.global.u64 %rd44, %rd51;
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd44, %r15, %r16, %rd45, %rd46, %rd48, %rd48);
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs10, %f10;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs9, %f9;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs8, %f8;}
+
+ // inline asm
+ // inline asm
+ { cvt.rn.f16.f32 %rs11, %f1;}
+
+ // inline asm
+ st.v4.u16 [%rd43], {%rs8, %rs9, %rs10, %rs11};
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/removeEmissive.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/removeEmissive.ptx.meta
new file mode 100644
index 00000000..016ba20b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/removeEmissive.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 590fcb201d80a9046832c6c35217ec52
+timeCreated: 1528486976
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/rgba2tga.exe b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/rgba2tga.exe
new file mode 100644
index 00000000..fbf05c6f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/rgba2tga.exe
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/rgba2tga.exe.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/rgba2tga.exe.meta
new file mode 100644
index 00000000..edd05a34
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/rgba2tga.exe.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b587e8104b43940479f216b6dee30a8a
+timeCreated: 1537452995
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts.meta
new file mode 100644
index 00000000..513f25ed
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: c63527f288ca0954d8d54d509c18907a
+folderAsset: yes
+timeCreated: 1622807248
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/BakeryEditorAssembly.asmdef b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/BakeryEditorAssembly.asmdef
new file mode 100644
index 00000000..0aa416f0
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/BakeryEditorAssembly.asmdef
@@ -0,0 +1,16 @@
+{
+ "name": "BakeryEditorAssembly",
+ "references": [
+ "BakeryRuntimeAssembly"
+ ],
+ "optionalUnityReferences": [],
+ "includePlatforms": [
+ "Editor"
+ ],
+ "excludePlatforms": [],
+ "allowUnsafeCode": false,
+ "overrideReferences": false,
+ "precompiledReferences": [],
+ "autoReferenced": true,
+ "defineConstraints": []
+} \ No newline at end of file
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/BakeryEditorAssembly.asmdef.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/BakeryEditorAssembly.asmdef.meta
new file mode 100644
index 00000000..e0e96407
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/BakeryEditorAssembly.asmdef.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 290dd5870d0ead646bcb6ea5c6a60af5
+timeCreated: 1551814754
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftAdditionalConfig.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftAdditionalConfig.cs
new file mode 100644
index 00000000..d8d0c427
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftAdditionalConfig.cs
@@ -0,0 +1,68 @@
+using UnityEditor;
+using UnityEngine;
+
+public class ftAdditionalConfig
+{
+ // Affects texture import settings for lightmaps
+ public const bool mipmapLightmaps = false;
+
+ // Shader eval coeff * gaussian convolution coeff
+ // ... replaced with more typical convolution coeffs
+ // Used for legacy light probes
+ public const float irradianceConvolutionL0 = 0.2820947917f;
+ public const float irradianceConvolutionL1 = 0.32573500793527993f;//0.4886025119f * 0.7346029443286334f;
+ public const float irradianceConvolutionL2_4_5_7 = 0.2731371076480198f;//0.29121293321402086f * 1.0925484306f;
+ public const float irradianceConvolutionL2_6 = 0.07884789131313001f;//0.29121293321402086f * 0.3153915652f;
+ public const float irradianceConvolutionL2_8 = 0.1365685538240099f;//0.29121293321402086f * 0.5462742153f;
+
+ // Used for L1 light probes and volumes
+ public const float convL0 = 1;
+ public const float convL1 = 0.9f; // approx convolution
+
+ // Calculate multiple point lights in one pass. No reason to disable it, unless there is a bug.
+ public static bool batchPointLights = true;
+
+#if UNITY_2017_3_OR_NEWER
+ public const int sectorFarSphereResolution = 256;
+#else
+ // older version can't handle 32 bit meshes
+ public const int sectorFarSphereResolution = 64;
+#endif
+
+/*
+ Following settings are moved to Project Settings
+ (on >= 2018.3; you can also edit BakeryProjectSettings.asset directly)
+
+ // Use PNG instead of TGA for shadowmasks, directions and L1 maps
+ public const bool preferPNG = false;
+
+ // Padding values for atlas packers
+ public const int texelPaddingForDefaultAtlasPacker = 3;
+ public const int texelPaddingForXatlasAtlasPacker = 1;
+
+ // Scales resolution for alpha Meta Pass maps
+ public const int alphaMetaPassResolutionMultiplier = 2;
+
+ // Render mode for all volumes in the scene. Defaults to Auto, which uses global scene render mode.
+ public const BakeryLightmapGroup.RenderMode volumeRenderMode = BakeryLightmapGroup.RenderMode.Auto;
+
+ // Should previously rendered Bakery lightmaps be deleted before the new bake?
+ // Turned off by default because I'm scared of deleting anything
+ public const bool deletePreviousLightmapsBeforeBake = false;
+
+ // Print information about the bake process to console?
+ public enum LogLevel
+ {
+ Nothing = 0,
+ Info = 1, // print to Debug.Log
+ Warning = 2 // print to Debug.LogWarning
+ }
+ public const LogLevel logLevel = LogLevel.Info | LogLevel.Warning;
+
+ // Make it work more similar to original Unity behaviour
+ public const bool alternativeScaleInLightmap = false;
+
+ // Should we adjust sample positions to prevent incorrect shadowing on very low-poly meshes with smooth normals?
+ public const bool generateSmoothPos = true;
+*/
+}
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftAdditionalConfig.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftAdditionalConfig.cs.meta
new file mode 100644
index 00000000..c91690d5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftAdditionalConfig.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 1da9342d2a59abd49a8dfb8aa73a87b3
+timeCreated: 1596818791
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildGraphics.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildGraphics.cs
new file mode 100644
index 00000000..7e7a1ed2
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildGraphics.cs
@@ -0,0 +1,7944 @@
+#if UNITY_EDITOR
+
+// Disable 'obsolete' warnings
+#pragma warning disable 0618
+
+using UnityEngine;
+using UnityEditor;
+using System;
+using System.IO;
+using System.Text;
+using System.Linq;
+using System.Collections;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using UnityEngine.SceneManagement;
+using UnityEditor.SceneManagement;
+using UnityEngine.Rendering;
+using System.Reflection;
+
+public class ftBuildGraphics : ScriptableWizard
+{
+ const int UVGBFLAG_NORMAL = 1;
+ const int UVGBFLAG_FACENORMAL = 2;
+ const int UVGBFLAG_ALBEDO = 4;
+ const int UVGBFLAG_EMISSIVE = 8;
+ const int UVGBFLAG_POS = 16;
+ const int UVGBFLAG_SMOOTHPOS = 32;
+ const int UVGBFLAG_TANGENT = 64;
+ const int UVGBFLAG_TERRAIN = 128;
+ const int UVGBFLAG_RESERVED = 256;
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void InitShaders();
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void LoadScene(string path);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ private static extern void SetAlbedos(int count, IntPtr[] tex);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ private static extern int CopyAlbedos();
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ private static extern int CopyHeightmapsFromRAM(int count, TexInput[] tex);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void FreeAlbedoCopies();
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ private static extern void SetAlphas(int count, IntPtr[] tex, float[] alphaRefs, int[] alphaChannels, int numLODs, bool flip);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ private static extern void SetAlphasFromRAM(int count, System.IntPtr tex, float[] alphaRefs, int[] alphaChannels, int numLODs, bool flip);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void SaveSky(IntPtr tex, float rx, float ry, float rz, float ux, float uy, float uz, float fx, float fy, float fz, string path, bool isLinear, bool doubleLDR);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void SaveCookie(IntPtr tex, string path);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void SaveCookieFromRAM(TexInput tex, string path);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ftRenderUVGBuffer();
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void SetUVGBFlags(int flags);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void SetFixPos(bool enabled);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void SetCompression(bool enabled);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ftGenerateAlphaBuffer();
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int SaveGBufferMap(IntPtr tex, string path, bool compressed);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int SaveGBufferMapFromRAM(byte[] tex, int size, string path, bool compressed);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int GetABGErrorCode();
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int GetUVGBErrorCode();
+
+ [DllImport ("uvrepack", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int uvrLoad(float[] inputUVs, int numVerts, int[] inputIndices, int numIndices);
+
+ [DllImport ("uvrepack", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int uvrRepack(float padding, int resolution);
+
+ [DllImport ("uvrepack", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int uvrUnload();
+
+ public enum TexInputType
+ {
+ Color,
+ FloatColor,
+ HalfColor
+ };
+
+ public struct TexInput
+ {
+ public byte[] data;
+ public ushort width, height;
+ };
+
+ static Material matCubemapToStripExport;
+
+ static int voffset, soffset, ioffset;
+
+ static public string scenePath = "";
+
+ static BufferedBinaryWriterFloat fvbfull, fvbtrace, fvbtraceTex, fvbtraceUV0;
+ static BufferedBinaryWriterInt fib;
+ static BinaryWriter fscene, fmesh, flmid, fseamfix, fsurf, fmatid, fmatide, fmatidh, fmatideb, falphaid, fib32, fhmaps;
+ static BinaryWriter[] fib32lod;
+ static BinaryWriter[] falphaidlod;
+
+ public static ftLightmapsStorage.ImplicitLightmapData tempStorage = new ftLightmapsStorage.ImplicitLightmapData();
+
+ public static float texelsPerUnit = 20;
+ public static int minAutoResolution = 16;
+ public static int maxAutoResolution = 4096;
+ public static bool mustBePOT = true;
+ public static bool autoAtlas = true;
+ public static bool unwrapUVs = true;
+ public static bool forceDisableUnwrapUVs = false;
+ public static bool exportShaderColors = true; // albedo and emission (sometimes normal) always come from the engine now
+ //public static int atlasPaddingPixels = ftAdditionalConfig.texelPaddingForDefaultAtlasPacker;
+ public static bool atlasCountPriority = false;
+ public static bool splitByScene = false;
+ public static bool uvPaddingMax = false;
+ public static bool exportTerrainAsHeightmap = true;
+ public static bool exportTerrainTrees = false;
+ public static bool uvgbHeightmap = true;
+
+ public static bool texelsPerUnitPerMap = false;
+ public static float mainLightmapScale = 1;
+ public static float maskLightmapScale = 1;
+ public static float dirLightmapScale = 1;
+
+ const float atlasScaleUpValue = 1.01f;
+ const int atlasMaxTries = 100;
+ const float alphaInstanceThreshold = 5.0f / 255.0f;
+
+ const bool flipAlpha = true;
+
+ public static string overwriteExtensionCheck = ".hdr";
+ public static bool overwriteWarning = false;
+ public static bool overwriteWarningSelectedOnly = false;
+ public static bool memoryWarning = false;
+ public static bool modifyLightmapStorage = true;
+ public static bool validateLightmapStorageImmutability = true;
+ public static bool sceneNeedsToBeRebuilt = false;
+ //public static int unityVersionMajor = 0;
+ //public static int unityVersionMinor = 0;
+
+ static int areaLightCounter = -2;
+ public static int sceneLodsUsed = 0;
+
+ static GameObject lmgroupHolder;
+ static BakeryLightmapGroup lightProbeLMGroup = null;
+ static BakeryLightmapGroup volumeLMGroup = null;
+
+ static List<GameObject> terrainObjectList;
+ static List<Terrain> terrainObjectToActual;
+ static List<Texture> terrainObjectToHeightMap;
+ static List<TexInput> terrainObjectToHeightMapRAM;
+ static List<float> terrainObjectToBounds;
+ static List<int> terrainObjectToLMID;
+ static List<float> terrainObjectToBoundsUV;
+ static List<int> terrainObjectToFlags;
+ static List<List<float[]>> terrainObjectToHeightMips;
+ //static List<List<Vector3[]>> terrainObjectToNormalMips;
+ //static List<Vector3[]> terrainObjectToNormalMip0;
+ static List<GameObject> temporaryAreaLightMeshList;
+ static List<BakeryLightMesh> temporaryAreaLightMeshList2;
+ public static List<GameObject> temporaryGameObjects;
+
+ static Dictionary<GameObject, int> cmp_objToLodLevel;
+ static Dictionary<GameObject, float> cmp_holderObjArea;
+
+ public static Dictionary<int,List<int>> lodLevelsVisibleInLodLevel = new Dictionary<int,List<int>>(); // defines LOD levels visible in chosen LOD level
+
+ public static List<float> vbtraceTexPosNormalArray; // global vbTraceTex.bin positions/normals
+ public static List<float> vbtraceTexUVArray; // global vbTraceTex.bin UVs
+ public static float[] vbtraceTexUVArrayLOD; // global vbTraceTex.bin LOD UVs
+
+ public static List<Renderer> atlasOnlyObj;
+ public static List<Vector4> atlasOnlyScaleOffset;
+ public static List<int> atlasOnlySize;
+ public static List<int> atlasOnlyID;
+
+ public static ftGlobalStorage.AtlasPacker atlasPacker = ftGlobalStorage.AtlasPacker.xatlas;
+
+ public static bool forceAllAreaLightsSelfshadow = false;
+
+ public static bool postPacking = true;
+ public static bool holeFilling = false;
+
+ static int floatOverWarnCount = 0;
+ const int maxFloatOverWarn = 10;
+
+ static ftGlobalStorage gstorage;
+ static BakeryProjectSettings pstorage;
+
+ static public void DebugLogError(string text)
+ {
+ ftRenderLightmap.DebugLogError(text);
+ }
+
+ class FarSphereRenderData
+ {
+ public RenderTexture[] albedo, depth, normal;
+ public Matrix4x4[] viewProj;
+ public Vector3 pos;
+ public Mesh[] meshes;
+ public Texture2D[] textures;
+ }
+
+ static Shader farSphereRshader, farSphereRshaderOcc, farSphereSshader, farSphereProjClipShader, farSphereDilateShader;
+ static Material farSphereMat, farSphereMatOcc, farSphereProjClipMat, farSphereDilateMat;
+ static ComputeShader farSphereCSTransform, farSphereCSCull;
+
+ class AtlasNode
+ {
+ public AtlasNode child0, child1;
+ public Rect rc;
+ public GameObject obj;
+ bool leaf = true;
+
+ public AtlasNode Insert(GameObject o, Rect rect)
+ {
+ if (!leaf)
+ {
+ var newNode = child0.Insert(o, rect);
+ if (newNode != null) return newNode;
+
+ return child1.Insert(o, rect);
+ }
+ else
+ {
+ if (obj != null) return null;
+
+ var fits = (rect.width <= rc.width && rect.height <= rc.height);
+ if (!fits) return null;
+
+ var fitsExactly = (rect.width == rc.width && rect.height == rc.height);
+ if (fitsExactly)
+ {
+ obj = o;
+ return this;
+ }
+
+ child0 = new AtlasNode();
+ child1 = new AtlasNode();
+
+ var dw = rc.width - rect.width;
+ var dh = rc.height - rect.height;
+
+ if (dw > dh)
+ {
+ child0.rc = new Rect(rc.x, rc.y, rect.width, rc.height);
+ child1.rc = new Rect(rc.x + rect.width, rc.y, rc.width - rect.width, rc.height);
+ }
+ else
+ {
+ child0.rc = new Rect(rc.x, rc.y, rc.width, rect.height);
+ child1.rc = new Rect(rc.x, rc.y + rect.height, rc.width, rc.height - rect.height);
+ }
+ leaf = false;
+
+ return child0.Insert(o, rect);
+ }
+ }
+
+ public void GetMax(ref float maxx, ref float maxy)
+ {
+ if (obj != null)
+ {
+ if ((rc.x + rc.width) > maxx) maxx = rc.x + rc.width;
+ if ((rc.y + rc.height) > maxy) maxy = rc.y + rc.height;
+ }
+ if (child0 != null) child0.GetMax(ref maxx, ref maxy);
+ if (child1 != null) child1.GetMax(ref maxx, ref maxy);
+ }
+
+ public void Transform(float offsetx, float offsety, float scalex, float scaley)
+ {
+ rc.x *= scalex;
+ rc.y *= scaley;
+ rc.x += offsetx;
+ rc.y += offsety;
+ rc.width *= scalex;
+ rc.height *= scaley;
+ if (child0 != null) child0.Transform(offsetx, offsety, scalex, scaley);
+ if (child1 != null) child1.Transform(offsetx, offsety, scalex, scaley);
+ }
+ };
+
+ static ftBuildGraphics()
+ {
+ //ftRenderLightmap.PatchPath();
+ //var unityVer = Application.unityVersion.Split('.');
+ //unityVersionMajor = Int32.Parse(unityVer[0]);
+ //unityVersionMinor = Int32.Parse(unityVer[1]);
+ }
+
+ static void DebugLogInfo(string info)
+ {
+ if (pstorage == null) pstorage = ftLightmaps.GetProjectSettings();
+ if ((pstorage.logLevel & (int)BakeryProjectSettings.LogLevel.Info) != 0) Debug.Log(info);
+ }
+
+ static void DebugLogWarning(string info)
+ {
+ if (pstorage == null) pstorage = ftLightmaps.GetProjectSettings();
+ if ((pstorage.logLevel & (int)BakeryProjectSettings.LogLevel.Warning) != 0) Debug.LogWarning(info);
+ }
+
+ static void exportVBPos(BinaryWriter f, Transform t, Mesh m, Vector3[] vertices)
+ {
+ for(int i=0;i<vertices.Length;i++)
+ {
+ Vector3 pos = vertices[i];//t.(vertices[i]);
+ f.Write(pos.x);
+ f.Write(pos.y);
+ f.Write(pos.z);
+ }
+ }
+
+ static void exportVBTrace(BufferedBinaryWriterFloat f, Mesh m, Vector3[] vertices, Vector3[] normals)
+ {
+ for(int i=0;i<vertices.Length;i++)
+ {
+ Vector3 pos = vertices[i];//t.(vertices[i]);
+ f.Write(pos.x);
+ f.Write(pos.y);
+ f.Write(pos.z);
+
+ Vector3 normal = normals[i];//t.TransformDirection(normals[i]);
+ f.Write(normal.x);
+ f.Write(normal.y);
+ f.Write(normal.z);
+ }
+ }
+
+ public static Renderer GetValidRenderer(GameObject obj)
+ {
+ var mr = obj.GetComponent<Renderer>();
+ if (mr as MeshRenderer == null && mr as SkinnedMeshRenderer == null)
+ {
+ // possibly multiple renderers on one gameobject?
+ mr = obj.GetComponent<MeshRenderer>() as Renderer;
+ if (mr != null) return mr;
+ mr = obj.GetComponent<SkinnedMeshRenderer>() as Renderer;
+ if (mr != null) return mr;
+ return null;
+ }
+ return mr;
+ }
+
+ static BakeryLightmapGroup GetLMGroupFromObjectExplicit(GameObject obj, ExportSceneData data)
+ {
+ lmgroupHolder = null;
+ var lmgroupSelector = obj.GetComponent<BakeryLightmapGroupSelector>(); // if object has explicit lmgroup
+ if (lmgroupSelector == null)
+ {
+ // if parents have explicit lmgroup
+ var t2 = obj.transform.parent;
+ while(lmgroupSelector == null && t2 != null)
+ {
+ lmgroupSelector = t2.GetComponent<BakeryLightmapGroupSelector>();
+ t2 = t2.parent;
+ }
+ }
+ BakeryLightmapGroup lmgroup = null;
+ if (lmgroupSelector != null)
+ {
+ lmgroup = lmgroupSelector.lmgroupAsset as BakeryLightmapGroup;
+ lmgroupHolder = lmgroupSelector.gameObject;
+
+ //var so = new SerializedObject(obj.GetComponent<Renderer>());
+ //var scaleInLm = so.FindProperty("m_ScaleInLightmap").floatValue;
+ var scaleInLm = data.objToScaleInLm[obj];
+ if (scaleInLm == 0.0f) lmgroup = data.autoVertexGroup;
+ //null; // ignore lightmaps when scaleInLightmap == 0
+ }
+ return lmgroup;
+ }
+
+ static BakeryLightmapGroup GetLMGroupFromObject(GameObject obj, ExportSceneData data)
+ {
+ UnityEngine.Object lmgroupObj = null;
+ BakeryLightmapGroup lmgroup = null;
+ lmgroupHolder = null;
+
+ var lmgroupSelector = obj.GetComponent<BakeryLightmapGroupSelector>(); // if object has explicit lmgroup
+ tempStorage.implicitGroupMap.TryGetValue(obj, out lmgroupObj); // or implicit
+ lmgroup = (BakeryLightmapGroup)lmgroupObj;
+ lmgroupHolder = obj;
+ if (lmgroupSelector == null && lmgroup == null)
+ {
+ // if parents have explicit/implicit lmgroup
+ var t2 = obj.transform.parent;
+ while(lmgroupSelector == null && lmgroup == null && t2 != null)
+ {
+ lmgroupSelector = t2.GetComponent<BakeryLightmapGroupSelector>();
+ tempStorage.implicitGroupMap.TryGetValue(t2.gameObject, out lmgroupObj);
+ lmgroup = (BakeryLightmapGroup)lmgroupObj;
+ lmgroupHolder = t2.gameObject;
+ t2 = t2.parent;
+ }
+ }
+ if (lmgroupSelector != null)
+ {
+ lmgroup = lmgroupSelector.lmgroupAsset as BakeryLightmapGroup;
+ }
+
+ if (lmgroup != null)
+ {
+ var r = GetValidRenderer(obj);
+ if (r)
+ {
+ //var so = new SerializedObject(r);
+ //var scaleInLm = so.FindProperty("m_ScaleInLightmap").floatValue;
+ var scaleInLm = data.objToScaleInLm[obj];
+ if (scaleInLm == 0.0f) lmgroup = data.autoVertexGroup;
+ // null; // ignore lightmaps when scaleInLightmap == 0
+ }
+ }
+ else
+ {
+ lmgroupHolder = null;
+ }
+
+ return lmgroup;
+ }
+
+ // use by ftRenderLightmap
+ public static BakeryLightmapGroup GetLMGroupFromObject(GameObject obj)
+ {
+ UnityEngine.Object lmgroupObj = null;
+ BakeryLightmapGroup lmgroup = null;
+ lmgroupHolder = null;
+
+ var lmgroupSelector = obj.GetComponent<BakeryLightmapGroupSelector>(); // if object has explicit lmgroup
+ tempStorage.implicitGroupMap.TryGetValue(obj, out lmgroupObj); // or implicit
+ lmgroup = (BakeryLightmapGroup)lmgroupObj;
+ lmgroupHolder = obj;
+ if (lmgroupSelector == null && lmgroup == null)
+ {
+ // if parents have explicit/implicit lmgroup
+ var t2 = obj.transform.parent;
+ while(lmgroupSelector == null && lmgroup == null && t2 != null)
+ {
+ lmgroupSelector = t2.GetComponent<BakeryLightmapGroupSelector>();
+ tempStorage.implicitGroupMap.TryGetValue(t2.gameObject, out lmgroupObj);
+ lmgroup = (BakeryLightmapGroup)lmgroupObj;
+ lmgroupHolder = t2.gameObject;
+ t2 = t2.parent;
+ }
+ }
+ if (lmgroupSelector != null)
+ {
+ lmgroup = lmgroupSelector.lmgroupAsset as BakeryLightmapGroup;
+ }
+
+ if (lmgroup != null)
+ {
+ var r = GetValidRenderer(obj);
+ if (r)
+ {
+ var so = new SerializedObject(r);
+ var scaleInLm = so.FindProperty("m_ScaleInLightmap").floatValue;
+ //var scaleInLm = data.objToScaleInLm[obj];
+ if (scaleInLm == 0.0f) lmgroup = null;
+ // null; // ignore lightmaps when scaleInLightmap == 0
+ }
+ }
+ else
+ {
+ lmgroupHolder = null;
+ }
+
+ return lmgroup;
+ }
+
+ public static void exportVBTraceTexAttribs(List<float> arrPosNormal, List<float> arrUV,
+ Vector3[] vertices, Vector3[] normals, Vector2[] uv2, int lmid, bool vertexBake, GameObject obj)
+ {
+ for(int i=0;i<vertices.Length;i++)
+ {
+ Vector3 pos = vertices[i];//t.(vertices[i]);
+ arrPosNormal.Add(pos.x);
+ arrPosNormal.Add(pos.y);
+ arrPosNormal.Add(pos.z);
+
+ Vector3 normal = normals[i];//t.TransformDirection(normals[i]);
+ arrPosNormal.Add(normal.x);
+ arrPosNormal.Add(normal.y);
+ arrPosNormal.Add(normal.z);
+
+ float u = 0;
+ float v = 0;
+
+ if (lmid < 0)
+ {
+ //u = lmid * 10;
+ if (uv2.Length>0)
+ {
+ u = Mathf.Clamp(uv2[i].x, 0, 0.99999f);
+ v = Mathf.Clamp(1.0f - uv2[i].y, 0, 0.99999f);
+ }
+ }
+ else
+ {
+ if (uv2.Length>0 && !vertexBake)
+ {
+ u = Mathf.Clamp(uv2[i].x, 0, 0.99999f);
+ v = Mathf.Clamp(uv2[i].y, 0, 0.99999f);
+ }
+ else if (vertexBake)
+ {
+ u = uv2[i].x;
+ v = uv2[i].y - 1.0f;
+ }
+ }
+
+ float origU = u;
+ if (lmid >= 0)
+ {
+ u += lmid * 10;
+ if ((int)u > lmid*10)
+ {
+ // attempt fixing float overflow
+ u = (lmid*10+1) - (lmid*10+1)*0.0000002f;
+ if ((int)u > lmid*10)
+ {
+ if (floatOverWarnCount < maxFloatOverWarn)
+ {
+ Debug.LogError("Float overflow for " + obj.name + " (U: " + origU + ", LMID: " + lmid + ")");
+ floatOverWarnCount++;
+ }
+ }
+ }
+ }
+ else
+ {
+ u = lmid * 10 - u;
+ if ((int)u != lmid*10)
+ {
+ u = -u;
+ lmid = -lmid;
+ u = (lmid*10+1) - (lmid*10+1)*0.0000002f;
+ if ((int)u > lmid*10)
+ {
+ if (floatOverWarnCount < maxFloatOverWarn)
+ {
+ Debug.LogError("Float overflow for " + obj.name + " (U: " + origU + ", LMID: " + lmid + ")");
+ floatOverWarnCount++;
+ }
+ }
+ u = -u;
+ lmid = -lmid;
+ }
+ }
+
+ arrUV.Add(u);
+ arrUV.Add(v);
+ }
+ }
+
+ static void exportVBTraceUV0(BufferedBinaryWriterFloat f, Vector2[] uvs, int vertCount)
+ {
+ if (uvs.Length == 0)
+ {
+ for(int i=0;i<vertCount;i++)
+ {
+ f.Write(0.0f);
+ f.Write(0.0f);
+ }
+ }
+ else
+ {
+ for(int i=0;i<vertCount;i++)
+ {
+ f.Write(uvs[i].x);
+ f.Write(uvs[i].y);
+ }
+ }
+ }
+
+ static void exportVBBasic(BinaryWriter f, Transform t, Mesh m, Vector3[] vertices, Vector3[] normals, Vector2[] uv2)
+ {
+ for(int i=0;i<vertices.Length;i++)
+ {
+ Vector3 pos = vertices[i];//t.(vertices[i]);
+ f.Write(pos.x);
+ f.Write(pos.y);
+ f.Write(pos.z);
+
+ Vector3 normal = normals[i];//t.TransformDirection(normals[i]);
+ f.Write(normal.x);
+ f.Write(normal.y);
+ f.Write(normal.z);
+
+ if (uv2.Length>0)
+ {
+ f.Write(uv2[i].x);
+ f.Write(uv2[i].y);
+ }
+ else
+ {
+ f.Write(0.0f);
+ f.Write(0.0f);
+ }
+ }
+ }
+
+ // Either I'm dumb, or it's impossible to make generics work with it (only worked in .NET 3.5)
+ class BufferedBinaryWriterFloat
+ {
+ [StructLayout(LayoutKind.Explicit)]
+ public class ReinterpretBuffer
+ {
+ [FieldOffset(0)]
+ public byte[] bytes;
+ [FieldOffset(0)]
+ public float[] elements;
+ }
+
+ BinaryWriter f;
+ ReinterpretBuffer buffer;
+ int bufferPtr;
+ int bufferSize;
+ int elementSize;
+
+ public BufferedBinaryWriterFloat(BinaryWriter b, int elemSize = 4, int buffSizeInFloats = 1024*1024)
+ {
+ f = b;
+ buffer = new ReinterpretBuffer();
+ buffer.bytes = new byte[buffSizeInFloats * elemSize];
+ bufferPtr = 0;
+ bufferSize = buffSizeInFloats;
+ elementSize = elemSize;
+ }
+
+ void Flush()
+ {
+ if (bufferPtr == 0) return;
+ f.Write(buffer.bytes, 0, bufferPtr * elementSize);
+ bufferPtr = 0;
+ }
+
+ public void Write(float x)
+ {
+ buffer.elements[bufferPtr] = x;
+ bufferPtr++;
+ if (bufferPtr == bufferSize) Flush();
+ }
+
+ public void Close()
+ {
+ Flush();
+ f.Close();
+ }
+ }
+ class BufferedBinaryWriterInt
+ {
+ [StructLayout(LayoutKind.Explicit)]
+ public class ReinterpretBuffer
+ {
+ [FieldOffset(0)]
+ public byte[] bytes;
+ [FieldOffset(0)]
+ public int[] elements;
+ }
+
+ BinaryWriter f;
+ ReinterpretBuffer buffer;
+ int bufferPtr;
+ int bufferSize;
+ int elementSize;
+
+ public BufferedBinaryWriterInt(BinaryWriter b, int elemSize = 4, int buffSizeInFloats = 1024*1024)
+ {
+ f = b;
+ buffer = new ReinterpretBuffer();
+ buffer.bytes = new byte[buffSizeInFloats * elemSize];
+ bufferPtr = 0;
+ bufferSize = buffSizeInFloats;
+ elementSize = elemSize;
+ }
+
+ void Flush()
+ {
+ if (bufferPtr == 0) return;
+ f.Write(buffer.bytes, 0, bufferPtr * elementSize);
+ bufferPtr = 0;
+ }
+
+ public void Write(int x)
+ {
+ buffer.elements[bufferPtr] = x;
+ bufferPtr++;
+ if (bufferPtr == bufferSize) Flush();
+ }
+
+ public void Close()
+ {
+ Flush();
+ f.Close();
+ }
+ }
+
+ static void exportVBFull(BufferedBinaryWriterFloat f, Vector3[] vertices, Vector3[] normals, Vector4[] tangents, Vector2[] uv, Vector2[] uv2)
+ {
+ bool hasUV = uv.Length > 0;
+ bool hasUV2 = uv2.Length > 0;
+
+ for(int i=0;i<vertices.Length;i++)
+ {
+ Vector3 pos = vertices[i];//t.(vertices[i]);
+ f.Write(pos.x);
+ f.Write(pos.y);
+ f.Write(pos.z);
+
+ Vector3 normal = normals[i];//t.TransformDirection(normals[i]);
+ f.Write(normal.x);
+ f.Write(normal.y);
+ f.Write(normal.z);
+
+ if (tangents == null)
+ {
+ f.Write(0.0f);
+ f.Write(0.0f);
+ f.Write(0.0f);
+ f.Write(0.0f);
+ }
+ else
+ {
+ Vector4 tangent = tangents[i];
+ f.Write(tangent.x);
+ f.Write(tangent.y);
+ f.Write(tangent.z);
+ f.Write(tangent.w);
+ }
+
+ if (hasUV)
+ {
+ f.Write(uv[i].x);
+ f.Write(uv[i].y);
+ }
+ else
+ {
+ f.Write(0.0f);
+ f.Write(0.0f);
+ }
+
+ if (hasUV2)
+ {
+ f.Write(uv2[i].x);
+ f.Write(uv2[i].y);
+ }
+ else
+ {
+ f.Write(0.0f);
+ f.Write(0.0f);
+ }
+ }
+ }
+
+ static int exportIB(BufferedBinaryWriterInt f, int[] indices, bool isFlipped, bool is32Bit, int offset, BinaryWriter falphaid, ushort alphaID)
+ {
+ //var indices = m.GetTriangles(i);
+ for(int j=0;j<indices.Length;j+=3)
+ {
+ if (!isFlipped)
+ {
+ if (is32Bit)
+ {
+ f.Write(indices[j] + offset);
+ f.Write(indices[j+1] + offset);
+ f.Write(indices[j+2] + offset);
+ }
+ else
+ {
+ f.Write(indices[j]);
+ f.Write(indices[j+1]);
+ f.Write(indices[j+2]);
+ }
+ }
+ else
+ {
+ if (is32Bit)
+ {
+ f.Write(indices[j+2] + offset);
+ f.Write(indices[j+1] + offset);
+ f.Write(indices[j] + offset);
+ }
+ else
+ {
+ f.Write(indices[j+2]);
+ f.Write(indices[j+1]);
+ f.Write(indices[j]);
+ }
+ }
+
+ if (falphaid!=null) falphaid.Write(alphaID);
+ }
+ return indices.Length;
+ }
+
+ // returns mesh area if requested
+ static void exportIB32(List<int> indicesOpaque, List<int> indicesTransparent, List<int> indicesLMID,
+ int[] indices, bool isFlipped, int offset, int indexOffsetLMID, BinaryWriter falphaid,
+ ushort alphaID)
+ {
+ //var indices = m.GetTriangles(i);
+ var indicesOut = alphaID == 0xFFFF ? indicesOpaque : indicesTransparent;
+
+ int indexA, indexB, indexC;
+
+ for(int j=0;j<indices.Length;j+=3)
+ {
+ if (!isFlipped)
+ {
+ indexA = indices[j];
+ indexB = indices[j + 1];
+ indexC = indices[j + 2];
+ }
+ else
+ {
+ indexA = indices[j + 2];
+ indexB = indices[j + 1];
+ indexC = indices[j];
+ }
+
+ indicesOut.Add(indexA + offset);
+ indicesOut.Add(indexB + offset);
+ indicesOut.Add(indexC + offset);
+
+ if (indicesLMID != null)
+ {
+ indicesLMID.Add(indexA + indexOffsetLMID);
+ indicesLMID.Add(indexB + indexOffsetLMID);
+ indicesLMID.Add(indexC + indexOffsetLMID);
+ }
+
+ if (alphaID != 0xFFFF) falphaid.Write(alphaID);
+ }
+ }
+
+
+ static void exportSurfs(BinaryWriter f, int[][] indices, int subMeshCount)// Mesh m)
+ {
+ int offset = ioffset;
+ for(int i=0;i<subMeshCount;i++) {
+ int size = indices[i].Length;//m.GetTriangles(i).Length;
+ f.Write(offset);
+ f.Write(size);
+ offset += size;// * 2;
+ }
+ soffset += subMeshCount;
+ }
+
+ static void exportMesh(BinaryWriter f, Mesh m)
+ {
+ f.Write(voffset);
+ f.Write(soffset);
+ f.Write((ushort)m.subMeshCount);
+ f.Write((ushort)0);
+ }
+
+ static int exportLMID(BinaryWriter f, GameObject obj, BakeryLightmapGroup lmgroup)
+ {
+ var areaLight = obj.GetComponent<BakeryLightMesh>();
+ if (areaLight == null)
+ {
+ int index = temporaryAreaLightMeshList.IndexOf(obj);
+ if (index >= 0)
+ {
+ areaLight = temporaryAreaLightMeshList2[index];
+ }
+ }
+ if (areaLight != null)
+ {
+ f.Write(areaLightCounter);
+ areaLight.lmid = areaLightCounter;
+ areaLightCounter--;
+ return areaLightCounter;
+ }
+ else if (lmgroup != null)
+ {
+ f.Write(lmgroup.id);
+ return lmgroup.id;
+ }
+ else
+ {
+ f.Write(0xFFFFFFFF);
+ return -1;
+ }
+ }
+
+ static Vector2[] GenerateVertexBakeUVs(int voffset, int vlength, int totalVertexCount)
+ {
+ int atlasTexSize = (int)Mathf.Ceil(Mathf.Sqrt((float)totalVertexCount));
+ atlasTexSize = (int)Mathf.Ceil(atlasTexSize / (float)ftRenderLightmap.tileSize) * ftRenderLightmap.tileSize;
+ var uvs = new Vector2[vlength];
+ float mul = 1.0f / atlasTexSize;
+ float add = mul * 0.5f;
+ for(int i=0; i<vlength; i++)
+ {
+ int x = (i + voffset) % atlasTexSize;
+ int y = (i + voffset) / atlasTexSize;
+ uvs[i] = new Vector2(x * mul + add, y * mul + add);// - 1.0f);
+ }
+ return uvs;
+ }
+
+ public static Mesh GetSharedMesh(Renderer mr)
+ {
+ if (mr == null) return null;
+ var mrSkin = mr as SkinnedMeshRenderer;
+ var mf = mr.gameObject.GetComponent<MeshFilter>();
+ return mrSkin != null ? mrSkin.sharedMesh : (mf != null ? mf.sharedMesh : null);
+ }
+
+ public static Mesh GetSharedMeshBaked(GameObject obj)
+ {
+ var mrSkin = obj.GetComponent<SkinnedMeshRenderer>();
+ if (mrSkin != null)
+ {
+ var baked = new Mesh();
+ mrSkin.BakeMesh(baked);
+ return baked;
+ }
+ var mf = obj.GetComponent<MeshFilter>();
+ return (mf != null ? mf.sharedMesh : null);
+ }
+
+ public static Mesh GetSharedMesh(GameObject obj)
+ {
+ var mrSkin = obj.GetComponent<SkinnedMeshRenderer>();
+ var mf = obj.GetComponent<MeshFilter>();
+ return mrSkin != null ? mrSkin.sharedMesh : (mf != null ? mf.sharedMesh : null);
+ }
+
+ public static Mesh GetSharedMeshSkinned(GameObject obj, out bool isSkin)
+ {
+ var mrSkin = obj.GetComponent<SkinnedMeshRenderer>();
+ Mesh mesh;
+ if (mrSkin != null)
+ {
+ mesh = new Mesh();
+ mrSkin.BakeMesh(mesh);
+ isSkin = mrSkin.bones.Length > 0; // blendshape-only don't need scale?
+ }
+ else
+ {
+ isSkin = false;
+ var mf = obj.GetComponent<MeshFilter>();
+ if (mf == null) return null;
+ mesh = mf.sharedMesh;
+ }
+ return mesh;
+ }
+
+ static GameObject TestPackAsSingleSquare(GameObject holder)
+ {
+ var t = holder.transform;
+ var p = t.parent;
+ while(p != null)
+ {
+ if (p.GetComponent<BakeryPackAsSingleSquare>() != null) return p.gameObject;
+ p = p.parent;
+ }
+ return holder;
+ }
+
+ static bool ModelUVsOverlap(ModelImporter importer, ftGlobalStorage store)
+ {
+ if (importer.generateSecondaryUV) return true;
+
+ var path = importer.assetPath;
+ /*for(int i=0; i<storages.Length; i++)
+ {
+ var store = storages[i];
+ if (store == null) continue;
+ var index = store.assetList.IndexOf(path);
+ if (index < 0) continue;
+
+ if (store.uvOverlapAssetList[index] == 0)
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }*/
+ var index = store.assetList.IndexOf(path);
+ if (index >= 0 && index < store.uvOverlapAssetList.Count)
+ {
+ if (store.uvOverlapAssetList[index] == 0)
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ var newAsset = AssetDatabase.LoadAssetAtPath(path, typeof(GameObject)) as GameObject;
+ ftModelPostProcessor.CheckUVOverlap(newAsset, path);
+
+ /*for(int i=0; i<storages.Length; i++)
+ {
+ var store = storages[i];
+ var index = store.assetList.IndexOf(path);
+ if (index < 0) continue;
+
+ if (store.uvOverlapAssetList[index] == 0)
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }*/
+ index = store.assetList.IndexOf(path);
+ if (index >= 0)
+ {
+ if (store.uvOverlapAssetList[index] == 0)
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ return true;
+ }
+
+ static bool NeedsTangents(BakeryLightmapGroup lmgroup, bool tangentSHLights)
+ {
+ // RNM requires tangents
+ if (ftRenderLightmap.renderDirMode == ftRenderLightmap.RenderDirMode.RNM ||
+ (lmgroup!=null && lmgroup.renderDirMode == BakeryLightmapGroup.RenderDirMode.RNM)) return true;
+
+ // SH requires tangents only if there is a SH skylight
+ if (!tangentSHLights) return false;
+
+ if (ftRenderLightmap.renderDirMode == ftRenderLightmap.RenderDirMode.SH ||
+ (lmgroup!=null && lmgroup.renderDirMode == BakeryLightmapGroup.RenderDirMode.SH)) return true;
+
+ return false;
+ }
+
+ static long GetTime()
+ {
+ return System.DateTime.Now.Ticks / System.TimeSpan.TicksPerMillisecond;
+ }
+
+ static public string progressBarText;
+ static public float progressBarPercent = 0;
+ static public bool userCanceled = false;
+ //static IEnumerator progressFunc;
+ static EditorWindow activeWindow;
+ static void ProgressBarInit(string startText, EditorWindow window = null)
+ {
+ progressBarText = startText;
+ if (ftRenderLightmap.showProgressBar) ftRenderLightmap.simpleProgressBarShow("Bakery", progressBarText, progressBarPercent, 0, false);
+ }
+ static void ProgressBarShow(string text, float percent, bool onTop)
+ {
+ progressBarText = text;
+ progressBarPercent = percent;
+ if (ftRenderLightmap.showProgressBar) ftRenderLightmap.simpleProgressBarShow("Bakery", progressBarText, progressBarPercent, 0, onTop);
+ userCanceled = ftRenderLightmap.simpleProgressBarCancelled();
+ }
+
+ public static void FreeTemporaryAreaLightMeshes()
+ {
+ if (temporaryAreaLightMeshList != null)
+ {
+ for(int i=0; i<temporaryAreaLightMeshList.Count; i++)
+ {
+ if (temporaryAreaLightMeshList[i] != null)
+ {
+ //var mr = temporaryAreaLightMeshList[i].GetComponent<Renderer>();
+ //if (mr != null) DestroyImmediate(mr);
+ //var mf = temporaryAreaLightMeshList[i].GetComponent<MeshFilter>();
+ //if (mf != null) DestroyImmediate(mf);
+ DestroyImmediate(temporaryAreaLightMeshList[i]);
+ }
+ }
+ temporaryAreaLightMeshList = null;
+ }
+ }
+
+ public static void ProgressBarEnd(bool removeTempObjects)// bool isError = true)
+ {
+ if (removeTempObjects)
+ {
+ if (terrainObjectList != null)
+ {
+ for(int i=0; i<terrainObjectList.Count; i++)
+ {
+ if (terrainObjectList[i] != null) DestroyImmediate(terrainObjectList[i]);
+ }
+ terrainObjectList = null;
+ }
+
+ if (temporaryGameObjects != null)
+ {
+ for(int i=0; i<temporaryGameObjects.Count; i++)
+ {
+ if (temporaryGameObjects[i] != null) DestroyImmediate(temporaryGameObjects[i]);
+ }
+ temporaryGameObjects = null;
+ }
+
+ //if (isError)
+ {
+ FreeTemporaryAreaLightMeshes();
+ }
+ }
+
+ if (ftRenderLightmap.showProgressBar) ftRenderLightmap.simpleProgressBarEnd();
+ }
+ void OnInspectorUpdate()
+ {
+ Repaint();
+ }
+
+ static void CloseAllFiles()
+ {
+ if (fscene != null) fscene.Close();
+ if (fmesh != null) fmesh.Close();
+ if (flmid != null) flmid.Close();
+ if (fseamfix != null) fseamfix.Close();
+ if (fsurf != null) fsurf.Close();
+ if (fmatid != null) fmatid.Close();
+ if (fmatide != null) fmatide.Close();
+ if (fmatideb != null) fmatideb.Close();
+ if (fmatidh != null) fmatidh.Close();
+ if (falphaid != null) falphaid.Close();
+ if (fvbfull != null) fvbfull.Close();
+ if (fvbtrace != null) fvbtrace.Close();
+ if (fvbtraceTex != null) fvbtraceTex.Close();
+ if (fvbtraceUV0 != null) fvbtraceUV0.Close();
+ if (fib != null) fib.Close();
+ if (fib32 != null) fib32.Close();
+ if (fhmaps != null) fhmaps.Close();
+ if (fib32lod != null)
+ {
+ for(int i=0; i<fib32lod.Length; i++) fib32lod[i].Close();
+ }
+ if (falphaidlod != null)
+ {
+ for(int i=0; i<falphaidlod.Length; i++) falphaidlod[i].Close();
+ }
+ fvbfull = fvbtrace = fvbtraceTex = fvbtraceUV0 = null;
+ fib = null;
+ fscene = fmesh = flmid = fsurf = fmatid = fmatide = fmatideb = falphaid = fib32 = fseamfix = fmatidh = fhmaps = null;
+ fib32lod = falphaidlod = null;
+ }
+
+ static bool CheckUnwrapError()
+ {
+ if (ftModelPostProcessor.unwrapError)
+ {
+
+ DebugLogError("Unity failed unwrapping some models. See console for details. Last failed model: " + ftModelPostProcessor.lastUnwrapErrorAsset+"\nModel will now be reverted to original state.");
+
+ int mstoreIndex = gstorage.modifiedAssetPathList.IndexOf(ftModelPostProcessor.lastUnwrapErrorAsset);
+ if (mstoreIndex < 0)
+ {
+ Debug.LogError("Failed to find failed asset?");
+ }
+ else
+ {
+ gstorage.ClearAssetModifications(mstoreIndex);
+ }
+
+ ftModelPostProcessor.unwrapError = false;
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ return true;
+ }
+ return false;
+ }
+
+ static Mesh BuildAreaLightMesh(Light areaLight)
+ {
+ var mesh = new Mesh();
+
+ var verts = new Vector3[4];
+
+ Vector2 areaSize = ftLightMeshInspector.GetAreaLightSize(areaLight);
+
+ verts[0] = new Vector3(-0.5f * areaSize.x, -0.5f * areaSize.y, 0);
+ verts[1] = new Vector3(0.5f * areaSize.x, -0.5f * areaSize.y, 0);
+ verts[2] = new Vector3(0.5f * areaSize.x, 0.5f * areaSize.y, 0);
+ verts[3] = new Vector3(-0.5f * areaSize.x, 0.5f * areaSize.y, 0);
+
+ var uvs = new Vector2[4];
+ uvs[0] = new Vector2(0, 0);
+ uvs[1] = new Vector2(1, 0);
+ uvs[2] = new Vector2(1, 1);
+ uvs[3] = new Vector2(0, 1);
+
+ var indices = new int[6];
+
+ indices[0] = 0;
+ indices[1] = 1;
+ indices[2] = 2;
+
+ indices[3] = 0;
+ indices[4] = 2;
+ indices[5] = 3;
+
+ var normals = new Vector3[4];
+ var n = Vector3.forward;// -areaLight.transform.forward; // transformation will be applied later
+ for(int i=0; i<4; i++) normals[i] = n;
+
+ mesh.vertices = verts;
+ mesh.triangles = indices;
+ mesh.normals = normals;
+ mesh.uv = uvs;
+
+ return mesh;
+ }
+
+ static bool CheckForTangentSHLights()
+ {
+ var All2 = FindObjectsOfType(typeof(BakerySkyLight));
+ for(int i=0; i<All2.Length; i++)
+ {
+ var obj = All2[i] as BakerySkyLight;
+ if (!obj.enabled) continue;
+ if (!obj.gameObject.activeInHierarchy) continue;
+ if (obj.tangentSH)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public static void CreateSceneFolder()
+ {
+ if (scenePath == "" || !Directory.Exists(scenePath))
+ {
+ // Default scene path is TEMP/frender
+ var tempDir = System.Environment.GetEnvironmentVariable("TEMP", System.EnvironmentVariableTarget.Process);
+ scenePath = tempDir + "\\frender";
+ if (!Directory.Exists(scenePath)) Directory.CreateDirectory(scenePath);
+ }
+ }
+
+ static int CorrectLMGroupID(int id, BakeryLightmapGroup lmgroup, List<BakeryLightmapGroup> groupList)
+ {
+ id = id < 0 ? -1 : id;
+ if (lmgroup != null && lmgroup.parentName != null && lmgroup.parentName.Length > 0 && lmgroup.parentName != "|")
+ {
+ for(int g=0; g<groupList.Count; g++)
+ {
+ if (groupList[g].name == lmgroup.parentName)
+ {
+ id = g;
+ break;
+ }
+ }
+ }
+ return id;
+ }
+
+ static void InitSceneStorage(ExportSceneData data)
+ {
+ var storages = data.storages;
+ var sceneToID = data.sceneToID;
+
+ bool first = true;
+ for(int i=0; i<storages.Length; i++)
+ {
+ var scene = SceneManager.GetSceneAt(i);
+ if (!scene.isLoaded) continue;
+ var gg = ftLightmaps.FindInScene("!ftraceLightmaps", scene);
+
+ if (gg == null)
+ {
+ gg = new GameObject();
+ SceneManager.MoveGameObjectToScene(gg, scene);
+ gg.name = "!ftraceLightmaps";
+ gg.hideFlags = HideFlags.HideInHierarchy;
+ }
+
+ storages[i] = gg.GetComponent<ftLightmapsStorage>();
+ if (storages[i] == null)
+ {
+ storages[i] = gg.AddComponent<ftLightmapsStorage>();
+ }
+
+ if (modifyLightmapStorage)
+ {
+ /*
+ storages[i].bakedRenderers = new List<Renderer>();
+ storages[i].bakedIDs = new List<int>();
+ storages[i].bakedScaleOffset = new List<Vector4>();
+ storages[i].bakedVertexOffset = new List<int>();
+ storages[i].bakedVertexColorMesh = new List<Mesh>();
+ storages[i].bakedRenderersTerrain = new List<Terrain>();
+ storages[i].bakedIDsTerrain = new List<int>();
+ storages[i].bakedScaleOffsetTerrain = new List<Vector4>();
+ */
+ storages[i].hasEmissive = new List<bool>();
+ storages[i].lmGroupLODResFlags = null;
+ storages[i].lmGroupMinLOD = null;
+ storages[i].lmGroupLODMatrix = null;
+ storages[i].nonBakedRenderers = new List<Renderer>();
+ }
+ if (first)
+ {
+ data.firstNonNullStorage = i;
+ first = false;
+ }
+ storages[i].implicitGroups = new List<UnityEngine.Object>();
+ storages[i].implicitGroupedObjects = new List<GameObject>();
+ sceneToID[scene] = i;
+ }
+
+ //var go = GameObject.Find("!ftraceLightmaps");
+ //data.settingsStorage = go.GetComponent<ftLightmapsStorage>();
+ }
+
+ static void InitSceneStorage2(ExportSceneData data)
+ {
+ var storages = data.storages;
+ for(int i=0; i<storages.Length; i++)
+ {
+ var scene = SceneManager.GetSceneAt(i);
+ if (!scene.isLoaded) continue;
+ if (modifyLightmapStorage)
+ {
+ storages[i].bakedRenderers = new List<Renderer>();
+ storages[i].bakedIDs = new List<int>();
+ storages[i].bakedScaleOffset = new List<Vector4>();
+ storages[i].bakedVertexOffset = new List<int>();
+ storages[i].bakedVertexColorMesh = new List<Mesh>();
+ storages[i].bakedRenderersTerrain = new List<Terrain>();
+ storages[i].bakedIDsTerrain = new List<int>();
+ storages[i].bakedScaleOffsetTerrain = new List<Vector4>();
+ }
+ }
+ }
+
+ // Used to pass maps to alphaBufferGen/frender via RAM (non-DX11)
+ public static TexInput InputDataFromTex(Texture tex, TexInputType ttype = TexInputType.Color)
+ {
+ RenderTextureFormat rtFormat = RenderTextureFormat.ARGB32;
+ TextureFormat texFormat = TextureFormat.RGBA32;
+ if (ttype == TexInputType.FloatColor)
+ {
+ rtFormat = RenderTextureFormat.ARGBFloat;
+ texFormat = TextureFormat.RGBAFloat;
+ }
+ else if (ttype == TexInputType.HalfColor)
+ {
+ rtFormat = RenderTextureFormat.ARGBHalf;
+ texFormat = TextureFormat.RGBAHalf;
+ }
+ var rt = new RenderTexture(tex.width, tex.height, 0, rtFormat);
+ var readableTex = new Texture2D(tex.width, tex.height, texFormat, false);
+ Graphics.Blit(tex, rt);
+ Graphics.SetRenderTarget(rt);
+ readableTex.ReadPixels(new Rect(0,0,tex.width,tex.height), 0, 0, false);
+ readableTex.Apply();
+ var bytes = readableTex.GetRawTextureData();
+
+ var a = new TexInput();
+ a.data = bytes;
+ a.width = (ushort)tex.width;
+ a.height = (ushort)tex.height;
+
+ DestroyImmediate(readableTex);
+ rt.Release();
+
+ return a;
+ }
+
+ public static byte[] InputBytesFromTex(Texture tex, TexInputType ttype = TexInputType.Color)
+ {
+ RenderTextureFormat rtFormat = RenderTextureFormat.ARGB32;
+ TextureFormat texFormat = TextureFormat.RGBA32;
+ byte[] header = ftDDS.ddsHeaderRGBA8;
+ if (ttype == TexInputType.FloatColor)
+ {
+ rtFormat = RenderTextureFormat.ARGBFloat;
+ texFormat = TextureFormat.RGBAFloat;
+ header = ftDDS.ddsHeaderFloat4;
+ }
+ else if (ttype == TexInputType.HalfColor)
+ {
+ rtFormat = RenderTextureFormat.ARGBHalf;
+ texFormat = TextureFormat.RGBAHalf;
+ header = ftDDS.ddsHeaderHalf4;
+ }
+ var rt = new RenderTexture(tex.width, tex.height, 0, rtFormat);
+ var readableTex = new Texture2D(tex.width, tex.height, texFormat, false);
+ Graphics.Blit(tex, rt);
+ Graphics.SetRenderTarget(rt);
+ readableTex.ReadPixels(new Rect(0,0,tex.width,tex.height), 0, 0, false);
+ readableTex.Apply();
+ var bytes = readableTex.GetRawTextureData();
+
+ var fbytes = new byte[128 + bytes.Length];
+ System.Buffer.BlockCopy(header, 0, fbytes, 0, 128);
+ System.Buffer.BlockCopy(BitConverter.GetBytes(tex.height), 0, fbytes, 12, 4);
+ System.Buffer.BlockCopy(BitConverter.GetBytes(tex.width), 0, fbytes, 16, 4);
+ System.Buffer.BlockCopy(bytes, 0, fbytes, 128, bytes.Length);
+
+ DestroyImmediate(readableTex);
+ rt.Release();
+
+ return fbytes;
+ }
+
+ public static TexInput InputDataFromCubemap(Texture tex, Matrix4x4 mtx, bool isLinear, bool isDoubleLDR, TexInputType ttype = TexInputType.Color)
+ {
+ RenderTextureFormat rtFormat = RenderTextureFormat.ARGB32;
+ TextureFormat texFormat = TextureFormat.RGBA32;
+ if (ttype == TexInputType.FloatColor)
+ {
+ rtFormat = RenderTextureFormat.ARGBFloat;
+ texFormat = TextureFormat.RGBAFloat;
+ }
+ else if (ttype == TexInputType.HalfColor)
+ {
+ rtFormat = RenderTextureFormat.ARGBHalf;
+ texFormat = TextureFormat.RGBAHalf;
+ }
+
+ int outWidth = System.Math.Min(tex.width, 512);
+ int outHeight = System.Math.Min(tex.height, 512);
+
+ var rt = new RenderTexture(outWidth, outHeight * 6, 0, rtFormat);
+ var readableTex = new Texture2D(outWidth, outHeight * 6, texFormat, false);
+
+ if (matCubemapToStripExport == null) matCubemapToStripExport = new Material(Shader.Find("Hidden/ftCubemap2StripExport"));
+ matCubemapToStripExport.SetMatrix("transform", mtx);
+ matCubemapToStripExport.SetVector("isLinear_isDoubleLDR", new Vector4(isLinear ? 1 : 0, isDoubleLDR ? 1 : 0, 0, 0));
+
+ Graphics.Blit(tex, rt, matCubemapToStripExport);
+ Graphics.SetRenderTarget(rt);
+ readableTex.ReadPixels(new Rect(0,0,outWidth, outHeight * 6), 0, 0, false);
+ readableTex.Apply();
+ var bytes = readableTex.GetRawTextureData();
+
+ var a = new TexInput();
+ a.data = bytes;
+ a.width = (ushort)outWidth;
+ a.height = (ushort)(outHeight * 6);
+
+ DestroyImmediate(readableTex);
+ rt.Release();
+
+ return a;
+ }
+
+ static IEnumerator CreateLightProbeLMGroup(ExportSceneData data)
+ {
+ var storages = data.storages;
+ var sceneToID = data.sceneToID;
+ var lmBounds = data.lmBounds;
+ var groupList = data.groupList;
+
+ var probes = LightmapSettings.lightProbes;
+ if (probes == null)
+ {
+ DebugLogError("No probes in LightingDataAsset");
+ yield break;
+ }
+ var positions = probes.positions;
+
+ int atlasTexSize = (int)Mathf.Ceil(Mathf.Sqrt((float)probes.count));
+ atlasTexSize = (int)Mathf.Ceil(atlasTexSize / (float)ftRenderLightmap.tileSize) * ftRenderLightmap.tileSize;
+ var uvpos = new float[atlasTexSize * atlasTexSize * 4];
+ var uvnormal = new byte[atlasTexSize * atlasTexSize * 4];
+
+ for(int i=0; i<probes.count; i++)
+ {
+ int x = i % atlasTexSize;
+ int y = i / atlasTexSize;
+ int index = y * atlasTexSize + x;
+ uvpos[index * 4] = positions[i].x;
+ uvpos[index * 4 + 1] = positions[i].y;
+ uvpos[index * 4 + 2] = positions[i].z;
+ uvpos[index * 4 + 3] = 1.0f;
+ uvnormal[index * 4 + 1] = 255;
+ uvnormal[index * 4 + 3] = 255;
+ }
+
+ var posFile = new byte[128 + uvpos.Length * 4];
+ System.Buffer.BlockCopy(ftDDS.ddsHeaderFloat4, 0, posFile, 0, 128);
+ System.Buffer.BlockCopy(BitConverter.GetBytes(atlasTexSize), 0, posFile, 12, 4);
+ System.Buffer.BlockCopy(BitConverter.GetBytes(atlasTexSize), 0, posFile, 16, 4);
+ System.Buffer.BlockCopy(uvpos, 0, posFile, 128, uvpos.Length * 4);
+ SaveGBufferMapFromRAM(posFile, posFile.Length, scenePath + "/uvpos_probes" + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"), ftRenderLightmap.compressedGBuffer);
+ //GL.IssuePluginEvent(8);
+ //yield return null;
+
+ var posNormal = new byte[128 + uvnormal.Length];
+ System.Buffer.BlockCopy(ftDDS.ddsHeaderRGBA8, 0, posNormal, 0, 128);
+ System.Buffer.BlockCopy(BitConverter.GetBytes(atlasTexSize), 0, posNormal, 12, 4);
+ System.Buffer.BlockCopy(BitConverter.GetBytes(atlasTexSize), 0, posNormal, 16, 4);
+ System.Buffer.BlockCopy(uvnormal, 0, posNormal, 128, uvnormal.Length);
+ SaveGBufferMapFromRAM(posNormal, posNormal.Length, scenePath + "/uvnormal_probes" + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"), ftRenderLightmap.compressedGBuffer);
+ //GL.IssuePluginEvent(8);
+ //yield return null;
+
+ lightProbeLMGroup = ScriptableObject.CreateInstance<BakeryLightmapGroup>();
+ lightProbeLMGroup.name = "probes";
+ lightProbeLMGroup.probes = true;
+ lightProbeLMGroup.isImplicit = true;
+ lightProbeLMGroup.resolution = 256;
+ lightProbeLMGroup.bitmask = 1;
+ lightProbeLMGroup.mode = BakeryLightmapGroup.ftLMGroupMode.Vertex;
+ lightProbeLMGroup.id = data.lmid;
+ lightProbeLMGroup.totalVertexCount = probes.count;
+ lightProbeLMGroup.vertexCounter = 0;
+ lightProbeLMGroup.renderDirMode = BakeryLightmapGroup.RenderDirMode.ProbeSH;
+ lightProbeLMGroup.renderMode = (ftRenderLightmap.instance.userRenderMode == ftRenderLightmap.RenderMode.Subtractive && ftRenderLightmap.useUnityForOcclsusionProbes) ? BakeryLightmapGroup.RenderMode.Indirect : BakeryLightmapGroup.RenderMode.Auto;
+ groupList.Add(lightProbeLMGroup);
+ lmBounds.Add(new Bounds(new Vector3(0,0,0), new Vector3(10000,10000,10000)));
+ data.lmid++;
+
+ storages[sceneToID[EditorSceneManager.GetActiveScene()]].implicitGroups.Add(lightProbeLMGroup);
+ storages[sceneToID[EditorSceneManager.GetActiveScene()]].implicitGroupedObjects.Add(null);
+ }
+
+ static IEnumerator CreateVolumeLMGroup(ExportSceneData data)
+ {
+ ftRenderLightmap.hasAnyVolumes = false;
+
+ var vols = ftRenderLightmap.FindBakeableVolumes();
+ if (vols.Length == 0) yield break;
+
+ ftRenderLightmap.hasAnyVolumes = true;
+
+ var storages = data.storages;
+ var sceneToID = data.sceneToID;
+ var lmBounds = data.lmBounds;
+ var groupList = data.groupList;
+
+ int numTotalProbes = 0;
+ for(int v=0; v<vols.Length; v++)
+ {
+ numTotalProbes += ftRenderLightmap.VolumeDimension(vols[v].resolutionX) * ftRenderLightmap.VolumeDimension(vols[v].resolutionY) * ftRenderLightmap.VolumeDimension(vols[v].resolutionZ);
+ }
+
+ var positions = new Vector3[numTotalProbes];
+ int i = 0;
+ Vector3 halfVoxelSize = Vector3.one;
+ for(int v=0; v<vols.Length; v++)
+ {
+ var vol = vols[v];
+ int rx = ftRenderLightmap.VolumeDimension(vol.resolutionX);
+ int ry = ftRenderLightmap.VolumeDimension(vol.resolutionY);
+ int rz = ftRenderLightmap.VolumeDimension(vol.resolutionZ);
+ var bmin = vol.bounds.min;
+ var bmax = vol.bounds.max;
+ halfVoxelSize = bmax - bmin;
+ halfVoxelSize = new Vector3(halfVoxelSize.x/rx, halfVoxelSize.y/ry, halfVoxelSize.z/rz) * 0.5f;
+ float lx, ly, lz;
+ for(int z=0; z<rz; z++)
+ {
+ lz = Mathf.Lerp(bmin.z, bmax.z, z/(float)rz) + halfVoxelSize.z;
+ for(int y=0; y<ry; y++)
+ {
+ ly = Mathf.Lerp(bmin.y, bmax.y, y/(float)ry) + halfVoxelSize.y;
+ for(int x=0; x<rx; x++)
+ {
+ lx = Mathf.Lerp(bmin.x, bmax.x, x/(float)rx) + halfVoxelSize.x;
+ positions[i] = new Vector3(lx, ly, lz);
+ i++;
+ }
+ }
+ }
+ }
+
+ int atlasTexSize = (int)Mathf.Ceil(Mathf.Sqrt((float)numTotalProbes));
+ atlasTexSize = (int)Mathf.Ceil(atlasTexSize / (float)ftRenderLightmap.tileSize) * ftRenderLightmap.tileSize;
+ var uvpos = new float[atlasTexSize * atlasTexSize * 4];
+ var uvnormal = new byte[atlasTexSize * atlasTexSize * 4];
+
+ for(i=0; i<numTotalProbes; i++)
+ {
+ int x = i % atlasTexSize;
+ int y = i / atlasTexSize;
+ int index = y * atlasTexSize + x;
+ uvpos[index * 4] = positions[i].x;
+ uvpos[index * 4 + 1] = positions[i].y;
+ uvpos[index * 4 + 2] = positions[i].z;
+ uvpos[index * 4 + 3] = 1.0f;
+ uvnormal[index * 4 + 1] = 255;
+ uvnormal[index * 4 + 3] = 255;
+ }
+
+ var posFile = new byte[128 + uvpos.Length * 4];
+ System.Buffer.BlockCopy(ftDDS.ddsHeaderFloat4, 0, posFile, 0, 128);
+ System.Buffer.BlockCopy(BitConverter.GetBytes(atlasTexSize), 0, posFile, 12, 4);
+ System.Buffer.BlockCopy(BitConverter.GetBytes(atlasTexSize), 0, posFile, 16, 4);
+ System.Buffer.BlockCopy(uvpos, 0, posFile, 128, uvpos.Length * 4);
+ SaveGBufferMapFromRAM(posFile, posFile.Length, scenePath + "/uvpos_volumes" + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"), ftRenderLightmap.compressedGBuffer);
+ //GL.IssuePluginEvent(8);
+ //yield return null;
+
+ var posNormal = new byte[128 + uvnormal.Length];
+ System.Buffer.BlockCopy(ftDDS.ddsHeaderRGBA8, 0, posNormal, 0, 128);
+ System.Buffer.BlockCopy(BitConverter.GetBytes(atlasTexSize), 0, posNormal, 12, 4);
+ System.Buffer.BlockCopy(BitConverter.GetBytes(atlasTexSize), 0, posNormal, 16, 4);
+ System.Buffer.BlockCopy(uvnormal, 0, posNormal, 128, uvnormal.Length);
+ SaveGBufferMapFromRAM(posNormal, posNormal.Length, scenePath + "/uvnormal_volumes" + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"), ftRenderLightmap.compressedGBuffer);
+ //GL.IssuePluginEvent(8);
+ //yield return null;
+
+ volumeLMGroup = ScriptableObject.CreateInstance<BakeryLightmapGroup>();
+ volumeLMGroup.name = "volumes";
+ volumeLMGroup.probes = true;
+ volumeLMGroup.fixPos3D = true;
+ volumeLMGroup.voxelSize = halfVoxelSize * 2; // incorrect... should be different for every probe
+ volumeLMGroup.isImplicit = true;
+ volumeLMGroup.resolution = 256;
+ volumeLMGroup.bitmask = 1;
+ volumeLMGroup.mode = BakeryLightmapGroup.ftLMGroupMode.Vertex;
+ volumeLMGroup.id = data.lmid;
+ volumeLMGroup.totalVertexCount = numTotalProbes;
+ volumeLMGroup.vertexCounter = 0;
+ volumeLMGroup.renderMode = (BakeryLightmapGroup.RenderMode)pstorage.volumeRenderMode;
+ volumeLMGroup.renderDirMode = BakeryLightmapGroup.RenderDirMode.ProbeSH;
+ groupList.Add(volumeLMGroup);
+ lmBounds.Add(new Bounds(new Vector3(0,0,0), new Vector3(10000,10000,10000)));
+ data.lmid++;
+
+ storages[sceneToID[EditorSceneManager.GetActiveScene()]].implicitGroups.Add(volumeLMGroup);
+ storages[sceneToID[EditorSceneManager.GetActiveScene()]].implicitGroupedObjects.Add(null);
+ }
+
+ static void CollectExplicitLMGroups(ExportSceneData data)
+ {
+ var groupList = data.groupList;
+ var lmBounds = data.lmBounds;
+
+ // Find explicit LMGroups
+ // (Also init lmBounds and LMID)
+ var groupSelectors = new List<BakeryLightmapGroupSelector>(FindObjectsOfType(typeof(BakeryLightmapGroupSelector)) as BakeryLightmapGroupSelector[]);
+ for(int i=0; i<groupSelectors.Count; i++)
+ {
+ var lmgroup = groupSelectors[i].lmgroupAsset as BakeryLightmapGroup;
+ if (lmgroup == null) continue;
+ if (!groupList.Contains(lmgroup))
+ {
+ lmgroup.id = data.lmid;
+ lmgroup.sceneLodLevel = -1;
+ lmgroup.sceneName = "";
+ groupList.Add(lmgroup);
+ lmBounds.Add(new Bounds(new Vector3(0,0,0), new Vector3(0,0,0)));
+ data.lmid++;
+ }
+ EditorUtility.SetDirty(lmgroup);
+ }
+ }
+
+ static bool CheckForMultipleSceneStorages(GameObject obj, ExportSceneData data)
+ {
+ var sceneHasStorage = data.sceneHasStorage;
+
+ // Check for storage count in each scene
+ if (obj.name == "!ftraceLightmaps")
+ {
+ if (!sceneHasStorage.ContainsKey(obj.scene))
+ {
+ sceneHasStorage[obj.scene] = true;
+ }
+ else
+ {
+ return ExportSceneValidationMessage("Scene " + obj.scene.name + " has multiple lightmap storage objects. This is not currently supported. Make sure you don't bake a scene with already baked prefabs.");
+ }
+ }
+ return true;
+ }
+
+ static void ConvertTerrain(GameObject obj)
+ {
+ var terr = obj.GetComponent<Terrain>();
+ if (terr == null) return;
+ if (!terr.enabled) return;
+
+ if (!obj.activeInHierarchy) return;
+ if ((obj.hideFlags & (HideFlags.DontSave|HideFlags.HideAndDontSave)) != 0) return; // skip temp objects
+ if (obj.tag == "EditorOnly") return; // skip temp objects
+ if ((GameObjectUtility.GetStaticEditorFlags(obj) & StaticEditorFlags.LightmapStatic) == 0) return; // skip dynamic
+
+ var so = new SerializedObject(terr);
+ var scaleInLmTerr = so.FindProperty("m_ScaleInLightmap").floatValue;
+
+ var terrParent = new GameObject();
+ SceneManager.MoveGameObjectToScene(terrParent, obj.scene);
+ terrParent.transform.parent = obj.transform;//.parent;
+ var expGroup = obj.GetComponent<BakeryLightmapGroupSelector>();
+ if (expGroup != null)
+ {
+ var expGroup2 = terrParent.AddComponent<BakeryLightmapGroupSelector>();
+ expGroup2.lmgroupAsset = expGroup.lmgroupAsset;
+ expGroup2.instanceResolutionOverride = expGroup.instanceResolutionOverride;
+ expGroup2.instanceResolution = expGroup.instanceResolution;
+ }
+ terrParent.name = "__ExportTerrainParent";
+ terrainObjectList.Add(terrParent);
+ terrainObjectToActual.Add(terr);
+
+ var tdata = terr.terrainData;
+ int res = tdata.heightmapResolution;
+ var heightmap = tdata.GetHeights(0, 0, res, res);
+ var uvscale = new Vector2(1,1) / (res-1);
+ var uvoffset = new Vector2(0,0);
+ var gposOffset = obj.transform.position;
+ float scaleX = tdata.size.x / (res-1);
+ float scaleY = tdata.size.y;
+ float scaleZ = tdata.size.z / (res-1);
+
+ int patchRes = res;
+ while(patchRes > 254) patchRes = 254;//patchRes /= 2;
+ int numVerts = patchRes * patchRes;
+ int numPatches = (int)Mathf.Ceil(res / (float)patchRes);
+
+ // Gen terrain texture
+ var oldMat = terr.materialTemplate;
+ var oldMatType = terr.materialType;
+ var oldPos = obj.transform.position;
+#if UNITY_2018_3_OR_NEWER
+ var oldInstanced = terr.drawInstanced;
+#endif
+ var unlitTerrainMat = new Material(Shader.Find("Hidden/ftUnlitTerrain"));
+ //unlitTerrainMat = AssetDatabase.LoadAssetAtPath("Assets/Bakery/ftUnlitTerrain.mat", typeof(Material)) as Material;
+ terr.materialTemplate = unlitTerrainMat;
+ terr.materialType = Terrain.MaterialType.Custom;
+#if UNITY_2018_3_OR_NEWER
+ terr.drawInstanced = false;
+#endif
+ obj.transform.position = new Vector3(-10000, -10000, -10000); // let's hope it's not the worst idea
+ var tempCamGO = new GameObject();
+ tempCamGO.transform.parent = obj.transform;
+ tempCamGO.transform.localPosition = new Vector3(tdata.size.x * 0.5f, scaleY + 1, tdata.size.z * 0.5f);
+ tempCamGO.transform.eulerAngles = new Vector3(90,0,0);
+ var tempCam = tempCamGO.AddComponent<Camera>();
+ tempCam.orthographic = true;
+ tempCam.orthographicSize = Mathf.Max(tdata.size.x, tdata.size.z) * 0.5f;
+ tempCam.aspect = Mathf.Max(tdata.size.x, tdata.size.z) / Mathf.Min(tdata.size.x, tdata.size.z);
+ tempCam.enabled = false;
+ tempCam.clearFlags = CameraClearFlags.SolidColor;
+ tempCam.backgroundColor = new Color(0,0,0,0);
+ tempCam.targetTexture =
+ new RenderTexture(tdata.baseMapResolution, tdata.baseMapResolution, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.sRGB);
+ var tex = new Texture2D(tdata.baseMapResolution, tdata.baseMapResolution, TextureFormat.ARGB32, true, false);
+ RenderTexture.active = tempCam.targetTexture;
+ tempCam.Render();
+ terr.materialTemplate = oldMat;
+ terr.materialType = oldMatType;
+#if UNITY_2018_3_OR_NEWER
+ terr.drawInstanced = oldInstanced;
+#endif
+ obj.transform.position = oldPos;
+ RenderTexture.active = tempCam.targetTexture;
+ tex.ReadPixels(new Rect(0,0,tdata.baseMapResolution, tdata.baseMapResolution), 0, 0, true);
+ tex.Apply();
+ unlitTerrainMat.mainTexture = tex;
+ Graphics.SetRenderTarget(null);
+ DestroyImmediate(tempCamGO);
+
+ bool isDX11 = SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11;
+
+ if (exportTerrainAsHeightmap)
+ {
+ var hmap = new BinaryWriter(File.Open(scenePath + "/height" + terrainObjectToHeightMap.Count + ".dds", FileMode.Create));
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add("height" + terrainObjectToHeightMap.Count + ".dds");
+
+ hmap.Write(ftDDS.ddsHeaderR32F);
+ var bytes = new byte[res * res * 4];
+
+ // Normalize heights
+ float maxHeight = 0;
+ float height;
+ for(int y=0; y<res; y++)
+ {
+ for(int x=0; x<res; x++)
+ {
+ height = heightmap[x,y];
+ if (height > maxHeight) maxHeight = height;
+ }
+ }
+ maxHeight = Mathf.Max(maxHeight, 0.0001f);
+ float invMaxHeight = 1.0f / maxHeight;
+ for(int y=0; y<res; y++)
+ {
+ for(int x=0; x<res; x++)
+ {
+ heightmap[x,y] *= invMaxHeight;
+ }
+ }
+ float aabbHeight = maxHeight * scaleY;
+
+ // First mip is the real heightmap
+ System.Buffer.BlockCopy(heightmap, 0, bytes, 0, bytes.Length);
+ hmap.Write(bytes);
+
+ if (isDX11)
+ {
+ var htex = new Texture2D(res, res, TextureFormat.RFloat, false, true);
+ htex.LoadRawTextureData(bytes);
+ htex.Apply();
+ terrainObjectToHeightMap.Add(htex);
+ }
+ else
+ {
+ var a = new TexInput();
+ a.data = bytes;
+ a.width = (ushort)res;
+ a.height = a.width;
+ terrainObjectToHeightMapRAM.Add(a);
+ terrainObjectToHeightMap.Add(null);
+ }
+
+ // min
+ terrainObjectToBounds.Add(obj.transform.position.x);
+ terrainObjectToBounds.Add(obj.transform.position.y);
+ terrainObjectToBounds.Add(obj.transform.position.z);
+ // max
+ terrainObjectToBounds.Add(obj.transform.position.x + tdata.size.x);
+ terrainObjectToBounds.Add(obj.transform.position.y + aabbHeight);
+ terrainObjectToBounds.Add(obj.transform.position.z + tdata.size.z);
+
+ // filled later
+ terrainObjectToLMID.Add(0);
+ terrainObjectToBoundsUV.Add(0);
+ terrainObjectToBoundsUV.Add(0);
+ terrainObjectToBoundsUV.Add(0);
+ terrainObjectToBoundsUV.Add(0);
+
+ terrainObjectToFlags.Add(terr.castShadows ? 1 : 0);
+
+ // Second mip is max() of 3x3 corners
+ float[] floats = null;
+ float[] floatsPrev = null;
+ float[] floatsTmp;
+ int mipCount = 1;
+ int mipRes = res / 2;
+ //int prevRes = res;
+ float h00, h10, h01, h11;
+ /*Vector3 n00, n10, n01, n11;
+ Vector3[] normals = null;
+ Vector3[] normalsPrev = null;
+
+ var origNormals = new Vector3[res * res];
+ for(int y=0; y<res; y++)
+ {
+ for(int x=0; x<res; x++)
+ {
+ origNormals[y*res+x] = data.GetInterpolatedNormal(x / (float)res, y / (float)res);
+ }
+ }*/
+ int terrIndex = terrainObjectToHeightMap.Count - 1;//terrainObjectToNormalMip0.Count;
+ //terrainObjectToNormalMip0.Add(origNormals);
+ //normalsPrev = origNormals;
+ terrainObjectToHeightMips.Add(new List<float[]>());
+ //terrainObjectToNormalMips.Add(new List<Vector3[]>());
+
+ if (mipRes > 0)
+ {
+ floats = new float[mipRes * mipRes];
+ //normals = new Vector3[mipRes * mipRes];
+ for(int y=0; y<mipRes; y++)
+ {
+ for(int x=0; x<mipRes; x++)
+ {
+ /*h00 = heightmap[y*2,x*2];
+ h10 = heightmap[y*2,x*2+1];
+ h01 = heightmap[y*2+1,x*2];
+ h11 = heightmap[y*2+1,x*2+1];
+ height = h00 > h10 ? h00 : h10;
+ height = height > h01 ? height : h01;
+ height = height > h11 ? height : h11;
+ floats[y*mipRes+x] = height;*/
+
+ float maxVal = 0;
+ for(int yy=0; yy<3; yy++)
+ {
+ for(int xx=0; xx<3; xx++)
+ {
+ float val = heightmap[y*2+yy, x*2+xx];
+ if (val > maxVal) maxVal = val;
+ }
+ }
+ floats[y*mipRes+x] = maxVal;
+
+ //n00 = normalsPrev[y*2 * res + x*2];
+ //n10 = normalsPrev[y*2 * res + x*2+1];
+ //n01 = normalsPrev[(y*2+1) * res + x*2];
+ //n11 = normalsPrev[(y*2+1) * res + x*2+1];
+ //normals[y*mipRes+x] = (n00 + n10 + n01 + n11);
+ }
+ }
+
+ System.Buffer.BlockCopy(floats, 0, bytes, 0, mipRes*mipRes*4);
+ hmap.Write(bytes, 0, mipRes*mipRes*4);
+
+ float[] storedMip = new float[mipRes*mipRes];
+ System.Buffer.BlockCopy(floats, 0, storedMip, 0, mipRes*mipRes*4);
+ terrainObjectToHeightMips[terrIndex].Add(storedMip);
+ //terrainObjectToNormalMips[terrIndex].Add(normals);
+
+ mipCount++;
+ mipRes /= 2;
+ }
+
+ // Next mips are regular max() of 4 texels
+ while(mipRes > 1)
+ {
+ if (floatsPrev == null)
+ {
+ floatsPrev = floats;
+ floats = new float[mipRes * mipRes];
+ }
+
+ //normalsPrev = normals;
+ //normals = new Vector3[mipRes * mipRes];
+
+ for(int y=0; y<mipRes; y++)
+ {
+ for(int x=0; x<mipRes; x++)
+ {
+ h00 = floatsPrev[y*2 * mipRes*2 + x*2];
+ h10 = floatsPrev[y*2 * mipRes*2 + x*2+1];
+ h01 = floatsPrev[(y*2+1) * mipRes*2 + x*2];
+ h11 = floatsPrev[(y*2+1) * mipRes*2 + x*2+1];
+ height = h00 > h10 ? h00 : h10;
+ height = height > h01 ? height : h01;
+ height = height > h11 ? height : h11;
+ floats[y*mipRes+x] = height;
+
+ //n00 = normalsPrev[y*2 * mipRes*2 + x*2];
+ //n10 = normalsPrev[y*2 * mipRes*2 + x*2+1];
+ //n01 = normalsPrev[(y*2+1) * mipRes*2 + x*2];
+ //n11 = normalsPrev[(y*2+1) * mipRes*2 + x*2+1];
+ //normals[y*mipRes+x] = (n00 + n10 + n01 + n11);
+ }
+ }
+
+ System.Buffer.BlockCopy(floats, 0, bytes, 0, mipRes*mipRes*4);
+ hmap.Write(bytes, 0, mipRes*mipRes*4);
+
+ float[] storedMip = new float[mipRes*mipRes];
+ System.Buffer.BlockCopy(floats, 0, storedMip, 0, mipRes*mipRes*4);
+ terrainObjectToHeightMips[terrIndex].Add(storedMip);
+ //terrainObjectToNormalMips[terrIndex].Add(normals);
+
+ mipCount++;
+ mipRes /= 2;
+
+ floatsTmp = floatsPrev;
+ floatsPrev = floats;
+ floats = floatsTmp;
+ }
+
+ hmap.BaseStream.Seek(12, SeekOrigin.Begin);
+ hmap.Write(res);
+ hmap.Write(res);
+ hmap.BaseStream.Seek(28, SeekOrigin.Begin);
+ hmap.Write(mipCount);
+ hmap.Close();
+
+ // Create dummy plane for packing/albedo/emissive purposes
+ var mesh = new Mesh();
+ mesh.vertices = new Vector3[] { gposOffset,
+ gposOffset + new Vector3(tdata.size.x, 0, 0),
+ gposOffset + new Vector3(tdata.size.x, 0, tdata.size.z),
+ gposOffset + new Vector3(0, 0, tdata.size.z) };
+ mesh.triangles = new int[]{0,1,2, 2,3,0};
+ mesh.normals = new Vector3[]{Vector3.up, Vector3.up, Vector3.up, Vector3.up};
+ mesh.uv = new Vector2[]{new Vector2(0,0), new Vector2(1,0), new Vector2(1,1), new Vector2(0,1)};
+ mesh.uv2 = mesh.uv;
+
+ var terrGO = new GameObject();
+ terrGO.name = "__ExportTerrain";
+ GameObjectUtility.SetStaticEditorFlags(terrGO, StaticEditorFlags.LightmapStatic);
+ terrGO.transform.parent = terrParent.transform;
+ var mf = terrGO.AddComponent<MeshFilter>();
+ var mr = terrGO.AddComponent<MeshRenderer>();
+ mf.sharedMesh = mesh;
+#if UNITY_2019_3_OR_NEWER
+ // using standard materialTemplates in 2019.3 doesn't work
+ mr.sharedMaterial = unlitTerrainMat;
+#else
+ mr.sharedMaterial = (terr.materialTemplate == null) ? unlitTerrainMat : terr.materialTemplate;
+#endif
+
+ terrGO.transform.position = obj.transform.position;
+
+ var so2 = new SerializedObject(mr);
+ so2.FindProperty("m_ScaleInLightmap").floatValue = scaleInLmTerr;
+ so2.ApplyModifiedProperties();
+
+ //terrainObjectList.Add(terrGO);
+ //terrainObjectToActual.Add(terr);
+ }
+ else
+ {
+ for (int patchX=0; patchX<numPatches; patchX++)
+ {
+ for (int patchY=0; patchY<numPatches; patchY++)
+ {
+ int patchResX = patchX < numPatches-1 ? patchRes : (res - patchRes*(numPatches-1));
+ int patchResY = patchY < numPatches-1 ? patchRes : (res - patchRes*(numPatches-1));
+ if (patchX < numPatches-1) patchResX += 1;
+ if (patchY < numPatches-1) patchResY += 1;
+ numVerts = patchResX * patchResY;
+ var posOffset = gposOffset + new Vector3(patchX*patchRes*scaleX, 0, patchY*patchRes*scaleZ);
+
+ var positions = new Vector3[numVerts];
+ var uvs = new Vector2[numVerts];
+ var normals = new Vector3[numVerts];
+ var indices = new int[(patchResX-1) * (patchResY-1) * 2 * 3];
+ int vertOffset = 0;
+ int indexOffset = 0;
+
+ for (int x=0;x<patchResX;x++)
+ {
+ for (int y=0;y<patchResY;y++)
+ {
+ int gx = x + patchX * patchRes;
+ int gy = y + patchY * patchRes;
+
+ int index = x * patchResY + y;
+ float height = heightmap[gy,gx];
+
+ positions[index] = new Vector3(x * scaleX, height * scaleY, y * scaleZ) + posOffset;
+ uvs[index] = new Vector2(gx * uvscale.x + uvoffset.x, gy * uvscale.y + uvoffset.y);
+
+ normals[index] = tdata.GetInterpolatedNormal(gx / (float)res, gy / (float)res);
+
+ if (x < patchResX-1 && y < patchResY-1)
+ {
+ indices[indexOffset] = vertOffset + patchResY + 1;
+ indices[indexOffset + 1] = vertOffset + patchResY;
+ indices[indexOffset + 2] = vertOffset;
+
+ indices[indexOffset + 3] = vertOffset + 1;
+ indices[indexOffset + 4] = vertOffset + patchResY + 1;
+ indices[indexOffset + 5] = vertOffset;
+
+ indexOffset += 6;
+ }
+
+ vertOffset++;
+ }
+ }
+
+ var mesh = new Mesh();
+ mesh.vertices = positions;
+ mesh.triangles = indices;
+ mesh.normals = normals;
+ mesh.uv = uvs;
+ mesh.uv2 = uvs;
+
+ var terrGO = new GameObject();
+ terrGO.name = "__ExportTerrain";
+ GameObjectUtility.SetStaticEditorFlags(terrGO, StaticEditorFlags.LightmapStatic);
+ terrGO.transform.parent = terrParent.transform;
+ var mf = terrGO.AddComponent<MeshFilter>();
+ var mr = terrGO.AddComponent<MeshRenderer>();
+ mf.sharedMesh = mesh;
+#if UNITY_2019_3_OR_NEWER
+ // using standard materialTemplates in 2019.3 doesn't work
+ mr.sharedMaterial = unlitTerrainMat;
+#else
+ mr.sharedMaterial = (terr.materialTemplate == null) ? unlitTerrainMat : terr.materialTemplate;
+#endif
+
+ var so2 = new SerializedObject(mr);
+ so2.FindProperty("m_ScaleInLightmap").floatValue = scaleInLmTerr;
+ so2.ApplyModifiedProperties();
+
+ mr.shadowCastingMode = terr.castShadows ? UnityEngine.Rendering.ShadowCastingMode.On : UnityEngine.Rendering.ShadowCastingMode.Off;
+
+ terrainObjectList.Add(terrGO);
+ terrainObjectToActual.Add(terr);
+ }
+ }
+ }
+
+ if (exportTerrainTrees && terr.drawTreesAndFoliage)
+ {
+ var trees = tdata.treeInstances;
+ for (int t = 0; t < trees.Length; t++)
+ {
+ Vector3 pos = Vector3.Scale(trees[t].position, tdata.size) + obj.transform.position;
+
+ var treeProt = tdata.treePrototypes[trees[t].prototypeIndex];
+ var prefab = treeProt.prefab;
+
+ var newObj = GameObject.Instantiate(prefab, pos, Quaternion.AngleAxis(trees[t].rotation, Vector3.up)) as GameObject;
+ newObj.name = "__Export" + newObj.name;
+ temporaryGameObjects.Add(newObj);
+
+ var lodGroup = newObj.GetComponent<LODGroup>();
+ if (lodGroup == null)
+ {
+ var renderers = newObj.GetComponentsInChildren<Renderer>();
+ for(int r=0; r<renderers.Length; r++)
+ {
+ GameObjectUtility.SetStaticEditorFlags(renderers[r].gameObject, StaticEditorFlags.LightmapStatic);
+ var s = new SerializedObject(renderers[r]);
+ s.FindProperty("m_ScaleInLightmap").floatValue = 0;
+ s.ApplyModifiedProperties();
+ }
+ }
+ else
+ {
+ var lods = lodGroup.GetLODs();
+ for (int tl = 0; tl < lods.Length; tl++)
+ {
+ for (int h = 0; h < lods[tl].renderers.Length; h++)
+ {
+ GameObjectUtility.SetStaticEditorFlags(lods[tl].renderers[h].gameObject, tl==0 ? StaticEditorFlags.LightmapStatic : 0);
+ if (tl == 0)
+ {
+ var s = new SerializedObject(lods[tl].renderers[h]);
+ s.FindProperty("m_ScaleInLightmap").floatValue = 0;
+ s.ApplyModifiedProperties();
+ }
+ }
+ }
+ }
+
+ var xform = newObj.transform;
+ xform.localScale = new Vector3(trees[t].widthScale, trees[t].heightScale, trees[t].widthScale);
+ }
+ }
+ }
+
+ static bool ConvertUnityAreaLight(GameObject obj)
+ {
+ // Add temporary meshes to area lights
+ var areaLightMesh = obj.GetComponent<BakeryLightMesh>();
+ if (areaLightMesh != null)
+ {
+ var areaLight = obj.GetComponent<Light>();
+ var mr = GetValidRenderer(obj);
+ var mf = obj.GetComponent<MeshFilter>();
+
+ if (!forceAllAreaLightsSelfshadow)
+ {
+ if (!areaLightMesh.selfShadow) return true; // no selfshadow - ignore mesh export
+ }
+ if (areaLight != null && ftLightMeshInspector.IsArea(areaLight) && (mr == null || mf == null))
+ {
+ var areaObj = new GameObject();
+ mf = areaObj.AddComponent<MeshFilter>();
+ mf.sharedMesh = BuildAreaLightMesh(areaLight);
+ mr = areaObj.AddComponent<MeshRenderer>();
+
+ var props = new MaterialPropertyBlock();
+ props.SetColor("_Color", areaLightMesh.color);
+ props.SetFloat("intensity", areaLightMesh.intensity);
+ if (areaLightMesh.texture != null) props.SetTexture("_MainTex", areaLightMesh.texture);
+ mr.SetPropertyBlock(props);
+ GameObjectUtility.SetStaticEditorFlags(areaObj, StaticEditorFlags.LightmapStatic);
+ temporaryAreaLightMeshList.Add(areaObj);
+ temporaryAreaLightMeshList2.Add(areaLightMesh);
+
+ var xformSrc = obj.transform;
+ var xformDest = areaObj.transform;
+ xformDest.position = xformSrc.position;
+ xformDest.rotation = xformSrc.rotation;
+ var srcMtx = xformSrc.localToWorldMatrix;
+ xformDest.localScale = new Vector3(srcMtx.GetColumn(0).magnitude, srcMtx.GetColumn(1).magnitude, srcMtx.GetColumn(2).magnitude);
+
+ return true; // mesh created
+ }
+ }
+ return false; // not Light Mesh
+ }
+
+ static void MapObjectsToSceneLODs(ExportSceneData data, UnityEngine.Object[] objects)
+ {
+ var objToLodLevel = data.objToLodLevel;
+ var objToLodLevelVisible = data.objToLodLevelVisible;
+ lodLevelsVisibleInLodLevel = new Dictionary<int, List<int>>();
+
+ const int maxSceneLodLevels = 100;
+ var sceneLodUsed = new int[maxSceneLodLevels];
+ for(int i=0; i<maxSceneLodLevels; i++) sceneLodUsed[i] = -1;
+ var lodGroups = Resources.FindObjectsOfTypeAll(typeof(LODGroup));
+ var lodLevelsInLodGroup = new List<int>[lodGroups.Length];
+ var localLodLevelsInLodGroup = new List<int>[lodGroups.Length];
+ int lcounter = -1;
+ foreach(LODGroup lodgroup in lodGroups)
+ {
+ lcounter++;
+ if (!lodgroup.enabled) continue;
+ var obj = lodgroup.gameObject;
+ if (obj == null) continue;
+ if (!obj.activeInHierarchy) continue;
+ var path = AssetDatabase.GetAssetPath(obj);
+ if (path != "") continue; // must belond to scene
+ if ((obj.hideFlags & (HideFlags.DontSave|HideFlags.HideAndDontSave)) != 0) continue; // skip temp objects
+ if (obj.tag == "EditorOnly") continue; // skip temp objects
+
+ var lods = lodgroup.GetLODs();
+ if (lods.Length == 0) continue;
+
+ for(int i=0; i<lods.Length; i++)
+ {
+ var lodRenderers = lods[i].renderers;
+ if (lodRenderers.Length == 0) continue;
+
+ bool lightmappedLOD = false;
+ for(int j=0; j<lodRenderers.Length; j++)
+ {
+ var r = lodRenderers[j];
+ if (r == null) continue;
+ if (!r.enabled) continue;
+ if (!r.gameObject.activeInHierarchy) continue;
+ if ((r.gameObject.hideFlags & (HideFlags.DontSave|HideFlags.HideAndDontSave)) != 0) continue; // skip temp objects
+ if (r.gameObject.tag == "EditorOnly") continue; // skip temp objects
+ if ((GameObjectUtility.GetStaticEditorFlags(r.gameObject) & StaticEditorFlags.LightmapStatic) == 0) continue; // skip dynamic
+ var mr = GetValidRenderer(r.gameObject);
+ var sharedMesh = GetSharedMesh(mr);
+ if (mr == null || sharedMesh == null) continue; // must have visible mesh
+ var mrEnabled = mr.enabled || r.gameObject.GetComponent<BakeryAlwaysRender>() != null;
+ if (!mrEnabled) continue;
+ //if (mf.sharedMesh == null) continue;
+
+ var so = new SerializedObject(mr);
+ var scaleInLm = so.FindProperty("m_ScaleInLightmap").floatValue; // (before FilterObjects)
+ if (scaleInLm == 0) continue;
+
+ lightmappedLOD = true;
+ break;
+ }
+ if (!lightmappedLOD) continue;
+
+ var lodDist = i == 0 ? 0 : (int)Mathf.Clamp((1.0f-lods[i-1].screenRelativeTransitionHeight) * (maxSceneLodLevels-1), 0, maxSceneLodLevels-1);
+ if (sceneLodUsed[lodDist] < 0)
+ {
+ sceneLodUsed[lodDist] = sceneLodsUsed;
+ sceneLodsUsed++;
+ }
+ int newLodLevel = sceneLodUsed[lodDist];
+
+ if (lodLevelsInLodGroup[lcounter] == null)
+ {
+ lodLevelsInLodGroup[lcounter] = new List<int>();
+ localLodLevelsInLodGroup[lcounter] = new List<int>();
+ }
+ if (lodLevelsInLodGroup[lcounter].IndexOf(newLodLevel) < 0)
+ {
+ lodLevelsInLodGroup[lcounter].Add(newLodLevel);
+ localLodLevelsInLodGroup[lcounter].Add(i);
+ }
+
+ for(int j=0; j<lodRenderers.Length; j++)
+ {
+ var r = lodRenderers[j];
+ if (r == null) continue;
+ int existingLodLevel = -1;
+ if (objToLodLevel.ContainsKey(r.gameObject)) existingLodLevel = objToLodLevel[r.gameObject];
+ if (existingLodLevel < newLodLevel)
+ {
+ objToLodLevel[r.gameObject] = existingLodLevel < 0 ? newLodLevel : existingLodLevel; // set to lowest LOD
+
+ // Collect LOD levels where this object is visible
+ List<int> visList;
+ if (!objToLodLevelVisible.TryGetValue(r.gameObject, out visList)) objToLodLevelVisible[r.gameObject] = visList = new List<int>();
+ visList.Add(newLodLevel);
+ }
+ }
+ }
+ }
+
+ // Sort scene LOD levels
+ int counter = 0;
+ var unsortedLodToSortedLod = new int[maxSceneLodLevels];
+ for(int i=0; i<maxSceneLodLevels; i++)
+ {
+ int unsorted = sceneLodUsed[i];
+ if (unsorted >= 0)
+ {
+ unsortedLodToSortedLod[unsorted] = counter;
+ sceneLodUsed[i] = counter;
+ counter++;
+ }
+ }
+ var keys = new GameObject[objToLodLevel.Count];
+ counter = 0;
+ foreach(var pair in objToLodLevel)
+ {
+ keys[counter] = pair.Key;
+ counter++;
+ }
+ foreach(var key in keys)
+ {
+ int unsorted = objToLodLevel[key];
+ objToLodLevel[key] = unsortedLodToSortedLod[unsorted];
+ var visList = objToLodLevelVisible[key];
+ for(int j=0; j<visList.Count; j++)
+ {
+ visList[j] = unsortedLodToSortedLod[visList[j]];
+ }
+ }
+ for(int i=0; i<lodLevelsInLodGroup.Length; i++)
+ {
+ if (lodLevelsInLodGroup[i] == null) continue;
+ var levels = lodLevelsInLodGroup[i];
+ for(int j=0; j<levels.Count; j++)
+ {
+ levels[j] = unsortedLodToSortedLod[levels[j]];
+ }
+ }
+
+ // Fill LOD gaps
+ for(int i=0; i<lodLevelsInLodGroup.Length; i++)
+ {
+ if (lodLevelsInLodGroup[i] == null) continue;
+ var levels = lodLevelsInLodGroup[i];
+ var localLevels = localLodLevelsInLodGroup[i];
+ var lgroup = lodGroups[i] as LODGroup;
+ var lods = lgroup.GetLODs();
+ for(int j=0; j<levels.Count; j++)
+ {
+ int level = levels[j];
+ int localLevel = localLevels[j];
+ int nextLevel = (j == levels.Count-1) ? (sceneLodsUsed-1) : levels[j+1];
+ if (nextLevel - level > 1)
+ {
+ var lodRenderers = lods[localLevel].renderers;
+ for(int k=0; k<lodRenderers.Length; k++)
+ {
+ var r = lodRenderers[k];
+ if (r == null) continue;
+
+ var visList = objToLodLevelVisible[r.gameObject];
+ for(int l=level+1; l<nextLevel; l++)
+ {
+ visList.Add(l);
+ }
+ }
+ }
+ }
+ }
+
+ // Compute which LOD levels are visible in other LOD levels
+ foreach(var objToVisible in objToLodLevelVisible)
+ {
+ var obj = objToVisible.Key;
+ var objAffects = objToVisible.Value;
+ if (objAffects == null) continue;
+
+ int objOwnLOD = -1;
+ if (!objToLodLevel.TryGetValue(obj, out objOwnLOD)) continue;
+ if (objOwnLOD < 0) continue;
+
+ for(int i=0; i<objAffects.Count; i++)
+ {
+ int affectedLOD = objAffects[i];
+
+ List<int> visList;
+ if (!lodLevelsVisibleInLodLevel.TryGetValue(affectedLOD, out visList)) lodLevelsVisibleInLodLevel[affectedLOD] = visList = new List<int>();
+ if (visList.IndexOf(objOwnLOD) < 0) visList.Add(objOwnLOD);
+ }
+ }
+ /*foreach(var pair in lodLevelsVisibleInLodLevel)
+ {
+ string str = "LOD " + pair.Key + " sees: ";
+ for(int i=0; i<pair.Value.Count; i++)
+ {
+ str += pair.Value[i] + ", ";
+ }
+ Debug.LogError(str);
+ }*/
+
+ DebugLogInfo("Scene LOD levels: " + sceneLodsUsed);
+
+ // Init scene LOD index buffers
+ data.indicesOpaqueLOD = new List<int>[sceneLodsUsed];
+ data.indicesTransparentLOD = new List<int>[sceneLodsUsed];
+ for(int i=0; i<sceneLodsUsed; i++)
+ {
+ data.indicesOpaqueLOD[i] = new List<int>();
+ data.indicesTransparentLOD[i] = new List<int>();
+ }
+
+ // Sort objects by scene-wide LOD level
+ if (sceneLodsUsed > 0)
+ {
+ Array.Sort(objects, delegate(UnityEngine.Object a, UnityEngine.Object b)
+ {
+ if (a == null || b == null) return 0;
+ int lodLevelA = -1;
+ int lodLevelB = -1;
+ if (!objToLodLevel.TryGetValue((GameObject)a, out lodLevelA)) lodLevelA = -1;
+ if (!objToLodLevel.TryGetValue((GameObject)b, out lodLevelB)) lodLevelB = -1;
+ return lodLevelA.CompareTo(lodLevelB);
+ });
+ }
+ }
+
+ public static int IsInsideSector(Transform tform, Transform sectorTform, Bounds b, BakerySector s)
+ {
+ var parent = tform;
+ while(parent != null)
+ {
+ if (parent == sectorTform) return 1; // belongs to this sector
+ parent = parent.parent;
+ }
+
+ return 0; // far
+ }
+
+ static bool ClipFarSphere(FarSphereRenderData clipee, FarSphereRenderData clipper)
+ {
+ if (farSphereProjClipShader == null)
+ {
+ farSphereProjClipShader = Shader.Find("Hidden/ftFarSphereProjClip");
+ if (farSphereProjClipShader == null)
+ {
+ Debug.LogError("Can't find ftFarSphereProjClip shader");
+ return false;
+ }
+ }
+
+ if (farSphereProjClipMat == null)
+ {
+ farSphereProjClipMat = new Material(farSphereProjClipShader);
+ }
+
+ // Project clipper depth to clipee
+ // If projected pixel is on screen and is closer to the projector
+ // draw empty pixel
+ // else
+ // discard
+ var cmd = new CommandBuffer();
+ Shader.SetGlobalFloat("_InvCubeSize", 1.0f / ftAdditionalConfig.sectorFarSphereResolution);
+ for(int i=0; i<6; i++)
+ {
+ Shader.SetGlobalTexture("_CurDepth", clipee.depth[i]);
+ Shader.SetGlobalMatrix("_CurInvViewProj", Matrix4x4.Inverse(clipee.viewProj[i]));
+ Shader.SetGlobalVector("_CurPos", clipee.pos);
+ Shader.SetGlobalTexture("_CurNormal", clipee.normal[i]);
+
+ for(int j=0; j<6; j++)
+ {
+ Shader.SetGlobalTexture("_ProjDepth", clipper.depth[j]);
+ Shader.SetGlobalMatrix("_ProjViewProj", clipper.viewProj[j]);
+ Shader.SetGlobalVector("_ProjPos", clipper.pos);
+
+ //Graphics.Blit(null, clipee.albedo[i], farSphereProjClipMat); // can flip
+
+ cmd.Clear();
+ cmd.SetRenderTarget(new RenderTargetIdentifier(clipee.albedo[i]), 0, CubemapFace.Unknown, 0);
+ cmd.DrawProcedural(Matrix4x4.identity, farSphereProjClipMat, 0, MeshTopology.Triangles, 6, 1, null);
+ Graphics.ExecuteCommandBuffer(cmd);
+ }
+ }
+
+ return true;
+ }
+
+ static FarSphereRenderData GenerateFarSphereData(ExportSceneData data, Vector3 capturePoint, int objCount, bool genProjMatrix)
+ {
+ // Constants
+ const int cubeRes = ftAdditionalConfig.sectorFarSphereResolution;
+
+ var rot = new Vector3[6];
+ rot[0] = new Vector3(0, -90, 0);
+ rot[1] = new Vector3(0, 90, 0);
+ rot[2] = new Vector3(90, 0, 0);
+ rot[3] = new Vector3(-90, 0, 0);
+ rot[4] = new Vector3(0, 180, 180);
+ rot[5] = new Vector3(0, 0, 180);
+
+ var wnormal = new Vector3[6];
+ wnormal[0] = -Vector3.right;
+ wnormal[1] = Vector3.right;
+ wnormal[2] = -Vector3.up;
+ wnormal[3] = Vector3.up;
+ wnormal[4] = -Vector3.forward;
+ wnormal[5] = Vector3.forward;
+
+ var objsToWrite = data.objsToWrite;
+ //var sector = ftRenderLightmap.curSector;
+
+ // Load shaders
+ if (farSphereRshader == null)
+ {
+ farSphereRshader = Shader.Find("Hidden/ftFarSphereRender");
+ if (farSphereRshader == null)
+ {
+ Debug.LogError("Can't find ftFarSphereRender shader");
+ return null;
+ }
+ }
+
+ if (farSphereRshaderOcc == null)
+ {
+ farSphereRshaderOcc = Shader.Find("Hidden/ftFarSphereRenderOccluder");
+ if (farSphereRshaderOcc == null)
+ {
+ Debug.LogError("Can't find ftFarSphereRenderOccluder shader");
+ return null;
+ }
+ }
+
+ if (farSphereMatOcc == null)
+ {
+ farSphereMatOcc = new Material(farSphereRshaderOcc);
+ }
+
+ // Create RTs
+ FarSphereRenderData outData = new FarSphereRenderData();
+ outData.albedo = new RenderTexture[6];
+ outData.depth = new RenderTexture[6];
+ outData.normal = new RenderTexture[6];
+ outData.viewProj = new Matrix4x4[6];
+ outData.pos = capturePoint;
+ for(int i=0; i<6; i++)
+ {
+ outData.albedo[i] = new RenderTexture(cubeRes, cubeRes, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.sRGB);
+ outData.albedo[i].wrapMode = TextureWrapMode.Clamp;
+ outData.albedo[i].Create();
+ outData.depth[i] = new RenderTexture(cubeRes, cubeRes, 32, RenderTextureFormat.Depth, RenderTextureReadWrite.Linear);
+ outData.depth[i].filterMode = FilterMode.Point;
+ outData.depth[i].wrapMode = TextureWrapMode.Clamp;
+ outData.depth[i].Create();
+ outData.normal[i] = new RenderTexture(cubeRes, cubeRes, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear);
+ outData.normal[i].filterMode = FilterMode.Point;
+ outData.normal[i].wrapMode = TextureWrapMode.Clamp;
+ outData.normal[i].Create();
+ }
+
+ bool useCamera = true;
+ List<Renderer> outsideRenderers = null;
+//#if UNITY_2019_1_OR_NEWER
+// if (GraphicsSettings.renderPipelineAsset != null)
+// {
+ useCamera = false;
+ outsideRenderers = data.outsideRenderers;
+ if (farSphereMat == null)
+ {
+ farSphereMat = new Material(farSphereRshader);
+ }
+// }
+//#endif
+
+ GameObject tempCamGO = null;
+ Camera tempCam = null;
+ Transform camTform = null;
+ Matrix4x4 uProj;
+ if (useCamera)
+ {
+ // Create temp camera
+ tempCamGO = new GameObject();
+ tempCamGO.name = "BakerySectorFarCamera";
+ camTform = tempCamGO.transform;
+ camTform.localPosition = capturePoint;// sectorCenter;
+ tempCam = tempCamGO.AddComponent<Camera>();
+ tempCam.orthographic = false;
+ tempCam.aspect = 1.0f;
+ tempCam.fieldOfView = 90.0f;
+ tempCam.enabled = false;
+ tempCam.clearFlags = CameraClearFlags.Nothing;
+ tempCam.backgroundColor = new Color(0,0,0,0);
+ tempCam.SetReplacementShader(farSphereRshader, "RenderType");
+ tempCam.nearClipPlane = 0.1f;
+ tempCam.farClipPlane = 1000.0f;
+ tempCam.renderingPath = RenderingPath.Forward;
+
+ uProj = tempCam.projectionMatrix;
+ }
+ else
+ {
+ uProj = Matrix4x4.Perspective(90, 1, 0.1f, 1000.0f);
+ }
+
+ var proj = GL.GetGPUProjectionMatrix(uProj, true);
+
+ /*// Set culling matrices for the render (cull things inside the sector + near distance)
+ if (sector.tforms.Count == 0)
+ {
+ Shader.SetGlobalFloat("cullMatricesCount", 0);
+ }
+ else
+ {
+ var cullMatrices = new Matrix4x4[sector.tforms.Count];
+ for(int i=0; i<sector.tforms.Count; i++)
+ {
+ cullMatrices[i] = Matrix4x4.TRS(sector.tforms[i].position, sector.tforms[i].rotation, sector.tforms[i].localScale).inverse;// + Vector3.one * sector.nearDistance).inverse;//sector.tforms[i].worldToLocalMatrix;
+ //cullMatrices[i] = sector.tforms[i].worldToLocalMatrix;
+ }
+ Shader.SetGlobalMatrixArray("cullMatrices", cullMatrices);
+ Shader.SetGlobalFloat("cullMatricesCount", cullMatrices.Length);
+ }*/
+
+ // Iterate over cube faces
+ for(int i=0; i<6; i++)
+ {
+ // Render cube face
+
+ // Render far objects
+ var mrt = new RenderBuffer[2];
+ mrt[0] = outData.albedo[i].colorBuffer;
+ mrt[1] = outData.normal[i].colorBuffer;
+ Graphics.SetRenderTarget(mrt, outData.depth[i].depthBuffer);
+ GL.Clear(true, true, new Color(0,0,0, 1.0f / 255.0f)); // 0 is reserverd for projClip
+
+ // Get view matrix for this cube face
+ Matrix4x4 v;
+ if (useCamera)
+ {
+ camTform.localEulerAngles = rot[i];
+ v = tempCam.worldToCameraMatrix;
+ }
+ else
+ {
+ v = Matrix4x4.TRS(capturePoint, Quaternion.Euler(rot[i]), new Vector3(1,1,-1)).inverse;
+ }
+ // Compute/set viewProj
+ var vp = uProj * v;
+ if (Camera.current != null) vp *= Camera.current.worldToCameraMatrix.inverse;
+ GL.LoadProjectionMatrix(vp);
+ outData.viewProj[i] = proj * v;
+
+ // Render near objects to depth
+ Graphics.SetRenderTarget(mrt, outData.depth[i].depthBuffer);
+ farSphereMatOcc.SetPass(0);
+ for(int o=0; o<objCount; o++)
+ {
+ var m = objsToWrite[o].GetComponent<MeshFilter>().sharedMesh;
+ var worldMatrix = objsToWrite[o].transform.localToWorldMatrix;
+ for(int s=0; s<m.subMeshCount; s++)
+ {
+ Graphics.DrawMeshNow(m, worldMatrix, s);
+ }
+ }
+
+ var uvOffset = ftUVGBufferGen.uvOffset;
+ float texelSize = 1.0f / cubeRes;
+ var pTo = Shader.PropertyToID("texelOffset");
+
+ if (useCamera)
+ {
+ // Render far objects via camera
+ tempCam.SetTargetBuffers(mrt, outData.depth[i].depthBuffer);
+ tempCam.Render();
+ }
+ else
+ {
+ // ... or via individual draws (SRP)
+ Graphics.SetRenderTarget(mrt, outData.depth[i].depthBuffer);
+ GL.sRGBWrite = true;
+ GL.LoadProjectionMatrix(vp);
+ for(int o=0; o<outsideRenderers.Count; o++)
+ {
+ var m = outsideRenderers[o].GetComponent<MeshFilter>().sharedMesh;
+ var worldMatrix = outsideRenderers[o].transform.localToWorldMatrix;
+ var mats = outsideRenderers[o].sharedMaterials;
+ for(int s=0; s<m.subMeshCount; s++)
+ {
+ int pass = 0;
+ if (mats.Length > s && mats[s] != null && mats[s].HasProperty("_MainTex"))
+ {
+ var mat = mats[s];
+ Texture tex = null;
+
+ if (mat.HasProperty("_MainTex"))
+ {
+ tex = mat.mainTexture;
+ }
+ else if (mat.HasProperty("_BaseColorMap"))
+ {
+ // HDRP
+ tex = mat.GetTexture("_BaseColorMap");
+ }
+ else if (mat.HasProperty("_BaseMap"))
+ {
+ // URP
+ tex = mat.GetTexture("_BaseMap");
+ }
+
+ farSphereMat.SetTexture("_MainTex", tex);
+
+ pass = 0; // opaque
+ if (tex != null)
+ {
+ var matTag = mat.GetTag("RenderType", true);
+ if (matTag == "TransparentCutout" || matTag == "Transparent" || matTag == "TreeLeaf")
+ {
+ pass = 2; // transparent cutout
+ }
+ }
+
+ farSphereMat.SetPass(pass);
+ }
+
+ for(int j=0; j<uvOffset.Length/2; j++)
+ {
+ var to = new Vector4(uvOffset[j*2] * texelSize, uvOffset[j*2+1] * texelSize, 0, 0);
+ farSphereMat.SetVector(pTo, to);
+ farSphereMat.SetPass(pass);
+ Graphics.DrawMeshNow(m, worldMatrix, s);
+ }
+ }
+ }
+ }
+
+ }
+
+ if (useCamera)
+ {
+ DestroyImmediate(tempCamGO);
+ }
+
+ return outData;
+ }
+
+ static bool GenerateFarSpheres(ExportSceneData data, FarSphereRenderData[] fdatas, List<Transform> capturePoints)
+ {
+ if (fdatas.Length == 0) return true;
+
+ // Constants
+ const int cubeRes = ftAdditionalConfig.sectorFarSphereResolution;
+ const int threadWidth = 16;
+ const int vertWidth = cubeRes;
+ const int dispatchWidth = vertWidth / threadWidth;
+ const int triCount = (vertWidth-1)*(vertWidth-1)*2;
+ int dispatchIndexGroups = (int)Mathf.Ceil(triCount / (float)(threadWidth * threadWidth));
+
+ var wnormal = new Vector3[6];
+ wnormal[0] = -Vector3.right;
+ wnormal[1] = Vector3.right;
+ wnormal[2] = -Vector3.up;
+ wnormal[3] = Vector3.up;
+ wnormal[4] = -Vector3.forward;
+ wnormal[5] = Vector3.forward;
+
+ var objsToWrite = data.objsToWrite;
+ var objsToWriteNames = data.objsToWriteNames;
+ var objsToWriteLightmapped = data.objsToWriteLightmapped;
+ var objsToWriteGroup = data.objsToWriteGroup;
+ var objsToWriteHolder = data.objsToWriteHolder;
+ var objsToWriteVerticesUV = data.objsToWriteVerticesUV;
+ var objsToWriteVerticesUV2 = data.objsToWriteVerticesUV2;
+ var objsToWriteIndices = data.objsToWriteIndices;
+ var objToScaleInLm = data.objToScaleInLm;
+ if (data.autoVertexGroup == null) CreateAutoVertexGroup(data, data.objsToWrite.Count > 0 ? data.objsToWrite[0] : null);
+ var storages = data.storages;
+ var sceneToID = data.sceneToID;
+
+ if (farSphereSshader == null)
+ {
+ farSphereSshader = Shader.Find("Hidden/ftFarSphere");
+ if (farSphereSshader == null)
+ {
+ Debug.LogError("Can't find ftFarSphere shader");
+ return false;
+ }
+ }
+
+ var bakeryEditorPath = ftLightmaps.GetEditorPath();
+
+ if (farSphereCSTransform == null)
+ {
+ farSphereCSTransform = AssetDatabase.LoadAssetAtPath(bakeryEditorPath + "shaderSrc/ftTransformFarSphere.compute", typeof(ComputeShader)) as ComputeShader;
+ if (farSphereCSTransform == null)
+ {
+ Debug.LogError("Can't find ftTransformFarSphere");
+ return false;
+ }
+ }
+
+ if (farSphereCSCull == null)
+ {
+ farSphereCSCull = AssetDatabase.LoadAssetAtPath(bakeryEditorPath + "shaderSrc/ftCullFarSphere.compute", typeof(ComputeShader)) as ComputeShader;
+ if (farSphereCSCull == null)
+ {
+ Debug.LogError("Can't find ftCullFarSphere");
+ return false;
+ }
+ }
+
+ // Create temp buffers
+ var rwBuff = new ComputeBuffer(vertWidth * vertWidth, 12); // vertices in/out
+ var indBuff = new ComputeBuffer(triCount, 3*4); // indices in
+ var appendBuff = new ComputeBuffer(triCount, 3*4, ComputeBufferType.Append); // indices out
+ var countBuff = new ComputeBuffer(1, 4, ComputeBufferType.Raw); // out index count
+ var countArray = new int[1];
+ var uvBuff = new ComputeBuffer(vertWidth * vertWidth, 8); // vertex UVs
+
+ // Create shared input index buffer
+ var tris = new int[(vertWidth-1) * (vertWidth-1) * 2 * 3];
+ int indCount = 0;
+ for(int y=0; y<vertWidth-1; y++)
+ {
+ for(int x=0; x<vertWidth-1; x++)
+ {
+ tris[indCount] = y*vertWidth+x;
+ tris[indCount+1] = y*vertWidth+x+1;
+ tris[indCount+2] = (y+1)*vertWidth+x;
+ indCount += 3;
+ tris[indCount] = y*vertWidth+x+1;
+ tris[indCount+1] = (y+1)*vertWidth+x+1;
+ tris[indCount+2] = (y+1)*vertWidth+x;
+ indCount += 3;
+ }
+ }
+
+ // Create shared UVs
+ var uv = new Vector2[vertWidth * vertWidth];
+ float invDiv = 1.0f / (vertWidth-1);
+ for(int y=0; y<vertWidth; y++)
+ {
+ int yoffset = y*vertWidth;
+ for(int x=0; x<vertWidth; x++)
+ {
+ uv[yoffset+x] = new Vector2(x*invDiv, 1.0f - y*invDiv);
+ }
+ }
+
+ ftLightmapsStorage sceneST = null;
+ int totalTris = 0;
+
+ var tempTex = new RenderTexture(cubeRes, cubeRes, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.sRGB);
+ tempTex.Create();
+ var cmd = new CommandBuffer();
+ var rtiTemp = new RenderTargetIdentifier(tempTex);
+ var mblock = new MaterialPropertyBlock();
+ if (farSphereDilateShader == null)
+ {
+ farSphereDilateShader = Shader.Find("Hidden/ftFarSphereDilate");
+ if (farSphereDilateShader == null)
+ {
+ Debug.LogError("Can't find farSphereDilate shader");
+ return false;
+ }
+ }
+ if (farSphereDilateMat == null)
+ {
+ farSphereDilateMat = new Material(farSphereDilateShader);
+ }
+ var pMainTex = Shader.PropertyToID("_MainTex");
+
+ for(int f=0; f<fdatas.Length; f++)
+ {
+ var fdata = fdatas[f];
+ fdata.meshes = new Mesh[6];
+ fdata.textures = new Texture2D[6];
+ var capturePoint = capturePoints[f].position;
+
+ // Iterate over cube faces
+ for(int i=0; i<6; i++)
+ {
+ // Create tex readable by the lightmapper
+ var texAlbedo = new Texture2D(cubeRes, cubeRes, TextureFormat.RGBA32, false, false);
+ texAlbedo.wrapMode = TextureWrapMode.Clamp;
+ texAlbedo.filterMode = FilterMode.Point;
+ fdata.textures[i] = texAlbedo;
+
+ // Dilate
+ mblock.SetTexture(pMainTex, fdata.albedo[i]);
+ cmd.Clear();
+ cmd.SetRenderTarget(rtiTemp, 0, CubemapFace.Unknown, 0);
+ cmd.DrawProcedural(Matrix4x4.identity, farSphereDilateMat, 0, MeshTopology.Triangles, 6, 1, mblock);
+ Graphics.ExecuteCommandBuffer(cmd);
+
+ // Copy tex
+ //Graphics.SetRenderTarget(fdata.albedo[i]);
+ Graphics.SetRenderTarget(tempTex);
+ texAlbedo.ReadPixels(new Rect(0,0,cubeRes,cubeRes), 0, 0, false);
+ texAlbedo.Apply();
+ Graphics.SetRenderTarget(null);
+
+ // Create verts
+ var verts = new Vector3[vertWidth * vertWidth];
+ for(int y=0; y<vertWidth; y++)
+ {
+ int yoffset = y*vertWidth;
+ float fy = -0.5f + y * invDiv;
+ for(int x=0; x<vertWidth; x++)
+ {
+ float fx = -0.5f + x * invDiv;
+ uv[yoffset+x] = new Vector2(x*invDiv, 1.0f - y*invDiv);
+ switch(i)
+ {
+ case 0:
+ verts[yoffset+x] = new Vector3(-0.5f, -fy, fx);
+ break;
+ case 1:
+ verts[yoffset+x] = new Vector3(0.5f, -fy, -fx);
+ break;
+ case 2:
+ verts[yoffset+x] = new Vector3(fx, -0.5f, -fy);
+ break;
+ case 3:
+ verts[yoffset+x] = new Vector3(fx, 0.5f, fy);
+ break;
+ case 4:
+ verts[yoffset+x] = new Vector3(fx, fy, -0.5f);
+ break;
+ case 5:
+ verts[yoffset+x] = new Vector3(-fx, fy, 0.5f);
+ break;
+ }
+ }
+ }
+
+ // Displace verts
+ rwBuff.SetData(verts);
+ farSphereCSTransform.SetBuffer(0, "verts", rwBuff);
+ farSphereCSTransform.SetTexture(0, "_DepthTex", fdata.depth[i]);
+ farSphereCSTransform.SetVector("objectCenter", capturePoint);
+ farSphereCSTransform.SetInt("vertWidth", vertWidth);
+ var ivp = fdata.viewProj[i].inverse;
+ farSphereCSTransform.SetVector("_InvProj0", ivp.GetRow(0));
+ farSphereCSTransform.SetVector("_InvProj1", ivp.GetRow(1));
+ farSphereCSTransform.SetVector("_InvProj2", ivp.GetRow(2));
+ farSphereCSTransform.SetVector("_InvProj3", ivp.GetRow(3));
+ //farSphereCSTransform.SetVector("wnormal", wnormal[i]);
+ farSphereCSTransform.Dispatch(0, dispatchWidth, dispatchWidth, 1);
+ rwBuff.GetData(verts);
+
+ // Cull tris
+ indBuff.SetData(tris);
+ appendBuff.SetCounterValue(0);
+ uvBuff.SetData(uv);
+ farSphereCSCull.SetBuffer(0, "verts", rwBuff);
+ farSphereCSCull.SetBuffer(0, "uvs", uvBuff);
+ farSphereCSCull.SetBuffer(0, "indices", indBuff);
+ farSphereCSCull.SetBuffer(0, "newIndices", appendBuff);
+ farSphereCSCull.SetInt("triCount", tris.Length/3);
+ farSphereCSCull.SetTexture(0, "alphaTex", texAlbedo);
+ farSphereCSCull.SetFloat("cubeSize", ftAdditionalConfig.sectorFarSphereResolution);
+ farSphereCSCull.Dispatch(0, dispatchIndexGroups, 1, 1);
+
+ // Get culled count
+ ComputeBuffer.CopyCount(appendBuff, countBuff, 0);
+ countBuff.GetData(countArray);
+
+ // Get new tris
+ var arr = new int[countArray[0]*3];
+ appendBuff.GetData(arr);
+
+ // Create temp material
+ var mat = new Material(farSphereSshader);
+ mat.mainTexture = texAlbedo;
+
+ // Create temp object
+ var faceMesh = new GameObject();
+ faceMesh.name = "f_" + f + "_" + i;
+ faceMesh.transform.position = capturePoint;
+ temporaryGameObjects.Add(faceMesh);
+
+ var mr = faceMesh.AddComponent<MeshRenderer>();
+ var so = new SerializedObject(mr);
+ var scaleInLm = so.FindProperty("m_ScaleInLightmap");
+ scaleInLm.floatValue = 0;
+ so.ApplyModifiedProperties();
+ mr.sharedMaterial = mat;
+ GameObjectUtility.SetStaticEditorFlags(faceMesh, StaticEditorFlags.LightmapStatic);
+
+ var mf = faceMesh.AddComponent<MeshFilter>();
+
+ var mesh = new Mesh();
+ mesh.vertices = verts;
+ mesh.uv = uv;
+ mesh.triangles = arr;
+ totalTris += arr.Length;
+ mesh.RecalculateNormals();
+ mf.sharedMesh = mesh;
+ fdata.meshes[i] = mesh;
+
+ objsToWrite.Add(faceMesh);
+ objsToWriteNames.Add("");
+ objsToWriteLightmapped.Add(false);
+ objsToWriteGroup.Add(data.autoVertexGroup);
+ objsToWriteHolder.Add(faceMesh);
+ objsToWriteVerticesUV.Add(uv);
+ objsToWriteVerticesUV2.Add(uv);
+ var inds = new int[1][];
+ inds[0] = arr;
+ objsToWriteIndices.Add(inds);
+ objToScaleInLm[faceMesh] = 0;
+
+ if (sceneST == null) sceneST = storages[sceneToID[faceMesh.scene]];
+ sceneST.implicitGroupedObjects.Add(faceMesh);
+ sceneST.implicitGroups.Add(data.autoVertexGroup);
+ tempStorage.implicitGroupMap[faceMesh] = data.autoVertexGroup;
+
+ if (modifyLightmapStorage) sceneST.nonBakedRenderers.Add(mr);
+
+ fdata.albedo[i].Release();
+ fdata.depth[i].Release();
+ fdata.normal[i].Release();
+ }
+ }
+
+ Debug.Log("Total out-of-sector tris: " + totalTris);
+
+ tempTex.Release();
+ rwBuff.Release();
+ indBuff.Release();
+ appendBuff.Release();
+ countBuff.Release();
+ uvBuff.Release();
+
+ return true;
+ }
+
+ static bool LoadSectorCapture(ExportSceneData data, BakerySectorCapture capture, Transform sectorTform)
+ {
+ if (capture.meshes == null)
+ {
+ Debug.LogError("No meshes in capture");
+ return false;
+ }
+ if (capture.positions == null)
+ {
+ Debug.LogError("No positions in capture");
+ return false;
+ }
+ if (capture.textures == null)
+ {
+ Debug.LogError("No textures in capture");
+ return false;
+ }
+
+ if (farSphereSshader == null)
+ {
+ farSphereSshader = Shader.Find("Hidden/ftFarSphere");
+ if (farSphereSshader == null)
+ {
+ Debug.LogError("Can't find ftFarSphere shader");
+ return false;
+ }
+ }
+
+ var objsToWrite = data.objsToWrite;
+ var objsToWriteNames = data.objsToWriteNames;
+ var objsToWriteLightmapped = data.objsToWriteLightmapped;
+ var objsToWriteGroup = data.objsToWriteGroup;
+ var objsToWriteHolder = data.objsToWriteHolder;
+ var objsToWriteVerticesUV = data.objsToWriteVerticesUV;
+ var objsToWriteVerticesUV2 = data.objsToWriteVerticesUV2;
+ var objsToWriteIndices = data.objsToWriteIndices;
+ var objToScaleInLm = data.objToScaleInLm;
+ if (data.autoVertexGroup == null) CreateAutoVertexGroup(data, data.objsToWrite.Count > 0 ? data.objsToWrite[0] : null);
+ var storages = data.storages;
+ var sceneToID = data.sceneToID;
+
+ var parent = new GameObject();
+ parent.name = "fp";
+ var parentTform = parent.transform;
+ parentTform.position = capture.sectorPos;
+ parentTform.rotation = capture.sectorRot;
+ temporaryGameObjects.Add(parent);
+
+ ftLightmapsStorage sceneST = null;
+
+ for(int i=0; i<capture.meshes.Count; i++)
+ {
+ var capturePoint = capture.positions[i];
+
+ // Create temp material
+ var mat = new Material(farSphereSshader);
+ mat.mainTexture = capture.textures[i];
+
+ // Create temp object
+ var faceMesh = new GameObject();
+ faceMesh.name = "f_" + i;
+ var faceTform = faceMesh.transform;
+ faceTform.position = capturePoint;
+ faceTform.parent = parentTform;
+ temporaryGameObjects.Add(faceMesh);
+
+ var mr = faceMesh.AddComponent<MeshRenderer>();
+ var so = new SerializedObject(mr);
+ var scaleInLm = so.FindProperty("m_ScaleInLightmap");
+ scaleInLm.floatValue = 0;
+ so.ApplyModifiedProperties();
+ mr.sharedMaterial = mat;
+ GameObjectUtility.SetStaticEditorFlags(faceMesh, StaticEditorFlags.LightmapStatic);
+
+ var mf = faceMesh.AddComponent<MeshFilter>();
+ mf.sharedMesh = capture.meshes[i];
+
+ objsToWrite.Add(faceMesh);
+ objsToWriteNames.Add("");
+ objsToWriteLightmapped.Add(false);
+ objsToWriteGroup.Add(data.autoVertexGroup);
+ objsToWriteHolder.Add(faceMesh);
+
+ var uv = mf.sharedMesh.uv;
+ objsToWriteVerticesUV.Add(uv);
+ objsToWriteVerticesUV2.Add(uv);
+
+ var inds = new int[1][];
+ inds[0] = mf.sharedMesh.triangles;
+ objsToWriteIndices.Add(inds);
+ objToScaleInLm[faceMesh] = 0;
+
+ if (sceneST == null) sceneST = storages[sceneToID[faceMesh.scene]];
+ sceneST.implicitGroupedObjects.Add(faceMesh);
+ sceneST.implicitGroups.Add(data.autoVertexGroup);
+ tempStorage.implicitGroupMap[faceMesh] = data.autoVertexGroup;
+
+ if (modifyLightmapStorage) sceneST.nonBakedRenderers.Add(mr);
+ }
+
+ parentTform.rotation = sectorTform.rotation;
+ parentTform.position = sectorTform.position;
+
+ return true;
+ }
+
+ static void CreateAutoVertexGroup(ExportSceneData data, GameObject anyObj)
+ {
+ var groupList = data.groupList;
+ var lmBounds = data.lmBounds;
+
+ data.autoVertexGroup = ScriptableObject.CreateInstance<BakeryLightmapGroup>();
+ data.autoVertexGroup.name = (anyObj == null ? "scene" : anyObj.scene.name) + "_VLM";
+ data.autoVertexGroup.isImplicit = true;
+ data.autoVertexGroup.resolution = 256;
+ data.autoVertexGroup.bitmask = 1;
+ data.autoVertexGroup.mode = BakeryLightmapGroup.ftLMGroupMode.Vertex;
+ data.autoVertexGroup.id = data.lmid;
+ groupList.Add(data.autoVertexGroup);
+ lmBounds.Add(new Bounds(new Vector3(0,0,0), new Vector3(0,0,0)));
+ data.lmid++;
+ }
+
+ static bool FilterObjects(ExportSceneData data, UnityEngine.Object[] objects)
+ {
+ var objToLodLevel = data.objToLodLevel;
+ var storages = data.storages;
+ var sceneToID = data.sceneToID;
+ var objsToWrite = data.objsToWrite;
+ var objsToWriteNames = data.objsToWriteNames;
+ var objsToWriteLightmapped = data.objsToWriteLightmapped;
+ var objsToWriteGroup = data.objsToWriteGroup;
+ var objsToWriteHolder = data.objsToWriteHolder;
+ var objsToWriteVerticesUV = data.objsToWriteVerticesUV;
+ var objsToWriteVerticesUV2 = data.objsToWriteVerticesUV2;
+ var objsToWriteIndices = data.objsToWriteIndices;
+ var objToScaleInLm = data.objToScaleInLm;
+ List<Renderer> outsideRenderers = null;
+
+ outsideRenderers = data.outsideRenderers;
+/*#if UNITY_2019_1_OR_NEWER
+ if (GraphicsSettings.renderPipelineAsset != null)
+ {
+ outsideRenderers = data.outsideRenderers;
+ }
+#endif*/
+ Transform sectorTform = null;
+ if (ftRenderLightmap.fullSectorRender)
+ {
+ sectorTform = ftRenderLightmap.curSector.transform;
+ }
+
+ var prop = new MaterialPropertyBlock();
+ foreach(GameObject obj in objects)
+ {
+ if (obj == null) continue;
+ if (!obj.activeInHierarchy) continue;
+ var path = AssetDatabase.GetAssetPath(obj);
+ if (path != "") continue; // must belond to scene
+ if ((obj.hideFlags & (HideFlags.DontSave|HideFlags.HideAndDontSave)) != 0) continue; // skip temp objects
+ if (obj.tag == "EditorOnly") continue; // skip temp objects
+
+ var areaLight = obj.GetComponent<BakeryLightMesh>();
+ if (areaLight == null)
+ {
+ int areaIndex = temporaryAreaLightMeshList.IndexOf(obj);
+ if (areaIndex >= 0) areaLight = temporaryAreaLightMeshList2[areaIndex];
+ }
+
+ if (areaLight != null)
+ {
+ if (!forceAllAreaLightsSelfshadow)
+ {
+ if (!areaLight.selfShadow) continue;
+ }
+ }
+ var mr = GetValidRenderer(obj);
+
+ if (mr == null)
+ {
+ // must be MR or SMR
+ continue;
+ }
+
+ var sharedMesh = GetSharedMesh(mr);
+ if (sharedMesh == null) continue; // must have visible mesh
+
+ // Remove previous lightmap
+#if UNITY_2018_1_OR_NEWER
+ if (mr.HasPropertyBlock())
+ {
+ // Reset shader props
+ mr.GetPropertyBlock(prop);
+ prop.SetFloat("bakeryLightmapMode", 0);
+ mr.SetPropertyBlock(prop);
+ }
+#else
+ mr.GetPropertyBlock(prop);
+ if (!prop.isEmpty)
+ {
+ prop.SetFloat("bakeryLightmapMode", 0);
+ mr.SetPropertyBlock(prop);
+ }
+#endif
+ if (((GameObjectUtility.GetStaticEditorFlags(obj) & StaticEditorFlags.LightmapStatic) == 0) && areaLight==null)
+ {
+ mr.lightmapIndex = 0xFFFF;
+ continue; // skip dynamic
+ }
+
+ var mrEnabled = mr.enabled || obj.GetComponent<BakeryAlwaysRender>() != null;
+ if (!mrEnabled && areaLight == null) continue;
+
+ var so = new SerializedObject(mr);//obj.GetComponent<Renderer>());
+ var scaleInLm = so.FindProperty("m_ScaleInLightmap").floatValue;
+
+ if (ftRenderLightmap.fullSectorRender)
+ {
+ int status = IsInsideSector(obj.transform, sectorTform, mr.bounds, ftRenderLightmap.curSector);
+ if (status == 0)
+ {
+ if (outsideRenderers != null) outsideRenderers.Add(mr);
+ continue;
+ }
+ if (status == 2) scaleInLm = 0;
+ }
+
+ objToScaleInLm[obj] = scaleInLm;
+
+ BakeryLightmapGroup group = null;
+ if (scaleInLm > 0)
+ {
+ group = GetLMGroupFromObjectExplicit(obj, data);
+ if (group != null)
+ {
+ // Set LOD level for explicit group
+ int lodLevel;
+ if (!objToLodLevel.TryGetValue(obj, out lodLevel)) lodLevel = -1;
+
+ var packer = group.atlasPacker == BakeryLightmapGroup.AtlasPacker.Auto ? atlasPacker : (ftGlobalStorage.AtlasPacker)group.atlasPacker;
+
+ if (!postPacking || packer != ftGlobalStorage.AtlasPacker.xatlas)
+ {
+ if (group.sceneLodLevel == -1)
+ {
+ group.sceneLodLevel = lodLevel;
+ }
+ else
+ {
+ if (!ExportSceneValidationMessage("Multiple LOD levels in " + group.name + ", this is only supported when xatlas is set as the atlas packer and post-packing is enabled.")) return false;
+ }
+ }
+
+ if (splitByScene) group.sceneName = obj.scene.name;
+
+ // New explicit Pack Atlas holder selection
+ if (!group.isImplicit && group.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas)
+ {
+ lmgroupHolder = obj; // by default pack each object
+ lmgroupHolder = TestPackAsSingleSquare(lmgroupHolder);
+ var prefabParent = PrefabUtility.GetPrefabParent(obj) as GameObject;
+ if (prefabParent != null)
+ {
+ var ptype = PrefabUtility.GetPrefabType(prefabParent);
+ if (ptype == PrefabType.ModelPrefab)
+ {
+ // but if object is a part of prefab/model
+ var sharedMesh2 = GetSharedMesh(obj);
+ var importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(sharedMesh2)) as ModelImporter;
+ if (importer != null && !ModelUVsOverlap(importer, gstorage))
+ {
+ // or actually just non-overlapping model,
+ // then pack it as a whole
+
+ // find topmost asset parent
+ var t = prefabParent.transform;
+ while(t.parent != null) t = t.parent;
+ var assetTopMost = t.gameObject;
+
+ // find topmost scene instance parent
+ var g = obj;
+ while(PrefabUtility.GetPrefabParent(g) as GameObject != assetTopMost && g.transform.parent != null)
+ {
+ g = g.transform.parent.gameObject;
+ }
+ lmgroupHolder = g;
+ }
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ if (data.autoVertexGroup == null) CreateAutoVertexGroup(data, obj);
+ group = data.autoVertexGroup;
+
+ tempStorage.implicitGroupMap[obj] = data.autoVertexGroup;
+
+ if (modifyLightmapStorage)
+ {
+ var st = storages[sceneToID[obj.scene]];
+ st.implicitGroupedObjects.Add(obj);
+ st.implicitGroups.Add(data.autoVertexGroup);
+ st.nonBakedRenderers.Add(mr);
+ }
+ }
+
+ bool vertexBake = (group != null && group.mode == BakeryLightmapGroup.ftLMGroupMode.Vertex);
+ // must have UVs or be arealight or vertexbaked
+ var uv = sharedMesh.uv;
+ var uv2 = sharedMesh.uv2;
+ if (uv.Length == 0 && uv2.Length == 0 && areaLight==null && !vertexBake) continue;
+
+ var usedUVs = uv2.Length == 0 ? uv : uv2;
+ //bool validUVs = true;
+ for(int v=0; v<usedUVs.Length; v++)
+ {
+ if (usedUVs[v].x < -0.0001f || usedUVs[v].x > 1.0001f || usedUVs[v].y < -0.0001f || usedUVs[v].y > 1.0001f)
+ {
+ DebugLogWarning("Mesh " + sharedMesh.name + " on object " + obj.name + " possibly has incorrect UVs (UV2: " + (uv2.Length == 0 ? "no" : "yes")+", U: " + usedUVs[v].x + ", V: " + usedUVs[v].y + ")");
+ //validUVs = false;
+ break;
+ }
+ }
+ //if (!validUVs) continue;
+
+ if (vertexBake)
+ {
+ group.totalVertexCount = 0;
+ group.vertexCounter = 0;
+ }
+
+ objsToWrite.Add(obj);
+ objsToWriteNames.Add(obj.name);
+ objsToWriteLightmapped.Add((scaleInLm > 0 && areaLight == null) ? true : false);
+ objsToWriteGroup.Add(group);
+ objsToWriteHolder.Add(lmgroupHolder);
+
+ objsToWriteVerticesUV.Add(uv);
+ objsToWriteVerticesUV2.Add(uv2);
+ var inds = new int[sharedMesh.subMeshCount][];
+ for(int n=0; n<inds.Length; n++) inds[n] = sharedMesh.GetTriangles(n);
+ objsToWriteIndices.Add(inds);
+
+ if (group != null) group.passedFilter = ftRenderLightmap.passedFilterFlag;
+ }
+
+ return true;
+ }
+
+ static void CalculateVertexCountForVertexGroups(ExportSceneData data)
+ {
+ var objsToWrite = data.objsToWrite;
+ var objsToWriteGroup = data.objsToWriteGroup;
+
+ // Calculate total vertex count for vertex-baked groups
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ var lmgroup = objsToWriteGroup[i];
+ if (lmgroup == null || lmgroup.mode != BakeryLightmapGroup.ftLMGroupMode.Vertex) continue;
+ var sharedMesh = GetSharedMesh(objsToWrite[i]);
+ lmgroup.totalVertexCount += sharedMesh.vertexCount;
+ }
+ }
+
+ static void CreateAutoAtlasLMGroups(ExportSceneData data, bool renderTextures, bool atlasOnly)
+ {
+ var objsToWrite = data.objsToWrite;
+ var objsToWriteLightmapped = data.objsToWriteLightmapped;
+ var objsToWriteGroup = data.objsToWriteGroup;
+ var objsToWriteHolder = data.objsToWriteHolder;
+ var objToLodLevel = data.objToLodLevel;
+ var storages = data.storages;
+ var sceneToID = data.sceneToID;
+ var groupList = data.groupList;
+ var lmBounds = data.lmBounds;
+ var autoAtlasGroups = data.autoAtlasGroups;
+ var autoAtlasGroupRootNodes = data.autoAtlasGroupRootNodes;
+
+ // Create implicit temp LMGroups.
+ // If object is a part of prefab, and if UVs are not generated in Unity, group is only addded to the topmost object (aka holder).
+
+ // Implicit groups are added on every static object without ftLMGroupSelector.
+ // (Also init lmBounds and LMID as well)
+ // if autoAtlas == false: new group for every holder.
+ // if autoAtlas == true: single group for all holders (will be split later).
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ if (!objsToWriteLightmapped[i]) continue; // skip objects with scaleInLM == 0
+ if (objsToWriteGroup[i] != null) continue; // skip if already has lightmap assigned
+ var obj = objsToWrite[i];
+
+ var holder = obj; // holder is object itself (packed individually)
+ holder = TestPackAsSingleSquare(holder);
+ var prefabParent = PrefabUtility.GetPrefabParent(obj) as GameObject;
+ if (prefabParent != null) // object is part of prefab
+ {
+ // unity doesn't generate non-overlapping UVs for the whole model, only submeshes
+ // // if importer == null, it's an actual prefab, not model <-- not really; importer points to mesh's prefab, not real
+ // importer of a mesh is always model asset
+ // importers of components never exist
+ // at least check the prefab type
+ var ptype = PrefabUtility.GetPrefabType(prefabParent);
+ if (ptype == PrefabType.ModelPrefab)
+ {
+ var sharedMesh = GetSharedMesh(obj);
+ var importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(sharedMesh)) as ModelImporter;
+
+ if (importer != null && !ModelUVsOverlap(importer, gstorage))
+ {
+ // find topmost asset parent
+ var t = prefabParent.transform;
+ while(t.parent != null) t = t.parent;
+ var assetTopMost = t.gameObject;
+
+ // find topmost scene instance parent
+ var g = obj;
+ var assetG = PrefabUtility.GetPrefabParent(g) as GameObject;
+ while(assetG != assetTopMost && g.transform.parent != null && assetG.transform.parent != null)
+ {
+ var g2 = g.transform.parent.gameObject;
+ var assetG2 = assetG.transform.parent.gameObject;
+
+ if (PrefabUtility.GetPrefabParent(g2) != assetG2) break; // avoid using parents which don't belong to this model
+
+ g = g2;
+ assetG = assetG2;
+ }
+ var sceneTopMost = g;
+ holder = sceneTopMost; // holder is topmost model object (non-overlapped UVs)
+
+ int lodLevel;
+ if (objToLodLevel.TryGetValue(obj, out lodLevel)) holder = obj; // separated if used in LOD
+ }
+ }
+ }
+ else if (obj.name == "__ExportTerrain")
+ {
+ holder = obj.transform.parent.gameObject; // holder is terrain parent
+
+ int lodLevel;
+ if (objToLodLevel.TryGetValue(obj, out lodLevel)) holder = obj; // separated if used in LOD
+ }
+
+ if (!storages[sceneToID[holder.scene]].implicitGroupedObjects.Contains(holder))
+ {
+ BakeryLightmapGroup newGroup;
+ if (autoAtlas && autoAtlasGroups.Count > 0)
+ {
+ newGroup = autoAtlasGroups[0];
+ }
+ else
+ {
+ newGroup = ScriptableObject.CreateInstance<BakeryLightmapGroup>();
+
+ // Make sure first lightmap is always LM0, not LM1, if probes are used
+ int lmNum = storages[sceneToID[holder.scene]].implicitGroups.Count;
+ if (ftRenderLightmap.lightProbeMode == ftRenderLightmap.LightProbeMode.L1 && ftRenderLightmap.hasAnyProbes && renderTextures && !atlasOnly) lmNum--;
+
+ newGroup.name = holder.scene.name + "_LM" + autoAtlasGroups.Count;//lmNum;
+ newGroup.isImplicit = true;
+ newGroup.resolution = 256;
+ newGroup.bitmask = 1;
+ newGroup.area = 0;
+ newGroup.mode = autoAtlas ? BakeryLightmapGroup.ftLMGroupMode.PackAtlas : BakeryLightmapGroup.ftLMGroupMode.OriginalUV;
+
+ newGroup.id = data.lmid;
+ groupList.Add(newGroup);
+ lmBounds.Add(new Bounds(new Vector3(0,0,0), new Vector3(0,0,0)));
+ data.lmid++;
+
+ if (autoAtlas)
+ {
+ autoAtlasGroups.Add(newGroup);
+ var rootNode = new AtlasNode();
+ rootNode.rc = new Rect(0, 0, 1, 1);
+ autoAtlasGroupRootNodes.Add(rootNode);
+ }
+ }
+ storages[sceneToID[holder.scene]].implicitGroupedObjects.Add(holder);
+
+ storages[sceneToID[holder.scene]].implicitGroups.Add(newGroup);
+ //Debug.LogError("Add "+(storages[sceneToID[holder.scene]].implicitGroups.Count-1)+" "+newGroup.name);
+
+ tempStorage.implicitGroupMap[holder] = newGroup;
+ if (splitByScene) newGroup.sceneName = holder.scene.name;
+ }
+
+ if (!tempStorage.implicitGroupMap.ContainsKey(holder))
+ {
+ // happens with modifyLightmapStorage == false
+ var gholders = storages[sceneToID[holder.scene]].implicitGroupedObjects;
+ var grs = storages[sceneToID[holder.scene]].implicitGroups;
+ for(int g=0; g<gholders.Count; g++)
+ {
+ if (gholders[g] == holder)
+ {
+ tempStorage.implicitGroupMap[holder] = grs[g];
+ break;
+ }
+ }
+ }
+
+ objsToWriteGroup[i] = (BakeryLightmapGroup)tempStorage.implicitGroupMap[holder];
+ objsToWriteHolder[i] = holder;
+ }
+ }
+
+ static void TransformVertices(ExportSceneData data, bool tangentSHLights, int onlyID = -1)
+ {
+ var objsToWrite = data.objsToWrite;
+ var objsToWriteGroup = data.objsToWriteGroup;
+ var objsToWriteVerticesPosW = data.objsToWriteVerticesPosW;
+ var objsToWriteVerticesNormalW = data.objsToWriteVerticesNormalW;
+ var objsToWriteVerticesTangentW = data.objsToWriteVerticesTangentW;
+
+ int startIndex = 0;
+ int endIndex = objsToWrite.Count-1;
+
+ if (onlyID >= 0)
+ {
+ startIndex = onlyID;
+ endIndex = onlyID;
+ }
+
+ // Transform vertices to world space
+ for(int i=startIndex; i<=endIndex; i++)
+ {
+ var obj = objsToWrite[i];
+ var lmgroup = objsToWriteGroup[i];
+ bool isSkin;
+ var m = GetSharedMeshSkinned(obj, out isSkin);
+ var vertices = m.vertices;
+ var tform = obj.transform;
+
+ while(objsToWriteVerticesPosW.Count <= i)
+ {
+ objsToWriteVerticesPosW.Add(null);
+ objsToWriteVerticesNormalW.Add(null);
+ }
+
+ objsToWriteVerticesPosW[i] = new Vector3[vertices.Length];
+ if (isSkin)
+ {
+ var lossyScale = tform.lossyScale;
+ var inverseWorldScale = new Vector3(1.0f/lossyScale.x, 1.0f/lossyScale.y, 1.0f/lossyScale.z);
+ for(int t=0; t<vertices.Length; t++)
+ {
+ vertices[t].Scale(inverseWorldScale);
+ }
+ }
+ for(int t=0; t<vertices.Length; t++)
+ {
+ objsToWriteVerticesPosW[i][t] = tform.TransformPoint(vertices[t]);
+ }
+ var normals = m.normals;
+ objsToWriteVerticesNormalW[i] = new Vector3[vertices.Length];
+ var nbuff = objsToWriteVerticesNormalW[i];
+ var localScale = obj.transform.localScale;
+ bool flipX = localScale.x < 0;
+ bool flipY = localScale.y < 0;
+ bool flipZ = localScale.z < 0;
+ if (lmgroup != null && lmgroup.flipNormal)
+ {
+ flipX = !flipX;
+ flipY = !flipY;
+ flipZ = !flipZ;
+ }
+ for(int t=0; t<vertices.Length; t++)
+ {
+ if (normals.Length == 0)
+ {
+ nbuff[t] = Vector3.up;
+ }
+ else
+ {
+ nbuff[t] = normals[t];
+ if (flipX) nbuff[t].x *= -1;
+ if (flipY) nbuff[t].y *= -1;
+ if (flipZ) nbuff[t].z *= -1;
+ nbuff[t] = tform.TransformDirection(nbuff[t]);
+ }
+ }
+ if (NeedsTangents(lmgroup, tangentSHLights))
+ {
+ var tangents = m.tangents;
+ while(objsToWriteVerticesTangentW.Count <= i) objsToWriteVerticesTangentW.Add(null);
+ objsToWriteVerticesTangentW[i] = new Vector4[vertices.Length];
+ var tbuff = objsToWriteVerticesTangentW[i];
+ Vector3 tangent = Vector3.zero;
+ for(int t=0; t<vertices.Length; t++)
+ {
+ if (tangents.Length == 0)
+ {
+ tbuff[t] = Vector3.right;
+ }
+ else
+ {
+ tangent.Set(flipX ? -tangents[t].x : tangents[t].x,
+ flipY ? -tangents[t].y : tangents[t].y,
+ flipZ ? -tangents[t].z : tangents[t].z);
+ tangent = tform.TransformDirection(tangent);
+ tbuff[t] = new Vector4(tangent.x, tangent.y, tangent.z, tangents[t].w);
+ }
+ }
+ }
+ }
+ }
+
+ static void CalculateUVPadding(ExportSceneData data, AdjustUVPaddingData adata)
+ {
+ var meshToPaddingMap = adata.meshToPaddingMap;
+ var meshToObjIDs = adata.meshToObjIDs;
+
+ float smallestMapScale = 1;
+ float colorScale = 1.0f / (1 << (int)((1.0f - ftBuildGraphics.mainLightmapScale) * 6));
+ float maskScale = 1.0f / (1 << (int)((1.0f - ftBuildGraphics.maskLightmapScale) * 6));
+ float dirScale = 1.0f / (1 << (int)((1.0f - ftBuildGraphics.dirLightmapScale) * 6));
+ smallestMapScale = Mathf.Min(colorScale, maskScale);
+ smallestMapScale = Mathf.Min(smallestMapScale, dirScale);
+
+ var objsToWrite = data.objsToWrite;
+ var objsToWriteGroup = data.objsToWriteGroup;
+ var objsToWriteVerticesPosW = data.objsToWriteVerticesPosW;
+ var objsToWriteIndices = data.objsToWriteIndices;
+ var objsToWriteHolder = data.objsToWriteHolder;
+
+ // Calculate every implicit mesh area and convert to proper padding value
+ var explicitGroupTotalArea = new Dictionary<int, float>();
+ var objsWithExplicitGroupPadding = new List<int>();
+ var objsWithExplicitGroupPaddingWidth = new List<float>();
+
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ var lmgroup = objsToWriteGroup[i];
+ if (lmgroup == null) continue;
+ if (lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.Vertex) continue; // no need to adjust for vertex-baked meshes
+ var prefabParent = PrefabUtility.GetPrefabParent(objsToWrite[i]) as GameObject;
+ if (prefabParent == null) continue;
+ var sharedMesh = GetSharedMesh(objsToWrite[i]);
+ var assetPath = AssetDatabase.GetAssetPath(sharedMesh);
+ var importer = AssetImporter.GetAtPath(assetPath) as ModelImporter;
+ if (importer == null || !importer.generateSecondaryUV) continue;
+ // user doesn't care much about UVs - adjust
+
+ var m = sharedMesh;
+ var vpos = objsToWriteVerticesPosW[i];
+ float area = 0;
+ var inds = objsToWriteIndices[i];
+ for(int k=0;k<m.subMeshCount;k++) {
+ var indices = inds[k];// m.GetTriangles(k);
+ int indexA, indexB, indexC;
+ for(int j=0;j<indices.Length;j+=3)
+ {
+ indexA = indices[j];
+ indexB = indices[j + 1];
+ indexC = indices[j + 2];
+
+ var v1 = vpos[indexA];
+ var v2 = vpos[indexB];
+ var v3 = vpos[indexC];
+ area += Vector3.Cross(v2 - v1, v3 - v1).magnitude;
+ }
+ }
+ //var so = new SerializedObject(objsToWrite[i].GetComponent<Renderer>());
+ //var scaleInLm = so.FindProperty("m_ScaleInLightmap").floatValue;
+ var scaleInLm = data.objToScaleInLm[objsToWrite[i]];
+ if (scaleInLm == 0) continue; // don't reunwrap objects with scale in lightmap == 0
+
+ area *= scaleInLm;
+
+ float width = Mathf.Sqrt(area);
+ float twidth = 1;
+ if (lmgroup.isImplicit)
+ {
+ twidth = width * texelsPerUnit;
+ }
+ else
+ {
+ float currentArea;
+ if (!explicitGroupTotalArea.TryGetValue(lmgroup.id, out currentArea)) currentArea = 0;
+ explicitGroupTotalArea[lmgroup.id] = currentArea + area;
+
+ var holder = objsToWriteHolder[i];
+ BakeryLightmapGroupSelector comp = null;
+ if (holder != null) comp = holder.GetComponent<BakeryLightmapGroupSelector>();
+ if (comp != null && comp.instanceResolutionOverride)
+ {
+ // Explicit holder size
+ twidth = width * comp.instanceResolution;
+ }
+ else
+ {
+ // Texel size in atlas - can't calculate at this point
+ objsWithExplicitGroupPadding.Add(i);
+ objsWithExplicitGroupPaddingWidth.Add(width);
+ continue;
+ }
+ }
+ float requiredPadding = 4 * (1024.0f / (twidth * smallestMapScale));
+ int requiredPaddingClamped = (int)Mathf.Clamp(requiredPadding, 1, 256);
+
+ int existingPadding = 0;
+ meshToPaddingMap.TryGetValue(m, out existingPadding);
+ meshToPaddingMap[m] = Math.Max(requiredPaddingClamped, existingPadding); // select largest padding among instances
+
+ List<int> arr;
+ if (!meshToObjIDs.TryGetValue(m, out arr))
+ {
+ meshToObjIDs[m] = arr = new List<int>();
+ }
+ if (!arr.Contains(i)) arr.Add(i);
+ }
+
+ for(int j=0; j<objsWithExplicitGroupPadding.Count; j++)
+ {
+ int i = objsWithExplicitGroupPadding[j];
+ float width = objsWithExplicitGroupPaddingWidth[j];
+ var lmgroup = objsToWriteGroup[i];
+ float totalArea = explicitGroupTotalArea[lmgroup.id];
+ float twidth = (width / Mathf.Sqrt(totalArea)) * lmgroup.resolution;
+ var m = GetSharedMesh(objsToWrite[i]);
+
+ // Following is copy-pasted from the loop above
+ float requiredPadding = 4 * (1024.0f / (twidth * smallestMapScale));
+ int requiredPaddingClamped = (int)Mathf.Clamp(requiredPadding, 1, 256);
+
+ int existingPadding = 0;
+ meshToPaddingMap.TryGetValue(m, out existingPadding);
+ meshToPaddingMap[m] = Math.Max(requiredPaddingClamped, existingPadding); // select largest padding among instances
+
+ List<int> arr;
+ if (!meshToObjIDs.TryGetValue(m, out arr))
+ {
+ meshToObjIDs[m] = arr = new List<int>();
+ }
+ if (!arr.Contains(i)) arr.Add(i);
+ }
+ }
+
+ static void ResetPaddingStorageData(ExportSceneData data)
+ {
+ var storages = data.storages;
+
+ // Reset scene padding backup
+ for(int s=0; s<storages.Length; s++)
+ {
+ var str = storages[s];
+ if (str == null) continue;
+ str.modifiedAssetPathList = new List<string>();
+ str.modifiedAssets = new List<ftGlobalStorage.AdjustedMesh>();
+ }
+ }
+
+ static void StoreNewUVPadding(ExportSceneData data, AdjustUVPaddingData adata)
+ {
+ var meshToPaddingMap = adata.meshToPaddingMap;
+ var meshToObjIDs = adata.meshToObjIDs;
+ var dirtyAssetList = adata.dirtyAssetList;
+ var dirtyObjList = adata.dirtyObjList;
+ var storages = data.storages;
+
+ foreach(var pair in meshToPaddingMap)
+ {
+ var m = pair.Key;
+ var requiredPaddingClamped = pair.Value;
+ var assetPath = AssetDatabase.GetAssetPath(m);
+
+ var ids = meshToObjIDs[m];
+
+ //for(int s=0; s<sceneCount; s++)
+ {
+ var objStorage = gstorage;// == null ? storages[0] : gstorage;// storages[s];
+ int mstoreIndex = objStorage.modifiedAssetPathList.IndexOf(assetPath);
+ int ind = -1;
+ var mname = m.name;
+ if (mstoreIndex >= 0) ind = objStorage.modifiedAssets[mstoreIndex].meshName.IndexOf(mname);
+ if (ind < 0)
+ {
+ if (mstoreIndex < 0)
+ {
+ // add new record to globalstorage
+ objStorage.modifiedAssetPathList.Add(assetPath);
+ var newStruct = new ftGlobalStorage.AdjustedMesh();
+ newStruct.meshName = new List<string>();
+ newStruct.padding = new List<int>();
+ objStorage.modifiedAssets.Add(newStruct);
+ mstoreIndex = objStorage.modifiedAssets.Count - 1;
+ }
+
+ var nameList = objStorage.modifiedAssets[mstoreIndex].meshName;
+ var paddingList = objStorage.modifiedAssets[mstoreIndex].padding;
+ var unwrapperList = objStorage.modifiedAssets[mstoreIndex].unwrapper;
+ if (unwrapperList == null)
+ {
+ var s = objStorage.modifiedAssets[mstoreIndex];
+ unwrapperList = s.unwrapper = new List<int>();
+ objStorage.modifiedAssets[mstoreIndex] = s;
+ }
+ while(nameList.Count > unwrapperList.Count) unwrapperList.Add(0); // fix legacy
+
+ nameList.Add(mname);
+ paddingList.Add(requiredPaddingClamped);
+ unwrapperList.Add((int)ftRenderLightmap.unwrapper);
+
+ if (!dirtyAssetList.Contains(assetPath)) dirtyAssetList.Add(assetPath);
+ for(int xx=0; xx<ids.Count; xx++) dirtyObjList.Add(ids[xx]);
+#if UNITY_2017_1_OR_NEWER
+ objStorage.SyncModifiedAsset(mstoreIndex);
+#endif
+ }
+ else
+ {
+ var nameList = objStorage.modifiedAssets[mstoreIndex].meshName;
+ var paddingList = objStorage.modifiedAssets[mstoreIndex].padding;
+ var unwrapperList = objStorage.modifiedAssets[mstoreIndex].unwrapper;
+ if (unwrapperList == null)
+ {
+ var s = objStorage.modifiedAssets[mstoreIndex];
+ unwrapperList = s.unwrapper = new List<int>();
+ objStorage.modifiedAssets[mstoreIndex] = s;
+ }
+ while(nameList.Count > unwrapperList.Count) unwrapperList.Add(0); // fix legacy
+
+ // modify existing record
+ var oldValue = paddingList[ind];
+ var oldUnwrapperValue = (ftGlobalStorage.Unwrapper)unwrapperList[ind];
+ bool shouldModify = oldValue != requiredPaddingClamped;
+ if (uvPaddingMax)
+ {
+ shouldModify = oldValue < requiredPaddingClamped;
+ }
+ if (oldUnwrapperValue != ftRenderLightmap.unwrapper) shouldModify = true;
+ if (shouldModify)
+ {
+ if (!dirtyAssetList.Contains(assetPath)) dirtyAssetList.Add(assetPath);
+ for(int xx=0; xx<ids.Count; xx++) dirtyObjList.Add(ids[xx]);
+ paddingList[ind] = requiredPaddingClamped;
+ unwrapperList[ind] = (int)ftRenderLightmap.unwrapper;
+#if UNITY_2017_1_OR_NEWER
+ objStorage.SyncModifiedAsset(mstoreIndex);
+#endif
+ }
+ }
+
+ // Backup padding storage to scene
+ for(int s=0; s<storages.Length; s++)
+ {
+ var str = storages[s];
+ if (str == null) continue;
+ var localIndex = str.modifiedAssetPathList.IndexOf(assetPath);
+ if (localIndex < 0)
+ {
+ str.modifiedAssetPathList.Add(assetPath);
+ str.modifiedAssets.Add(objStorage.modifiedAssets[mstoreIndex]);
+ }
+ else
+ {
+ str.modifiedAssets[localIndex] = objStorage.modifiedAssets[mstoreIndex];
+ }
+ }
+ }
+ }
+
+ EditorUtility.SetDirty(gstorage);
+ }
+
+ static bool ValidatePaddingImmutability(AdjustUVPaddingData adata)
+ {
+ if (validateLightmapStorageImmutability)
+ {
+ if (adata.dirtyAssetList.Count > 0)
+ {
+ sceneNeedsToBeRebuilt = true;
+ return false;
+ }
+ }
+ return true;
+ }
+
+ static bool ValidateScaleOffsetImmutability(ExportSceneData data)
+ {
+ if (validateLightmapStorageImmutability)
+ {
+ var holderRect = data.holderRect;
+ var objsToWrite = data.objsToWrite;
+ var objsToWriteGroup = data.objsToWriteGroup;
+ var objsToWriteHolder = data.objsToWriteHolder;
+ var storages = data.storages;
+ var sceneToID = data.sceneToID;
+
+ var emptyVec4 = new Vector4(1,1,0,0);
+ Rect rc = new Rect();
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ var obj = objsToWrite[i];
+ var lmgroup = objsToWriteGroup[i];
+ var holderObj = objsToWriteHolder[i];
+ if (holderObj != null)
+ {
+ if (!holderRect.TryGetValue(holderObj, out rc))
+ {
+ holderObj = null;
+ }
+ }
+ var scaleOffset = holderObj == null ? emptyVec4 : new Vector4(rc.width, rc.height, rc.x, rc.y);
+
+ var sceneID = sceneToID[obj.scene];
+ var st = storages[sceneID];
+ if (st == null)
+ {
+ Debug.LogError("ValidateScaleOffsetImmutability: no storage");
+ return false;
+ }
+
+ var storedScaleOffset = Vector4.zero;
+ if (obj.name == "__ExportTerrain")
+ {
+ var tindex = terrainObjectList.IndexOf(obj.transform.parent.gameObject);
+ var terrain = terrainObjectToActual[tindex];
+ int index = st.bakedRenderersTerrain.IndexOf(terrain);
+ /*if (st.bakedIDsTerrain[index] != lmgroup.id)
+ {
+ Debug.LogError("ValidateScaleOffsetImmutability: terrain LMID does not match");
+ return false;
+ }*/
+ if (index < 0 || st.bakedScaleOffsetTerrain.Count <= index) continue;
+ storedScaleOffset = st.bakedScaleOffsetTerrain[index];
+ }
+ else
+ {
+ int index = st.bakedRenderers.IndexOf(GetValidRenderer(obj));
+ /*if (st.bakedIDs[index] != lmgroup.id)
+ {
+ Debug.LogError("ValidateScaleOffsetImmutability: LMID does not match");
+ Debug.LogError(st.bakedIDs[index]+" "+lmgroup.id+" "+lmgroup.name);
+ return false;
+ }*/
+ if (index < 0 || st.bakedScaleOffset.Count <= index) continue;
+ storedScaleOffset = st.bakedScaleOffset[index];
+ }
+ // approx equality
+ if (!(scaleOffset == storedScaleOffset))
+ {
+ Debug.LogError("ValidateScaleOffsetImmutability: scale/offset does not match on " + obj.name);
+ Debug.Log("(" + scaleOffset.x + ", " + scaleOffset.y + "," + scaleOffset.z + ", " + scaleOffset.w + ") vs (" +
+ storedScaleOffset.x + ", " + storedScaleOffset.y + "," + storedScaleOffset.z + ", " + storedScaleOffset.w + ")"
+ );
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+ static bool ClearUVPadding(ExportSceneData data, AdjustUVPaddingData adata)
+ {
+ var objsToWrite = data.objsToWrite;
+ var dirtyAssetList = adata.dirtyAssetList;
+ var dirtyObjList = adata.dirtyObjList;
+
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ var sharedMesh = GetSharedMesh(objsToWrite[i]);
+ var assetPath = AssetDatabase.GetAssetPath(sharedMesh);
+
+ int mstoreIndex = gstorage.modifiedAssetPathList.IndexOf(assetPath);
+ if (mstoreIndex < 0) continue;
+
+ dirtyObjList.Add(i);
+ if (!dirtyAssetList.Contains(assetPath))
+ {
+ dirtyAssetList.Add(assetPath);
+ }
+ }
+
+ if (!ValidatePaddingImmutability(adata)) return false;
+
+ for(int i=0; i<dirtyAssetList.Count; i++)
+ {
+ var assetPath = dirtyAssetList[i];
+ int mstoreIndex = gstorage.modifiedAssetPathList.IndexOf(assetPath);
+ DebugLogInfo("Reimport " + assetPath);
+ ProgressBarShow("Exporting scene - clearing UV adjustment for " + assetPath + "...", 0, false);
+
+ gstorage.ClearAssetModifications(mstoreIndex);
+ }
+
+ EditorUtility.SetDirty(gstorage);
+
+ return true;
+ }
+
+ static bool ReimportModifiedAssets(AdjustUVPaddingData adata)
+ {
+ var dirtyAssetList = adata.dirtyAssetList;
+
+ for(int i=0; i<dirtyAssetList.Count; i++)
+ {
+ var assetPath = dirtyAssetList[i];
+ DebugLogInfo("Reimport " + assetPath);
+ ProgressBarShow("Exporting scene - adjusting UV padding for " + assetPath + "...", 0, false);
+ //AssetDatabase.ImportAsset(assetPath);
+ (AssetImporter.GetAtPath(assetPath) as ModelImporter).SaveAndReimport();
+
+ if (CheckUnwrapError())
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ static void TransformModifiedAssets(ExportSceneData data, AdjustUVPaddingData adata, bool tangentSHLights)
+ {
+ // Transform modified vertices to world space again
+ for(int d=0; d<adata.dirtyObjList.Count; d++)
+ {
+ int i = adata.dirtyObjList[d];
+
+ // Refresh attributes and indices after reimport
+ bool isSkin;
+ var m = GetSharedMeshSkinned(data.objsToWrite[i], out isSkin);
+ data.objsToWriteVerticesUV[i] = m.uv;
+ data.objsToWriteVerticesUV2[i] = m.uv2;
+ var inds = new int[m.subMeshCount][];
+ for(int n=0; n<inds.Length; n++) inds[n] = m.GetTriangles(n);
+ data.objsToWriteIndices[i] = inds;
+
+ TransformVertices(data, tangentSHLights, i); // because vertex count/order could be modified
+ }
+ }
+
+ static void CalculateHolderUVBounds(ExportSceneData data)
+ {
+ var objsToWrite = data.objsToWrite;
+ var objsToWriteGroup = data.objsToWriteGroup;
+ var objsToWriteHolder = data.objsToWriteHolder;
+ var objsToWriteVerticesPosW = data.objsToWriteVerticesPosW;
+ var objsToWriteVerticesUV = data.objsToWriteVerticesUV;
+ var objsToWriteVerticesUV2 = data.objsToWriteVerticesUV2;
+ var objsToWriteIndices = data.objsToWriteIndices;
+ var objToLodLevel = data.objToLodLevel;
+ var holderObjUVBounds = data.holderObjUVBounds;
+ var holderObjArea = data.holderObjArea;
+ var groupToHolderObjects = data.groupToHolderObjects;
+
+ // Calculate implicit group / atlas packing data
+ // UV bounds and worldspace area
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ var obj = objsToWrite[i];
+ var lmgroup = objsToWriteGroup[i];
+ var calculateArea = lmgroup == null ? false : (lmgroup.isImplicit || lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas);
+ if (!calculateArea) continue;
+
+ var holderObj = objsToWriteHolder[i];
+ var m = GetSharedMesh(obj);
+ //var mr = obj.GetComponent<Renderer>();
+
+ var vpos = objsToWriteVerticesPosW[i];
+ var vuv = objsToWriteVerticesUV2[i];//m.uv2;
+ var inds = objsToWriteIndices[i];
+ //if (vuv.Length == 0 || obj.GetComponent<BakeryLightMesh>()!=null) vuv = objsToWriteVerticesUV[i];//m.uv; // area lights or objects without UV2 export UV1 instead
+ if (vuv.Length == 0 || obj.GetComponent<BakeryLightMesh>()!=null || temporaryAreaLightMeshList.Contains(obj)) vuv = objsToWriteVerticesUV[i];//m.uv; // area lights or objects without UV2 export UV1 instead
+ Vector2 uv1 = Vector2.zero;
+ Vector2 uv2 = Vector2.zero;
+ Vector2 uv3 = Vector2.zero;
+
+ int lodLevel;
+ if (!objToLodLevel.TryGetValue(obj, out lodLevel)) lodLevel = -1;
+
+ for(int k=0;k<m.subMeshCount;k++) {
+
+ var indices = inds[k];//m.GetTriangles(k);
+ int indexA, indexB, indexC;
+ float area = 0;
+ //float areaUV = 0;
+ Vector4 uvBounds = new Vector4(1,1,0,0); // minx, miny, maxx, maxy
+
+ for(int j=0;j<indices.Length;j+=3)
+ {
+ indexA = indices[j];
+ indexB = indices[j + 1];
+ indexC = indices[j + 2];
+
+ var v1 = vpos[indexA];
+ var v2 = vpos[indexB];
+ var v3 = vpos[indexC];
+ area += Vector3.Cross(v2 - v1, v3 - v1).magnitude;
+
+ if (vuv.Length > 0)
+ {
+ uv1 = vuv[indexA];
+ uv2 = vuv[indexB];
+ uv3 = vuv[indexC];
+ }
+
+ /*var uv31 = new Vector3(uv1.x, uv1.y, 0);
+ var uv32 = new Vector3(uv2.x, uv2.y, 0);
+ var uv33 = new Vector3(uv3.x, uv3.y, 0);
+ areaUV += Vector3.Cross(uv32 - uv31, uv33 - uv31).magnitude;*/
+
+ if (uv1.x < uvBounds.x) uvBounds.x = uv1.x;
+ if (uv1.y < uvBounds.y) uvBounds.y = uv1.y;
+ if (uv1.x > uvBounds.z) uvBounds.z = uv1.x;
+ if (uv1.y > uvBounds.w) uvBounds.w = uv1.y;
+
+ if (uv2.x < uvBounds.x) uvBounds.x = uv2.x;
+ if (uv2.y < uvBounds.y) uvBounds.y = uv2.y;
+ if (uv2.x > uvBounds.z) uvBounds.z = uv2.x;
+ if (uv2.y > uvBounds.w) uvBounds.w = uv2.y;
+
+ if (uv3.x < uvBounds.x) uvBounds.x = uv3.x;
+ if (uv3.y < uvBounds.y) uvBounds.y = uv3.y;
+ if (uv3.x > uvBounds.z) uvBounds.z = uv3.x;
+ if (uv3.y > uvBounds.w) uvBounds.w = uv3.y;
+ }
+
+ // uv layouts always have empty spaces
+ //area /= areaUV;
+
+ //var so = new SerializedObject(mr);
+ //var scaleInLm = so.FindProperty("m_ScaleInLightmap").floatValue;
+ var scaleInLm = data.objToScaleInLm[obj];
+
+ if (!pstorage.alternativeScaleInLightmap) area *= scaleInLm;
+
+ if (lmgroup.isImplicit && lodLevel == -1)
+ {
+ lmgroup.area += area; // accumulate LMGroup area
+ // only use base scene values, no LODs, to properly initialize autoatlas size
+ }
+ if (lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas)
+ {
+ // Accumulate per-holder area and UV bounds
+ float existingArea;
+ Vector4 existingBounds;
+ holderObjUVBounds.TryGetValue(holderObj, out existingBounds);
+ if (!holderObjArea.TryGetValue(holderObj, out existingArea))
+ {
+ existingArea = 0;
+ existingBounds = uvBounds;
+ List<GameObject> holderList;
+ if (!groupToHolderObjects.TryGetValue(lmgroup, out holderList))
+ {
+ groupToHolderObjects[lmgroup] = holderList = new List<GameObject>();
+ }
+ holderList.Add(holderObj);
+ }
+ holderObjArea[holderObj] = existingArea + area;
+
+ existingBounds.x = existingBounds.x < uvBounds.x ? existingBounds.x : uvBounds.x;
+ existingBounds.y = existingBounds.y < uvBounds.y ? existingBounds.y : uvBounds.y;
+ existingBounds.z = existingBounds.z > uvBounds.z ? existingBounds.z : uvBounds.z;
+ existingBounds.w = existingBounds.w > uvBounds.w ? existingBounds.w : uvBounds.w;
+ holderObjUVBounds[holderObj] = existingBounds;
+ }
+ }
+ }
+ }
+
+ static int ResolutionFromArea(float area)
+ {
+ int resolution = (int)(Mathf.Sqrt(area) * texelsPerUnit);
+ if (mustBePOT)
+ {
+ if (atlasCountPriority)
+ {
+ resolution = Mathf.NextPowerOfTwo(resolution);
+ }
+ else
+ {
+ resolution = Mathf.ClosestPowerOfTwo(resolution);
+ }
+ }
+ resolution = Math.Max(resolution, minAutoResolution);
+ resolution = Math.Min(resolution, maxAutoResolution);
+
+ return resolution;
+ }
+
+ static void CalculateAutoAtlasInitResolution(ExportSceneData data)
+ {
+ var groupList = data.groupList;
+
+ // Calculate implicit lightmap resolution
+ for(int i=0; i<groupList.Count; i++)
+ {
+ var lmgroup = groupList[i];
+ if (lmgroup.isImplicit)
+ {
+ lmgroup.resolution = ResolutionFromArea(lmgroup.area);
+ }
+ }
+ }
+
+ static void NormalizeHolderArea(BakeryLightmapGroup lmgroup, List<GameObject> holderObjs, ExportSceneData data)
+ {
+ var holderObjArea = data.holderObjArea;
+ var holderObjUVBounds = data.holderObjUVBounds;
+
+ // Divide holders area to get from world space to -> UV space
+ float areaMult = 1.0f;
+ if (lmgroup.isImplicit && lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas)
+ {
+ // ...by maximum lightmap area given texel size (autoAtlas)
+ //areaMult = 1.0f / lightmapMaxArea;
+ // don't modify
+ }
+ else
+ {
+ // ... by maximum holder area (normalize)
+ float lmgroupArea = 0;
+ for(int i=0; i<holderObjs.Count; i++)
+ {
+ // space outside of UV bounds shouldn't affect area
+ var uvbounds = holderObjUVBounds[holderObjs[i]];
+ var width = uvbounds.z - uvbounds.x;
+ var height = uvbounds.w - uvbounds.y;
+ float uvboundsArea = width * height;
+
+ lmgroupArea += holderObjArea[holderObjs[i]] * uvboundsArea;
+ }
+ areaMult = 1.0f / lmgroupArea;
+ }
+
+ // Perform the division and sum up total UV area
+ for(int i=0; i<holderObjs.Count; i++)
+ {
+ holderObjArea[holderObjs[i]] *= areaMult;
+ }
+ }
+
+ static void SumHolderAreaPerLODLevel(List<GameObject> holderObjs, ExportSceneData data, PackData pdata)
+ {
+ var objToLodLevel = data.objToLodLevel;
+ var holderObjArea = data.holderObjArea;
+ var remainingAreaPerLodLevel = pdata.remainingAreaPerLodLevel;
+
+ for(int i=0; i<holderObjs.Count; i++)
+ {
+ int lodLevel = -1;
+ if (!objToLodLevel.TryGetValue(holderObjs[i], out lodLevel)) lodLevel = -1;
+
+ float lodArea = 0;
+ if (!remainingAreaPerLodLevel.TryGetValue(lodLevel, out lodArea)) lodArea = 0;
+
+ remainingAreaPerLodLevel[lodLevel] = lodArea + holderObjArea[holderObjs[i]];
+ }
+ }
+
+ static int CompareGameObjectsForPacking(GameObject a, GameObject b)
+ {
+ if (splitByScene)
+ {
+ if (a.scene.name != b.scene.name) return a.scene.name.CompareTo(b.scene.name);
+ }
+
+ if (ftRenderLightmap.giLodMode != ftRenderLightmap.GILODMode.ForceOff && exportTerrainAsHeightmap)
+ {
+ bool ba = a.name != "__ExportTerrainParent";
+ bool bb = b.name != "__ExportTerrainParent";
+ if (ba != bb) return ba.CompareTo(bb);
+ }
+
+ int lodLevelA = -1;
+ int lodLevelB = -1;
+ if (!cmp_objToLodLevel.TryGetValue(a, out lodLevelA)) lodLevelA = -1;
+ if (!cmp_objToLodLevel.TryGetValue(b, out lodLevelB)) lodLevelB = -1;
+
+ if (lodLevelA != lodLevelB) return lodLevelA.CompareTo(lodLevelB);
+
+ float areaA = cmp_holderObjArea[a];
+ float areaB = cmp_holderObjArea[b];
+
+ // Workaround for "override resolution"
+ // Always pack such rectangles first
+ var comp = a.GetComponent<BakeryLightmapGroupSelector>();
+ if (comp != null && comp.instanceResolutionOverride) areaA = comp.instanceResolution * 10000;
+
+ comp = b.GetComponent<BakeryLightmapGroupSelector>();
+ if (comp != null && comp.instanceResolutionOverride) areaB = comp.instanceResolution * 10000;
+
+ return areaB.CompareTo(areaA);
+ }
+
+ static void ApplyAreaToUVBounds(float area, Vector4 uvbounds, out float width, out float height)
+ {
+ width = height = Mathf.Sqrt(area);
+ float uwidth = uvbounds.z - uvbounds.x;
+ float uheight = uvbounds.w - uvbounds.y;
+ if (uwidth == 0 && uheight == 0)
+ {
+ width = height = 0;
+ }
+ else
+ {
+ float uvratio = uheight / uwidth;
+ if (uvratio <= 1.0f)
+ {
+ width /= uvratio;
+ //height *= uvratio;
+ }
+ else
+ {
+ height *= uvratio;
+ //width /= uvratio;
+ }
+ }
+ }
+
+ static bool Pack(BakeryLightmapGroup lmgroup, List<GameObject> holderObjs, ExportSceneData data, PackData pdata)
+ {
+ var holderObjArea = data.holderObjArea;
+ var holderObjUVBounds = data.holderObjUVBounds;
+ var holderRect = data.holderRect;
+ var objToLodLevel = data.objToLodLevel;
+ var groupList = data.groupList;
+ var lmBounds = data.lmBounds;
+ var autoAtlasGroups = data.autoAtlasGroups;
+ var autoAtlasGroupRootNodes = data.autoAtlasGroupRootNodes;
+
+ var remainingAreaPerLodLevel = pdata.remainingAreaPerLodLevel;
+
+ int atlasPaddingPixels = pstorage.texelPaddingForDefaultAtlasPacker;
+
+ //Debug.LogError("repack: "+repackScale);
+ pdata.repack = false;
+
+ AtlasNode rootNode;
+
+ if (lmgroup.isImplicit && lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas && autoAtlasGroupRootNodes != null && autoAtlasGroupRootNodes.Count > 0)
+ {
+ rootNode = autoAtlasGroupRootNodes[0];
+ }
+ else
+ {
+ rootNode = new AtlasNode();
+ }
+
+ rootNode.rc = new Rect(0, 0, 1, 1);
+ for(int i=0; i<holderObjs.Count; i++)
+ {
+ var area = holderObjArea[holderObjs[i]];
+ var uvbounds = holderObjUVBounds[holderObjs[i]];
+
+ // Calculate width and height of each holder in atlas UV space
+ float width, height;
+ var comp = holderObjs[i].GetComponent<BakeryLightmapGroupSelector>();
+ if (comp != null && comp.instanceResolutionOverride)
+ {
+ // Explicit holder size
+ pdata.hasResOverrides = true;
+ width = height = comp.instanceResolution / (float)lmgroup.resolution;
+ }
+ else
+ {
+ // Automatic: width and height = sqrt(area) transformed by UV AABB aspect ratio
+ ApplyAreaToUVBounds(area, uvbounds, out width, out height);
+
+ if (pstorage.alternativeScaleInLightmap)
+ {
+ var mr = GetValidRenderer(holderObjs[i]);
+ if (mr != null)
+ {
+ var so = new SerializedObject(mr);
+ var scaleInLm = so.FindProperty("m_ScaleInLightmap").floatValue;
+ width *= scaleInLm;
+ height *= scaleInLm;
+ }
+ }
+ }
+
+ // Clamp to full lightmap size
+ float twidth = width;
+ float theight = height;
+ if (lmgroup.isImplicit && lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas)
+ {
+ twidth = (width * texelsPerUnit) / lmgroup.resolution;
+ theight = (height * texelsPerUnit) / lmgroup.resolution;
+
+ //if (i==0) Debug.LogError(texelsPerUnit+" "+twidth);
+ }
+ //float unclampedTwidth = twidth;
+ //float unclampedTheight = twidth;
+ if (comp != null && comp.instanceResolutionOverride)
+ {
+ }
+ else
+ {
+ twidth *= pdata.repackScale;
+ theight *= pdata.repackScale;
+ }
+ twidth = twidth > 1 ? 1 : twidth;
+ theight = theight > 1 ? 1 : theight;
+ twidth = Mathf.Max(twidth, 1.0f / lmgroup.resolution);
+ theight = Mathf.Max(theight, 1.0f / lmgroup.resolution);
+ var rect = new Rect(0, 0, twidth, theight);
+
+ if (float.IsNaN(twidth) || float.IsNaN(theight))
+ {
+ ExportSceneError("NaN UVs detected for " + holderObjs[i].name+" "+rect.width+" "+rect.height+" "+width+" "+height+" "+lmgroup.resolution+" "+area+" "+(uvbounds.z - uvbounds.x)+" "+(uvbounds.w - uvbounds.y));
+ return false;
+ }
+
+ // Try inserting this rect
+ // Break autoatlas if lod level changes
+ // Optionally break autoatlas if scene changes
+ AtlasNode node = null;
+ int lodLevel;
+ if (!objToLodLevel.TryGetValue(holderObjs[i], out lodLevel)) lodLevel = -1;
+ bool splitAtlas = false;
+ if (splitByScene)
+ {
+ if (holderObjs[i].scene.name != lmgroup.sceneName)
+ {
+ splitAtlas = true;
+ }
+ }
+ if (ftRenderLightmap.giLodMode != ftRenderLightmap.GILODMode.ForceOff && exportTerrainAsHeightmap)
+ {
+ bool ba = holderObjs[i].name == "__ExportTerrainParent";
+ if (ba) lmgroup.containsTerrains = true;
+
+ if (i > 0)
+ {
+ bool bb = holderObjs[i-1].name == "__ExportTerrainParent";
+ if (ba != bb)
+ {
+ splitAtlas = true;
+ }
+ }
+ }
+ if (!splitAtlas)
+ {
+ if (lmgroup.isImplicit && lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas)
+ {
+ if (lodLevel == lmgroup.sceneLodLevel)
+ {
+ node = rootNode.Insert(holderObjs[i], rect);
+ }
+ }
+ else
+ {
+ node = rootNode.Insert(holderObjs[i], rect);
+ }
+ }
+
+ /*if (node!=null)
+ {
+ Debug.Log(holderObjs[i].name+" goes straight into "+lmgroup.name);
+ }*/
+
+ if (node == null)
+ {
+ if (lmgroup.isImplicit && lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas)
+ {
+ // Can't fit - try other autoAtlas lightmaps
+ BakeryLightmapGroup newGroup = null;
+ var holder = holderObjs[i];
+ int goodGroup = -1;
+ for(int g=1; g<autoAtlasGroups.Count; g++)
+ {
+ if (splitByScene)
+ {
+ if (autoAtlasGroups[g].sceneName != holderObjs[i].scene.name) continue;
+ }
+ if (ftRenderLightmap.giLodMode != ftRenderLightmap.GILODMode.ForceOff && exportTerrainAsHeightmap)
+ {
+ bool ba = holderObjs[i].name != "__ExportTerrainParent";
+ bool bb = !autoAtlasGroups[g].containsTerrains;
+ if (ba != bb) continue;
+ }
+ if (autoAtlasGroups[g].sceneLodLevel != lodLevel) continue;
+ twidth = (width * texelsPerUnit) / autoAtlasGroups[g].resolution;
+ theight = (height * texelsPerUnit) / autoAtlasGroups[g].resolution;
+ //unclampedTwidth = twidth;
+ //unclampedTheight = twidth;
+ twidth = twidth > 1 ? 1 : twidth;
+ theight = theight > 1 ? 1 : theight;
+ rect = new Rect(0, 0, twidth, theight);
+
+ node = autoAtlasGroupRootNodes[g].Insert(holder, rect);
+ if (node != null)
+ {
+ //Debug.Log(holder.name+" fits into "+autoAtlasGroups[g].name);
+ newGroup = autoAtlasGroups[g];
+ goodGroup = g;
+ break;
+ }
+ }
+
+ // Can't fit - create new lightmap (autoAtlas)
+ if (goodGroup < 0)
+ {
+ newGroup = ScriptableObject.CreateInstance<BakeryLightmapGroup>();
+ newGroup.name = holder.scene.name + "_LMA" + autoAtlasGroups.Count;
+ newGroup.isImplicit = true;
+ newGroup.sceneLodLevel = lodLevel;
+ if (splitByScene) newGroup.sceneName = holderObjs[i].scene.name;
+ //Debug.Log(holder.name+" creates "+newGroup.name);
+
+ if (ftRenderLightmap.giLodMode != ftRenderLightmap.GILODMode.ForceOff && exportTerrainAsHeightmap)
+ {
+ newGroup.containsTerrains = holderObjs[i].name == "__ExportTerrainParent";
+ }
+
+ newGroup.resolution = (int)(Mathf.Sqrt(remainingAreaPerLodLevel[lodLevel]) * texelsPerUnit);
+ if (mustBePOT)
+ {
+ if (atlasCountPriority)
+ {
+ newGroup.resolution = Mathf.NextPowerOfTwo(newGroup.resolution);
+ }
+ else
+ {
+ newGroup.resolution = Mathf.ClosestPowerOfTwo(newGroup.resolution);
+ }
+ }
+ newGroup.resolution = Math.Max(newGroup.resolution, minAutoResolution);
+ newGroup.resolution = Math.Min(newGroup.resolution, maxAutoResolution);
+
+ newGroup.bitmask = 1;
+ newGroup.area = 0;
+ newGroup.mode = BakeryLightmapGroup.ftLMGroupMode.PackAtlas;
+
+ newGroup.id = data.lmid;
+ groupList.Add(newGroup);
+ lmBounds.Add(new Bounds(new Vector3(0,0,0), new Vector3(0,0,0)));
+ data.lmid++;
+
+ autoAtlasGroups.Add(newGroup);
+ var rootNode2 = new AtlasNode();
+ rootNode2.rc = new Rect(0, 0, 1, 1);
+ autoAtlasGroupRootNodes.Add(rootNode2);
+
+ twidth = (width * texelsPerUnit) / newGroup.resolution;
+ theight = (height * texelsPerUnit) / newGroup.resolution;
+ //unclampedTwidth = twidth;
+ //unclampedTheight = twidth;
+ twidth = twidth > 1 ? 1 : twidth;
+ theight = theight > 1 ? 1 : theight;
+
+ rect = new Rect(0, 0, twidth, theight);
+
+ node = rootNode2.Insert(holder, rect);
+ }
+
+ // Modify implicit group storage
+ MoveObjectToImplicitGroup(holder, newGroup, data);
+ /*
+ var scn = holder.scene;
+ tempStorage.implicitGroupMap[holder] = newGroup;
+ for(int k=0; k<storages[sceneToID[holder.scene]].implicitGroupedObjects.Count; k++)
+ {
+ if (storages[sceneToID[holder.scene]].implicitGroupedObjects[k] == holder)
+ {
+ storages[sceneToID[holder.scene]].implicitGroups[k] = newGroup;
+ //Debug.LogError("Implicit set: " + k+" "+newGroup.name+" "+holder.name);
+ }
+ }
+ */
+ //lmgroup = newGroup;
+ }
+ else
+ {
+ if (!pdata.repackStage2)
+ {
+ // explicit packed atlas - can't fit - try shrinking the whole atlas
+ pdata.repackTries++;
+ if (pdata.repackTries < atlasMaxTries)
+ {
+ pdata.repack = true;
+ pdata.repackScale *= 0.75f;
+ //Debug.LogError("Can't fit, set " +repackScale);
+ break;
+ }
+ }
+ else
+ {
+ // explicit packed atlas - did fit, now trying to scale up, doesn't work - found optimal fit
+ pdata.repack = true;
+ pdata.repackScale /= atlasScaleUpValue;//*= 0.75f;
+ //Debug.LogError("Final, set " +repackScale);
+ pdata.finalRepack = true;
+ pdata.repackTries = 0;
+ break;
+ }
+ }
+ }
+
+ if (node == null)
+ {
+ // No way to fit
+ ExportSceneError("Can't fit " + holderObjs[i].name+" "+rect.width+" "+rect.height);
+ return false;
+ }
+ else
+ {
+ // Generate final rectangle to transform local UV -> atlas UV
+ float padding = ((float)atlasPaddingPixels) / lmgroup.resolution;
+
+ var paddedRc = new Rect(node.rc.x + padding,
+ node.rc.y + padding,
+ node.rc.width - padding * 2,
+ node.rc.height - padding * 2);
+
+ paddedRc.x -= uvbounds.x * (paddedRc.width / (uvbounds.z - uvbounds.x));
+ paddedRc.y -= uvbounds.y * (paddedRc.height / (uvbounds.w - uvbounds.y));
+ paddedRc.width /= uvbounds.z - uvbounds.x;
+ paddedRc.height /= uvbounds.w - uvbounds.y;
+
+ holderRect[holderObjs[i]] = paddedRc;
+ }
+
+ //float areaReduction = (twidth*theight) / (unclampedTwidth*unclampedTheight);
+ remainingAreaPerLodLevel[lodLevel] -= area;// * areaReduction;
+ }
+
+ if (!lmgroup.isImplicit && lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas)
+ {
+ if (pdata.finalRepack && pdata.repack)
+ {
+ pdata.continueRepack = true;
+ return true;
+ }
+ if (pdata.finalRepack)
+ {
+ pdata.continueRepack = false;
+ return true;
+ }
+
+ if (!pdata.repack && !pdata.repackStage2)
+ {
+ //if (repackTries > 0) break; // shrinked down just now - don't scale up
+
+ pdata.repackStage2 = true; // scale up now
+ pdata.repack = true;
+ pdata.repackScale *= atlasScaleUpValue;///= 0.75f;
+ pdata.repackTries = 0;
+ //Debug.LogError("Scale up, set " +repackScale);
+ }
+ else if (pdata.repackStage2)
+ {
+ pdata.repackTries++;
+ if (pdata.repackTries == atlasMaxTries)
+ {
+ pdata.continueRepack = false;
+ return true;
+ }
+ pdata.repack = true;
+ pdata.repackScale *= atlasScaleUpValue;///= 0.75f;
+ //Debug.LogError("Scale up cont, set " +repackScale);
+ }
+ }
+ return true;
+ }
+
+ static void MoveObjectToImplicitGroup(GameObject holder, BakeryLightmapGroup newGroup, ExportSceneData data)
+ {
+ var storages = data.storages;
+ var sceneToID = data.sceneToID;
+
+ // Modify implicit group storage
+ var scn = holder.scene;
+ tempStorage.implicitGroupMap[holder] = newGroup;
+ for(int k=0; k<storages[sceneToID[holder.scene]].implicitGroupedObjects.Count; k++)
+ {
+ if (storages[sceneToID[holder.scene]].implicitGroupedObjects[k] == holder)
+ {
+ storages[sceneToID[holder.scene]].implicitGroups[k] = newGroup;
+ //Debug.LogError("Implicit set: " + k+" "+newGroup.name+" "+holder.name);
+ }
+ }
+ }
+
+ static List<int> GetAtlasBucketRanges(List<GameObject> holderObjs, ExportSceneData data, bool onlyUserSplits)
+ {
+ var objToLodLevel = data.objToLodLevel;
+
+ var ranges = new List<int>();
+ int start = 0;
+ int end = 0;
+ if (holderObjs.Count > 0)
+ {
+ var sceneName = holderObjs[0].scene.name;
+ int lodLevel;
+ if (!objToLodLevel.TryGetValue(holderObjs[0], out lodLevel)) lodLevel = -1;
+ bool isTerrain = holderObjs[0].name == "__ExportTerrainParent";
+
+ for(int i=0; i<holderObjs.Count; i++)
+ {
+ bool splitAtlas = false;
+
+ // Split by scene
+ if (splitByScene)
+ {
+ var objSceneName = holderObjs[i].scene.name;
+ if (objSceneName != sceneName)
+ {
+ splitAtlas = true;
+ sceneName = objSceneName;
+ }
+ }
+
+ if (!onlyUserSplits)
+ {
+ // Split by LOD
+ int objLodLevel;
+ if (!objToLodLevel.TryGetValue(holderObjs[i], out objLodLevel)) objLodLevel = -1;
+ if (objLodLevel != lodLevel)
+ {
+ lodLevel = objLodLevel;
+ splitAtlas = true;
+ }
+
+ // Split by terrain
+ if (ftRenderLightmap.giLodMode != ftRenderLightmap.GILODMode.ForceOff && exportTerrainAsHeightmap)
+ {
+ bool ba = holderObjs[i].name == "__ExportTerrainParent";
+ if (ba != isTerrain)
+ {
+ isTerrain = ba;
+ splitAtlas = true;
+ }
+ }
+ }
+
+ if (splitAtlas)
+ {
+ end = i;
+ ranges.Add(start);
+ ranges.Add(end-1);
+ start = end;
+ }
+ }
+ }
+ end = holderObjs.Count-1;
+ ranges.Add(start);
+ ranges.Add(end);
+ return ranges;
+ }
+
+ static float SumObjectsArea(List<GameObject> holderObjs, int start, int end, ExportSceneData data)
+ {
+ var holderObjArea = data.holderObjArea;
+
+ float area = 0;
+ for(int i=start; i<=end; i++)
+ {
+ area += holderObjArea[holderObjs[i]];
+ }
+ return area;
+ }
+
+ static BakeryLightmapGroup AllocateAutoAtlas(int count, BakeryLightmapGroup lmgroup, ExportSceneData data, int[] atlasSizes = null)
+ {
+ var lmBounds = data.lmBounds;
+ var groupList = data.groupList;
+ var autoAtlasGroups = data.autoAtlasGroups;
+ var autoAtlasGroupRootNodes = data.autoAtlasGroupRootNodes;
+
+ BakeryLightmapGroup newGroup = null;
+
+ for(int i=0; i<count; i++)
+ {
+ // Create additional lightmaps
+ newGroup = ScriptableObject.CreateInstance<BakeryLightmapGroup>();
+ newGroup.name = lmgroup.sceneName + "_LMA" + autoAtlasGroups.Count;
+ newGroup.isImplicit = true;
+ newGroup.sceneLodLevel = lmgroup.sceneLodLevel;
+ if (splitByScene) newGroup.sceneName = lmgroup.sceneName;
+ newGroup.containsTerrains = lmgroup.containsTerrains;
+
+ newGroup.resolution = atlasSizes != null ? atlasSizes[i] : lmgroup.resolution;
+
+ newGroup.bitmask = 1;
+ newGroup.area = 0;
+ newGroup.mode = lmgroup.mode;// BakeryLightmapGroup.ftLMGroupMode.PackAtlas;
+
+ newGroup.renderMode = lmgroup.renderMode;
+ newGroup.renderDirMode = lmgroup.renderDirMode;
+ newGroup.atlasPacker = lmgroup.atlasPacker;
+ newGroup.computeSSS = lmgroup.computeSSS;
+ newGroup.sssSamples = lmgroup.sssSamples;
+ newGroup.sssDensity = lmgroup.sssDensity;
+ newGroup.sssColor = lmgroup.sssColor * lmgroup.sssScale;
+ newGroup.fakeShadowBias = lmgroup.fakeShadowBias;
+ newGroup.transparentSelfShadow = lmgroup.transparentSelfShadow;
+ newGroup.flipNormal = lmgroup.flipNormal;
+
+ newGroup.id = data.lmid;
+ groupList.Add(newGroup);
+ lmBounds.Add(new Bounds(new Vector3(0,0,0), new Vector3(0,0,0)));
+ data.lmid++;
+
+ autoAtlasGroups.Add(newGroup);
+ var rootNode2 = new AtlasNode();
+ rootNode2.rc = new Rect(0, 0, 1, 1);
+ autoAtlasGroupRootNodes.Add(rootNode2);
+ }
+
+ return newGroup;
+ }
+
+ static bool PackWithXatlas(BakeryLightmapGroup lmgroup, List<GameObject> holderObjs, ExportSceneData data, PackData pdata)
+ {
+ var holderObjArea = data.holderObjArea;
+ var holderObjUVBounds = data.holderObjUVBounds;
+ var holderRect = data.holderRect;
+ var autoAtlasGroups = data.autoAtlasGroups;
+ var objToLodLevel = data.objToLodLevel;
+ var objsToWriteHolder = data.objsToWriteHolder;
+ var objsToWrite = data.objsToWrite;
+
+ bool warned = false;
+
+ // Split objects into "buckets" by scene, terrains, LODs, etc
+ // Objects are already pre-sorted, so we need only ranges
+ int bStart = 0;
+ int bEnd = holderObjs.Count-1;
+ int bucketCount = 2;
+ List<int> buckets = null;
+ if (lmgroup.isImplicit)
+ {
+ buckets = GetAtlasBucketRanges(holderObjs, data, postPacking);
+ bucketCount = buckets.Count;
+ }
+
+ var holderAutoIndex = new int[holderObjs.Count];
+
+ for(int bucket=0; bucket<bucketCount; bucket+=2)
+ {
+ if (lmgroup.isImplicit)
+ {
+ bStart = buckets[bucket];
+ bEnd = buckets[bucket+1];
+ }
+ int bSize = bEnd - bStart;
+ if (bucket > 0)
+ {
+ // Start new bucket
+ lmgroup = AllocateAutoAtlas(1, lmgroup, data);
+ }
+ int firstAutoAtlasIndex = autoAtlasGroups.Count - 1;
+ if (autoAtlasGroups.Count > 0 && autoAtlasGroups[0] == lmgroup)
+ {
+ // new bucket always uses the original LMGroup
+ // if the original LMGroup is implicit, it'll be moved to firstAutoAtlasIndex
+ // but in case of the actual autoAtlas, the original LMGroup should use atlas index 0
+ firstAutoAtlasIndex = 0;
+ }
+
+ if (lmgroup.isImplicit)
+ {
+ float bucketArea = SumObjectsArea(holderObjs, bStart, bEnd, data);
+ lmgroup.resolution = ResolutionFromArea(bucketArea);
+ }
+
+ // Fill some LMGroup data
+ lmgroup.sceneName = holderObjs[bStart].scene.name;
+ int lodLevel;
+ if (!objToLodLevel.TryGetValue(holderObjs[bStart], out lodLevel)) lodLevel = -1;
+ lmgroup.sceneLodLevel = lodLevel;
+ if (ftRenderLightmap.giLodMode != ftRenderLightmap.GILODMode.ForceOff && exportTerrainAsHeightmap)
+ {
+ lmgroup.containsTerrains = holderObjs[bStart].name == "__ExportTerrainParent";
+ }
+
+ var atlas = xatlas.xatlasCreateAtlas();
+
+ const int attempts = 4096;
+ int padding = pstorage.texelPaddingForXatlasAtlasPacker;
+ const bool allowRotate = false;
+ float packTexelsPerUnit = lmgroup.isImplicit ? 1.0f : 0.0f; // multiple atlaseses vs single atlas
+ int packResolution = lmgroup.resolution;
+ int maxChartSize = 0;//packResolution;
+ bool bruteForce = true; // high quality
+
+ int vertCount = 4;
+ int indexCount = 6;
+ Vector2[] uv = null;
+ int[] indices = null;
+ if (!holeFilling)
+ {
+ uv = new Vector2[4];
+ indices = new int[6];
+ indices[0] = 0;
+ indices[1] = 1;
+ indices[2] = 2;
+ indices[3] = 2;
+ indices[4] = 3;
+ indices[5] = 0;
+ }
+ var uvBuffer = new Vector2[4];
+ var xrefBuffer = new int[4];
+ var indexBuffer = new int[6];
+
+ for(int i=bStart; i<=bEnd; i++)
+ {
+ if (!warned)
+ {
+ var comp = holderObjs[i].GetComponent<BakeryLightmapGroupSelector>();
+ if (comp != null && comp.instanceResolutionOverride)
+ {
+ if (!ExportSceneValidationMessage("When using xatlas as atlas packer, 'Override resolution' option is not supported for LMGroups.\nOption is used on: " + holderObjs[i].name))
+ {
+ xatlas.xatlasClear(atlas);
+ return false;
+ }
+ warned = true;
+ }
+ }
+
+ var area = holderObjArea[holderObjs[i]];
+ var uvbounds = holderObjUVBounds[holderObjs[i]];
+
+ // Automatic: width and height = sqrt(area) transformed by UV AABB aspect ratio
+ float width, height;
+ ApplyAreaToUVBounds(area, uvbounds, out width, out height);
+
+ // Clamp to full lightmap size
+ float twidth = width;
+ float theight = height;
+ if (lmgroup.isImplicit && lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas)
+ {
+ twidth = (width * texelsPerUnit);// / lmgroup.resolution;
+ theight = (height * texelsPerUnit);// / lmgroup.resolution;
+ }
+
+ if (!holeFilling)
+ {
+ uv[0] = new Vector2(0,0);
+ uv[1] = new Vector2(twidth,0);
+ uv[2] = new Vector2(twidth,theight);
+ uv[3] = new Vector2(0,theight);
+ }
+ else
+ {
+ List<int> indexList = null;
+ List<Vector2> uvList = null;
+ vertCount = indexCount = 0;
+ int numMeshes = 0;
+ var ubounds = holderObjUVBounds[holderObjs[i]];
+ var holder = holderObjs[i];
+ for(int o=0; o<objsToWriteHolder.Count; o++)
+ {
+ if (objsToWriteHolder[o] != holder) continue;
+
+ if (numMeshes == 1)
+ {
+ indexList = new List<int>();
+ uvList = new List<Vector2>();
+ for(int j=0; j<indices.Length; j++)
+ {
+ indexList.Add(indices[j]);
+ }
+ for(int j=0; j<uv.Length; j++)
+ {
+ uvList.Add(uv[j]);
+ }
+ }
+
+ bool isSkin;
+ var mesh = GetSharedMeshSkinned(objsToWrite[o], out isSkin);
+ indices = mesh.triangles;
+ var uv1 = mesh.uv;
+ var uv2 = mesh.uv2;
+ if (uv2 == null || uv2.Length == 0)
+ {
+ uv = uv1;
+ }
+ else
+ {
+ uv = uv2;
+ }
+ for(int t=0; t<uv.Length; t++)
+ {
+ float u = (uv[t].x - ubounds.x) / (ubounds.z - ubounds.x);
+ float v = (uv[t].y - ubounds.y) / (ubounds.w - ubounds.y);
+ u *= twidth;
+ v *= theight;
+ uv[t] = new Vector2(u, v);
+ }
+
+ if (numMeshes > 0)
+ {
+ for(int j=0; j<indices.Length; j++)
+ {
+ indexList.Add(indices[j] + vertCount);
+ }
+ for(int j=0; j<uv.Length; j++)
+ {
+ uvList.Add(uv[j]);
+ }
+ }
+
+ vertCount += uv.Length;
+ indexCount += indices.Length;
+ numMeshes++;
+ }
+ if (numMeshes > 1)
+ {
+ uv = uvList.ToArray();
+ indices = indexList.ToArray();
+ }
+ }
+
+ var handleUV = GCHandle.Alloc(uv, GCHandleType.Pinned);
+ int err = 0;
+
+ try
+ {
+ var pointerUV = handleUV.AddrOfPinnedObject();
+
+ err = xatlas.xatlasAddUVMesh(atlas, vertCount, pointerUV, indexCount, indices, allowRotate);
+ }
+ finally
+ {
+ if (handleUV.IsAllocated) handleUV.Free();
+ }
+
+ if (err == 1)
+ {
+ Debug.LogError("xatlas::AddMesh: indices are out of range");
+ xatlas.xatlasClear(atlas);
+ return false;
+ }
+ else if (err == 2)
+ {
+ Debug.LogError("xatlas::AddMesh: index count is incorrect");
+ xatlas.xatlasClear(atlas);
+ return false;
+ }
+ else if (err != 0)
+ {
+ Debug.LogError("xatlas::AddMesh: unknown error");
+ xatlas.xatlasClear(atlas);
+ return false;
+ }
+ }
+
+ //xatlas.xatlasParametrize(atlas);
+ xatlas.xatlasPack(atlas, attempts, packTexelsPerUnit, packResolution, maxChartSize, padding, bruteForce, true);//, allowRotate);
+
+ int atlasCount = xatlas.xatlasGetAtlasCount(atlas);
+ var atlasSizes = new int[atlasCount];
+
+ xatlas.xatlasNormalize(atlas, atlasSizes);
+
+ // Create additional lightmaps
+ AllocateAutoAtlas(atlasCount-1, lmgroup, data, atlasSizes);
+
+ // Move objects into new atlases
+ if (lmgroup.isImplicit)
+ {
+ for(int i=0; i<=bSize; i++)
+ {
+ int atlasIndex = xatlas.xatlasGetAtlasIndex(atlas, i, 0);
+
+ // Modify implicit group storage
+ var holder = holderObjs[bStart + i];
+ var newGroup = autoAtlasGroups[firstAutoAtlasIndex + atlasIndex];
+ MoveObjectToImplicitGroup(holderObjs[bStart + i], newGroup, data);
+ holderAutoIndex[bStart + i] = firstAutoAtlasIndex + atlasIndex;
+ }
+ }
+
+ for(int i=0; i<=bSize; i++)
+ {
+ // Get data from xatlas
+ int newVertCount = xatlas.xatlasGetVertexCount(atlas, i);
+ uvBuffer = new Vector2[newVertCount];
+ xrefBuffer = new int[newVertCount];
+
+ int newIndexCount = xatlas.xatlasGetIndexCount(atlas, i);
+ indexBuffer = new int[newIndexCount];
+
+ if (holeFilling)
+ {
+ uvBuffer = new Vector2[newVertCount];
+ xrefBuffer = new int[newVertCount];
+ indexBuffer = new int[newIndexCount];
+ }
+
+ var handleT = GCHandle.Alloc(uvBuffer, GCHandleType.Pinned);
+ var handleX = GCHandle.Alloc(xrefBuffer, GCHandleType.Pinned);
+ var handleI = GCHandle.Alloc(indexBuffer, GCHandleType.Pinned);
+ try
+ {
+ var pointerT = handleT.AddrOfPinnedObject();
+ var pointerX = handleX.AddrOfPinnedObject();
+ var pointerI = handleI.AddrOfPinnedObject();
+ xatlas.xatlasGetData(atlas, i, pointerT, pointerX, pointerI);
+ }
+ finally
+ {
+ if (handleT.IsAllocated) handleT.Free();
+ if (handleX.IsAllocated) handleX.Free();
+ if (handleI.IsAllocated) handleI.Free();
+ }
+
+ float minU = float.MaxValue;
+ float minV = float.MaxValue;
+ float maxU = -float.MaxValue;
+ float maxV = -float.MaxValue;
+ for(int j=0; j<newVertCount; j++)
+ {
+ if (uvBuffer[j].x < minU) minU = uvBuffer[j].x;
+ if (uvBuffer[j].y < minV) minV = uvBuffer[j].y;
+ if (uvBuffer[j].x > maxU) maxU = uvBuffer[j].x;
+ if (uvBuffer[j].y > maxV) maxV = uvBuffer[j].y;
+ }
+
+ // Generate final rectangle to transform local UV -> atlas UV
+ float upadding = 0;
+ var uvbounds = holderObjUVBounds[holderObjs[bStart + i]];
+ var paddedRc = new Rect(minU + upadding,
+ minV + upadding,
+ (maxU-minU) - upadding * 2,
+ (maxV-minV) - upadding * 2);
+
+ paddedRc.x -= uvbounds.x * (paddedRc.width / (uvbounds.z - uvbounds.x));
+ paddedRc.y -= uvbounds.y * (paddedRc.height / (uvbounds.w - uvbounds.y));
+ paddedRc.width /= uvbounds.z - uvbounds.x;
+ paddedRc.height /= uvbounds.w - uvbounds.y;
+
+ holderRect[holderObjs[bStart + i]] = paddedRc;
+ }
+
+ xatlas.xatlasClear(atlas);
+ }
+
+ if (postPacking)
+ {
+ buckets = GetAtlasBucketRanges(holderObjs, data, false);
+ bucketCount = buckets.Count;
+
+ DebugLogInfo("Bucket count for " + lmgroup.name +": " + (bucketCount/2));
+
+ if (lmgroup.isImplicit)
+ {
+ // Post-packing for auto-atlased groups
+ var autoLMBuckets = new List<int>[autoAtlasGroups.Count];
+ for(int bucket=0; bucket<bucketCount; bucket+=2)
+ {
+ bStart = buckets[bucket];
+ bEnd = buckets[bucket+1];
+ for(int i=bStart; i<=bEnd; i++)
+ {
+ int autoLM = holderAutoIndex[i];
+ if (autoLMBuckets[autoLM] == null) autoLMBuckets[autoLM] = new List<int>();
+ if (!autoLMBuckets[autoLM].Contains(bucket)) autoLMBuckets[autoLM].Add(bucket);
+ }
+ }
+ int origGroupCount = autoAtlasGroups.Count;
+ for(int i=0; i<origGroupCount; i++)
+ {
+ if (autoLMBuckets[i] != null && autoLMBuckets[i].Count > 1)
+ {
+ // Split
+ for(int j=1; j<autoLMBuckets[i].Count; j++)
+ {
+ autoAtlasGroups[i].sceneName = holderObjs[bStart].scene.name;
+
+ var newGroup = AllocateAutoAtlas(1, autoAtlasGroups[i], data);
+ int bucket = autoLMBuckets[i][j];
+ bStart = buckets[bucket];
+ bEnd = buckets[bucket+1];
+
+ // Update LMGroup data
+ //newGroup.sceneName = holderObjs[bStart].scene.name;
+ int lodLevel;
+ if (!objToLodLevel.TryGetValue(holderObjs[bStart], out lodLevel)) lodLevel = -1;
+ newGroup.sceneLodLevel = lodLevel;
+ if (ftRenderLightmap.giLodMode != ftRenderLightmap.GILODMode.ForceOff && exportTerrainAsHeightmap)
+ {
+ newGroup.containsTerrains = holderObjs[bStart].name == "__ExportTerrainParent";
+ }
+ newGroup.parentName = autoAtlasGroups[i].name;
+ autoAtlasGroups[i].parentName = "|";
+ //Debug.LogError(autoAtlasGroups[i].name+" (" +autoAtlasGroups[i].id+") -> "+newGroup.name + " (" + newGroup.id+", "+newGroup.parentID+")");
+
+ for(int k=bStart; k<=bEnd; k++)
+ {
+ int autoLM = holderAutoIndex[k];
+ if (autoLM == i)
+ {
+ MoveObjectToImplicitGroup(holderObjs[k], newGroup, data);
+ holderAutoIndex[k] = -1; // mark as moved
+ }
+ }
+ }
+ }
+ }
+ for(int i=0; i<origGroupCount; i++)
+ {
+ if (autoLMBuckets[i] != null)
+ {
+ for(int j=0; j<holderObjs.Count; j++)
+ {
+ if (holderAutoIndex[j] != i) continue;
+
+ // Update LMGroup data
+ var newGroup = autoAtlasGroups[i];
+ newGroup.sceneName = holderObjs[j].scene.name;
+ int lodLevel;
+ if (!objToLodLevel.TryGetValue(holderObjs[j], out lodLevel)) lodLevel = -1;
+ newGroup.sceneLodLevel = lodLevel;
+ if (ftRenderLightmap.giLodMode != ftRenderLightmap.GILODMode.ForceOff && exportTerrainAsHeightmap)
+ {
+ newGroup.containsTerrains = holderObjs[j].name == "__ExportTerrainParent";
+ }
+
+ break;
+ }
+ }
+ }
+ }
+ else if (bucketCount > 0)
+ {
+ // Post-packing for explicit groups
+ // Single LMGroup -> LMGroup*buckets
+
+ // Setup first bucket
+ bStart = buckets[0];
+ bEnd = buckets[1];
+ int lodLevel;
+ if (!objToLodLevel.TryGetValue(holderObjs[bStart], out lodLevel)) lodLevel = -1;
+ lmgroup.sceneLodLevel = lodLevel;
+ if (ftRenderLightmap.giLodMode != ftRenderLightmap.GILODMode.ForceOff && exportTerrainAsHeightmap)
+ {
+ lmgroup.containsTerrains = holderObjs[bStart].name == "__ExportTerrainParent";
+ }
+ //Debug.LogError(lmgroup.name+": "+ lmgroup.sceneLodLevel+" because of " + holderObjs[bStart].name);
+
+ // Skip first bucket
+ for(int bucket=2; bucket<bucketCount; bucket+=2)
+ {
+ bStart = buckets[bucket];
+ bEnd = buckets[bucket+1];
+
+ var newGroup = AllocateAutoAtlas(1, lmgroup, data);
+
+ if (!objToLodLevel.TryGetValue(holderObjs[bStart], out lodLevel)) lodLevel = -1;
+ newGroup.sceneLodLevel = lodLevel;
+ if (ftRenderLightmap.giLodMode != ftRenderLightmap.GILODMode.ForceOff && exportTerrainAsHeightmap)
+ {
+ newGroup.containsTerrains = holderObjs[bStart].name == "__ExportTerrainParent";
+ }
+ newGroup.mode = lmgroup.mode;
+ newGroup.parentName = lmgroup.name;
+ lmgroup.parentName = "|";
+
+ //Debug.LogError(newGroup.name+": "+ newGroup.sceneLodLevel+" because of " + holderObjs[bStart].name);
+
+ for(int k=bStart; k<=bEnd; k++)
+ {
+ //MoveObjectToImplicitGroup(holderObjs[k], newGroup, data);
+ data.storages[data.sceneToID[holderObjs[k].scene]].implicitGroupedObjects.Add(holderObjs[k]);
+ data.storages[data.sceneToID[holderObjs[k].scene]].implicitGroups.Add(newGroup);
+ tempStorage.implicitGroupMap[holderObjs[k]] = newGroup;
+ }
+ }
+ }
+ }
+
+ return true;
+ }
+
+ static void NormalizeAtlas(BakeryLightmapGroup lmgroup, List<GameObject> holderObjs, ExportSceneData data, PackData pdata)
+ {
+ var holderRect = data.holderRect;
+
+ if (!lmgroup.isImplicit && lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas && !pdata.hasResOverrides)
+ {
+ float maxx = 0;
+ float maxy = 0;
+ for(int i=0; i<holderObjs.Count; i++)
+ {
+ var rect = holderRect[holderObjs[i]];
+ if ((rect.x + rect.width) > maxx) maxx = rect.x + rect.width;
+ if ((rect.y + rect.height) > maxy) maxy = rect.y + rect.height;
+ }
+ float maxDimension = maxx > maxy ? maxx : maxy;
+ float normalizeScale = 1.0f / maxDimension;
+ for(int i=0; i<holderObjs.Count; i++)
+ {
+ var rect = holderRect[holderObjs[i]];
+ holderRect[holderObjs[i]] = new Rect(rect.x * normalizeScale, rect.y * normalizeScale, rect.width * normalizeScale, rect.height * normalizeScale);
+ }
+ }
+ }
+
+ static bool PackAtlases(ExportSceneData data)
+ {
+ // IN, OUT lmgroup.containsTerrains, OUT holderObjs (sort)
+ var groupToHolderObjects = data.groupToHolderObjects;
+
+ // IN
+ var objToLodLevel = data.objToLodLevel; // LODs packed to separate atlases
+ cmp_objToLodLevel = objToLodLevel;
+
+ // IN/OUT
+ var holderObjArea = data.holderObjArea; // performs normalization
+ cmp_holderObjArea = holderObjArea;
+
+ // Pack atlases
+ // Try to scale all objects to occupy all atlas space
+ foreach(var pair in groupToHolderObjects)
+ {
+ // For every LMGroup with PackAtlas mode
+ var lmgroup = pair.Key;
+ var holderObjs = pair.Value; // get all objects
+
+ var pdata = new PackData();
+
+ // Normalize by worldspace area and uv area
+ // Read/write holderObjArea
+ NormalizeHolderArea(lmgroup, holderObjs, data);
+
+ // Sort objects by area and scene LOD level
+ // + optionally by scene
+ // + split by terrain
+ holderObjs.Sort(CompareGameObjectsForPacking);
+
+ var packer = lmgroup.atlasPacker == BakeryLightmapGroup.AtlasPacker.Auto ? atlasPacker : (ftGlobalStorage.AtlasPacker)lmgroup.atlasPacker;
+ if (packer == ftGlobalStorage.AtlasPacker.xatlas)
+ {
+ if (!PackWithXatlas(lmgroup, holderObjs, data, pdata))
+ {
+ ExportSceneError("Failed packing atlas");
+ return false;
+ }
+ }
+ else
+ {
+ // Calculate area sum for every scene LOD level in LMGroup
+ // Write remainingAreaPerLodLevel
+ SumHolderAreaPerLODLevel(holderObjs, data, pdata);
+
+ // Perform recursive packing
+ while(pdata.repack)
+ {
+ pdata.continueRepack = true;
+ if (!Pack(lmgroup, holderObjs, data, pdata)) return false;
+ if (!pdata.continueRepack) break;
+ }
+ // Normalize atlas by largest axis
+ NormalizeAtlas(lmgroup, holderObjs, data, pdata);
+ }
+ }
+ cmp_objToLodLevel = null;
+ cmp_holderObjArea = null;
+
+ return true;
+ }
+
+ static void NormalizeAutoAtlases(ExportSceneData data)
+ {
+ var autoAtlasGroups = data.autoAtlasGroups;
+ var autoAtlasGroupRootNodes = data.autoAtlasGroupRootNodes;
+ var holderRect = data.holderRect;
+
+ // Normalize autoatlases
+ var stack = new Stack<AtlasNode>();
+ for(int g=0; g<autoAtlasGroups.Count; g++)
+ {
+ var lmgroup = autoAtlasGroups[g];
+ if (lmgroup.parentName != null && lmgroup.parentName.Length > 0) continue;
+
+ var rootNode = autoAtlasGroupRootNodes[g];
+ float maxx = 0;
+ float maxy = 0;
+ rootNode.GetMax(ref maxx, ref maxy);
+ float maxDimension = maxx > maxy ? maxx : maxy;
+ float normalizeScale = 1.0f / maxDimension;
+ stack.Clear();
+ stack.Push(rootNode);
+ while(stack.Count > 0)
+ {
+ var node = stack.Pop();
+ if (node.obj != null)
+ {
+ var rect = holderRect[node.obj];
+ holderRect[node.obj] = new Rect(rect.x * normalizeScale, rect.y * normalizeScale, rect.width * normalizeScale, rect.height * normalizeScale);
+ }
+ if (node.child0 != null) stack.Push(node.child0);
+ if (node.child1 != null) stack.Push(node.child1);
+ }
+ if (maxDimension < 0.5f)
+ {
+ lmgroup.resolution /= 2; // shrink the lightmap after normalization if it was too empty
+ lmgroup.resolution = Math.Max(lmgroup.resolution, minAutoResolution);
+ }
+ }
+ }
+
+ static void JoinAutoAtlases(ExportSceneData data)
+ {
+ var autoAtlasGroups = data.autoAtlasGroups;
+ var autoAtlasGroupRootNodes = data.autoAtlasGroupRootNodes;
+ var groupList = data.groupList;
+ var lmBounds = data.lmBounds;
+ var holderRect = data.holderRect;
+ var objsToWrite = data.objsToWrite;
+ var objsToWriteGroup = data.objsToWriteGroup;
+
+ var stack = new Stack<AtlasNode>();
+
+ // Join autoatlases
+ var autoAtlasCategories = new List<string>();
+ bool joined = false;
+ for(int g=0; g<autoAtlasGroups.Count; g++)
+ {
+ if (autoAtlasGroups[g].parentName != null && autoAtlasGroups[g].parentName.Length > 0) continue;
+
+ string cat = "/" + autoAtlasGroups[g].sceneLodLevel;
+ if (splitByScene) cat = autoAtlasGroups[g].sceneName + cat;
+ if (!autoAtlasCategories.Contains(cat)) autoAtlasCategories.Add(cat);
+ }
+ for(int alod=0; alod<autoAtlasCategories.Count; alod++)
+ {
+ var cat = autoAtlasCategories[alod];
+ var autoAtlasSizes = new List<int>();
+ var atlasStack = new Stack<BakeryLightmapGroup>();
+ for(int g=0; g<autoAtlasGroups.Count; g++)
+ {
+ if (autoAtlasGroups[g].parentName != null && autoAtlasGroups[g].parentName.Length > 0) continue;
+
+ var thisCat = "/" + autoAtlasGroups[g].sceneLodLevel;
+ if (splitByScene) thisCat = autoAtlasGroups[g].sceneName + thisCat;
+
+ if (thisCat != cat) continue;
+ if (autoAtlasGroups[g].resolution == maxAutoResolution) continue;
+ if (!autoAtlasSizes.Contains(autoAtlasGroups[g].resolution)) autoAtlasSizes.Add(autoAtlasGroups[g].resolution);
+ }
+ autoAtlasSizes.Sort();
+ for(int s=0; s<autoAtlasSizes.Count; s++)
+ {
+ int asize = autoAtlasSizes[s];
+ atlasStack.Clear();
+ for(int g=0; g<autoAtlasGroups.Count; g++)
+ {
+ if (autoAtlasGroups[g].parentName != null && autoAtlasGroups[g].parentName.Length > 0) continue;
+
+ var thisCat = "/" + autoAtlasGroups[g].sceneLodLevel;
+ if (splitByScene) thisCat = autoAtlasGroups[g].sceneName + thisCat;
+
+ if (thisCat != cat) continue;
+ if (autoAtlasGroups[g].resolution != asize) continue;
+ atlasStack.Push(autoAtlasGroups[g]);
+ if (atlasStack.Count == 4)
+ {
+ var newGroup = ScriptableObject.CreateInstance<BakeryLightmapGroup>();
+ newGroup.name = autoAtlasGroups[g].name;
+ newGroup.isImplicit = true;
+ newGroup.sceneLodLevel = autoAtlasGroups[g].sceneLodLevel;
+ newGroup.sceneName = autoAtlasGroups[g].sceneName;
+
+ newGroup.resolution = asize * 2;
+
+ newGroup.bitmask = autoAtlasGroups[g].bitmask;
+ newGroup.mode = BakeryLightmapGroup.ftLMGroupMode.PackAtlas;
+
+ newGroup.id = data.lmid;
+ groupList.Add(newGroup);
+ lmBounds.Add(new Bounds(new Vector3(0,0,0), new Vector3(0,0,0)));
+ data.lmid++;
+
+ autoAtlasGroups.Add(newGroup);
+ var rootNode2 = new AtlasNode();
+ rootNode2.rc = new Rect(0, 0, 1, 1);
+ autoAtlasGroupRootNodes.Add(rootNode2);
+
+ // Top
+ rootNode2.child0 = new AtlasNode();
+ rootNode2.child0.rc = new Rect(0, 0, 1, 0.5f);
+
+ // Bottom
+ rootNode2.child1 = new AtlasNode();
+ rootNode2.child1.rc = new Rect(0, 0.5f, 1, 0.5f);
+
+ for(int gg=0; gg<4; gg++)
+ {
+ var subgroup = atlasStack.Pop();
+ var id = autoAtlasGroups.IndexOf(subgroup);
+ var subgroupRootNode = autoAtlasGroupRootNodes[id];
+ float ox, oy, sx, sy;
+
+ if (gg == 0)
+ {
+ // Left top
+ rootNode2.child0.child0 = subgroupRootNode;
+ //rootNode2.child0.child0.Transform(0, 0, 0.5f, 0.5f);
+ //offsetScale = rootNode2.child0.child0.rc;
+ ox = 0; oy = 0; sx = 0.5f; sy = 0.5f;
+ }
+ else if (gg == 1)
+ {
+ // Right top
+ rootNode2.child0.child1 = subgroupRootNode;
+ //rootNode2.child0.child1.Transform(0.5f, 0, 0.5f, 0.5f);
+ //offsetScale = rootNode2.child0.child1.rc;
+ ox = 0.5f; oy = 0; sx = 0.5f; sy = 0.5f;
+ }
+ else if (gg == 2)
+ {
+ // Left bottom
+ rootNode2.child1.child0 = subgroupRootNode;
+ //rootNode2.child1.child0.Transform(0, 0.5f, 0.5f, 0.5f);
+ //offsetScale = rootNode2.child1.child0.rc;
+ ox = 0; oy = 0.5f; sx = 0.5f; sy = 0.5f;
+ }
+ else
+ {
+ // Right bottom
+ rootNode2.child1.child1 = subgroupRootNode;
+ //rootNode2.child1.child1.Transform(0.5f, 0.5f, 0.5f, 0.5f);
+ //offsetScale = rootNode2.child1.child1.rc;
+ ox = 0.5f; oy = 0.5f; sx = 0.5f; sy = 0.5f;
+ }
+
+ autoAtlasGroups.RemoveAt(id);
+ autoAtlasGroupRootNodes.RemoveAt(id);
+
+ id = groupList.IndexOf(subgroup);
+ groupList.RemoveAt(id);
+ lmBounds.RemoveAt(id);
+
+ for(int x=id; x<groupList.Count; x++)
+ {
+ groupList[x].id--;
+ data.lmid--;
+ }
+
+ // Modify implicit group storage
+ joined = true;
+ stack.Clear();
+ stack.Push(subgroupRootNode);
+ while(stack.Count > 0)
+ {
+ var node = stack.Pop();
+ if (node.obj != null)
+ {
+ var rect = holderRect[node.obj];
+ holderRect[node.obj] = new Rect(rect.x * sx + ox,
+ rect.y * sy + oy,
+ rect.width * sx,
+ rect.height * sy);
+
+ MoveObjectToImplicitGroup(node.obj, newGroup, data);
+
+ /*
+ tempStorage.implicitGroupMap[node.obj] = newGroup;
+ for(int k=0; k<storages[sceneToID[node.obj.scene]].implicitGroupedObjects.Count; k++)
+ {
+ if (storages[sceneToID[node.obj.scene]].implicitGroupedObjects[k] == node.obj)
+ {
+ storages[sceneToID[node.obj.scene]].implicitGroups[k] = newGroup;
+ //Debug.LogError("Implicit set (join): " + k+" "+newGroup.name);
+ }
+ }
+ */
+ }
+ if (node.child0 != null) stack.Push(node.child0);
+ if (node.child1 != null) stack.Push(node.child1);
+ }
+ }
+ }
+ }
+ }
+ }
+ if (joined)
+ {
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ objsToWriteGroup[i] = GetLMGroupFromObject(objsToWrite[i], data);
+ }
+ }
+ }
+
+ static bool ExportSceneValidationMessage(string msg)
+ {
+ ProgressBarEnd(false);
+ if (ftRenderLightmap.verbose)
+ {
+ if (!EditorUtility.DisplayDialog("Bakery", msg, "Continue anyway", "Cancel"))
+ {
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ return false;
+ }
+ }
+ else
+ {
+ Debug.LogError(msg);
+ }
+ ProgressBarInit("Exporting scene - preparing...");
+ return true;
+ }
+
+ static void ExportSceneError(string phase)
+ {
+ DebugLogError("Error exporting scene (" + phase + ") - see console for details");
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ }
+
+ class ExportSceneData
+ {
+ // Per-scene data
+ public ftLightmapsStorage[] storages;
+ public int firstNonNullStorage;
+ //public ftLightmapsStorage settingsStorage;
+ public Dictionary<Scene, int> sceneToID = new Dictionary<Scene, int>();
+ public Dictionary<Scene,bool> sceneHasStorage = new Dictionary<Scene,bool>();
+
+ // Object properties
+ public Dictionary<GameObject,int> objToLodLevel = new Dictionary<GameObject,int>(); // defines atlas LOD level
+ public Dictionary<GameObject,List<int>> objToLodLevelVisible = new Dictionary<GameObject,List<int>>(); // defines LOD levels where this object is visible
+ public Dictionary<GameObject, float> objToScaleInLm = new Dictionary<GameObject, float>();
+
+ public List<GameObject> objsToWrite = new List<GameObject>();
+ public List<bool> objsToWriteLightmapped = new List<bool>();
+ public List<BakeryLightmapGroup> objsToWriteGroup = new List<BakeryLightmapGroup>();
+ public List<GameObject> objsToWriteHolder = new List<GameObject>();
+ public List<Vector4> objsToWriteScaleOffset = new List<Vector4>();
+ public List<Vector2[]> objsToWriteUVOverride = new List<Vector2[]>();
+ public List<string> objsToWriteNames = new List<string>();
+ public List<Vector3[]> objsToWriteVerticesPosW = new List<Vector3[]>();
+ public List<Vector3[]> objsToWriteVerticesNormalW = new List<Vector3[]>();
+ public List<Vector4[]> objsToWriteVerticesTangentW = new List<Vector4[]>();
+ public List<Vector2[]> objsToWriteVerticesUV = new List<Vector2[]>();
+ public List<Vector2[]> objsToWriteVerticesUV2 = new List<Vector2[]>();
+ public List<int[][]> objsToWriteIndices = new List<int[][]>();
+ public List<bool> objsToWriteHasMetaAlpha = new List<bool>();
+
+ public List<Renderer> outsideRenderers = new List<Renderer>(); // for sector+SRP only
+
+ // Auto-atlasing
+ public List<BakeryLightmapGroup> autoAtlasGroups = new List<BakeryLightmapGroup>();
+ public List<AtlasNode> autoAtlasGroupRootNodes = new List<AtlasNode>();
+ public BakeryLightmapGroup autoVertexGroup;
+
+ // Data to collect for atlas packing
+ public Dictionary<GameObject, float> holderObjArea = new Dictionary<GameObject, float>(); // LMGroup holder area, accumulated from all children
+ public Dictionary<GameObject, Vector4> holderObjUVBounds = new Dictionary<GameObject, Vector4>(); // LMGroup holder 2D UV AABB
+ public Dictionary<BakeryLightmapGroup, List<GameObject>> groupToHolderObjects = new Dictionary<BakeryLightmapGroup, List<GameObject>>(); // LMGroup -> holders map
+ public Dictionary<GameObject, Rect> holderRect = new Dictionary<GameObject, Rect>();
+
+ // Per-LMGroup data
+ public List<BakeryLightmapGroup> groupList = new List<BakeryLightmapGroup>();
+ public List<Bounds> lmBounds = new List<Bounds>(); // list of bounding boxes around LMGroups for testing lights
+
+ // Geometry data
+ public List<int>[] indicesOpaqueLOD = null;
+ public List<int>[] indicesTransparentLOD = null;
+
+ public int lmid = 0; // LMID counter
+
+ public ExportSceneData(int sceneCount)
+ {
+ storages = new ftLightmapsStorage[sceneCount];
+ }
+ }
+
+ class AdjustUVPaddingData
+ {
+ public List<int> dirtyObjList = new List<int>();
+ public List<string> dirtyAssetList = new List<string>();
+ public Dictionary<Mesh, List<int>> meshToObjIDs = new Dictionary<Mesh, List<int>>();
+ public Dictionary<Mesh, int> meshToPaddingMap = new Dictionary<Mesh, int>();
+ }
+
+ class PackData
+ {
+ public Dictionary<int,float> remainingAreaPerLodLevel = new Dictionary<int,float>();
+ public bool repack = true;
+ public bool repackStage2 = false;
+ public bool finalRepack = false;
+ public float repackScale = 1;
+ public int repackTries = 0;
+ public bool hasResOverrides = false;
+ public bool continueRepack = false;
+ }
+
+ static public IEnumerator ExportScene(EditorWindow window, bool renderTextures = true, bool atlasOnly = false, BakerySectorCapture sectorCaptureAsset = null)
+ {
+ lmgroupHolder = null; // important to properly flush previous scale-in-lightmaps
+
+ userCanceled = false;
+ ProgressBarInit("Exporting scene - preparing...", window);
+ yield return null;
+
+ var bakeryRuntimePath = ftLightmaps.GetRuntimePath();
+ gstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage;
+ pstorage = ftLightmaps.GetProjectSettings();
+
+ bool isDX11 = SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11;
+ bool nonDX11 = !isDX11;
+
+ bool _unwrapUVs = unwrapUVs;
+ bool _forceDisableUnwrapUVs = forceDisableUnwrapUVs;
+ if (ftRenderLightmap.fullSectorRender && !ftRenderLightmap.curSector.allowUVPaddingAdjustment)
+ {
+ _unwrapUVs = false;
+ _forceDisableUnwrapUVs = false;
+ }
+
+ var time = GetTime();
+ var ms = time;
+ var startMsU = ms;
+ double totalTime = GetTime();
+ double vbTimeRead = 0;
+ double vbTimeWrite = 0;
+ double vbTimeWriteFull = 0;
+ double vbTimeWriteT = 0;
+ double vbTimeWriteT2 = 0;
+ double vbTimeWriteT3 = 0;
+ double ibTime = 0;
+ var sceneCount = SceneManager.sceneCount;
+ var indicesOpaque = new List<int>();
+ var indicesTransparent = new List<int>();
+
+ var data = new ExportSceneData(sceneCount);
+
+ bool tangentSHLights = CheckForTangentSHLights();
+
+ // Per-LMGroup data
+ var lmAlbedoList = new List<IntPtr>(); // list of albedo texture for UV GBuffer rendering
+ var lmAlbedoListTex = new List<Texture>();
+ var lmAlphaList = new List<IntPtr>(); // list of alpha textures for alpha buffer generation
+ var lmAlphaListRAM = new List<TexInput>(); // non-DX11 array
+ var lmAlphaListTex = new List<Texture>();
+ var lmAlphaRefList = new List<float>(); // list of alpha texture refs
+ var lmAlphaChannelList = new List<int>(); // list of alpha channels
+
+ // lod-related
+ var lmVOffset = new List<int>();
+ var lmUVArrays = new List<List<float>>();
+ var lmUVArrays2 = new List<float[]>();
+ var lmUVArrays3 = new List<float[]>();
+ var lmIndexArrays = new List<List<int>>();
+ var lmIndexArrays2 = new List<int[]>();
+ var lmLocalToGlobalIndices = new List<List<int>>();
+
+ vbtraceTexPosNormalArray = new List<float>();
+ vbtraceTexUVArray = new List<float>();
+
+ sceneLodsUsed = 0;
+
+ // Create temp path
+ CreateSceneFolder();
+
+ // Disable preview of any sectors
+ if (sectorCaptureAsset == null)
+ {
+ var allSectors = FindObjectsOfType(typeof(BakerySector)) as BakerySector[];
+ for(int i=0; i<allSectors.Length; i++)
+ {
+ if (allSectors[i].previewEnabled) BakerySectorInspector.DisablePreview(allSectors[i]);
+ }
+ }
+
+ // Init storages
+ try
+ {
+ InitSceneStorage(data);
+ }
+ catch(Exception e)
+ {
+ ExportSceneError("Global storage init");
+ Debug.LogError("Exception caught: " + e.ToString());
+ throw;
+ }
+
+ // Create LMGroup for light probes
+ if (ftRenderLightmap.lightProbeMode == ftRenderLightmap.LightProbeMode.L1 && renderTextures && !atlasOnly && ftRenderLightmap.hasAnyProbes && !ftRenderLightmap.fullSectorRender)
+ {
+ var c = CreateLightProbeLMGroup(data);
+ while(c.MoveNext()) yield return null;
+ }
+
+ if (ftRenderLightmap.hasAnyVolumes)
+ {
+ var c2 = CreateVolumeLMGroup(data);
+ while(c2.MoveNext()) yield return null;
+ }
+
+ // wip
+ var lmBounds = data.lmBounds;
+ var storages = data.storages;
+ var sceneToID = data.sceneToID;
+ var groupList = data.groupList;
+ var objToLodLevel = data.objToLodLevel;
+ var objToLodLevelVisible = data.objToLodLevelVisible;
+ var objsToWrite = data.objsToWrite;
+ var objsToWriteGroup = data.objsToWriteGroup;
+ var objsToWriteHolder = data.objsToWriteHolder;
+ var objsToWriteIndices = data.objsToWriteIndices;
+ var objsToWriteNames = data.objsToWriteNames;
+ var objsToWriteUVOverride = data.objsToWriteUVOverride;
+ var objsToWriteScaleOffset = data.objsToWriteScaleOffset;
+ var objsToWriteVerticesUV = data.objsToWriteVerticesUV;
+ var objsToWriteVerticesUV2 = data.objsToWriteVerticesUV2;
+ var objsToWriteVerticesPosW = data.objsToWriteVerticesPosW;
+ var objsToWriteVerticesNormalW = data.objsToWriteVerticesNormalW;
+ var objsToWriteVerticesTangentW = data.objsToWriteVerticesTangentW;
+ var objsToWriteHasMetaAlpha = data.objsToWriteHasMetaAlpha;
+ var holderRect = data.holderRect;
+
+ terrainObjectList = new List<GameObject>();
+ terrainObjectToActual = new List<Terrain>();
+ terrainObjectToHeightMap = new List<Texture>();
+ terrainObjectToHeightMapRAM = new List<TexInput>();
+ terrainObjectToBounds = new List<float>();
+ terrainObjectToBoundsUV = new List<float>();
+ terrainObjectToFlags = new List<int>();
+ terrainObjectToLMID = new List<int>();
+ terrainObjectToHeightMips = new List<List<float[]>>();
+ temporaryGameObjects = new List<GameObject>();
+ temporaryAreaLightMeshList = new List<GameObject>();
+ temporaryAreaLightMeshList2 = new List<BakeryLightMesh>();
+
+ var objects = Resources.FindObjectsOfTypeAll(typeof(GameObject));
+ //var objects = UnityEngine.Object.FindObjectsOfTypeAll(typeof(GameObject));
+
+ try
+ {
+ ms = GetTime();
+
+ //if (!onlyUVdata)
+ //{
+ time = ms;
+
+ // Get manually created LMGroups
+ CollectExplicitLMGroups(data);
+
+ // Object conversion loop / also validate for multiple scene storages
+ for(int objNum = 0; objNum < objects.Length; objNum++)
+ {
+ GameObject obj = (GameObject)objects[objNum];
+ if (obj == null) continue;
+ if (!CheckForMultipleSceneStorages(obj, data)) yield break;
+ if (ConvertUnityAreaLight(obj)) continue;
+ ConvertTerrain(obj);
+ }
+
+ // Regather objects if new were added
+ if (terrainObjectList.Count > 0 || temporaryGameObjects.Count > 0 || temporaryAreaLightMeshList.Count > 0)
+ {
+ //objects = UnityEngine.Object.FindObjectsOfTypeAll(typeof(GameObject));
+ objects = Resources.FindObjectsOfTypeAll(typeof(GameObject));
+ }
+
+ tempStorage.implicitGroupMap = new Dictionary<GameObject, UnityEngine.Object>(); // implicit holder -> LMGroup map. used by GetLMGroupFromObject
+
+ // Find LODGroups -> LODs -> scene-wide LOD distances
+ // Map objects to scene-wide LOD levels
+ MapObjectsToSceneLODs(data, objects);
+
+ ftModelPostProcessor.Init();
+
+ // Filter objects, convert to property arrays
+ if (!FilterObjects(data, objects)) yield break;
+
+ if (ftRenderLightmap.fullSectorRender)
+ {
+ var sector = ftRenderLightmap.curSector;
+ if (sector.captureMode == BakerySector.CaptureMode.CaptureInPlace || (sectorCaptureAsset != null && sectorCaptureAsset.write))
+ {
+ int objCount = data.objsToWrite.Count;
+ var cpoints = sector.cpoints;
+
+ // Render albedo/alpha/depth for each sector point
+ var fdata = new FarSphereRenderData[cpoints.Count];
+ for(int i=0; i<cpoints.Count; i++)
+ {
+ //if (!GenerateFarSphere(data, sector.cpoints[i].position, objCount)) yield break;
+ fdata[i] = GenerateFarSphereData(data, cpoints[i].position, objCount, i == 0);
+ if (fdata[i] == null)
+ {
+ DebugLogError("GenerateFarSphereData failed");
+ userCanceled = true;
+ yield break;
+ }
+ }
+
+ // Cull each other (closest texels win)
+ for(int i=0; i<cpoints.Count; i++)
+ {
+ for(int j=0; j<cpoints.Count; j++)
+ {
+ if (i == j) continue;
+ if (!ClipFarSphere(fdata[i], fdata[j]))
+ {
+ DebugLogError("ClipFarSphere failed");
+ userCanceled = true;
+ yield break;
+ }
+ }
+ }
+
+ // Generate meshes
+ if (!GenerateFarSpheres(data, fdata, cpoints))
+ {
+ DebugLogError("GenerateFarSpheres failed");
+ userCanceled = true;
+ yield break;
+ }
+
+ if (sectorCaptureAsset != null)
+ {
+ sectorCaptureAsset.meshes = new List<Mesh>();
+ sectorCaptureAsset.positions = new List<Vector3>();
+ sectorCaptureAsset.textures = new List<Texture2D>();
+ for(int i=0; i<cpoints.Count; i++)
+ {
+ var fd = fdata[i];
+ for(int j=0; j<fd.meshes.Length; j++)
+ {
+ sectorCaptureAsset.meshes.Add(fd.meshes[j]);
+ sectorCaptureAsset.positions.Add(fd.pos);
+ sectorCaptureAsset.textures.Add(fd.textures[j]);
+ }
+ }
+ sectorCaptureAsset.outsideRenderers = data.outsideRenderers;
+ yield break;
+ }
+ }
+ else if (sector.captureMode == BakerySector.CaptureMode.LoadCaptured)
+ {
+ if (sector.captureAsset == null)
+ {
+ DebugLogError("No capture asset is specified for sector " + sector.name);
+ userCanceled = true;
+ yield break;
+ }
+ else
+ {
+ if (!LoadSectorCapture(data, sector.captureAsset, sector.transform))
+ {
+ DebugLogError("Can't load sector capture for " + sector.name);
+ userCanceled = true;
+ yield break;
+ }
+ }
+ }
+ }
+
+ CalculateVertexCountForVertexGroups(data);
+ CreateAutoAtlasLMGroups(data, renderTextures, atlasOnly);
+
+ TransformVertices(data, tangentSHLights);
+
+ if (_unwrapUVs)
+ {
+ var adata = new AdjustUVPaddingData();
+
+ CalculateUVPadding(data, adata);
+ ResetPaddingStorageData(data);
+ StoreNewUVPadding(data, adata);
+
+ if (!ValidatePaddingImmutability(adata)) yield break;
+
+ if (CheckUnwrapError()) yield break;
+
+ // Reimport assets with adjusted padding
+ if (modifyLightmapStorage)
+ {
+ if (!ReimportModifiedAssets(adata)) yield break;
+
+ TransformModifiedAssets(data, adata, tangentSHLights);
+ }
+ }
+ else if (_forceDisableUnwrapUVs)
+ {
+ var adata = new AdjustUVPaddingData();
+
+ ResetPaddingStorageData(data);
+ if (!ClearUVPadding(data, adata)) yield break;
+
+ if (CheckUnwrapError()) yield break;
+
+ TransformModifiedAssets(data, adata, tangentSHLights);
+ }
+
+ CalculateHolderUVBounds(data);
+ CalculateAutoAtlasInitResolution(data);
+ if (!PackAtlases(data)) yield break;
+
+ if (atlasPacker == ftGlobalStorage.AtlasPacker.Default)
+ {
+ NormalizeAutoAtlases(data);
+ JoinAutoAtlases(data);
+ }
+
+ if (!ValidateScaleOffsetImmutability(data))
+ {
+ sceneNeedsToBeRebuilt = true;
+ yield break;
+ }
+
+ InitSceneStorage2(data);
+
+ //TransformVertices(data); // shouldn't be necessary
+
+ // Update objToWriteGroups because of autoAtlas
+ if (autoAtlas)
+ {
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ objsToWriteGroup[i] = GetLMGroupFromObject(objsToWrite[i], data);
+ }
+ }
+
+ // Done collecting groups
+
+ if (groupList.Count == 0 && modifyLightmapStorage)
+ {
+ DebugLogError("You need to mark some objects static or add Bakery Lightmap Group Selector components on them.");
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+
+ if (objsToWrite.Count == 0)
+ {
+ DebugLogError("You need to mark some objects static or add Bakery Lightmap Group Selector components on them.");
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+
+ if (atlasOnly)
+ {
+ atlasOnlyObj = new List<Renderer>();
+ atlasOnlySize = new List<int>();
+ atlasOnlyID = new List<int>();
+ atlasOnlyScaleOffset = new List<Vector4>();
+ var emptyVec4 = new Vector4(1,1,0,0);
+ Rect rc = new Rect();
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ var lmgroup = objsToWriteGroup[i];
+ var holderObj = objsToWriteHolder[i];
+ if (holderObj != null)
+ {
+ if (!holderRect.TryGetValue(holderObj, out rc))
+ {
+ holderObj = null;
+ }
+ }
+ var scaleOffset = holderObj == null ? emptyVec4 : new Vector4(rc.width, rc.height, rc.x, rc.y);
+ atlasOnlyObj.Add(GetValidRenderer(objsToWrite[i]));
+ atlasOnlyScaleOffset.Add(scaleOffset);
+ atlasOnlySize.Add(lmgroup == null ? 0 : lmgroup.resolution);
+ atlasOnlyID.Add(lmgroup == null ? 0 : lmgroup.id);
+ }
+ yield break;
+ }
+
+ // Sort LMGroups so vertex groups are never first (because Unity assumes lightmap compression on LM0)
+ for(int i=0; i<groupList.Count; i++)
+ {
+ groupList[i].sortingID = i;
+ }
+ groupList.Sort(delegate(BakeryLightmapGroup a, BakeryLightmapGroup b)
+ {
+ int aa = (a.mode == BakeryLightmapGroup.ftLMGroupMode.Vertex) ? -1 : 1;
+ int bb = (b.mode == BakeryLightmapGroup.ftLMGroupMode.Vertex) ? -1 : 1;
+ return bb.CompareTo(aa);
+ });
+ var lmBounds2 = new List<Bounds>();
+ for(int i=0; i<groupList.Count; i++)
+ {
+ lmBounds2.Add(lmBounds[groupList[i].sortingID]); // apply same sorting to lmBounds
+ groupList[i].id = i;
+ }
+ lmBounds = lmBounds2;
+
+ // Check for existing files
+ if (overwriteWarning)
+ {
+ var checkGroupList = groupList;
+ if (overwriteWarningSelectedOnly)
+ {
+ var selObjs = Selection.objects;
+ checkGroupList = new List<BakeryLightmapGroup>();
+ for(int o=0; o<selObjs.Length; o++)
+ {
+ if (selObjs[o] as GameObject == null) continue;
+ var selGroup = GetLMGroupFromObject(selObjs[o] as GameObject, data);
+ if (selGroup == null) continue;
+ if (!checkGroupList.Contains(selGroup))
+ {
+ checkGroupList.Add(selGroup);
+ }
+ }
+ }
+ var existingFilenames = "";
+ for(int i=0; i<checkGroupList.Count; i++)
+ {
+ var nm = checkGroupList[i].name;
+ var filename = nm + "_final" + overwriteExtensionCheck;
+ var outputPath = ftRenderLightmap.outputPathFull;
+ if (File.Exists("Assets/" + outputPath + "/" + filename))
+ {
+ existingFilenames += filename + "\n";
+ }
+ }
+ if (existingFilenames.Length > 0 && ftRenderLightmap.verbose)
+ {
+ ProgressBarEnd(false);
+ if (!EditorUtility.DisplayDialog("Lightmap overwrite", "These lightmaps will be overwritten:\n\n" + existingFilenames, "Overwrite", "Cancel"))
+ {
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+ ProgressBarInit("Exporting scene - preparing...", window);
+ }
+ }
+
+ ftRenderLightmap.giLodModeEnabled = ftRenderLightmap.giLodMode == ftRenderLightmap.GILODMode.ForceOn;
+ ulong approxMem = 0;
+
+ if (groupList.Count > 100 && ftRenderLightmap.verbose)
+ {
+ ProgressBarEnd(false);
+ if (!EditorUtility.DisplayDialog("Lightmap count check", groupList.Count + " lightmaps are going to be rendered. Continue?", "Continue", "Cancel"))
+ {
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+ ProgressBarInit("Exporting scene - preparing...", window);
+ }
+
+ if (memoryWarning || ftRenderLightmap.giLodMode == ftRenderLightmap.GILODMode.Auto)
+ {
+ for(int i=0; i<groupList.Count; i++)
+ {
+ var lmgroup = groupList[i];
+ var res = lmgroup.resolution;
+ ulong lightingSize = (ulong)(res * res * 4 * 2); // RGBA16f
+ approxMem += lightingSize;
+ }
+ var tileSize = ftRenderLightmap.tileSize;
+ approxMem += (ulong)(tileSize * tileSize * 16 * 2); // maximum 2xRGBA32f (for fixPos12)
+ }
+
+ if (memoryWarning && ftRenderLightmap.verbose)
+ {
+ ProgressBarEnd(false);
+ if (!EditorUtility.DisplayDialog("Lightmap memory check", "Rendering may require more than " + (ulong)((approxMem/1024)/1024) + "MB of video memory. Continue?", "Continue", "Cancel"))
+ {
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+ ProgressBarInit("Exporting scene - preparing...", window);
+ }
+
+
+ if (ftRenderLightmap.giLodMode == ftRenderLightmap.GILODMode.Auto)
+ {
+
+ approxMem /= 1024;
+ approxMem /= 1024;
+ approxMem += 1024; // scene geometry size estimation - completely random
+
+ if ((int)approxMem > SystemInfo.graphicsMemorySize)
+ {
+ DebugLogInfo("GI VRAM auto optimization ON: estimated usage " + (int)approxMem + " > " + SystemInfo.graphicsMemorySize);
+ ftRenderLightmap.giLodModeEnabled = true;
+ }
+ else
+ {
+ DebugLogInfo("GI VRAM auto optimization OFF: estimated usage " + (int)approxMem + " < " + SystemInfo.graphicsMemorySize);
+ }
+ }
+
+ // Generate terrain geometry with detail enough for given size for UVGBuffer purposes
+ fhmaps = new BinaryWriter(File.Open(scenePath + "/heightmaps.bin", FileMode.Create));
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add("heightmaps.bin");
+ if (exportTerrainAsHeightmap)
+ {
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ var obj = objsToWrite[i];
+ if (obj.name != "__ExportTerrain") continue;
+
+ var holderObj = objsToWriteHolder[i];
+ Rect rc = new Rect();
+ if (holderObj != null)
+ {
+ if (!holderRect.TryGetValue(holderObj, out rc))
+ {
+ holderObj = null;
+ }
+ }
+ if (holderObj == null) continue;
+
+ var lmgroup = objsToWriteGroup[i];
+ //float terrainPixelWidth = rc.width * lmgroup.resolution;
+ //float terrainPixelHeight = rc.height * lmgroup.resolution;
+
+ var index = terrainObjectList.IndexOf(obj.transform.parent.gameObject);
+ var terrain = terrainObjectToActual[index];
+ var tdata = terrain.terrainData;
+ //var heightmapResolution = tdata.heightmapResolution;
+
+ //int closestSize = (int)Mathf.Min(Mathf.NextPowerOfTwo((int)Mathf.Max(terrainPixelWidth, terrainPixelHeight)), heightmapResolution-1);
+ //if (closestSize < 2) continue;
+ //int mipLog2 = (int)(Mathf.Log(closestSize) / Mathf.Log(2.0f));
+ //int maxMipLog2 = (int)(Mathf.Log(heightmapResolution-1) / Mathf.Log(2.0f));
+ //int mip = maxMipLog2 - mipLog2;
+
+ float scaleX = tdata.size.x;// / (heightmapResolution-1);
+ //float scaleY = tdata.size.y;
+ float scaleZ = tdata.size.z;// / (heightmapResolution-1);
+ float offsetX = obj.transform.position.x;
+ float offsetY = obj.transform.position.y;
+ float offsetZ = obj.transform.position.z;
+
+ terrainObjectToLMID[index] = lmgroup.id;
+ terrainObjectToBoundsUV[index*4] = rc.x;
+ terrainObjectToBoundsUV[index*4+1] = rc.y;
+ terrainObjectToBoundsUV[index*4+2] = rc.width;
+ terrainObjectToBoundsUV[index*4+3] = rc.height;
+
+ if (uvgbHeightmap)
+ {
+ var indexArrays = objsToWriteIndices[i] = new int[1][];
+ var indexArray = indexArrays[0] = new int[6];//(closestSize-1)*(closestSize-1)*6];
+ //int indexOffset = 0;
+ //int vertOffset = 0;
+ var uvArray = objsToWriteVerticesUV[i] = objsToWriteVerticesUV2[i] = new Vector2[4];//closestSize*closestSize];
+
+ var posArray = objsToWriteVerticesPosW[i] = new Vector3[4];
+ var normalArray = objsToWriteVerticesNormalW[i] = new Vector3[4];
+
+ posArray[0] = new Vector3(offsetX, offsetY, offsetZ);
+ posArray[1] = new Vector3(offsetX + scaleX, offsetY, offsetZ);
+ posArray[2] = new Vector3(offsetX, offsetY, offsetZ + scaleZ);
+ posArray[3] = new Vector3(offsetX + scaleX, offsetY, offsetZ + scaleZ);
+
+ normalArray[0] = Vector3.up;
+ normalArray[1] = Vector3.up;
+ normalArray[2] = Vector3.up;
+ normalArray[3] = Vector3.up;
+
+ uvArray[0] = new Vector2(0,0);
+ uvArray[1] = new Vector2(1,0);
+ uvArray[2] = new Vector2(0,1);
+ uvArray[3] = new Vector2(1,1);
+
+ indexArray[0] = 0;
+ indexArray[1] = 2;
+ indexArray[2] = 3;
+
+ indexArray[3] = 0;
+ indexArray[4] = 3;
+ indexArray[5] = 1;
+ }
+ else
+ {
+ /*if (mip == 0)
+ {
+ // use existing heightmap
+ var heights = tdata.GetHeights(0, 0, heightmapResolution, heightmapResolution);
+ var posArray = objsToWriteVerticesPosW[i] = new Vector3[heightmapResolution * heightmapResolution];
+ objsToWriteVerticesNormalW[i] = terrainObjectToNormalMip0[index];
+ closestSize = heightmapResolution;
+ scaleX /= closestSize-1;
+ scaleZ /= closestSize-1;
+ for(int y=0; y<closestSize; y++)
+ {
+ for(int x=0; x<closestSize; x++)
+ {
+ float px = x * scaleX + offsetX;
+ float pz = y * scaleZ + offsetZ;
+ posArray[y * closestSize + x] = new Vector3(px, heights[y, x] * scaleY + offsetY, pz);
+ }
+ }
+ }
+ else
+ {
+ // use mip
+ var heights = terrainObjectToHeightMips[index][mip - 1];
+ var posArray = objsToWriteVerticesPosW[i] = new Vector3[closestSize * closestSize];
+ objsToWriteVerticesNormalW[i] = terrainObjectToNormalMips[index][mip - 1];
+ scaleX /= closestSize-1;
+ scaleZ /= closestSize-1;
+ for(int y=0; y<closestSize; y++)
+ {
+ for(int x=0; x<closestSize; x++)
+ {
+ float px = x * scaleX + offsetX;
+ float pz = y * scaleZ + offsetZ;
+ posArray[y * closestSize + x] = new Vector3(px, heights[y * closestSize + x] * scaleY + offsetY, pz);
+ }
+ }
+ }
+ var indexArrays = objsToWriteIndices[i] = new int[1][];
+ var indexArray = indexArrays[0] = new int[(closestSize-1)*(closestSize-1)*6];
+ int indexOffset = 0;
+ int vertOffset = 0;
+ var uvArray = objsToWriteVerticesUV[i] = objsToWriteVerticesUV2[i] = new Vector2[closestSize*closestSize];
+ for(int y=0; y<closestSize; y++)
+ {
+ for(int x=0; x<closestSize; x++)
+ {
+ uvArray[y * closestSize + x] = new Vector2(x / (float)(closestSize-1), y / (float)(closestSize-1));
+
+ if (x < closestSize-1 && y < closestSize-1)
+ {
+ indexArray[indexOffset] = vertOffset;
+ indexArray[indexOffset + 1] = vertOffset + closestSize;
+ indexArray[indexOffset + 2] = vertOffset + closestSize + 1;
+
+ indexArray[indexOffset + 3] = vertOffset;
+ indexArray[indexOffset + 4] = vertOffset + closestSize + 1;
+ indexArray[indexOffset + 5] = vertOffset + 1;
+
+ indexOffset += 6;
+ }
+ vertOffset++;
+ }
+ }*/
+ }
+ }
+
+ // Export heightmap metadata
+ if (terrainObjectToActual.Count > 0)
+ {
+ for(int i=0; i<terrainObjectToHeightMap.Count; i++)
+ {
+ fhmaps.Write(terrainObjectToLMID[i]);
+ for(int fl=0; fl<6; fl++) fhmaps.Write(terrainObjectToBounds[i*6+fl]);
+ for(int fl=0; fl<4; fl++) fhmaps.Write(terrainObjectToBoundsUV[i*4+fl]);
+ fhmaps.Write(terrainObjectToFlags[i]);
+ }
+ }
+ }
+
+ // Write mark last written scene
+ File.WriteAllText(scenePath + "/lastscene.txt", ftRenderLightmap.GenerateLightingDataAssetName());
+
+ // Write lightmap definitions
+ var flms = new BinaryWriter(File.Open(scenePath + "/lms.bin", FileMode.Create));
+ var flmlod = new BinaryWriter(File.Open(scenePath + "/lmlod.bin", FileMode.Create));
+ var flmuvgb = new BinaryWriter(File.Open(scenePath + "/lmuvgb.bin", FileMode.Create));
+
+ if (ftRenderLightmap.clientMode)
+ {
+ ftClient.serverFileList.Add("lms.bin");
+ ftClient.serverFileList.Add("lmlod.bin");
+ ftClient.serverFileList.Add("lmuvgb.bin");
+ }
+
+ // Init global UVGBuffer flags
+ int uvgbGlobalFlags = 0;
+ int _UVGBFLAG_SMOOTHPOS = pstorage.generateSmoothPos ? UVGBFLAG_SMOOTHPOS : 0;
+ if (exportShaderColors)
+ {
+ if (ftRenderLightmap.renderDirMode == ftRenderLightmap.RenderDirMode.BakedNormalMaps)
+ {
+ uvgbGlobalFlags = UVGBFLAG_FACENORMAL | UVGBFLAG_POS | _UVGBFLAG_SMOOTHPOS;
+ }
+ else if (ftRenderLightmap.renderDirMode == ftRenderLightmap.RenderDirMode.RNM ||
+ (ftRenderLightmap.renderDirMode == ftRenderLightmap.RenderDirMode.SH && tangentSHLights))
+ {
+ uvgbGlobalFlags = UVGBFLAG_NORMAL | UVGBFLAG_FACENORMAL | UVGBFLAG_POS | _UVGBFLAG_SMOOTHPOS | UVGBFLAG_TANGENT;
+ }
+ else
+ {
+ uvgbGlobalFlags = UVGBFLAG_NORMAL | UVGBFLAG_FACENORMAL | UVGBFLAG_POS | _UVGBFLAG_SMOOTHPOS;
+ }
+ }
+ else
+ {
+ uvgbGlobalFlags = UVGBFLAG_NORMAL | UVGBFLAG_FACENORMAL | UVGBFLAG_ALBEDO | UVGBFLAG_EMISSIVE | UVGBFLAG_POS | _UVGBFLAG_SMOOTHPOS;
+ }
+ if (terrainObjectToActual.Count > 0) uvgbGlobalFlags |= UVGBFLAG_TERRAIN;
+ SetUVGBFlags(uvgbGlobalFlags);
+
+ for(int i=0; i<groupList.Count; i++)
+ {
+ var lmgroup = groupList[i];
+ flms.Write(lmgroup.name);
+
+ flmlod.Write(lmgroup.sceneLodLevel);
+
+ int uvgbflags = 0;
+
+ if (lmgroup.containsTerrains && exportTerrainAsHeightmap)
+ uvgbflags = uvgbGlobalFlags | (UVGBFLAG_NORMAL | UVGBFLAG_TERRAIN);
+
+ if (lmgroup.renderDirMode == BakeryLightmapGroup.RenderDirMode.BakedNormalMaps)
+ uvgbflags = UVGBFLAG_FACENORMAL | UVGBFLAG_POS | _UVGBFLAG_SMOOTHPOS;
+
+ if (lmgroup.renderDirMode == BakeryLightmapGroup.RenderDirMode.RNM ||
+ (lmgroup.renderDirMode == BakeryLightmapGroup.RenderDirMode.SH && tangentSHLights))
+ uvgbflags = UVGBFLAG_NORMAL | UVGBFLAG_FACENORMAL | UVGBFLAG_POS | _UVGBFLAG_SMOOTHPOS | UVGBFLAG_TANGENT;
+
+ if (lmgroup.probes) uvgbflags = UVGBFLAG_RESERVED;
+
+ flmuvgb.Write(uvgbflags);
+
+ if (ftRenderLightmap.clientMode)
+ {
+ if (uvgbflags == 0) uvgbflags = uvgbGlobalFlags;
+
+ ftClient.serverFileList.Add("uvpos_" + lmgroup.name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"));
+ ftClient.serverFileList.Add("uvnormal_" + lmgroup.name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"));
+ ftClient.serverFileList.Add("uvalbedo_" + lmgroup.name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"));
+ if (lmgroup.mode != BakeryLightmapGroup.ftLMGroupMode.Vertex)
+ {
+ if ((uvgbflags & UVGBFLAG_SMOOTHPOS) != 0) ftClient.serverFileList.Add("uvsmoothpos_" + lmgroup.name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"));
+ }
+ if ((uvgbflags & UVGBFLAG_FACENORMAL) != 0) ftClient.serverFileList.Add("uvfacenormal_" + lmgroup.name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"));
+ if ((uvgbflags & UVGBFLAG_TANGENT) != 0) ftClient.serverFileList.Add("uvtangent_" + lmgroup.name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"));
+ }
+
+ if (lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.Vertex)
+ {
+ int atlasTexSize = (int)Mathf.Ceil(Mathf.Sqrt((float)lmgroup.totalVertexCount));
+ if (atlasTexSize > 8192) DebugLogWarning("Warning: vertex lightmap group " + lmgroup.name + " uses resolution of " + atlasTexSize);
+ atlasTexSize = (int)Mathf.Ceil(atlasTexSize / (float)ftRenderLightmap.tileSize) * ftRenderLightmap.tileSize;
+ flms.Write(-atlasTexSize);
+ }
+ else
+ {
+ flms.Write(lmgroup.resolution);
+ }
+ //Debug.LogError(lmgroup.name+": " + lmgroup.resolution);
+ }
+ flms.Close();
+ flmlod.Close();
+ flmuvgb.Close();
+
+ voffset = ioffset = soffset = 0; // vertex/index/surface write
+
+ // Per-surface alpha texture IDs
+ var alphaIDs = new List<ushort>();
+
+ int albedoCounter = 0;
+ var albedoMap = new Dictionary<IntPtr, int>(); // albedo ptr -> ID map
+
+ int alphaCounter = 0;
+ var alphaMap = new Dictionary<IntPtr, List<int>>(); // alpha ptr -> ID map
+
+ var dummyTexList = new List<Texture>(); // list of single-color 1px textures
+ var dummyPixelArray = new Color[1];
+
+ if (ftRenderLightmap.checkOverlaps)
+ {
+ var quad = GameObject.CreatePrimitive(PrimitiveType.Quad);
+ var plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
+ var qmesh = quad.GetComponent<MeshFilter>().sharedMesh;
+ var pmesh = plane.GetComponent<MeshFilter>().sharedMesh;
+ DestroyImmediate(quad);
+ DestroyImmediate(plane);
+ bool canCheck = ftModelPostProcessor.InitOverlapCheck();
+ if (!canCheck)
+ {
+ DebugLogError("Can't load ftOverlapTest.shader");
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+ for(int g=0; g<groupList.Count; g++)
+ {
+ var lmgroup = groupList[g];
+ if (lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.Vertex) continue;
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ if (objsToWriteGroup[i] != lmgroup) continue;
+ var obj = objsToWrite[i];
+
+ var mesh = GetSharedMesh(obj);
+ if (mesh == qmesh || mesh == pmesh) continue;
+
+ var uv = objsToWriteVerticesUV[i];//mesh.uv;
+ var uv2 = objsToWriteVerticesUV2[i];//mesh.uv2;
+ var usedUVs = uv2.Length == 0 ? uv : uv2;
+ bool validUVs = true;
+ for(int v=0; v<usedUVs.Length; v++)
+ {
+ if (usedUVs[v].x < -0.0001f || usedUVs[v].x > 1.0001f || usedUVs[v].y < -0.0001f || usedUVs[v].y > 1.0001f)
+ {
+ validUVs = false;
+ break;
+ }
+ }
+ if (!validUVs && ftRenderLightmap.verbose)
+ {
+ string objPath = obj.name;
+ var prt = obj.transform.parent;
+ while(prt != null)
+ {
+ objPath = prt.name + "\\" + objPath;
+ prt = prt.parent;
+ }
+ ftRenderLightmap.simpleProgressBarEnd();
+ if (!EditorUtility.DisplayDialog("Incorrect UVs", "Object " + objPath + " UVs are out of 0-1 bounds", "Continue", "Stop"))
+ {
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+ ProgressBarInit("Exporting scene - preparing...", window);
+ }
+
+ int overlap = ftModelPostProcessor.DoOverlapCheck(obj, false);
+ if (overlap != 0 && ftRenderLightmap.verbose)
+ {
+ //storage.debugRT = ftModelPostProcessor.rt;
+ string objPath = obj.name;
+ var prt = obj.transform.parent;
+ while(prt != null)
+ {
+ objPath = prt.name + "\\" + objPath;
+ prt = prt.parent;
+ }
+ if (overlap < 0)
+ {
+ ftRenderLightmap.simpleProgressBarEnd();
+ if (!EditorUtility.DisplayDialog("Incorrect UVs", "Object " + objPath + " has no UV2", "Continue", "Stop"))
+ {
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+ ProgressBarInit("Exporting scene - preparing...", window);
+ }
+ else
+ {
+ ftRenderLightmap.simpleProgressBarEnd();
+ if (!EditorUtility.DisplayDialog("Incorrect UVs", "Object " + objPath + " has overlapping UVs", "Continue", "Stop"))
+ {
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+ ProgressBarInit("Exporting scene - preparing...", window);
+ }
+ }
+ }
+ }
+ ftModelPostProcessor.EndOverlapCheck();
+ }
+
+ // Prepare progressbar
+ int progressNumObjects = 0;
+ foreach(GameObject obj in objects)
+ {
+ if (obj == null) continue;
+ if (!obj.activeInHierarchy) continue;
+ progressNumObjects++;
+ }
+
+ // Open files to write
+ fscene = new BinaryWriter(File.Open(scenePath + "/objects.bin", FileMode.Create));
+ fmesh = new BinaryWriter(File.Open(scenePath + "/mesh.bin", FileMode.Create));
+ flmid = new BinaryWriter(File.Open(scenePath + "/lmid.bin", FileMode.Create));
+ fseamfix = new BinaryWriter(File.Open(scenePath + "/seamfix.bin", FileMode.Create));
+ fsurf = new BinaryWriter(File.Open(scenePath + "/surf.bin", FileMode.Create));
+ fmatid = new BinaryWriter(File.Open(scenePath + "/matid.bin", FileMode.Create));
+ fmatide = new BinaryWriter(File.Open(scenePath + "/emissiveid.bin", FileMode.Create));
+ fmatideb = new BinaryWriter(File.Open(scenePath + "/emissivemul.bin", FileMode.Create));
+ fmatidh = new BinaryWriter(File.Open(scenePath + "/heightmapid.bin", FileMode.Create));
+ falphaid = new BinaryWriter(File.Open(scenePath + "/alphaid.bin", FileMode.Create));
+
+ fvbfull = new BufferedBinaryWriterFloat( new BinaryWriter(File.Open(scenePath + "/vbfull.bin", FileMode.Create)) );
+ fvbtrace = new BufferedBinaryWriterFloat( new BinaryWriter(File.Open(scenePath + "/vbtrace.bin", FileMode.Create)) );
+ fvbtraceTex = new BufferedBinaryWriterFloat( new BinaryWriter(File.Open(scenePath + "/vbtraceTex.bin", FileMode.Create)) );
+ fvbtraceUV0 = new BufferedBinaryWriterFloat( new BinaryWriter(File.Open(scenePath + "/vbtraceUV0.bin", FileMode.Create)) );
+
+ fib = new BufferedBinaryWriterInt( new BinaryWriter(File.Open(scenePath + "/ib.bin", FileMode.Create)) );
+
+ fib32 = new BinaryWriter(File.Open(scenePath + "/ib32.bin", FileMode.Create));
+ fib32lod = new BinaryWriter[sceneLodsUsed];
+ for(int i=0; i<sceneLodsUsed; i++)
+ {
+ fib32lod[i] = new BinaryWriter(File.Open(scenePath + "/ib32_lod" + i + ".bin", FileMode.Create));
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add("ib32_lod" + i + ".bin");
+ }
+ falphaidlod = new BinaryWriter[sceneLodsUsed];
+ for(int i=0; i<sceneLodsUsed; i++)
+ {
+ falphaidlod[i] = new BinaryWriter(File.Open(scenePath + "/alphaid_lod" + i + ".bin", FileMode.Create));
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add("alphaid2_lod" + i + ".bin"); // alphaid2, not alphaid
+ }
+
+ if (ftRenderLightmap.clientMode)
+ {
+ ftClient.serverFileList.Add("objects.bin");
+ ftClient.serverFileList.Add("mesh.bin");
+ ftClient.serverFileList.Add("lmid.bin");
+ ftClient.serverFileList.Add("seamfix.bin");
+ ftClient.serverFileList.Add("surf.bin");
+ ftClient.serverFileList.Add("matid.bin");
+ ftClient.serverFileList.Add("emissiveid.bin");
+ ftClient.serverFileList.Add("emissivemul.bin");
+ ftClient.serverFileList.Add("heightmapid.bin");
+ ftClient.serverFileList.Add("alphaid2.bin"); // alphaid2, not alphaid
+ ftClient.serverFileList.Add("alphabuffer.bin");
+ ftClient.serverFileList.Add("vbfull.bin");
+ ftClient.serverFileList.Add("vbtrace.bin");
+ ftClient.serverFileList.Add("vbtraceTex.bin");
+ ftClient.serverFileList.Add("vbtraceUV0.bin");
+ ftClient.serverFileList.Add("ib.bin");
+ ftClient.serverFileList.Add("ib32.bin");
+ }
+
+ // Export heightmap metadata
+ //fhmaps.Write(terrainObjectToActual.Count);
+ if (terrainObjectToActual.Count > 0)
+ {
+ //terrainObjectToHeightMapPtr = new IntPtr[terrainObjectToHeightMap.Count];
+ /*for(int i=0; i<terrainObjectToHeightMap.Count; i++)
+ {
+ for(int fl=0; fl<6; fl++) fhmaps.Write(terrainObjectToBounds[i*6+fl]);
+ }*/
+ }
+
+ // Export some scene data
+ // - LMIDs
+ // - mesh definitions
+ // - surface definitions
+ // - albedo IDs
+ // - alpha IDs
+ // - update LMGroup bounds
+ // - export index buffer
+ // - generate tracing index buffer
+
+ areaLightCounter = -2;
+ //var defaultTexST = new Vector4(1,1,0,0);
+ //var objsToWriteTexST = new List<Vector4>();
+
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ var obj = objsToWrite[i];
+ var lmgroup = objsToWriteGroup[i];
+ var holderObj = objsToWriteHolder[i];
+
+ if (obj == null)
+ {
+ // wtf
+ DebugLogError("Object " + objsToWriteNames[i] + " was destroyed mid-export");
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+
+ var mr = GetValidRenderer(obj);
+ var m = GetSharedMesh(mr);
+
+ var inds = objsToWriteIndices[i];
+
+ // Write LMID, mesh and surface definition
+ int id = exportLMID(flmid, obj, lmgroup);
+ exportMesh(fmesh, m);
+ exportSurfs(fsurf, inds, inds.Length);// m);
+
+ int lodLevel;
+ if (!objToLodLevel.TryGetValue(obj, out lodLevel)) lodLevel = -1;
+
+ bool isTerrain = (exportTerrainAsHeightmap && obj.name == "__ExportTerrain");
+ bool hasMetaAlpha = false;
+
+ // Write albedo IDs, collect alpha IDs, update LMGroup bounds
+ if (id >= 0) {
+ for(int k=0; k<m.subMeshCount; k++) {
+ // Get mesh albedos
+ int texID = -1;
+ Material mat = null;
+ Texture tex = null;
+ //var texST = defaultTexST;
+ if (k < mr.sharedMaterials.Length) {
+ mat = mr.sharedMaterials[k];
+ if (mat != null)
+ {
+ if (mat.HasProperty("_MainTex"))
+ {
+ tex = mat.mainTexture;
+ //if (mat.HasProperty("_MainTex_ST"))
+ //{
+ // texST = mat.GetVector("_MainTex_ST");
+ //}
+ }
+ else if (mat.HasProperty("_BaseColorMap"))
+ {
+ // HDRP
+ tex = mat.GetTexture("_BaseColorMap");
+ }
+ else if (mat.HasProperty("_BaseMap"))
+ {
+ // URP
+ tex = mat.GetTexture("_BaseMap");
+ }
+ }
+ }
+ IntPtr texPtr = (IntPtr)0;
+ Texture texWrite = null;
+ if (tex != null)
+ {
+ texPtr = tex.GetNativeTexturePtr();
+ texWrite = tex;
+ if (texPtr == (IntPtr)0)
+ {
+ Debug.LogError("Texture " + tex.name + " cannot be used as albedo (GetNativeTexturePtr returned null)");
+ tex = null;
+ texWrite = null;
+ }
+ else if ((tex as RenderTexture) != null)
+ {
+ Debug.LogError("RenderTexture " + tex.name + " cannot be used as albedo (GetNativeTexturePtr returned null)");
+ tex = null;
+ texWrite = null;
+ }
+ }
+ if (tex == null)
+ {
+ // Create dummy 1px texture
+ var dummyTex = new Texture2D(1,1);
+ dummyPixelArray[0] = (mat == null || !mat.HasProperty("_Color")) ? Color.white : mat.color;
+ dummyTex.SetPixels(dummyPixelArray);
+ dummyTex.Apply();
+ texWrite = dummyTex;
+ dummyTexList.Add(dummyTex);
+ texPtr = dummyTex.GetNativeTexturePtr();
+ if (texPtr == (IntPtr)0)
+ {
+ Debug.LogError("Failed to call GetNativeTexturePtr() on newly created texture");
+ texWrite = null;
+ }
+ }
+ if (!albedoMap.TryGetValue(texPtr, out texID))
+ {
+ lmAlbedoList.Add(texPtr);
+ lmAlbedoListTex.Add(texWrite);
+ albedoMap[texPtr] = albedoCounter;
+ texID = albedoCounter;
+ albedoCounter++;
+ }
+
+ // Write albedo ID
+ fmatid.Write((ushort)texID);
+
+ // Get mesh alphas
+ ushort alphaID = 0xFFFF;
+ int alphaChannel = 3; // A
+ if (mat != null && mat.HasProperty("_TransparencyLM")) // will override _MainTex.a if present
+ {
+ var tex2 = mat.GetTexture("_TransparencyLM");
+ if (tex2 != null)
+ {
+ tex = tex2;
+ texPtr = tex.GetNativeTexturePtr();
+ alphaChannel = 0; // R
+ }
+ }
+ bool alphaMetaPass = (mat != null && mat.HasProperty("BAKERY_META_ALPHA_ENABLE"));
+ if (alphaMetaPass && ftRenderLightmap.lightProbeMode == ftRenderLightmap.LightProbeMode.Legacy)
+ {
+ alphaMetaPass = false;
+ Debug.LogError("Skipping alpha meta pass in legacy light probe mode");
+ }
+ if (tex != null || alphaMetaPass) {
+ var matTag = mat.GetTag("RenderType", true);
+ bool isCutout = matTag == "TransparentCutout";
+ if (isCutout || matTag == "Transparent" || matTag == "TreeLeaf") {
+
+ float alphaRef = 0.5f;
+ if (mat != null && mat.HasProperty("_Cutoff"))
+ {
+ alphaRef = mat.GetFloat("_Cutoff");
+ }
+ float opacity = 1.0f;
+ if (!isCutout && mat.HasProperty("_Color"))
+ {
+ opacity = mat.color.a;
+ }
+ // let constant alpha affect cutout theshold for alphablend materials
+ alphaRef = 1.0f - (1.0f - alphaRef) * opacity;
+ if (alphaRef > 1) alphaRef = 1;
+
+ if (alphaMetaPass)
+ {
+ // Will use meta pass alpha
+
+ lmAlphaList.Add((System.IntPtr)0); // will be replaced after in-engine UVGBuffer part generation
+ if (nonDX11) lmAlphaListRAM.Add(new TexInput());
+ lmAlphaListTex.Add(null);
+ lmAlphaRefList.Add(alphaRef);
+ lmAlphaChannelList.Add(id); // channel is always 3; store LMID instead
+
+ texID = alphaCounter;
+ alphaCounter++;
+ alphaID = (ushort)texID;
+
+ hasMetaAlpha = true;
+ }
+ else
+ {
+ // Using alpha texture directly
+
+ // allow same map instances with different threshold
+ List<int> texIDs;
+ if (!alphaMap.TryGetValue(texPtr, out texIDs))
+ {
+ alphaMap[texPtr] = texIDs = new List<int>();
+
+ lmAlphaList.Add(texPtr);
+ if (nonDX11) lmAlphaListRAM.Add(InputDataFromTex(tex));
+ lmAlphaListTex.Add(tex);
+ lmAlphaRefList.Add(alphaRef);
+ lmAlphaChannelList.Add(alphaChannel);
+
+ texIDs.Add(alphaCounter);
+ texID = alphaCounter;
+ alphaCounter++;
+ //Debug.Log("Alpha " + texID+": " + tex.name+" "+alphaRef);
+ alphaID = (ushort)texID;
+ }
+ else
+ {
+ int matchingInstance = -1;
+ for(int instance=0; instance<texIDs.Count; instance++)
+ {
+ texID = texIDs[instance];
+ if (Mathf.Abs(lmAlphaRefList[texID] - alphaRef) <= alphaInstanceThreshold)
+ {
+ if (lmAlphaChannelList[texID] == alphaChannel)
+ {
+ matchingInstance = instance;
+ alphaID = (ushort)texID;
+ break;
+ }
+ }
+ }
+ if (matchingInstance < 0)
+ {
+ lmAlphaList.Add(texPtr);
+ if (nonDX11) lmAlphaListRAM.Add(InputDataFromTex(tex));
+ lmAlphaListTex.Add(tex);
+ lmAlphaRefList.Add(alphaRef);
+ lmAlphaChannelList.Add(alphaChannel);
+
+ texIDs.Add(alphaCounter);
+ texID = alphaCounter;
+ alphaCounter++;
+ //Debug.Log("Alpha " + texID+": " + tex.name+" "+alphaRef);
+ alphaID = (ushort)texID;
+ }
+ }
+ }
+ }
+ }
+ alphaIDs.Add(alphaID);
+
+ // Get mesh emissives
+ if (exportShaderColors)
+ {
+ for(int s=0; s<sceneCount; s++)
+ {
+ if (storages[s] == null) continue;
+ while(storages[s].hasEmissive.Count <= id) storages[s].hasEmissive.Add(true);
+ storages[s].hasEmissive[id] = true;
+ }
+ }
+
+ texID = -1;
+ tex = null;
+ if (mat!=null && mat.shaderKeywords.Contains("_EMISSION"))
+ {
+ if (mat.HasProperty("_EmissionMap")) tex = mat.GetTexture("_EmissionMap");
+ if (tex != null)
+ {
+ texPtr = tex.GetNativeTexturePtr();
+ if (texPtr == (IntPtr)0)
+ {
+ if ((tex as RenderTexture) != null)
+ {
+ Debug.LogError("RenderTexture " + tex.name + " cannot be used as emission (GetNativeTexturePtr returned null)");
+ tex = null;
+ }
+ else
+ {
+ Debug.LogError("Texture " + tex.name + " cannot be used as emission (GetNativeTexturePtr returned null)");
+ tex = null;
+ }
+ //DebugLogError("Null emission tex ptr");
+ }
+ }
+ if (tex == null && mat.HasProperty("_EmissionColor"))
+ {
+ // Create dummy 1px texture
+ var dummyTex = new Texture2D(1,1);
+ dummyPixelArray[0] = mat.GetColor("_EmissionColor");
+ dummyTex.SetPixels(dummyPixelArray);
+ dummyTex.Apply();
+ tex = dummyTex;
+ dummyTexList.Add(dummyTex);
+ texPtr = dummyTex.GetNativeTexturePtr();
+ if (texPtr == (IntPtr)0)
+ {
+ Debug.LogError("Failed to call GetNativeTexturePtr() on newly created texture");
+ texWrite = null;
+ //DebugLogError("Null dummy tex ptr");
+ }
+ }
+ if (!albedoMap.TryGetValue(texPtr, out texID))
+ {
+ lmAlbedoList.Add(texPtr);
+ lmAlbedoListTex.Add(tex);
+ albedoMap[texPtr] = albedoCounter;
+ texID = albedoCounter;
+ albedoCounter++;
+ }
+ for(int s=0; s<sceneCount; s++)
+ {
+ if (storages[s] == null) continue;
+ while(storages[s].hasEmissive.Count <= id) storages[s].hasEmissive.Add(false);
+ storages[s].hasEmissive[id] = true;
+ }
+
+ fmatide.Write((ushort)texID);
+ fmatideb.Write(mat.HasProperty("_EmissionColor") ? mat.GetColor("_EmissionColor").maxColorComponent : 1);
+ }
+ else
+ {
+ fmatide.Write((ushort)0xFFFF);
+ fmatideb.Write(0.0f);
+ }
+
+ if (isTerrain && uvgbHeightmap)
+ {
+ var hindex = terrainObjectList.IndexOf(obj.transform.parent.gameObject);
+ //var htex = terrainObjectToHeightMap[hindex];
+ //texPtr = htex.GetNativeTexturePtr();
+
+ //heightmapList.Add(texPtr);
+ //heightmapListTex.Add(htex);
+ //heightmapListBounds.Add();
+
+ //texID = heightmapCounter;
+ //heightmapCounter++;
+
+ fmatidh.Write((ushort)hindex);//texID);
+ }
+ else
+ {
+ fmatidh.Write((ushort)0xFFFF);
+ }
+ }
+
+ // Update LMGroup bounds
+ if (modifyLightmapStorage)
+ {
+ if (lmBounds[id].size == Vector3.zero) {
+ lmBounds[id] = mr.bounds;
+ } else {
+ var b = lmBounds[id];
+ b.Encapsulate(mr.bounds);
+ lmBounds[id] = b;
+ }
+
+ if (isTerrain && exportTerrainAsHeightmap)
+ {
+ var b = lmBounds[id];
+ var hindex = terrainObjectList.IndexOf(obj.transform.parent.gameObject);
+ var terr = terrainObjectToActual[hindex];
+ var tb = terr.terrainData.bounds;
+ tb.center += terr.transform.position;
+ b.Encapsulate(tb);
+ lmBounds[id] = b;
+ }
+ }
+
+ } else {
+ // Write empty albedo/alpha IDs for non-lightmapped
+ for(int k=0; k<m.subMeshCount; k++) {
+ fmatid.Write((ushort)0);
+ alphaIDs.Add(0xFFFF);
+ fmatide.Write((ushort)0xFFFF);
+ fmatideb.Write(0.0f);
+ fmatidh.Write((ushort)0xFFFF);
+ }
+ }
+
+ // Mark whole mesh that some submeshes use Meta Pass alpha
+ objsToWriteHasMetaAlpha.Add(hasMetaAlpha);
+
+ int currentVoffset = voffset;
+ voffset += objsToWriteVerticesPosW[i].Length;// m.vertexCount;
+
+ // Check if mesh is flipped
+ var ls = obj.transform.lossyScale;
+ bool isFlipped = Mathf.Sign(ls.x*ls.y*ls.z) < 0;
+ if (lmgroup != null && lmgroup.flipNormal) isFlipped = !isFlipped;
+
+ while(lmIndexArrays.Count <= id)
+ {
+ lmIndexArrays.Add(new List<int>());
+ lmLocalToGlobalIndices.Add(new List<int>());
+ lmVOffset.Add(0);
+ }
+
+ var mmr = GetValidRenderer(obj);
+ var castsShadows = mmr.shadowCastingMode != UnityEngine.Rendering.ShadowCastingMode.Off;
+ if (exportTerrainAsHeightmap && obj.name == "__ExportTerrain") castsShadows = false; // prevent exporting placeholder quads to ftrace
+
+ time = GetTime();
+ for(int k=0;k<m.subMeshCount;k++) {
+ // Export regular index buffer
+ //var indexCount = exportIB(fib, m, k, isFlipped, false, 0, null, 0);
+ var indexCount = exportIB(fib, inds[k], isFlipped, false, 0, null, 0);
+
+ bool submeshCastsShadows = castsShadows;
+ if (submeshCastsShadows)
+ {
+ var mats = mmr.sharedMaterials;
+ if (mats.Length > k)
+ {
+ if (mats[k] != null)
+ {
+ var matTag = mats[k].GetTag("RenderType", true);
+ if (matTag == "Transparent" || matTag == "TreeLeaf")
+ {
+ if (mats[k].HasProperty("_Color"))
+ {
+ if (mats[k].color.a < 0.5f) submeshCastsShadows = false;
+ }
+ }
+ }
+ }
+ }
+
+ // Generate tracing index buffer, write alpha IDs per triangle
+ if (submeshCastsShadows)
+ {
+ var alphaID = alphaIDs[(alphaIDs.Count - m.subMeshCount) + k];
+
+ if (lodLevel < 0)
+ {
+ // Export persistent IB
+ var indicesOpaqueArray = indicesOpaque;
+ var indicesTransparentArray = indicesTransparent;
+ var falphaidFile = falphaid;
+ exportIB32(indicesOpaqueArray, indicesTransparentArray, id>=0 ? lmIndexArrays[id] : null,
+ inds[k], isFlipped, currentVoffset, id>=0 ? lmVOffset[id] : 0, falphaidFile, alphaID);
+ }
+ else
+ {
+ // Export LOD IBs
+ var visList = objToLodLevelVisible[obj];
+ for(int vlod=0; vlod<visList.Count; vlod++)
+ {
+ int lod = visList[vlod];
+ var indicesOpaqueArray = data.indicesOpaqueLOD[lod];
+ var indicesTransparentArray = data.indicesTransparentLOD[lod];
+ var falphaidFile = falphaidlod[lod];
+ exportIB32(indicesOpaqueArray, indicesTransparentArray, id>=0 ? lmIndexArrays[id] : null,
+ inds[k], isFlipped, currentVoffset, id>=0 ? lmVOffset[id] : 0, falphaidFile, alphaID);
+ }
+ }
+ }
+ ioffset += indexCount;
+ }
+ ibTime += GetTime() - time;
+
+ if (id >= 0)
+ {
+ var vcount = objsToWriteVerticesPosW[i].Length;//m.vertexCount;
+ var remapArray = lmLocalToGlobalIndices[id];
+ var addition = lmVOffset[id];
+ for(int k=0; k<vcount; k++)
+ {
+ remapArray.Add(k + currentVoffset);
+ }
+ lmVOffset[id] += vcount;
+ }
+ }
+
+ }
+ catch(Exception e)
+ {
+ DebugLogError("Error exporting scene - see console for details");
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ Debug.LogError("Exception caught: " + e.ToString());
+ throw;
+ }
+
+ ProgressBarShow("Exporting scene - finishing objects...", 0.5f, false);
+ if (userCanceled)
+ {
+ CloseAllFiles();
+ ProgressBarEnd(true);
+ yield break;
+ }
+ yield return null;
+
+ try
+ {
+ // Write vertex buffers and update storage
+ Rect rc = new Rect();
+ var emptyVec4 = new Vector4(1,1,0,0);
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ var obj = objsToWrite[i];
+ var m = GetSharedMesh(obj);
+ var lmgroup = objsToWriteGroup[i];
+
+ var id = lmgroup == null ? -1 : objsToWriteGroup[i].id;
+
+ BakeryLightMesh areaLight = obj.GetComponent<BakeryLightMesh>();
+ if (areaLight == null)
+ {
+ var areaIndex = temporaryAreaLightMeshList.IndexOf(obj);
+ if (areaIndex >= 0) areaLight = temporaryAreaLightMeshList2[areaIndex];
+ }
+ //var areaLight =
+ if (areaLight != null) id = areaLight.lmid;
+
+ var vertexBake = lmgroup != null ? (lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.Vertex) : false;
+ //var castsShadows = obj.GetComponent<Renderer>().shadowCastingMode != UnityEngine.Rendering.ShadowCastingMode.Off;
+
+ var holderObj = objsToWriteHolder[i];
+ if (holderObj != null)
+ {
+ if (!holderRect.TryGetValue(holderObj, out rc))
+ {
+ holderObj = null;
+ }
+ }
+
+ time = GetTime();
+ //var vertices = m.vertices;
+ //var normals = m.normals;
+ //var tangents = m.tangents;
+ var uv = objsToWriteVerticesUV[i];//m.uv;
+ var uv2 = objsToWriteVerticesUV2[i];//m.uv2;
+ if (uv2.Length == 0 && !vertexBake) uv2 = uv;//m.uv;
+ vbTimeRead += GetTime() - time;
+
+ var inds = objsToWriteIndices[i];
+
+ var time2 = GetTime();
+ time = time2;
+
+ // Transform UVs
+ var tformedPos = objsToWriteVerticesPosW[i];// new Vector3[vertices.Length];
+ var tformedNormals = objsToWriteVerticesNormalW[i];// new Vector3[normals.Length];
+ Vector4[] tformedTangents = null;
+ if (NeedsTangents(lmgroup, tangentSHLights))
+ {
+ tformedTangents = objsToWriteVerticesTangentW[i];
+ }
+ Vector2[] tformedUV2;
+ if (areaLight == null && !vertexBake)
+ {
+ tformedUV2 = holderObj == null ? uv2 : new Vector2[tformedPos.Length];
+ for(int t=0; t<tformedPos.Length; t++)
+ {
+ if (holderObj != null)
+ {
+ tformedUV2[t].x = uv2[t].x * rc.width + rc.x;
+ tformedUV2[t].y = uv2[t].y * rc.height + rc.y;
+ }
+ }
+ objsToWriteUVOverride.Add(null);
+ }
+ else if (vertexBake)
+ {
+ tformedUV2 = GenerateVertexBakeUVs(lmgroup.vertexCounter, tformedPos.Length, lmgroup.totalVertexCount);
+ lmgroup.vertexCounter += tformedPos.Length;
+ objsToWriteUVOverride.Add(tformedUV2);
+ }
+ else
+ {
+ tformedUV2 = uv;
+ objsToWriteUVOverride.Add(null);
+ }
+
+ if (id >= 0)
+ {
+ while(lmUVArrays.Count <= id)
+ {
+ lmUVArrays.Add(new List<float>());
+ }
+ var lmUVArray = lmUVArrays[id];
+ for(int k=0; k<tformedUV2.Length; k++)
+ {
+ lmUVArray.Add(tformedUV2[k].x);
+ lmUVArray.Add(tformedUV2[k].y);
+ }
+ }
+
+ if (objsToWriteHasMetaAlpha[i]) uv = tformedUV2; // objects using Meta Pass alpha use UV2 instead of UV1
+
+ exportVBFull(fvbfull, tformedPos, tformedNormals, tformedTangents, uv, tformedUV2);
+ vbTimeWriteFull += GetTime() - time;
+ time = GetTime();
+ //if (castsShadows)
+ //{
+ exportVBTrace(fvbtrace, m, tformedPos, tformedNormals);
+ vbTimeWriteT += GetTime() - time;
+ time = GetTime();
+ exportVBTraceTexAttribs(vbtraceTexPosNormalArray, vbtraceTexUVArray, tformedPos, tformedNormals, tformedUV2, id, vertexBake, obj);
+ vbTimeWriteT2 += GetTime() - time;
+ time = GetTime();
+ exportVBTraceUV0(fvbtraceUV0, uv, tformedPos.Length);
+ vbTimeWriteT3 += GetTime() - time;
+ time = GetTime();
+ //}
+ voffset += tformedPos.Length;
+ vbTimeWrite += GetTime() - time2;
+
+
+ // update storage
+ // also write seamfix.bin
+ var sceneID = sceneToID[obj.scene];
+ if (obj.name == "__ExportTerrain")
+ {
+ fseamfix.Write(false);
+ var index = terrainObjectList.IndexOf(obj.transform.parent.gameObject);
+ var terrain = terrainObjectToActual[index];
+ var scaleOffset = holderObj == null ? emptyVec4 : new Vector4(rc.width, rc.height, rc.x, rc.y);
+ if (!storages[sceneID].bakedRenderersTerrain.Contains(terrain))
+ {
+ if (modifyLightmapStorage)
+ {
+ storages[sceneID].bakedRenderersTerrain.Add(terrain);
+ storages[sceneID].bakedIDsTerrain.Add(CorrectLMGroupID(id, lmgroup, groupList));
+ storages[sceneID].bakedScaleOffsetTerrain.Add(scaleOffset);
+ }
+ }
+ objsToWriteScaleOffset.Add(scaleOffset);
+ }
+ else
+ {
+ fseamfix.Write(true);
+ var scaleOffset = holderObj == null ? emptyVec4 : new Vector4(rc.width, rc.height, rc.x, rc.y);
+ if (modifyLightmapStorage)
+ {
+ bool vertexImplicit = false;
+ if (vertexBake)
+ {
+ if (lmgroup.isImplicit) vertexImplicit = true;
+ }
+ if (!vertexImplicit)
+ {
+ storages[sceneID].bakedRenderers.Add(GetValidRenderer(obj));
+ storages[sceneID].bakedIDs.Add(CorrectLMGroupID(id, lmgroup, groupList));
+ storages[sceneID].bakedScaleOffset.Add(scaleOffset);
+ storages[sceneID].bakedVertexOffset.Add(vertexBake ? (lmgroup.vertexCounter - tformedPos.Length) : -1);
+ storages[sceneID].bakedVertexColorMesh.Add(null);
+ }
+ }
+ objsToWriteScaleOffset.Add(scaleOffset);
+ }
+ }
+
+ // Generate LOD UVs
+ if (ftRenderLightmap.giLodModeEnabled)
+ {
+ for(int s=0; s<sceneCount; s++)
+ {
+ if (storages[s] == null) continue;
+ storages[s].lmGroupMinLOD = new int[groupList.Count];
+ storages[s].lmGroupLODMatrix = new int[groupList.Count * groupList.Count];
+ }
+ for(int i=0; i<groupList.Count; i++)
+ {
+ var lmgroup = groupList[i];
+ if (lmgroup.resolution < 128)
+ {
+ lmUVArrays2.Add(null);
+ lmIndexArrays2.Add(null);
+ lmUVArrays3.Add(null);
+ continue;
+ }
+ if (lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.Vertex || lmgroup.containsTerrains)
+ {
+ lmUVArrays2.Add(null);
+ lmIndexArrays2.Add(null);
+ lmUVArrays3.Add(null);
+ if (lmgroup.containsTerrains)
+ {
+ int minLodResolutionTerrain = 128;
+ for(int s=0; s<sceneCount; s++)
+ {
+ if (storages[s] == null) continue;
+ int minLOD = (int)(Mathf.Log(lmgroup.resolution, 2.0f) - Mathf.Log(minLodResolutionTerrain, 2.0f)) - 1;
+ if (minLOD < 0) minLOD = 0;
+ storages[s].lmGroupMinLOD[lmgroup.id] = minLOD;
+ }
+ }
+ continue;
+ }
+ int id = lmgroup.id;
+ lmUVArrays2.Add(lmUVArrays[i].ToArray());
+ lmIndexArrays2.Add(lmIndexArrays[i].ToArray());
+
+ lmUVArrays3.Add(lmUVArrays[i].ToArray());
+ int uvIslands = uvrLoad(lmUVArrays2[i], lmUVArrays2[i].Length/2, lmIndexArrays2[i], lmIndexArrays2[i].Length);
+ if (uvIslands <= 0)
+ {
+ Debug.LogError("Can't generate LOD UVs for " + lmgroup.name+" "+lmUVArrays2[i].Length+" "+lmIndexArrays2[i].Length+" "+lmgroup.containsTerrains);
+ uvrUnload();
+ continue;
+ }
+ int minLodResolution = Mathf.NextPowerOfTwo((int)Mathf.Ceil(Mathf.Sqrt((float)uvIslands)));
+ minLodResolution = minLodResolution << 1;
+ if (minLodResolution > lmgroup.resolution)
+ {
+ DebugLogWarning("Not generating LOD UVs for " + lmgroup.name + ", because there are too many UV islands");
+ uvrUnload();
+ continue;
+ }
+ DebugLogInfo("Min LOD resolution for " + lmgroup.name + " is " + minLodResolution);
+ for(int s=0; s<sceneCount; s++)
+ {
+ if (storages[s] == null) continue;
+ int minLOD = (int)(Mathf.Log(lmgroup.resolution, 2.0f) - Mathf.Log(minLodResolution, 2.0f)) - 1;
+ if (minLOD < 0) minLOD = 0;
+ storages[s].lmGroupMinLOD[lmgroup.id] = minLOD;
+ }
+
+ int uvrErrCode = uvrRepack(0, minLodResolution);
+ if (uvrErrCode == -1)
+ {
+ Debug.LogError("Can't repack LOD UVs for " + lmgroup.name);
+ uvrUnload();
+ continue;
+ }
+ DebugLogInfo("Tries left: " + uvrErrCode);
+ uvrUnload();
+ var numLocalVerts = lmUVArrays2[i].Length / 2;
+ for(int k=0; k<numLocalVerts; k++)
+ {
+ float u = lmUVArrays2[i][k * 2];
+ u = Mathf.Clamp(u, 0, 0.99999f);
+ u += id * 10;
+ if (i >= 0 && (int)u > id*10)
+ {
+ Debug.LogError("Float overflow (GI LOD)");
+ }
+ lmUVArrays2[i][k * 2] = u;
+ }
+ }
+ }
+
+ // Write vbTraceTex
+ int numTraceVerts = vbtraceTexUVArray.Count/2;
+ for(int i=0; i<numTraceVerts; i++)
+ {
+ fvbtraceTex.Write(vbtraceTexPosNormalArray[i * 6]);
+ fvbtraceTex.Write(vbtraceTexPosNormalArray[i * 6 + 1]);
+ fvbtraceTex.Write(vbtraceTexPosNormalArray[i * 6 + 2]);
+ fvbtraceTex.Write(vbtraceTexPosNormalArray[i * 6 + 3]);
+ fvbtraceTex.Write(vbtraceTexPosNormalArray[i * 6 + 4]);
+ fvbtraceTex.Write(vbtraceTexPosNormalArray[i * 6 + 5]);
+
+ fvbtraceTex.Write(vbtraceTexUVArray[i * 2]);
+ fvbtraceTex.Write(vbtraceTexUVArray[i * 2 + 1]);
+ }
+
+ // Generate LOD UV buffer
+ if (ftRenderLightmap.giLodModeEnabled)
+ {
+ var uvBuffOffsets = new int[lmUVArrays3.Count];
+ var uvBuffLengths = new int[lmUVArrays3.Count];
+ int uvBuffSize = 0;
+ for(int i=0; i< lmUVArrays3.Count; i++)
+ {
+ if (lmUVArrays3[i] == null) continue;
+ uvBuffOffsets[i] = uvBuffSize;
+ uvBuffLengths[i] = lmUVArrays3[i].Length;
+ uvBuffSize += lmUVArrays3[i].Length;
+ }
+ var uvSrcBuff = new float[uvBuffSize];
+ var uvDestBuff = new float[uvBuffSize];
+ for(int i=0; i< lmUVArrays3.Count; i++)
+ {
+ if (lmUVArrays3[i] == null) continue;
+ var arr = lmUVArrays3[i];
+ var arr2 = lmUVArrays2[i];
+ var offset = uvBuffOffsets[i];
+ for(int j=0; j<arr.Length; j++)
+ {
+ uvSrcBuff[j + offset] = arr[j];
+ uvDestBuff[j + offset] = arr2[j];
+ }
+ }
+ var lmrIndicesOffsets = new int[lmIndexArrays2.Count];
+ var lmrIndicesLengths = new int[lmIndexArrays2.Count];
+ int lmrIndicesSize = 0;
+ for(int i=0; i< lmIndexArrays2.Count; i++)
+ {
+ if (lmIndexArrays2[i] == null) continue;
+ lmrIndicesOffsets[i] = lmrIndicesSize;
+ lmrIndicesLengths[i] = lmIndexArrays2[i].Length;
+ lmrIndicesSize += lmIndexArrays2[i].Length;
+ }
+ var lmrIndicesBuff = new int[lmrIndicesSize];
+ for(int i=0; i< lmIndexArrays2.Count; i++)
+ {
+ if (lmIndexArrays2[i] == null) continue;
+ var arr = lmIndexArrays2[i];
+ var offset = lmrIndicesOffsets[i];
+ for(int j=0; j<arr.Length; j++)
+ {
+ lmrIndicesBuff[j + offset] = arr[j];
+ }
+ }
+
+ for(int s=0; s<sceneCount; s++)
+ {
+ if (storages[s] == null) continue;
+ storages[s].uvBuffOffsets = uvBuffOffsets;
+ storages[s].uvBuffLengths = uvBuffLengths;
+ storages[s].uvSrcBuff = uvSrcBuff;
+ storages[s].uvDestBuff = uvDestBuff;
+ storages[s].lmrIndicesOffsets = lmrIndicesOffsets;
+ storages[s].lmrIndicesLengths = lmrIndicesLengths;
+ storages[s].lmrIndicesBuff = lmrIndicesBuff;
+
+ }
+ vbtraceTexUVArrayLOD = new float[vbtraceTexUVArray.Count];
+ for(int i=0; i<groupList.Count; i++)
+ {
+ var lmgroup = groupList[i];
+ if (lmgroup.resolution < 128) continue;
+ if (lmgroup.mode == BakeryLightmapGroup.ftLMGroupMode.Vertex || lmgroup.containsTerrains) continue;
+ var remapArray = lmLocalToGlobalIndices[i];
+ var uvArray = lmUVArrays2[i];
+ for(int j=0; j<remapArray.Count; j++)
+ {
+ vbtraceTexUVArrayLOD[remapArray[j]*2] = uvArray[j*2];
+ vbtraceTexUVArrayLOD[remapArray[j]*2+1] = uvArray[j*2+1];
+ }
+ }
+ }
+
+ // Write tracing index buffer
+ fib32.Write(indicesOpaque.Count); // firstAlphaTriangle
+ for(int i=0; i<indicesOpaque.Count; i++) fib32.Write(indicesOpaque[i]); // opaque triangles
+ for(int i=0; i<indicesTransparent.Count; i++) fib32.Write(indicesTransparent[i]); // alpha triangles
+
+ // Write scene LOD tracing index buffers
+ for(int lod=0; lod<sceneLodsUsed; lod++)
+ {
+ var indicesOpaqueArray = data.indicesOpaqueLOD[lod];
+ var indicesTransparentArray = data.indicesTransparentLOD[lod];
+ fib32lod[lod].Write(indicesOpaqueArray.Count);
+ for(int i=0; i<indicesOpaqueArray.Count; i++) fib32lod[lod].Write(indicesOpaqueArray[i]); // opaque triangles
+ for(int i=0; i<indicesTransparentArray.Count; i++) fib32lod[lod].Write(indicesTransparentArray[i]); // alpha triangles
+ }
+
+ DebugLogInfo("Wrote binaries in " + ((GetTime() - totalTime)/1000.0) + "s");
+ DebugLogInfo("VB read time " + (vbTimeRead/1000.0) + "s");
+ DebugLogInfo("VB write time " + (vbTimeWrite/1000.0) + "s");
+ DebugLogInfo("VB write time (full) " + (vbTimeWriteFull/1000.0) + "s");
+ DebugLogInfo("VB write time (trace) " + (vbTimeWriteT/1000.0) + "s");
+ DebugLogInfo("VB write time (trace tex) " + (vbTimeWriteT2/1000.0) + "s");
+ DebugLogInfo("VB write time (UV0) " + (vbTimeWriteT3/1000.0) + "s");
+ DebugLogInfo("IB time " + (ibTime/1000.0) + "s");
+
+
+ fscene.Write(objsToWrite.Count);
+ int meshID = 0;
+ foreach(var obj in objsToWrite) {
+ fscene.Write(meshID);
+ meshID++;
+ }
+ foreach(var obj in objsToWrite) {
+ fscene.Write(obj.name);
+ }
+
+ fscene.Close();
+ fmesh.Close();
+ flmid.Close();
+ fseamfix.Close();
+ fsurf.Close();
+ fmatid.Close();
+ fmatide.Close();
+ fmatideb.Close();
+ fmatidh.Close();
+ fvbfull.Close();
+ fvbtrace.Close();
+ fvbtraceTex.Close();
+ fvbtraceUV0.Close();
+ fib.Close();
+ fib32.Close();
+ falphaid.Close();
+ fhmaps.Close();
+
+ if (fib32lod != null)
+ {
+ for(int i=0; i<fib32lod.Length; i++) fib32lod[i].Close();
+ }
+ if (falphaidlod != null)
+ {
+ for(int i=0; i<falphaidlod.Length; i++) falphaidlod[i].Close();
+ }
+
+ if (modifyLightmapStorage)
+ {
+ for(int s=0; s<sceneCount; s++)
+ {
+ if (storages[s] == null) continue;
+ storages[s].bounds = lmBounds;
+ }
+ }
+ //}
+
+ startMsU = GetTime();
+ }
+ catch(Exception e)
+ {
+ DebugLogError("Error exporting scene - see console for details");
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ Debug.LogError("Exception caught: " + e.ToString());
+ throw;
+ }
+
+ if (exportShaderColors && renderTextures)
+ {
+ yield return null;
+ ProgressBarShow("Exporting scene - shaded surface colors...", 0.55f, false);
+ for(int g=0; g<groupList.Count; g++)
+ {
+ var str = storages[data.firstNonNullStorage];
+ if (str == null) Debug.LogError("storages[data.firstNonNullStorage] == null");
+ if (str.hasEmissive == null) Debug.LogError("storages[data.firstNonNullStorage].hasEmissive == null");
+ if (groupList[g] == null) Debug.LogError("group is null");
+
+ var hasEmissive = str.hasEmissive.Count > groupList[g].id && str.hasEmissive[groupList[g].id];
+
+ bool vertexBake = groupList[g].mode == BakeryLightmapGroup.ftLMGroupMode.Vertex;
+
+ int res = groupList[g].resolution;
+ if (vertexBake)
+ {
+ if (groupList[g].totalVertexCount == 0)
+ {
+ DebugLogError("Vertex lightmap group " + groupList[g].name + " has 0 static vertices. Make sure objects inside the group don't all have Scale In Lightmap == 0.");
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+ int atlasTexSize = (int)Mathf.Ceil(Mathf.Sqrt((float)groupList[g].totalVertexCount));
+ atlasTexSize = (int)Mathf.Ceil(atlasTexSize / (float)ftRenderLightmap.tileSize) * ftRenderLightmap.tileSize;
+ res = atlasTexSize;
+ }
+
+ var bakeWithNormalMaps = (groupList[g].renderDirMode == BakeryLightmapGroup.RenderDirMode.BakedNormalMaps) ?
+ true : (ftRenderLightmap.renderDirMode == ftRenderLightmap.RenderDirMode.BakedNormalMaps);
+
+ if (groupList[g].probes) bakeWithNormalMaps = false;
+
+ bool hasMetaAlpha = false;
+
+ ftUVGBufferGen.StartUVGBuffer(res, hasEmissive, bakeWithNormalMaps);
+ for(int i=0; i<objsToWrite.Count; i++)
+ {
+ var obj = objsToWrite[i];
+ var lmgroup = objsToWriteGroup[i];
+ if (lmgroup == null) continue;
+ if (lmgroup.id != groupList[g].id) continue;
+ if (obj.GetComponent<BakeryLightMesh>()) continue;
+ var bakedMesh = GetSharedMeshBaked(obj);
+ ftUVGBufferGen.RenderUVGBuffer(bakedMesh,
+ GetValidRenderer(obj),
+ objsToWriteScaleOffset[i],
+ obj.transform,
+ vertexBake,
+ objsToWriteUVOverride[i],
+ bakeWithNormalMaps && !exportTerrainAsHeightmap && obj.name == "__ExportTerrain",
+ objsToWriteHasMetaAlpha[i]);
+
+ if (objsToWriteHasMetaAlpha[i]) hasMetaAlpha = true;
+ }
+ ftUVGBufferGen.EndUVGBuffer();
+
+ var albedo = ftUVGBufferGen.texAlbedo;
+ var emissive = ftUVGBufferGen.texEmissive;
+ var normal = ftUVGBufferGen.texNormal;
+ var alpha = ftUVGBufferGen.texAlpha;
+ if (hasEmissive)
+ {
+ //albedo = ftUVGBufferGen.GetAlbedoWithoutEmissive(ftUVGBufferGen.texAlbedo, ftUVGBufferGen.texEmissive);
+ //if ((unityVersionMajor == 2017 && unityVersionMinor < 2) || unityVersionMajor < 2017)
+ //{
+#if UNITY_2017_2_OR_NEWER
+#else
+ // Unity before 2017.2: emissive packed to RGBM
+ // Unity after 2017.2: linear emissive
+ emissive = ftUVGBufferGen.DecodeFromRGBM(emissive);
+#endif
+ //}
+ if (ftRenderLightmap.hackEmissiveBoost != 1.0f)
+ {
+ ftUVGBufferGen.Multiply(emissive, ftRenderLightmap.hackEmissiveBoost);
+ }
+ if (!vertexBake) ftUVGBufferGen.Dilate(emissive);
+ }
+ if (!vertexBake) ftUVGBufferGen.Dilate(albedo);
+
+ if (isDX11)
+ {
+ SaveGBufferMap(albedo.GetNativeTexturePtr(),
+ scenePath + "/uvalbedo_" + groupList[g].name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"),
+ ftRenderLightmap.compressedGBuffer);
+ GL.IssuePluginEvent(5);
+ yield return null;
+ }
+ else
+ {
+ var bytes = InputBytesFromTex(albedo);
+ SaveGBufferMapFromRAM(bytes, bytes.Length,
+ scenePath + "/uvalbedo_" + groupList[g].name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"),
+ ftRenderLightmap.compressedGBuffer);
+ }
+ DestroyImmediate(albedo);
+ //if (g==2) storage.debugTex = emissive;
+
+ if (hasEmissive)
+ {
+ if (isDX11)
+ {
+ SaveGBufferMap(emissive.GetNativeTexturePtr(),
+ scenePath + "/uvemissive_" + groupList[g].name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"),
+ ftRenderLightmap.compressedGBuffer);
+ GL.IssuePluginEvent(5);
+ yield return null;
+ }
+ else
+ {
+ var bytes = InputBytesFromTex(emissive, TexInputType.HalfColor);
+ SaveGBufferMapFromRAM(bytes, bytes.Length,
+ scenePath + "/uvemissive_" + groupList[g].name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"),
+ ftRenderLightmap.compressedGBuffer);
+ }
+
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add("uvemissive_" + groupList[g].name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"));
+ DestroyImmediate(emissive);
+ }
+
+ if (bakeWithNormalMaps)
+ {
+ if (isDX11)
+ {
+ SaveGBufferMap(normal.GetNativeTexturePtr(),
+ scenePath + "/uvnormal_" + groupList[g].name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"),
+ ftRenderLightmap.compressedGBuffer);
+ GL.IssuePluginEvent(5);
+ yield return null;
+ }
+ else
+ {
+ var bytes = InputBytesFromTex(normal);
+ SaveGBufferMapFromRAM(bytes, bytes.Length,
+ scenePath + "/uvnormal_" + groupList[g].name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"),
+ ftRenderLightmap.compressedGBuffer);
+ }
+ DestroyImmediate(normal);
+ }
+
+ if (hasMetaAlpha)
+ {
+ for(int i=0; i<lmAlphaListTex.Count; i++)
+ {
+ if (lmAlphaListTex[i] == null) // must be meta alpha
+ {
+ int alphaLMID = lmAlphaChannelList[i];
+ if (alphaLMID != groupList[g].id) continue; // must link to the same LMID
+
+ // Patch with the new alpha texture
+ lmAlphaListTex[i] = alpha;
+ lmAlphaList[i] = alpha.GetNativeTexturePtr();
+ if (nonDX11) lmAlphaListRAM[i] = InputDataFromTex(alpha);
+ lmAlphaChannelList[i] = 3;
+ }
+ }
+ }
+ }
+ }
+
+ ProgressBarShow(exportShaderColors ? "Exporting scene - alpha buffer..." : "Exporting scene - UV GBuffer and alpha buffer...", 0.55f, false);
+ if (userCanceled)
+ {
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+ yield return null;
+
+ InitShaders();
+ LoadScene(scenePath);
+
+ // Force load textures to VRAM
+ var forceRt = new RenderTexture(1, 1, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.sRGB);
+ var forceTex = new Texture2D(1, 1, TextureFormat.ARGB32, false, false);
+ if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11)
+ {
+ if (!exportShaderColors)
+ {
+ for(int i=0; i<lmAlbedoListTex.Count; i++)
+ {
+ Graphics.Blit(lmAlbedoListTex[i] as Texture2D, forceRt);
+ Graphics.SetRenderTarget(forceRt);
+ forceTex.ReadPixels(new Rect(0,0,1, 1), 0, 0, true);
+ forceTex.Apply();
+ lmAlbedoList[i] = lmAlbedoListTex[i].GetNativeTexturePtr();
+ }
+ }
+ for(int i=0; i<lmAlphaListTex.Count; i++)
+ {
+ Graphics.Blit(lmAlphaListTex[i] as Texture2D, forceRt);
+ Graphics.SetRenderTarget(forceRt);
+ forceTex.ReadPixels(new Rect(0,0,1, 1), 0, 0, true);
+ forceTex.Apply();
+ lmAlphaList[i] = lmAlphaListTex[i].GetNativeTexturePtr();
+ }
+ }
+
+ if (exportShaderColors)
+ {
+ if (terrainObjectToActual.Count > 0)
+ {
+ if (isDX11)
+ {
+ var terrainObjectToHeightMapPtr = new IntPtr[terrainObjectToHeightMap.Count];
+ for(int i=0; i<terrainObjectToHeightMap.Count; i++)
+ {
+ Graphics.Blit(terrainObjectToHeightMap[i] as Texture2D, forceRt);
+ Graphics.SetRenderTarget(forceRt);
+ forceTex.ReadPixels(new Rect(0,0,1, 1), 0, 0, true);
+ forceTex.Apply();
+ terrainObjectToHeightMapPtr[i] = terrainObjectToHeightMap[i].GetNativeTexturePtr();
+ }
+ SetAlbedos(terrainObjectToHeightMap.Count, terrainObjectToHeightMapPtr);
+ int cerr = CopyAlbedos();
+ if (cerr != 0)
+ {
+ DebugLogError("Failed to copy textures (" + cerr + ")");
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+ }
+ else
+ {
+ int cerr = CopyHeightmapsFromRAM(terrainObjectToHeightMapRAM.Count, terrainObjectToHeightMapRAM.ToArray());
+ if (cerr != 0)
+ {
+ DebugLogError("Failed to copy textures from RAM (" + cerr + ")");
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+ }
+ }
+ else
+ {
+ SetAlbedos(0, null);
+ }
+ }
+ else
+ {
+ SetAlbedos(lmAlbedoList.Count, lmAlbedoList.ToArray());
+ }
+
+ var lmAlphaListRAMHandle = new GCHandle();
+ if (isDX11)
+ {
+ // Pass texture objects directly
+ SetAlphas(lmAlphaList.Count, lmAlphaList.ToArray(), lmAlphaRefList.ToArray(), lmAlphaChannelList.ToArray(), sceneLodsUsed, flipAlpha);
+ }
+ else
+ {
+ // Pass via RAM
+ var lmAlphaListRAMArray = lmAlphaListRAM.ToArray();
+ lmAlphaListRAMHandle = GCHandle.Alloc(lmAlphaListRAMArray, GCHandleType.Pinned);
+ SetAlphasFromRAM(lmAlphaListRAM.Count, lmAlphaListRAMHandle.AddrOfPinnedObject(), lmAlphaRefList.ToArray(), lmAlphaChannelList.ToArray(), sceneLodsUsed, flipAlpha);
+ }
+
+ GL.IssuePluginEvent(6); // render alpha buffer
+ int uerr = 0;
+ while(uerr == 0)
+ {
+ uerr = GetABGErrorCode();
+ yield return null;
+ }
+
+ if (nonDX11) lmAlphaListRAMHandle.Free();
+
+ /*yield return new WaitForEndOfFrame();
+ int uerr = ftGenerateAlphaBuffer();*/
+ if (uerr != 0 && uerr != 99999)
+ {
+ DebugLogError("ftGenerateAlphaBuffer error: " + uerr);
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+
+ DestroyImmediate(forceTex);
+ forceRt.Release();
+
+ if (!renderTextures)
+ {
+ ProgressBarEnd(true);//false);
+ yield break;
+ }
+
+ //ProgressBarShow("Exporting scene - UV GBuffer...", 0.8f);
+ //if (userCanceled) yield break;
+ //yield return null;
+
+ //GL.IssuePluginEvent(1); // render UV GBuffer
+ //yield return new WaitForEndOfFrame();
+
+ SetFixPos(false);//true); // do it manually
+ SetCompression(ftRenderLightmap.compressedGBuffer);
+
+ if (!exportShaderColors)
+ {
+ uerr = ftRenderUVGBuffer();
+ if (uerr != 0)
+ {
+ DebugLogError("ftRenderUVGBuffer error: " + uerr);
+ CloseAllFiles();
+ userCanceled = true;
+ ProgressBarEnd(true);
+ yield break;
+ }
+ }
+
+ if (!pstorage.generateSmoothPos)
+ {
+ // further passes still require smooth pos, copy from pos
+ for(int i=0; i<groupList.Count; i++)
+ {
+ var lmgroup = groupList[i];
+ File.Copy(scenePath + "/uvpos_" + lmgroup.name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"),
+ scenePath + "/uvsmoothpos_" + lmgroup.name + (ftRenderLightmap.compressedGBuffer ? ".lz4" : ".dds"),
+ true);
+ }
+ }
+
+ ms = GetTime();
+ DebugLogInfo("UVGB/fixPos/alpha time: " + ((ms - startMsU) / 1000.0) + " seconds");
+
+ ProgressBarEnd(true);
+
+ DebugLogInfo("Scene export finished");
+ }
+
+ int countChildrenFlat(Transform tform)
+ {
+ int count = 1;
+ foreach(Transform t in tform)
+ {
+ count += countChildrenFlat(t);
+ }
+ return count;
+ }
+}
+
+#endif
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildGraphics.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildGraphics.cs.meta
new file mode 100644
index 00000000..65922ed3
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildGraphics.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1f3ae15d674398b46a90bf2c1aced7ac
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildLights.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildLights.cs
new file mode 100644
index 00000000..844b1919
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildLights.cs
@@ -0,0 +1,1118 @@
+#if UNITY_EDITOR
+
+// Disable 'obsolete' warnings
+#pragma warning disable 0618
+
+#define SRGBCONVERT
+//#define OPTIMIZEDAREA // BSP
+#define OPTIMIZEDAREA2 // efficient weighted sampling
+#define LAUNCH_VIA_DLL
+
+using UnityEngine;
+using UnityEditor;
+using System.IO;
+using System.Text;
+using System.Collections;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using UnityEngine.Rendering;
+using System.Reflection;
+
+public class ftBuildLights
+{
+ static Dictionary<UnityEngine.Object, int> tex2hash;
+ static Dictionary<string, bool> lightSaved;
+ static bool allowOverwrite = false;
+
+ static System.Type texUtil;
+ static MethodInfo texUtil_GetUsage;
+
+ static public void InitMaps(bool overwrite)
+ {
+ allowOverwrite = overwrite;
+ tex2hash = new Dictionary<UnityEngine.Object, int>();
+ lightSaved = new Dictionary<string, bool>();
+ }
+
+ static public void BuildDirectLight(BakeryDirectLight obj, int SAMPLES, bool ignoreNormal = false, string outName = "direct.bin")
+ {
+ if (!allowOverwrite && lightSaved.ContainsKey(outName)) return;
+ lightSaved[outName] = true;
+
+ var folder = ftBuildGraphics.scenePath;//Directory.GetParent(Application.dataPath).FullName + "/frender";
+ if (!Directory.Exists(folder)) Directory.CreateDirectory(folder);
+ var f = new BinaryWriter(File.Open(folder + "/" + outName, FileMode.Create));
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add(outName);
+
+ f.Write(obj.transform.forward.x);
+ f.Write(obj.transform.forward.y);
+ f.Write(obj.transform.forward.z);
+
+ #if SRGBCONVERT
+ f.Write(obj.color.linear.r * obj.intensity);
+ f.Write(obj.color.linear.g * obj.intensity);
+ f.Write(obj.color.linear.b * obj.intensity);
+ #else
+ f.Write(obj.color.r * obj.intensity);
+ f.Write(obj.color.g * obj.intensity);
+ f.Write(obj.color.b * obj.intensity);
+ #endif
+
+ f.Write(obj.shadowSpread);
+ f.Write(SAMPLES);
+
+ f.Write(obj.cloudShadowTilingX);
+ f.Write(obj.cloudShadowTilingY);
+ f.Write(obj.cloudShadowOffsetX);
+ f.Write(obj.cloudShadowOffsetY);
+
+ f.Write(ignoreNormal);
+ f.Write((short)0);
+
+ if (obj.cloudShadow != null)
+ {
+ var tex = obj.cloudShadow;
+ int existingTexHash;
+ string texName = "";
+ if (!tex2hash.TryGetValue(tex, out existingTexHash)) existingTexHash = -1;
+ if (existingTexHash < 0)
+ {
+ int texHash = tex.GetHashCode();
+ tex2hash[tex] = texHash;
+ existingTexHash = texHash;
+ }
+ texName = "cookie_" + existingTexHash + ".dds";
+
+ // Save original texture to RGBA32F DDS
+ if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11)
+ {
+ ftBuildGraphics.InitShaders();
+ ftBuildGraphics.SaveCookie((tex as Texture2D).GetNativeTexturePtr(),
+ folder + "/" + texName
+ );
+ GL.IssuePluginEvent(4);
+ }
+ else
+ {
+ var a = ftBuildGraphics.InputDataFromTex(tex, ftBuildGraphics.TexInputType.FloatColor);
+ ftBuildGraphics.SaveCookieFromRAM(a,
+ folder + "/" + texName
+ );
+ }
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add(texName);
+
+ f.Write(texName);
+ }
+ else
+ {
+ f.Write((byte)0);
+ }
+
+ f.Close();
+ }
+
+ static public void BuildSkyLight(BakerySkyLight obj, int SAMPLES, bool texDirty, string outName = "sky.bin")
+ {
+ if (!allowOverwrite && lightSaved.ContainsKey(outName)) return;
+ lightSaved[outName] = true;
+
+ var folder = ftBuildGraphics.scenePath;//Directory.GetParent(Application.dataPath).FullName + "/frender";
+ if (!Directory.Exists(folder)) Directory.CreateDirectory(folder);
+ var f = new BinaryWriter(File.Open(folder + "/" + outName, FileMode.Create));
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add(outName);
+
+ #if SRGBCONVERT
+ f.Write(obj.color.linear.r * obj.intensity);
+ f.Write(obj.color.linear.g * obj.intensity);
+ f.Write(obj.color.linear.b * obj.intensity);
+ #else
+ f.Write(obj.color.r * obj.intensity);
+ f.Write(obj.color.g * obj.intensity);
+ f.Write(obj.color.b * obj.intensity);
+ #endif
+
+ f.Write(SAMPLES);
+ f.Write(obj.hemispherical);
+
+ f.Write("sky" + obj.UID + ".dds");
+
+ f.Close();
+
+ if (texDirty)
+ {
+ /*
+ // Disable cubemap compression, so texture is half-float
+ var importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(obj.cubemap)) as TextureImporter;
+ if (importer.textureCompression != TextureImporterCompression.Uncompressed)
+ {
+ importer.textureCompression = TextureImporterCompression.Uncompressed;
+ importer.SaveAndReimport();
+ }
+ */
+
+ var tform = obj.transform;
+ var rh = tform.right;
+ var up = tform.up;
+ var fw = tform.forward;
+
+ var texName = "sky" + obj.UID + ".dds";
+
+ bool isDoubleLDR = false;
+
+ // Find out texture encoding
+ // Even if pixel format is the same, different encoding rules (dLDR, RGBM) can be used
+ if (texUtil == null) texUtil = Assembly.Load("UnityEditor.dll").GetType("UnityEditor.TextureUtil");
+ if (texUtil == null)
+ {
+ Debug.LogError("TextureUtil class cannot be found");
+ }
+ else
+ {
+ if (texUtil_GetUsage == null) texUtil_GetUsage = texUtil.GetMethod("GetUsageMode", BindingFlags.Static | BindingFlags.Public);
+ if (texUtil_GetUsage == null)
+ {
+ Debug.LogError("TextureUtil::GetUsage cannot be found");
+ }
+ else
+ {
+ int usage = (int)texUtil_GetUsage.Invoke(null, new object[]{obj.cubemap});
+ isDoubleLDR = usage == 1 // BakedLightmapDoubleLDR
+ || usage == 7;// DoubleLDR
+ }
+ }
+
+ bool isLinear = PlayerSettings.colorSpace == ColorSpace.Linear;
+
+ if (obj.correctRotation)
+ {
+ if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11)
+ {
+ ftBuildGraphics.InitShaders();
+ ftBuildGraphics.SaveSky(obj.cubemap.GetNativeTexturePtr(),
+ rh.x,
+ up.x,
+ fw.x,
+ rh.y,
+ up.y,
+ fw.y,
+ rh.z,
+ up.z,
+ fw.z,
+ folder + "/" + texName,
+ isLinear,
+ isDoubleLDR
+ );
+ GL.IssuePluginEvent(3); // convert cubemap to small lat/lon DDS
+ }
+ else
+ {
+ var a = ftBuildGraphics.InputDataFromCubemap(obj.cubemap as Texture, Matrix4x4.TRS(Vector3.zero, obj.transform.rotation, Vector3.one).transpose, isLinear, isDoubleLDR, ftBuildGraphics.TexInputType.FloatColor);
+ ftBuildGraphics.SaveCookieFromRAM(a,
+ folder + "/" + texName
+ );
+ }
+ }
+ else
+ {
+ if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11)
+ {
+ ftBuildGraphics.InitShaders();
+ ftBuildGraphics.SaveSky(obj.cubemap.GetNativeTexturePtr(),
+ obj.transform.right.x,
+ obj.transform.right.y,
+ obj.transform.right.z,
+ obj.transform.up.x,
+ obj.transform.up.y,
+ obj.transform.up.z,
+ obj.transform.forward.x,
+ obj.transform.forward.y,
+ obj.transform.forward.z,
+ folder + "/" + texName,
+ isLinear,
+ isDoubleLDR
+ );
+ GL.IssuePluginEvent(3); // convert cubemap to small lat/lon DDS
+ }
+ else
+ {
+ var a = ftBuildGraphics.InputDataFromCubemap(obj.cubemap as Texture, Matrix4x4.TRS(Vector3.zero, obj.transform.rotation, Vector3.one), isLinear, isDoubleLDR, ftBuildGraphics.TexInputType.FloatColor);
+ ftBuildGraphics.SaveCookieFromRAM(a,
+ folder + "/" + texName
+ );
+ }
+ }
+
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add(texName);
+ }
+ }
+
+#if OPTIMIZEDAREA
+
+ class BSPNode
+ {
+ public BSPNode left, right;
+ public float probabilityDivide = 0.0f;
+ public List<int> leafIndices;
+ };
+
+ static int GetRandomTriFromBSP(BSPNode bspNode, float rndValue)
+ {
+ //Debug.LogError(bspNode.probabilityDivide);
+ if (bspNode.leafIndices != null)
+ {
+ return bspNode.leafIndices[Random.Range(0, bspNode.leafIndices.Count)];
+ }
+ if (rndValue < bspNode.probabilityDivide)
+ {
+ return GetRandomTriFromBSP(bspNode.left, rndValue);// != null ? bspNode.left : bspNode.right, rndValue);
+ }
+ else
+ {
+ return GetRandomTriFromBSP(bspNode.right, rndValue);// != null ? bspNode.right : bspNode.left, rndValue);
+ }
+ }
+
+ static BSPNode BuildProbabilityBSP(int[] triIndices, float[] area, int start, int end, int depth, float parentGlobalOffset, float parentGlobalEnd)
+ {
+ if (depth > 100) return null;
+
+ var bspNode = new BSPNode();
+
+ int startIndex = triIndices[start];
+ int endIndex = triIndices[end];
+
+ // Decide where to split
+ //float probabilityDivide = (area[startIndex] + area[endIndex]) * 0.5f;/// (end - start);// * 0.5f;
+ float probabilitySum = 0;
+ int divisor = start;
+ for(int i=start; i<=end; i++)
+ {
+ int triIndex = triIndices[i];
+ probabilitySum += area[triIndex];
+ //if (probabilitySum >= probabilityDivide)
+ //if (area[triIndex] >= probabilityDivide)
+ {
+ //divisor = i;
+ //break;
+ }
+ }
+ float probabilityDivide = probabilitySum / (end - start);
+
+ //probabilitySum = 0;
+ for(int i=start; i<=end; i++)
+ {
+ int triIndex = triIndices[i];
+ //probabilitySum += area[triIndex];
+ //if (probabilitySum >= probabilityDivide)
+ if (area[triIndex] >= probabilityDivide)
+ {
+ divisor = i - 1;
+ break;
+ }
+ }
+
+ if (divisor < 0) divisor = 0;
+
+ int beforeDivisorIndex = divisor > 0 ? triIndices[divisor-1] : 0;
+ int divisorIndex = triIndices[divisor];
+
+ //Debug.LogError(start+" "+end+" "+divisor+" "+probabilityDivide);
+
+ /*
+ // Create new BSP depth layer, if needed
+ if (layers.Count <= depth)
+ {
+ int numElements = triIndices.Length; // conservative?
+ layers[depth] = new int[numElements];
+ }
+ */
+
+ //bspNode.probabilityDivide = probabilityDivide;
+ float probabilitySumLeft = 0;
+ float probabilitySumRight = 0;
+ for(int i=start; i<=end; i++)
+ {
+ int triIndex = triIndices[i];
+ if (i <= divisor)
+ {
+ probabilitySumLeft += area[triIndex];
+ }
+ else
+ {
+ probabilitySumRight += area[triIndex];
+ }
+ }
+ //probabilitySumLeft /= divisor - start + 1;
+ //probabilitySumRight /= end - divisor;
+ float probabilityLength = probabilitySumLeft + probabilitySumRight;
+ //bspNode.probabilityDivide = parentGlobalOffset + (probabilitySumLeft / probabilityLength) * parentGlobalPercent;
+ bspNode.probabilityDivide = Mathf.Lerp(parentGlobalOffset, parentGlobalEnd, probabilitySumLeft / probabilityLength);
+
+ //bspNode.leafIndex = startIndex;
+ bool isLeaf = true;
+
+ if (divisor != start && divisor != end)
+ {
+ //Debug.LogError("["+depth+"] Divide global " + bspNode.probabilityDivide+" "+start+" "+divisor+" "+end+" "+probabilitySumLeft + " "+probabilitySumRight+" "+parentGlobalOffset+" "+parentGlobalEnd);
+
+ // Split left part
+ int newStart = start;
+ int newEnd = divisor > 0 ? divisor : 0;
+ //Debug.LogError("left");
+ bspNode.left = BuildProbabilityBSP(triIndices, area, newStart, newEnd, depth + 1, parentGlobalOffset, bspNode.probabilityDivide);
+
+ // Split right part
+ newStart = divisor + 1;
+ newEnd = end;
+ //Debug.LogError("right");
+ bspNode.right = BuildProbabilityBSP(triIndices, area, newStart, newEnd, depth + 1, bspNode.probabilityDivide, parentGlobalEnd);
+
+ isLeaf = false;
+ }
+
+ if (isLeaf)
+ {
+ bspNode.leafIndices = new List<int>();
+ string l = "";
+ for(int i=start; i<=end; i++)
+ {
+ int triIndex = triIndices[i];
+ bspNode.leafIndices.Add(triIndex);
+ l += area[triIndex] + ", ";
+ }
+ //Debug.LogError("Leaf: " + l);
+ }
+
+ return bspNode;
+ }
+#endif
+
+ static public float BuildLight(BakeryLightMesh obj, int SAMPLES, Vector3[] corners, string outName = "lights.bin",
+ List<Vector3> vplData = null)
+ {
+ if (!allowOverwrite && lightSaved.ContainsKey(outName)) return 0.0f;
+ lightSaved[outName] = true;
+
+ var folder = ftBuildGraphics.scenePath;//Directory.GetParent(Application.dataPath).FullName + "/frender";
+ if (!Directory.Exists(folder)) Directory.CreateDirectory(folder);
+ var f = new BinaryWriter(File.Open(folder + "/" + outName, FileMode.Create));
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add(outName);
+
+ f.Write(1);
+
+ Mesh mesh = null;
+ var tform = obj.transform;
+ Vector3[] verts;
+ Vector2[] uv = null;
+ int[] indices;
+ int tris;
+ if (corners == null)
+ {
+ mesh = ftBuildGraphics.GetSharedMeshBaked(obj.gameObject);
+ verts = mesh.vertices;
+ indices = mesh.triangles;
+ tris = indices.Length / 3;
+ if (obj.texture != null) uv = mesh.uv;
+ }
+ else
+ {
+ verts = corners;
+ indices = new int[6];
+ indices[0] = 2;
+ indices[1] = 1;
+ indices[2] = 0;
+ indices[3] = 0;
+ indices[4] = 3;
+ indices[5] = 2;
+ tris = 2;
+ if (obj.texture != null)
+ {
+ uv = new Vector2[4];
+ uv[0] = new Vector2(0,0);
+ uv[1] = new Vector2(0,1);
+ uv[2] = new Vector2(1,1);
+ uv[3] = new Vector2(1,0);
+ }
+ }
+
+ float[] area = new float[tris];
+#if (OPTIMIZEDAREA || OPTIMIZEDAREA2)
+#else
+ float minArea = float.MaxValue;
+ float maxArea = -float.MaxValue;
+#endif
+ float totalWorldArea = 0;
+
+ //Vector2[] uv = null;
+ int downsampleRes = 0;
+ float[] pixels = null;
+ string texName = "";
+ if (obj.texture != null)
+ {
+ //uv = mesh.uv;
+ var tex = obj.texture;
+
+ // Save original texture to RGBA32F DDS
+ int existingTexHash;
+ if (!tex2hash.TryGetValue(tex, out existingTexHash)) existingTexHash = -1;
+ if (existingTexHash < 0)
+ {
+ int texHash = tex.GetHashCode();
+ tex2hash[tex] = texHash;
+ existingTexHash = texHash;
+ }
+ texName = "areatex_" + existingTexHash + ".dds";
+
+ if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11)
+ {
+ ftBuildGraphics.InitShaders();
+ ftBuildGraphics.SaveCookie(tex.GetNativeTexturePtr(),
+ folder + "/" + texName
+ );
+ GL.IssuePluginEvent(4);
+ }
+ else
+ {
+ var a = ftBuildGraphics.InputDataFromTex(tex, ftBuildGraphics.TexInputType.FloatColor);
+ ftBuildGraphics.SaveCookieFromRAM(a,
+ folder + "/" + texName
+ );
+ }
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add(texName);
+
+ // Get downsampled (via mips) texture
+ downsampleRes = (int)Mathf.Sqrt(SAMPLES);
+ if (downsampleRes == 0) downsampleRes = 1;
+ var downsampleRT = new RenderTexture(downsampleRes, downsampleRes, 0, RenderTextureFormat.ARGBFloat, RenderTextureReadWrite.Linear);
+ var downsampleTex = new Texture2D(downsampleRes, downsampleRes, TextureFormat.RGBAFloat, false, true);
+ Graphics.Blit(tex, downsampleRT);
+ Graphics.SetRenderTarget(downsampleRT);
+ downsampleTex.ReadPixels(new Rect(0,0,downsampleRes,downsampleRes), 0, 0, false);
+ downsampleTex.Apply();
+ var bytes = downsampleTex.GetRawTextureData();
+ Object.DestroyImmediate(downsampleTex);
+ downsampleRT.Release();
+ pixels = new float[bytes.Length / 4];
+ System.Buffer.BlockCopy(bytes, 0, pixels, 0, bytes.Length);
+ }
+
+ for(int j=0; j<tris; j++)
+ {
+ var v1 = verts[indices[j*3]];
+ var v2 = verts[indices[j*3 + 1]];
+ var v3 = verts[indices[j*3 + 2]];
+
+ if (corners == null)
+ {
+ v1 = tform.TransformPoint(v1);
+ v2 = tform.TransformPoint(v2);
+ v3 = tform.TransformPoint(v3);
+ }
+
+#if (OPTIMIZEDAREA || OPTIMIZEDAREA2)
+ area[j] = Vector3.Cross(v2 - v1, v3 - v1).magnitude;
+ if (area[j] > 0) totalWorldArea += area[j];
+#else
+ area[j] = Vector3.Cross(v2 - v1, v3 - v1).magnitude;
+ if (area[j] > 0) totalWorldArea += area[j];
+ if (area[j] > 0)
+ {
+ minArea = Mathf.Min(minArea, area[j]);
+ maxArea = Mathf.Max(maxArea, area[j]);
+ }
+#endif
+ }
+
+#if OPTIMIZEDAREA2
+
+ // New 2
+ var randomTriIndices = new int[SAMPLES];
+ // When an area light is with a width or height of 0, this will avoid an OOR exception (this will keep the baking running instead of crashing it...)
+ float invTotalArea = totalWorldArea == 0 ? 0 : (1.0f / (totalWorldArea * 0.5f));
+ float sumWeights = 0.0f;
+ for(int j=0; j<tris; j++)
+ {
+ area[j] *= invTotalArea * 0.5f;
+ sumWeights += area[j];
+ }
+
+ float sampleWidth = sumWeights / SAMPLES;
+ int outputSampleIx = -1;
+ float weightSoFar = -Random.value * sampleWidth;
+ for(int i=0; i<SAMPLES; i++)
+ {
+ float sampleDist = i * sampleWidth;
+ while(sampleDist >= weightSoFar && outputSampleIx + 1 < tris)
+ {
+ weightSoFar += area[++outputSampleIx];
+ }
+ randomTriIndices[i] = outputSampleIx;
+ }
+
+#elif OPTIMIZEDAREA
+
+ // New
+
+ // Collect indices to triangles
+ var triIndices = new int[tris];
+ float invTotalArea = 1.0f / (totalWorldArea * 0.5f);
+ for(int j=0; j<tris; j++)
+ {
+ area[j] *= invTotalArea * 0.5f;
+ triIndices[j] = j;
+ }
+
+ // Sort triangle indices by area (probability)
+ // Smaller -> Larger
+ System.Array.Sort(triIndices, delegate(int a, int b)
+ {
+ return area[a].CompareTo(area[b]);
+ });
+
+ // Put triangle indices into a BSP tree based on area
+ int start = 0;
+ int end = triIndices.Length - 1;
+ //var bspLayers = new List<int[]>(); // tri index array per depth level
+ var bspRoot = BuildProbabilityBSP(triIndices, area, start, end, 0, 0.0f, 1.0f);
+
+#else
+ // Legacy
+ if (maxArea / minArea > 65535)
+ {
+ minArea = maxArea / 65535;
+ }
+ float invMinArea = 1.0f / minArea;
+ for(int j=0; j<tris; j++)
+ {
+ area[j] *= invMinArea;
+ area[j] = Mathf.Round(area[j]);
+ }
+
+ int skipped = 0;
+ var uniformTriList = new List<int>();
+ for(int j=0; j<tris; j++)
+ {
+ var tarea = area[j];
+ if (tarea > 0 && tarea < 65536)
+ {
+ for(int k=0; k<tarea; k++)
+ {
+ uniformTriList.Add(j);
+ }
+ }
+ else
+ {
+ skipped++;
+ }
+ }
+
+ if (skipped > 0) Debug.LogError("Skipped " + skipped + " invalid triangles out of " + tris + " on LightMesh " + obj.name + " (area is too big?)");
+#endif
+
+
+ f.Write(obj.samples2);
+ f.Write(SAMPLES);
+ Vector3 trinormal;
+ for(int sample=0; sample<SAMPLES; sample++)
+ {
+#if OPTIMIZEDAREA2
+ int tri = randomTriIndices[sample];
+
+#elif OPTIMIZEDAREA
+ int tri = GetRandomTriFromBSP(bspRoot, Random.value);
+ //Debug.LogError(tri);
+#else
+ int rndTri = Random.Range(0, uniformTriList.Count);
+ int tri = uniformTriList.Count > 0 ? uniformTriList[rndTri] : 0;
+#endif
+
+ var rndA = Random.value;
+ var rndB = Random.value;
+ var rndC = Random.value;
+
+ var A = verts[indices[tri*3]];
+ var B = verts[indices[tri*3+1]];
+ var C = verts[indices[tri*3+2]];
+ var point = (1.0f - Mathf.Sqrt(rndA)) * A + (Mathf.Sqrt(rndA) * (1.0f - rndB)) * B + (Mathf.Sqrt(rndA) * rndB) * C;
+
+ if (corners == null) point = tform.TransformPoint(point);
+
+ trinormal = Vector3.Cross(A - B, B - C);//.normalized;
+ float len = Mathf.Sqrt(trinormal.x*trinormal.x + trinormal.y*trinormal.y + trinormal.z*trinormal.z);
+ trinormal /= len;
+
+ if (corners == null) trinormal = tform.TransformDirection(trinormal);
+
+ point += trinormal * 0.001f;
+
+ f.Write(point.x);
+ f.Write(point.y);
+ f.Write(point.z);
+ if (vplData != null) vplData.Add(point);
+
+ f.Write(trinormal.x);
+ f.Write(trinormal.y);
+ f.Write(trinormal.z);
+ if (vplData != null) vplData.Add(trinormal);
+
+ if (obj.texture != null)
+ {
+ var tA = uv[indices[tri*3]];
+ var tB = uv[indices[tri*3+1]];
+ var tC = uv[indices[tri*3+2]];
+ var tpoint = (1.0f - Mathf.Sqrt(rndA)) * tA + (Mathf.Sqrt(rndA) * (1.0f - rndB)) * tB + (Mathf.Sqrt(rndA) * rndB) * tC;
+ int tx = (int)((tpoint.x - Mathf.Floor(tpoint.x)) * (downsampleRes - 1));
+ int ty = (int)((tpoint.y - Mathf.Floor(tpoint.y)) * (downsampleRes - 1));
+ int pixelIndex = ty * downsampleRes + tx;
+ if (pixelIndex*4+2 < pixels.Length)
+ {
+ float cr = pixels[pixelIndex * 4];
+ float cg = pixels[pixelIndex * 4 + 1];
+ float cb = pixels[pixelIndex * 4 + 2];
+ f.Write(cr);
+ f.Write(cg);
+ f.Write(cb);
+ if (vplData != null) vplData.Add(new Vector3(cr, cg, cb));
+ }
+ else
+ {
+ f.Write(0.0f);
+ f.Write(0.0f);
+ f.Write(0.0f);
+ if (vplData != null) vplData.Add(Vector3.one);
+ }
+ }
+ else if (vplData != null)
+ {
+ vplData.Add(Vector3.one);
+ }
+
+ //var g = GameObject.CreatePrimitive(PrimitiveType.Sphere);
+ //g.transform.position = point;
+ //g.transform.localScale = new Vector3(0.01f, 0.01f, 0.01f);
+ }
+
+ f.Write(obj.cutoff);
+ f.Write(totalWorldArea * 0.5f);
+
+ #if SRGBCONVERT
+ f.Write(obj.color.linear.r * obj.intensity);
+ f.Write(obj.color.linear.g * obj.intensity);
+ f.Write(obj.color.linear.b * obj.intensity);
+ #else
+ f.Write(obj.color.r * obj.intensity);
+ f.Write(obj.color.g * obj.intensity);
+ f.Write(obj.color.b * obj.intensity);
+ #endif
+
+ f.Write(obj.lmid);
+
+ if (obj.texture != null)
+ {
+ f.Write(texName);
+ }
+
+ f.Close();
+
+ return totalWorldArea * 0.5f;
+ }
+
+ static public string GetTempTexName(Object tex, string prefix = "cookie_")
+ {
+ int existingTexHash;
+ if (!tex2hash.TryGetValue(tex, out existingTexHash)) existingTexHash = -1;
+ if (existingTexHash < 0)
+ {
+ int texHash = tex.GetHashCode();
+ tex2hash[tex] = texHash;
+ existingTexHash = texHash;
+ }
+ return prefix + existingTexHash + ".dds";
+ }
+
+ static public bool BuildLight(BakeryPointLight obj, int SAMPLES, bool texDirty, bool ignoreNormal = false, string outName = "pointlight.bin")
+ {
+ if (!allowOverwrite && lightSaved.ContainsKey(outName)) return false;
+ lightSaved[outName] = true;
+
+ bool isError = false;
+
+ var folder = ftBuildGraphics.scenePath;//Directory.GetParent(Application.dataPath).FullName + "/frender";
+ if (!Directory.Exists(folder)) Directory.CreateDirectory(folder);
+ var f = new BinaryWriter(File.Open(folder + "/" + outName, FileMode.Create));
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add(outName);
+
+ f.Write(SAMPLES);
+ f.Write(obj.cutoff);
+
+ float fakeDistMult = 1.0f;
+ float falloffMinRadius = obj.falloffMinRadius;
+ if (!obj.realisticFalloff)
+ {
+ fakeDistMult = (1.0f / obj.cutoff) * 5.0f;
+ falloffMinRadius = 1;
+ }
+ f.Write(fakeDistMult);
+ f.Write(falloffMinRadius);
+
+ #if SRGBCONVERT
+ f.Write(obj.color.linear.r * obj.intensity);
+ f.Write(obj.color.linear.g * obj.intensity);
+ f.Write(obj.color.linear.b * obj.intensity);
+ #else
+ f.Write(obj.color.r * obj.intensity);
+ f.Write(obj.color.g * obj.intensity);
+ f.Write(obj.color.b * obj.intensity);
+ #endif
+
+ var pos = obj.transform.position;
+
+ f.Write(pos.x);
+ f.Write(pos.y);
+ f.Write(pos.z);
+
+ f.Write(obj.shadowSpread);
+ f.Write(ignoreNormal);
+
+ bool isCookie = obj.projMode == BakeryPointLight.ftLightProjectionMode.Cookie && obj.cookie != null;
+ bool isCone = obj.projMode == BakeryPointLight.ftLightProjectionMode.Cone;
+ bool isCubemap = obj.projMode == BakeryPointLight.ftLightProjectionMode.Cubemap && obj.cubemap != null;
+ bool isIES = obj.projMode == BakeryPointLight.ftLightProjectionMode.IES && obj.iesFile != null;
+
+ int existingTexHash;
+ string texName = "";
+ UnityEngine.Object tex = null;
+ if (isCookie || isCubemap || isIES)
+ {
+ if (isCookie)
+ {
+ tex = obj.cookie;
+ }
+ else if (isCubemap)
+ {
+ tex = obj.cubemap;
+ }
+ else
+ {
+ tex = obj.iesFile;
+ }
+ if (!tex2hash.TryGetValue(tex, out existingTexHash)) existingTexHash = -1;
+ if (existingTexHash < 0)
+ {
+ int texHash = tex.GetHashCode();
+ tex2hash[tex] = texHash;
+ existingTexHash = texHash;
+ }
+ texName = "cookie_" + existingTexHash + ".dds";
+ }
+
+ if (isCone)
+ {
+ f.Write(obj.transform.forward.x);
+ f.Write(obj.transform.forward.y);
+ f.Write(obj.transform.forward.z);
+ f.Write(obj.angle);
+ f.Write(obj.innerAngle / 100.0f);
+ }
+
+ if (isCookie || isCubemap || isIES)
+ {
+ if (isIES && obj.directionMode == BakeryPointLight.Direction.PositiveZ)
+ {
+ f.Write(obj.transform.right.x);
+ f.Write(obj.transform.right.y);
+ f.Write(obj.transform.right.z);
+ f.Write(-obj.transform.forward.x);
+ f.Write(-obj.transform.forward.y);
+ f.Write(-obj.transform.forward.z);
+ f.Write(obj.transform.up.x);
+ f.Write(obj.transform.up.y);
+ f.Write(obj.transform.up.z);
+ }
+ else
+ {
+ f.Write(obj.transform.right.x);
+ f.Write(obj.transform.right.y);
+ f.Write(obj.transform.right.z);
+ f.Write(obj.transform.up.x);
+ f.Write(obj.transform.up.y);
+ f.Write(obj.transform.up.z);
+ f.Write(obj.transform.forward.x);
+ f.Write(obj.transform.forward.y);
+ f.Write(obj.transform.forward.z);
+ }
+ f.Write(texName);
+ }
+
+ if (isCookie) f.Write(obj.angle);
+
+ if (texDirty)
+ {
+ if (!SavePointLightTexture(tex, folder, texName, isCookie, isCubemap, isIES)) isError = true;
+ }
+
+ f.Close();
+
+ return isError;
+ }
+
+ static void WriteNullTerminatedStringWithNewLine(BinaryWriter f, string s)
+ {
+ for(int i=0; i<s.Length; i++) f.Write(s[i]);
+ f.Write((byte)0);
+ f.Write((byte)'\n');
+ }
+
+ static bool SavePointLightTexture(UnityEngine.Object tex, string folder, string texName, bool isCookie, bool isCubemap, bool isIES)
+ {
+ if (File.Exists(folder + "/" + texName)) return true;
+
+ if (isCookie)
+ {
+ // Save original texture to RGBA32F DDS
+ if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11)
+ {
+ ftBuildGraphics.InitShaders();
+ ftBuildGraphics.SaveCookie((tex as Texture2D).GetNativeTexturePtr(),
+ folder + "/" + texName
+ );
+ GL.IssuePluginEvent(4);
+ }
+ else
+ {
+ var a = ftBuildGraphics.InputDataFromTex(tex as Texture, ftBuildGraphics.TexInputType.FloatColor);
+ ftBuildGraphics.SaveCookieFromRAM(a,
+ folder + "/" + texName
+ );
+ }
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add(texName);
+ }
+ else if (isCubemap)
+ {
+ if (SystemInfo.graphicsDeviceType == GraphicsDeviceType.Direct3D11)
+ {
+ ftBuildGraphics.InitShaders();
+ ftBuildGraphics.SaveSky((tex as Cubemap).GetNativeTexturePtr(),
+ 1,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 0,
+ 1,
+ folder + "/" + texName,
+ true,
+ false
+ );
+ GL.IssuePluginEvent(3); // convert cubemap
+ }
+ else
+ {
+ var a = ftBuildGraphics.InputDataFromCubemap(tex as Texture, Matrix4x4.identity, true, false, ftBuildGraphics.TexInputType.FloatColor);
+ ftBuildGraphics.SaveCookieFromRAM(a,
+ folder + "/" + texName
+ );
+ }
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add(texName);
+ }
+ else if (isIES)
+ {
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ startInfo.WorkingDirectory = folder;
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/ies2tex.exe";
+ startInfo.CreateNoWindow = true;
+ //startInfo.Arguments = "../" + AssetDatabase.GetAssetPath(obj.iesFile) + " " + "cookie" + obj.UID + ".dds 1";
+ startInfo.Arguments = "\"" + Application.dataPath + "/../" + AssetDatabase.GetAssetPath(tex) + "\" " + texName + " 1";
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add(texName);
+
+#if LAUNCH_VIA_DLL
+ startInfo.Arguments = "\"" + Application.dataPath + "/../" + AssetDatabase.GetAssetPath(tex) + "\" \"" + folder + "/" + texName + "\" 1";
+ Debug.Log("Running ies2tex " + startInfo.Arguments);
+ var crt = ftRenderLightmap.ProcessCoroutine("ies2tex", startInfo.Arguments, false);
+ while(crt.MoveNext()) {}
+ int errCode = ftRenderLightmap.lastReturnValue;
+#else
+ var exeProcess = System.Diagnostics.Process.Start(startInfo);
+ exeProcess.WaitForExit();
+ int errCode = exeProcess.ExitCode;
+#endif
+ if (errCode!=0)
+ {
+ ftRenderLightmap.DebugLogError("ies2tex error: "+ ftErrorCodes.TranslateI2T(errCode));
+ Debug.LogError("ies2tex error: "+ ftErrorCodes.TranslateI2T(errCode) + " with args " + startInfo.Arguments);
+ return false;
+ }
+ }
+ return true;
+ }
+
+ static public bool BuildLights(BakeryPointLight[] allPoints, int start, int end, bool[] skipLight,
+ int sampleDiv, bool ignoreNormal = false, string outName = "batchpointlight.bin")
+ {
+ if (!allowOverwrite && lightSaved.ContainsKey(outName)) return false;
+ lightSaved[outName] = true;
+
+ //Debug.LogError("---Build:");
+
+ bool isError = false;
+
+ var folder = ftBuildGraphics.scenePath;
+ if (!Directory.Exists(folder)) Directory.CreateDirectory(folder);
+ var flights = new BinaryWriter(File.Open(folder + "/" + outName, FileMode.Create));
+ if (ftRenderLightmap.clientMode) ftClient.serverFileList.Add(outName);
+
+ int numLights = 0;
+ for(int L=start; L<=end; L++)
+ {
+ if (!skipLight[L]) numLights++;
+ }
+ flights.Write(numLights);
+
+ for(int i=start; i<=end; i++)
+ {
+ if (skipLight[i]) continue;
+
+ //Debug.LogError(obj.name);
+
+ var obj = allPoints[i];
+
+ var tform = obj.transform;
+ var projMode = obj.projMode;
+
+ if (projMode == BakeryPointLight.ftLightProjectionMode.Cookie && obj.cookie == null)
+ {
+ Debug.LogError("No cookie texture is set for light " + obj.name);
+ projMode = BakeryPointLight.ftLightProjectionMode.Omni;
+ }
+ if (projMode == BakeryPointLight.ftLightProjectionMode.Cubemap && obj.cubemap == null)
+ {
+ Debug.LogError("No cubemap set for light " + obj.name);
+ projMode = BakeryPointLight.ftLightProjectionMode.Omni;
+ }
+ if (projMode == BakeryPointLight.ftLightProjectionMode.IES && obj.iesFile == null)
+ {
+ Debug.LogError("No IES file is set for light " + obj.name);
+ projMode = BakeryPointLight.ftLightProjectionMode.Omni;
+ }
+
+ Vector3 right, up, forward;
+ if (projMode == BakeryPointLight.ftLightProjectionMode.IES && obj.directionMode == BakeryPointLight.Direction.PositiveZ)
+ {
+ right = tform.right;
+ up = -tform.forward;
+ forward = tform.up;
+ }
+ else
+ {
+ right = tform.right;
+ up = tform.up;
+ forward = tform.forward;
+ }
+
+ float projParam1 = 0.0f;
+ float projParam2 = 0.0f;
+ if (projMode == BakeryPointLight.ftLightProjectionMode.Cone)
+ {
+ projParam1 = obj.angle;
+ projParam2 = obj.innerAngle / 100.0f;
+ }
+ else if (projMode == BakeryPointLight.ftLightProjectionMode.IES)
+ {
+ projMode = BakeryPointLight.ftLightProjectionMode.Cubemap;
+ }
+ else if (projMode == BakeryPointLight.ftLightProjectionMode.Cookie)
+ {
+ projParam2 = obj.angle;
+ }
+
+ flights.Write((float)projMode);
+ flights.Write(tform.position.x);
+ flights.Write(tform.position.y);
+ flights.Write(tform.position.z);
+
+ flights.Write(obj.shadowSpread);
+ flights.Write(obj.realisticFalloff ? 1.0f : ((1.0f / obj.cutoff) * 5.0f));
+ flights.Write(obj.realisticFalloff ? (obj.falloffMinRadius * obj.falloffMinRadius) : 1.0f);
+ flights.Write(1.0f / obj.cutoff);
+
+ flights.Write(obj.color.linear.r * obj.intensity);
+ flights.Write(obj.color.linear.g * obj.intensity);
+ flights.Write(obj.color.linear.b * obj.intensity);
+ flights.Write(projParam1);
+
+ flights.Write(right.x);
+ flights.Write(right.y);
+ flights.Write(right.z);
+ flights.Write(projParam2);
+
+ flights.Write(up.x);
+ flights.Write(up.y);
+ flights.Write(up.z);
+ flights.Write(obj.indirectIntensity * ftRenderLightmap.hackIndirectBoost);
+
+ flights.Write(forward.x);
+ flights.Write(forward.y);
+ flights.Write(forward.z);
+
+ int samples = obj.samples;
+ if (samples > 0)
+ {
+ samples = System.Math.Max(samples / sampleDiv, 1);
+ }
+ flights.Write(samples);
+ }
+
+ flights.Write(ignoreNormal ? (byte)1 : (byte)0);
+
+ for(int L=start; L<=end; L++)
+ {
+ if (skipLight[L]) continue;
+
+ var obj = allPoints[L];
+
+ bool isCookie = obj.projMode == BakeryPointLight.ftLightProjectionMode.Cookie && obj.cookie != null;
+ bool isCubemap = obj.projMode == BakeryPointLight.ftLightProjectionMode.Cubemap && obj.cubemap != null;
+ bool isIES = obj.projMode == BakeryPointLight.ftLightProjectionMode.IES && obj.iesFile != null;
+
+ int existingTexHash;
+ string texName = "";
+ UnityEngine.Object tex = null;
+ if (isCookie || isCubemap || isIES)
+ {
+ if (isCookie)
+ {
+ tex = obj.cookie;
+ }
+ else if (isCubemap)
+ {
+ tex = obj.cubemap;
+ }
+ else
+ {
+ tex = obj.iesFile;
+ }
+ if (!tex2hash.TryGetValue(tex, out existingTexHash)) existingTexHash = -1;
+ if (existingTexHash < 0)
+ {
+ int texHash = tex.GetHashCode();
+ tex2hash[tex] = texHash;
+ existingTexHash = texHash;
+ }
+ texName = "cookie_" + existingTexHash + ".dds";
+ WriteNullTerminatedStringWithNewLine(flights, texName);
+ }
+
+ if (!SavePointLightTexture(tex, folder, texName, isCookie, isCubemap, isIES)) isError = true;
+ }
+
+ flights.Close();
+
+ return isError;
+ }
+}
+
+#endif
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildLights.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildLights.cs.meta
new file mode 100644
index 00000000..5eae7d64
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftBuildLights.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6d2a81f0f9d2d0c49bc8e08c6e18e72c
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClearMenu.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClearMenu.cs
new file mode 100644
index 00000000..5f55b921
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClearMenu.cs
@@ -0,0 +1,153 @@
+using UnityEngine;
+using UnityEditor;
+using UnityEngine.SceneManagement;
+using System.Collections;
+using System.Collections.Generic;
+
+public class ftClearMenu : EditorWindow
+{
+ public enum SceneClearingMode
+ {
+ nothing = 0,
+ lightmapReferences = 1,
+ lightmapReferencesAndBakeSettings = 2
+ }
+
+ static public string[] options = new string[] {"Nothing", "Baked data references", "All (data and bake settings)"};
+
+ public SceneClearingMode sceneClearingMode = SceneClearingMode.lightmapReferences;
+ public bool clearLightmapFiles = false;
+
+ [MenuItem("Bakery/Utilities/Clear baked data", false, 44)]
+ private static void ClearBakedDataShow()
+ {
+ var instance = (ftClearMenu)GetWindow(typeof(ftClearMenu));
+ instance.titleContent.text = "Clear menu";
+ instance.minSize = new Vector2(320, 90);
+ instance.maxSize = new Vector2(instance.minSize.x, instance.minSize.y + 1);
+ instance.Show();
+ }
+
+ void OnGUI()
+ {
+ sceneClearingMode = (SceneClearingMode)EditorGUILayout.Popup("Clear from scenes", (int)sceneClearingMode, options);
+ clearLightmapFiles = EditorGUILayout.Toggle("Delete lightmap files", clearLightmapFiles);
+
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+
+ if (GUILayout.Button("Clear"))
+ {
+ string txt = "";
+ if (sceneClearingMode == SceneClearingMode.nothing)
+ {
+ if (clearLightmapFiles)
+ {
+ txt += "Delete currently used lightmap files";
+ }
+ else
+ {
+ return;
+ }
+ }
+ else
+ {
+ if (sceneClearingMode == SceneClearingMode.lightmapReferences)
+ {
+ txt = "Clear all Bakery data for currently loaded scenes";
+ }
+ else
+ {
+ txt = "Clear all Bakery data and settings for currently loaded scenes";
+ }
+ if (clearLightmapFiles) txt += " and delete currently used lightmap files";
+ }
+
+ if (EditorUtility.DisplayDialog("Bakery", txt + "?", "Yes", "No"))
+ {
+ ClearBakedData(sceneClearingMode, clearLightmapFiles);
+ }
+ }
+ }
+
+ static void RemoveFiles(Texture2D map)
+ {
+ var path = AssetDatabase.GetAssetPath(map);
+ AssetDatabase.DeleteAsset(path);
+ ftRenderLightmap.DebugLogInfo("Deleted " + path);
+ }
+
+ static void RemoveFiles(List<Texture2D> maps)
+ {
+ for(int i=0; i<maps.Count; i++)
+ {
+ RemoveFiles(maps[i]);
+ }
+ }
+
+ public static void ClearBakedData(SceneClearingMode sceneClearMode, bool removeLightmapFiles)
+ {
+ if (removeLightmapFiles)
+ {
+ var sceneCount = SceneManager.sceneCount;
+ for(int i=0; i<sceneCount; i++)
+ {
+ var scene = SceneManager.GetSceneAt(i);
+ if (!scene.isLoaded) continue;
+ var go = ftLightmaps.FindInScene("!ftraceLightmaps", scene);
+ if (go == null) continue;
+ var storage = go.GetComponent<ftLightmapsStorage>();
+ if (storage == null) continue;
+
+ RemoveFiles(storage.maps);
+ RemoveFiles(storage.masks);
+ RemoveFiles(storage.dirMaps);
+ RemoveFiles(storage.rnmMaps0);
+ RemoveFiles(storage.rnmMaps1);
+ RemoveFiles(storage.rnmMaps2);
+ }
+ }
+
+ if (sceneClearMode == SceneClearingMode.lightmapReferences)
+ {
+ var newStorages = new List<GameObject>();
+ var sceneCount = SceneManager.sceneCount;
+ for(int i=0; i<sceneCount; i++)
+ {
+ var scene = SceneManager.GetSceneAt(i);
+ if (!scene.isLoaded) continue;
+ var go = ftLightmaps.FindInScene("!ftraceLightmaps", scene);
+ if (go == null) continue;
+ var storage = go.GetComponent<ftLightmapsStorage>();
+ if (storage != null)
+ {
+ var newGO = new GameObject();
+ var newStorage = newGO.AddComponent<ftLightmapsStorage>();
+ ftLightmapsStorage.CopySettings(storage, newStorage);
+ newStorages.Add(newGO);
+ }
+ Undo.DestroyObjectImmediate(go);
+ }
+ LightmapSettings.lightmaps = new LightmapData[0];
+ for(int i=0; i<newStorages.Count; i++)
+ {
+ newStorages[i].name = "!ftraceLightmaps";
+ }
+ }
+ else if (sceneClearMode == SceneClearingMode.lightmapReferencesAndBakeSettings)
+ {
+ var sceneCount = SceneManager.sceneCount;
+ for(int i=0; i<sceneCount; i++)
+ {
+ var scene = SceneManager.GetSceneAt(i);
+ if (!scene.isLoaded) continue;
+ var go = ftLightmaps.FindInScene("!ftraceLightmaps", scene);
+ if (go == null) continue;
+ Undo.DestroyObjectImmediate(go);
+ }
+ LightmapSettings.lightmaps = new LightmapData[0];
+ }
+ }
+}
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClearMenu.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClearMenu.cs.meta
new file mode 100644
index 00000000..afc5db72
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClearMenu.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 6976907e066f1824581718bc451446bc
+timeCreated: 1534329905
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClient.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClient.cs
new file mode 100644
index 00000000..7c6baca1
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClient.cs
@@ -0,0 +1,505 @@
+using UnityEngine;
+using UnityEditor.SceneManagement;
+using System.Text;
+using System.IO;
+using System.Collections;
+using System.Collections.Generic;
+using System.Net;
+using System.Net.Sockets;
+
+public class ftClient
+{
+ public const byte SERVERTASK_COPY = 0;
+ public const byte SERVERTASK_FTRACE = 1;
+ public const byte SERVERTASK_FTRACERTX = 2;
+ public const byte SERVERTASK_COMBINEMASKS = 3;
+
+ public const byte SERVERTASK_DENOISE5 = 4;
+ public const byte SERVERTASK_DENOISE6 = 5;
+ public const byte SERVERTASK_DENOISE7 = 6;
+ public const byte SERVERTASK_DENOISEOIDN = 7;
+
+ public const byte SERVERTASK_HF2HDR = 8;
+ public const byte SERVERTASK_RGBA2TGA = 9;
+ public const byte SERVERTASK_SEAMFIX = 10;
+
+ public const byte SERVERTASK_LMREBAKE = 11;
+ public const byte SERVERTASK_LMREBAKESIMPLE = 12;
+ public const byte SERVERTASK_LODGEN = 13;
+ public const byte SERVERTASK_LODGENINIT = 14;
+ public const byte SERVERTASK_GIPARAMS = 15;
+ public const byte SERVERTASK_RECEIVEFILE = 16;
+ public const byte SERVERTASK_REPORTSTATUS = 17;
+ public const byte SERVERTASK_SETSCENENAME = 18;
+ public const byte SERVERTASK_GETDATA = 19;
+ public const byte SERVERTASK_GETDATAREADY = 20;
+
+ public const byte SERVERERROR_IDLE = 0;
+ public const byte SERVERERROR_COPY = 1;
+ public const byte SERVERERROR_EXEC = 2;
+ public const byte SERVERERROR_APPERR = 3;
+ public const byte SERVERERROR_GIPARAMS = 4;
+ public const byte SERVERERROR_NOTIMPLEMENTED = 5;
+ public const byte SERVERERROR_UNKNOWNTASK = 6;
+ public const byte SERVERERROR_BUSY = 7;
+ public const byte SERVERERROR_UNKNOWN = 8;
+ public const byte SERVERERROR_SCENENAMETOOLONG = 9;
+ public const byte SERVERERROR_FILENOTFOUND = 10;
+ public const byte SERVERERROR_FILEHASZEROSIZE = 11;
+ public const byte SERVERERROR_NOMEM = 12;
+ public const byte SERVERERROR_INCORRECT = 13;
+ public const byte SERVERERROR_INCORRECTFILENAME = 14;
+ public const byte SERVERERROR_WRITEFAILED = 15;
+ public const byte SERVERERROR_INCORRECTARGS = 16;
+ public const byte SERVERERROR_FILESIZE = 17;
+ public const byte SERVERERROR_STATUSLIMIT = 18;
+
+ public static string serverAddress = "127.0.0.1";
+ const int serverPort = 27777;
+ public static bool connectedToServer = false;
+ public static string lastServerMsg = "Server: no data";
+ public static string lastServerScene = ""; // last baked scene
+ public static int lastServerErrorCode = 0;
+ public static bool lastServerMsgIsError = false;
+ public static bool serverGetDataMode = false; // if we're in download mode or status polling mode
+ public static bool serverMustRefreshData = false; // if ready to apply downloaded data
+
+ static string lastServerFile = ""; // last file loaded via GETDATA on the server
+ static int lastServerFileHash = 0;
+ static int lastServerFileSize = 0;
+ static double timeToUpdateServerStatus = 0;
+ static double serverStatusInterval = 1000.0;
+ static double serverConnectionTimeout = 2000.0;
+
+ static Socket statusSocket;
+ //static System.Threading.Thread statusThread;
+ static IEnumerator statusProc;
+
+ public static Dictionary<string, byte> app2serverTask = new Dictionary<string, byte>
+ {
+ {"ftrace", SERVERTASK_FTRACE},
+ {"ftraceRTX", SERVERTASK_FTRACERTX},
+ {"combineMasks", SERVERTASK_COMBINEMASKS},
+
+ {"denoiserLegacy", SERVERTASK_DENOISE5},
+ {"denoiser", SERVERTASK_DENOISE6},
+ {"denoiser72", SERVERTASK_DENOISE7},
+ {"denoiserOIDN", SERVERTASK_DENOISEOIDN},
+
+ {"halffloat2hdr", SERVERTASK_HF2HDR},
+ {"rgba2tga", SERVERTASK_RGBA2TGA},
+ {"seamfixer", SERVERTASK_SEAMFIX},
+ {"lmrebake (simple)", SERVERTASK_LMREBAKESIMPLE},
+ {"lmrebake", SERVERTASK_LMREBAKE}
+
+ };
+ public static List<string> serverFileList, serverGetFileList;
+ public static int serverGetFileIterator = 0;
+
+
+ public static IEnumerator UpdateConnection()//WaitForMessages()
+ {
+ var ipAdd = System.Net.IPAddress.Parse(serverAddress);
+ var remoteEP = new IPEndPoint(ipAdd, 27777);
+ var request = new byte[1];
+ request[0] = SERVERTASK_REPORTSTATUS;
+ var requestGet = new byte[5];
+ requestGet[0] = SERVERTASK_GETDATAREADY;
+ int numTasks = 1;
+ var taskGet = new byte[1];
+ var nullByte = new byte[1];
+ taskGet[0] = SERVERTASK_GETDATA;
+ nullByte[0] = 0;
+
+ lastServerMsg = "Connecting...";
+ lastServerErrorCode = 0;
+ lastServerMsgIsError = false;
+ var status = new byte[256];
+ byte[] fileBuffer = null;
+ bool waitingForGet = false;
+
+ while (connectedToServer)
+ {
+ if (statusSocket != null)
+ {
+ statusSocket.Close();
+ statusSocket = null;
+ }
+
+ waitingForGet = false;
+
+
+ // Attempt connecting to server
+ bool connectionInProgress = true;
+ bool connectionError = false;
+ double timeout = ftRenderLightmap.GetTimeMs() + serverConnectionTimeout;
+ while(connectionInProgress)
+ {
+ connectionInProgress = false;
+ try
+ {
+ if (statusSocket == null)
+ {
+ statusSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+ statusSocket.Blocking = false;
+ statusSocket.Connect(remoteEP);
+ }
+ else
+ {
+ if (statusSocket.Poll(0, SelectMode.SelectError))
+ {
+ connectionError = true;
+ break;
+ }
+ if (!statusSocket.Poll(0, SelectMode.SelectWrite) && ftRenderLightmap.GetTimeMs() < timeout)
+ {
+ connectionInProgress = true;
+ }
+ }
+ }
+ catch(SocketException s)
+ {
+ if (s.ErrorCode == 10035) // WSAEWOULDBLOCK
+ {
+ connectionInProgress = true;
+ }
+ else
+ {
+ connectionError = true;
+ break;
+ }
+ }
+ if (connectionInProgress) yield return null;
+ }
+ statusSocket.Blocking = true;
+
+ // Send request(s)
+ try
+ {
+ if (connectionError) throw new SocketException();
+ if (serverGetDataMode && serverGetFileList == null) serverGetDataMode = false;
+ if (serverGetDataMode && serverGetFileList.Count <= serverGetFileIterator)
+ {
+ serverMustRefreshData = true;
+ serverGetDataMode = false;
+ }
+ if (serverGetDataMode)
+ {
+ var fname = serverGetFileList[serverGetFileIterator];
+ if (lastServerFile != fname)
+ {
+ int len = fname.Length;
+ statusSocket.Send(System.BitConverter.GetBytes(numTasks));
+ statusSocket.Send(taskGet);
+ statusSocket.Send(System.BitConverter.GetBytes(len));
+ statusSocket.Send(Encoding.ASCII.GetBytes(fname));
+ statusSocket.Send(nullByte);
+ statusSocket.Close();
+
+ statusSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+ statusSocket.Connect(remoteEP);
+ statusSocket.Send(request);
+#if BAKERY_NETDEBUG
+ Debug.Log("Request sent (load file " + fname + ")");
+#endif
+ }
+ else
+ {
+ fileBuffer = new byte[lastServerFileSize];
+ System.Buffer.BlockCopy(System.BitConverter.GetBytes(lastServerFileHash), 0, requestGet, 1, 4);
+ statusSocket.Send(requestGet);
+#if BAKERY_NETDEBUG
+ Debug.Log("Request sent (get file)");
+#endif
+ waitingForGet = true;
+ }
+ }
+ else
+ {
+ statusSocket.Send(request);
+#if BAKERY_NETDEBUG
+ Debug.Log("Request sent");
+#endif
+ }
+ }
+ catch(SocketException s)
+ {
+ lastServerMsg = "Failed to get data from server (" + s.ErrorCode + ")";
+ lastServerMsgIsError = true;
+ lastServerErrorCode = 0;
+
+ Debug.LogError(lastServerMsg);
+ statusSocket.Close();
+ statusSocket = null;
+ statusProc = null;
+ //statusThread = null;
+ connectedToServer = false;
+ //return;
+ yield break;
+ }
+
+#if BAKERY_NETDEBUG
+ Debug.Log("Waiting for server to respond");
+#endif
+
+ int serverErrCode = 0;
+ int appCode = 0;
+ int appErrCode = 0;
+ int textLen = 0;
+ int fileReady = 0;
+ int fileHash = 0;
+ int fileSize = 0;
+ string text = "";
+ string fileNameReady = "";
+
+ int byteCount = 0;
+ bool interrupted = false;
+ double maxTimeToReceive = 10.0;
+ double timeToInterrupt = ftRenderLightmap.GetTimeMs() + maxTimeToReceive;
+
+ while(!interrupted)
+ {
+ if (ftRenderLightmap.GetTimeMs() > timeToInterrupt)
+ {
+ timeToInterrupt = ftRenderLightmap.GetTimeMs() + maxTimeToReceive;
+ yield return null;
+ }
+ //while(statusSocket.Available == 0) yield return null;
+ //while(!statusSocket.Poll(0, SelectMode.SelectRead)) yield return null;
+ try
+ {
+ //while(true)
+ //{
+ if (waitingForGet)
+ {
+ int bytesReceived = statusSocket.Receive(fileBuffer, byteCount, fileBuffer.Length - byteCount, SocketFlags.None);
+ byteCount += bytesReceived;
+ //Debug.Log("Received " + bytesReceived);
+ if (bytesReceived == 0) interrupted = true;//break;
+ }
+ else
+ {
+ byteCount = statusSocket.Receive(status);
+ //break;
+ interrupted = true;
+ }
+ //}
+ }
+ catch
+ {
+ if (waitingForGet)
+ {
+ Debug.LogError("Error getting file from server - retrying");
+ lastServerFile = "";
+ }
+ else
+ {
+ lastServerMsg = "Server disconnected";
+ lastServerMsgIsError = true;
+ lastServerErrorCode = 0;
+
+ Debug.LogError(lastServerMsg);
+ statusSocket.Close();
+ statusSocket = null;
+ //statusThread = null;
+ statusProc = null;
+ connectedToServer = false;
+ yield break;
+ }
+ }
+ }
+
+ if (byteCount > 0)
+ {
+ if (waitingForGet)
+ {
+ Debug.Log("Data received: " + byteCount);
+ var ext = lastServerFile.Substring(lastServerFile.Length-3).ToLower();
+ string outPath;
+ if (ext == "lz4" || ext == "dds")
+ {
+ outPath = ftRenderLightmap.scenePath + "/" + lastServerFile;
+ }
+ else
+ {
+ outPath = "Assets/" + ftRenderLightmap.outputPath + "/" + lastServerFile;
+ }
+ BinaryWriter bw = null;
+ try
+ {
+ bw = new BinaryWriter(File.Open(outPath, FileMode.Create));
+ }
+ catch
+ {
+ Debug.LogError("Failed writing " + outPath);
+ }
+ if (bw != null)
+ {
+ bw.Write(fileBuffer);
+ bw.Close();
+ Debug.Log("File saved: " + outPath);
+ }
+ yield return null;
+ serverGetFileIterator++;
+ }
+ else
+ {
+ if (byteCount == 150)
+ {
+ serverErrCode = System.BitConverter.ToInt32(status, 0);
+ appCode = System.BitConverter.ToInt32(status, 4);
+ appErrCode = System.BitConverter.ToInt32(status, 8);
+ textLen = status[12];
+ fileReady = status[13];
+ fileHash = System.BitConverter.ToInt32(status, 14);
+ fileSize = System.BitConverter.ToInt32(status, 18);
+ if (textLen > 0)
+ {
+ text = Encoding.ASCII.GetString(status, 22, textLen);
+ }
+ if (fileReady > 0)
+ {
+ fileNameReady = Encoding.ASCII.GetString(status, 22 + textLen + 1, fileReady);
+ }
+ }
+ else
+ {
+ serverErrCode = SERVERERROR_UNKNOWN;
+ Debug.LogError("Unrecognized response size: " + byteCount);
+ }
+ //if (serverErrCode != 0)
+ {
+ var serverMsg = "Server: " + ftErrorCodes.TranslateServer(serverErrCode, appCode, appErrCode);
+ bool isError = serverErrCode != SERVERERROR_IDLE && serverErrCode != SERVERERROR_BUSY;
+ if (isError)
+ {
+ Debug.LogError(serverMsg);
+ }
+ else
+ {
+#if BAKERY_NETDEBUG
+ Debug.Log(serverMsg);
+#else
+ if (lastServerMsg != serverMsg) Debug.Log(serverMsg);
+#endif
+ }
+ lastServerMsg = serverMsg;
+ lastServerMsgIsError = isError;
+ lastServerErrorCode = serverErrCode;
+ lastServerScene = text;
+ lastServerFile = fileNameReady;
+ lastServerFileHash = fileHash;
+ lastServerFileSize = fileSize;
+ }
+ }
+ }
+
+
+ if (!serverGetDataMode)
+ {
+ //var sleepTime = timeToUpdateServerStatus - curTime;
+ //if (sleepTime > 0) System.Threading.Thread.Sleep((int)sleepTime);
+ while(true)
+ {
+ var curTime = ftRenderLightmap.GetTimeMs();
+ if (curTime >= timeToUpdateServerStatus) break;
+ yield return null;
+ }
+
+ timeToUpdateServerStatus = ftRenderLightmap.GetTimeMs() + serverStatusInterval;
+ }
+ }
+
+ statusSocket.Close();
+ statusSocket = null;
+ //statusThread = null;
+ statusProc = null;
+ }
+
+ public static void Disconnect()
+ {
+ if (statusSocket != null)
+ {
+ statusSocket.Close();
+ statusSocket = null;
+ }
+
+ statusProc = null;
+ /*if (statusThread != null)
+ {
+ statusThread.Abort();
+ statusThread = null;
+ }*/
+
+ connectedToServer = false;
+ serverGetDataMode = false;
+ }
+
+ public static void ConnectToServer()
+ {
+ try
+ {
+ Disconnect();
+ connectedToServer = true;
+
+ timeToUpdateServerStatus = 0;
+ //statusThread = new System.Threading.Thread(WaitForMessages);
+ //statusThread.Start();
+ statusProc = UpdateConnection();
+ statusProc.MoveNext();
+ }
+ catch
+ {
+ Debug.LogError("Failed getting data from server");
+ throw;
+ }
+ }
+
+ public static bool SendRenderSequence(byte[] renderSequence)
+ {
+ Socket soc = null;
+ var ipAdd = System.Net.IPAddress.Parse(serverAddress);
+ var remoteEP = new IPEndPoint(ipAdd, serverPort);
+
+ for(int i=0; i<serverFileList.Count; i++)
+ {
+ var fsoc = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+ fsoc.Connect(remoteEP);
+ if (!fsoc.Poll(0, SelectMode.SelectWrite)) return false;
+
+ var sceneFile = File.ReadAllBytes(ftRenderLightmap.scenePath + "/" + serverFileList[i]);
+ int headerSize = 5 + serverFileList[i].Length + 1;
+ var buff = new byte[sceneFile.Length + headerSize];
+
+ int numTasks = 1;
+ System.Buffer.BlockCopy(System.BitConverter.GetBytes(numTasks), 0, buff, 0, 4);
+ buff[4] = SERVERTASK_RECEIVEFILE;
+ buff[5] = (byte)serverFileList[i].Length;
+ for(int j=0; j<serverFileList[i].Length; j++) buff[6+j] = (byte)serverFileList[i][j];
+ System.Buffer.BlockCopy(sceneFile, 0, buff, headerSize, sceneFile.Length);
+
+ fsoc.Send(buff);
+ fsoc.Close();
+ }
+
+ soc = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
+ soc.Connect(remoteEP);
+ if (!soc.Poll(0, SelectMode.SelectWrite)) return false;
+ soc.Send(renderSequence);
+ soc.Close();
+ return true;
+ }
+
+ public static void ServerGetData(List<string> fileList)
+ {
+ serverGetFileList = fileList;
+ serverGetFileIterator = 0;
+ serverGetDataMode = true;
+ }
+
+ public static void Update()
+ {
+ if (statusProc != null) statusProc.MoveNext();
+ }
+}
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClient.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClient.cs.meta
new file mode 100644
index 00000000..4c8d6c30
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftClient.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 500a77e47a646b24581261ad5e43fe3d
+timeCreated: 1552557323
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftCreateMenu.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftCreateMenu.cs
new file mode 100644
index 00000000..36378f95
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftCreateMenu.cs
@@ -0,0 +1,96 @@
+using UnityEngine;
+using UnityEditor;
+
+public class ftCreateMenu
+{
+ [MenuItem("Bakery/Create/Directional Light", false, 20)]
+ private static void CreateDirectionalLight()
+ {
+ var go = new GameObject();
+ Undo.RegisterCreatedObjectUndo(go, "Create Bakery light");
+ go.AddComponent<BakeryDirectLight>();
+ go.name = "DirectLight";
+ var ecam = SceneView.lastActiveSceneView.camera.transform;
+ go.transform.position = ecam.position + ecam.forward;
+ go.transform.eulerAngles = new Vector3(50, -30, 0);
+ var arr = new GameObject[1];
+ arr[0] = go;
+ Selection.objects = arr;
+ }
+
+ [MenuItem("Bakery/Create/Skylight", false, 20)]
+ private static void CreateSkyLight()
+ {
+ var go = new GameObject();
+ Undo.RegisterCreatedObjectUndo(go, "Create Bakery light");
+ go.AddComponent<BakerySkyLight>();
+ go.name = "Skylight";
+ var ecam = SceneView.lastActiveSceneView.camera.transform;
+ go.transform.position = ecam.position + ecam.forward;
+ var arr = new GameObject[1];
+ arr[0] = go;
+ Selection.objects = arr;
+ }
+
+ [MenuItem("Bakery/Create/Point Light", false, 20)]
+ private static void CreatePointLight()
+ {
+ var go = new GameObject();
+ Undo.RegisterCreatedObjectUndo(go, "Create Bakery light");
+ go.AddComponent<BakeryPointLight>();
+ go.name = "PointLight";
+ var ecam = SceneView.lastActiveSceneView.camera.transform;
+ go.transform.position = ecam.position + ecam.forward;
+ var arr = new GameObject[1];
+ arr[0] = go;
+ Selection.objects = arr;
+ }
+
+ [MenuItem("Bakery/Create/Area Light (Example)", false, 20)]
+ private static void CreateAreaLight()
+ {
+ var go = GameObject.CreatePrimitive(PrimitiveType.Quad);
+ Undo.RegisterCreatedObjectUndo(go, "Create Bakery light");
+ go.AddComponent<BakeryLightMesh>();
+ go.name = "AreaLight";
+ var ecam = SceneView.lastActiveSceneView.camera.transform;
+ go.transform.position = ecam.position + ecam.forward;
+ var bakeryRuntimePath = ftLightmaps.GetRuntimePath();
+ var mat = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftDefaultAreaLightMat.mat", typeof(Material)) as Material;
+ go.GetComponent<MeshRenderer>().material = mat;
+ var arr = new GameObject[1];
+ arr[0] = go;
+ Selection.objects = arr;
+ }
+
+ [MenuItem("Bakery/Create/Spotlight", false, 20)]
+ private static void CreateSpotLight()
+ {
+ var go = new GameObject();
+ Undo.RegisterCreatedObjectUndo(go, "Create Bakery light");
+ var light = go.AddComponent<BakeryPointLight>();
+ light.projMode = BakeryPointLight.ftLightProjectionMode.Cookie;
+ var bakeryRuntimePath = ftLightmaps.GetRuntimePath();
+ light.cookie = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftUnitySpotTexture.bmp", typeof(Texture2D)) as Texture2D;
+ go.name = "SpotLight";
+ var ecam = SceneView.lastActiveSceneView.camera.transform;
+ go.transform.position = ecam.position + ecam.forward;
+ var arr = new GameObject[1];
+ arr[0] = go;
+ Selection.objects = arr;
+ }
+
+ [MenuItem("Bakery/Create/Volume", false, 20)]
+ private static void CreateVolume()
+ {
+ var go = new GameObject();
+ Undo.RegisterCreatedObjectUndo(go, "Create Bakery Volume");
+ go.AddComponent<BakeryVolume>();
+ go.name = "BakeryVolume";
+ var ecam = SceneView.lastActiveSceneView.camera.transform;
+ go.transform.position = ecam.position + ecam.forward;
+ var arr = new GameObject[1];
+ arr[0] = go;
+ Selection.objects = arr;
+ }
+}
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftCreateMenu.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftCreateMenu.cs.meta
new file mode 100644
index 00000000..d7edddf2
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftCreateMenu.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 1b37b47c815251d4290ee5b16dec9c70
+timeCreated: 1527799006
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDDS.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDDS.cs
new file mode 100644
index 00000000..6bdfbc10
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDDS.cs
@@ -0,0 +1,56 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using UnityEditor;
+using UnityEngine;
+
+public class ftDDS
+{
+ public static byte[] ddsHeaderFloat4 = new byte[]
+ {
+ 0x44, 0x44, 0x53, 0x20, 0x7C, 0x00, 0x00, 0x00, 0x07, 0x10, 0x08, 0x00, 0xF0, 0x00, 0x00, 0x00,
+ 0x40, 0x01, 0x00, 0x00, 0x00, 0xC0, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
+ 0x04, 0x00, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ };
+
+ public static byte[] ddsHeaderHalf4 = new byte[]
+ {
+ 0x44, 0x44, 0x53, 0x20, 0x7C, 0x00, 0x00, 0x00, 0x07, 0x10, 0x08, 0x00, 0xCD, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x68, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
+ 0x04, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ };
+
+ public static byte[] ddsHeaderRGBA8 = new byte[]
+ {
+ 0x44, 0x44, 0x53, 0x20, 0x7C, 0x00, 0x00, 0x00, 0x07, 0x10, 0x08, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
+ 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00,
+ 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x10, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ };
+
+ public static byte[] ddsHeaderR32F = new byte[]
+ {
+ 0x44, 0x44, 0x53, 0x20, 0x7C, 0x00, 0x00, 0x00, 0x07, 0x10, 0x08, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x13, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
+ 0x04, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ };
+}
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDDS.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDDS.cs.meta
new file mode 100644
index 00000000..c6ae549d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDDS.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 7651ced8d6837974980b54a8c065ca41
+timeCreated: 1526839491
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDefine.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDefine.cs
new file mode 100644
index 00000000..f29d6776
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDefine.cs
@@ -0,0 +1,41 @@
+#if UNITY_EDITOR
+
+using UnityEngine;
+using UnityEditor;
+using System;
+using UnityEditor.Build;
+
+[InitializeOnLoad]
+#if UNITY_2017_4_OR_NEWER
+public class ftDefine : IActiveBuildTargetChanged
+#else
+public class ftDefine
+#endif
+{
+ static void AddDefine()
+ {
+ var platform = EditorUserBuildSettings.selectedBuildTargetGroup;
+ var defines = PlayerSettings.GetScriptingDefineSymbolsForGroup(platform);
+ if (!defines.Contains("BAKERY_INCLUDED"))
+ {
+ if (defines.Length > 0) defines += ";";
+ defines += "BAKERY_INCLUDED";
+ PlayerSettings.SetScriptingDefineSymbolsForGroup(platform, defines);
+ }
+ }
+
+ static ftDefine()
+ {
+ AddDefine();
+ }
+
+#if UNITY_2017_4_OR_NEWER
+ public int callbackOrder { get { return 0; } }
+ public void OnActiveBuildTargetChanged(BuildTarget previousTarget, BuildTarget newTarget)
+ {
+ AddDefine();
+ }
+#endif
+}
+
+#endif
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDefine.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDefine.cs.meta
new file mode 100644
index 00000000..5fe128a4
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDefine.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 993d44f6e3c171944a748e43ca064632
+timeCreated: 1584625781
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDetectSettings.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDetectSettings.cs
new file mode 100644
index 00000000..e1cedfe8
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDetectSettings.cs
@@ -0,0 +1,261 @@
+using UnityEngine;
+using UnityEditor;
+using System.IO;
+using UnityEngine.SceneManagement;
+using System.Collections;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+
+public class ftDetectSettings
+{
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern System.IntPtr RunLocalProcess([MarshalAs(UnmanagedType.LPWStr)]string commandline, bool setWorkDir);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool IsProcessFinished(System.IntPtr proc);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int GetProcessReturnValueAndClose(System.IntPtr proc);
+
+ [DllImport ("simpleProgressBar", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int simpleProgressBarShow(string header, string msg, float percent, float step, bool onTop);
+
+ [DllImport ("simpleProgressBar", CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool simpleProgressBarCancelled();
+
+ [DllImport ("simpleProgressBar", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void simpleProgressBarEnd();
+
+ static IEnumerator progressFunc;
+ static int lastReturnValue = -1;
+ static bool userCanceled = false;
+
+ static bool runsRTX, runsNonRTX, runsOptix5, runsOptix6, runsOptix7, runsOIDN;
+
+ const string progressHeader = "Detecting compatible configuration";
+
+ static void ShowProgress(string msg, float percent)
+ {
+ simpleProgressBarShow(progressHeader, msg, percent, 0, true);
+ }
+
+ static void ValidateFileAttribs(string file)
+ {
+ var attribs = File.GetAttributes(file);
+ if ((attribs & FileAttributes.ReadOnly) != 0)
+ {
+ File.SetAttributes(file, attribs & ~FileAttributes.ReadOnly);
+ }
+ }
+
+ [MenuItem("Bakery/Utilities/Detect optimal settings", false, 54)]
+ public static void DetectCompatSettings()
+ {
+ var bakeryPath = ftLightmaps.GetEditorPath();
+ ValidateFileAttribs(bakeryPath+"/hwtestdata/image.lz4");
+
+ progressFunc = DetectCoroutine();
+ EditorApplication.update += DetectUpdate;
+ }
+
+ static IEnumerator DetectCoroutine()
+ {
+ float stages = 6;
+ float step = 1.0f / stages;
+ float progress = 0;
+ IEnumerator crt;
+
+ ShowProgress("Testing: RTX ray-tracing", progress);
+ crt = ProcessCoroutine("ftraceRTX.exe /sun hwtestdata light 4 0 0 direct0.bin");
+ while (crt.MoveNext()) yield return null;
+ if (userCanceled) yield break;
+ runsRTX = lastReturnValue==0;
+ progress += step;
+
+ ShowProgress("Testing: non-RTX ray-tracing", progress);
+ crt = ProcessCoroutine("ftrace.exe /sun hwtestdata light 4 0 0 direct0.bin");
+ while (crt.MoveNext()) yield return null;
+ if (userCanceled) yield break;
+ runsNonRTX = lastReturnValue==0;
+ progress += step;
+
+ ShowProgress("Testing: OptiX 5.1 denoiser", progress);
+ crt = ProcessCoroutine("denoiserLegacy c hwtestdata/image.lz4 hwtestdata/image.lz4 16 0");
+ while (crt.MoveNext()) yield return null;
+ if (userCanceled) yield break;
+ runsOptix5 = lastReturnValue==0;
+ progress += step;
+
+ ShowProgress("Testing: OptiX 6.0 denoiser", progress);
+ crt = ProcessCoroutine("denoiser c hwtestdata/image.lz4 hwtestdata/image.lz4 16 0");
+ while (crt.MoveNext()) yield return null;
+ if (userCanceled) yield break;
+ runsOptix6 = lastReturnValue==0;
+ progress += step;
+
+ ShowProgress("Testing: OptiX 7.2 denoiser", progress);
+ crt = ProcessCoroutine("denoiser72 c hwtestdata/image.lz4 hwtestdata/image.lz4 16 0");
+ while (crt.MoveNext()) yield return null;
+ if (userCanceled) yield break;
+ runsOptix7 = lastReturnValue==0;
+ progress += step;
+
+ ShowProgress("Testing: OpenImageDenoise", progress);
+ crt = ProcessCoroutine("denoiserOIDN c hwtestdata/image.lz4 hwtestdata/image.lz4 16 0");
+ while (crt.MoveNext()) yield return null;
+ if (userCanceled) yield break;
+ runsOIDN = lastReturnValue==0;
+ progress += step;
+
+ simpleProgressBarEnd();
+
+ if (!runsRTX && !runsNonRTX)
+ {
+ EditorUtility.DisplayDialog("Error", "Both RTX and non-RTX lightmapper failed to run. Make sure you are using NVIDIA GPU and the drivers are up to date.", "OK");
+ yield break;
+ }
+
+ string str = "Testing results:\n\n";
+ str += "RTX ray-tracing: " + (runsRTX ? "yes" : "no") + "\n";
+ str += "Non-RTX ray-tracing: " + (runsNonRTX ? "yes" : "no") + "\n";
+ str += "OptiX 5.1 denoiser: " + (runsOptix5 ? "yes" : "no") + "\n";
+ str += "OptiX 6.0 denoiser: " + (runsOptix6 ? "yes" : "no") + "\n";
+ str += "OptiX 7.2 denoiser: " + (runsOptix7 ? "yes" : "no") + "\n";
+ str += "OpenImageDenoise: " + (runsOIDN ? "yes" : "no") + "\n";
+
+ str += "\n";
+ str += "Recommended RTX mode: ";
+ if (runsRTX && runsNonRTX)
+ {
+ str += "ON if you are using a GPU with RT acceleration (e.g. 2xxx or 3xxx GeForce series), OFF otherwise.\n";
+ }
+ else if (runsRTX)
+ {
+ str += "ON\n";
+ }
+ else if (runsNonRTX)
+ {
+ str += "OFF\n";
+ }
+
+ str += "\n";
+ str += "Recommended denoiser: ";
+ if (runsOptix5)
+ {
+ // OptiX 5.1 has stable quality since release, but not supported on 30XX
+ str += "OptiX 5.1\n";
+ }
+ else if (runsOIDN)
+ {
+ // OIDN is stable and pretty good, but might be slower
+ str += "OpenImageDenoise\n";
+ }
+ // OptiX 6 and 7.2 should run on 30XX, but quality is sometimes questionable IF driver is newer than 442.50
+ // as the network is now part of the driver.
+ // On older drivers they should work similar to 5.1.
+ else if (runsOptix7)
+ {
+ str += "OptiX 7.2\n";
+ }
+ else if (runsOptix6)
+ {
+ str += "OptiX 6.0\n";
+ }
+ else
+ {
+ str += "all denoiser tests failed. Try updating GPU drivers.\n";
+ }
+
+ var bakeryRuntimePath = ftLightmaps.GetRuntimePath();
+ var gstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage;
+ if (gstorage == null) Debug.LogError("Can't find global storage");
+ var storage = ftRenderLightmap.FindRenderSettingsStorage();
+
+ if (gstorage != null)
+ {
+ gstorage.foundCompatibleSetup = true;
+ gstorage.gpuName = SystemInfo.graphicsDeviceName;
+ gstorage.runsNonRTX = runsNonRTX;
+ gstorage.alwaysEnableRTX = false;
+ gstorage.runsOptix5 = runsOptix5;
+ gstorage.runsOptix6 = runsOptix6;
+ gstorage.runsOptix7 = runsOptix7;
+ gstorage.runsOIDN = runsOIDN;
+ }
+
+ if (!EditorUtility.DisplayDialog("Results", str, "OK", "Set recommended as default"))
+ {
+ if (runsRTX && runsNonRTX)
+ {
+ gstorage.renderSettingsRTXMode = EditorUtility.DisplayDialog("Question", "Does your GPU have RT cores (set RTX mode as default)?", "Yes", "No");
+ }
+ else if (runsRTX)
+ {
+ gstorage.renderSettingsRTXMode = true;
+ }
+ else
+ {
+ gstorage.renderSettingsRTXMode = false;
+ }
+
+ if (runsOptix5)
+ {
+ gstorage.renderSettingsDenoiserType = (int)ftGlobalStorage.DenoiserType.Optix5;
+ }
+ else if (runsOIDN)
+ {
+ gstorage.renderSettingsDenoiserType = (int)ftGlobalStorage.DenoiserType.OpenImageDenoise;
+ }
+ else if (runsOptix7)
+ {
+ gstorage.renderSettingsDenoiserType = (int)ftGlobalStorage.DenoiserType.Optix7;
+ }
+ else if (runsOptix6)
+ {
+ gstorage.renderSettingsDenoiserType = (int)ftGlobalStorage.DenoiserType.Optix6;
+ }
+
+ EditorUtility.SetDirty(gstorage);
+ Debug.Log("Default settings saved");
+
+ if (storage != null)
+ {
+ storage.renderSettingsRTXMode = gstorage.renderSettingsRTXMode;
+ storage.renderSettingsDenoiserType = gstorage.renderSettingsDenoiserType;
+ }
+ }
+
+ var bakery = ftRenderLightmap.instance != null ? ftRenderLightmap.instance : new ftRenderLightmap();
+ bakery.LoadRenderSettings();
+ }
+
+ static void DetectUpdate()
+ {
+ if (!progressFunc.MoveNext())
+ {
+ EditorApplication.update -= DetectUpdate;
+ }
+ }
+
+ static IEnumerator ProcessCoroutine(string cmd)
+ {
+ var exeProcess = RunLocalProcess(cmd, true);
+ if (exeProcess == (System.IntPtr)null)
+ {
+ lastReturnValue = -1;
+ yield break;
+ }
+ while(!IsProcessFinished(exeProcess))
+ {
+ yield return null;
+ userCanceled = simpleProgressBarCancelled();
+ if (userCanceled)
+ {
+ simpleProgressBarEnd();
+ yield break;
+ }
+ }
+ lastReturnValue = GetProcessReturnValueAndClose(exeProcess);
+ }
+}
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDetectSettings.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDetectSettings.cs.meta
new file mode 100644
index 00000000..59f732cf
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDetectSettings.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: afee4282908768e4a8b35d3e5754110c
+timeCreated: 1605465718
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDirectLightInspector.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDirectLightInspector.cs
new file mode 100644
index 00000000..285842d3
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDirectLightInspector.cs
@@ -0,0 +1,418 @@
+
+using UnityEditor;
+using UnityEngine;
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using UnityEngine.Rendering;
+
+[CustomEditor(typeof(BakeryDirectLight))]
+[CanEditMultipleObjects]
+public class ftDirectLightInspector : UnityEditor.Editor
+{
+ SerializedProperty ftraceLightColor;
+ SerializedProperty ftraceLightIntensity;
+ SerializedProperty ftraceLightShadowSpread;
+ SerializedProperty ftraceLightSamples;
+ SerializedProperty ftraceLightBitmask;
+ SerializedProperty ftraceLightBakeToIndirect;
+ SerializedProperty ftraceLightShadowmask;
+ SerializedProperty ftraceLightShadowmaskDenoise;
+ SerializedProperty ftraceLightIndirectIntensity;
+ SerializedProperty ftraceLightTexture, ftraceLightCSTilingX, ftraceLightCSTilingY, ftraceLightCSOffsetX, ftraceLightCSOffsetY;
+
+ ftLightmapsStorage storage;
+
+ bool isHDRP = false;
+
+ public enum BakeWhat
+ {
+ DirectAndIndirect = 0,
+ IndirectOnly = 1,
+ IndirectAndShadowmask = 2
+ };
+
+ static public string[] directContributionIndirectOptions = new string[] {"Direct And Indirect", "Indirect Only", "Shadowmask and Indirect (not applicable in Indirect mode)"};
+
+ static string[] selStrings = new string[] {"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16",
+ "17","18","19","20","21","22","23","24","25","26","27","28","29","30"};//,"31"};
+
+ void InitSerializedProperties(SerializedObject obj)
+ {
+ ftraceLightColor = obj.FindProperty("color");
+ ftraceLightIntensity = obj.FindProperty("intensity");
+ ftraceLightIndirectIntensity = obj.FindProperty("indirectIntensity");
+ ftraceLightShadowSpread = obj.FindProperty("shadowSpread");
+ ftraceLightSamples = obj.FindProperty("samples");
+ ftraceLightBitmask = obj.FindProperty("bitmask");
+ ftraceLightBakeToIndirect = obj.FindProperty("bakeToIndirect");
+ ftraceLightShadowmask = obj.FindProperty("shadowmask");
+ ftraceLightShadowmaskDenoise = obj.FindProperty("shadowmaskDenoise");
+ ftraceLightTexture = obj.FindProperty("cloudShadow");
+ ftraceLightCSTilingX = obj.FindProperty("cloudShadowTilingX");
+ ftraceLightCSTilingY = obj.FindProperty("cloudShadowTilingY");
+ ftraceLightCSOffsetX = obj.FindProperty("cloudShadowOffsetX");
+ ftraceLightCSOffsetY = obj.FindProperty("cloudShadowOffsetY");
+
+ isHDRP = (target as BakeryDirectLight).GetComponent("HDAdditionalLightData") != null;
+ }
+
+ void OnEnable()
+ {
+ InitSerializedProperties(serializedObject);
+ }
+
+ void SetHDRPLight(Light l)
+ {
+ l.intensity *= Mathf.PI;
+
+ var hdrpLight = l.GetComponent("HDAdditionalLightData");
+ if (hdrpLight == null)
+ {
+ Debug.LogWarning("HDRP: no HDAdditionalLightData");
+ return;
+ }
+ var so = new SerializedObject(hdrpLight);
+ if (so == null)
+ {
+ Debug.LogWarning("HDRP: no SerializedObject");
+ return;
+ }
+
+ SerializedProperty hdrpInt2 = so.FindProperty("m_Intensity");
+ if (hdrpInt2 == null)
+ {
+ Debug.LogWarning("HDRP: no m_Intensity");
+ return;
+ }
+ hdrpInt2.floatValue = l.intensity;
+
+ so.ApplyModifiedProperties();
+ }
+
+ void GetLinearLightParameters(Light light, out float lightR, out float lightG, out float lightB, out float lightInt)
+ {
+ if (PlayerSettings.colorSpace != ColorSpace.Linear)
+ {
+ lightInt = light.intensity;
+ lightR = light.color.r;
+ lightG = light.color.g;
+ lightB = light.color.b;
+ return;
+ }
+
+ if (!GraphicsSettings.lightsUseLinearIntensity)
+ {
+ lightR = Mathf.Pow(light.color.r * light.intensity, 2.2f);
+ lightG = Mathf.Pow(light.color.g * light.intensity, 2.2f);
+ lightB = Mathf.Pow(light.color.b * light.intensity, 2.2f);
+ lightInt = Mathf.Max(Mathf.Max(lightR, lightG), lightB);
+ lightR /= lightInt;
+ lightG /= lightInt;
+ lightB /= lightInt;
+ }
+ else
+ {
+ lightInt = light.intensity;
+ lightR = light.color.linear.r;
+ lightG = light.color.linear.g;
+ lightB = light.color.linear.b;
+ }
+ }
+
+ public override void OnInspectorGUI() {
+ //if (showFtrace)
+ //{
+ OnEnable();
+ serializedObject.Update();
+
+ EditorGUILayout.PropertyField(ftraceLightColor, new GUIContent("Color", "Color of the light"));
+ EditorGUILayout.PropertyField(ftraceLightIntensity, new GUIContent("Intensity", "Color multiplier (Lux / Pi)"));
+ EditorGUILayout.PropertyField(ftraceLightShadowSpread, new GUIContent("Shadow spread", "Controls shadow blurriness from 0 to 1"));
+ EditorGUILayout.PropertyField(ftraceLightSamples, new GUIContent("Shadow samples", "The amount of rays tested for this light. Rays are emitted from lightmap texel towards the light, distributed conically. Radius of the cone depends on Shadow Spread."));
+
+ //ftraceLightBitmask.intValue = EditorGUILayout.MaskField(new GUIContent("Bitmask", "Lights only affect renderers with overlapping bits"), ftraceLightBitmask.intValue, selStrings);
+ int prevVal = ftraceLightBitmask.intValue;
+ int newVal = EditorGUILayout.MaskField(new GUIContent("Bitmask", "Lights only affect renderers with overlapping bits"), ftraceLightBitmask.intValue, selStrings);
+ if (prevVal != newVal) ftraceLightBitmask.intValue = newVal;
+
+ /*
+ EditorGUILayout.PropertyField(ftraceLightBakeToIndirect, new GUIContent("Bake to indirect", "Add direct contribution from this light to indirect-only lightmaps"));
+ if (ftraceLightBakeToIndirect.boolValue && ftraceLightShadowmask.boolValue) ftraceLightShadowmask.boolValue = false;
+
+ EditorGUILayout.PropertyField(ftraceLightShadowmask, new GUIContent("Shadowmask", "Enable mixed lighting. Static shadows from this light will be baked, and real-time light will cast shadows from dynamic objects."));
+ if (ftraceLightBakeToIndirect.boolValue && ftraceLightShadowmask.boolValue) ftraceLightBakeToIndirect.boolValue = false;
+ */
+
+ if (storage == null) storage = ftRenderLightmap.FindRenderSettingsStorage();
+ var rmode = storage.renderSettingsUserRenderMode;
+ if (rmode != (int)ftRenderLightmap.RenderMode.FullLighting)
+ {
+ BakeWhat contrib;
+ if (ftraceLightShadowmask.boolValue)
+ {
+ contrib = BakeWhat.IndirectAndShadowmask;
+ }
+ else if (ftraceLightBakeToIndirect.boolValue)
+ {
+ contrib = BakeWhat.DirectAndIndirect;
+ }
+ else
+ {
+ contrib = BakeWhat.IndirectOnly;
+ }
+ var prevContrib = contrib;
+
+ if (rmode == (int)ftRenderLightmap.RenderMode.Indirect)
+ {
+ contrib = (BakeWhat)EditorGUILayout.Popup("Baked contribution", (int)contrib, directContributionIndirectOptions);
+ }
+ else if (rmode == (int)ftRenderLightmap.RenderMode.Shadowmask)
+ {
+ contrib = (BakeWhat)EditorGUILayout.EnumPopup("Baked contribution", contrib);
+ }
+
+ if (prevContrib != contrib)
+ {
+ if (contrib == BakeWhat.IndirectOnly)
+ {
+ ftraceLightShadowmask.boolValue = false;
+ ftraceLightBakeToIndirect.boolValue = false;
+ }
+ else if (contrib == BakeWhat.IndirectAndShadowmask)
+ {
+ ftraceLightShadowmask.boolValue = true;
+ ftraceLightBakeToIndirect.boolValue = false;
+ }
+ else
+ {
+ ftraceLightShadowmask.boolValue = false;
+ ftraceLightBakeToIndirect.boolValue = true;
+ }
+ }
+
+ if (ftraceLightShadowmask.boolValue)
+ {
+ EditorGUILayout.PropertyField(ftraceLightShadowmaskDenoise, new GUIContent("Denoise shadowmask", "Apply denoising to shadowmask texture. For sharp shadows it may be unnecessary."));
+ }
+ }
+
+ EditorGUILayout.PropertyField(ftraceLightIndirectIntensity, new GUIContent("Indirect intensity", "Non-physical GI multiplier for this light"));
+
+ EditorGUILayout.PropertyField(ftraceLightTexture, new GUIContent("Texture projection", "Tiled projected texture"));
+ if (ftraceLightTexture.objectReferenceValue != null)
+ {
+ EditorGUILayout.PropertyField(ftraceLightCSTilingX, new GUIContent("Tiling U", "Cloud shadow U tiling"));
+ EditorGUILayout.PropertyField(ftraceLightCSTilingY, new GUIContent("Tiling V", "Cloud shadow V tiling"));
+ EditorGUILayout.PropertyField(ftraceLightCSOffsetX, new GUIContent("Offset U", "Cloud shadow U tiling"));
+ EditorGUILayout.PropertyField(ftraceLightCSOffsetY, new GUIContent("Offset V", "Cloud shadow V tiling"));
+ }
+
+ serializedObject.ApplyModifiedProperties();
+ //}
+
+
+ bool showError = false;
+ string why = "";
+
+ bool shadowmaskNoDynamicLight = false;
+
+ foreach(BakeryDirectLight selectedLight in targets)
+ {
+ bool match = true;
+
+ var light = selectedLight.GetComponent<Light>();
+ if (light == null)
+ {
+ if (ftraceLightShadowmask.boolValue) shadowmaskNoDynamicLight = true;
+ continue;
+ }
+ if (!light.enabled)
+ {
+ if (ftraceLightShadowmask.boolValue) shadowmaskNoDynamicLight = true;
+ }
+ var so = new SerializedObject(selectedLight);
+ InitSerializedProperties(so);
+
+ if (light.type != LightType.Directional)
+ {
+ match = false;
+ why = "real-time light is not direct";
+ }
+
+ if (light.bounceIntensity != ftraceLightIndirectIntensity.floatValue)
+ {
+ match = false;
+ why = "indirect intensity doesn't match";
+ }
+
+ var clr = ftraceLightColor.colorValue;
+ float eps = 1.0f / 255.0f;
+ float lightR, lightG, lightB, lightInt;
+ float fr, fg, fb;
+ float fintensity = ftraceLightIntensity.floatValue;
+ if (isHDRP) fintensity *= Mathf.PI;
+ if (PlayerSettings.colorSpace == ColorSpace.Linear)
+ {
+ fr = clr.linear.r;// * fintensity;
+ fg = clr.linear.g;// * fintensity;
+ fb = clr.linear.b;// * fintensity;
+ }
+ else
+ {
+ fr = clr.r;
+ fg = clr.g;
+ fb = clr.b;
+ }
+ GetLinearLightParameters(light, out lightR, out lightG, out lightB, out lightInt);
+
+ if (GraphicsSettings.lightsUseLinearIntensity || PlayerSettings.colorSpace != ColorSpace.Linear)
+ {
+ if (Mathf.Abs(lightR - fr) > eps || Mathf.Abs(lightG - fg) > eps || Mathf.Abs(lightB - fb) > eps)
+ {
+ match = false;
+ why = "color doesn't match";
+ }
+ else if (Mathf.Abs(lightInt - fintensity) > eps)
+ {
+ match = false;
+ why = "intensity doesn't match";
+ }
+ }
+ else
+ {
+ eps *= Mathf.Max(lightInt, fintensity);
+ if (Mathf.Abs(lightR*lightInt - fr*fintensity) > eps ||
+ Mathf.Abs(lightG*lightInt - fg*fintensity) > eps ||
+ Mathf.Abs(lightB*lightInt - fb*fintensity) > eps)
+ {
+ match = false;
+ why = "intensity doesn't match";
+ }
+ }
+
+ if (!match)
+ {
+ showError = true;
+ }
+ }
+
+ if (shadowmaskNoDynamicLight)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("Warning: shadowmask needs enabled real-time light to work");
+ }
+
+ if (showError)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("Real-time light doesn't match lightmap: " + why);
+ if (GUILayout.Button("Match lightmapped to real-time"))
+ {
+ foreach(BakeryDirectLight selectedLight in targets)
+ {
+ var light = selectedLight.GetComponent<Light>();
+ if (light == null) continue;
+ //if (!light.enabled) continue;
+ var so = new SerializedObject(selectedLight);
+ InitSerializedProperties(so);
+
+ if (PlayerSettings.colorSpace != ColorSpace.Linear)
+ {
+ ftraceLightColor.colorValue = light.color;
+ ftraceLightIntensity.floatValue = light.intensity;
+ }
+ else if (!GraphicsSettings.lightsUseLinearIntensity)
+ {
+ float lightR, lightG, lightB, lightInt;
+ GetLinearLightParameters(light, out lightR, out lightG, out lightB, out lightInt);
+ ftraceLightColor.colorValue = new Color(lightR, lightG, lightB);
+ ftraceLightIntensity.floatValue = lightInt;
+ }
+ else
+ {
+ ftraceLightColor.colorValue = light.color;
+ ftraceLightIntensity.floatValue = light.intensity;
+ }
+ ftraceLightIndirectIntensity.floatValue = light.bounceIntensity;
+ if (isHDRP) ftraceLightIntensity.floatValue /= Mathf.PI;
+
+ so.ApplyModifiedProperties();
+ }
+ }
+ if (GUILayout.Button("Match real-time to lightmapped"))
+ {
+ foreach(BakeryDirectLight selectedLight in targets)
+ {
+ var light = selectedLight.GetComponent<Light>();
+ if (light == null) continue;
+ //if (!light.enabled) continue;
+ var so = new SerializedObject(selectedLight);
+ InitSerializedProperties(so);
+
+ Undo.RecordObject(light, "Change light");
+ if (PlayerSettings.colorSpace != ColorSpace.Linear)
+ {
+ light.color = ftraceLightColor.colorValue;
+ light.intensity = ftraceLightIntensity.floatValue;
+ }
+ else if (!GraphicsSettings.lightsUseLinearIntensity)
+ {
+ float fr, fg, fb;
+ float fintensity = ftraceLightIntensity.floatValue;
+ var clr = ftraceLightColor.colorValue;
+ fr = clr.linear.r;// * fintensity;
+ fg = clr.linear.g;// * fintensity;
+ fb = clr.linear.b;// * fintensity;
+
+ fr = Mathf.Pow(fr * fintensity, 1.0f / 2.2f);
+ fg = Mathf.Pow(fg * fintensity, 1.0f / 2.2f);
+ fb = Mathf.Pow(fb * fintensity, 1.0f / 2.2f);
+ float fint = Mathf.Max(Mathf.Max(fr, fg), fb);
+ fr /= fint;
+ fg /= fint;
+ fb /= fint;
+ light.color = new Color(fr, fg, fb);
+ light.intensity = fint;
+ }
+ else
+ {
+ light.color = ftraceLightColor.colorValue;
+ light.intensity = ftraceLightIntensity.floatValue;
+ }
+ light.type = LightType.Directional;
+ light.bounceIntensity = ftraceLightIndirectIntensity.floatValue;
+ if (isHDRP) SetHDRPLight(light);
+ }
+ }
+ }
+
+
+ if (PlayerSettings.colorSpace == ColorSpace.Linear)
+ {
+ if (!GraphicsSettings.lightsUseLinearIntensity)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("Warning: project is not set up to use linear light intensity.");
+ EditorGUILayout.LabelField("GraphicsSettings.lightsUseLinearIntensity should be TRUE.");
+ if (GUILayout.Button("Fix"))
+ {
+ GraphicsSettings.lightsUseLinearIntensity = true;
+ }
+ }
+ else
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("Project is using linear light intensity. This is nice.");
+ if (GUILayout.Button("Change to non-linear"))
+ {
+ GraphicsSettings.lightsUseLinearIntensity = false;
+ }
+ }
+ }
+ }
+}
+
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDirectLightInspector.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDirectLightInspector.cs.meta
new file mode 100644
index 00000000..40009f35
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftDirectLightInspector.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 3a4eb21edcc395a419e2da3246fcbc15
+timeCreated: 1525273871
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftErrorCodes.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftErrorCodes.cs
new file mode 100644
index 00000000..2f3d20c5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftErrorCodes.cs
@@ -0,0 +1,266 @@
+#if UNITY_EDITOR
+
+using System.Collections.Generic;
+
+public class ftErrorCodes
+{
+ static Dictionary<int, string> ftraceMap = new Dictionary<int, string>
+ {
+ {1, "Unknown error. See .ftracelog.txt for details."},
+ {2, "Error selecting pass"},
+ {5120, "Can't open lms.bin"},
+ {984, "lmlod.bin doesn't match lms.bin"},
+ {500, "Can't load geometry data. See .ftracelog.txt for details."},
+ {501, "Can't load UVGBuffer smooth position"},
+ {502, "Can't load UVGBuffer face normal"},
+ {505, "Can't load trimarks.bin"},
+ {5005, "Can't load sky.bin"},
+ {500599, "Can't load ao.bin"},
+ {5005991, "Can't load sss.bin"},
+ {507, "Can't load vbtraceUV0.bin"},
+ {508, "Can't load UVGBuffer tangent"},
+ {550, "Can't load light data. See .ftracelog.txt for details."},
+ {557, "Can't load alpha IDs. See .ftracelog.txt for details."},
+ {512, "Can't load compositing data. See .ftracelog.txt for details."},
+ {51298, "Can't open addao.bin"},
+ {875, "Can't load heightmap. See .ftracelog.txt for details."},
+ {90, "Can't load normal to compose. See .ftracelog.txt for details."},
+ {91, "Can't load lightmap to compose. See .ftracelog.txt for details."},
+ {909, "No enabled CUDA devices. See .ftracelog.txt for details."},
+ {910, "Can't load direction to compose. See .ftracelog.txt for details."},
+ {92, "Can't load lightmap to compose. See .ftracelog.txt for details."},
+ {920, "Can't load lightmap to compose. See .ftracelog.txt for details."},
+ {921, "Can't load emission. See .ftracelog.txt for details."},
+ {93, "Can't load lightmap to compose. See .ftracelog.txt for details."},
+ {94, "Can't load lightmap. See .ftracelog.txt for details."},
+ {940, "Can't read direction for GI. See .ftracelog.txt for details."},
+ {95, "Can't read lightmap for GI. See .ftracelog.txt for details."},
+ {510, "Can't write composed lightmap. See .ftracelog.txt for details."},
+ {514, "Can't write composed lightmap. See .ftracelog.txt for details."},
+ {7500, "Can't load UVGBuffer normal or position"},
+ {5090, "Can't decompress UVGBuffer normal"},
+ {5091, "Can't decompress UVGBuffer position"},
+ {5092, "Can't decompress UVGBuffer smooth position"},
+ {5093, "Can't decompress UVGBuffer face normal"},
+ {5083, "Can't decompress UVGBuffer tangent"},
+ {7007, "Can't load direct.bin"},
+ {7771, "Can't read sky texture"},
+ {7772, "Can't read light texture"},
+ {888, "No texture name for cubemaplight"},
+ {8008, "Can't load direct lighting."},
+ {1000, "Can't read albedo for GI. See .ftracelog.txt for details."},
+ {1001, "Can't read lightmap for GI. See .ftracelog.txt for details."},
+ {1007, "Can't read direction for GI. See .ftracelog.txt for details."},
+ {1888, "Failed to initialize"},
+ {10000, "Can't load gi.bin"},
+ {850, "Can't open log file"}
+ };
+
+ static Dictionary<int, string> combineMasksMap = new Dictionary<int, string>
+ {
+ {23, "Can't load texture"},
+ {501, "Can't write file. See console for details."},
+ {5, "Failed to save TGA file. See console for details."},
+ {55, "Failed to save PNG file. See console for details."}
+ };
+
+ static Dictionary<int, string> denoiserMap = new Dictionary<int, string>
+ {
+ {2, "Incorrect arguments"},
+ {3, "Incorrect tile size. Must be between 64 and 8192"},
+ {500, "Can't load texture. See console for details."},
+ {5001, "Can't load texture. See console for details."},
+ {5002, "Can't load texture. See console for details."},
+ {5003, "Can't load texture. See console for details."},
+ {4, "Incorrect tile size. Must be width%tile == height%tile == 0"},
+ {501, "Can't write file. See console for details."},
+ {505, "Unknown error (old driver?)"}
+ };
+
+ static Dictionary<int, string> h2hMap = new Dictionary<int, string>
+ {
+ {23, "Can't load texture. See console for details."},
+ {2, "Failed to get image data from DDS. See console for details."},
+ {3, "Failed to init D3D11"},
+ {4, "Failed to convert"},
+ {45, "Failed to transform pixels"},
+ {5, "Failed to save HDR file. See console for details."}
+ };
+
+ static Dictionary<int, string> i2tMap = new Dictionary<int, string>
+ {
+ {1, "Incorrect arguments"},
+ {2, "Can't read file. See console for details."},
+ {3, "Can't write file. See console for details."},
+ {4, "IES file is not valid. See console for details."},
+ {5, "IES file uses unknown symmetry mode. See console for details."}
+ };
+
+ static Dictionary<int, string> seamfixerMap = new Dictionary<int, string>
+ {
+ {1, "Incorrect arguments"},
+ {2, "Failed to init D3D11"},
+ {501, "Can't load vbtraceTex.bin"},
+ {10, "Can't load lms.bin"},
+ {600, "Can't load lightmap"},
+ {22, "Can't create D3D11 resource"},
+ {3, "Can't create D3D11 resource"},
+ {4, "Can't allocate RAM texture"},
+ {8, "Can't save texture. See console for details."}
+ };
+
+ static Dictionary<int, string> lmrMap = new Dictionary<int, string>
+ {
+ {2, "Failed to init D3D11 or create resource"},
+ {3, "Can't create D3D11 resource"},
+ {601, "Can't load lodmask"},
+ {602, "Can't decompress lodmask (unexpected size)"},
+ {32, "Can't create mip texture"},
+ {33, "Can't create mip render target"},
+ {34, "Can't create mip shader resource view"},
+ {4, "Can't allocate RAM mip texture"},
+ {8, "Can't save texture"}
+ };
+
+ static Dictionary<int, string> serverMap = new Dictionary<int, string>
+ {
+ {ftClient.SERVERERROR_IDLE, "Idle"},
+ {ftClient.SERVERERROR_COPY, "File copying failed"},
+ {ftClient.SERVERERROR_GIPARAMS, "Failed to generate GI parameters"},
+ {ftClient.SERVERERROR_NOTIMPLEMENTED, "Feature is not implemented"},
+ {ftClient.SERVERERROR_UNKNOWNTASK, "Unknown task submitted"},
+ {ftClient.SERVERERROR_SCENENAMETOOLONG, "Scene name is too long"},
+ {ftClient.SERVERERROR_FILENOTFOUND, "File not found"},
+ {ftClient.SERVERERROR_FILEHASZEROSIZE, "File has zero size"},
+ {ftClient.SERVERERROR_NOMEM, "Out of memory"},
+ {ftClient.SERVERERROR_INCORRECT, "Incorrect request"},
+ {ftClient.SERVERERROR_INCORRECTFILENAME, "Incorrect filename"},
+ {ftClient.SERVERERROR_WRITEFAILED, "write failed"},
+ {ftClient.SERVERERROR_INCORRECTARGS, "incorrect arguments"},
+ {ftClient.SERVERERROR_FILESIZE, "file size is too large"},
+ {ftClient.SERVERERROR_STATUSLIMIT, "status message can't fit filename"}
+ };
+
+ static Dictionary<int, string> serverAppMap = new Dictionary<int, string>
+ {
+ {ftClient.SERVERTASK_FTRACE, "ftrace"},
+ {ftClient.SERVERTASK_FTRACERTX, "ftraceRTX"},
+ {ftClient.SERVERTASK_COMBINEMASKS, "combineMasks"},
+
+ {ftClient.SERVERTASK_DENOISE5, "denoiserLegacy"},
+ {ftClient.SERVERTASK_DENOISE6, "denoiser"},
+ {ftClient.SERVERTASK_DENOISE7, "denoiser72"},
+ {ftClient.SERVERTASK_DENOISEOIDN, "denoiserOIDN"},
+
+ {ftClient.SERVERTASK_HF2HDR, "halffloat2hdr"},
+ {ftClient.SERVERTASK_RGBA2TGA, "rgba2tga"},
+ {ftClient.SERVERTASK_SEAMFIX, "seamfixer"}
+ };
+
+ public static string TranslateFtrace(int code, bool rtx)
+ {
+ bool unknown = false;
+ string text;
+ if (!ftraceMap.TryGetValue(code, out text))
+ {
+ unknown = true;
+ text = "Unknown error";
+ }
+ text += " (" + code + ")";
+ if (unknown || code == 1)
+ {
+ text += "\n\nPossibly incompatible RTX mode? Try running Bakery -> Utilities -> Detect optimal settings.";
+ }
+ return text;
+ }
+
+ public static string TranslateCombineMasks(int code)
+ {
+ string text;
+ if (!combineMasksMap.TryGetValue(code, out text)) text = "Unknown error";
+ return text + " (" + code + ")";
+ }
+
+ public static string TranslateDenoiser(int code)
+ {
+ string text;
+ if (!denoiserMap.TryGetValue(code, out text)) text = "Unknown error";
+ return text + " (" + code + ")";
+ }
+
+ public static string TranslateH2H(int code)
+ {
+ string text;
+ if (!h2hMap.TryGetValue(code, out text)) text = "Unknown error";
+ return text + " (" + code + ")";
+ }
+
+ public static string TranslateI2T(int code)
+ {
+ string text;
+ if (!i2tMap.TryGetValue(code, out text)) text = "Unknown error";
+ return text + " (" + code + ")";
+ }
+
+ public static string TranslateSeamfixer(int code)
+ {
+ string text;
+ if (!seamfixerMap.TryGetValue(code, out text)) text = "Unknown error";
+ return text + " (" + code + ")";
+ }
+
+ public static string TranslateLMRebake(int code)
+ {
+ string text;
+ if (!lmrMap.TryGetValue(code, out text)) text = "Unknown error";
+ return text + " (" + code + ")";
+ }
+
+ public static string TranslateServerApp(int app)
+ {
+ string text;
+ if (!serverAppMap.TryGetValue(app, out text)) text = "Unknown executable " + " (" + app + ")";
+ return text;
+ }
+
+ public static string TranslateServer(int code, int app=0, int appCode=0)
+ {
+ string text;
+ if (code == ftClient.SERVERERROR_BUSY)
+ {
+ text = "Busy (" + app + "/" + appCode + ")";
+ }
+ else if (code == ftClient.SERVERERROR_APPERR)
+ {
+ var appName = TranslateServerApp(app);
+ text = appName + " error: " + Translate(appName, appCode);
+ }
+ else if (code == ftClient.SERVERERROR_EXEC)
+ {
+ text = "Failed to run " + TranslateServerApp(app);
+ }
+ else
+ {
+ if (!serverMap.TryGetValue(code, out text)) text = "Unknown error (" + code + ")";
+ }
+ return text;
+ }
+
+ public static string Translate(string app, int code)
+ {
+ if (app == "ftrace") return TranslateFtrace(code, false);
+ if (app == "ftraceRTX") return TranslateFtrace(code, true);
+ if (app == "combineMasks") return TranslateCombineMasks(code);
+ if (app == "denoiser") return TranslateDenoiser(code);
+ if (app == "denoiser72") return TranslateDenoiser(code);
+ if (app == "denoiserLegacy") return TranslateDenoiser(code);
+ if (app == "denoiserOIDN") return TranslateDenoiser(code);
+ if (app == "halffloat2hdr") return TranslateH2H(code);
+ if (app == "ies2tex") return TranslateI2T(code);
+ if (app == "rgba2tga") return TranslateCombineMasks(code);
+ if (app == "seamfixer") return TranslateSeamfixer(code);
+ return ""+code;
+ }
+}
+
+#endif
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftErrorCodes.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftErrorCodes.cs.meta
new file mode 100644
index 00000000..6aedab2b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftErrorCodes.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 54cb23fa553d8b4479e0374ee0f9c502
+timeCreated: 1540538557
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftFixResettingGlobalsOnSave.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftFixResettingGlobalsOnSave.cs
new file mode 100644
index 00000000..34375f4c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftFixResettingGlobalsOnSave.cs
@@ -0,0 +1,32 @@
+#if UNITY_EDITOR
+
+// Disable 'obsolete' warnings
+#pragma warning disable 0618
+
+using UnityEngine;
+using UnityEditor;
+using System.Collections;
+
+// For reasons unknown Unity will reset all shader variables set by Shader.SetGlobal... if you save a scene
+// So here is a hack to fix it
+public class ftFixResettingsGlobalsOnSave : SaveAssetsProcessor
+{
+ static void ProcUpdate()
+ {
+ if (BakeryVolume.globalVolume != null) BakeryVolume.globalVolume.OnEnable(); // set global volume again
+ EditorApplication.update -= ProcUpdate; // remove the callback
+ }
+
+ static string[] OnWillSaveAssets(string[] paths)
+ {
+ // Only do anything if there is a global volume in the scene
+ if (BakeryVolume.globalVolume != null)
+ {
+ EditorApplication.update += ProcUpdate; // wait for the next editor update
+ }
+ return paths;
+ }
+}
+
+#endif
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftFixResettingGlobalsOnSave.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftFixResettingGlobalsOnSave.cs.meta
new file mode 100644
index 00000000..1990ff48
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftFixResettingGlobalsOnSave.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: bd16f24f4abb61548aeac9a94c816e3a
+timeCreated: 1606027586
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupInspector.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupInspector.cs
new file mode 100644
index 00000000..a1946203
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupInspector.cs
@@ -0,0 +1,94 @@
+
+using UnityEditor;
+using UnityEngine;
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+
+[CustomEditor(typeof(BakeryLightmapGroup))]
+[CanEditMultipleObjects]
+public class ftLMGroupInspector : UnityEditor.Editor
+{
+ SerializedProperty ftraceResolution;
+ SerializedProperty ftraceMode;
+ SerializedProperty ftraceRenderMode;
+ SerializedProperty ftraceRenderDirMode;
+ SerializedProperty ftraceAtlasPacker;
+ SerializedProperty ftraceBitmask;
+ SerializedProperty ftraceThickness;
+ SerializedProperty ftraceSSS;
+ SerializedProperty ftraceSSSSamples;
+ SerializedProperty ftraceSSSDensity;
+ SerializedProperty ftraceSSSColor;
+ SerializedProperty ftraceFakeShadowBias;
+ SerializedProperty ftraceTransparentSelfShadow;
+ SerializedProperty ftraceFlipNormal;
+ SerializedProperty ftraceSSSScale;
+
+ static string[] selStrings = new string[] {"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16",
+ "17","18","19","20","21","22","23","24","25","26","27","28","29","30"};//,"31"};
+
+ void OnEnable()
+ {
+ ftraceResolution = serializedObject.FindProperty("resolution");
+ ftraceMode = serializedObject.FindProperty("mode");
+ ftraceRenderMode = serializedObject.FindProperty("renderMode");
+ ftraceRenderDirMode = serializedObject.FindProperty("renderDirMode");
+ ftraceAtlasPacker = serializedObject.FindProperty("atlasPacker");
+ ftraceBitmask = serializedObject.FindProperty("bitmask");
+ //ftraceThickness = serializedObject.FindProperty("aoIsThickness");
+ ftraceSSS = serializedObject.FindProperty("computeSSS");
+ ftraceSSSSamples = serializedObject.FindProperty("sssSamples");
+ ftraceSSSDensity = serializedObject.FindProperty("sssDensity");
+ ftraceSSSColor = serializedObject.FindProperty("sssColor");
+ ftraceSSSScale = serializedObject.FindProperty("sssScale");
+ ftraceFakeShadowBias = serializedObject.FindProperty("fakeShadowBias");
+ ftraceTransparentSelfShadow = serializedObject.FindProperty("transparentSelfShadow");
+ ftraceFlipNormal = serializedObject.FindProperty("flipNormal");
+ }
+
+ public override void OnInspectorGUI() {
+ serializedObject.Update();
+
+ EditorGUILayout.LabelField("Bakery lightmap group parameters");
+ EditorGUILayout.Space();
+
+ if (ftraceMode.intValue != 2)
+ {
+ var prev = ftraceResolution.intValue;
+ ftraceResolution.intValue = (int)Mathf.ClosestPowerOfTwo(EditorGUILayout.IntSlider("Resolution", ftraceResolution.intValue, 1, 8192));
+ if (ftraceResolution.intValue != prev) EditorUtility.SetDirty(target);
+ }
+
+ EditorGUILayout.PropertyField(ftraceMode, new GUIContent("Packing mode", "Determines how lightmaps are packed. In Simple mode they are not packed, and all objects sharing this group are drawn on top of each other. This is desired in case they were all unwrapped together and do not overlap. If UVs of different objects overlap, choose PackAtlas to arrange their lightmaps together into a single packed atlas."));
+
+ EditorGUILayout.PropertyField(ftraceRenderMode, new GUIContent("Render Mode", ""));
+
+ EditorGUILayout.PropertyField(ftraceRenderDirMode, new GUIContent("Directional mode", ""));
+
+ EditorGUILayout.PropertyField(ftraceAtlasPacker, new GUIContent("Atlas packer", ""));
+
+ ftraceBitmask.intValue = EditorGUILayout.MaskField(new GUIContent("Bitmask", "Lights only affect renderers with overlapping bits"), ftraceBitmask.intValue, selStrings);
+
+ EditorGUILayout.LabelField("");
+ EditorGUILayout.LabelField("Experimental");
+
+ //EditorGUILayout.PropertyField(ftraceThickness, new GUIContent("Calculate AO as thickness", ""));
+ EditorGUILayout.PropertyField(ftraceSSS, new GUIContent("Subsurface scattering", ""));
+ if (ftraceSSS.boolValue)
+ {
+ EditorGUILayout.PropertyField(ftraceSSSSamples, new GUIContent("Samples", ""));
+ EditorGUILayout.PropertyField(ftraceSSSDensity, new GUIContent("Density", ""));
+ EditorGUILayout.PropertyField(ftraceSSSColor, new GUIContent("Color", ""));
+ EditorGUILayout.PropertyField(ftraceSSSScale, new GUIContent("Scale", ""));
+ }
+
+ EditorGUILayout.PropertyField(ftraceFakeShadowBias, new GUIContent("Normal offset", "Fake normal offset for surface samples. Might be useful when applying very strong normal maps."));
+ EditorGUILayout.PropertyField(ftraceTransparentSelfShadow, new GUIContent("Transparent selfshadow", "Start rays behind the surface so it doesn't cast shadows on self. Might be useful for translucent foliage."));
+ EditorGUILayout.PropertyField(ftraceFlipNormal, new GUIContent("Flip normal", "Treat faces as flipped."));
+
+ serializedObject.ApplyModifiedProperties();
+ }
+}
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupInspector.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupInspector.cs.meta
new file mode 100644
index 00000000..8b07c862
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupInspector.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c93be7cc95a299b4391dc97ea53e9348
+timeCreated: 1526381774
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupSelectorInspector.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupSelectorInspector.cs
new file mode 100644
index 00000000..530532e7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupSelectorInspector.cs
@@ -0,0 +1,166 @@
+
+using UnityEditor;
+using UnityEngine;
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using UnityEngine.SceneManagement;
+using UnityEditor.SceneManagement;
+
+[CustomEditor(typeof(BakeryLightmapGroupSelector))]
+[CanEditMultipleObjects]
+public class ftLMGroupSelectorInspector : UnityEditor.Editor
+{
+ SerializedProperty ftraceAsset;
+ SerializedProperty ftraceOverride;
+ SerializedProperty ftraceResolution;
+
+ string newName = null;
+ int newRes = 512;
+ int newMask = 1;
+ BakeryLightmapGroup.ftLMGroupMode newMode = BakeryLightmapGroup.ftLMGroupMode.PackAtlas;
+ BakeryLightmapGroup.RenderDirMode newDirMode = BakeryLightmapGroup.RenderDirMode.Auto;
+
+ static string[] selStrings = new string[] {"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16",
+ "17","18","19","20","21","22","23","24","25","26","27","28","29","30"};//,"31"};
+
+ void OnEnable()
+ {
+ ftraceAsset = serializedObject.FindProperty("lmgroupAsset");
+ ftraceOverride = serializedObject.FindProperty("instanceResolutionOverride");
+ ftraceResolution = serializedObject.FindProperty("instanceResolution");
+ }
+
+ void ForceSavePrefabOverride(UnityEngine.Object[] targets)
+ {
+#if UNITY_2018_3_OR_NEWER
+ foreach(BakeryLightmapGroupSelector obj in targets)
+ {
+ PrefabUtility.RecordPrefabInstancePropertyModifications(obj);
+ EditorUtility.SetDirty(obj);
+ }
+#endif
+ }
+
+ public override void OnInspectorGUI() {
+ serializedObject.Update();
+
+ //if (!ftraceAsset.hasMultipleDifferentValues)
+ {
+ EditorGUILayout.LabelField("These lightmap parameters affect the object and its children");
+
+ EditorGUI.BeginChangeCheck();
+ var selectedLMGroup = EditorGUILayout.ObjectField(new GUIContent("Lightmap group", "Select ftrace lightmap group asset"),
+ ftraceAsset.objectReferenceValue, typeof(BakeryLightmapGroup), false);
+ var changed = EditorGUI.EndChangeCheck();
+
+ if (ftraceAsset.hasMultipleDifferentValues) EditorGUILayout.LabelField("(Different values in selection)");
+
+ if (changed)
+ {
+ foreach(BakeryLightmapGroupSelector obj in targets)
+ {
+ Undo.RecordObject(obj, "Change LMGroup");
+ obj.lmgroupAsset = selectedLMGroup;
+ ForceSavePrefabOverride(targets);
+ }
+ }
+
+ if (ftraceAsset.objectReferenceValue != null)
+ {
+ var group = ftraceAsset.objectReferenceValue as BakeryLightmapGroup;
+
+ if (group.mode != BakeryLightmapGroup.ftLMGroupMode.PackAtlas && ftraceOverride.boolValue)
+ {
+ ftraceOverride.boolValue = false;
+ ForceSavePrefabOverride(targets);
+ }
+
+ //EditorGUILayout.LabelField("Packed atlas: " + (group.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas ? "yes" : "no"));
+ var modeString = "Packing: ";
+ if (group.mode == BakeryLightmapGroup.ftLMGroupMode.OriginalUV) {
+ modeString += "original UV";
+ } else if (group.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas) {
+ modeString += "packed atlas";
+ } else {
+ modeString += "vertex";
+ }
+ EditorGUILayout.LabelField(modeString);
+
+ modeString = "Directional: ";
+ if (group.renderDirMode == BakeryLightmapGroup.RenderDirMode.Auto) {
+ modeString += "auto";
+ } else if (group.renderDirMode == BakeryLightmapGroup.RenderDirMode.None) {
+ modeString += "none";
+ } else if (group.renderDirMode == BakeryLightmapGroup.RenderDirMode.BakedNormalMaps) {
+ modeString += "baked normal maps";
+ } else if (group.renderDirMode == BakeryLightmapGroup.RenderDirMode.DominantDirection) {
+ modeString += "dominant direction";
+ } else if (group.renderDirMode == BakeryLightmapGroup.RenderDirMode.RNM) {
+ modeString += "RNM";
+ } else if (group.renderDirMode == BakeryLightmapGroup.RenderDirMode.SH) {
+ modeString += "SH";
+ }
+ EditorGUILayout.LabelField(modeString);
+
+ if (group.mode != BakeryLightmapGroup.ftLMGroupMode.Vertex)
+ {
+ EditorGUILayout.LabelField("Resolution: " + (ftraceOverride.boolValue ? (ftraceResolution.intValue + " (atlas: " + group.resolution + ")") : (group.resolution)+""));
+ }
+
+ if (group.mode == BakeryLightmapGroup.ftLMGroupMode.PackAtlas)
+ {
+ EditorGUILayout.PropertyField(ftraceOverride, new GUIContent("Override resolution", "Manually set the resolution of this object in the atlas"));
+ if (ftraceOverride.boolValue)
+ {
+ ftraceResolution.intValue = EditorGUILayout.IntSlider("Resolution", ftraceResolution.intValue, 1, 8192);
+ ForceSavePrefabOverride(targets);
+ }
+ }
+ }
+ else
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("Create new lightmap group:");
+ if (newName == null) newName = "LMGroup_" + target.name;
+ newName = EditorGUILayout.TextField("Name", newName);
+ EditorGUILayout.PrefixLabel("Packing mode");
+ newMode = (BakeryLightmapGroup.ftLMGroupMode)EditorGUILayout.EnumPopup(newMode);
+ if (newMode != BakeryLightmapGroup.ftLMGroupMode.Vertex)
+ {
+ newRes = (int)Mathf.ClosestPowerOfTwo(EditorGUILayout.IntSlider("Resolution", newRes, 1, 8192));
+ }
+ EditorGUILayout.PrefixLabel("Directional mode");
+ newDirMode = (BakeryLightmapGroup.RenderDirMode)EditorGUILayout.EnumPopup(newDirMode);
+ newMask = EditorGUILayout.MaskField(new GUIContent("Bitmask", "Lights only affect renderers with overlapping bits"), newMask, selStrings);
+ if (GUILayout.Button("Create new"))
+ {
+ BakeryLightmapGroup newGroup = ScriptableObject.CreateInstance<BakeryLightmapGroup>();
+ newGroup.resolution = newRes;
+ newGroup.bitmask = newMask;
+ newGroup.mode = newMode;
+ newGroup.renderDirMode = newDirMode;
+
+ string fname;
+ var activeScene = SceneManager.GetActiveScene();
+ if (activeScene.path.Length > 0)
+ {
+ fname = Path.GetDirectoryName(activeScene.path) + "/" + newName;
+ }
+ else
+ {
+ fname = "Assets/" + newName;
+ }
+
+ AssetDatabase.CreateAsset(newGroup, fname + ".asset");
+ AssetDatabase.SaveAssets();
+ ftraceAsset.objectReferenceValue = newGroup;
+ }
+ }
+ }
+
+ serializedObject.ApplyModifiedProperties();
+ }
+}
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupSelectorInspector.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupSelectorInspector.cs.meta
new file mode 100644
index 00000000..d3075eb9
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLMGroupSelectorInspector.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 84f0a0db10ed05349987b7b2a49c345e
+timeCreated: 1526384098
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightMeshInspector.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightMeshInspector.cs
new file mode 100644
index 00000000..0d1368ff
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightMeshInspector.cs
@@ -0,0 +1,671 @@
+
+using UnityEditor;
+using UnityEngine;
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using UnityEngine.Rendering;
+
+[CustomEditor(typeof(BakeryLightMesh))]
+[CanEditMultipleObjects]
+public class ftLightMeshInspector : UnityEditor.Editor
+{
+ SerializedProperty ftraceLightColor;
+ SerializedProperty ftraceLightIntensity;
+ SerializedProperty ftraceLightIndirectIntensity;
+ SerializedProperty ftraceLightTexture;
+ SerializedProperty ftraceLightCutoff;
+ SerializedProperty ftraceLightSamples;
+ SerializedProperty ftraceLightSamples2;
+ SerializedProperty ftraceLightBitmask;
+ SerializedProperty ftraceLightSelfShadow;
+ SerializedProperty ftraceLightBakeToIndirect;
+
+ static string ftLightShaderName = "Bakery/Light";
+
+ ftLightmapsStorage storage;
+
+ int texCached = -1;
+
+ static string[] selStrings = new string[] {"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16",
+ "17","18","19","20","21","22","23","24","25","26","27","28","29","30"};//,"31"};
+
+ void InitSerializedProperties(SerializedObject obj)
+ {
+ ftraceLightColor = obj.FindProperty("color");
+ ftraceLightTexture = obj.FindProperty("texture");
+ ftraceLightIntensity = obj.FindProperty("intensity");
+ ftraceLightIndirectIntensity = obj.FindProperty("indirectIntensity");
+ ftraceLightCutoff = obj.FindProperty("cutoff");
+ ftraceLightSamples = obj.FindProperty("samples");
+ ftraceLightSamples2 = obj.FindProperty("samples2");
+ ftraceLightBitmask = obj.FindProperty("bitmask");
+ ftraceLightSelfShadow = obj.FindProperty("selfShadow");
+ ftraceLightBakeToIndirect = obj.FindProperty("bakeToIndirect");
+ }
+
+ void OnEnable()
+ {
+ InitSerializedProperties(serializedObject);
+ }
+
+ void TestPreviewRefreshProperty(ref int cached, int newVal)
+ {
+ if (cached >= 0)
+ {
+ if (cached != newVal)
+ {
+ BakeryLightMesh.lightsChanged = 2;
+ }
+ }
+ cached = newVal;
+ }
+
+ void TestPreviewRefreshProperty(ref int cached, UnityEngine.Object newVal)
+ {
+ if (newVal == null)
+ {
+ TestPreviewRefreshProperty(ref cached, 0);
+ return;
+ }
+ TestPreviewRefreshProperty(ref cached, newVal.GetInstanceID());
+ }
+
+ void GetLinearLightParameters(Light light, out float lightR, out float lightG, out float lightB, out float lightInt)
+ {
+ if (PlayerSettings.colorSpace != ColorSpace.Linear)
+ {
+ lightInt = light.intensity;
+ lightR = light.color.r;
+ lightG = light.color.g;
+ lightB = light.color.b;
+ return;
+ }
+
+ if (!GraphicsSettings.lightsUseLinearIntensity)
+ {
+ lightR = Mathf.Pow(light.color.r * light.intensity, 2.2f);
+ lightG = Mathf.Pow(light.color.g * light.intensity, 2.2f);
+ lightB = Mathf.Pow(light.color.b * light.intensity, 2.2f);
+ lightInt = Mathf.Max(Mathf.Max(lightR, lightG), lightB);
+ lightR /= lightInt;
+ lightG /= lightInt;
+ lightB /= lightInt;
+ }
+ else
+ {
+ lightInt = light.intensity;
+ lightR = light.color.linear.r;
+ lightG = light.color.linear.g;
+ lightB = light.color.linear.b;
+ }
+ }
+
+ public static Vector2 GetAreaLightSize(Light obj)
+ {
+ Vector2 areaSize = obj.areaSize;
+
+ var hdrpLight = obj.GetComponent("HDAdditionalLightData");
+ if (hdrpLight != null)
+ {
+ var so = new SerializedObject(hdrpLight);
+ if (so != null)
+ {
+ var hdrpLightTypeExtent = so.FindProperty("m_PointlightHDType");
+ var hdrpLightTypeExtent2 = so.FindProperty("m_AreaLightShape");
+ if (hdrpLightTypeExtent != null && hdrpLightTypeExtent2 != null)
+ {
+ int extendedLightType = hdrpLightTypeExtent.intValue;
+ int extendedLightType2 = hdrpLightTypeExtent2.intValue;
+ if (extendedLightType == 1 && // area
+ extendedLightType2 == 0) // rectangle
+ {
+ var hdrpLightShapeWidth = so.FindProperty("m_ShapeWidth");
+ var hdrpLightShapeHeight = so.FindProperty("m_ShapeHeight");
+ areaSize = new Vector2(hdrpLightShapeWidth != null ? hdrpLightShapeWidth.floatValue : 1,
+ hdrpLightShapeHeight != null ? hdrpLightShapeHeight.floatValue : 1);
+ }
+ else
+ {
+ Debug.LogError(obj.name + " HDRP light type unsupported: " + extendedLightType + ", " + extendedLightType2);
+ }
+ }
+ }
+ }
+ return areaSize;
+ }
+
+ public static Vector3[] GetAreaLightCorners(Light obj)
+ {
+ var areaSize = GetAreaLightSize(obj);
+
+ var t = obj.transform;
+ var pos = t.position;
+ var right = t.right;
+ var up = t.up;
+ var extents = areaSize * 0.5f;
+ var corners = new Vector3[4];
+ corners[0] = pos - right * extents.x - up * extents.y;
+ corners[1] = pos - right * extents.x + up * extents.y;
+ corners[2] = pos + right * extents.x + up * extents.y;
+ corners[3] = pos + right * extents.x - up * extents.y;
+
+ return corners;
+ }
+
+ public static bool IsArea(Light obj)
+ {
+ var hdrpLight = obj.GetComponent("HDAdditionalLightData");
+ if (hdrpLight != null)
+ {
+ var so = new SerializedObject(hdrpLight);
+ if (so != null)
+ {
+ var hdrpLightTypeExtent = so.FindProperty("m_PointlightHDType");
+ var hdrpLightTypeExtent2 = so.FindProperty("m_AreaLightShape");
+ if (hdrpLightTypeExtent != null && hdrpLightTypeExtent2 != null)
+ {
+ int extendedLightType = hdrpLightTypeExtent.intValue;
+ int extendedLightType2 = hdrpLightTypeExtent2.intValue;
+ if (extendedLightType == 1 && // area
+ extendedLightType2 == 0) // rectangle
+ {
+ return true;
+ }
+ }
+ }
+ }
+ else
+ {
+ return obj.type == LightType.Area;
+ }
+ return false;
+ }
+
+ public override void OnInspectorGUI() {
+ //if (showFtrace)
+ {
+ OnEnable();
+ serializedObject.Update();
+
+ TestPreviewRefreshProperty(ref texCached, ftraceLightTexture.objectReferenceValue);
+
+ EditorGUILayout.PropertyField(ftraceLightColor, new GUIContent("Color", "Color of the light"));
+ EditorGUILayout.PropertyField(ftraceLightIntensity, new GUIContent("Intensity", "Color multiplier"));
+ EditorGUILayout.PropertyField(ftraceLightTexture, new GUIContent("Texture", "Texture"));
+ EditorGUILayout.PropertyField(ftraceLightCutoff, new GUIContent("Cutoff", "Lighting distance limit. For maximum physical corectness set to a very high value. Using smaller values is useful for faster render times and to match real-time lights. Bakery uses Skyforge falloff to maintain balance between correct inverse-squared attenuation and practical limits (https://habr.com/company/mailru/blog/248873/)"));
+
+ if (ftraceLightSelfShadow.boolValue)
+ {
+ EditorGUILayout.PropertyField(ftraceLightSamples2, new GUIContent("Samples Near", "The amount of rays traced hemispherically in the proximity of this mesh. Set to 0 to only trace with 'Samples Far'."));
+ }
+ else
+ {
+ ftraceLightSamples2.intValue = 0;
+ }
+ EditorGUILayout.PropertyField(ftraceLightSamples, new GUIContent("Samples Far", "The amount of sample points generated on the surface of this mesh. Distant mesh lights are approximated as clouds of directed half-point lights."));
+
+ //ftraceLightBitmask.intValue = EditorGUILayout.MaskField(new GUIContent("Bitmask", "Lights only affect renderers with overlapping bits"), ftraceLightBitmask.intValue, selStrings);
+ int prevVal = ftraceLightBitmask.intValue;
+ int newVal = EditorGUILayout.MaskField(new GUIContent("Bitmask", "Lights only affect renderers with overlapping bits"), ftraceLightBitmask.intValue, selStrings);
+ if (prevVal != newVal) ftraceLightBitmask.intValue = newVal;
+
+ EditorGUILayout.PropertyField(ftraceLightSelfShadow, new GUIContent("Self shadow", "Determines if light mesh itself casts shadows."));
+
+ //EditorGUILayout.PropertyField(ftraceLightBakeToIndirect, new GUIContent("Bake to indirect", "Add direct contribution from this light to indirect-only lightmaps"));
+
+ if (storage == null) storage = ftRenderLightmap.FindRenderSettingsStorage();
+ var rmode = storage.renderSettingsUserRenderMode;
+ if (rmode != (int)ftRenderLightmap.RenderMode.FullLighting)
+ {
+ ftDirectLightInspector.BakeWhat contrib;
+ if (ftraceLightBakeToIndirect.boolValue)
+ {
+ contrib = ftDirectLightInspector.BakeWhat.DirectAndIndirect;
+ }
+ else
+ {
+ contrib = ftDirectLightInspector.BakeWhat.IndirectOnly;
+ }
+ var prevContrib = contrib;
+
+ contrib = (ftDirectLightInspector.BakeWhat)EditorGUILayout.Popup("Baked contribution", (int)contrib, ftSkyLightInspector.directContributionOptions);
+
+ if (prevContrib != contrib)
+ {
+ if (contrib == ftDirectLightInspector.BakeWhat.IndirectOnly)
+ {
+ ftraceLightBakeToIndirect.boolValue = false;
+ }
+ else
+ {
+ ftraceLightBakeToIndirect.boolValue = true;
+ }
+ }
+ }
+
+ EditorGUILayout.PropertyField(ftraceLightIndirectIntensity, new GUIContent("Indirect intensity", "Non-physical GI multiplier for this light"));
+
+ serializedObject.ApplyModifiedProperties();
+ }
+
+ bool showError = false;
+ string showErrorText = "";
+ bool isAreaLight = false;
+ bool isMesh = false;
+
+ var materialValid = new bool[targets.Length];
+ int iterator = -1;
+ int numMaterialValid = targets.Length;
+
+ foreach(BakeryLightMesh selectedLight in targets)
+ {
+ iterator++;
+ var so = new SerializedObject(selectedLight);
+ InitSerializedProperties(so);
+
+ var mr = selectedLight.GetComponent<MeshRenderer>();
+ var mf = selectedLight.GetComponent<MeshFilter>();
+ var areaLight = selectedLight.GetComponent<Light>();
+ if (areaLight != null && !IsArea(areaLight)) areaLight = null;
+
+ if (mr == null && areaLight == null)
+ {
+ showError = true;
+ showErrorText = "Error: no mesh renderer";
+ continue;
+ }
+
+ if (mf == null && areaLight == null)
+ {
+ showError = true;
+ showErrorText = "Error: no mesh filter";
+ continue;
+ }
+
+ float intensity = ftraceLightIntensity.floatValue;
+ var clr = ftraceLightColor.colorValue;
+
+ if (areaLight != null)
+ {
+ bool match = true;
+ string why = "";
+ isAreaLight = true;
+
+ float eps = 1.0f / 255.0f;
+ float lightR, lightG, lightB, lightInt;
+ float fr, fg, fb;
+ if (PlayerSettings.colorSpace == ColorSpace.Linear)
+ {
+ fr = clr.linear.r;// * fintensity;
+ fg = clr.linear.g;// * fintensity;
+ fb = clr.linear.b;// * fintensity;
+ }
+ else
+ {
+ fr = clr.r;
+ fg = clr.g;
+ fb = clr.b;
+ }
+ GetLinearLightParameters(areaLight, out lightR, out lightG, out lightB, out lightInt);
+
+ if (GraphicsSettings.lightsUseLinearIntensity || PlayerSettings.colorSpace != ColorSpace.Linear)
+ {
+ if (Mathf.Abs(lightR - fr) > eps || Mathf.Abs(lightG - fg) > eps || Mathf.Abs(lightB - fb) > eps)
+ {
+ match = false;
+ why = "color doesn't match";
+ }
+ else if (Mathf.Abs(lightInt - intensity) > eps)
+ {
+ match = false;
+ why = "intensity doesn't match";
+ }
+ }
+ else
+ {
+ eps *= Mathf.Max(lightInt, intensity);
+ if (Mathf.Abs(lightR*lightInt - fr*intensity) > eps ||
+ Mathf.Abs(lightG*lightInt - fg*intensity) > eps ||
+ Mathf.Abs(lightB*lightInt - fb*intensity) > eps)
+ {
+ match = false;
+ why = "intensity doesn't match";
+ }
+ }
+
+ if (Mathf.Abs(ftraceLightCutoff.floatValue - areaLight.range * 1.5f) > 0.01f)
+ {
+ match = false;
+ why = "range doesn't match";
+ }
+
+ if (ftraceLightSelfShadow.boolValue)
+ {
+ match = false;
+ why = "area light is not self-shadowed.";
+ }
+
+ if (areaLight.bounceIntensity != ftraceLightIndirectIntensity.floatValue)
+ {
+ match = false;
+ why = "indirect intensity doesn't match";
+ }
+
+ if (!match)
+ {
+ //EditorGUILayout.Space();
+ //EditorGUILayout.LabelField("Real-time light doesn't match lightmap: " + why);
+ showError = true;
+ showErrorText = "Area light doesn't match lightmap: " + why;
+ }
+
+ continue;
+ }
+
+ materialValid[iterator] = true;
+ Material singleMat = null;
+ var mats = mr.sharedMaterials;
+
+ if (mats.Length == 0 || mats[0] == null)
+ {
+ showError = true;
+ showErrorText = "Error: no materials set";
+ continue;
+ }
+
+ isMesh = true;
+
+ for(int i=0; i<mats.Length; i++)
+ {
+ var mat = mats[i];
+ if (singleMat == null) singleMat = mat;
+ if (mat != null && mat != singleMat)
+ {
+ showError = true;
+ showErrorText = "Error: different materials in mesh";
+ //match = false;
+ materialValid[iterator] = false;
+ numMaterialValid--;
+ break;
+ }
+ if (mat == null)
+ {
+ showError = true;
+ showErrorText = "Error: mesh doesn't have all materials set";
+ //match = false;
+ materialValid[iterator] = false;
+ numMaterialValid--;
+ break;
+ }
+ bool usesftlight = mat.shader.name == ftLightShaderName;
+ bool usesUnlitColor = mat.shader.name == "Unlit/Color";
+ bool usesUnlitTexture = mat.shader.name == "Unlit/Texture";
+ if (!usesftlight && !usesUnlitColor && !usesUnlitTexture)
+ {
+ showError = true;
+ showErrorText = "Warning: material should output unlit color";
+ //match = false;
+ materialValid[iterator] = false;
+ numMaterialValid--;
+ break;
+ }
+ if (intensity > 1 && !usesftlight)
+ {
+ showError = true;
+ showErrorText = "Warning: intensity > 1, but not using Bakery Light shader";
+ //match = false;
+ break;
+ }
+ var mclr = mat.HasProperty("_Color") ? mat.color : Color.white;
+ float eps = 0.5f/255.0f;
+ if (Mathf.Abs(mclr.r - clr.r) > eps || Mathf.Abs(mclr.g - clr.g) > eps || Mathf.Abs(mclr.b - clr.b) > eps)
+ {
+ showError = true;
+ showErrorText = "Error: light color doesn't match material color";
+ //match = false;
+ break;
+ }
+ if (usesftlight && Mathf.Abs(mat.GetFloat("intensity") - intensity) > 0.001f)
+ {
+ showError = true;
+ showErrorText = "Error: light intensity doesn't match material intensity";
+ //match = false;
+ break;
+ }
+ if (ftraceLightTexture.objectReferenceValue == null && mat.HasProperty("_MainTex") && mat.GetTexture("_MainTex")!=null)
+ {
+ showError = true;
+ showErrorText = "Error: textures don't match";
+ //match = false;
+ break;
+ }
+ if (ftraceLightTexture.objectReferenceValue != null && (!mat.HasProperty("_MainTex") || mat.GetTexture("_MainTex") != ftraceLightTexture.objectReferenceValue))
+ {
+ showError = true;
+ showErrorText = "Error: textures don't match";
+ //match = false;
+ break;
+ }
+ }
+
+ //if (match) return;
+ }
+
+
+ if (showError)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField(showErrorText);
+ EditorGUILayout.Space();
+
+ string txt;
+ if (numMaterialValid > 0)
+ {
+ if (isMesh && !isAreaLight)
+ {
+ txt = "Match light to material";
+ }
+ else if (!isMesh && isAreaLight)
+ {
+ txt = "Match lightmapped to area light";
+ }
+ else
+ {
+ txt = "Match lights to meshes/area lights";
+ }
+ if (GUILayout.Button(txt))
+ {
+ //iterator = 0;
+ foreach(BakeryLightMesh selectedLight in targets)
+ {
+ //iterator++;
+ var so = new SerializedObject(selectedLight);
+ InitSerializedProperties(so);
+
+ var mr = selectedLight.GetComponent<MeshRenderer>();
+ var areaLight = selectedLight.GetComponent<Light>();
+ if (mr == null && areaLight == null) continue;
+
+ if (areaLight != null)
+ {
+ if (PlayerSettings.colorSpace != ColorSpace.Linear)
+ {
+ ftraceLightColor.colorValue = areaLight.color;
+ ftraceLightIntensity.floatValue = areaLight.intensity;
+ }
+ else if (!GraphicsSettings.lightsUseLinearIntensity)
+ {
+ float lightR, lightG, lightB, lightInt;
+ GetLinearLightParameters(areaLight, out lightR, out lightG, out lightB, out lightInt);
+ ftraceLightColor.colorValue = new Color(lightR, lightG, lightB);
+ ftraceLightIntensity.floatValue = lightInt;
+ }
+ else
+ {
+ ftraceLightColor.colorValue = areaLight.color;
+ ftraceLightIntensity.floatValue = areaLight.intensity;
+ }
+ ftraceLightCutoff.floatValue = areaLight.range * 1.5f;
+ ftraceLightSelfShadow.boolValue = false;
+ ftraceLightIndirectIntensity.floatValue = areaLight.bounceIntensity;
+ so.ApplyModifiedProperties();
+ continue;
+ }
+
+ var mats = mr.sharedMaterials;
+ if (mats.Length == 0 || mats[0] == null) continue;
+
+ var mat = mats[0];
+ if (mat.shader.name == ftLightShaderName)
+ {
+ ftraceLightTexture.objectReferenceValue = mat.mainTexture;
+ ftraceLightColor.colorValue = mat.color;
+ ftraceLightIntensity.floatValue = mat.GetFloat("intensity");
+ }
+ else if (mat.shader.name == "Unlit/Color")
+ {
+ ftraceLightTexture.objectReferenceValue = null;
+ ftraceLightColor.colorValue = mat.color;
+ ftraceLightIntensity.floatValue = 1;
+ }
+ else if (mat.shader.name == "Unlit/Texture")
+ {
+ ftraceLightTexture.objectReferenceValue = mat.mainTexture;
+ ftraceLightColor.colorValue = Color.white;//mat.color;
+ ftraceLightIntensity.floatValue = 1;
+ }
+ so.ApplyModifiedProperties();
+ }
+ }
+ }
+
+ //if (mats.Length == 0) return;
+ //if (mats[0] == null) return;
+
+ if (isMesh && !isAreaLight)
+ {
+ txt = "Match material to light";
+ }
+ else if (!isMesh && isAreaLight)
+ {
+ txt = "Match area light to lightmapped";
+ }
+ else
+ {
+ txt = "Match meshes/area lights to lightmapped";
+ }
+ if (GUILayout.Button(txt))
+ {
+ foreach(BakeryLightMesh selectedLight in targets)
+ {
+ //iterator++;
+ var so = new SerializedObject(selectedLight);
+ InitSerializedProperties(so);
+
+ var mr = selectedLight.GetComponent<MeshRenderer>();
+ var areaLight = selectedLight.GetComponent<Light>();
+ if (mr == null && areaLight == null) continue;
+
+ if (areaLight != null)
+ {
+ Undo.RecordObject(areaLight, "Change light");
+ if (PlayerSettings.colorSpace != ColorSpace.Linear)
+ {
+ areaLight.color = ftraceLightColor.colorValue;
+ areaLight.intensity = ftraceLightIntensity.floatValue;
+ }
+ else if (!GraphicsSettings.lightsUseLinearIntensity)
+ {
+ var clr = ftraceLightColor.colorValue;
+ float fintensity = ftraceLightIntensity.floatValue;
+ float fr = clr.linear.r;// * fintensity;
+ float fg = clr.linear.g;// * fintensity;
+ float fb = clr.linear.b;// * fintensity;
+
+ fr = Mathf.Pow(fr * fintensity, 1.0f / 2.2f);
+ fg = Mathf.Pow(fg * fintensity, 1.0f / 2.2f);
+ fb = Mathf.Pow(fb * fintensity, 1.0f / 2.2f);
+ float fint = Mathf.Max(Mathf.Max(fr, fg), fb);
+ fr /= fint;
+ fg /= fint;
+ fb /= fint;
+ areaLight.color = new Color(fr, fg, fb);
+ areaLight.intensity = fint;
+ }
+ else
+ {
+ areaLight.color = ftraceLightColor.colorValue;
+ areaLight.intensity = ftraceLightIntensity.floatValue;
+ }
+ areaLight.bounceIntensity = ftraceLightIndirectIntensity.floatValue;
+ continue;
+ }
+
+ var mats = mr.sharedMaterials;
+ if (mats.Length == 0 || mats[0] == null) continue;
+
+ float intensity = ftraceLightIntensity.floatValue;
+
+ var mat = mats[0];
+ Undo.RecordObject(mat, "Change material");
+ if (intensity > 1)
+ {
+ if (mat.shader.name != ftLightShaderName) mat.shader = Shader.Find(ftLightShaderName);
+ mat.color = ftraceLightColor.colorValue;
+ mat.mainTexture = ftraceLightTexture.objectReferenceValue as Texture2D;
+ mat.SetFloat("intensity", intensity);
+ }
+ else
+ {
+ if (ftraceLightTexture.objectReferenceValue == null)
+ {
+ if (mat.shader.name != ftLightShaderName && mat.shader.name != "Unlit/Color") mat.shader = Shader.Find(ftLightShaderName);
+ }
+ else
+ {
+ if (mat.shader.name != ftLightShaderName && mat.shader.name != "Unlit/Texture") mat.shader = Shader.Find(ftLightShaderName);
+ }
+ mat.mainTexture = ftraceLightTexture.objectReferenceValue as Texture2D;
+ if (mat.shader.name == ftLightShaderName)
+ {
+ mat.color = ftraceLightColor.colorValue;
+ mat.SetFloat("intensity", intensity);
+ }
+ else
+ {
+ mat.color = ftraceLightColor.colorValue * intensity;
+ }
+ }
+ }
+ }
+ }
+
+ if (PlayerSettings.colorSpace == ColorSpace.Linear)
+ {
+ if (!GraphicsSettings.lightsUseLinearIntensity)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("Warning: project is not set up to use linear light intensity.");
+ EditorGUILayout.LabelField("GraphicsSettings.lightsUseLinearIntensity should be TRUE.");
+ if (GUILayout.Button("Fix"))
+ {
+ GraphicsSettings.lightsUseLinearIntensity = true;
+ }
+ }
+ else
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("Project is using linear light intensity. This is nice.");
+ if (GUILayout.Button("Change to non-linear"))
+ {
+ GraphicsSettings.lightsUseLinearIntensity = false;
+ }
+ }
+ }
+ }
+}
+
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightMeshInspector.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightMeshInspector.cs.meta
new file mode 100644
index 00000000..d8581f93
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightMeshInspector.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c2b4c5d630c305d44a44bc6a7fb96344
+timeCreated: 1525465024
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightingDataGen.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightingDataGen.cs
new file mode 100644
index 00000000..8147679a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightingDataGen.cs
@@ -0,0 +1,202 @@
+using UnityEditor;
+using UnityEngine;
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+#if UNITY_EDITOR
+
+using UnityEngine.Rendering;
+using System.Reflection;
+
+public class ftLightingDataGen
+{
+ // Generates LightingDataAsset for all lights with baked occlusionMaskChannel
+ public static bool GenerateShadowmaskLightingData(string outName, ref List<Light> lights, bool subtractive)
+ {
+ ftRenderLightmap.DebugLogInfo("Generating LightingDataAsset for " + lights.Count + " lights");
+
+ bool success = true;
+ try
+ {
+ PropertyInfo inspectorModeInfo = typeof(SerializedObject).GetProperty("inspectorMode", BindingFlags.NonPublic | BindingFlags.Instance);
+ var edPath = ftLightmaps.GetEditorPath();
+#if UNITY_2017_1_OR_NEWER
+ var bytesP0 = File.ReadAllBytes(edPath + "lightingDataChunks/LightingData_2017_1_part0.bin");
+ var bytesP1 = File.ReadAllBytes(edPath + "lightingDataChunks/LightingData_2017_1_part1.bin");
+ var bytesP2 = File.ReadAllBytes(edPath + "lightingDataChunks/LightingData_2017_1_part2.bin");
+ var bytesP3 = File.ReadAllBytes(edPath + "lightingDataChunks/LightingData_2017_1_part3.bin");
+#else
+ var bytesP0 = File.ReadAllBytes(edPath + "lightingDataChunks/LightingData_5_6_part0.bin");
+ var bytesP1 = File.ReadAllBytes(edPath + "lightingDataChunks/LightingData_5_6_part1.bin");
+ var bytesP2 = File.ReadAllBytes(edPath + "lightingDataChunks/LightingData_5_6_part2.bin");
+ var bytesP3 = File.ReadAllBytes(edPath + "lightingDataChunks/LightingData_5_6_part3.bin");
+#endif
+ var f = new BinaryWriter(File.Open(outName, FileMode.Create));
+ f.Write(bytesP0);
+#if UNITY_2017_1_OR_NEWER
+ f.Write(52 + 28 * lights.Count - 28);
+ f.Write(bytesP1);
+ f.Write(572 + 28 * lights.Count - 28);
+#else
+ f.Write(160 + 28 * lights.Count - 28);
+ f.Write(bytesP1);
+ f.Write(552 + 28 * lights.Count - 28);
+#endif
+ f.Write(bytesP2);
+ f.Write(lights.Count);
+ for(int i=0; i<lights.Count; i++)
+ {
+ var so = new SerializedObject(lights[i]);
+ inspectorModeInfo.SetValue(so, InspectorMode.Debug, null);
+ long fileid = so.FindProperty("m_LocalIdentfierInFile").longValue;
+ f.Write(fileid);
+ f.Write(0);
+ f.Write(0);
+ }
+ f.Write(lights.Count);
+ for(int i=0; i<lights.Count; i++)
+ {
+ var so = new SerializedObject(lights[i]);
+ var channel = so.FindProperty("m_BakingOutput").FindPropertyRelative("occlusionMaskChannel").intValue;
+
+ int val1 = subtractive ? 0 : -1;
+ int val2 = subtractive ? 131076 : 131080;
+
+ f.Write(val1);
+ f.Write(channel);
+ f.Write(val2);
+ }
+ f.Write(bytesP3);
+ f.Close();
+ }
+ catch
+ {
+ ftRenderLightmap.DebugLogError("Failed to generate LightingDataAsset");
+ success = false;
+ throw;
+ }
+ return success;
+ }
+
+#if UNITY_2017_3_OR_NEWER
+#else
+ // Patches existing LightingDataAsset shadowmask channels
+ public static bool PatchShadowmaskLightingData(string inName, string outName, ref Dictionary<long,long> inID2OutID, ref Dictionary<long,int> outIDChannel, bool subtractive)
+ {
+ try
+ {
+ var bytesIn = File.ReadAllBytes(inName);
+
+ var lightCount = inID2OutID.Count;
+ if (lightCount == 0) return false;
+
+ var inIDsAsBytes = new byte[lightCount][];
+ var outIDsAsBytes = new byte[lightCount][];
+ var outChannelsAsBytes = new byte[lightCount][];
+ var matches = new int[lightCount];
+ int counter = 0;
+ foreach(var pair in inID2OutID)
+ {
+ inIDsAsBytes[counter] = BitConverter.GetBytes(pair.Key);
+ outIDsAsBytes[counter] = BitConverter.GetBytes(pair.Value);
+ outChannelsAsBytes[counter] = BitConverter.GetBytes(outIDChannel[pair.Value]);
+ counter++;
+ }
+
+ int replaced = 0;
+ int firstAddressReplaced = bytesIn.Length;
+ var lightsAsWritten = new int[lightCount];
+ int lightsAsWrittenCounter = 0;
+ for(int i=0; i<bytesIn.Length; i++)
+ {
+ var val = bytesIn[i];
+ for(int j=0; j<lightCount; j++)
+ {
+ var expectedVal = matches[j] >= 8 ? 0 : inIDsAsBytes[j][matches[j]];
+ if (val == expectedVal)
+ {
+ matches[j]++;
+ if (matches[j] == 16)
+ {
+ // Matched long + 8 zeros
+ // Replace fileid
+ for(int k=0; k<8; k++)
+ {
+ //Debug.LogError("Matched " + inIDsAsBytes[j][k]+" "+outIDsAsBytes[j][k]);
+ bytesIn[i - 15 + k] = outIDsAsBytes[j][k];
+ }
+ matches[j] = 0;
+ replaced++;
+
+ int addr = i - 15;
+ if (addr < firstAddressReplaced) firstAddressReplaced = addr;
+
+ lightsAsWritten[lightsAsWrittenCounter] = j;
+ lightsAsWrittenCounter++;
+ }
+ }
+ else
+ {
+ matches[j] = 0;
+ }
+ }
+ }
+
+ if (firstAddressReplaced == bytesIn.Length)
+ {
+ ftRenderLightmap.DebugLogError("Failed to patch LightingDataAsset: unabled to replace light IDs");
+ return false;
+ }
+
+ if (lightsAsWrittenCounter != lightCount)
+ {
+ ftRenderLightmap.DebugLogError("Failed to patch LightingDataAsset: light count differs in temp/real scenes (" + lightsAsWrittenCounter + " vs " + lightCount + ")");
+ return false;
+ }
+
+ // IDs are patched. Now replace channels.
+
+ for(int i=0; i<lightsAsWrittenCounter; i++)
+ {
+ int id = lightsAsWritten[i];
+ var channelBytes = outChannelsAsBytes[id];
+ int channelStartAddr = firstAddressReplaced + 16 * lightCount + 4 + 12 * i + 4;
+ if (subtractive)
+ {
+ for(int j=0; j<4; j++)
+ {
+ bytesIn[channelStartAddr + j - 4] = 0;
+ }
+ }
+ for(int j=0; j<4; j++)
+ {
+ bytesIn[channelStartAddr + j] = channelBytes[j];
+ }
+ if (subtractive)
+ {
+ var val2 = BitConverter.GetBytes(131076);
+ for(int j=0; j<4; j++)
+ {
+ bytesIn[channelStartAddr + j + 4] = val2[j];
+ }
+ }
+ }
+
+ var f = new BinaryWriter(File.Open(outName, FileMode.Create));
+ f.Write(bytesIn);
+ f.Close();
+ ftRenderLightmap.DebugLogInfo("PatchShadowmaskLightingData: patched " + replaced + " lights");
+ }
+ catch
+ {
+ ftRenderLightmap.DebugLogError("Failed to patch LightingDataAsset");
+ return false;
+ }
+
+ return true;
+ }
+#endif
+}
+
+#endif
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightingDataGen.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightingDataGen.cs.meta
new file mode 100644
index 00000000..89bdc063
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightingDataGen.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 04a9623f45d46d64b8d852e0b0ea9a81
+timeCreated: 1535032797
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmappedPrefabInspector.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmappedPrefabInspector.cs
new file mode 100644
index 00000000..1a31640e
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmappedPrefabInspector.cs
@@ -0,0 +1,117 @@
+using UnityEditor;
+using UnityEngine;
+
+[CustomEditor(typeof(BakeryLightmappedPrefab))]
+[CanEditMultipleObjects]
+public class ftLightmappedPrefabInspector : UnityEditor.Editor
+{
+ bool allPrefabsGood = true;
+ SerializedProperty isEnabled;
+
+ void Refresh(BakeryLightmappedPrefab selected)
+ {
+ allPrefabsGood = selected.IsValid() && allPrefabsGood;
+ }
+
+ void OnPrefabInstanceUpdate(GameObject go)
+ {
+ allPrefabsGood = true;
+ foreach(BakeryLightmappedPrefab selected in targets)
+ {
+ //if (go != selected.gameObject) continue;
+ Refresh(selected);
+ }
+ }
+
+ void OnEnable()
+ {
+ allPrefabsGood = true;
+ foreach(BakeryLightmappedPrefab selected in targets)
+ {
+ Refresh(selected);
+ }
+ PrefabUtility.prefabInstanceUpdated += OnPrefabInstanceUpdate;
+ isEnabled = serializedObject.FindProperty("enableBaking");
+ }
+
+ void OnDisable()
+ {
+ PrefabUtility.prefabInstanceUpdated -= OnPrefabInstanceUpdate;
+ }
+
+ public ftLightmapsStorage FindPrefabStorage(BakeryLightmappedPrefab pref)
+ {
+ var p = pref.gameObject;
+ var bdataName = "BakeryPrefabLightmapData";
+ var pstoreT = p.transform.Find(bdataName);
+ if (pstoreT == null)
+ {
+ var pstoreG = new GameObject();
+ pstoreG.name = bdataName;
+ pstoreT = pstoreG.transform;
+ pstoreT.parent = p.transform;
+ }
+ var pstore = pstoreT.gameObject.GetComponent<ftLightmapsStorage>();
+ if (pstore == null) pstore = pstoreT.gameObject.AddComponent<ftLightmapsStorage>();
+ return pstore;
+ }
+
+ public override void OnInspectorGUI() {
+
+ serializedObject.Update();
+ var prev = isEnabled.boolValue;
+ EditorGUILayout.PropertyField(isEnabled, new GUIContent("Enable baking", "Prefab contents will be patched after baking if this checkbox is on. Patched prefab will be lightmapped when instantiated in any scene."));
+ serializedObject.ApplyModifiedProperties();
+
+ if (isEnabled.boolValue != prev)
+ {
+ allPrefabsGood = true;
+ foreach(BakeryLightmappedPrefab selected in targets)
+ {
+ selected.enableBaking = isEnabled.boolValue;
+ Refresh(selected);
+ }
+ }
+
+ if (allPrefabsGood)
+ {
+ EditorGUILayout.LabelField("Prefab connection: OK");
+ }
+ else
+ {
+ foreach(BakeryLightmappedPrefab selected in targets)
+ {
+ if (selected.errorMessage.Length > 0) EditorGUILayout.LabelField("Error: " + selected.errorMessage);
+ }
+ }
+
+ if (GUILayout.Button("Load render settings from prefab"))
+ {
+ if (EditorUtility.DisplayDialog("Bakery", "Change current render settings to prefab?", "OK", "Cancel"))
+ {
+ var storage = ftRenderLightmap.FindRenderSettingsStorage();
+ foreach(BakeryLightmappedPrefab pref in targets)
+ {
+ var prefabStorage = FindPrefabStorage(pref);
+ ftLightmapsStorage.CopySettings(prefabStorage, storage);
+ }
+ var instance = (ftRenderLightmap)EditorWindow.GetWindow(typeof(ftRenderLightmap));
+ if (instance != null) instance.LoadRenderSettings();
+ }
+ }
+
+ if (GUILayout.Button("Save current render settings to prefab"))
+ {
+ if (EditorUtility.DisplayDialog("Bakery", "Save current render settings to prefab?", "OK", "Cancel"))
+ {
+ var storage = ftRenderLightmap.FindRenderSettingsStorage();
+ foreach(BakeryLightmappedPrefab pref in targets)
+ {
+ var prefabStorage = FindPrefabStorage(pref);
+ ftLightmapsStorage.CopySettings(storage, prefabStorage);
+ }
+ }
+ }
+ }
+}
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmappedPrefabInspector.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmappedPrefabInspector.cs.meta
new file mode 100644
index 00000000..2f55269d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmappedPrefabInspector.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: a080b80faca4b9a4fa0a43361585c4be
+timeCreated: 1541703652
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmapsStorageInspector.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmapsStorageInspector.cs
new file mode 100644
index 00000000..8a5ef0a8
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmapsStorageInspector.cs
@@ -0,0 +1,29 @@
+
+using UnityEditor;
+using UnityEngine;
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+
+[CustomEditor(typeof(ftLightmapsStorage))]
+public class ftLightmapsStorageInspector : UnityEditor.Editor
+{
+ static bool showDebug = false;
+
+ public override void OnInspectorGUI() {
+
+ EditorGUILayout.LabelField("This object stores Bakery lightmapping data");
+
+ if (showDebug)
+ {
+ if (GUILayout.Button("Hide debug info")) showDebug = false;
+ DrawDefaultInspector();
+ }
+ else
+ {
+ if (GUILayout.Button("Show debug info")) showDebug = true;
+ }
+ }
+}
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmapsStorageInspector.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmapsStorageInspector.cs.meta
new file mode 100644
index 00000000..a08b0777
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftLightmapsStorageInspector.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 3ebd176ebc8a2304c84bc65c23bbecd6
+timeCreated: 1541939494
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftModelPostProcessor.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftModelPostProcessor.cs
new file mode 100644
index 00000000..e4b165fe
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftModelPostProcessor.cs
@@ -0,0 +1,418 @@
+using UnityEngine;
+using UnityEditor;
+using UnityEditor.SceneManagement;
+using System.IO;
+using System.Collections.Generic;
+
+public class ftModelPostProcessorInternal : AssetPostprocessor
+{
+ public virtual void UnwrapXatlas(Mesh m, UnwrapParam param)
+ {
+ }
+}
+
+public partial class ftModelPostProcessor : ftModelPostProcessorInternal
+{
+ public static bool unwrapError = false;
+ public static string lastUnwrapErrorAsset = "";
+
+ // Deprecated but leave it for now just in case
+ public class ftSavedPadding : ScriptableObject
+ {
+ [SerializeField]
+ public ftGlobalStorage.AdjustedMesh data;
+ }
+
+ static ftGlobalStorage storage;
+ UnwrapParam uparams;
+ const int res = 1024;
+ static Material mat;
+ public static RenderTexture rt;
+ public static Texture2D tex;
+
+ static Dictionary<string, bool> assetHasPaddingAdjustment = new Dictionary<string, bool>();
+ static Dictionary<string, ftSavedPadding2> assetSavedPaddingAdjustment = new Dictionary<string, ftSavedPadding2>();
+
+#if UNITY_2017_1_OR_NEWER
+ bool deserializedSuccess = false;
+ ftGlobalStorage.AdjustedMesh deserialized;
+#endif
+
+ public static double GetTime()
+ {
+ return (System.DateTime.Now.Ticks / System.TimeSpan.TicksPerMillisecond) / 1000.0;
+ }
+
+ public static void Init()
+ {
+ storage = ftLightmaps.GetGlobalStorage();
+
+ //ftLightmaps.AddTag("BakeryProcessed");
+ }
+
+ void OnPreprocessModel()
+ {
+ Init();
+
+ assetHasPaddingAdjustment[assetPath] = false;
+ assetSavedPaddingAdjustment[assetPath] = null;
+
+ ModelImporter importer = (ModelImporter)assetImporter;
+
+ //if (storage == null) return;
+ bool hasGlobalPaddingAdjustment = (storage != null && storage.modifiedAssetPathList.IndexOf(assetPath) >= 0);
+ bool hasGlobalPaddingAdjustment2 = false;
+#if UNITY_2017_1_OR_NEWER
+ var props = importer.extraUserProperties;
+ for(int p=0; p<props.Length; p++)
+ {
+ if (props[p].Substring(0,7) == "#BAKERY")
+ {
+ hasGlobalPaddingAdjustment2 = true;
+ break;
+ }
+ }
+#endif
+ var savedAdjustment = AssetDatabase.LoadAssetAtPath(
+ Path.GetDirectoryName(assetPath) + "/" + Path.GetFileNameWithoutExtension(assetPath) + "_padding.asset", typeof(ftSavedPadding2)) as ftSavedPadding2;
+
+ if (!hasGlobalPaddingAdjustment && !hasGlobalPaddingAdjustment2 && savedAdjustment == null) return;
+
+ assetHasPaddingAdjustment[assetPath] = importer.generateSecondaryUV;
+ importer.generateSecondaryUV = false; // disable built-in unwrapping for models with padding adjustment
+ assetSavedPaddingAdjustment[assetPath] = savedAdjustment;
+ }
+
+ void OnPostprocessModel(GameObject g)
+ {
+ ModelImporter importer = (ModelImporter)assetImporter;
+ if (importer.generateSecondaryUV || assetHasPaddingAdjustment[assetPath])
+ {
+ if (!importer.generateSecondaryUV)
+ {
+ importer.generateSecondaryUV = true; // set "generate lightmap UVs" checkbox back
+ EditorUtility.SetDirty(importer);
+ }
+
+ // Auto UVs: Adjust UV padding per mesh
+ //if (!storage.modifiedAssetPathList.Contains(assetPath) && g.tag == "BakeryProcessed") return;
+ //if (ftLightmaps.IsModelProcessed(assetPath)) return;
+
+ //g.tag = "BakeryProcessed";
+ var saved = assetSavedPaddingAdjustment[assetPath];
+ if (saved != null)
+ {
+ Debug.Log("Bakery: processing auto-unwrapped asset (saved UV padding) " + assetPath);
+ }
+ else
+ {
+ Debug.Log("Bakery: processing auto-unwrapped asset " + assetPath);
+ }
+ if (storage != null) ftLightmaps.MarkModelProcessed(assetPath, true);
+
+ uparams = new UnwrapParam();
+ UnwrapParam.SetDefaults(out uparams);
+ uparams.angleError = importer.secondaryUVAngleDistortion * 0.01f;
+ uparams.areaError = importer.secondaryUVAreaDistortion * 0.01f;
+ uparams.hardAngle = importer.secondaryUVHardAngle;
+
+#if UNITY_2017_1_OR_NEWER
+ deserializedSuccess = false;
+ var props = importer.extraUserProperties;
+ for(int p=0; p<props.Length; p++)
+ {
+ if (props[p].Substring(0,7) == "#BAKERY")
+ {
+ var json = props[p].Substring(7);
+ deserialized = JsonUtility.FromJson<ftGlobalStorage.AdjustedMesh>(json);
+ deserializedSuccess = true;
+ break;
+ }
+ }
+#endif
+ if (storage != null) storage.InitModifiedMeshMap(assetPath);
+
+ var tt = GetTime();
+ AdjustUV(g.transform, saved);
+ Debug.Log("UV adjustment time: " + (GetTime() - tt));
+ }
+ else
+ {
+ if (storage == null) return;
+
+ Debug.Log("Bakery: checking for UV overlaps in " + assetPath);
+
+ //if (g.tag == "BakeryProcessed") g.tag = "";
+ ftLightmaps.MarkModelProcessed(assetPath, true);//false);
+
+ // Manual UVs: check if overlapping
+ CheckUVOverlap(g, assetPath);
+ }
+
+ if (g.tag == "BakeryProcessed") g.tag = ""; // remove legacy mark
+ }
+
+ public static bool InitOverlapCheck()
+ {
+ rt = new RenderTexture(res, res, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear);
+ tex = new Texture2D(res, res, TextureFormat.ARGB32, false, true);
+ var shdr = Shader.Find("Hidden/ftOverlapTest");
+ if (shdr == null)
+ {
+ var bakeryRuntimePath = ftLightmaps.GetRuntimePath();
+ shdr = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftOverlapTest.shader", typeof(Shader)) as Shader;
+ if (shdr == null)
+ {
+ Debug.Log("No overlap testing shader present");
+ return false;
+ }
+ }
+ mat = new Material(shdr);
+ return true;
+ }
+
+ // -1 = No UVs
+ // 0 = no overlaps
+ // > 0 = overlapping pixels count
+ public static int DoOverlapCheck(GameObject g, bool deep)
+ {
+ int overlap = -1;
+ int overlapCounter = 0;
+
+ Graphics.SetRenderTarget(rt);
+ GL.Clear(false, true, new Color(0,0,0,0));
+ mat.SetPass(0);
+
+ bool hasUV1 = RenderMeshes(g.transform, deep);
+ if (hasUV1)
+ {
+ tex.ReadPixels(new Rect(0,0,res,res), 0, 0, false);
+ tex.Apply();
+
+ var bytes = tex.GetRawTextureData();
+ overlap = 0;
+ for(int i=0; i<bytes.Length; i++)
+ {
+ if (bytes[i] > 1)
+ {
+ overlapCounter++;
+ if (overlapCounter > 256) // TODO: better check
+ {
+ overlap = 1;
+ break;
+ }
+ }
+ }
+ }
+
+ Graphics.SetRenderTarget(null);
+
+ return overlap == 1 ? overlapCounter : overlap;
+ }
+
+ public static void EndOverlapCheck()
+ {
+ if (rt != null) rt.Release();
+ if (tex != null) Object.DestroyImmediate(tex);
+ }
+
+ public static void CheckUVOverlap(GameObject g, string assetPath)
+ {
+ bool canCheck = InitOverlapCheck();
+ if (!canCheck) return;
+
+ int overlap = DoOverlapCheck(g, true);
+ EndOverlapCheck();
+
+ if (overlap != 1 && overlap > 0)
+ {
+ Debug.LogWarning("[Bakery warning] " + overlap + " pixels overlap: " + assetPath);
+ }
+
+ //var index = storage.assetList.IndexOf(assetPath);
+ var index = storage.assetList.IndexOf(assetPath);
+ var prevOverlap = -100;
+ if (index < 0)
+ {
+ //index = storage.assetList.Count;
+ //storage.assetList.Add(assetPath);
+ index = storage.assetList.Count;
+ storage.assetList.Add(assetPath);
+ storage.uvOverlapAssetList.Add(overlap);
+ }
+ else
+ {
+ prevOverlap = storage.uvOverlapAssetList[index];
+ storage.assetList[index] = assetPath;
+ storage.uvOverlapAssetList[index] = overlap;
+ }
+
+ if (prevOverlap != overlap)
+ {
+ EditorUtility.SetDirty(storage);
+ EditorSceneManager.MarkAllScenesDirty();
+ }
+ }
+
+ bool ValidateMesh(Mesh m, ftGlobalStorage.Unwrapper unwrapper)
+ {
+#if UNITY_2017_3_OR_NEWER
+ #if UNITY_2018_4_OR_NEWER
+ // Bug was fixed in 2018.3.5, but the closest define is for 2018.4
+ #else
+ if (m.indexFormat == UnityEngine.Rendering.IndexFormat.UInt32 && unwrapper == ftGlobalStorage.Unwrapper.Default)
+ {
+ Debug.LogError("Can't adjust UV padding for " + m.name + " due to Unity bug. Please set Index Format to 16-bit on the asset or use xatlas.");
+ return false;
+ }
+ #endif
+#endif
+ return true;
+ }
+
+ void AdjustUV(Transform t, ftSavedPadding2 saved = null)
+ {
+ var mf = t.GetComponent<MeshFilter>();
+ if (mf != null && mf.sharedMesh != null)
+ {
+ var m = mf.sharedMesh;
+ var nm = m.name;
+ int modifiedMeshID;
+
+ if (saved != null)
+ {
+ // Get padding from asset
+ int mindex = saved.data.meshName.IndexOf(nm);
+ if (mindex < 0)
+ {
+ //Debug.LogError("Unable to find padding value for mesh " + nm);
+ // This is fine. Apparently caused by parts of models being lightmapped,
+ // while other parts are not baked, yet still a part of the model.
+ }
+ else
+ {
+ var padding = saved.data.padding[mindex];
+
+ ftGlobalStorage.Unwrapper unwrapper = ftGlobalStorage.Unwrapper.Default;
+ if (saved.data.unwrapper != null && saved.data.unwrapper.Count > mindex)
+ unwrapper = (ftGlobalStorage.Unwrapper)saved.data.unwrapper[mindex];
+
+ if (!ValidateMesh(m, unwrapper)) return;
+
+ uparams.packMargin = padding/1024.0f;
+ Unwrap(m, uparams, unwrapper);
+ }
+ }
+#if UNITY_2017_1_OR_NEWER
+ else if (deserializedSuccess && deserialized.meshName != null && deserialized.padding != null)
+ {
+ // Get padding from extraUserProperties (new)
+ int mindex = deserialized.meshName.IndexOf(nm);
+ if (mindex < 0)
+ {
+ //Debug.LogError("Unable to find padding value for mesh " + nm);
+ // This is fine. Apparently caused by parts of models being lightmapped,
+ // while other parts are not baked, yet still a part of the model.
+ }
+ else
+ {
+ var padding = deserialized.padding[mindex];
+
+ ftGlobalStorage.Unwrapper unwrapper = ftGlobalStorage.Unwrapper.Default;
+ if (deserialized.unwrapper != null && deserialized.unwrapper.Count > mindex)
+ unwrapper = (ftGlobalStorage.Unwrapper)deserialized.unwrapper[mindex];
+
+ if (!ValidateMesh(m, unwrapper)) return;
+
+ uparams.packMargin = padding/1024.0f;
+ Unwrap(m, uparams, unwrapper);
+ }
+ }
+ else
+ {
+ // Get padding from GlobalStorage (old)
+ if (storage != null && storage.modifiedMeshMap.TryGetValue(nm, out modifiedMeshID))
+ {
+ var padding = storage.modifiedMeshPaddingArray[modifiedMeshID];
+
+ ftGlobalStorage.Unwrapper unwrapper = ftGlobalStorage.Unwrapper.Default;
+ if (storage.modifiedMeshUnwrapperArray != null && storage.modifiedMeshUnwrapperArray.Count > modifiedMeshID)
+ unwrapper = (ftGlobalStorage.Unwrapper)storage.modifiedMeshUnwrapperArray[modifiedMeshID];
+
+ if (!ValidateMesh(m, unwrapper)) return;
+
+ uparams.packMargin = padding/1024.0f;
+ Unwrap(m, uparams, unwrapper);
+ }
+ }
+#else
+ else if (storage != null && storage.modifiedMeshMap.TryGetValue(nm, out modifiedMeshID))
+ {
+ var padding = storage.modifiedMeshPaddingArray[modifiedMeshID];
+
+ ftGlobalStorage.Unwrapper unwrapper = ftGlobalStorage.Unwrapper.Default;
+ if (storage.modifiedMeshUnwrapperArray != null && storage.modifiedMeshUnwrapperArray.Count > modifiedMeshID)
+ unwrapper = (ftGlobalStorage.Unwrapper)storage.modifiedMeshUnwrapperArray[modifiedMeshID];
+
+ if (!ValidateMesh(m, unwrapper)) return;
+
+ uparams.packMargin = padding/1024.0f;
+ Unwrap(m, uparams, unwrapper);
+ }
+#endif
+ }
+
+ // Recurse
+ foreach (Transform child in t)
+ AdjustUV(child, saved);
+ }
+
+ static bool RenderMeshes(Transform t, bool deep)
+ {
+ var mf = t.GetComponent<MeshFilter>();
+ if (mf != null && mf.sharedMesh != null)
+ {
+ var m = mf.sharedMesh;
+ //var nm = m.name;
+
+ bool noUV2 = (m.uv2 == null || (m.uv2.Length == 0 && m.vertexCount != 0));
+ bool noUV1 = (m.uv == null || (m.uv.Length == 0 && m.vertexCount != 0));
+
+ if (noUV1 && noUV2) return false;
+
+ mat.SetFloat("uvSet", noUV2 ? 0.0f : 1.0f);
+ mat.SetPass(0);
+
+ Graphics.DrawMeshNow(m, Vector3.zero, Quaternion.identity);
+ }
+
+ if (!deep) return true;
+
+ // Recurse
+ foreach (Transform child in t)
+ RenderMeshes(child, deep);
+
+ return true;
+ }
+
+ void Unwrap(Mesh m, UnwrapParam uparams, ftGlobalStorage.Unwrapper unwrapper)
+ {
+ if (unwrapper == ftGlobalStorage.Unwrapper.xatlas)
+ {
+ UnwrapXatlas(m, uparams);
+ }
+ else
+ {
+ var tt = GetTime();
+ Unwrapping.GenerateSecondaryUVSet(m, uparams);
+ if (m.uv2 == null || m.uv2.Length == 0)
+ {
+ Debug.LogError("Unity failed to unwrap mesh. Options: a) Use 32-bit indices and Unity >= 2018.4. b) Split it into multiple chunks. c) Disable 'Adjust UV Padding'.");
+ unwrapError = true;
+ lastUnwrapErrorAsset = assetPath;
+ }
+ Debug.Log("Unity unwrap time: " + (GetTime() - tt));
+ }
+ }
+}
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftModelPostProcessor.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftModelPostProcessor.cs.meta
new file mode 100644
index 00000000..b4c82065
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftModelPostProcessor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 958d625f263bc9e468b7ea865c491cef
+timeCreated: 1528661707
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftPointLightInspector.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftPointLightInspector.cs
new file mode 100644
index 00000000..c1c65f41
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftPointLightInspector.cs
@@ -0,0 +1,835 @@
+
+using UnityEditor;
+using UnityEngine;
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using UnityEngine.Rendering;
+
+[CustomEditor(typeof(BakeryPointLight))]
+[CanEditMultipleObjects]
+public class ftPointLightInspector : UnityEditor.Editor
+{
+ SerializedProperty ftraceLightColor;
+ SerializedProperty ftraceLightIntensity;
+ SerializedProperty ftraceLightShadowSpread;
+ SerializedProperty ftraceLightCutoff;
+ SerializedProperty ftraceLightSamples;
+ SerializedProperty ftraceLightProj;
+ SerializedProperty ftraceLightTexture;
+ SerializedProperty ftraceLightTexture2D;
+ SerializedProperty ftraceLightAngle;
+ SerializedProperty ftraceLightIES;
+ SerializedProperty ftraceLightBitmask;
+ SerializedProperty ftraceLightBakeToIndirect;
+ SerializedProperty ftraceLightRealisticFalloff;
+ SerializedProperty ftraceLightShadowmask;
+ SerializedProperty ftraceLightIndirectIntensity;
+ SerializedProperty ftraceLightFalloffMinRadius;
+ SerializedProperty ftraceLightInnerAngle;
+ SerializedProperty ftraceShadowmaskGroupID;
+ SerializedProperty ftraceDirectionMode;
+
+ UnityEngine.Object spotCookieTexture;
+
+ ftLightmapsStorage storage;
+
+ bool isHDRP = false;
+ bool isLWRP = false;
+
+ int projModeCached = -1;
+ int texCached = -1;
+ int tex2DCached = -1;
+ int iesCached = -1;
+
+ static string[] selStrings = new string[] {"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16",
+ "17","18","19","20","21","22","23","24","25","26","27","28","29","30"};//,"31"};
+
+ void InitSerializedProperties(SerializedObject obj)
+ {
+ ftraceLightColor = obj.FindProperty("color");
+ ftraceLightIntensity = obj.FindProperty("intensity");
+ ftraceLightIndirectIntensity = obj.FindProperty("indirectIntensity");
+ ftraceLightShadowSpread = obj.FindProperty("shadowSpread");
+ ftraceLightCutoff = obj.FindProperty("cutoff");
+ ftraceLightAngle = obj.FindProperty("angle");
+ ftraceLightInnerAngle = obj.FindProperty("innerAngle");
+ ftraceLightSamples = obj.FindProperty("samples");
+ ftraceLightProj = obj.FindProperty("projMode");
+ ftraceLightTexture = obj.FindProperty("cubemap");
+ ftraceLightTexture2D = obj.FindProperty("cookie");
+ ftraceLightIES = obj.FindProperty("iesFile");
+ ftraceLightBitmask = obj.FindProperty("bitmask");
+ ftraceLightBakeToIndirect = obj.FindProperty("bakeToIndirect");
+ ftraceLightRealisticFalloff = obj.FindProperty("realisticFalloff");
+ ftraceLightShadowmask = obj.FindProperty("shadowmask");
+ ftraceLightFalloffMinRadius = obj.FindProperty("falloffMinRadius");
+ ftraceShadowmaskGroupID = obj.FindProperty("shadowmaskGroupID");
+ ftraceDirectionMode = obj.FindProperty("directionMode");
+
+ var hdrpLight = (target as BakeryPointLight).GetComponent("HDAdditionalLightData");
+ isHDRP = hdrpLight != null;
+
+#if UNITY_2018_1_OR_NEWER
+
+#if UNITY_2019_3_OR_NEWER
+ var rpipe = GraphicsSettings.currentRenderPipeline;
+#else
+ var rpipe = GraphicsSettings.renderPipelineAsset;
+#endif
+
+ if (rpipe != null && (rpipe.GetType().Name.StartsWith("Lightweight") || rpipe.GetType().Name.StartsWith("Universal")))
+ {
+ isLWRP = true;
+ }
+#endif
+ }
+
+ void OnEnable()
+ {
+ InitSerializedProperties(serializedObject);
+
+ if (spotCookieTexture == null)
+ {
+ var bakeryRuntimePath = ftLightmaps.GetRuntimePath();
+ spotCookieTexture = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftUnitySpotTexture.bmp", typeof(Texture2D));
+ }
+ }
+
+ void GetLinearLightParameters(Light light, out float lightR, out float lightG, out float lightB, out float lightInt)
+ {
+ if (PlayerSettings.colorSpace != ColorSpace.Linear)
+ {
+ lightInt = light.intensity;
+ lightR = light.color.r;
+ lightG = light.color.g;
+ lightB = light.color.b;
+ return;
+ }
+
+ if (!GraphicsSettings.lightsUseLinearIntensity)
+ {
+ lightR = Mathf.Pow(light.color.r * light.intensity, 2.2f);
+ lightG = Mathf.Pow(light.color.g * light.intensity, 2.2f);
+ lightB = Mathf.Pow(light.color.b * light.intensity, 2.2f);
+ lightInt = Mathf.Max(Mathf.Max(lightR, lightG), lightB);
+ lightR /= lightInt;
+ lightG /= lightInt;
+ lightB /= lightInt;
+ }
+ else
+ {
+ lightInt = light.intensity;
+ lightR = light.color.linear.r;
+ lightG = light.color.linear.g;
+ lightB = light.color.linear.b;
+ }
+ }
+
+ bool CompareWithLWRP(Light l, ref string why)
+ {
+ if (l.type == LightType.Spot)
+ {
+ var so = new SerializedObject(l);
+ if (so == null)
+ {
+ why = "no SerializedObject";
+ return false;
+ }
+ if (ftraceLightProj.intValue != (int)BakeryPointLight.ftLightProjectionMode.Cone)
+ {
+ why = "spot shape doesn't match.";
+ return false;
+ }
+ SerializedProperty innerAngle = so.FindProperty("m_InnerSpotAngle");
+ if (innerAngle == null)
+ {
+ why = "no m_InnerSpotAngle";
+ return false;
+ }
+ if (Mathf.Abs(((ftraceLightInnerAngle.floatValue * 0.01f) * ftraceLightAngle.floatValue) - innerAngle.floatValue) > 0.001f)
+ {
+ why = "inner angle doesn't match.";
+ return false;
+ }
+ }
+ return true;
+ }
+
+ bool CompareWithHDRP(Light l, ref string why)
+ {
+ var hdrpLight = l.GetComponent("HDAdditionalLightData");
+ if (hdrpLight == null)
+ {
+ why = "no HDAdditionalLightData";
+ return false;
+ }
+ var so = new SerializedObject(hdrpLight);
+ if (so == null)
+ {
+ why = "no SerializedObject";
+ return false;
+ }
+ SerializedProperty hdrpLightTypeExtent = so.FindProperty("m_PointlightHDType");
+ if (hdrpLightTypeExtent == null)
+ {
+ why = "no m_PointlightHDType";
+ return false;
+ }
+
+ int extendedLightType = hdrpLightTypeExtent.intValue;
+ if (extendedLightType != 0)
+ {
+ why = "Only punctual sounrces are supported.\nUse rectangle/tube geometry with Light Mesh instead.";
+ return false;
+ }
+
+ if (l.type == LightType.Spot)
+ {
+ SerializedProperty hdrpLightSpotShape = so.FindProperty("m_SpotLightShape");
+ if (hdrpLightSpotShape == null)
+ {
+ why = "no m_SpotLightShape";
+ return false;
+ }
+ SerializedProperty hdrpLightInnerAngle = so.FindProperty("m_InnerSpotPercent");
+ if (hdrpLightInnerAngle == null)
+ {
+ why = "no m_InnerSpotPercent";
+ return false;
+ }
+
+ int spotShape = hdrpLightSpotShape.intValue;
+ if (spotShape != 0)
+ {
+ why = "Only cone spotlights are supported.";
+ return false;
+ }
+ if (ftraceLightProj.intValue != (int)BakeryPointLight.ftLightProjectionMode.Cone)
+ {
+ why = "spot shape doesn't match.";
+ return false;
+ }
+ if (Mathf.Abs(ftraceLightInnerAngle.floatValue - hdrpLightInnerAngle.floatValue) > 0.001f)
+ {
+ why = "inner angle doesn't match.";
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ void MatchToLWRPLight(Light l)
+ {
+ ftraceLightRealisticFalloff.boolValue = true;
+ ftraceLightFalloffMinRadius.floatValue = 0.01f;
+ if (l.type == LightType.Spot)
+ {
+ ftraceLightProj.intValue = (int)BakeryPointLight.ftLightProjectionMode.Cone;
+
+ var so = new SerializedObject(l);
+ if (so == null) return;
+
+ SerializedProperty lightInnerAngle = so.FindProperty("m_InnerSpotAngle");
+ if (lightInnerAngle == null) return;
+ ftraceLightInnerAngle.floatValue = (lightInnerAngle.floatValue / ftraceLightAngle.floatValue) * 100;
+ }
+ }
+
+ void MatchToHDRPLight(Light l)
+ {
+ ftraceLightRealisticFalloff.boolValue = true;
+ ftraceLightFalloffMinRadius.floatValue = 0.01f;
+
+ ftraceLightIntensity.floatValue /= Mathf.PI;
+
+ var hdrpLight = l.GetComponent("HDAdditionalLightData");
+ if (hdrpLight == null) return;
+
+ var so = new SerializedObject(hdrpLight);
+ if (so == null) return;
+
+ SerializedProperty hdrpLightTypeExtent = so.FindProperty("m_PointlightHDType");
+ if (hdrpLightTypeExtent == null) return;
+
+ int extendedLightType = hdrpLightTypeExtent.intValue;
+ if (extendedLightType != 0) return;
+
+ if (l.type == LightType.Spot)
+ {
+ SerializedProperty hdrpLightSpotShape = so.FindProperty("m_SpotLightShape");
+ if (hdrpLightSpotShape == null) return;
+
+ int spotShape = hdrpLightSpotShape.intValue;
+ if (spotShape != 0) return;
+
+ ftraceLightProj.intValue = (int)BakeryPointLight.ftLightProjectionMode.Cone;
+ }
+
+ SerializedProperty hdrpLightInnerAngle = so.FindProperty("m_InnerSpotPercent");
+ if (hdrpLightInnerAngle == null) return;
+ ftraceLightInnerAngle.floatValue = hdrpLightInnerAngle.floatValue;
+ }
+
+ void SetLWRPLight(Light l)
+ {
+ if (ftraceLightProj.enumValueIndex == (int)BakeryPointLight.ftLightProjectionMode.Cone)
+ {
+ var so = new SerializedObject(l);
+ if (so == null) return;
+
+ SerializedProperty lightInnerAngle = so.FindProperty("m_InnerSpotAngle");
+ if (lightInnerAngle == null) return;
+
+ lightInnerAngle.floatValue = (ftraceLightInnerAngle.floatValue * 0.01f) * ftraceLightAngle.floatValue;
+
+ so.ApplyModifiedProperties();
+ }
+ }
+
+ void SetHDRPLight(Light l)
+ {
+#if UNITY_2019_1_OR_NEWER
+ l.useBoundingSphereOverride = false;
+ l.useShadowMatrixOverride = false;
+#endif
+ l.intensity *= Mathf.PI;
+
+ var hdrpLight = l.GetComponent("HDAdditionalLightData");
+ if (hdrpLight == null) return;
+
+ var so = new SerializedObject(hdrpLight);
+ if (so == null) return;
+
+ SerializedProperty hdrpUnits = so.FindProperty("m_LightUnit");
+ if (hdrpUnits != null) hdrpUnits.intValue = 1; // candela
+
+ SerializedProperty hdrpInt2 = so.FindProperty("m_Intensity");
+ if (hdrpInt2 != null) hdrpInt2.floatValue = l.intensity;
+
+ SerializedProperty hdrpLightTypeExtent = so.FindProperty("m_PointlightHDType");
+ if (hdrpLightTypeExtent == null) return;
+ hdrpLightTypeExtent.intValue = 0; // punctual
+
+ if (ftraceLightProj.enumValueIndex == (int)BakeryPointLight.ftLightProjectionMode.Cone)
+ {
+ SerializedProperty hdrpLightSpotShape = so.FindProperty("m_SpotLightShape");
+ if (hdrpLightSpotShape == null) return;
+ hdrpLightSpotShape.intValue = 0; // cone
+ }
+
+ SerializedProperty hdrpLightInnerAngle = so.FindProperty("m_InnerSpotPercent");
+ if (hdrpLightInnerAngle == null) return;
+ hdrpLightInnerAngle.floatValue = ftraceLightInnerAngle.floatValue;
+
+ so.ApplyModifiedProperties();
+ }
+
+ void TestPreviewRefreshProperty(ref int cached, int newVal)
+ {
+ if (cached >= 0)
+ {
+ if (cached != newVal)
+ {
+ BakeryPointLight.lightsChanged = 2;
+ }
+ }
+ cached = newVal;
+ }
+
+ void TestPreviewRefreshProperty(ref int cached, UnityEngine.Object newVal)
+ {
+ if (newVal == null)
+ {
+ TestPreviewRefreshProperty(ref cached, 0);
+ return;
+ }
+ TestPreviewRefreshProperty(ref cached, newVal.GetInstanceID());
+ }
+
+ public override void OnInspectorGUI() {
+ //if (showFtrace)
+ {
+ OnEnable();
+
+ serializedObject.Update();
+
+ TestPreviewRefreshProperty(ref projModeCached, ftraceLightProj.intValue);
+ TestPreviewRefreshProperty(ref texCached, ftraceLightTexture.objectReferenceValue);
+ TestPreviewRefreshProperty(ref tex2DCached, ftraceLightTexture2D.objectReferenceValue);
+ TestPreviewRefreshProperty(ref iesCached, ftraceLightIES.objectReferenceValue);
+
+ EditorGUILayout.PropertyField(ftraceLightColor, new GUIContent("Color", "Color of the light"));
+ EditorGUILayout.PropertyField(ftraceLightIntensity, new GUIContent("Intensity", "Color multiplier (Candela / PI)"));
+ EditorGUILayout.PropertyField(ftraceLightShadowSpread, new GUIContent("Shadow spread", "Controls shadow blurriness from 0 to 1"));
+
+ EditorGUILayout.PropertyField(ftraceLightRealisticFalloff, new GUIContent("Physical falloff", "Use inverse-squared falloff instead of Unity falloff"));
+ if (ftraceLightRealisticFalloff.boolValue)
+ {
+ EditorGUILayout.PropertyField(ftraceLightFalloffMinRadius, new GUIContent("Falloff min size", "As point lights don't have area, at zero distance 1/(d*d) will become infinity. This value avoids this issue by assuming the light to have some minimum radius and changing the formula to 1/(d*d+R*R)."));
+ }
+
+ EditorGUILayout.PropertyField(ftraceLightCutoff, new GUIContent("Range", "Lighting distance limit. When 'Physical falloff' is on, for maximum corectness set to a very high value. Using smaller values is useful for faster render times and to match real-time lights. Bakery uses Skyforge falloff to maintain balance between correct inverse-squared attenuation and practical limits (https://habr.com/company/mailru/blog/248873/)"));
+ EditorGUILayout.PropertyField(ftraceLightSamples, new GUIContent("Samples", "The amount of sample points generated on the surface of this light. Point light shadows are traced towards points on a sphere (with radius = shadowSpread) around the light. "));
+ EditorGUILayout.PropertyField(ftraceLightProj, new GUIContent("Projection mask", "Determines additional light masking mode."));
+
+ switch(ftraceLightProj.enumValueIndex)
+ {
+ case (int)BakeryPointLight.ftLightProjectionMode.Cookie:
+ EditorGUILayout.PropertyField(ftraceLightTexture2D, new GUIContent("Cookie texture", "Texture"));
+ EditorGUILayout.Slider(ftraceLightAngle, 1, 179, new GUIContent("Angle", "Angle of projection (like in spotlights)."));
+ break;
+ case (int)BakeryPointLight.ftLightProjectionMode.Cone:
+ EditorGUILayout.Slider(ftraceLightAngle, 1, 180, new GUIContent("Outer angle"));
+ EditorGUILayout.Slider(ftraceLightInnerAngle, 0, 100, new GUIContent("Inner angle percent"));
+ break;
+ case (int)BakeryPointLight.ftLightProjectionMode.Cubemap:
+ EditorGUILayout.PropertyField(ftraceLightTexture, new GUIContent("Projected cubemap", "Cubemap"));
+ break;
+ case (int)BakeryPointLight.ftLightProjectionMode.IES:
+ ftraceLightIES.objectReferenceValue = EditorGUILayout.ObjectField("IES file", ftraceLightIES.objectReferenceValue, typeof(UnityEngine.Object), false);
+ if (ftraceLightIES.objectReferenceValue != null)
+ {
+ var path = AssetDatabase.GetAssetPath(ftraceLightIES.objectReferenceValue);
+ if (path.Length < 4 || path.Substring(path.Length - 4).ToLower() != ".ies")
+ {
+ EditorUtility.DisplayDialog("Bakery", "File must have IES extension.", "OK");
+ ftraceLightIES.objectReferenceValue = null;
+ }
+ }
+ EditorGUILayout.PropertyField(ftraceDirectionMode, new GUIContent("Orientation", "Defines forward axis for the IES light."));
+ break;
+ default:
+ break;
+ }
+
+ int prevVal = ftraceLightBitmask.intValue;
+ int newVal = EditorGUILayout.MaskField(new GUIContent("Bitmask", "Lights only affect renderers with overlapping bits"), ftraceLightBitmask.intValue, selStrings);
+ if (prevVal != newVal) ftraceLightBitmask.intValue = newVal;
+
+ /*
+ EditorGUILayout.PropertyField(ftraceLightBakeToIndirect, new GUIContent("Bake to indirect", "Add direct contribution from this light to indirect-only lightmaps"));
+ if (ftraceLightBakeToIndirect.boolValue && ftraceLightShadowmask.boolValue) ftraceLightShadowmask.boolValue = false;
+
+ EditorGUILayout.PropertyField(ftraceLightShadowmask, new GUIContent("Shadowmask", "Enable mixed lighting. Static shadows from this light will be baked, and real-time light will cast shadows from dynamic objects."));
+ if (ftraceLightBakeToIndirect.boolValue && ftraceLightShadowmask.boolValue) ftraceLightBakeToIndirect.boolValue = false;
+ */
+
+ if (storage == null) storage = ftRenderLightmap.FindRenderSettingsStorage();
+ var rmode = storage.renderSettingsUserRenderMode;
+ if (rmode != (int)ftRenderLightmap.RenderMode.FullLighting)
+ {
+ ftDirectLightInspector.BakeWhat contrib;
+ if (ftraceLightShadowmask.boolValue)
+ {
+ contrib = ftDirectLightInspector.BakeWhat.IndirectAndShadowmask;
+ }
+ else if (ftraceLightBakeToIndirect.boolValue)
+ {
+ contrib = ftDirectLightInspector.BakeWhat.DirectAndIndirect;
+ }
+ else
+ {
+ contrib = ftDirectLightInspector.BakeWhat.IndirectOnly;
+ }
+ var prevContrib = contrib;
+
+ if (rmode == (int)ftRenderLightmap.RenderMode.Indirect)
+ {
+ contrib = (ftDirectLightInspector.BakeWhat)EditorGUILayout.Popup("Baked contribution", (int)contrib, ftDirectLightInspector.directContributionIndirectOptions);
+ }
+ else if (rmode == (int)ftRenderLightmap.RenderMode.Shadowmask)
+ {
+ contrib = (ftDirectLightInspector.BakeWhat)EditorGUILayout.EnumPopup("Baked contribution", contrib);
+ }
+
+ if (prevContrib != contrib)
+ {
+ if (contrib == ftDirectLightInspector.BakeWhat.IndirectOnly)
+ {
+ ftraceLightShadowmask.boolValue = false;
+ ftraceLightBakeToIndirect.boolValue = false;
+ }
+ else if (contrib == ftDirectLightInspector.BakeWhat.IndirectAndShadowmask)
+ {
+ ftraceLightShadowmask.boolValue = true;
+ ftraceLightBakeToIndirect.boolValue = false;
+ }
+ else
+ {
+ ftraceLightShadowmask.boolValue = false;
+ ftraceLightBakeToIndirect.boolValue = true;
+ }
+ }
+ }
+
+ EditorGUILayout.PropertyField(ftraceLightIndirectIntensity, new GUIContent("Indirect intensity", "Non-physical GI multiplier for this light"));
+
+ if (ftraceLightShadowmask.boolValue)
+ {
+ EditorGUILayout.PropertyField(ftraceShadowmaskGroupID, new GUIContent("Shadowmask Group ID", "If set to 0, each shadowmasked light will have a separate mask. Lights sharing any other positive value will share the same mask. This is useful to avoid 4 channel limit in cases where light bounds overlap, but the overlapping part is occluded in both anyway."));
+ }
+
+ serializedObject.ApplyModifiedProperties();
+ }
+
+
+ bool showWarningCant = false;
+ bool showError = false;
+ string why = "";
+
+ bool shadowmaskNoDynamicLight = false;
+
+ foreach(BakeryPointLight selectedLight in targets)
+ {
+ bool match = true;
+ //string why = "";
+ var light = selectedLight.GetComponent<Light>();
+ if (light == null)
+ {
+ if (ftraceLightShadowmask.boolValue) shadowmaskNoDynamicLight = true;
+ continue;
+ }
+ if (!light.enabled)
+ {
+ if (ftraceLightShadowmask.boolValue) shadowmaskNoDynamicLight = true;
+ }
+
+ if (isHDRP)
+ {
+ if (!ftraceLightRealisticFalloff.boolValue || Mathf.Abs(ftraceLightFalloffMinRadius.floatValue - 0.01f) > 0.0001f)
+ {
+ match = false;
+ why = "falloff doesn't match HDRP";
+ }
+ else
+ {
+ match = CompareWithHDRP(light, ref why);
+ }
+ }
+
+ if (isLWRP)
+ {
+ if (!ftraceLightRealisticFalloff.boolValue || Mathf.Abs(ftraceLightFalloffMinRadius.floatValue - 0.01f) > 0.0001f)
+ {
+ match = false;
+ why = "falloff doesn't match URP";
+ }
+ else
+ {
+ match = CompareWithLWRP(light, ref why);
+ }
+ }
+
+ var so = new SerializedObject(selectedLight);
+ InitSerializedProperties(so);
+
+ if (ftraceLightIndirectIntensity.floatValue != light.bounceIntensity)
+ {
+ match = false;
+ why = "indirect intensity doesn't match";
+ }
+
+ if (ftraceLightProj.enumValueIndex == (int)BakeryPointLight.ftLightProjectionMode.IES)
+ {
+ showWarningCant = true;
+ }
+ else if (ftraceLightProj.enumValueIndex == (int)BakeryPointLight.ftLightProjectionMode.Omni)
+ {
+ if (light.type != LightType.Point)
+ {
+ match = false;
+ why = "real-time light is not point";
+ }
+ else if (light.cookie != null)
+ {
+ match = false;
+ why = "real-time light has cookie";
+ }
+ }
+ else if (ftraceLightProj.enumValueIndex == (int)BakeryPointLight.ftLightProjectionMode.Cubemap)
+ {
+ if (light.type != LightType.Point)
+ {
+ match = false;
+ why = "real-time light is not point";
+ }
+ else if (light.cookie == null)
+ {
+ match = false;
+ why = "real-time light has no cookie";
+ }
+ }
+ else if (ftraceLightProj.enumValueIndex == (int)BakeryPointLight.ftLightProjectionMode.Cookie)
+ {
+ if (light.type != LightType.Spot)
+ {
+ match = false;
+ why = "real-time light is not spot";
+ }
+ else if (light.cookie == null && ftraceLightTexture2D.objectReferenceValue != spotCookieTexture)
+ {
+ match = false;
+ why = "wrong cookie texture";
+ }
+ else if (light.cookie != null && ftraceLightTexture2D.objectReferenceValue != light.cookie)
+ {
+ match = false;
+ why = "wrong cookie texture";
+ }
+ else if (light.spotAngle != ftraceLightAngle.floatValue)
+ {
+ match = false;
+ why = "spot angle doesn't match";
+ }
+ }
+ else if (ftraceLightProj.enumValueIndex == (int)BakeryPointLight.ftLightProjectionMode.Cone)
+ {
+ if (light.type != LightType.Spot)
+ {
+ match = false;
+ why = "real-time light is not spot";
+ }
+ else if (light.spotAngle != ftraceLightAngle.floatValue)
+ {
+ match = false;
+ why = "outer angle doesn't match";
+ }
+ }
+
+ var clr = ftraceLightColor.colorValue;
+ float eps = 1.0f / 255.0f;
+ float lightR, lightG, lightB, lightInt;
+ float fr, fg, fb;
+ float fintensity = ftraceLightIntensity.floatValue;
+ if (isHDRP) fintensity *= Mathf.PI;
+ if (PlayerSettings.colorSpace == ColorSpace.Linear)
+ {
+ fr = clr.linear.r;// * fintensity;
+ fg = clr.linear.g;// * fintensity;
+ fb = clr.linear.b;// * fintensity;
+ }
+ else
+ {
+ fr = clr.r;
+ fg = clr.g;
+ fb = clr.b;
+ }
+ GetLinearLightParameters(light, out lightR, out lightG, out lightB, out lightInt);
+
+ if (GraphicsSettings.lightsUseLinearIntensity || PlayerSettings.colorSpace != ColorSpace.Linear)
+ {
+ if (Mathf.Abs(lightR - fr) > eps || Mathf.Abs(lightG - fg) > eps || Mathf.Abs(lightB - fb) > eps)
+ {
+ match = false;
+ why = "color doesn't match";
+ }
+ else if (Mathf.Abs(lightInt - fintensity) > eps)
+ {
+ match = false;
+ why = "intensity doesn't match";
+ }
+ }
+ else
+ {
+ eps *= Mathf.Max(lightInt, fintensity);
+ if (Mathf.Abs(lightR*lightInt - fr*fintensity) > eps ||
+ Mathf.Abs(lightG*lightInt - fg*fintensity) > eps ||
+ Mathf.Abs(lightB*lightInt - fb*fintensity) > eps)
+ {
+ match = false;
+ why = "intensity doesn't match";
+ }
+ }
+
+ if (Mathf.Abs(light.range - ftraceLightCutoff.floatValue) > 0.001f)
+ {
+ match = false;
+ why = "range doesn't match";
+ }
+
+ if (!match)
+ {
+ showError = true;
+ }
+ }
+
+ if (shadowmaskNoDynamicLight)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("Warning: shadowmask needs enabled real-time light to work");
+ }
+
+ if (showWarningCant)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("Warning: real-time light can't match baked IES light");
+ EditorGUILayout.Space();
+ }
+
+ if (showError)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("Real-time light doesn't match lightmap: " + why);
+
+ if (GUILayout.Button("Match lightmapped to real-time"))
+ {
+ foreach(BakeryPointLight selectedLight in targets)
+ {
+ var light = selectedLight.GetComponent<Light>();
+ if (light == null) continue;
+ //if (!light.enabled) continue;
+ var so = new SerializedObject(selectedLight);
+ InitSerializedProperties(so);
+
+ if (PlayerSettings.colorSpace != ColorSpace.Linear)
+ {
+ ftraceLightColor.colorValue = light.color;
+ ftraceLightIntensity.floatValue = light.intensity;
+ }
+ else if (!GraphicsSettings.lightsUseLinearIntensity)
+ {
+ float lightR, lightG, lightB, lightInt;
+ GetLinearLightParameters(light, out lightR, out lightG, out lightB, out lightInt);
+ ftraceLightColor.colorValue = new Color(lightR, lightG, lightB);
+ ftraceLightIntensity.floatValue = lightInt;
+ }
+ else
+ {
+ ftraceLightColor.colorValue = light.color;
+ ftraceLightIntensity.floatValue = light.intensity;
+ }
+ ftraceLightCutoff.floatValue = light.range;
+ ftraceLightAngle.floatValue = light.spotAngle;
+
+ if (light.type == LightType.Point)
+ {
+ if (light.cookie == null)
+ {
+ ftraceLightProj.enumValueIndex = (int)BakeryPointLight.ftLightProjectionMode.Omni;
+ ftraceLightTexture.objectReferenceValue = null;
+ }
+ else
+ {
+ ftraceLightProj.enumValueIndex = (int)BakeryPointLight.ftLightProjectionMode.Cubemap;
+ ftraceLightTexture.objectReferenceValue = light.cookie;
+ }
+ }
+ else if (light.type == LightType.Spot)
+ {
+ ftraceLightProj.enumValueIndex = (int)BakeryPointLight.ftLightProjectionMode.Cookie;
+ if (light.cookie == null)
+ {
+ ftraceLightTexture2D.objectReferenceValue = spotCookieTexture;
+ }
+ else
+ {
+ ftraceLightTexture2D.objectReferenceValue = light.cookie;
+ }
+ }
+ ftraceLightIndirectIntensity.floatValue = light.bounceIntensity;
+
+ if (isHDRP) MatchToHDRPLight(light);
+ if (isLWRP) MatchToLWRPLight(light);
+
+ so.ApplyModifiedProperties();
+ }
+ }
+ if (GUILayout.Button("Match real-time to lightmapped"))
+ {
+ foreach(BakeryPointLight selectedLight in targets)
+ {
+ var light = selectedLight.GetComponent<Light>();
+ if (light == null) continue;
+ //if (!light.enabled) continue;
+ var so = new SerializedObject(selectedLight);
+ InitSerializedProperties(so);
+
+ Undo.RecordObject(light, "Change light");
+ if (PlayerSettings.colorSpace != ColorSpace.Linear)
+ {
+ light.color = ftraceLightColor.colorValue;
+ light.intensity = ftraceLightIntensity.floatValue;
+ }
+ else if (!GraphicsSettings.lightsUseLinearIntensity)
+ {
+ var clr = ftraceLightColor.colorValue;
+ float fintensity = ftraceLightIntensity.floatValue;
+ float fr = clr.linear.r;// * fintensity;
+ float fg = clr.linear.g;// * fintensity;
+ float fb = clr.linear.b;// * fintensity;
+
+ fr = Mathf.Pow(fr * fintensity, 1.0f / 2.2f);
+ fg = Mathf.Pow(fg * fintensity, 1.0f / 2.2f);
+ fb = Mathf.Pow(fb * fintensity, 1.0f / 2.2f);
+ float fint = Mathf.Max(Mathf.Max(fr, fg), fb);
+ fr /= fint;
+ fg /= fint;
+ fb /= fint;
+ light.color = new Color(fr, fg, fb);
+ light.intensity = fint;
+ }
+ else
+ {
+ light.color = ftraceLightColor.colorValue;
+ light.intensity = ftraceLightIntensity.floatValue;
+ }
+ light.range = ftraceLightCutoff.floatValue;
+ light.spotAngle = ftraceLightAngle.floatValue;
+
+ if (ftraceLightProj.enumValueIndex == (int)BakeryPointLight.ftLightProjectionMode.Omni)
+ {
+ light.type = LightType.Point;
+ light.cookie = null;
+ }
+ else if (ftraceLightProj.enumValueIndex == (int)BakeryPointLight.ftLightProjectionMode.Cubemap)
+ {
+ light.type = LightType.Point;
+ light.cookie = ftraceLightTexture.objectReferenceValue as Cubemap;
+ }
+ else if (ftraceLightProj.enumValueIndex == (int)BakeryPointLight.ftLightProjectionMode.Cookie)
+ {
+ light.type = LightType.Spot;
+ light.cookie = ftraceLightTexture.objectReferenceValue == spotCookieTexture ? null : (ftraceLightTexture.objectReferenceValue as Texture2D);
+ }
+ else if (ftraceLightProj.enumValueIndex == (int)BakeryPointLight.ftLightProjectionMode.Cone)
+ {
+ light.type = LightType.Spot;
+ }
+ light.bounceIntensity = ftraceLightIndirectIntensity.floatValue;
+
+ if (isHDRP) SetHDRPLight(light);
+ if (isLWRP) SetLWRPLight(light);
+ }
+ }
+ }
+
+ if (PlayerSettings.colorSpace == ColorSpace.Linear)
+ {
+ if (!GraphicsSettings.lightsUseLinearIntensity)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("Warning: project is not set up to use linear light intensity.");
+ EditorGUILayout.LabelField("GraphicsSettings.lightsUseLinearIntensity should be TRUE.");
+ if (GUILayout.Button("Fix"))
+ {
+ GraphicsSettings.lightsUseLinearIntensity = true;
+ }
+ }
+ else
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("Project is using linear light intensity. This is nice.");
+ if (GUILayout.Button("Change to non-linear"))
+ {
+ GraphicsSettings.lightsUseLinearIntensity = false;
+ }
+ }
+ }
+ }
+}
+
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftPointLightInspector.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftPointLightInspector.cs.meta
new file mode 100644
index 00000000..b79d8caa
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftPointLightInspector.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: d965ed7d9a9a406418fe8b269b3fef30
+timeCreated: 1525513538
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRenderLightmap.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRenderLightmap.cs
new file mode 100644
index 00000000..dcb9e1b8
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRenderLightmap.cs
@@ -0,0 +1,10681 @@
+#if UNITY_EDITOR
+
+// Disable 'obsolete' warnings
+#pragma warning disable 0618
+
+// Run Bakery exes via CreateProcess instead of mono. Mono seems to have problems with apostrophes in paths.
+// Bonus point: working dir == DLL dir, so moving the folder works.
+#define LAUNCH_VIA_DLL
+//#define COMPRESS_VOLUME_RGBM
+
+using UnityEngine;
+using UnityEngine.Rendering;
+using UnityEditor;
+using System.IO;
+using System.Text;
+using System.Collections;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using UnityEditor.SceneManagement;
+using UnityEngine.SceneManagement;
+using System.Text.RegularExpressions;
+using System.Reflection;
+
+public class ftRenderLightmap : EditorWindow//ScriptableWizard
+{
+ public static bool ftInitialized = false;
+ public static bool ftSceneDirty = true;
+
+ public static ftRenderLightmap instance;
+
+ public enum RenderMode
+ {
+ FullLighting = 0,
+ Indirect = 1,
+ Shadowmask = 2,
+ Subtractive = 3,
+ AmbientOcclusionOnly = 4
+ };
+
+ public enum RenderDirMode
+ {
+ None = 0,
+ BakedNormalMaps = 1,
+ DominantDirection = 2,
+ RNM = 3,
+ SH = 4
+ };
+
+ public enum SettingsMode
+ {
+ Simple = 0,
+ Advanced = 1,
+ Experimental = 2
+ };
+
+ public enum LightProbeMode
+ {
+ Legacy = 0,
+ L1 = 1
+ };
+
+ public enum GILODMode
+ {
+ Auto = 0,
+ ForceOn = 1,
+ ForceOff = 2
+ };
+
+ class Convex
+ {
+ public Vector3[] vertices;
+ public Plane[] planes;
+ };
+
+ [DllImport ("simpleProgressBar", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int simpleProgressBarShow(string header, string msg, float percent, float step, bool onTop);
+
+ [DllImport ("simpleProgressBar", CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool simpleProgressBarCancelled();
+
+ [DllImport ("simpleProgressBar", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void simpleProgressBarEnd();
+
+ [DllImport ("lmrebake", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int lmrInit(System.IntPtr device);
+
+ [DllImport ("lmrebake", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int lmrRender(string srcLMFilename, string destLMFilename, string lodMaskFilename,
+ float[] srcUV, float[] destUV, int floatOffset, int numFloats, int[] indices, int indexOffset, int numIndices,
+ int destWidth, int destHeight, int lodBits);
+
+ [DllImport ("lmrebake", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int lmrRenderSimple(string srcLMFilename, string destLMFilename,
+ int destWidth, int destHeight, int lodBits);
+
+ [DllImport ("halffloat2vb", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int halffloat2vb([MarshalAs(UnmanagedType.LPWStr)]string inputFilename, System.IntPtr values, int dataType);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern System.IntPtr RunLocalProcess([MarshalAs(UnmanagedType.LPWStr)]string commandline, bool setWorkDir);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern System.IntPtr RunLocalProcessVisible([MarshalAs(UnmanagedType.LPWStr)]string commandline);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern bool IsProcessFinished(System.IntPtr proc);
+
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int GetProcessReturnValueAndClose(System.IntPtr proc);
+
+#if UNITY_2018_3_OR_NEWER
+ [DllImport("user32.dll")]
+ static extern System.IntPtr GetForegroundWindow();
+
+ [DllImport("user32.dll")]
+ static extern System.IntPtr GetParent(System.IntPtr hwnd);
+
+ [DllImport("user32.dll")]
+ static extern int GetWindowText(System.IntPtr hwnd, StringBuilder text, int count);
+
+ System.IntPtr unityEditorHWND;
+#endif
+
+#if UNITY_2017_3_OR_NEWER
+ const LightmapEditorSettings.Lightmapper BUILTIN_RADIOSITY = LightmapEditorSettings.Lightmapper.Enlighten;
+ const LightmapEditorSettings.Lightmapper BUILTIN_PT = LightmapEditorSettings.Lightmapper.ProgressiveCPU;
+#else
+ #if UNITY_2017_2_OR_NEWER
+ const LightmapEditorSettings.Lightmapper BUILTIN_RADIOSITY = LightmapEditorSettings.Lightmapper.Radiosity;
+ const LightmapEditorSettings.Lightmapper BUILTIN_PT = LightmapEditorSettings.Lightmapper.PathTracer;
+ #endif
+#endif
+
+ public static int bounces = 5;
+ public int giSamples = 16;
+ static public float giBackFaceWeight = 0;
+ public static int tileSize = 512;
+ public float priority = 2;
+ public float texelsPerUnit = 20;
+ public static bool forceRefresh = true;
+ bool forceRebuildGeometry = true;
+ bool performRendering = true;
+ public RenderMode userRenderMode = RenderMode.FullLighting;
+ public static bool isDistanceShadowmask;
+ public static RenderDirMode renderDirMode;
+ public static LightProbeMode lightProbeMode = LightProbeMode.L1;
+ public static ftGlobalStorage.Unwrapper unwrapper = ftGlobalStorage.Unwrapper.Default;
+ public static ftGlobalStorage.DenoiserType denoiserType = ftGlobalStorage.DenoiserType.OpenImageDenoise;
+ public SettingsMode settingsMode = SettingsMode.Simple;
+ public static GILODMode giLodMode = GILODMode.ForceOff;
+ public static bool giLodModeEnabled = true;
+ static bool revertReflProbesValue = false;
+ static bool reflProbesValue = true;
+ public static bool restoreFromGlobalSector = false;
+ public static float hackEmissiveBoost = 1;
+ public static float hackIndirectBoost = 1;
+ public static float hackAOIntensity = 0;
+ public static int hackAOSamples = 16;
+ public static float hackAORadius = 1;
+ public static bool showAOSettings = false;
+ public static bool showTasks = false;
+ public static bool showTasks2 = false;
+ public static bool showPaths = false;
+ public static bool showNet = false;
+ public static bool showPerf = true;
+ //public static bool showCompression = false;
+ //public static bool useUnityForLightProbes = false;
+ public static bool useUnityForOcclsusionProbes = false;
+ public static bool showDirWarning = true;
+ public static bool showCheckerSettings = false;
+ public static bool showChecker = false;
+ static bool usesRealtimeGI = false;
+ static int lastBakeTime;
+ public static bool beepOnFinish;
+ public static bool useScenePath = true;
+ //public static TextureImporterFormat lightmapCompressionColor = TextureImporterFormat.Automatic;
+ //public static TextureImporterFormat lightmapCompressionMask = TextureImporterFormat.Automatic;
+ //public static TextureImporterFormat lightmapCompressionDir = TextureImporterFormat.Automatic;
+ public static bool removeDuplicateLightmaps = false;
+ public static bool clientMode = false;
+ public static int sampleDivisor = 1;
+
+ public bool exeMode = true;//false;
+ public bool deferredMode = true; // defer calls to ftrace and denoiser to unload unity scenes
+ public bool unloadScenesInDeferredMode = false;
+ public static bool adjustSamples = true;
+ public static bool checkOverlaps = false;
+ public static bool samplesWarning = true;
+ public static bool prefabWarning = true;
+ public static bool compressedGBuffer = true;
+ public static bool compressedOutput = true;
+ static List<System.Diagnostics.ProcessStartInfo> deferredCommands;
+ static Dictionary<int, List<string>> deferredCommandsFallback;
+ static Dictionary<int, BakeryLightmapGroupPlain> deferredCommandsRebake;
+ static Dictionary<int, int> deferredCommandsLODGen;
+ static Dictionary<int, Vector3> deferredCommandsGIGen;
+ static Dictionary<int, BakeryLightmapGroupPlain> deferredCommandsHalf2VB;
+ static Dictionary<int, bool> deferredCommandsUVGB;
+ static List<string> deferredFileSrc;
+ static List<string> deferredFileDest;
+ static List<string> deferredCommandDesc;
+
+ public const string ftraceExe6 = "ftraceRTX.exe";
+ public const string ftraceExe1 = "ftrace.exe";
+ static string ftraceExe = ftraceExe1;
+ static bool rtxMode = false;
+
+ public static BakerySector curSector;
+ static string curSectorName;
+
+ public static int passedFilterFlag = 0;
+
+ enum AdjustUVMode
+ {
+ DontChange,
+ Adjust,
+ ForceDisableAdjust
+ }
+
+ static string[] adjustUVOptions = new string[] {"Don't change", "Adjust UV padding", "Remove UV adjustments"};
+
+ public static event System.EventHandler OnPreFullRender;
+ public static event System.EventHandler<ProbeEventArgs> OnPreRenderProbe;
+ public static event System.EventHandler OnFinishedProbes;
+ public static event System.EventHandler OnFinishedFullRender;
+ public static event System.EventHandler OnFinishedReflectionProbes;
+
+ public class ProbeEventArgs : System.EventArgs
+ {
+ public Vector3 pos { get; set; }
+ }
+
+ public static LayerMask forceProbeVisibility;
+
+ // Every LMID -> every channel -> every mask
+ static List<List<List<string>>> lightmapMasks;
+ static List<List<List<string>>> lightmapMaskLMNames;
+ static List<List<List<Light>>> lightmapMaskLights;
+ static List<List<List<bool>>> lightmapMaskDenoise;
+#if UNITY_2017_3_OR_NEWER
+#else
+ static List<Light> maskedLights;
+ PropertyInfo inspectorModeInfo;
+#endif
+ static List<bool> lightmapHasColor;
+ static List<bool> lightmapHasMask;
+ static List<bool> lightmapHasDir;
+ static List<bool> lightmapHasRNM;
+ Scene sceneSavedTestScene;
+ bool sceneWasSaved = false;
+
+ public bool fixSeams = true;
+ public bool denoise = true;
+ public bool denoise2x = false;
+ public bool encode = true;
+
+ public int padding = 16;
+
+ //public bool bc6h = false;
+ int encodeMode = 0;
+
+ public bool selectedOnly = false;
+ bool probesOnlyL1 = false;
+ public static bool fullSectorRender = false;
+
+ public static bool verbose = true;
+ public static bool showProgressBar = true;
+
+ public int lightProbeRenderSize = 128;
+ public int lightProbeReadSize = 16;
+ public int lightProbeMaxCoeffs = 9;
+
+ public static ftLightmapsStorage storage;
+ public static Dictionary<Scene, ftLightmapsStorage> storages;
+
+ static bool tryFixingSceneView = true;
+
+ // set via experimental UI now
+ //static bool legacyDenoiser = false;
+ //static bool oidnDenoiser = false;
+ static bool foundCompatibleSetup = false;
+
+ const bool alternativeDenoiseDir = true;
+
+ const uint deviceMask = 0xFFFFFFFF;
+
+ List<ReflectionProbe> reflectionProbes;
+
+ public ftLightmapsStorage renderSettingsStorage;
+
+ BakeryLightmapGroup currentGroup;
+ LightingDataAsset newAssetLData;
+
+ public static bool hasAnyProbes = false;
+ public static bool hasAnyVolumes = false;
+ static int maxSamplesPerPointLightBatch = 1024;
+
+ public static bool compressVolumes = false;
+
+ Vector2 scrollPos;
+
+ public static ftGlobalStorage gstorage;
+ static BakeryProjectSettings pstorage;
+
+ public static string scenePath = "";
+ public static string scenePathQuoted = "";
+#if !LAUNCH_VIA_DLL
+ static string dllPath;
+#endif
+ public static string outputPath = "BakeryLightmaps";
+ public static string outputPathFull = "";
+
+ BakeryLightMesh[] All;
+ BakeryPointLight[] AllP;
+ BakerySkyLight[] All2;
+ BakeryDirectLight[] All3;
+
+ const int PASS_LDR = 1;
+ const int PASS_FLOAT = 2;
+ const int PASS_HALF = 4;
+ const int PASS_MASK = 8;
+ const int PASS_SECONDARY_HALF = 16;
+ const int PASS_MASK1 = 32;
+ const int PASS_DIRECTION = 64;
+ const int PASS_RNM0 = 128;
+ const int PASS_RNM1 = 256;
+ const int PASS_RNM2 = 512;
+ const int PASS_RNM3 = 1024;
+
+ Dictionary<string, bool> lmnameComposed;
+
+ static GUIStyle foldoutStyle;
+
+ static BakeryVolume[] lastFoundBakeableVolumes = null;
+
+ List<BakeryLightmapGroupPlain> groupListPlain;
+ List<BakeryLightmapGroupPlain> groupListGIContributingPlain;
+
+ int[] uvBuffOffsets;
+ int[] uvBuffLengths;
+ float[] uvSrcBuff;
+ float[] uvDestBuff;
+ int[] lmrIndicesOffsets;
+ int[] lmrIndicesLengths;
+ int[] lmrIndicesBuff;
+ int[] lmGroupLODResFlags;
+ int[] lmGroupMinLOD;
+ int[] lmGroupLODMatrix;
+
+ public static Material matCubemapToStrip;
+
+ Dictionary<int, int> shadowmaskGroupIDToChannel;
+
+ static List<GameObject> overlappingLights;
+
+ static LightingDataAsset emptyLDataAsset;
+
+#if !LAUNCH_VIA_DLL
+ public static void PatchPath()
+ {
+ string currentPath = System.Environment.GetEnvironmentVariable("PATH", System.EnvironmentVariableTarget.Process);
+ dllPath = System.Environment.CurrentDirectory + Path.DirectorySeparatorChar + "Assets" + Path.DirectorySeparatorChar + "Editor" + Path.DirectorySeparatorChar + "x64";
+ if(!currentPath.Contains(dllPath))
+ {
+ System.Environment.SetEnvironmentVariable("PATH", currentPath + Path.PathSeparator + dllPath, System.EnvironmentVariableTarget.Process);
+ }
+ }
+
+ static ftRenderLightmap()
+ {
+ PatchPath();
+ }
+#endif
+
+ void ValidateFileAttribs(string file)
+ {
+ var attribs = File.GetAttributes(file);
+ if ((attribs & FileAttributes.ReadOnly) != 0)
+ {
+ File.SetAttributes(file, attribs & ~FileAttributes.ReadOnly);
+ }
+ }
+
+ static List<string> loadedScenes;
+ static List<bool> loadedScenesEnabled;
+ static List<bool> loadedScenesActive;
+ static Scene loadedDummyScene;
+ static bool scenesUnloaded = false;
+ static public void UnloadScenes()
+ {
+ EditorSceneManager.MarkAllScenesDirty();
+ EditorSceneManager.SaveOpenScenes();
+
+ loadedScenes = new List<string>();
+ loadedScenesEnabled = new List<bool>();
+ loadedScenesActive = new List<bool>();
+ var sceneCount = EditorSceneManager.sceneCount;
+ var activeScene = EditorSceneManager.GetActiveScene();
+ for(int i=0; i<sceneCount; i++)
+ {
+ var s = EditorSceneManager.GetSceneAt(i);
+ loadedScenes.Add(s.path);
+ loadedScenesEnabled.Add(s.isLoaded);
+ loadedScenesActive.Add(s == activeScene);
+ }
+
+ loadedDummyScene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
+ SceneManager.SetActiveScene(loadedDummyScene);
+ RenderSettings.skybox = null;
+ scenesUnloaded = true;
+ }
+
+ public bool TestSystemSpecs()
+ {
+ if (SystemInfo.graphicsShaderLevel < 30)
+ {
+ DebugLogError("Bakery requires at least Shader Model 3.0 to work. Make sure you are not currently using graphics emulation of old shader models.");
+ return false;
+ }
+
+ /*
+ if (SystemInfo.graphicsDeviceType != GraphicsDeviceType.Direct3D11)
+ {
+ DebugLogError("Bakery requires Unity editor to be running in DX11 mode during the bake.");
+ return false;
+ }
+ */
+
+ if (!Directory.Exists(scenePath))
+ {
+ var defaultPath = System.Environment.GetEnvironmentVariable("TEMP", System.EnvironmentVariableTarget.Process) + "\\frender";
+
+ ProgressBarEnd();
+ bool cont = true;
+ if (verbose)
+ {
+ cont = EditorUtility.DisplayDialog("Bakery", "Chosen temp path cannot be found:\n\n" + scenePath + "\n\nYou can cancel and set a different path in Advanced Settings or just use the default one:\n\n" + defaultPath + "\n", "Use default", "Cancel");
+ }
+ else
+ {
+ Debug.LogError("Chosen temp path was not found and set to default");
+ }
+ if (cont)
+ {
+ scenePath = defaultPath;
+ ftBuildGraphics.scenePath = scenePath;
+ scenePathQuoted = "\"" + scenePath + "\"";
+ }
+ else
+ {
+ return false;
+ }
+ }
+
+ if (gstorage != null)
+ {
+ // last optimal settings detection ran on another GPU
+ if (gstorage.gpuName != SystemInfo.graphicsDeviceName)
+ {
+ foundCompatibleSetup = false; // ask again
+ }
+ else
+ {
+ if (!rtxMode && !gstorage.runsNonRTX)
+ {
+ if (gstorage.alwaysEnableRTX)
+ {
+ DebugLogInfo("Automatically enabled RTX");
+ rtxMode = true;
+ ftraceExe = ftraceExe6;
+ ftBuildGraphics.exportTerrainAsHeightmap = false;
+ SaveRenderSettings();
+ }
+ else
+ {
+ int choice = EditorUtility.DisplayDialogComplex("Bakery", "This scene has RTX disabled. It is recommended to enable it on your GPU.", "Enable", "Always enable", "Don't enable");
+ if (choice < 2)
+ {
+ // Enable or Always Enable
+ rtxMode = true;
+ ftraceExe = ftraceExe6;
+ ftBuildGraphics.exportTerrainAsHeightmap = false;
+ SaveRenderSettings();
+
+ if (choice == 1)
+ {
+ // Always Enable
+ gstorage.alwaysEnableRTX = true;
+ EditorUtility.SetDirty(gstorage);
+ }
+ }
+ }
+ }
+
+ if (denoise)
+ {
+ if (denoiserType == ftGlobalStorage.DenoiserType.Optix5 && !gstorage.runsOptix5)
+ {
+ int choice = EditorUtility.DisplayDialogComplex("Bakery", "This scene has denoiser set to OptiX 5, but you GPU does not seem to support it. Please change the denoiser or re-run Bakery -> Utilities -> Detect optimal settings.", "OK", "Ignore", "Ignore forever");
+ if (choice == 0)
+ {
+ return false;
+ }
+ else if (choice == 2)
+ {
+ gstorage.runsOptix5 = true;
+ EditorUtility.SetDirty(gstorage);
+ }
+ }
+ else if (denoiserType == ftGlobalStorage.DenoiserType.Optix6 && !gstorage.runsOptix6)
+ {
+ int choice = EditorUtility.DisplayDialogComplex("Bakery", "This scene has denoiser set to OptiX 6, but you GPU does not seem to support it. Please change the denoiser or re-run Bakery -> Utilities -> Detect optimal settings.", "OK", "Ignore", "Ignore forever");
+ if (choice == 0)
+ {
+ return false;
+ }
+ else if (choice == 2)
+ {
+ gstorage.runsOptix6 = true;
+ EditorUtility.SetDirty(gstorage);
+ }
+ }
+ else if (denoiserType == ftGlobalStorage.DenoiserType.Optix7 && !gstorage.runsOptix7)
+ {
+ int choice = EditorUtility.DisplayDialogComplex("Bakery", "This scene has denoiser set to OptiX 7, but you GPU does not seem to support it. Please change the denoiser or re-run Bakery -> Utilities -> Detect optimal settings.", "OK", "Ignore", "Ignore forever");
+ if (choice == 0)
+ {
+ return false;
+ }
+ else if (choice == 2)
+ {
+ gstorage.runsOptix7 = true;
+ EditorUtility.SetDirty(gstorage);
+ }
+ }
+ else if (denoiserType == ftGlobalStorage.DenoiserType.OpenImageDenoise && !gstorage.runsOIDN)
+ {
+ int choice = EditorUtility.DisplayDialogComplex("Bakery", "This scene has denoiser set to OpenImageDenoise, but you CPU does not seem to support it. Please change the denoiser or re-run Bakery -> Utilities -> Detect optimal settings.", "OK", "Ignore", "Ignore forever");
+ if (choice == 0)
+ {
+ return false;
+ }
+ else if (choice == 2)
+ {
+ gstorage.runsOIDN = true;
+ EditorUtility.SetDirty(gstorage);
+ }
+ }
+ }
+ }
+ }
+
+ return true;
+ }
+
+ void ValidateOutputPath()
+ {
+ // Remove slashes from the end of the path
+ while (outputPath.Length > 0 && (outputPath[outputPath.Length-1] == '/' || outputPath[outputPath.Length-1] == '\\'))
+ {
+ outputPath = outputPath.Substring(0, outputPath.Length-1);
+ }
+ var outDir = Application.dataPath + "/" + outputPath;
+ if (!Directory.Exists(outDir)) Directory.CreateDirectory(outDir);
+ outputPathFull = outputPath;
+
+ if (curSector != null)
+ {
+ curSectorName = curSector.name;
+ outputPathFull += "/" + curSectorName;
+ outDir += "/" + curSectorName;
+ if (!Directory.Exists(outDir)) Directory.CreateDirectory(outDir);
+ }
+ else
+ {
+ curSectorName = "";
+ }
+ }
+
+ public static double GetTime()
+ {
+ return (System.DateTime.Now.Ticks / System.TimeSpan.TicksPerMillisecond) / 1000.0;
+ }
+
+ public static double GetTimeMs()
+ {
+ return System.DateTime.Now.Ticks / System.TimeSpan.TicksPerMillisecond;
+ }
+
+ static public void LoadScenes()
+ {
+ var sceneCount = loadedScenes.Count;
+ for(int i=0; i<sceneCount; i++)
+ {
+ EditorSceneManager.OpenScene(loadedScenes[i], loadedScenesEnabled[i] ? OpenSceneMode.Additive : OpenSceneMode.AdditiveWithoutLoading);
+ }
+ if (loadedDummyScene.isLoaded) EditorSceneManager.UnloadSceneAsync(loadedDummyScene);
+ scenesUnloaded = false;
+ }
+
+ bool ServerGetData()
+ {
+ var storageGO = ftLightmaps.FindInScene("!ftraceLightmaps", EditorSceneManager.GetActiveScene());
+ if (storageGO == null) return false;
+ var storage = storageGO.GetComponent<ftLightmapsStorage>();
+ if (storage == null) return false;
+ var list = storage.serverGetFileList;
+ if (list == null) return false;
+
+ lightmapHasColor = storage.lightmapHasColor;
+ lightmapHasMask = storage.lightmapHasMask;
+ lightmapHasDir = storage.lightmapHasDir;
+ lightmapHasRNM = storage.lightmapHasRNM;
+
+ ftClient.ServerGetData(list);
+ return true;
+ }
+
+#if LAUNCH_VIA_DLL
+ public static int lastReturnValue = 0;
+ public static IEnumerator ProcessCoroutine(string app, string args, bool setWorkDir = true)
+ {
+ var exeProcess = RunLocalProcess(app+" "+args, setWorkDir);
+ if (exeProcess == (System.IntPtr)null)
+ {
+ DebugLogError(app + " launch failed (see console for details)");
+ userCanceled = false;
+ ProgressBarEnd();
+ yield break;
+ }
+ while(!IsProcessFinished(exeProcess))
+ {
+ yield return null;
+ userCanceled = simpleProgressBarCancelled();
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ }
+ lastReturnValue = GetProcessReturnValueAndClose(exeProcess);
+ }
+#endif
+
+ int GenerateVBTraceTexLOD(int id)
+ {
+ // Write vbTraceTex for LMGroup
+ var vbtraceTexPosNormalArray = ftBuildGraphics.vbtraceTexPosNormalArray;
+ var vbtraceTexUVArray = ftBuildGraphics.vbtraceTexUVArray;
+ var vbtraceTexUVArrayLOD = ftBuildGraphics.vbtraceTexUVArrayLOD;
+
+ var flodInfo = new BinaryReader(File.Open(scenePath + "/lods" + id + ".bin", FileMode.Open, FileAccess.Read));
+ flodInfo.BaseStream.Seek(0, SeekOrigin.End);
+ var numLMs = flodInfo.BaseStream.Position;
+ flodInfo.BaseStream.Seek(0, SeekOrigin.Begin);
+ if (lmGroupLODResFlags == null || lmGroupLODResFlags.Length != numLMs)
+ {
+ lmGroupLODResFlags = new int[numLMs];
+ }
+ var lodLevels = new int[numLMs];
+ for(int i=0; i<numLMs; i++)
+ {
+ lodLevels[i] = (int)flodInfo.ReadByte();
+ if (lodLevels[i] > 0 && lodLevels[i] < 30)
+ {
+ //int minLOD = lmGroupMinLOD[id];
+ int minLOD = lmGroupMinLOD[i];
+ if (lodLevels[i] > minLOD) lodLevels[i] = minLOD;
+ lmGroupLODResFlags[i] |= 1 << (lodLevels[i] - 1);
+ }
+ lmGroupLODMatrix[id * numLMs + i] = lodLevels[i];
+ //Debug.LogError("GenerateVBTraceTexLOD: " + id+" to "+i+" = "+lodLevels[i]+" ("+lmGroupLODResFlags[i]+", "+numLMs+")");
+ }
+ flodInfo.Close();
+
+ var fvbtraceTex2 = new BinaryWriter(File.Open(scenePath + "/vbtraceTex" + id + ".bin", FileMode.Create));
+ var numTraceVerts = vbtraceTexUVArray.Count/2;
+ for(int k=0; k<numTraceVerts; k++)
+ {
+ fvbtraceTex2.Write(vbtraceTexPosNormalArray[k * 6]);
+ fvbtraceTex2.Write(vbtraceTexPosNormalArray[k * 6 + 1]);
+ fvbtraceTex2.Write(vbtraceTexPosNormalArray[k * 6 + 2]);
+ fvbtraceTex2.Write(vbtraceTexPosNormalArray[k * 6 + 3]);
+ fvbtraceTex2.Write(vbtraceTexPosNormalArray[k * 6 + 4]);
+ fvbtraceTex2.Write(vbtraceTexPosNormalArray[k * 6 + 5]);
+
+ int id2 = (int)(vbtraceTexUVArray[k * 2]/10);
+ //if ((int)(vbtraceTexUVArray[k * 2]/10) == i)
+ if (id2 < 0 || lodLevels[id2] == 0)
+ {
+ // own lightmap is full resoltion
+ fvbtraceTex2.Write(vbtraceTexUVArray[k * 2]);
+ fvbtraceTex2.Write(vbtraceTexUVArray[k * 2 + 1]);
+ }
+ else
+ {
+ // other lightmaps use LODs
+ fvbtraceTex2.Write(vbtraceTexUVArrayLOD[k * 2]);
+ fvbtraceTex2.Write(vbtraceTexUVArrayLOD[k * 2 + 1]);
+ }
+ }
+ fvbtraceTex2.Close();
+ return 0;
+ }
+
+ int SampleCount(int samples)
+ {
+ if (samples == 0) return 0;
+ return System.Math.Max(samples / sampleDivisor,1);
+ }
+
+ bool GroupAffectedByGroup(int curSceneLodLevel, int otherSceneLodLevel)
+ {
+ if (curSceneLodLevel < 0)
+ {
+ if (otherSceneLodLevel > 0) return false; // non-LOD sees itself and LOD0
+ }
+ else
+ {
+ //if (otherSceneLodLevel >= 0 && otherSceneLodLevel != curSceneLodLevel) return false; // LOD sees itself and non-LOD
+ // actually LOD sees non-LOD and other affecting objects we previously calculated
+ if (otherSceneLodLevel >= 0)
+ {
+ var visLists = ftBuildGraphics.lodLevelsVisibleInLodLevel;
+ if (visLists != null)
+ {
+ List<int> visList;
+ if (visLists.TryGetValue(curSceneLodLevel, out visList))
+ {
+ if (visList != null)
+ {
+ if (visList.IndexOf(otherSceneLodLevel) < 0) return false;
+ }
+ }
+ }
+ }
+ }
+ return true;
+ }
+
+ void GenerateGIParameters(int id, string nm, int bounce, int bounces, bool useDir, int sceneLodLevel)
+ {
+ var fgi = new BinaryWriter(File.Open(scenePath + (deferredMode ? "/gi_" + nm + bounce + ".bin" : "/gi.bin"), FileMode.Create));
+ fgi.Write(SampleCount(giSamples));
+ fgi.Write(giBackFaceWeight);
+ fgi.Write(bounce == bounces-1 ? "" : "uvalbedo_" + nm + (compressedGBuffer ? ".lz4" : ".dds"));
+
+ int count = 0;
+ foreach(var lmgroup2 in groupListGIContributingPlain)
+ {
+ if (lmgroup2.probes) continue; // nothing is ever affected by probes
+ if (!GroupAffectedByGroup(sceneLodLevel, lmgroup2.sceneLodLevel)) continue;
+ count++;
+ }
+ fgi.Write(count);
+
+ foreach(var lmgroup2 in groupListGIContributingPlain)
+ {
+ if (lmgroup2.probes) continue; // nothing is ever affected by probes
+ if (!GroupAffectedByGroup(sceneLodLevel, lmgroup2.sceneLodLevel)) continue;
+ fgi.Write(lmgroup2.id);
+
+ if (giLodModeEnabled)
+ {
+ var lod = lmGroupLODMatrix[id * groupListPlain.Count + lmgroup2.id];
+ if (lod == 0)
+ {
+ fgi.Write(lmgroup2.name + "_diffuse_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ else if (lod > 0 && lod < 127)
+ {
+ //Debug.LogError("GenerateGIParameters: " + id+" to "+lmgroup2.id+" = "+lod+" ("+lmGroupLODResFlags[lmgroup2.id]+", "+groupListPlain.Count+")");
+ fgi.Write(lmgroup2.name + "_diffuse_HDR_LOD" + lod + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ else
+ {
+ fgi.Write("");
+ }
+ }
+ else
+ {
+ fgi.Write(lmgroup2.name + "_diffuse_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ }
+ if (useDir) fgi.Write(bounce == bounces - 1 ? (nm + "_lights_Dir" + (compressedOutput ? ".lz4" : ".dds")) : "");
+ fgi.Close();
+ }
+
+ float Pack4BytesToFloat(int r, int g, int b, int a)
+ {
+ // 6 bits precision
+
+ // Move to 0-63 range
+ r /= 4;
+ g /= 4;
+ b /= 4;
+ a /= 4;
+
+ return (r << 18) | (g << 12) | (b << 6) | a;
+ }
+
+ float Pack3BytesToFloat(int r, int g, int b)
+ {
+ // 8 bits precision
+ var packed = (r << 16) | (g << 8) | b;
+ return (packed) / (float)(1 << 24);
+ }
+
+ void WriteString(BinaryWriter flist, string str)
+ {
+ flist.Write(str.Length);
+ for(int i=0; i<str.Length; i++)
+ {
+ flist.Write(str[i]);
+ }
+ byte zeroByte = 0;
+ flist.Write(zeroByte);
+ }
+
+ Convex GetSpotConvex(Light lb)
+ {
+ var lbT = lb.transform;
+
+ // radius computed same way as in BakeryPointLight gizmo drawing code
+ float angle = lb.spotAngle;
+ float angle2 = (180 - angle) * Mathf.Deg2Rad * 0.5f;
+ float x = 1 / Mathf.Sin(angle2);
+ x = Mathf.Sqrt(x * x - 1);
+ float radius = x * lb.range;
+
+ var bfar = lbT.position + lbT.forward * lb.range;
+ var bright = lbT.right * radius;
+ var bup = lbT.up * radius;
+
+ var bvertices = new Vector3[5];
+ bvertices[0] = lbT.position;
+ bvertices[1] = (bfar - bright) - bup;
+ bvertices[2] = (bfar + bright) - bup;
+ bvertices[3] = (bfar + bright) + bup;
+ bvertices[4] = (bfar - bright) + bup;
+
+ var bplanes = new Plane[5];
+ bplanes[0] = new Plane(bvertices[1], bvertices[4], bvertices[3]); // cap
+ bplanes[1] = new Plane(bvertices[0], bvertices[1], bvertices[2]);
+ bplanes[2] = new Plane(bvertices[0], bvertices[2], bvertices[3]);
+ bplanes[3] = new Plane(bvertices[0], bvertices[3], bvertices[4]);
+ bplanes[4] = new Plane(bvertices[0], bvertices[4], bvertices[1]);
+
+ var bconvex = new Convex();
+ bconvex.vertices = bvertices;
+ bconvex.planes = bplanes;
+
+ return bconvex;
+ }
+
+ bool ConvexIntersect(Convex a, Convex b)
+ {
+ // all B verts must be on the same side of at least one plane of A
+ for(int p=0; p<a.planes.Length; p++)
+ {
+ bool outside = true;
+ for(int v=0; v<b.vertices.Length; v++)
+ {
+ outside = !a.planes[p].GetSide(b.vertices[v]);
+ if (!outside) break; // intersects or inside
+ }
+ if (outside) return false;
+ }
+ return true;
+ }
+
+ bool ConvexSphereIntersect(Convex a, Vector3 bpos, float bradius)
+ {
+ // sphere must be outside of any plane with distance >= radius
+ for(int p=0; p<a.planes.Length; p++)
+ {
+ float d = -a.planes[p].GetDistanceToPoint(bpos);
+ if (d > bradius) return false;
+ }
+ return true;
+ }
+
+ int GenerateVertexBakedMeshes(int LMID, string lmname, bool hasShadowMask, bool hasDir, bool hasSH)
+ {
+ int errCode = 0;
+ int errCode2 = 0;
+ int errCode3 = 0;
+ int errCode4 = 0;
+ int errCode5 = 0;
+ int errCode6 = 0;
+
+ //var vertexOffsetLengths = new List<int>();
+ int totalVertexCount = 0;
+ for(int i=0; i<storage.bakedIDs.Count; i++)
+ {
+ if (storage.bakedIDs[i] != LMID) continue;
+ var mr = storage.bakedRenderers[i];
+ //var vertexOffset = storage.bakedVertexOffset[i];
+
+ //vertexOffsetLengths.Add(vertexOffset);
+ var sharedMesh = ftBuildGraphics.GetSharedMesh(mr);
+ int vertexCount = sharedMesh.vertexCount;
+ //vertexOffsetLengths.Add(vertexCount);
+
+ totalVertexCount += vertexCount;
+ }
+
+ if (totalVertexCount == 0) return 0;
+
+ int atlasTexSize = (int)Mathf.Ceil(Mathf.Sqrt((float)totalVertexCount));
+ atlasTexSize = (int)Mathf.Ceil(atlasTexSize / (float)tileSize) * tileSize;
+
+ var vertColors = new byte[atlasTexSize * atlasTexSize * 4];
+ byte[] vertColorsMask = null;
+ byte[] vertColorsDir = null;
+ byte[] vertColorsSHL1x = null;
+ byte[] vertColorsSHL1y = null;
+ byte[] vertColorsSHL1z = null;
+ if (hasShadowMask) vertColorsMask = new byte[atlasTexSize * atlasTexSize * 4];
+ if (hasDir) vertColorsDir = new byte[atlasTexSize * atlasTexSize * 4];
+ if (hasSH)
+ {
+ vertColorsSHL1x = new byte[atlasTexSize * atlasTexSize * 4];
+ vertColorsSHL1y = new byte[atlasTexSize * atlasTexSize * 4];
+ vertColorsSHL1z = new byte[atlasTexSize * atlasTexSize * 4];
+ }
+
+ var sceneCount = SceneManager.sceneCount;
+
+ GCHandle handle = GCHandle.Alloc(vertColors, GCHandleType.Pinned);
+ GCHandle handleMask = new GCHandle();
+ GCHandle handleDir = new GCHandle();
+ GCHandle handleL1x = new GCHandle();
+ GCHandle handleL1y = new GCHandle();
+ GCHandle handleL1z = new GCHandle();
+ if (hasShadowMask) handleMask = GCHandle.Alloc(vertColorsMask, GCHandleType.Pinned);
+ if (hasDir) handleDir = GCHandle.Alloc(vertColorsDir, GCHandleType.Pinned);
+ if (hasSH)
+ {
+ handleL1x = GCHandle.Alloc(vertColorsSHL1x, GCHandleType.Pinned);
+ handleL1y = GCHandle.Alloc(vertColorsSHL1y, GCHandleType.Pinned);
+ handleL1z = GCHandle.Alloc(vertColorsSHL1z, GCHandleType.Pinned);
+ }
+ try
+ {
+ System.IntPtr pointer = handle.AddrOfPinnedObject();
+ System.IntPtr pointerMask = (System.IntPtr)0;
+ System.IntPtr pointerDir = (System.IntPtr)0;
+ System.IntPtr pointerL1x = (System.IntPtr)0;
+ System.IntPtr pointerL1y = (System.IntPtr)0;
+ System.IntPtr pointerL1z = (System.IntPtr)0;
+ if (hasShadowMask) pointerMask = handleMask.AddrOfPinnedObject();
+ if (hasDir) pointerDir = handleDir.AddrOfPinnedObject();
+ if (hasSH)
+ {
+ pointerL1x = handleL1x.AddrOfPinnedObject();
+ pointerL1y = handleL1y.AddrOfPinnedObject();
+ pointerL1z = handleL1z.AddrOfPinnedObject();
+ }
+
+ errCode = halffloat2vb(scenePath + "\\" + lmname + (hasSH ? "_final_L0" : "_final_HDR") + (compressedOutput ? ".lz4" : ".dds"), pointer, 0);
+
+ if (hasShadowMask)
+ errCode2 = halffloat2vb(scenePath + "\\" + lmname + "_Mask" + (compressedOutput ? ".lz4" : ".dds"), pointerMask, 1);
+ if (hasDir)
+ errCode3 = halffloat2vb(scenePath + "\\" + lmname + "_final_Dir" + (compressedOutput ? ".lz4" : ".dds"), pointerDir, 1);
+
+ if (hasSH)
+ {
+ errCode4 = halffloat2vb(scenePath + "\\" + lmname + "_final_L1x" + (compressedOutput ? ".lz4" : ".dds"), pointerL1x, 1);
+ errCode5 = halffloat2vb(scenePath + "\\" + lmname + "_final_L1y" + (compressedOutput ? ".lz4" : ".dds"), pointerL1y, 1);
+ errCode6 = halffloat2vb(scenePath + "\\" + lmname + "_final_L1z" + (compressedOutput ? ".lz4" : ".dds"), pointerL1z, 1);
+ }
+
+ if (errCode == 0 && errCode2 == 0 && errCode3 == 0 && errCode4 == 0 && errCode5 == 0 && errCode6 == 0)
+ {
+ for(int i=0; i<storage.bakedIDs.Count; i++)
+ {
+ if (storage.bakedIDs[i] != LMID) continue;
+ var mr = storage.bakedRenderers[i];
+ var vertexOffset = storage.bakedVertexOffset[i];
+
+ var mesh = ftBuildGraphics.GetSharedMesh(mr);
+ int vertexCount = mesh.vertexCount;
+
+ var colorBuff = new Color32[vertexCount];
+ for(int j=0; j<vertexCount; j++)
+ {
+ colorBuff[j] = new Color32(vertColors[(vertexOffset + j) * 4],
+ vertColors[(vertexOffset + j) * 4 + 1],
+ vertColors[(vertexOffset + j) * 4 + 2],
+ vertColors[(vertexOffset + j) * 4 + 3]);
+ }
+
+ var newMesh = new Mesh();
+ newMesh.vertices = mesh.vertices;
+ newMesh.colors32 = colorBuff;
+
+ //float packScale = 254.0f / 255.0f;
+ //maskBuff[j] = new Vector2(r+(g/255.0f)*packScale, b+(a/255.0f)*packScale);
+
+ /*
+ uv2
+ x: shadowmask
+ y: dir/L1x
+ uv3
+ x: L1y
+ y: L1z
+ */
+
+ if (hasShadowMask || hasDir || hasSH)
+ {
+ var buff = new Vector2[vertexCount];
+ byte sr = 0, sg = 0, sb = 0, sa = 0;
+ byte dr = 0, dg = 0, db = 0;//, da = 0;
+ for(int j=0; j<vertexCount; j++)
+ {
+ if (hasShadowMask)
+ {
+ sr = vertColorsMask[(vertexOffset + j) * 4];
+ sg = vertColorsMask[(vertexOffset + j) * 4 + 1];
+ sb = vertColorsMask[(vertexOffset + j) * 4 + 2];
+ sa = vertColorsMask[(vertexOffset + j) * 4 + 3];
+ }
+ if (hasDir)
+ {
+ dr = vertColorsDir[(vertexOffset + j) * 4];
+ dg = vertColorsDir[(vertexOffset + j) * 4 + 1];
+ db = vertColorsDir[(vertexOffset + j) * 4 + 2];
+ //da = vertColorsDir[(vertexOffset + j) * 4 + 3];
+ }
+ else if (hasSH)
+ {
+ dr = vertColorsSHL1x[(vertexOffset + j) * 4];
+ dg = vertColorsSHL1x[(vertexOffset + j) * 4 + 1];
+ db = vertColorsSHL1x[(vertexOffset + j) * 4 + 2];
+ }
+ buff[j] = new Vector2(Pack4BytesToFloat(sr,sg,sb,sa), Pack3BytesToFloat(dr,dg,db));
+ }
+ newMesh.uv2 = buff;
+ }
+
+ if (hasSH)
+ {
+ var buff = new Vector2[vertexCount];
+ byte r1,g1,b1;
+ byte r2,g2,b2;
+ for(int j=0; j<vertexCount; j++)
+ {
+ r1 = vertColorsSHL1y[(vertexOffset + j) * 4];
+ g1 = vertColorsSHL1y[(vertexOffset + j) * 4 + 1];
+ b1 = vertColorsSHL1y[(vertexOffset + j) * 4 + 2];
+
+ r2 = vertColorsSHL1z[(vertexOffset + j) * 4];
+ g2 = vertColorsSHL1z[(vertexOffset + j) * 4 + 1];
+ b2 = vertColorsSHL1z[(vertexOffset + j) * 4 + 2];
+
+ buff[j] = new Vector2(Pack3BytesToFloat(r1,g1,b1), Pack3BytesToFloat(r2,g2,b2));
+ }
+ newMesh.uv3 = buff;
+ }
+
+ //newMesh.triangles = mesh.triangles; // debug only!
+
+ for(int s=0; s<sceneCount; s++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(s);
+ if (!scene.isLoaded) continue;
+ var st = storages[scene];
+ st.bakedVertexColorMesh[i] = newMesh;
+ }
+
+ var outPath = "Assets/" + outputPathFull + "/" + lmname + i + ".asset";
+ if (File.Exists(outPath)) ValidateFileAttribs(outPath);
+ AssetDatabase.CreateAsset(newMesh, outPath);
+ }
+ AssetDatabase.SaveAssets();
+ }
+ else
+ {
+ Debug.LogError("hf2vb: " + errCode + " " + errCode2 + " " + errCode3 + " " + errCode4 + " " + errCode5 + " " + errCode6);
+ }
+ }
+ finally
+ {
+ if (handle.IsAllocated) handle.Free();
+ if (handleMask.IsAllocated) handleMask.Free();
+ if (handleDir.IsAllocated) handleDir.Free();
+ if (handleL1x.IsAllocated) handleL1x.Free();
+ if (handleL1y.IsAllocated) handleL1y.Free();
+ if (handleL1z.IsAllocated) handleL1z.Free();
+ }
+
+ return errCode;
+ }
+
+ public void RenderReflectionProbesButton(bool showMsgWindows = true)
+ {
+ restoreFromGlobalSector = false;
+ userCanceled = false;
+ if (Application.isPlaying) return;
+ progressFunc = RenderReflProbesFunc();
+ EditorApplication.update += RenderReflProbesUpdate;
+ verbose = showMsgWindows;
+ bakeInProgress = true;
+ showProgressBar = true;
+ }
+
+ public void RenderLightProbesButton(bool showMsgWindows = true)
+ {
+ restoreFromGlobalSector = true;
+ userCanceled = false;
+ fullSectorRender = false;
+ if (Application.isPlaying) return;
+ if (!TestSystemSpecs()) return;
+ if (lightProbeMode == LightProbeMode.Legacy)
+ {
+ progressFunc = RenderLightProbesFunc();
+ EditorApplication.update += RenderLightProbesUpdate;
+ verbose = showMsgWindows;
+ bakeInProgress = true;
+ }
+ else if (lightProbeMode == LightProbeMode.L1)
+ {
+ selectedOnly = false;
+ probesOnlyL1 = true;
+ progressFunc = RenderLightmapFunc();
+ EditorApplication.update += RenderLightmapUpdate;
+ verbose = showMsgWindows;
+ bakeInProgress = true;
+ }
+ showProgressBar = true;
+ }
+
+ public void RenderButton(bool showMsgWindows = true)
+ {
+ restoreFromGlobalSector = true;
+ userCanceled = false;
+ if (Application.isPlaying) return;
+ if (!TestSystemSpecs()) return;
+ verbose = showMsgWindows;
+
+ if (clientMode)
+ {
+ if (!ftClient.connectedToServer)
+ {
+ DebugLogError("Network rendering is enabled, but server is disconnected.");
+ return;
+ }
+ if (ftClient.lastServerErrorCode == ftClient.SERVERERROR_BUSY)
+ {
+ DebugLogError("Server is busy.");
+ return;
+ }
+ }
+ else
+ {
+ if (!foundCompatibleSetup && verbose)
+ {
+ if (gstorage != null) gstorage.foundCompatibleSetup = true;
+ foundCompatibleSetup = true;
+ int answer = EditorUtility.DisplayDialogComplex("Bakery", "Would you like to automatically detect optimal settings for your hardware? You can also do it later via Bakery/Utilities/Detect optimal settings", "Yes", "No", "Never");
+ if (answer == 0)
+ {
+ ftDetectSettings.DetectCompatSettings();
+ return;
+ }
+ else if (answer == 2)
+ {
+ gstorage.foundCompatibleSetup = foundCompatibleSetup = true;
+ gstorage.gpuName = SystemInfo.graphicsDeviceName;
+ EditorUtility.SetDirty(gstorage);
+ }
+ }
+ }
+
+ if (pstorage == null) pstorage = ftLightmaps.GetProjectSettings();
+
+ if (pstorage.deletePreviousLightmapsBeforeBake)
+ {
+ ftClearMenu.ClearBakedData(ftClearMenu.SceneClearingMode.nothing, true);
+ }
+
+ if (OnPreFullRender != null)
+ {
+ OnPreFullRender.Invoke(this, null);
+ }
+
+#if UNITY_2018_3_OR_NEWER
+ unityEditorHWND = GetForegroundWindow();
+ var wnd = GetParent(unityEditorHWND);
+ while(wnd != (System.IntPtr)0)
+ {
+ unityEditorHWND = wnd;
+ wnd = GetParent(unityEditorHWND);
+ }
+
+ var titleBuff = new StringBuilder(256);
+ if (GetWindowText(unityEditorHWND, titleBuff, 256) > 0)
+ {
+ DebugLogInfo("Editor window: " + titleBuff.ToString());
+ }
+ else
+ {
+ DebugLogInfo("Unable to get editor window name");
+ }
+#endif
+
+ selectedOnly = false;
+ probesOnlyL1 = false;
+ fullSectorRender = curSector != null;
+ hasAnyVolumes = true; // possibly - ftBuildGraphics will figure it out
+ progressFunc = RenderLightmapFunc();
+ EditorApplication.update += RenderLightmapUpdate;
+ bakeInProgress = true;
+ showProgressBar = true;
+ }
+
+ string Float2String(float val)
+ {
+ return ("" + val).Replace(",", "."); // newer Unity versions can break float formatting by incorrectly applying regional settings
+ }
+
+ public static string progressBarText;
+ public static float progressBarPercent = 0;
+ float progressBarStep = 0;
+ public static bool progressBarEnabled = false;
+ public static bool userCanceled = false; // can be used externally to check if the bake progress was cancelled
+ int progressSteps, progressStepsDone;
+ IEnumerator progressFunc;
+ public static bool bakeInProgress = false;
+ void ProgressBarInit(string startText)
+ {
+ ProgressBarSetStep(0);
+ progressBarText = startText;
+ progressBarEnabled = true;
+ if (showProgressBar) simpleProgressBarShow("Bakery", progressBarText, progressBarPercent, progressBarStep, false);
+ }
+ void ProgressBarSetStep(float step)
+ {
+ progressBarStep = step;
+ }
+ void ProgressBarShow(string text, float percent, bool onTop)
+ {
+ progressBarText = text;
+ progressBarPercent = percent;
+ if (showProgressBar) simpleProgressBarShow("Bakery", progressBarText, progressBarPercent, progressBarStep, onTop);
+ userCanceled = simpleProgressBarCancelled();
+ }
+ public static void ProgressBarEnd(bool freeAreas = true)
+ {
+ if (freeAreas) ftBuildGraphics.FreeTemporaryAreaLightMeshes();
+ if (scenesUnloaded) LoadScenes();
+
+ if (revertReflProbesValue)
+ {
+ QualitySettings.realtimeReflectionProbes = reflProbesValue;
+ revertReflProbesValue = false;
+ }
+
+ if (userCanceled && restoreFromGlobalSector && ftRenderLightmap.instance != null)
+ {
+ if (ftRenderLightmap.instance.unloadScenesInDeferredMode)
+ {
+ MergeSectorsDeferred();
+ }
+ else
+ {
+ MergeSectors();
+ }
+ }
+
+ progressBarEnabled = false;
+ if (showProgressBar) simpleProgressBarEnd();
+ }
+ void OnInspectorUpdate()
+ {
+ Repaint();
+ }
+ string twoChars(int i)
+ {
+ if (i < 10) return "0" + i;
+ return "" + i;
+ }
+ void OnGUI()
+ {
+ if (progressBarEnabled)
+ {
+ return;
+ }
+
+ if (tryFixingSceneView)
+ {
+ FindGlobalStorage();
+ if (gstorage != null)
+ {
+ // Fix checker preview being incorrectly set for scene view
+ if (gstorage.checkerPreviewOn && !showChecker)
+ {
+ var sceneView = SceneView.lastActiveSceneView;
+ if (sceneView != null)
+ {
+ sceneView.SetSceneViewShaderReplace(null, null);
+ gstorage.checkerPreviewOn = false;
+ EditorUtility.SetDirty(gstorage);
+ }
+ }
+
+ if (gstorage.rtSceneViewPreviewOn)
+ {
+ var sceneView = SceneView.lastActiveSceneView;
+ if (sceneView != null)
+ {
+ sceneView.SetSceneViewShaderReplace(null, null);
+ gstorage.rtSceneViewPreviewOn = false;
+ EditorUtility.SetDirty(gstorage);
+ }
+ }
+ }
+ tryFixingSceneView = false;
+ }
+
+ int y = 0;
+
+ var headerStyle = EditorStyles.label;
+ var numberBoxStyle = EditorStyles.numberField;
+ var textBoxStyle = EditorStyles.textField;
+
+#if UNITY_2019_3_OR_NEWER
+ if (EditorGUIUtility.isProSkin)
+ {
+ headerStyle = new GUIStyle(EditorStyles.whiteLabel);
+ }
+ else
+ {
+ headerStyle = new GUIStyle(EditorStyles.label);
+ }
+ headerStyle.alignment = TextAnchor.UpperLeft;
+ headerStyle.padding = new RectOffset(0,0,5,0);
+
+ numberBoxStyle = new GUIStyle(numberBoxStyle);
+ numberBoxStyle.alignment = TextAnchor.MiddleLeft;
+ numberBoxStyle.contentOffset = new Vector2(0, -1);
+
+ textBoxStyle = new GUIStyle(textBoxStyle);
+ textBoxStyle.alignment = TextAnchor.MiddleLeft;
+ textBoxStyle.contentOffset = new Vector2(0, -1);
+#endif
+
+ if (foldoutStyle == null)
+ {
+ foldoutStyle = new GUIStyle(EditorStyles.foldout);
+ //foldoutStyle.fontStyle = FontStyle.Bold;
+ }
+
+ if (PlayerSettings.colorSpace != ColorSpace.Linear)
+ {
+ y += 15;
+ GUI.BeginGroup(new Rect(10, y, 300, 120), "[Gamma mode detected]", headerStyle); y += 30;
+#if UNITY_2019_3_OR_NEWER
+ int by = 20;
+#else
+ int by = 15;
+#endif
+ if (GUI.Button(new Rect(15, by, 200, 20), "Switch project to linear lighting"))
+ {
+ if (EditorUtility.DisplayDialog("Bakery", "Linear lighting mode is essential for getting realistic results. Switching the project may force Unity to reimport assets. It can take some time, depending on project size. Continue?", "OK", "Cancel"))
+ {
+ PlayerSettings.colorSpace = ColorSpace.Linear;
+ }
+ }
+ GUI.EndGroup();
+ y += 10;
+ }
+
+ var aboutRect = new Rect(10, y+5, 250, 20);
+ var linkStyle = new GUIStyle();
+ linkStyle.richText = true;
+ var clr = GUI.contentColor;
+ GUI.contentColor = Color.blue;
+ GUI.Label(aboutRect, new GUIContent("<color=#5073c9ff><b>Bakery - GPU Lightmapper by Mr F</b></color>", "Version 1.9. Go to Bakery Wiki"), linkStyle);
+ GUI.Label(aboutRect, new GUIContent("<color=#5073c9ff><b>____________________________</b></color>", "Go to Bakery Wiki"), linkStyle);
+ if (Event.current.type == EventType.MouseUp && aboutRect.Contains(Event.current.mousePosition))
+ {
+ Application.OpenURL("https://geom.io/bakery/wiki/");
+ }
+ GUI.contentColor = clr;
+ y += 15;
+
+ bool simpleWindowIsTooSmall = position.height < 300;
+
+ float scrollHeight = 0;
+ if (settingsMode >= SettingsMode.Advanced || simpleWindowIsTooSmall)
+ {
+ scrollHeight = 620+y+(showAOSettings ? 65 : 15)+(showPaths ? 70 : 0) + (userRenderMode==RenderMode.Shadowmask ? 20 : 0) + 40;
+ if (showPerf) scrollHeight += 160;
+#if UNITY_2019_3_OR_NEWER
+ scrollHeight += 30;
+#endif
+ scrollHeight += 40;// + (showCompression ? 25*3 : 0);
+ scrollHeight += 60;
+ scrollHeight += showTasks2 ? 55+30 : 5;
+ scrollHeight += showTasks ? (settingsMode == SettingsMode.Experimental ? 140 : 100) : 0;
+ scrollHeight += 20;
+ scrollHeight += ftBuildGraphics.texelsPerUnitPerMap ? 120 : 0;
+ scrollHeight += showCheckerSettings ? 30+20 : 30;
+ scrollHeight += (showCheckerSettings && showChecker) ? 20 : 0;
+ scrollHeight += (renderDirMode == RenderDirMode.RNM || renderDirMode == RenderDirMode.SH) ? (showDirWarning ? 60 : 10) : 0;
+ if (ftBuildGraphics.unwrapUVs) scrollHeight += 20;
+ if (settingsMode == SettingsMode.Advanced) scrollHeight += 100;
+ if (settingsMode == SettingsMode.Simple) scrollHeight = this.minSize.y - 30;
+ if (settingsMode == SettingsMode.Experimental)
+ {
+ scrollHeight += 240;
+ if (ftBuildGraphics.atlasPacker == ftGlobalStorage.AtlasPacker.xatlas) scrollHeight += 60;
+ if (ftBuildGraphics.unwrapUVs) scrollHeight += 30;
+ if (denoise) scrollHeight += 20;
+ if (showNet) scrollHeight += clientMode ? 120 : 30;
+ }
+ scrollPos = GUI.BeginScrollView(new Rect(0, 10+y, 270, position.height-20), scrollPos, new Rect(0,10+y,200,scrollHeight));
+ }
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+ this.minSize = new Vector2(position.height >= scrollHeight ? 250 : 270, 700);
+ }
+ this.maxSize = new Vector2(this.minSize.x, settingsMode >= SettingsMode.Advanced ? 820 : this.minSize.y + 1);
+
+ GUI.contentColor = new Color(clr.r, clr.g, clr.b, 0.5f);
+ int hours = lastBakeTime / (60*60);
+ int minutes = (lastBakeTime / 60) % 60;
+ int seconds = lastBakeTime % 60;
+ GUI.Label(new Rect(105, y+10, 130, 20), "Last bake: "+twoChars(hours)+"h "+twoChars(minutes)+"m "+twoChars(seconds)+"s", EditorStyles.miniLabel);
+ GUI.contentColor = clr;
+
+ GUI.BeginGroup(new Rect(10, 10+y, 300, 340), "Settings", headerStyle);
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ var opts = new GUILayoutOption[1];
+ opts[0] = GUILayout.Width(225);
+ settingsMode = (SettingsMode)EditorGUILayout.EnumPopup(settingsMode, opts);
+ y += 40;
+ //EditorGUILayout.Space();
+ //EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ userRenderMode = (RenderMode)EditorGUILayout.EnumPopup(userRenderMode, opts);
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ renderDirMode = (RenderDirMode)EditorGUILayout.EnumPopup(renderDirMode, opts);
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ //EditorGUILayout.Space();
+ lightProbeMode = (LightProbeMode)EditorGUILayout.EnumPopup(lightProbeMode, opts);
+ }
+
+ if (settingsMode == SettingsMode.Experimental)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ ftBuildGraphics.atlasPacker = (ftGlobalStorage.AtlasPacker)EditorGUILayout.EnumPopup(ftBuildGraphics.atlasPacker, opts);
+ }
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+
+ var uvMode = AdjustUVMode.DontChange;
+ if (ftBuildGraphics.unwrapUVs)
+ {
+ uvMode = AdjustUVMode.Adjust;
+ }
+ else if (ftBuildGraphics.forceDisableUnwrapUVs)
+ {
+ uvMode = AdjustUVMode.ForceDisableAdjust;
+ }
+
+ uvMode = (AdjustUVMode)EditorGUILayout.Popup((int)uvMode, adjustUVOptions, opts);
+
+ if (uvMode == AdjustUVMode.DontChange)
+ {
+ ftBuildGraphics.unwrapUVs = false;
+ ftBuildGraphics.forceDisableUnwrapUVs = false;
+ }
+ else if (uvMode == AdjustUVMode.Adjust)
+ {
+ ftBuildGraphics.unwrapUVs = true;
+ ftBuildGraphics.forceDisableUnwrapUVs = false;
+ }
+ else
+ {
+ ftBuildGraphics.unwrapUVs = false;
+ ftBuildGraphics.forceDisableUnwrapUVs = true;
+ }
+ }
+
+ if (settingsMode == SettingsMode.Experimental && ftBuildGraphics.unwrapUVs)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ //EditorGUILayout.Space();
+ var prev = unwrapper;
+ unwrapper = (ftGlobalStorage.Unwrapper)EditorGUILayout.EnumPopup(unwrapper, opts);
+ if (unwrapper != prev)
+ {
+ if (unwrapper == ftGlobalStorage.Unwrapper.xatlas)
+ {
+ FindGlobalStorage();
+ if (gstorage != null && !gstorage.xatlasWarningShown)
+ {
+ gstorage.xatlasWarningShown = true;
+ EditorUtility.SetDirty(gstorage);
+ if (!EditorUtility.DisplayDialog("Bakery", "xatlas may provide better UV unwrapping for models with 'Generate lightmap UVs' if 'Adjust UV padding' is enabled in Bakery.\nBut there are several limitations:\n\nTo share a baked scene unwrapped with xatlas, Editor/x64/Bakery/scripts/xatlas folder must be included.\n\nxatlas is native library, so currently any PC opening a baked scene in Unity editor must be on x64 Windows.\n", "Use xatlas", "Cancel"))
+ {
+ unwrapper = ftGlobalStorage.Unwrapper.Default;
+ }
+ }
+ }
+ }
+ }
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ denoiserType = (ftGlobalStorage.DenoiserType)EditorGUILayout.EnumPopup(denoiserType, opts);
+ }
+
+ GUI.EndGroup();
+
+ GUI.BeginGroup(new Rect(10, 10+y, 300, 120), "Render mode", headerStyle);
+ y += 40;
+
+ //bool prevVal = bakeWithNormalMaps;
+ //bakeWithNormalMaps = GUI.Toggle(new Rect(2, 40, 200, 20), bakeWithNormalMaps, new GUIContent("Bake with normal maps", "Bake normal map effect into lightmaps"));
+ //y += 20;
+
+ GUI.EndGroup();
+
+ GUI.BeginGroup(new Rect(10, 10+y, 300, 120), "Directional mode", headerStyle);
+ y += 40;
+
+ GUI.EndGroup();
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+#if UNITY_2019_3_OR_NEWER
+#else
+ y -= 4;
+#endif
+ GUI.BeginGroup(new Rect(10, 10+y, 300, 120), "Light probe mode", headerStyle);
+ y += 40;
+ GUI.EndGroup();
+ }
+
+ if (settingsMode == SettingsMode.Experimental)
+ {
+#if UNITY_2019_3_OR_NEWER
+#else
+ y -= 3;
+#endif
+ GUI.BeginGroup(new Rect(10, 10+y, 300, 120), "Atlas packer", headerStyle);
+ y += 40;
+ GUI.EndGroup();
+ }
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+#if UNITY_2019_3_OR_NEWER
+#else
+ if (settingsMode == SettingsMode.Advanced) y -= 3;
+#endif
+ GUI.BeginGroup(new Rect(10, 10+y, 300, 120), "Asset UV processing", headerStyle);
+ y += 40;
+ GUI.EndGroup();
+ }
+
+ if (settingsMode == SettingsMode.Experimental && ftBuildGraphics.unwrapUVs)
+ {
+#if UNITY_2019_3_OR_NEWER
+#else
+ y -= 3;
+#endif
+ GUI.BeginGroup(new Rect(10, 10+y, 300, 120), "Unwrapper", headerStyle);
+ y += 40;
+ GUI.EndGroup();
+ }
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+#if UNITY_2019_3_OR_NEWER
+#else
+ y -= 3;
+#endif
+ GUI.BeginGroup(new Rect(10, 10+y, 300, 120), "Denoiser", headerStyle);
+ y += 40;
+#if UNITY_2019_3_OR_NEWER
+ y += 3;
+#endif
+ GUI.EndGroup();
+ }
+
+#if UNITY_2017_1_OR_NEWER
+ if (userRenderMode == RenderMode.Shadowmask)
+ {
+ GUI.BeginGroup(new Rect(10, 10+y, 300, 120), "", headerStyle);
+ var prevVal = isDistanceShadowmask;
+ isDistanceShadowmask = GUI.Toggle(new Rect(2, 0, 200, 20), isDistanceShadowmask, new GUIContent("Distance shadowmask", "Use complete real-time shadows close to camera."));
+ if (isDistanceShadowmask != prevVal)
+ {
+ QualitySettings.shadowmaskMode = isDistanceShadowmask ? ShadowmaskMode.DistanceShadowmask : ShadowmaskMode.Shadowmask;
+ }
+ y += 25;
+ GUI.EndGroup();
+ }
+#endif
+
+ if (renderDirMode == RenderDirMode.RNM || renderDirMode == RenderDirMode.SH)
+ {
+ showDirWarning = EditorGUI.Foldout(new Rect(10,y+10,220,20), showDirWarning, "Directional mode info", foldoutStyle);
+ if (showDirWarning)
+ {
+ var str = renderDirMode + " maps require special shader";
+ EditorGUI.HelpBox(new Rect(15,y+30,220,40), str, MessageType.Info);
+ y += 45;
+ }
+ y += 20;
+ }
+
+ if (settingsMode < SettingsMode.Advanced)
+ {
+ this.minSize = new Vector2(250, 310+20-40 + y + 45 + 40 + 20 + (showTasks2 ? 40+30 : 0) +
+ (userRenderMode == RenderMode.AmbientOcclusionOnly ? (showAOSettings ? 20 : -40) : 0));
+ }
+
+ y += 10;
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+ showTasks = EditorGUI.Foldout(new Rect(10, y, 300, 20), showTasks, "Lightmapping tasks", foldoutStyle);
+ y += 20;
+
+ if (showTasks)
+ {
+ int xx = 20;
+ int yy = y;// - 20;
+ //GUI.BeginGroup(new Rect(10, y, 300, 160+20), "Lightmapping tasks", headerStyle);
+ if (settingsMode == SettingsMode.Experimental)
+ {
+ forceRebuildGeometry = GUI.Toggle(new Rect(xx, yy, 200, 20), forceRebuildGeometry, new GUIContent("Export geometry and maps", "Exports geometry, textures and lightmap properties to Bakery format. This is required, but if you already rendered the scene, and if no changes to meshes/maps/lightmap resolution took place, you may disable this checkbox to skip this step."));
+ yy += 20;
+ }
+ //ftBuildGraphics.unwrapUVs = GUI.Toggle(new Rect(xx, yy, 200, 20), ftBuildGraphics.unwrapUVs, new GUIContent("Adjust UV padding", "For meshes with 'Generate lightmap UVs' checkbox enabled, adjusts UVs further to have proper padding between UV islands for each mesh. Model-wide Pack Margin in importer settings is ignored."));
+ //yy += 20;
+ y -= 20;
+
+ adjustSamples = GUI.Toggle(new Rect(xx, yy, 200, 20), adjustSamples, new GUIContent("Adjust sample positions", "Find best sample positions to prevent lighting leaks."));
+ yy += 20;
+ unloadScenesInDeferredMode = GUI.Toggle(new Rect(xx, yy, 200, 20), unloadScenesInDeferredMode, new GUIContent("Unload scenes before render", "Unloads Unity scenes before baking to free up video memory."));
+ yy += 20;
+ if (settingsMode == SettingsMode.Experimental)
+ {
+ forceRefresh = GUI.Toggle(new Rect(xx, yy, 200, 20), forceRefresh, new GUIContent("Update unmodified lights", "Update lights that didn't change since last rendering. You can disable this checkbox to skip these lights. Note that it only tracks changes to light objects. If scene geometry changed, then you still need to update all lights."));
+ yy += 20;
+ performRendering = GUI.Toggle(new Rect(xx, yy, 200, 20), performRendering, new GUIContent("Update modified lights and GI", "Update lights that did change since last rendering, plus GI."));
+ yy += 20;
+ }
+ denoise = GUI.Toggle(new Rect(xx, yy, 200, 20), denoise, new GUIContent("Denoise", "Apply denoising algorithm to lightmaps"));
+ yy += 20;
+ if (settingsMode == SettingsMode.Experimental && denoise)
+ {
+ denoise2x = GUI.Toggle(new Rect(xx, yy, 200, 20), denoise2x, new GUIContent("Denoise: fix bright edges", "Sometimes the neural net used for denoising may produce bright edges around shadows, like if a sharpening effect was applied. If this option is enabled, Bakery will try to filter them away."));
+ yy += 20;
+ y += 20;
+ }
+ fixSeams = GUI.Toggle(new Rect(xx, yy, 200, 20), fixSeams, new GUIContent("Fix Seams", "Fix UV seams on lightmaps"));
+ //GUI.EndGroup();
+ y += (settingsMode == SettingsMode.Experimental ? (135 + 5) : (135 + 30) - 80);
+ y += 20;
+ }
+ }
+
+ GUI.BeginGroup(new Rect(10, y, 300, 340), "Auto-atlasing", headerStyle);
+
+ int ay = 20;
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+ ftBuildGraphics.splitByScene = GUI.Toggle(new Rect(10, ay, 200, 20), ftBuildGraphics.splitByScene, new GUIContent("Split by scene", "Bake separate lightmap atlases for every scene. Useful to limit the amount of textures loaded when scenes are streamed."));
+ ay += 20;
+ y += 20;
+ if (settingsMode >= SettingsMode.Experimental)
+ {
+ if (ftBuildGraphics.atlasPacker == ftGlobalStorage.AtlasPacker.xatlas)
+ {
+ ftBuildGraphics.postPacking = GUI.Toggle(new Rect(10, ay, 200, 20), ftBuildGraphics.postPacking, new GUIContent("Post-packing", "Try to minimize final atlas count by combining different LODs, terrains and regular meshes in one texture."));
+ ay += 20;
+ y += 20;
+ }
+ }
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+ if (ftBuildGraphics.atlasPacker == ftGlobalStorage.AtlasPacker.xatlas)
+ {
+ ftBuildGraphics.holeFilling = GUI.Toggle(new Rect(10, ay, 200, 20), ftBuildGraphics.holeFilling, new GUIContent("Hole filling", "Fill holes while packing UV layouts to optimize atlas usage. If disabled, layouts are packed as bounding rectangles."));
+ ay += 20;
+ y += 20;
+ }
+ }
+
+ if (settingsMode >= SettingsMode.Experimental)
+ {
+ if (ftBuildGraphics.unwrapUVs)
+ {
+ ftBuildGraphics.uvPaddingMax = GUI.Toggle(new Rect(10, ay, 200, 20), ftBuildGraphics.uvPaddingMax, new GUIContent("UV padding: increase only", "When finding optimal UV padding for given resolution, the value will never get smaller comparing to previously baked scenes. This is useful when the same model is used across multiple scenes with different lightmap resolution."));
+ ay += 20;
+ y += 20;
+ }
+ }
+ }
+
+ GUI.Label(new Rect(10, ay, 100, 15), new GUIContent("Texels per unit:", "Approximate amount of lightmap pixels per unit allocated for lightmapped objects without Bakery LMGroup component."));
+ texelsPerUnit = EditorGUI.FloatField(new Rect(110, ay, 110, 15), texelsPerUnit, numberBoxStyle);
+ ftBuildGraphics.texelsPerUnit = texelsPerUnit;
+ ay += 20;
+
+ GUI.Label(new Rect(10, ay, 100, 15), new GUIContent("Max resolution:"));
+ ay += 20;
+ GUI.Label(new Rect(10, ay, 100, 15), ""+ftBuildGraphics.maxAutoResolution);
+ ftBuildGraphics.maxAutoResolution = 1 << (int)GUI.HorizontalSlider(new Rect(50, ay, 170, 15), Mathf.Ceil(Mathf.Log(ftBuildGraphics.maxAutoResolution)/Mathf.Log(2)), 8, 12);
+ ay += 20;
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+ GUI.Label(new Rect(10, ay, 100, 15), new GUIContent("Min resolution:"));
+ ay += 20;
+ GUI.Label(new Rect(10, ay, 100, 15), ""+ftBuildGraphics.minAutoResolution);
+ ftBuildGraphics.minAutoResolution = 1 << (int)GUI.HorizontalSlider(new Rect(50, ay, 170, 15), Mathf.Log(ftBuildGraphics.minAutoResolution)/Mathf.Log(2), 4, 12);
+ y += 40;
+ ay += 20;
+ }
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+ ftBuildGraphics.texelsPerUnitPerMap = EditorGUI.Foldout(new Rect(0, ay, 230, 20), ftBuildGraphics.texelsPerUnitPerMap, "Scale per map type", foldoutStyle);
+ ay += 20;
+ if (ftBuildGraphics.texelsPerUnitPerMap)
+ {
+ GUI.Label(new Rect(10, ay, 150, 20), new GUIContent("Main lightmap scale:"));
+ ay += 20;
+ float actualDiv = 1 << (int)((1.0f - ftBuildGraphics.mainLightmapScale) * 6);
+ GUI.Label(new Rect(10, ay, 85, 15), "1/"+ actualDiv);
+ ftBuildGraphics.mainLightmapScale = GUI.HorizontalSlider(new Rect(50, ay, 170, 15), ftBuildGraphics.mainLightmapScale, 0, 1);
+ ay += 20;
+
+ GUI.Label(new Rect(10, ay, 150, 20), new GUIContent("Shadowmask scale:"));
+ ay += 20;
+ actualDiv = 1 << (int)((1.0f - ftBuildGraphics.maskLightmapScale) * 6);
+ GUI.Label(new Rect(10, ay, 85, 15), "1/"+ actualDiv);
+ ftBuildGraphics.maskLightmapScale = GUI.HorizontalSlider(new Rect(50, ay, 170, 15), ftBuildGraphics.maskLightmapScale, 0, 1);
+ ay += 20;
+
+ GUI.Label(new Rect(10, ay, 150, 20), new GUIContent("Direction scale:"));
+ ay += 20;
+ actualDiv = 1 << (int)((1.0f - ftBuildGraphics.dirLightmapScale) * 6);
+ GUI.Label(new Rect(10, ay, 85, 15), "1/"+ actualDiv);
+ ftBuildGraphics.dirLightmapScale = GUI.HorizontalSlider(new Rect(50, ay, 170, 15), ftBuildGraphics.dirLightmapScale, 0, 1);
+ ay += 20;
+
+ y += 120;
+ }
+ y += 20;
+
+ showCheckerSettings = EditorGUI.Foldout(new Rect(0, ay, 230, 20), showCheckerSettings, "Checker preview", foldoutStyle);
+ ay += 20;
+ if (showCheckerSettings)
+ {
+ var prevValue = ftSceneView.enabled;
+ showChecker = GUI.Toggle(new Rect(10, ay, 230, 20), ftSceneView.enabled, new GUIContent("Show checker", "Renders checker in scene view."));
+ if (showChecker != prevValue)
+ {
+ ftSceneView.ToggleChecker();
+ }
+ ay += 20;
+ y += 20;
+ if (showChecker)
+ {
+ if (GUI.Button(new Rect(10, ay, 220, 20), "Refresh checker"))
+ {
+ ftSceneView.RefreshChecker();
+ }
+ ay += 20;
+ y += 20;
+ }
+ }
+ y += 20;
+ }
+
+ GUI.EndGroup();
+ y += 45 + 40;
+
+ if (userRenderMode != RenderMode.AmbientOcclusionOnly)
+ {
+ y += 5;
+ GUI.BeginGroup(new Rect(10, y, 300, 300), "Global Illumination", headerStyle);
+
+ GUI.Label(new Rect(10, 20, 70, 15), new GUIContent("Bounces:", "How many times light ray bounces off surfaces. Lower values are faster to render, while higher values ensure light reaches highly occluded places like interiors, caves, etc."));
+ var textBounces = GUI.TextField(new Rect(70, 20, 25, 15), "" + bounces, textBoxStyle);
+ textBounces = Regex.Replace(textBounces, "[^0-9]", "");
+ System.Int32.TryParse(textBounces, out bounces);
+ bounces = (int)GUI.HorizontalSlider(new Rect(100, 20, 120, 15), bounces, 0, 5);
+
+ GUI.Label(new Rect(10, 20+20, 70, 15), new GUIContent("Samples:", "Quality of GI. More samples produce cleaner lighting with less noise."));
+ var textGISamples = GUI.TextField(new Rect(70, 20+20, 25, 15), "" + giSamples, textBoxStyle);
+ textGISamples = Regex.Replace(textGISamples, "[^0-9]", "");
+ System.Int32.TryParse(textGISamples, out giSamples);
+ giSamples = (int)GUI.HorizontalSlider(new Rect(100, 20+20, 120, 15), giSamples, 1, 64);
+ }
+ else
+ {
+ GUI.BeginGroup(new Rect(10, y-60, 300, 300), "", headerStyle);
+ }
+
+ GUI.EndGroup();
+ if (userRenderMode != RenderMode.AmbientOcclusionOnly) y += 60;
+
+ if (settingsMode == SettingsMode.Simple && userRenderMode == RenderMode.AmbientOcclusionOnly)
+ {
+ showAOSettings = true;
+ showAOSettings = EditorGUI.Foldout(new Rect(10, y, 300, 20), showAOSettings, "Ambient occlusion");
+ if (showAOSettings)
+ {
+ int xx = 15;
+ int yy = y + 10;
+ int ww = 110;
+
+ GUI.Label(new Rect(10+xx, 15+yy, 100, 15), new GUIContent("Intensity:", "AO visibility. Disabled if set to 0."));
+ hackAOIntensity = EditorGUI.FloatField(new Rect(95+xx, 15+yy, ww, 15), hackAOIntensity, numberBoxStyle);
+
+ GUI.Label(new Rect(10+xx, 30+yy, 100, 15), new GUIContent("Radius:", "AO radius"));
+ hackAORadius = EditorGUI.FloatField(new Rect(95+xx, 30+yy, ww, 15), hackAORadius, numberBoxStyle);
+
+ GUI.Label(new Rect(10+xx, 45+yy, 100, 15), new GUIContent("Samples:", "Affects the quality of AO"));
+ hackAOSamples = EditorGUI.IntField(new Rect(95+xx, 45+yy, ww, 15), hackAOSamples, numberBoxStyle);
+
+ y += 60;
+ }
+ y += 20;
+ }
+ else if (settingsMode >= SettingsMode.Advanced)
+ {
+ //showHacks = EditorGUI.Foldout(new Rect(10, y, 300, 300), showHacks, "Hacks");
+ //y += 20;
+ //if (showHacks)
+ {
+ GUI.BeginGroup(new Rect(10, y, 300, 300), "Hacks", headerStyle);
+
+ int yy = 20;
+ GUI.Label(new Rect(10, yy, 100, 15), new GUIContent("Emissive boost:", "Multiplies light from emissive surfaces."));
+ hackEmissiveBoost = EditorGUI.FloatField(new Rect(110, yy, 110, 15), hackEmissiveBoost, numberBoxStyle);
+ yy += 20;
+
+ GUI.Label(new Rect(10, yy, 100, 15), new GUIContent("Indirect boost:", "Multiplies indirect intensity for all lights."));
+ hackIndirectBoost = EditorGUI.FloatField(new Rect(110, yy, 110, 15), hackIndirectBoost, numberBoxStyle);
+ yy += 20;
+
+ GUI.Label(new Rect(10, yy, 120, 20), new GUIContent("Backface GI:", "How much light is emitted via back faces from 0 (black) to 1 (equals to front face)."));
+ giBackFaceWeight = EditorGUI.FloatField(new Rect(110, yy, 110, 15), giBackFaceWeight, numberBoxStyle);
+ yy += 20;
+
+ showAOSettings = EditorGUI.Foldout(new Rect(10, yy, 300, 20), showAOSettings, "Ambient occlusion");
+ yy += 20;
+ y += 15+40;
+ if (showAOSettings)
+ {
+ int xx = 15;
+ yy = 45+40;
+ int ww = 110;
+
+ GUI.Label(new Rect(10+xx, 15+yy, 100, 15), new GUIContent("Intensity:", "AO visibility. Disabled if set to 0."));
+ hackAOIntensity = EditorGUI.FloatField(new Rect(95+xx, 15+yy, ww, 15), hackAOIntensity, numberBoxStyle);
+
+ GUI.Label(new Rect(10+xx, 30+yy, 100, 15), new GUIContent("Radius:", "AO radius"));
+ hackAORadius = EditorGUI.FloatField(new Rect(95+xx, 30+yy, ww, 15), hackAORadius, numberBoxStyle);
+
+ GUI.Label(new Rect(10+xx, 45+yy, 100, 15), new GUIContent("Samples:", "Affects the quality of AO"));
+ hackAOSamples = EditorGUI.IntField(new Rect(95+xx, 45+yy, ww, 15), hackAOSamples, numberBoxStyle);
+
+ y += 50;
+ }
+
+ GUI.EndGroup();
+ y += 50;
+ }
+
+ showPerf = EditorGUI.Foldout(new Rect(10, y, 300, 20), showPerf, "Performance", foldoutStyle);
+ y += 20;
+ if (showPerf)
+ {
+ int xx = 10;
+
+ var prev = rtxMode;
+ rtxMode =
+ GUI.Toggle(new Rect(xx, y, 200, 20), rtxMode,
+ new GUIContent(" RTX mode", "Enables RTX hardware acceleration (requires supported hardware)."));
+ if (prev != rtxMode)
+ {
+ ftraceExe = rtxMode ? ftraceExe6 : ftraceExe1;
+ if (rtxMode) ftBuildGraphics.exportTerrainAsHeightmap = false;
+ }
+ y += 20;
+
+ ftBuildGraphics.exportTerrainTrees =
+ GUI.Toggle(new Rect(xx, y, 200, 20), ftBuildGraphics.exportTerrainTrees,
+ new GUIContent(" Export terrain trees", "If enabled, painted terrain trees will affect lighting. Trees themselves will not be baked."));
+ y += 20;
+
+ prev = ftBuildGraphics.exportTerrainAsHeightmap;
+ //if (settingsMode >= SettingsMode.Experimental)
+ //{
+ ftBuildGraphics.exportTerrainAsHeightmap =
+ GUI.Toggle(new Rect(xx, y, 200, 20), ftBuildGraphics.exportTerrainAsHeightmap,
+ new GUIContent(" Terrain optimization", "If enabled, terrains use separate ray tracing technique to take advantage of their heightfield geometry. Otherwise they are treated like any other mesh."));
+ if (prev != ftBuildGraphics.exportTerrainAsHeightmap)
+ {
+ if (ftBuildGraphics.exportTerrainAsHeightmap)
+ {
+ rtxMode = false;
+ ftraceExe = ftraceExe1;
+ }
+ }
+ y += 20;
+ //}
+
+ if (settingsMode >= SettingsMode.Experimental)
+ {
+#if UNITY_2020_1_OR_NEWER
+ compressVolumes =
+ GUI.Toggle(new Rect(xx, y, 200, 20), compressVolumes,
+ new GUIContent(" Compress volumes", "Apply texture compression to volume 3D textures and switch Bakery shaders to a corresponding sampling mode. Not recommended for very low resolution volumes. Volume size may be increased to be a multiple of 4."));
+#else
+ GUI.enabled = false;
+ compressVolumes =
+ GUI.Toggle(new Rect(xx, y, 200, 20), compressVolumes,
+ new GUIContent(" Compress volumes", "(Requires Unity 2020.1 or newer) Apply texture compression to volume 3D textures and switch Bakery shaders to a corresponding sampling mode. Not recommended for very low resolution volumes. Volume size may be increased to be a multiple of 4."));
+ GUI.enabled = true;
+#endif
+ y += 20;
+ }
+
+ GUI.Label(new Rect(10, y, 150, 20), new GUIContent("Samples multiplier", "Multiplies all shadow and GI samples by the specified factor. Use this to quickly change between draft and final quality."));
+ y += 20;
+ GUI.Label(new Rect(10, y, 85, 15), "1/"+ sampleDivisor);
+ const int maxSampleDivisor = 8;
+ sampleDivisor = (int)GUI.HorizontalSlider(new Rect(50, y, 170, 15), (float)(maxSampleDivisor - (sampleDivisor-1)), 1, maxSampleDivisor);
+ sampleDivisor = maxSampleDivisor - (sampleDivisor-1);
+ y += 20;
+
+ GUI.BeginGroup(new Rect(xx, y, 300, 120), "GI VRAM optimization", headerStyle);
+ y += 20;
+ GUI.EndGroup();
+ giLodMode = (GILODMode)EditorGUI.EnumPopup(new Rect(xx, y, 225, 25), giLodMode);
+ y += 20;
+
+ GUI.BeginGroup(new Rect(xx, y, 300, 300), "Tile size", headerStyle);
+ GUI.Label(new Rect(10, 20, 70, 15), new GUIContent("" + tileSize, "Lightmaps are split into smaller tiles and each tile is processed by the GPU without interruputions. Changing tile size therefore balances between system responsiveness and baking speed. Because GPU is shared by all running processes, baking with big tile size can make everything slow, but also gets the job done faster."));
+ tileSize = 1 << (int)GUI.HorizontalSlider(new Rect(50, 20, 170, 15), Mathf.Log(tileSize)/Mathf.Log(2), 5, 12);
+ GUI.EndGroup();
+ y += 45;
+ }
+ }
+
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+
+ }
+ else
+ {
+ GUI.BeginGroup(new Rect(10, y, 300, 300), "GPU priority", headerStyle);
+ string priorityName = "";
+ if (tileSize > 512)
+ {
+ if ((int)priority!=3) priority = 3; // >= 1024 very high
+ priorityName = "Very high";
+ }
+ else if (tileSize > 256)
+ {
+ if ((int)priority!=2) priority = 2; // >= 512 high
+ priorityName = "High";
+ }
+ else if (tileSize > 64)
+ {
+ if ((int)priority!=1) priority = 1; // >= 128 low
+ priorityName = "Low";
+ }
+ else
+ {
+ if ((int)priority!=0) priority = 0; // == 32 very low
+ priorityName = "Very low";
+ }
+ GUI.Label(new Rect(10, 20, 75, 20), new GUIContent("" + priorityName, "Balance between system responsiveness and baking speed. Because GPU is shared by all running processes, baking on high priority can make everything slow, but also gets the job done faster."));
+ priority = GUI.HorizontalSlider(new Rect(80, 20, 140, 15), priority, 0, 3);
+ if ((int)priority == 0)
+ {
+ tileSize = 32;
+ }
+ else if ((int)priority == 1)
+ {
+ tileSize = 128;
+ }
+ else if ((int)priority == 2)
+ {
+ tileSize = 512;
+ }
+ else
+ {
+ tileSize = 1024;
+ }
+ GUI.EndGroup();
+ y += 50;
+ }
+
+ if (scenePath == "") scenePath = System.Environment.GetEnvironmentVariable("TEMP", System.EnvironmentVariableTarget.Process) + "\\frender";
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+ showPaths = EditorGUI.Foldout(new Rect(10, y, 230, 20), showPaths, "Output options", foldoutStyle);
+ y += 20;
+
+ if (showPaths)
+ {
+ if (GUI.Button(new Rect(10, y, 230, 40), new GUIContent("Temp path:\n" + scenePath, "Specify folder where temporary data will be stored. Using SSD can speed up rendering a bit comparing to HDD.")))
+ {
+ scenePath = EditorUtility.OpenFolderPanel("Select temp folder", scenePath, "frender");
+ }
+ y += 50;
+
+ useScenePath = EditorGUI.ToggleLeft( new Rect( 10, y, 230, 20 ), new GUIContent( "Use scene named output path", "Create the lightmaps in a subfolder named the same as the scene" ), useScenePath );
+ y += 25;
+ if ( !useScenePath ) {
+ GUI.Label(new Rect(10, y, 100, 16), new GUIContent("Output path:", "Specify folder where lightmaps data will be stored (relative to Assets)"));
+ outputPath = EditorGUI.TextField(new Rect(85, y, 155, 18), outputPath, textBoxStyle);
+ y += 25;
+ } else {
+ // AMW - don't override the outputPath if we currently have the temp scene open.
+ // this seemed to happen during lightprobe bakes and the lightprobes would end up in the _tempScene path
+ string currentScenePath = EditorSceneManager.GetActiveScene().path;
+ if ( currentScenePath.ToLower().Contains( "_tempscene.unity" ) == false ) {
+ outputPath = currentScenePath;
+ if ( string.IsNullOrEmpty( outputPath ) ) {
+ outputPath = "BakeryLightmaps";
+ } else {
+ // strip "Assets/" and the file extension
+ if (outputPath.Length > 7 && outputPath.Substring(0,7).ToLower() == "assets/") outputPath = outputPath.Substring(7);
+ if (outputPath.Length > 6 && outputPath.Substring(outputPath.Length-6).ToLower() == ".unity")
+ outputPath = outputPath.Substring(0, outputPath.Length-6);
+ }
+ }
+ }
+ }
+ }
+
+ if (settingsMode >= SettingsMode.Experimental)
+ {
+ showNet = EditorGUI.Foldout(new Rect(10, y, 230, 20), showNet, "Network baking", foldoutStyle);
+ y += 20;
+
+ if (showNet)
+ {
+ clientMode = EditorGUI.ToggleLeft( new Rect( 10, y, 230, 20 ), new GUIContent( "Bake on remote server", "Enable network baking" ), clientMode );
+ y += 20;
+ if (clientMode)
+ {
+ GUI.Label(new Rect(10, y, 100, 16), new GUIContent("IP address:", "Server address where ftServer.exe is launched"));
+ ftClient.serverAddress = EditorGUI.TextField(new Rect(85, y, 155, 18), ftClient.serverAddress, textBoxStyle);
+ y += 20;
+
+ if (ftClient.lastServerMsgIsError) ftClient.Disconnect();
+
+ if (!ftClient.connectedToServer)
+ {
+ if (GUI.Button(new Rect(10, y, 230, 30), "Connect to server"))
+ {
+ ftClient.ConnectToServer();
+ }
+ }
+ else
+ {
+ ftClient.Update();
+ if (GUI.Button(new Rect(10, y, ftClient.serverGetDataMode ? 230 : (230/2), 30), "Disconnect"))
+ {
+ ftClient.Disconnect();
+ ftClient.lastServerMsg = "Server: no data";
+ ftClient.lastServerMsgIsError = false;
+ ftClient.lastServerErrorCode = 0;
+ }
+ if (!ftClient.serverGetDataMode)
+ {
+ if (ftClient.serverMustRefreshData)
+ {
+ CollectStorages();
+ var groupList = new List<BakeryLightmapGroup>();
+ var groupListGIContributing = new List<BakeryLightmapGroup>();
+ CollectGroups(groupList, groupListGIContributing, false);
+ ftClient.serverMustRefreshData = false;
+ var apply = ApplyBakedData();
+ while(apply.MoveNext()) {}
+ }
+ if (GUI.Button(new Rect(230/2+10, y, 230/2, 30), "Get data"))
+ {
+ if (ftClient.lastServerScene.Length == 0)
+ {
+ DebugLogError("No baked scene is found on the server.");
+ }
+ else if (ftClient.lastServerScene != EditorSceneManager.GetActiveScene().name)
+ {
+ DebugLogError("Current active scene doesn't match the one on the server.");
+ }
+ else if (ftClient.serverGetDataMode)
+ {
+ DebugLogInfo("Data is being downloaded");
+ }
+ else
+ {
+ if (!ServerGetData())
+ {
+ DebugLogError("Failed to find the list of files to download.");
+ }
+ }
+ }
+ }
+ }
+
+ y += 30;
+
+ var msg = ftClient.lastServerMsg;
+ if (ftClient.lastServerScene.Length > 0) msg += "\nScene: "+ftClient.lastServerScene;
+ if (ftClient.serverGetDataMode) msg += "\nDownloading: " + System.Math.Min(ftClient.serverGetFileIterator+1, ftClient.serverGetFileList.Count) + "/" + ftClient.serverGetFileList.Count;
+ EditorGUI.HelpBox(new Rect(15,y+5,220,40), msg, ftClient.lastServerMsgIsError ? MessageType.Error : MessageType.Info);
+ y += 40;
+ }
+ y += 10;
+ }
+ }
+
+ ftBuildGraphics.scenePath = scenePath;
+ scenePathQuoted = "\"" + scenePath + "\"";
+
+ /*if (settingsMode >= SettingsMode.Advanced)
+ {
+ showCompression = EditorGUI.Foldout(new Rect(10, y, 230, 20), showCompression, "Compression", foldoutStyle);
+ y += 20;
+ if (showCompression)
+ {
+ int xx = 10;
+ float prevWidth = EditorGUIUtility.labelWidth;
+ EditorGUIUtility.labelWidth = 45f;
+ lightmapCompressionColor = (TextureImporterFormat)EditorGUI.EnumPopup( new Rect( xx, y, 240-xx, 20 ), new GUIContent( "Color:", "Set the default compression for the lightmap textures" ), lightmapCompressionColor );
+ y += 25;
+ //EditorGUIUtility.labelWidth = 85f;
+ lightmapCompressionMask = (TextureImporterFormat)EditorGUI.EnumPopup( new Rect( xx, y, 240-xx, 20 ), new GUIContent( "Mask:", "Set the default compression for the lightmap textures" ), lightmapCompressionMask );
+ y += 25;
+ //EditorGUIUtility.labelWidth = 65f;
+ lightmapCompressionDir = (TextureImporterFormat)EditorGUI.EnumPopup( new Rect( xx, y, 240-xx, 20 ), new GUIContent( "Dir:", "Set the default compression for the lightmap textures" ), lightmapCompressionDir );
+ EditorGUIUtility.labelWidth = prevWidth;
+ y += 25;
+ }
+ }*/
+
+ /*if (settingsMode == SettingsMode.Experimental)
+ {
+ GUI.BeginGroup(new Rect(10, y, 300, 300), "Output texture type", headerStyle);
+ encodeMode = GUI.SelectionGrid(new Rect(10, 20, 210, 20), encodeMode, selStrings, 2);
+ GUI.EndGroup();
+ y += 50;
+ }*/
+ ftBuildGraphics.overwriteExtensionCheck = ".hdr";//bc6h ? ".asset" : ".hdr";
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+ curSector = EditorGUI.ObjectField(new Rect(10, y, 230, 16), curSector, typeof(BakerySector), true) as BakerySector;
+ y += 25;
+ }
+
+
+ if (GUI.Button(new Rect(10, y, 230, 30), "Render"))
+ {
+ ValidateOutputPath();
+ RenderButton();
+ }
+ y += 35;
+
+ if (settingsMode >= SettingsMode.Experimental)
+ {
+ if (GUI.Button(new Rect(10, y, 230, 30), "Render Selected Groups"))
+ {
+ if (!Application.isPlaying)
+ {
+ ValidateOutputPath();
+ if (!TestSystemSpecs()) return;
+ selectedOnly = true;
+ probesOnlyL1 = false;
+ fullSectorRender = false;
+ hasAnyVolumes = true; // possibly - ftBuildGraphics will figure it out
+ progressFunc = RenderLightmapFunc();
+ EditorApplication.update += RenderLightmapUpdate;
+ bakeInProgress = true;
+ }
+ }
+ y += 35;
+ }
+
+ if (GUI.Button(new Rect(10, y, 230, 30), "Render Light Probes"))
+ {
+ ValidateOutputPath();
+ RenderLightProbesButton();
+ }
+ y += 35;
+
+ if (GUI.Button(new Rect(10, y, 230, 30), "Render Reflection Probes"))
+ {
+ ValidateOutputPath();
+ RenderReflectionProbesButton();
+ }
+ y += 35;
+
+ if (GUI.Button(new Rect(10, y, 230, 30), "Update Skybox Probe"))
+ {
+ if (!Application.isPlaying)
+ {
+ ValidateOutputPath();
+ DynamicGI.UpdateEnvironment();
+
+ var rgo = new GameObject();
+ var r = rgo.AddComponent<ReflectionProbe>();
+ r.resolution = 256;
+ r.clearFlags = UnityEngine.Rendering.ReflectionProbeClearFlags.Skybox;
+ r.cullingMask = 0;
+ r.mode = UnityEngine.Rendering.ReflectionProbeMode.Custom;
+
+ var assetName = GenerateLightingDataAssetName();
+ var outName = "Assets/" + outputPath + "/" + assetName + "_sky.exr";
+ if (File.Exists(outName)) ValidateFileAttribs(outName);
+ Lightmapping.BakeReflectionProbe(r, outName);
+
+ AssetDatabase.Refresh();
+ RenderSettings.customReflection = AssetDatabase.LoadAssetAtPath(outName, typeof(Cubemap)) as Cubemap;
+ RenderSettings.defaultReflectionMode = UnityEngine.Rendering.DefaultReflectionMode.Custom;
+ DestroyImmediate(rgo);
+ }
+ }
+ y += 30;
+
+ if (settingsMode >= SettingsMode.Experimental)
+ {
+ //showTasks2 = EditorGUI.Foldout(new Rect(10, y-5, 300, 20), showTasks2, "Light probe tasks", foldoutStyle);
+ //y += 20 - (showTasks2 ? 10 : 5);
+ //if (showTasks2)
+ {
+ var prevValue = usesRealtimeGI;
+ usesRealtimeGI = GUI.Toggle(new Rect(10, y+5, 230, 20), usesRealtimeGI, new GUIContent("Combine with Enlighten real-time GI", "When Render button is pressed, first Enlighten real-time GI will be calculated. Then Bakery will bake regular lightmaps. Static and real-time GI will be combined."));
+ if (prevValue != usesRealtimeGI)
+ {
+ //Lightmapping.realtimeGI = usesRealtimeGI;
+ }
+ y += 20;
+ }
+ }
+
+ //if (settingsMode >= SettingsMode.Advanced)
+ {
+ useUnityForOcclsusionProbes = GUI.Toggle(new Rect(10, y+5, 230, 20), useUnityForOcclsusionProbes, new GUIContent("Occlusion probes", "When Render Light Probes is pressed, lets Unity bake occlusion probes using currently selected built-in lightmapper. Occlusion probes prevent dynamic objects from getting lit in shadowed areas. Currently there is no way to use custom occlusion probes in Unity, and it has to call its own lightmappers to do the job."));
+ y += 25;
+ }
+
+ if (settingsMode >= SettingsMode.Advanced)
+ {
+ beepOnFinish = GUI.Toggle(new Rect(10, y, 230, 20), beepOnFinish, new GUIContent("Beep on finish", "Plays a sound when the bake is done."));
+ y += 25;
+ }
+
+ showTasks2 = EditorGUI.Foldout(new Rect(10, y, 300, 20), showTasks2, "Warnings", foldoutStyle);
+ y += 12+2;
+ if (showTasks2)
+ {
+ checkOverlaps = GUI.Toggle(new Rect(10, y, 200, 20), checkOverlaps, new GUIContent("UV validation", "Checks for any incorrect missing or overlapping UVs"));
+ y += 15;
+ ftBuildGraphics.memoryWarning = GUI.Toggle(new Rect(10, y, 200, 20), ftBuildGraphics.memoryWarning, new GUIContent("Memory check", "Calculate approximate amount of required video memory and ask to continue"));
+ y += 15;
+ ftBuildGraphics.overwriteWarning = GUI.Toggle(new Rect(10, y, 200, 20), ftBuildGraphics.overwriteWarning, new GUIContent("Overwrite check", "Check and ask if any existing lightmaps are going to be overwritten"));
+ y += 15;
+ samplesWarning = GUI.Toggle(new Rect(10, y, 200, 20), samplesWarning, new GUIContent("Sample count check", "Checks if sample values for lights/GI/AO are in reasonable range"));
+ y += 15;
+ prefabWarning = GUI.Toggle(new Rect(10, y, 200, 20), prefabWarning, new GUIContent("Lightmapped prefab validation", "Checks if any prefabs are going to be overwritten and if there is anything preventing from baking them"));
+ }
+
+ if (settingsMode >= SettingsMode.Advanced || simpleWindowIsTooSmall)
+ {
+ GUI.EndScrollView();
+ }
+
+ if (ftLightmaps.mustReloadRenderSettings)
+ {
+ ftLightmaps.mustReloadRenderSettings = false;
+ OnEnable();
+ }
+
+ SaveRenderSettings();
+ }
+
+ public void SaveRenderSettings()
+ {
+ var scenePathToSave = scenePath;
+ if (scenePathToSave == System.Environment.GetEnvironmentVariable("TEMP", System.EnvironmentVariableTarget.Process) + "\\frender")
+ {
+ scenePathToSave = "";
+ }
+
+ if (renderSettingsStorage == null) return;
+
+ FindGlobalStorage();
+ if (gstorage != null)
+ {
+ if (gstorage.renderSettingsTempPath != scenePathToSave)
+ {
+ gstorage.renderSettingsTempPath = scenePathToSave;
+ EditorUtility.SetDirty(gstorage);
+ }
+ }
+
+ if (
+ renderSettingsStorage.renderSettingsBounces != bounces ||
+ renderSettingsStorage.renderSettingsGISamples != giSamples ||
+ renderSettingsStorage.renderSettingsGIBackFaceWeight != giBackFaceWeight ||
+ renderSettingsStorage.renderSettingsTileSize != tileSize ||
+ renderSettingsStorage.renderSettingsPriority != priority ||
+ renderSettingsStorage.renderSettingsTexelsPerUnit != texelsPerUnit ||
+ renderSettingsStorage.renderSettingsForceRefresh != forceRefresh ||
+ renderSettingsStorage.renderSettingsForceRebuildGeometry != forceRebuildGeometry ||
+ renderSettingsStorage.renderSettingsPerformRendering != performRendering ||
+ renderSettingsStorage.renderSettingsUserRenderMode != (int)userRenderMode ||
+ renderSettingsStorage.renderSettingsSettingsMode != (int)settingsMode ||
+ renderSettingsStorage.renderSettingsFixSeams != fixSeams ||
+ renderSettingsStorage.renderSettingsDenoise != denoise ||
+ renderSettingsStorage.renderSettingsDenoise2x != denoise2x ||
+ renderSettingsStorage.renderSettingsEncode != encode ||
+ renderSettingsStorage.renderSettingsEncodeMode != encodeMode ||
+ renderSettingsStorage.renderSettingsOverwriteWarning != ftBuildGraphics.overwriteWarning ||
+ renderSettingsStorage.renderSettingsAutoAtlas != ftBuildGraphics.autoAtlas ||
+ renderSettingsStorage.renderSettingsUnwrapUVs != ftBuildGraphics.unwrapUVs ||
+ renderSettingsStorage.renderSettingsForceDisableUnwrapUVs != ftBuildGraphics.forceDisableUnwrapUVs ||
+ renderSettingsStorage.renderSettingsMaxAutoResolution != ftBuildGraphics.maxAutoResolution ||
+ renderSettingsStorage.renderSettingsMinAutoResolution != ftBuildGraphics.minAutoResolution ||
+ renderSettingsStorage.renderSettingsUnloadScenes != unloadScenesInDeferredMode ||
+ renderSettingsStorage.renderSettingsAdjustSamples != adjustSamples ||
+ renderSettingsStorage.renderSettingsGILODMode != (int)giLodMode ||
+ renderSettingsStorage.renderSettingsGILODModeEnabled != giLodModeEnabled ||
+ renderSettingsStorage.renderSettingsCheckOverlaps != checkOverlaps ||
+ renderSettingsStorage.renderSettingsOutPath != outputPath ||
+ renderSettingsStorage.renderSettingsUseScenePath != useScenePath ||
+ //renderSettingsStorage.renderSettingsTempPath != scenePathToSave ||
+ renderSettingsStorage.renderSettingsHackEmissiveBoost != hackEmissiveBoost ||
+ renderSettingsStorage.renderSettingsHackIndirectBoost != hackIndirectBoost ||
+ renderSettingsStorage.renderSettingsHackAOIntensity != hackAOIntensity ||
+ renderSettingsStorage.renderSettingsHackAORadius != hackAORadius ||
+ renderSettingsStorage.renderSettingsHackAOSamples != hackAOSamples ||
+ renderSettingsStorage.renderSettingsShowAOSettings != showAOSettings ||
+ renderSettingsStorage.renderSettingsShowTasks != showTasks ||
+ renderSettingsStorage.renderSettingsShowTasks2 != showTasks2 ||
+ renderSettingsStorage.renderSettingsShowPaths != showPaths ||
+ renderSettingsStorage.renderSettingsShowNet != showNet ||
+ renderSettingsStorage.renderSettingsShowPerf != showPerf ||
+ //renderSettingsStorage.renderSettingsShowCompression != showCompression ||
+ renderSettingsStorage.renderSettingsTexelsPerMap != ftBuildGraphics.texelsPerUnitPerMap ||
+ renderSettingsStorage.renderSettingsTexelsColor != ftBuildGraphics.mainLightmapScale ||
+ renderSettingsStorage.renderSettingsTexelsMask != ftBuildGraphics.maskLightmapScale ||
+ renderSettingsStorage.renderSettingsTexelsDir != ftBuildGraphics.dirLightmapScale ||
+ renderSettingsStorage.renderSettingsOcclusionProbes != useUnityForOcclsusionProbes ||
+ renderSettingsStorage.renderSettingsBeepOnFinish != beepOnFinish ||
+ renderSettingsStorage.renderSettingsDistanceShadowmask != isDistanceShadowmask ||
+ renderSettingsStorage.renderSettingsShowDirWarning != showDirWarning ||
+ renderSettingsStorage.renderSettingsRenderDirMode != (int)renderDirMode ||
+ renderSettingsStorage.renderSettingsShowCheckerSettings != showCheckerSettings ||
+ renderSettingsStorage.usesRealtimeGI != usesRealtimeGI ||
+ renderSettingsStorage.renderSettingsSamplesWarning != samplesWarning ||
+ renderSettingsStorage.renderSettingsPrefabWarning != prefabWarning ||
+ renderSettingsStorage.renderSettingsSplitByScene != ftBuildGraphics.splitByScene ||
+ renderSettingsStorage.renderSettingsExportTerrainAsHeightmap != ftBuildGraphics.exportTerrainAsHeightmap ||
+ renderSettingsStorage.renderSettingsExportTerrainTrees != ftBuildGraphics.exportTerrainTrees ||
+ renderSettingsStorage.renderSettingsRTXMode != rtxMode ||
+ renderSettingsStorage.renderSettingsLightProbeMode != (int)lightProbeMode ||
+ renderSettingsStorage.renderSettingsClientMode != clientMode ||
+ renderSettingsStorage.renderSettingsServerAddress != ftClient.serverAddress ||
+ renderSettingsStorage.renderSettingsUVPaddingMax != ftBuildGraphics.uvPaddingMax ||
+ renderSettingsStorage.renderSettingsPostPacking != ftBuildGraphics.postPacking ||
+ renderSettingsStorage.renderSettingsHoleFilling != ftBuildGraphics.holeFilling ||
+ renderSettingsStorage.renderSettingsSampleDiv != sampleDivisor ||
+ renderSettingsStorage.renderSettingsUnwrapper != (int)unwrapper ||
+ renderSettingsStorage.renderSettingsDenoiserType != (int)denoiserType ||
+ //renderSettingsStorage.renderSettingsLegacyDenoiser != legacyDenoiser ||
+ renderSettingsStorage.renderSettingsAtlasPacker != ftBuildGraphics.atlasPacker ||
+ renderSettingsStorage.renderSettingsCompressVolumes != compressVolumes ||
+ renderSettingsStorage.renderSettingsSector != curSector
+ )
+ {
+ Undo.RecordObject(renderSettingsStorage, "Change Bakery settings");
+ renderSettingsStorage.renderSettingsBounces = bounces;
+ renderSettingsStorage.renderSettingsGISamples = giSamples;
+ renderSettingsStorage.renderSettingsGIBackFaceWeight = giBackFaceWeight;
+ renderSettingsStorage.renderSettingsTileSize = tileSize;
+ renderSettingsStorage.renderSettingsPriority = priority;
+ renderSettingsStorage.renderSettingsTexelsPerUnit = texelsPerUnit;
+ renderSettingsStorage.renderSettingsForceRefresh = forceRefresh;
+ renderSettingsStorage.renderSettingsForceRebuildGeometry = forceRebuildGeometry;
+ renderSettingsStorage.renderSettingsPerformRendering = performRendering;
+ renderSettingsStorage.renderSettingsUserRenderMode = (int)userRenderMode;
+ renderSettingsStorage.renderSettingsSettingsMode = (int)settingsMode;
+ renderSettingsStorage.renderSettingsFixSeams = fixSeams;
+ renderSettingsStorage.renderSettingsDenoise = denoise;
+ renderSettingsStorage.renderSettingsDenoise2x = denoise2x;
+ renderSettingsStorage.renderSettingsEncode = encode;
+ renderSettingsStorage.renderSettingsEncodeMode = encodeMode;
+ renderSettingsStorage.renderSettingsOverwriteWarning = ftBuildGraphics.overwriteWarning;
+ renderSettingsStorage.renderSettingsAutoAtlas = ftBuildGraphics.autoAtlas;
+ renderSettingsStorage.renderSettingsUnwrapUVs = ftBuildGraphics.unwrapUVs;
+ renderSettingsStorage.renderSettingsForceDisableUnwrapUVs = ftBuildGraphics.forceDisableUnwrapUVs;
+ renderSettingsStorage.renderSettingsMaxAutoResolution = ftBuildGraphics.maxAutoResolution;
+ renderSettingsStorage.renderSettingsMinAutoResolution = ftBuildGraphics.minAutoResolution;
+ renderSettingsStorage.renderSettingsUnloadScenes = unloadScenesInDeferredMode;
+ renderSettingsStorage.renderSettingsAdjustSamples = adjustSamples;
+ renderSettingsStorage.renderSettingsGILODMode = (int)giLodMode;
+ renderSettingsStorage.renderSettingsGILODModeEnabled = giLodModeEnabled;
+ renderSettingsStorage.renderSettingsCheckOverlaps = checkOverlaps;
+ renderSettingsStorage.renderSettingsOutPath = outputPath;
+ renderSettingsStorage.renderSettingsUseScenePath = useScenePath;
+ //renderSettingsStorage.renderSettingsTempPath = scenePathToSave;
+ renderSettingsStorage.renderSettingsHackEmissiveBoost = hackEmissiveBoost;
+ renderSettingsStorage.renderSettingsHackIndirectBoost = hackIndirectBoost;
+ renderSettingsStorage.renderSettingsHackAOIntensity = hackAOIntensity;
+ renderSettingsStorage.renderSettingsHackAORadius = hackAORadius;
+ renderSettingsStorage.renderSettingsHackAOSamples = hackAOSamples;
+ renderSettingsStorage.renderSettingsShowAOSettings = showAOSettings;
+ renderSettingsStorage.renderSettingsShowTasks = showTasks;
+ renderSettingsStorage.renderSettingsShowTasks2 = showTasks2;
+ renderSettingsStorage.renderSettingsShowPaths = showPaths;
+ renderSettingsStorage.renderSettingsShowNet = showNet;
+ renderSettingsStorage.renderSettingsShowPerf = showPerf;
+ //renderSettingsStorage.renderSettingsShowCompression = showCompression;
+ renderSettingsStorage.renderSettingsTexelsPerMap = ftBuildGraphics.texelsPerUnitPerMap;
+ renderSettingsStorage.renderSettingsTexelsColor = ftBuildGraphics.mainLightmapScale;
+ renderSettingsStorage.renderSettingsTexelsMask = ftBuildGraphics.maskLightmapScale;
+ renderSettingsStorage.renderSettingsTexelsDir = ftBuildGraphics.dirLightmapScale;
+ renderSettingsStorage.renderSettingsOcclusionProbes = useUnityForOcclsusionProbes;
+ renderSettingsStorage.renderSettingsBeepOnFinish = beepOnFinish;
+ renderSettingsStorage.renderSettingsDistanceShadowmask = isDistanceShadowmask;
+ renderSettingsStorage.renderSettingsShowDirWarning = showDirWarning;
+ renderSettingsStorage.renderSettingsRenderDirMode = (int)renderDirMode;
+ renderSettingsStorage.renderSettingsShowCheckerSettings = showCheckerSettings;
+ renderSettingsStorage.usesRealtimeGI = usesRealtimeGI;
+ renderSettingsStorage.renderSettingsSamplesWarning = samplesWarning;
+ renderSettingsStorage.renderSettingsPrefabWarning = prefabWarning;
+ renderSettingsStorage.renderSettingsSplitByScene = ftBuildGraphics.splitByScene;
+ renderSettingsStorage.renderSettingsExportTerrainAsHeightmap = ftBuildGraphics.exportTerrainAsHeightmap;
+ renderSettingsStorage.renderSettingsExportTerrainTrees = ftBuildGraphics.exportTerrainTrees;
+ renderSettingsStorage.renderSettingsRTXMode = rtxMode;
+ renderSettingsStorage.renderSettingsLightProbeMode = (int)lightProbeMode;
+ renderSettingsStorage.renderSettingsServerAddress = ftClient.serverAddress;
+ renderSettingsStorage.renderSettingsClientMode = clientMode;
+ renderSettingsStorage.renderSettingsUVPaddingMax = ftBuildGraphics.uvPaddingMax;
+ renderSettingsStorage.renderSettingsPostPacking = ftBuildGraphics.postPacking;
+ renderSettingsStorage.renderSettingsHoleFilling = ftBuildGraphics.holeFilling;
+ renderSettingsStorage.renderSettingsSampleDiv = sampleDivisor;
+ renderSettingsStorage.renderSettingsUnwrapper = (int)unwrapper;
+ renderSettingsStorage.renderSettingsDenoiserType = (int)denoiserType;
+ //renderSettingsStorage.renderSettingsLegacyDenoiser = (denoiserType == ftGlobalStorage.DenoiserType.Optix5);//legacyDenoiser;
+ renderSettingsStorage.renderSettingsAtlasPacker = ftBuildGraphics.atlasPacker;
+ renderSettingsStorage.renderSettingsCompressVolumes = compressVolumes;
+ renderSettingsStorage.renderSettingsSector = curSector;
+ }
+ }
+
+ void RenderLightProbesUpdate()
+ {
+ if (!progressFunc.MoveNext())
+ {
+ EditorApplication.update -= RenderLightProbesUpdate;
+ }
+
+ }
+
+ void RenderReflProbesUpdate()
+ {
+ if (!progressFunc.MoveNext())
+ {
+ EditorApplication.update -= RenderReflProbesUpdate;
+ }
+
+ }
+
+ static float AreaElement(float x, float y)
+ {
+ return Mathf.Atan2(x * y, Mathf.Sqrt(x * x + y * y + 1));
+ }
+
+ const float inv2SqrtPI = 0.28209479177387814347403972578039f; // 1.0f / (2.0f * Mathf.Sqrt(Mathf.PI))
+ const float sqrt3Div2SqrtPI = 0.48860251190291992158638462283835f; // Mathf.Sqrt(3.0f) / (2.0f * Mathf.Sqrt(Mathf.PI))
+ const float sqrt15Div2SqrtPI = 1.0925484305920790705433857058027f; // Mathf.Sqrt(15.0f) / (2 * Mathf.Sqrt(Mathf.PI))
+ const float threeSqrt5Div4SqrtPI = 0.94617469575756001809268107088713f; // 3 * Mathf.Sqrt(5.0f) / (4*Mathf.Sqrt(Mathf.PI))
+ const float sqrt15Div4SqrtPI = 0.54627421529603953527169285290135f; // Mathf.Sqrt(15.0f) / (4 * Mathf.Sqrt(Mathf.PI))
+ const float oneThird = 1.0f / 3.0f;
+
+ static void EvalSHBasis9(Vector3 dir, ref float[] basis)
+ {
+ float dx = -dir.x;
+ float dy = -dir.y;
+ float dz = dir.z;
+ basis[0] = inv2SqrtPI * ftAdditionalConfig.irradianceConvolutionL0;
+ basis[1] = - dy * sqrt3Div2SqrtPI * ftAdditionalConfig.irradianceConvolutionL1;
+ basis[2] = dz * sqrt3Div2SqrtPI * ftAdditionalConfig.irradianceConvolutionL1;
+ basis[3] = - dx * sqrt3Div2SqrtPI * ftAdditionalConfig.irradianceConvolutionL1;
+ basis[4] = dx * dy * sqrt15Div2SqrtPI * ftAdditionalConfig.irradianceConvolutionL2_4_5_7;
+ basis[5] = - dy * dz * sqrt15Div2SqrtPI * ftAdditionalConfig.irradianceConvolutionL2_4_5_7;
+ basis[6] = (dz*dz-oneThird) * threeSqrt5Div4SqrtPI * ftAdditionalConfig.irradianceConvolutionL2_6;
+ basis[7] = - dx * dz * sqrt15Div2SqrtPI * ftAdditionalConfig.irradianceConvolutionL2_4_5_7;
+ basis[8] = (dx*dx-dy*dy) * sqrt15Div4SqrtPI * ftAdditionalConfig.irradianceConvolutionL2_8;
+ }
+
+ public static BakeryVolume[] FindBakeableVolumes()
+ {
+ var vols = FindObjectsOfType<BakeryVolume>();
+ var vols2 = new List<BakeryVolume>();
+ Transform sectorTform = null;
+ if (curSector != null) sectorTform = curSector.transform;
+ for(int v=0; v<vols.Length; v++)
+ {
+ if (vols[v].enableBaking)
+ {
+ if (fullSectorRender)
+ {
+ var parent = vols[v].transform.parent;
+ while(parent != null)
+ {
+ if (parent == sectorTform) vols2.Add(vols[v]); // only use volumes parented to current sector
+ parent = parent.parent;
+ }
+ }
+ else
+ {
+ vols2.Add(vols[v]);
+ }
+ }
+ }
+ lastFoundBakeableVolumes = vols2.ToArray();
+ return lastFoundBakeableVolumes;
+ }
+
+ public static int VolumeDimension(int x)
+ {
+ const float blockSize = 4.0f;
+ if (ftRenderLightmap.compressVolumes) return (int)(Mathf.Ceil(x/blockSize)*blockSize);
+ return x;
+ }
+
+ void LoadVolumes()
+ {
+ var vols = FindBakeableVolumes();
+ if (vols.Length == 0) return;
+
+ int numTotalProbes = 0;
+ for(int v=0; v<vols.Length; v++)
+ {
+ numTotalProbes += VolumeDimension(vols[v].resolutionX) * VolumeDimension(vols[v].resolutionY) * VolumeDimension(vols[v].resolutionZ);
+ }
+
+ int atlasTexSize = (int)Mathf.Ceil(Mathf.Sqrt((float)numTotalProbes));
+ atlasTexSize = (int)Mathf.Ceil(atlasTexSize / (float)tileSize) * tileSize;
+
+ BakeryLightmapGroup.RenderMode pVolumeMode = (BakeryLightmapGroup.RenderMode)pstorage.volumeRenderMode;
+ bool shadowmask = (pVolumeMode == BakeryLightmapGroup.RenderMode.Auto && userRenderMode == RenderMode.Shadowmask)
+ || pVolumeMode == BakeryLightmapGroup.RenderMode.Shadowmask;
+
+ var l0 = new float[atlasTexSize * atlasTexSize * 4];
+ var l1x = new float[atlasTexSize * atlasTexSize * 4];
+ var l1y = new float[atlasTexSize * atlasTexSize * 4];
+ var l1z = new float[atlasTexSize * atlasTexSize * 4];
+ byte[] lshadows = null;
+ if (shadowmask) lshadows = new byte[atlasTexSize * atlasTexSize * 4];
+ var handle = GCHandle.Alloc(l0, GCHandleType.Pinned);
+ var handleL1x = GCHandle.Alloc(l1x, GCHandleType.Pinned);
+ var handleL1y = GCHandle.Alloc(l1y, GCHandleType.Pinned);
+ var handleL1z = GCHandle.Alloc(l1z, GCHandleType.Pinned);
+ GCHandle handleShadows = new GCHandle();
+ if (shadowmask) handleShadows = GCHandle.Alloc(lshadows, GCHandleType.Pinned);
+ var errCodes = new int[5];
+ try
+ {
+ var pointer = handle.AddrOfPinnedObject();
+ var pointerL1x = handleL1x.AddrOfPinnedObject();
+ var pointerL1y = handleL1y.AddrOfPinnedObject();
+ var pointerL1z = handleL1z.AddrOfPinnedObject();
+ System.IntPtr pointerShadows = (System.IntPtr)0;
+ if (shadowmask) pointerShadows = handleShadows.AddrOfPinnedObject();
+ errCodes[0] = halffloat2vb(scenePath + "\\volumes_final_L0" + (compressedOutput ? ".lz4" : ".dds"), pointer, 2);
+ errCodes[1] = halffloat2vb(scenePath + "\\volumes_final_L1x" + (compressedOutput ? ".lz4" : ".dds"), pointerL1x, 2);
+ errCodes[2] = halffloat2vb(scenePath + "\\volumes_final_L1y" + (compressedOutput ? ".lz4" : ".dds"), pointerL1y, 2);
+ errCodes[3] = halffloat2vb(scenePath + "\\volumes_final_L1z" + (compressedOutput ? ".lz4" : ".dds"), pointerL1z, 2);
+ if (shadowmask)
+ {
+ errCodes[4] = halffloat2vb(scenePath + "\\volumes_mask" + (compressedOutput ? ".lz4" : ".dds"), pointerShadows, 1);
+ }
+ bool ok = true;
+ for(int i=0; i<5; i++)
+ {
+ if (errCodes[i] != 0)
+ {
+ Debug.LogError("hf2vb (" + i + "): " + errCodes[i]);
+ ok = false;
+ }
+ }
+ if (ok)
+ {
+ int i = 0;
+ int maskI = 0;
+ bool actuallyCompressVolumes = false;
+#if UNITY_2020_1_OR_NEWER
+ actuallyCompressVolumes = compressVolumes;
+#endif
+ for(int v=0; v<vols.Length; v++)
+ {
+ var vol = vols[v];
+ int rx = VolumeDimension(vol.resolutionX);
+ int ry = VolumeDimension(vol.resolutionY);
+ int rz = VolumeDimension(vol.resolutionZ);
+ int numProbes = rx*ry*rz;
+ int numProbesInSlice = rx*ry;
+ int lastProbeInSlice = numProbesInSlice - 1;
+ int compressedSliceSizeHDR = 0;
+ int compressedSliceSizeLDR = 0;
+ Color[] texData0 = null;
+ Color[] texData1 = null;
+ Color[] texData2 = null;
+ Color[] texData3 = null;
+ Texture2D texSliceHDR = null;
+ Texture2D texSliceLDR = null;
+ byte[] compressedTexData0 = null;
+ byte[] compressedTexData1 = null;
+ byte[] compressedTexData2 = null;
+ byte[] compressedTexData3 = null;
+ if (actuallyCompressVolumes)
+ {
+ // Per slice arrays
+ texData0 = new Color[numProbesInSlice];
+ texData1 = new Color[numProbesInSlice];
+ texData2 = new Color[numProbesInSlice];
+ texData3 = new Color[numProbesInSlice];
+ }
+ else
+ {
+ // Full 3D arrays
+ texData0 = new Color[numProbes];
+ texData1 = new Color[numProbes];
+ texData2 = new Color[numProbes];
+ }
+ #if COMPRESS_VOLUME_RGBM
+ TextureFormat compressedHDRFormat = TextureFormat.BC7;
+ TextureFormat uncompressedHDRFormat = TextureFormat.ARGB32;
+ #else
+ TextureFormat compressedHDRFormat = TextureFormat.BC6H;
+ TextureFormat uncompressedHDRFormat = TextureFormat.RGBAHalf;
+ #endif
+ for(int z=0; z<rz; z++)
+ {
+ for(int y=0; y<ry; y++)
+ {
+ for(int x=0; x<rx; x++)
+ {
+ float l0r = l0[i*4+0] * 2;
+ float l0g = l0[i*4+1] * 2;
+ float l0b = l0[i*4+2] * 2;
+
+ const float convL0 = ftAdditionalConfig.convL0;
+ const float convL1 = ftAdditionalConfig.convL1;
+
+ float l1xr;
+ float l1xg;
+ float l1xb;
+ float l1yr;
+ float l1yg;
+ float l1yb;
+ float l1zr;
+ float l1zg;
+ float l1zb;
+ // read as BGR (2,1,0)
+ if (vol.encoding == BakeryVolume.Encoding.RGBA8 || vol.encoding == BakeryVolume.Encoding.RGBA8Mono)
+ {
+ l1xr = ((l1x[i*4+2] * 2.0f - 1.0f) * convL1) * 0.5f + 0.5f;
+ l1xg = ((l1x[i*4+1] * 2.0f - 1.0f) * convL1) * 0.5f + 0.5f;
+ l1xb = ((l1x[i*4+0] * 2.0f - 1.0f) * convL1) * 0.5f + 0.5f;
+
+ l1yr = ((l1y[i*4+2] * 2.0f - 1.0f) * convL1) * 0.5f + 0.5f;
+ l1yg = ((l1y[i*4+1] * 2.0f - 1.0f) * convL1) * 0.5f + 0.5f;
+ l1yb = ((l1y[i*4+0] * 2.0f - 1.0f) * convL1) * 0.5f + 0.5f;
+
+ l1zr = ((l1z[i*4+2] * 2.0f - 1.0f) * convL1) * 0.5f + 0.5f;
+ l1zg = ((l1z[i*4+1] * 2.0f - 1.0f) * convL1) * 0.5f + 0.5f;
+ l1zb = ((l1z[i*4+0] * 2.0f - 1.0f) * convL1) * 0.5f + 0.5f;
+
+ if (vol.encoding == BakeryVolume.Encoding.RGBA8Mono)
+ {
+ // Single direction packed to tex1
+ l1xr = (l1xr + l1xg + l1xb) * 0.3333333333f;
+ l1xg = (l1yr + l1yg + l1yb) * 0.3333333333f;
+ l1xb = (l1zr + l1zg + l1zb) * 0.3333333333f;
+
+ l1yr = l1yg = l1yb = 0;
+ l1zr = l1zg = l1zb = 0;
+ }
+ }
+ else
+ {
+ l1xr = (l1x[i*4+2] * 2.0f - 1.0f) * l0r*2 * convL1;
+ l1xg = (l1x[i*4+1] * 2.0f - 1.0f) * l0g*2 * convL1;
+ l1xb = (l1x[i*4+0] * 2.0f - 1.0f) * l0b*2 * convL1;
+
+ l1yr = (l1y[i*4+2] * 2.0f - 1.0f) * l0r*2 * convL1;
+ l1yg = (l1y[i*4+1] * 2.0f - 1.0f) * l0g*2 * convL1;
+ l1yb = (l1y[i*4+0] * 2.0f - 1.0f) * l0b*2 * convL1;
+
+ l1zr = (l1z[i*4+2] * 2.0f - 1.0f) * l0r*2 * convL1;
+ l1zg = (l1z[i*4+1] * 2.0f - 1.0f) * l0g*2 * convL1;
+ l1zb = (l1z[i*4+0] * 2.0f - 1.0f) * l0b*2 * convL1;
+
+ if (actuallyCompressVolumes)
+ {
+ float il0r = 1.0f / l0r;
+ float il0g = 1.0f / l0g;
+ float il0b = 1.0f / l0b;
+
+ l1xr = (l1xr * il0r) * 0.5f + 0.5f;
+ l1xg = (l1xg * il0g) * 0.5f + 0.5f;
+ l1xb = (l1xb * il0b) * 0.5f + 0.5f;
+
+ l1yr = (l1yr * il0r) * 0.5f + 0.5f;
+ l1yg = (l1yg * il0g) * 0.5f + 0.5f;
+ l1yb = (l1yb * il0b) * 0.5f + 0.5f;
+
+ l1zr = (l1zr * il0r) * 0.5f + 0.5f;
+ l1zg = (l1zg * il0g) * 0.5f + 0.5f;
+ l1zb = (l1zb * il0b) * 0.5f + 0.5f;
+ }
+ }
+ l0r *= convL0;
+ l0g *= convL0;
+ l0b *= convL0;
+
+
+ if (actuallyCompressVolumes)
+ {
+ int index = y*rx + x;
+ #if COMPRESS_VOLUME_RGBM
+ const float rgbmMul = 1.0f / 8.0f;
+ l0r = Mathf.Sqrt(l0r) * rgbmMul;
+ l0g = Mathf.Sqrt(l0g) * rgbmMul;
+ l0b = Mathf.Sqrt(l0b) * rgbmMul;
+ float a = Mathf.Max(Mathf.Max(Mathf.Max(l0r, l0g), l0b), 1.0f / 255);
+ if (a > 1.0f) a = 1.0f;
+ a = Mathf.Ceil(a * 255.0f) / 255.0f;
+ float invA = 1.0f / a;
+ l0r *= invA;
+ l0g *= invA;
+ l0b *= invA;
+ texData0[index] = new Color(l0r, l0g, l0b, a);
+ #else
+ texData0[index] = new Color(l0r, l0g, l0b, 1.0f);
+ #endif
+ texData1[index] = new Color(l1xr, l1xg, l1xb, 1.0f);
+ texData2[index] = new Color(l1yr, l1yg, l1yb, 1.0f);
+ texData3[index] = new Color(l1zr, l1zg, l1zb, 1.0f);
+ if (index == lastProbeInSlice)
+ {
+ // Would be nice if CompressTexture had separate src/dest args and we could reuse the textures...
+ texSliceHDR = new Texture2D(rx, ry, uncompressedHDRFormat, false);
+
+ // L0
+ texSliceHDR.SetPixels(texData0);
+ texSliceHDR.Apply();
+ EditorUtility.CompressTexture(texSliceHDR, compressedHDRFormat,
+#if UNITY_2019_3_OR_NEWER
+ UnityEditor.TextureCompressionQuality.Best);
+#else
+ (int)UnityEngine.TextureCompressionQuality.Best);
+#endif
+ var sliceBytes = texSliceHDR.GetRawTextureData();
+ if (compressedSliceSizeHDR == 0)
+ {
+ compressedTexData0 = new byte[sliceBytes.Length * rz];
+ compressedSliceSizeHDR = sliceBytes.Length;
+ }
+ int coffset = compressedSliceSizeHDR * z;
+ for(int c=0; c<compressedSliceSizeHDR; c++) compressedTexData0[coffset + c] = sliceBytes[c];
+ DestroyImmediate(texSliceHDR);
+
+ // L1x
+ texSliceLDR = new Texture2D(rx, ry, TextureFormat.ARGB32, false);
+ texSliceLDR.SetPixels(texData1);
+ texSliceLDR.Apply();
+ EditorUtility.CompressTexture(texSliceLDR, TextureFormat.BC7,
+#if UNITY_2019_3_OR_NEWER
+ UnityEditor.TextureCompressionQuality.Best);
+#else
+ (int)UnityEngine.TextureCompressionQuality.Best);
+#endif
+ sliceBytes = texSliceLDR.GetRawTextureData();
+ if (compressedSliceSizeLDR == 0)
+ {
+ compressedTexData1 = new byte[sliceBytes.Length * rz];
+ compressedTexData2 = new byte[sliceBytes.Length * rz];
+ compressedTexData3 = new byte[sliceBytes.Length * rz];
+ compressedSliceSizeLDR = sliceBytes.Length;
+ }
+ coffset = compressedSliceSizeLDR * z;
+ for(int c=0; c<compressedSliceSizeLDR; c++) compressedTexData1[coffset + c] = sliceBytes[c];
+ DestroyImmediate(texSliceLDR);
+
+ // L1y
+ texSliceLDR = new Texture2D(rx, ry, TextureFormat.ARGB32, false);
+ texSliceLDR.SetPixels(texData2);
+ texSliceLDR.Apply();
+ EditorUtility.CompressTexture(texSliceLDR, TextureFormat.BC7,
+#if UNITY_2019_3_OR_NEWER
+ UnityEditor.TextureCompressionQuality.Best);
+#else
+ (int)UnityEngine.TextureCompressionQuality.Best);
+#endif
+ sliceBytes = texSliceLDR.GetRawTextureData();
+ for(int c=0; c<compressedSliceSizeLDR; c++) compressedTexData2[coffset + c] = sliceBytes[c];
+ DestroyImmediate(texSliceLDR);
+
+ // L1z
+ texSliceLDR = new Texture2D(rx, ry, TextureFormat.ARGB32, false);
+ texSliceLDR.SetPixels(texData3);
+ texSliceLDR.Apply();
+ EditorUtility.CompressTexture(texSliceLDR, TextureFormat.BC7,
+#if UNITY_2019_3_OR_NEWER
+ UnityEditor.TextureCompressionQuality.Best);
+#else
+ (int)UnityEngine.TextureCompressionQuality.Best);
+#endif
+ sliceBytes = texSliceLDR.GetRawTextureData();
+ for(int c=0; c<compressedSliceSizeLDR; c++) compressedTexData3[coffset + c] = sliceBytes[c];
+ DestroyImmediate(texSliceLDR);
+ }
+ }
+ else
+ {
+ int index = z*ry*rx + y*rx + x;
+ texData0[index] = new Color(l0r, l0g, l0b, l1zr);
+ texData1[index] = new Color(l1xr, l1xg, l1xb, l1zg);
+ texData2[index] = new Color(l1yr, l1yg, l1yb, l1zb);
+ }
+ i++;
+ }
+ }
+ }
+
+ var outNameBase = "Assets/" + outputPath + "/" + vol.gameObject.scene.name + "_" + vol.name;
+
+ TextureFormat vformatHDR;
+ TextureFormat vformatLDR = TextureFormat.BC7;
+ if (actuallyCompressVolumes)
+ {
+ vformatHDR = vol.encoding == BakeryVolume.Encoding.Half4 ? compressedHDRFormat : TextureFormat.BC7;
+ }
+ else
+ {
+ vformatHDR = vol.encoding == BakeryVolume.Encoding.Half4 ? TextureFormat.RGBAHalf : TextureFormat.ARGB32;
+ }
+
+ var outName = outNameBase + "0.asset";
+ if (File.Exists(outName)) ValidateFileAttribs(outName);
+ var tex = new Texture3D(rx, ry, rz, vformatHDR, false);
+ tex.filterMode = FilterMode.Bilinear;
+ tex.wrapMode = TextureWrapMode.Clamp;
+ if (actuallyCompressVolumes)
+ {
+#if UNITY_2020_1_OR_NEWER
+ tex.SetPixelData(compressedTexData0, 0, 0);
+#endif
+ }
+ else
+ {
+ tex.SetPixels(texData0);
+ }
+ tex.Apply();
+ tex = CreateOrReplaceAsset(tex, outName);
+ vol.bakedTexture0 = tex;
+
+ outName = outNameBase + "1.asset";
+ if (File.Exists(outName)) ValidateFileAttribs(outName);
+ tex = new Texture3D(rx, ry, rz, actuallyCompressVolumes ? vformatLDR : vformatHDR, false);
+ tex.filterMode = FilterMode.Bilinear;
+ tex.wrapMode = TextureWrapMode.Clamp;
+ if (actuallyCompressVolumes)
+ {
+#if UNITY_2020_1_OR_NEWER
+ tex.SetPixelData(compressedTexData1, 0, 0);
+#endif
+ }
+ else
+ {
+ tex.SetPixels(texData1);
+ }
+ tex.Apply();
+ tex = CreateOrReplaceAsset(tex, outName);
+ vol.bakedTexture1 = tex;
+
+ outName = outNameBase + "2.asset";
+ if (File.Exists(outName)) ValidateFileAttribs(outName);
+ tex = new Texture3D(rx, ry, rz, actuallyCompressVolumes ? vformatLDR : vformatHDR, false);
+ tex.filterMode = FilterMode.Bilinear;
+ tex.wrapMode = TextureWrapMode.Clamp;
+ if (actuallyCompressVolumes)
+ {
+#if UNITY_2020_1_OR_NEWER
+ tex.SetPixelData(compressedTexData2, 0, 0);
+#endif
+ }
+ else
+ {
+ tex.SetPixels(texData2);
+ }
+ tex.Apply();
+ tex = CreateOrReplaceAsset(tex, outName);
+ vol.bakedTexture2 = tex;
+
+ if (actuallyCompressVolumes)
+ {
+#if UNITY_2020_1_OR_NEWER
+ outName = outNameBase + "3.asset";
+ if (File.Exists(outName)) ValidateFileAttribs(outName);
+ tex = new Texture3D(rx, ry, rz, actuallyCompressVolumes ? vformatLDR : vformatHDR, false);
+ tex.filterMode = FilterMode.Bilinear;
+ tex.wrapMode = TextureWrapMode.Clamp;
+ tex.SetPixelData(compressedTexData3, 0, 0);
+ tex.Apply();
+ tex = CreateOrReplaceAsset(tex, outName);
+ vol.bakedTexture3 = tex;
+#endif
+ }
+ else
+ {
+ vol.bakedTexture3 = null;
+ }
+
+ if (shadowmask)
+ {
+ var texData = new Color32[numProbes];
+ for(int z=0; z<rz; z++)
+ {
+ for(int y=0; y<ry; y++)
+ {
+ for(int x=0; x<rx; x++)
+ {
+ int index = z*ry*rx + y*rx + x;
+ if (vol.shadowmaskEncoding == BakeryVolume.ShadowmaskEncoding.A8)
+ {
+ byte sr = lshadows[maskI*4+0];
+ texData[index] = new Color32(sr,sr,sr,sr);
+ }
+ else
+ {
+ byte sr = lshadows[maskI*4+0];
+ byte sg = lshadows[maskI*4+1];
+ byte sb = lshadows[maskI*4+2];
+ byte sa = lshadows[maskI*4+3];
+ texData[index] = new Color32(sr,sg,sb,sa);
+ }
+ maskI++;
+ }
+ }
+ }
+
+
+ var vformat = (vol.shadowmaskEncoding == BakeryVolume.ShadowmaskEncoding.A8) ? TextureFormat.Alpha8 : TextureFormat.ARGB32;
+ outName = outNameBase + "_mask.asset";
+ if (File.Exists(outName)) ValidateFileAttribs(outName);
+ tex = new Texture3D(rx, ry, rz, vformat, false);
+ tex.filterMode = FilterMode.Bilinear;
+ tex.wrapMode = TextureWrapMode.Clamp;
+ tex.SetPixels32(texData);
+ tex.Apply();
+ tex = CreateOrReplaceAsset(tex, outName);
+ vol.bakedMask = tex;
+ }
+
+ AssetDatabase.SaveAssets();
+
+ if (vol.isGlobal) vol.OnEnable();
+ }
+ }
+ }
+ finally
+ {
+ handle.Free();
+ handleL1x.Free();
+ handleL1y.Free();
+ handleL1z.Free();
+ if (shadowmask) handleShadows.Free();
+ }
+ }
+
+ static Texture3D CreateOrReplaceAsset(Texture3D src, string path)
+ {
+ var dest = AssetDatabase.LoadAssetAtPath<Texture3D>(path);
+ if (dest == null)
+ {
+ AssetDatabase.CreateAsset(src, path);
+ dest = src;
+ }
+ else
+ {
+ EditorUtility.CopySerialized(src, dest);
+ EditorUtility.SetDirty(dest);
+ }
+ return dest;
+ }
+
+ public static void RestoreSceneManagerSetup(SceneSetup[] sceneSetups)
+ {
+ EditorSceneManager.RestoreSceneManagerSetup(sceneSetups);
+ }
+
+ static public void DebugLogError(string text)
+ {
+ userCanceled = true;
+ ProgressBarEnd();
+ if (verbose)
+ {
+ EditorUtility.DisplayDialog("Bakery error", text, "OK");
+ }
+ else
+ {
+ Debug.LogError(text);
+ }
+ }
+
+ public static void DebugLogInfo(string info)
+ {
+ if (pstorage == null) pstorage = ftLightmaps.GetProjectSettings();
+ if ((pstorage.logLevel & (int)BakeryProjectSettings.LogLevel.Info) != 0) Debug.Log(info);
+ }
+
+ public static void DebugLogWarning(string info)
+ {
+ if (pstorage == null) pstorage = ftLightmaps.GetProjectSettings();
+ if ((pstorage.logLevel & (int)BakeryProjectSettings.LogLevel.Warning) != 0) Debug.LogWarning(info);
+ }
+
+ IEnumerator RenderReflProbesFunc()
+ {
+ ProgressBarInit("Rendering reflection probes...");
+
+ // Put empty lighting data asset to scenes to prevent reflection probes bake trying to re-render everything
+ int sceneCount = SceneManager.sceneCount;
+ var bakeryRuntimePath = ftLightmaps.GetRuntimePath();
+ for(int s=0; s<sceneCount; s++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(s);
+ LightingDataAsset copiedAsset = null;
+ string assetName;
+ if (!scene.isLoaded) continue;
+ if (Lightmapping.lightingDataAsset == null)
+ {
+ if (emptyLDataAsset == null) emptyLDataAsset =
+ AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "emptyLightingData.asset", typeof(LightingDataAsset)) as LightingDataAsset;
+
+ if (emptyLDataAsset == null)
+ {
+ Debug.LogError("Can't load emptyLightingData.asset");
+ continue;
+ }
+
+ if (copiedAsset == null)
+ {
+ assetName = GenerateLightingDataAssetName();
+ var outName = "Assets/" + outputPath + "/" + assetName + "_probes.asset";
+ if (File.Exists(outName)) ValidateFileAttribs(outName);
+ if (AssetDatabase.CopyAsset(bakeryRuntimePath + "emptyLightingData.asset", outName))
+ {
+ AssetDatabase.Refresh();
+ copiedAsset = AssetDatabase.LoadAssetAtPath(outName, typeof(LightingDataAsset)) as LightingDataAsset;
+ if (copiedAsset == null)
+ {
+ Debug.LogError("Can't load " + outName);
+ continue;
+ }
+ }
+ else
+ {
+ Debug.LogError("Can't copy emptyLightingData.asset");
+ continue;
+ }
+ }
+
+ Lightmapping.lightingDataAsset = copiedAsset;
+ }
+ }
+
+ var bakeFunc = typeof(Lightmapping).GetMethod("BakeAllReflectionProbesSnapshots",
+ BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static);
+ if (bakeFunc == null)
+ {
+ ProgressBarEnd();
+ DebugLogError("Can't get BakeAllReflectionProbesSnapshots function");
+ bakeInProgress = false;
+ yield break;
+ }
+ bakeFunc.Invoke(null, null);
+
+ // Revert lighting data assets
+ /*for(int s=0; s<sceneCount; s++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(s);
+ if (!scene.isLoaded) continue;
+ if (Lightmapping.lightingDataAsset == emptyLDataAsset)
+ {
+ Lightmapping.lightingDataAsset = null;
+ }
+ }*/
+
+ EditorSceneManager.MarkAllScenesDirty();
+
+ ProgressBarEnd();
+
+ if (OnFinishedReflectionProbes != null)
+ {
+ OnFinishedReflectionProbes.Invoke(this, null);
+ }
+
+ bakeInProgress = false;
+ }
+
+ static string GetSunRenderMode(BakeryDirectLight light)
+ {
+ return light.cloudShadow != null ? "suncloudshadow" : "sun";
+ }
+
+ static string GetPointLightRenderMode(BakeryPointLight light)
+ {
+ string renderMode;
+ if (light.projMode == BakeryPointLight.ftLightProjectionMode.Cone)
+ {
+ renderMode = "conelight";
+ }
+ else if (light.projMode == BakeryPointLight.ftLightProjectionMode.Cookie)
+ {
+ if (light.cookie == null)
+ {
+ Debug.LogError("No cookie texture is set for light " + light.name);
+ renderMode = "pointlight";
+ }
+ else
+ {
+ renderMode = "cookielight";
+ }
+ }
+ else if (light.projMode == BakeryPointLight.ftLightProjectionMode.Cubemap || light.projMode == BakeryPointLight.ftLightProjectionMode.IES)
+ {
+ if (light.projMode == BakeryPointLight.ftLightProjectionMode.Cubemap && light.cubemap == null)
+ {
+ Debug.LogError("No cubemap set for light " + light.name);
+ renderMode = "pointlight";
+ }
+ else if (light.projMode == BakeryPointLight.ftLightProjectionMode.IES && light.iesFile == null)
+ {
+ Debug.LogError("No IES file is set for light " + light.name);
+ renderMode = "pointlight";
+ }
+ else
+ {
+ renderMode = "cubemaplight";
+ }
+ }
+ else
+ {
+ renderMode = "pointlight";
+ }
+ return renderMode;
+ }
+
+ static bool _ValidateCurrentScene()
+ {
+ var fname = scenePath + "/lastscene.txt";
+ if (!File.Exists(fname)) return false;
+ var cur = ftRenderLightmap.GenerateLightingDataAssetName();
+ var last = File.ReadAllText(fname);
+ return cur == last;
+ }
+
+ public static bool ValidateCurrentScene()
+ {
+ if (!_ValidateCurrentScene())
+ {
+ DebugLogError("Current scenes don't match last exported scenes - make sure 'Export geometry and maps' is enabled.");
+ userCanceled = true;
+ return false;
+ }
+ return true;
+ }
+
+ public static string GenerateLightingDataAssetName()
+ {
+ var sceneCount = SceneManager.sceneCount;
+ var assetName = "";
+ var assetNameHashPart = "";
+ for(int i=0; i<sceneCount; i++)
+ {
+ var s = EditorSceneManager.GetSceneAt(i);
+ if (!s.isLoaded) continue;
+ if (i == 0)
+ {
+ assetName += s.name;
+ }
+ else
+ {
+ assetNameHashPart += s.name;
+ if (i < sceneCount - 1) assetNameHashPart += "__";
+ }
+ }
+ assetName += "_" + assetNameHashPart.GetHashCode();
+ return assetName;
+ }
+
+ LightingDataAsset ApplyLightingDataAsset(string newPath)
+ {
+ var newAsset = AssetDatabase.LoadAssetAtPath(newPath, typeof(LightingDataAsset)) as LightingDataAsset;
+ int sceneCount = SceneManager.sceneCount;
+ for(int i=0; i<sceneCount; i++)
+ {
+ var s = EditorSceneManager.GetSceneAt(i);
+ if (!s.isLoaded) continue;
+ SceneManager.SetActiveScene(s);
+ Lightmapping.lightingDataAsset = newAsset;
+ }
+ return newAsset;
+ }
+
+#if UNITY_2017_3_OR_NEWER
+#else
+ Light AddTempShadowmaskLight(Light light, Scene scene)
+ {
+ var g = new GameObject();
+ SceneManager.MoveGameObjectToScene(g, scene);
+ var ulht2 = g.AddComponent<Light>();
+ ulht2.type = light.type;
+ ulht2.lightmapBakeType = LightmapBakeType.Mixed;
+ ulht2.shadows = LightShadows.Soft;
+ ulht2.range = light.range;
+ ulht2.transform.position = light.transform.position;
+ GameObjectUtility.SetStaticEditorFlags(g, StaticEditorFlags.LightmapStatic);
+ return ulht2;
+ }
+
+ bool GetLightDataForPatching(Light lightTemp, Light lightReal, ref Dictionary<long,long> idMap, ref Dictionary<long,int> realID2Channel)
+ {
+ if (inspectorModeInfo == null)
+ inspectorModeInfo = typeof(SerializedObject).GetProperty("inspectorMode", BindingFlags.NonPublic | BindingFlags.Instance);
+
+ var so = new SerializedObject(lightReal);
+ inspectorModeInfo.SetValue(so, InspectorMode.Debug, null);
+ long realID = so.FindProperty("m_LocalIdentfierInFile").longValue;
+ realID2Channel[realID] = so.FindProperty("m_BakingOutput").FindPropertyRelative("occlusionMaskChannel").intValue;
+
+ so = new SerializedObject(lightTemp);
+ inspectorModeInfo.SetValue(so, InspectorMode.Debug, null);
+ long tempID = so.FindProperty("m_LocalIdentfierInFile").longValue;
+
+ if (tempID == 0)
+ {
+ DebugLogError("tempID == 0");
+ return false;
+ }
+
+ if (realID == 0)
+ {
+ DebugLogError("realID == 0");
+ return false;
+ }
+
+ idMap[tempID] = realID;
+
+ return true;
+ }
+#endif
+
+ bool IsLightCompletelyBaked(bool bakeToIndirect, RenderMode rmode)
+ {
+ bool isBaked = ((rmode == RenderMode.FullLighting) ||
+ (rmode == RenderMode.Indirect && bakeToIndirect) ||
+ (rmode == RenderMode.Shadowmask && bakeToIndirect));
+ return isBaked;
+ }
+
+ void MarkLightAsCompletelyBaked(Light ulht)
+ {
+ var st = storages[ulht.gameObject.scene];
+ if (!st.bakedLights.Contains(ulht))
+ {
+ st.bakedLights.Add(ulht);
+ st.bakedLightChannels.Add(-1);
+ }
+
+#if UNITY_2017_3_OR_NEWER
+ var output = new LightBakingOutput();
+ output.isBaked = true;
+ output.lightmapBakeType = LightmapBakeType.Baked;
+ ulht.bakingOutput = output;
+#endif
+ }
+
+ bool IsLightRealtime(bool bakeToIndirect, RenderMode rmode)
+ {
+ bool isRealtime = ((rmode == RenderMode.Indirect && !bakeToIndirect) ||
+ (rmode == RenderMode.Shadowmask && !bakeToIndirect));
+ return isRealtime;
+ }
+
+ void MarkLightAsRealtime(Light ulht)
+ {
+#if UNITY_2017_3_OR_NEWER
+ var output = new LightBakingOutput();
+ output.isBaked = false;
+ output.lightmapBakeType = LightmapBakeType.Realtime;
+ output.mixedLightingMode = MixedLightingMode.IndirectOnly;
+ output.occlusionMaskChannel = -1;
+ output.probeOcclusionLightIndex = -1;
+ ulht.bakingOutput = output;
+#endif
+ }
+
+ bool IsLightSubtractive(bool bakeToIndirect, RenderMode rmode)
+ {
+ return rmode == RenderMode.Subtractive;
+ }
+
+ void MarkLightAsSubtractive(Light ulht)
+ {
+ var st = storages[ulht.gameObject.scene];
+ if (!st.bakedLights.Contains(ulht))
+ {
+ st.bakedLights.Add(ulht);
+ st.bakedLightChannels.Add(101);
+ }
+
+#if UNITY_2017_3_OR_NEWER
+ var output = new LightBakingOutput();
+ output.isBaked = true;
+ output.lightmapBakeType = LightmapBakeType.Mixed;
+ output.mixedLightingMode = MixedLightingMode.Subtractive;
+ output.occlusionMaskChannel = -1;
+ output.probeOcclusionLightIndex = -1;
+ ulht.bakingOutput = output;
+#else
+ ulht.alreadyLightmapped = true;
+ ulht.lightmapBakeType = LightmapBakeType.Mixed;
+ var so = new SerializedObject(ulht);
+ var sp = so.FindProperty("m_BakingOutput");
+ sp.FindPropertyRelative("occlusionMaskChannel").intValue = 0;
+ sp.FindPropertyRelative("lightmappingMask").intValue = 131076;
+ so.ApplyModifiedProperties();
+
+ if (!maskedLights.Contains(ulht)) maskedLights.Add(ulht);
+#endif
+ }
+
+ void SceneSavedTest(Scene scene)
+ {
+ if (sceneSavedTestScene == scene) sceneWasSaved = true;
+ }
+
+ static int GetShadowmaskChannel(BakeryPointLight a)
+ {
+ int channelA = -1;
+ if (!a.shadowmask) return channelA;
+ var uA = a.GetComponent<Light>();
+ if (uA != null)
+ {
+ var stA = storages[a.gameObject.scene];
+ int indexA = stA.bakedLights.IndexOf(uA);
+ if (indexA >= 0 && indexA < stA.bakedLightChannels.Count)
+ {
+ channelA = stA.bakedLightChannels[indexA];
+ }
+ }
+ return channelA;
+ }
+
+ static int ComparePointLights(BakeryPointLight a, BakeryPointLight b)
+ {
+ int channelA = GetShadowmaskChannel(a);
+ float compA = channelA * 10000 + (a.bakeToIndirect ? 1000 : 0) + a.indirectIntensity;
+
+ int channelB = GetShadowmaskChannel(b);
+ float compB = channelB * 10000 + (b.bakeToIndirect ? 1000 : 0) + b.indirectIntensity;
+
+ return compB.CompareTo(compA);
+ }
+
+ public IEnumerator InitializeLightProbes(bool optional)
+ {
+ hasAnyProbes = true;
+ var probeGroups = FindObjectsOfType(typeof(LightProbeGroup)) as LightProbeGroup[];
+ if (probeGroups.Length == 0)
+ {
+ if (!optional) DebugLogError("Add at least one LightProbeGroup");
+ hasAnyProbes = false;
+ yield break;
+ }
+ else
+ {
+ int totalProbes = 0;
+ for(int i=0; i<probeGroups.Length; i++)
+ {
+ totalProbes += probeGroups[i].probePositions.Length;
+ }
+ if (totalProbes == 0)
+ {
+ if (!optional) DebugLogError("Add at least one light probe");
+ hasAnyProbes = false;
+ yield break;
+ }
+ }
+
+ ftBuildLights.InitMaps(true);
+ if (useUnityForOcclsusionProbes)
+ {
+ var fgo = GameObject.Find("!ftraceLightmaps");
+ if (fgo == null) {
+ fgo = new GameObject();
+ fgo.name = "!ftraceLightmaps";
+ fgo.hideFlags = HideFlags.HideInHierarchy;
+ }
+ var store = fgo.GetComponent<ftLightmapsStorage>();
+ if (store == null) {
+ store = fgo.AddComponent<ftLightmapsStorage>();
+ }
+
+#if UNITY_2017_2_OR_NEWER
+ if (LightmapEditorSettings.lightmapper == BUILTIN_RADIOSITY)
+ {
+ bool cont = true;
+ if (verbose)
+ {
+ cont = EditorUtility.DisplayDialog("Bakery", "Unity does not currently support external occlusion probes. You are going to generate them using Enlighten. This process can take an eternity of time. It is recommended to use Progressive to generate them instead.", "Use Progressive", "Continue anyway");
+ }
+ else
+ {
+ Debug.LogError("Enlighten used to generate occlusion probes");
+ }
+ if (cont)
+ {
+ LightmapEditorSettings.lightmapper = BUILTIN_PT;
+ }
+ }
+ else
+ {
+ if (!store.enlightenWarningShown)
+ {
+ if (verbose)
+ {
+ if (!EditorUtility.DisplayDialog("Bakery", "Unity does not currently support external occlusion probes. You are going to generate them using Progressive.\n", "Continue anyway", "Cancel"))
+ {
+ hasAnyProbes = false;
+ yield break;
+ }
+ }
+ else
+ {
+ Debug.LogError("Enlighten used to generate occlusion probes");
+ }
+ }
+ }
+ if (!store.enlightenWarningShown)
+ {
+ store.enlightenWarningShown = true;
+ EditorUtility.SetDirty(store);
+ }
+#else
+ if (!store.enlightenWarningShown)
+ {
+ if (verbose)
+ {
+ if (!EditorUtility.DisplayDialog("Bakery", "Unity does not currently support external occlusion probes. You are going to generate them using Enlighten or Progressive - whichever is enabled in the Lighting window.\nMake sure you have selected Progressive, as Enlighten can take an eternity of time.", "Continue anyway", "Cancel"))
+ {
+ hasAnyProbes = false;
+ yield break;
+ }
+ store.enlightenWarningShown = true;
+ EditorUtility.SetDirty(store);
+ }
+ else
+ {
+ Debug.LogError("Enlighten used to generate occlusion probes");
+ }
+ }
+#endif
+
+ var staticObjects = new List<Renderer>();
+ var staticObjectsTerrain = new List<Terrain>();
+ var staticObjectsScale = new List<float>();
+ var staticObjectsScaleTerrain = new List<float>();
+ try
+ {
+ // Temporarily zero scale in lightmap to prevent Unity from generating its lightmaps
+ // terrains?
+ var objs = Resources.FindObjectsOfTypeAll(typeof(GameObject));
+ foreach(GameObject obj in objs)
+ {
+ if (obj == null) continue;
+ if (!obj.activeInHierarchy) continue;
+ var path = AssetDatabase.GetAssetPath(obj);
+ if (path != "") continue; // must belond to scene
+ //if ((obj.hideFlags & (HideFlags.DontSave|HideFlags.HideAndDontSave)) != 0) continue; // skip temp objects
+ //if (obj.tag == "EditorOnly") continue; // skip temp objects
+ //var areaLight = obj.GetComponent<BakeryLightMesh>();
+ //if (areaLight != null && !areaLight.selfShadow) continue;
+ var mr = ftBuildGraphics.GetValidRenderer(obj);
+ var mf = obj.GetComponent<MeshFilter>();
+ var tr = obj.GetComponent<Terrain>();
+ //if (((GameObjectUtility.GetStaticEditorFlags(obj) & StaticEditorFlags.LightmapStatic) == 0) && areaLight==null) continue; // skip dynamic
+ if ((GameObjectUtility.GetStaticEditorFlags(obj) & StaticEditorFlags.LightmapStatic) == 0) continue; // skip dynamic
+
+ var sharedMesh = ftBuildGraphics.GetSharedMesh(mr);
+
+ if (mr != null && mr.enabled && mf != null && sharedMesh != null)
+ {
+ var so = new SerializedObject(mr);
+ var prop = so.FindProperty("m_ScaleInLightmap");
+ var scaleInLm = prop.floatValue;
+ if (scaleInLm == 0) continue;
+ staticObjectsScale.Add(scaleInLm);
+ prop.floatValue = 0;
+ so.ApplyModifiedProperties();
+ staticObjects.Add(mr);
+ }
+
+ if (tr != null && tr.enabled)
+ {
+ var so = new SerializedObject(tr);
+ var prop = so.FindProperty("m_ScaleInLightmap");
+ var scaleInLm = prop.floatValue;
+ if (scaleInLm == 0) continue;
+ staticObjectsScaleTerrain.Add(scaleInLm);
+ prop.floatValue = 0;
+ so.ApplyModifiedProperties();
+ staticObjectsTerrain.Add(tr);
+ }
+ }
+ }
+ catch
+ {
+ Debug.LogError("Failed rendering light probes");
+ throw;
+ }
+
+ var lms = LightmapSettings.lightmaps;
+ Texture2D firstLM = null;
+ if (lms.Length > 0) firstLM = lms[0].lightmapColor;
+
+ Lightmapping.BakeAsync();
+ ProgressBarInit("Waiting for Unity to initialize the probes...");
+ while(Lightmapping.isRunning)
+ {
+ userCanceled = simpleProgressBarCancelled();
+ if (userCanceled)
+ {
+ Lightmapping.Cancel();
+ ProgressBarEnd();
+ break;
+ }
+ yield return null;
+ }
+ ProgressBarEnd();
+
+ lms = LightmapSettings.lightmaps;
+ if (lms.Length == 1 && lms[0].lightmapColor != firstLM)
+ {
+ // During occlusion probe rendering Unity also generated useless tiny LMs - delete them to prevent lightmap array pollution
+ if (lms[0].lightmapColor != null) AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(lms[0].lightmapColor));
+ if (lms[0].lightmapDir != null) AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(lms[0].lightmapDir));
+ }
+
+ for(int i=0; i<staticObjects.Count; i++)
+ {
+ var so = new SerializedObject(staticObjects[i]);
+ so.FindProperty("m_ScaleInLightmap").floatValue = staticObjectsScale[i];
+ so.ApplyModifiedProperties();
+ }
+ for(int i=0; i<staticObjectsTerrain.Count; i++)
+ {
+ var so = new SerializedObject(staticObjectsTerrain[i]);
+ so.FindProperty("m_ScaleInLightmap").floatValue = staticObjectsScaleTerrain[i];
+ so.ApplyModifiedProperties();
+ }
+ ftLightmaps.RefreshFull();
+
+ if (userCanceled) yield break;
+ }
+
+ int sceneCount = SceneManager.sceneCount;
+ SceneSetup[] setup = null;
+ Scene scene;
+ string lmdataPath = null;
+ string newPath = null;
+ newAssetLData = null;
+#if UNITY_2017_3_OR_NEWER
+#else
+ Dictionary<long,long> tempID2RealID = null;
+ Dictionary<long,int> realID2Channel = null;
+#endif
+
+ reflProbesValue = QualitySettings.realtimeReflectionProbes;
+ QualitySettings.realtimeReflectionProbes = true;
+ revertReflProbesValue = true;
+
+ if (!useUnityForOcclsusionProbes)
+ {
+ setup = EditorSceneManager.GetSceneManagerSetup();
+ }
+
+ if (!useUnityForOcclsusionProbes)
+ {
+ if (verbose)
+ {
+ if (!EditorSceneManager.EnsureUntitledSceneHasBeenSaved("Please save all scenes before rendering"))
+ {
+ yield break;
+ }
+ }
+ else
+ {
+ EditorSceneManager.SaveOpenScenes();
+ }
+ var assetName = GenerateLightingDataAssetName();
+
+ scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Additive);
+ SceneManager.SetActiveScene(scene);
+ RenderSettings.skybox = null;
+ LightmapSettings.lightmapsMode = LightmapsMode.NonDirectional;
+
+ var probeGroupClones = new GameObject[probeGroups.Length];
+ for(int i=0; i<probeGroups.Length; i++)
+ {
+ var g = new GameObject();
+ g.transform.position = probeGroups[i].transform.position;
+ g.transform.rotation = probeGroups[i].transform.rotation;
+ g.transform.localScale = probeGroups[i].transform.lossyScale;
+ var p = g.AddComponent<LightProbeGroup>();
+ p.probePositions = probeGroups[i].probePositions;
+ SceneManager.MoveGameObjectToScene(g, scene);
+ probeGroupClones[i] = g;
+ }
+
+#if UNITY_2017_3_OR_NEWER
+#else
+ // Make sure shadowmask lights are present in LightingDataAsset together with probes
+ // Occlusion channel needs to be patched later
+ List<Light> maskedLightsTemp = null;
+ List<Light> maskedLightsReal = null;
+ if (userRenderMode == RenderMode.Shadowmask || userRenderMode == RenderMode.Subtractive)
+ {
+ maskedLightsTemp = new List<Light>();
+ maskedLightsReal = new List<Light>();
+ AllP = FindObjectsOfType(typeof(BakeryPointLight)) as BakeryPointLight[];
+ All3 = FindObjectsOfType(typeof(BakeryDirectLight)) as BakeryDirectLight[];
+ for(int i=0; i<All3.Length; i++)
+ {
+ var obj = All3[i] as BakeryDirectLight;
+ if (!obj.enabled) continue;
+ if (!obj.shadowmask && userRenderMode == RenderMode.Shadowmask) continue;
+ var ulht = obj.GetComponent<Light>();
+ if (ulht == null) continue;
+ maskedLightsTemp.Add(AddTempShadowmaskLight(ulht, scene));
+ maskedLightsReal.Add(ulht);
+ }
+ for(int i=0; i<AllP.Length; i++)
+ {
+ var obj = AllP[i] as BakeryPointLight;
+ if (!obj.enabled) continue;
+ if (!obj.shadowmask && userRenderMode == RenderMode.Shadowmask) continue;
+ var ulht = obj.GetComponent<Light>();
+ if (ulht == null) continue;
+ maskedLightsTemp.Add(AddTempShadowmaskLight(ulht, scene));
+ maskedLightsReal.Add(ulht);
+ }
+ }
+ //var tempQuad = GameObject.CreatePrimitive(PrimitiveType.Quad);
+ //SceneManager.MoveGameObjectToScene(tempQuad, scene);
+ //GameObjectUtility.SetStaticEditorFlags(tempQuad, StaticEditorFlags.LightmapStatic);
+
+#endif
+
+ var bakeryRuntimePath = ftLightmaps.GetRuntimePath();
+ var tempScenePath = bakeryRuntimePath + "_tempScene.unity";
+ sceneSavedTestScene = scene;
+ sceneWasSaved = false;
+ EditorSceneManager.sceneSaved += SceneSavedTest;
+ var saved = EditorSceneManager.SaveScene(scene, tempScenePath);
+ if (!saved)
+ {
+ hasAnyProbes = false;
+ DebugLogError("RenderLightProbes error: can't save temporary scene");
+ RestoreSceneManagerSetup(setup);
+ yield break;
+ }
+ while(!sceneWasSaved)
+ {
+ yield return null;
+ }
+ EditorSceneManager.sceneSaved -= SceneSavedTest;
+
+#if UNITY_2017_3_OR_NEWER
+#else
+ if (userRenderMode == RenderMode.Shadowmask || userRenderMode == RenderMode.Subtractive)
+ {
+ tempID2RealID = new Dictionary<long,long>();
+ realID2Channel = new Dictionary<long,int>();
+ for(int i=0; i<maskedLightsTemp.Count; i++)
+ {
+ var lightTemp = maskedLightsTemp[i];
+ var lightReal = maskedLightsReal[i];
+ if (!GetLightDataForPatching(lightTemp, lightReal, ref tempID2RealID, ref realID2Channel))
+ {
+ hasAnyProbes = false;
+ DebugLogError("RenderLightProbes error: can't get light IDs");
+ RestoreSceneManagerSetup(setup);
+ yield break;
+ }
+ }
+ }
+
+#endif
+ var paths = new string[1];
+ paths[0] = tempScenePath;
+ Lightmapping.BakeMultipleScenes(paths);
+ while(Lightmapping.isRunning) yield return null;
+
+ var lightingDataAsset = Lightmapping.lightingDataAsset;
+ if (lightingDataAsset == null)
+ {
+ hasAnyProbes = false;
+ DebugLogError("RenderLightProbes error: lightingDataAsset was not generated");
+ RestoreSceneManagerSetup(setup);
+ ftLightmaps.RefreshFull();
+ yield break;
+ }
+ lmdataPath = AssetDatabase.GetAssetPath(lightingDataAsset);
+ newPath = "Assets/" + outputPath + "/" + assetName + "_probes.asset";
+
+ // Try writing the file. If it's locked, write a copy
+ bool locked = false;
+ BinaryWriter ftest = null;
+ try
+ {
+ ftest = new BinaryWriter(File.Open(newPath, FileMode.Create));
+ }
+ catch
+ {
+ var index = assetName.IndexOf("_copy");
+ if (index >= 0)
+ {
+ assetName = assetName.Substring(0, index);
+ }
+ else
+ {
+ assetName += "_copy";
+ }
+ newPath = "Assets/" + outputPath + "/" + assetName + ".asset";
+ locked = true;
+ }
+ if (!locked) ftest.Close();
+ }
+
+#if UNITY_2017_3_OR_NEWER
+#else
+ if (userRenderMode == RenderMode.Shadowmask || userRenderMode == RenderMode.Subtractive)
+ {
+ if (!useUnityForOcclsusionProbes)
+ {
+ if (!ftLightingDataGen.PatchShadowmaskLightingData(lmdataPath, newPath, ref tempID2RealID, ref realID2Channel, userRenderMode == RenderMode.Subtractive))
+ {
+ try
+ {
+ File.Copy(lmdataPath, newPath, true);
+ }
+ catch
+ {
+ //success = false;
+ Debug.LogError("Failed copying LightingDataAsset");
+ }
+ }
+ }
+ }
+ else
+ {
+#endif
+ if (!useUnityForOcclsusionProbes)
+ {
+ //for(int i=0; i<3; i++)
+ //{
+ //bool success = true;
+ try
+ {
+ File.Copy(lmdataPath, newPath, true);
+ }
+ catch
+ {
+ //success = false;
+ Debug.LogError("Failed copying LightingDataAsset");
+ }
+ //if (success) break;
+ //yield return new WaitForSeconds(1);
+ //}
+ }
+#if UNITY_2017_3_OR_NEWER
+#else
+ }
+#endif
+
+ if (!useUnityForOcclsusionProbes)
+ {
+ AssetDatabase.Refresh();
+ newAssetLData = ApplyLightingDataAsset(newPath);
+ EditorSceneManager.MarkAllScenesDirty();
+
+ EditorSceneManager.SaveOpenScenes();
+ RestoreSceneManagerSetup(setup);
+
+ //var sanityTimeout = GetTime() + 5;
+ while( (sceneCount > EditorSceneManager.sceneCount || EditorSceneManager.GetSceneAt(0).path.Length == 0))// && GetTime() < sanityTimeout )
+ {
+ yield return null;
+ }
+
+ LoadRenderSettings(); // prevent curSector reference from unloading
+ ftLightmaps.RefreshFull();
+ }
+ }
+
+ IEnumerator RenderLightProbesFunc()
+ {
+ int maxThreads = Mathf.Max(2, System.Environment.ProcessorCount * 2);
+ DebugLogInfo("Multi-threading to " + maxThreads + " threads.");
+ lightProbeRenderSize = 64;
+ lightProbeReadSize = 8;
+ var proc = InitializeLightProbes(false);
+ while (proc.MoveNext()) yield return null;
+ if (!hasAnyProbes) yield break;
+
+ var activeScene = EditorSceneManager.GetActiveScene();
+
+ LightingDataAsset newAsset = newAssetLData;
+ List<Renderer> dynamicObjects = null;
+ GameObject[] go = new GameObject[maxThreads];
+ ReflectionProbe[] probe = new ReflectionProbe[maxThreads];
+ RenderTexture[] rt = new RenderTexture[maxThreads];
+ Material mat = null;
+ Texture2D[] tex = new Texture2D[maxThreads];
+
+ Material origSkybox = RenderSettings.skybox;
+ Material tempSkybox;
+ string ftSkyboxShaderName = "Bakery/Skybox";
+
+ //if (!useUnityForLightProbes)
+ {
+ // Disable all dynamic objects
+ //var objects = UnityEngine.Object.FindObjectsOfTypeAll(typeof(GameObject));
+ var objects = Resources.FindObjectsOfTypeAll(typeof(GameObject));
+ dynamicObjects = new List<Renderer>();
+ var dynAllowMask = forceProbeVisibility.value;
+ foreach (GameObject obj in objects)
+ {
+ if (!obj.activeInHierarchy) continue;
+ var path = AssetDatabase.GetAssetPath(obj);
+ if (path != "") continue; // must belond to scene
+ //if ((obj.hideFlags & (HideFlags.DontSave|HideFlags.HideAndDontSave)) != 0) continue; // skip temp objects
+ //if (obj.tag == "EditorOnly") continue; // skip temp objects
+ if ((GameObjectUtility.GetStaticEditorFlags(obj) & StaticEditorFlags.LightmapStatic) != 0) continue; // skip static
+ var mr = ftBuildGraphics.GetValidRenderer(obj);
+ if (mr == null) continue; // must have visible mesh
+ if (!mr.enabled) continue; // renderer must be on
+ if ((obj.layer & dynAllowMask) != 0) continue; // don't hide renderers with forceProbeVisibility mask
+ mr.enabled = false;
+ dynamicObjects.Add(mr);
+ }
+
+ // Change skybox to first Skylight
+ var skyLights = FindObjectsOfType(typeof(BakerySkyLight)) as BakerySkyLight[];
+ BakerySkyLight firstSkyLight = skyLights.Length > 0 ? skyLights[0] : null;
+ tempSkybox = new Material(Shader.Find(ftSkyboxShaderName));
+ if (firstSkyLight != null)
+ {
+ tempSkybox.SetTexture("_Tex", firstSkyLight.cubemap as Cubemap);
+ tempSkybox.SetFloat("_NoTexture", firstSkyLight.cubemap == null ? 1 : 0);
+ tempSkybox.SetFloat("_Hemispherical", firstSkyLight.hemispherical ? 1 : 0);
+ tempSkybox.SetFloat("_Exposure", firstSkyLight.intensity);
+ tempSkybox.SetColor("_Tint", PlayerSettings.colorSpace == ColorSpace.Linear ? firstSkyLight.color : firstSkyLight.color.linear);
+ tempSkybox.SetVector("_MatrixRight", firstSkyLight.transform.right);
+ tempSkybox.SetVector("_MatrixUp", firstSkyLight.transform.up);
+ tempSkybox.SetVector("_MatrixForward", firstSkyLight.transform.forward);
+ }
+ else
+ {
+ tempSkybox.SetFloat("_NoTexture", 1);
+ tempSkybox.SetColor("_Tint", Color.black);
+ }
+ RenderSettings.skybox = tempSkybox;
+
+ for (int i = 0; i < maxThreads; i++)
+ {
+ go[i] = new GameObject();
+ probe[i] = go[i].AddComponent<ReflectionProbe>() as ReflectionProbe;
+ probe[i].resolution = lightProbeRenderSize;
+ probe[i].hdr = true;
+ probe[i].refreshMode = ReflectionProbeRefreshMode.ViaScripting;
+ probe[i].timeSlicingMode = ReflectionProbeTimeSlicingMode.NoTimeSlicing;
+ probe[i].mode = ReflectionProbeMode.Realtime;
+ probe[i].intensity = 0;
+ probe[i].nearClipPlane = 0.0001f; // this isn't good but works so far
+
+ rt[i] = new RenderTexture(lightProbeReadSize * 6, lightProbeReadSize, 0, RenderTextureFormat.ARGBFloat, RenderTextureReadWrite.Linear);
+ tex[i] = new Texture2D(lightProbeReadSize * 6, lightProbeReadSize, TextureFormat.RGBAFloat, false, true);
+ }
+ if (matCubemapToStrip == null) matCubemapToStrip = new Material(Shader.Find("Hidden/ftCubemap2Strip"));
+ mat = matCubemapToStrip;
+ }
+
+ var directions = new Vector3[lightProbeReadSize * lightProbeReadSize];
+ var solidAngles = new float[lightProbeReadSize * lightProbeReadSize];
+ float readTexelSize = 1.0f / lightProbeReadSize;
+ float weightAccum = 0;
+ for (int y = 0; y < lightProbeReadSize; y++)
+ {
+ for (int x = 0; x < lightProbeReadSize; x++)
+ {
+ float u = (x / (float)(lightProbeReadSize - 1)) * 2 - 1;
+ float v = (y / (float)(lightProbeReadSize - 1)) * 2 - 1;
+ directions[y * lightProbeReadSize + x] = (new Vector3(u, v, 1.0f)).normalized;
+
+
+ float x0 = u - readTexelSize;
+ float y0 = v - readTexelSize;
+ float x1 = u + readTexelSize;
+ float y1 = v + readTexelSize;
+ float solidAngle = AreaElement(x0, y0) - AreaElement(x0, y1) - AreaElement(x1, y0) + AreaElement(x1, y1);
+ weightAccum += solidAngle;
+ solidAngles[y * lightProbeReadSize + x] = solidAngle;
+ }
+ }
+ weightAccum *= 6;
+ weightAccum *= Mathf.PI;
+
+ var probes = LightmapSettings.lightProbes;
+ if (probes == null)
+ {
+ DebugLogError("RenderLightProbes error: no probes in LightingDataAsset");
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ //RestoreSceneManagerSetup(setup);
+ foreach (GameObject g in go) DestroyImmediate(g);
+ //userCanceled = true;
+ //ProgressBarEnd();
+ bakeInProgress = false;
+ yield break;
+ }
+ SphericalHarmonicsL2[] shs;
+ //if (!useUnityForLightProbes)
+ {
+ shs = new SphericalHarmonicsL2[probes.count];
+ }
+ //else
+ {
+ //shs = probes.bakedProbes;
+ }
+
+ var positions = probes.positions;
+
+ var directLights = FindObjectsOfType(typeof(BakeryDirectLight)) as BakeryDirectLight[];
+ var pointLights = FindObjectsOfType(typeof(BakeryPointLight)) as BakeryPointLight[];
+
+ if (userRenderMode == RenderMode.Indirect || userRenderMode == RenderMode.Shadowmask)
+ {
+ var filteredDirectLights = new List<BakeryDirectLight>();
+ var filteredPointLights = new List<BakeryPointLight>();
+ for (int i = 0; i < directLights.Length; i++) if (directLights[i].enabled && directLights[i].bakeToIndirect) filteredDirectLights.Add(directLights[i]);
+ for (int i = 0; i < pointLights.Length; i++) if (pointLights[i].enabled && pointLights[i].bakeToIndirect) filteredPointLights.Add(pointLights[i]);
+ directLights = filteredDirectLights.ToArray();
+ pointLights = filteredPointLights.ToArray();
+ }
+ else
+ {
+ var filteredDirectLights = new List<BakeryDirectLight>();
+ var filteredPointLights = new List<BakeryPointLight>();
+ for (int i = 0; i < directLights.Length; i++) if (directLights[i].enabled) filteredDirectLights.Add(directLights[i]);
+ for (int i = 0; i < pointLights.Length; i++) if (pointLights[i].enabled) filteredPointLights.Add(pointLights[i]);
+ directLights = filteredDirectLights.ToArray();
+ pointLights = filteredPointLights.ToArray();
+ }
+
+ bool anyDirectLightToBake = (directLights.Length > 0 || pointLights.Length > 0);// && userRenderMode == RenderMode.FullLighting;
+ float[] uvpos = null;
+ byte[] uvnormal = null;
+ int atlasTexSize = 0;
+ List<Vector3>[] dirsPerProbe = new List<Vector3>[probes.count];
+ List<Vector3>[] dirColorsPerProbe = new List<Vector3>[probes.count];
+ if (anyDirectLightToBake)
+ {
+ atlasTexSize = (int)Mathf.Ceil(Mathf.Sqrt((float)probes.count));
+ atlasTexSize = (int)Mathf.Ceil(atlasTexSize / (float)tileSize) * tileSize;
+ uvpos = new float[atlasTexSize * atlasTexSize * 4];
+ uvnormal = new byte[atlasTexSize * atlasTexSize * 4];
+ }
+
+ userCanceled = false;
+ ProgressBarInit("Rendering lightprobes...");
+ yield return null;
+
+ ftBuildGraphics.CreateSceneFolder();
+
+ if (anyDirectLightToBake)
+ {
+ ProgressBarShow("Rendering lightprobes - direct...", 0, true);
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ foreach (GameObject g in go) DestroyImmediate(g);
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ bakeInProgress = false;
+ yield break;
+ }
+
+ for (int i = 0; i < probes.count; i++)
+ {
+ int x = i % atlasTexSize;
+ int y = i / atlasTexSize;
+ int index = y * atlasTexSize + x;
+ uvpos[index * 4] = positions[i].x;
+ uvpos[index * 4 + 1] = positions[i].y;
+ uvpos[index * 4 + 2] = positions[i].z;
+ uvpos[index * 4 + 3] = 1.0f;
+ uvnormal[index * 4 + 1] = 255;
+ uvnormal[index * 4 + 3] = 255;
+ }
+
+ var fpos = new BinaryWriter(File.Open(scenePath + "/uvpos_probes.dds", FileMode.Create));
+ fpos.Write(ftDDS.ddsHeaderFloat4);
+ var posbytes = new byte[uvpos.Length * 4];
+ System.Buffer.BlockCopy(uvpos, 0, posbytes, 0, posbytes.Length);
+ fpos.Write(posbytes);
+ fpos.BaseStream.Seek(12, SeekOrigin.Begin);
+ fpos.Write(atlasTexSize);
+ fpos.Write(atlasTexSize);
+ fpos.Close();
+
+ var fnorm = new BinaryWriter(File.Open(scenePath + "/uvnormal_probes.dds", FileMode.Create));
+ fnorm.Write(ftDDS.ddsHeaderRGBA8);
+ fnorm.Write(uvnormal);
+ fnorm.BaseStream.Seek(12, SeekOrigin.Begin);
+ fnorm.Write(atlasTexSize);
+ fnorm.Write(atlasTexSize);
+ fnorm.Close();
+
+ if (!ftInitialized)
+ {
+ ftInitialized = true;
+ ftSceneDirty = true;
+ }
+ if (forceRebuildGeometry)
+ {
+ ftBuildGraphics.modifyLightmapStorage = false;
+ ftBuildGraphics.forceAllAreaLightsSelfshadow = false;
+ ftBuildGraphics.validateLightmapStorageImmutability = false;
+ var exportSceneFunc = ftBuildGraphics.ExportScene((ftRenderLightmap)EditorWindow.GetWindow(typeof(ftRenderLightmap)), false);
+ progressBarEnabled = true;
+ while (exportSceneFunc.MoveNext())
+ {
+ progressBarText = ftBuildGraphics.progressBarText;
+ progressBarPercent = ftBuildGraphics.progressBarPercent;
+ if (ftBuildGraphics.userCanceled)
+ {
+ ProgressBarEnd();
+ foreach (GameObject g in go) DestroyImmediate(g);
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ bakeInProgress = false;
+ yield break;
+ }
+ yield return null;
+ }
+ ftSceneDirty = true;
+ if (ftBuildGraphics.userCanceled)
+ {
+ userCanceled = ftBuildGraphics.userCanceled;
+ ProgressBarEnd();
+ foreach (GameObject g in go) DestroyImmediate(g);
+ foreach (var d in dynamicObjects)
+ {
+ if (d != null) d.enabled = true;
+ }
+ RenderSettings.skybox = origSkybox;
+ bakeInProgress = false;
+ yield break;
+ }
+ EditorSceneManager.MarkAllScenesDirty();
+ }
+ else
+ {
+ ValidateCurrentScene();
+ }
+
+ ftLightmaps.RefreshFull();
+
+ CollectStorages();
+ var sceneCount = SceneManager.sceneCount;
+ for (int s = 0; s < sceneCount; s++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(s);
+ if (!scene.isLoaded) continue;
+ storage = storages[scene];
+
+ // Clear temp data from storage
+ storage.uvBuffOffsets = new int[0];
+ storage.uvBuffLengths = new int[0];
+ storage.uvSrcBuff = new float[0];
+ storage.uvDestBuff = new float[0];
+ storage.lmrIndicesOffsets = new int[0];
+ storage.lmrIndicesLengths = new int[0];
+ storage.lmrIndicesBuff = new int[0];
+
+ storage.lmGroupLODResFlags = new int[0];
+ storage.lmGroupMinLOD = new int[0];
+ storage.lmGroupLODMatrix = new int[0];
+ }
+
+
+ int LMID = 0;
+ var flms = new BinaryWriter(File.Open(scenePath + "/lms.bin", FileMode.Create));
+ flms.Write("probes");
+ flms.Write(atlasTexSize);
+ flms.Close();
+
+ var flmlod = new BinaryWriter(File.Open(scenePath + "/lmlod.bin", FileMode.Create));
+ flmlod.Write(ftBuildGraphics.sceneLodsUsed > 0 ? 0 : -1);
+ flmlod.Close();
+
+ var fsettings = new BinaryWriter(File.Open(scenePath + "/settings.bin", FileMode.Create));
+ fsettings.Write(tileSize);
+ fsettings.Write(false);
+ fsettings.Write(false);
+ fsettings.Write(deviceMask);
+ fsettings.Close();
+
+ int errCode = 0;
+ for (int i = 0; i < directLights.Length; i++)
+ {
+ ProgressBarShow("Rendering lightprobes - direct...", i / (float)(directLights.Length + pointLights.Length), true);
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ foreach (GameObject g in go) DestroyImmediate(g);
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ bakeInProgress = false;
+ yield break;
+ }
+ yield return null;
+
+ var light = directLights[i] as BakeryDirectLight;
+ ftBuildLights.BuildDirectLight(light, SampleCount(light.samples), true);
+
+ if (exeMode)
+ {
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.Arguments = GetSunRenderMode(light) + " " + scenePathQuoted + " probes.dds " + PASS_HALF + " " + 0 + " " + LMID;
+ DebugLogInfo("Running ftrace " + startInfo.Arguments);
+#if LAUNCH_VIA_DLL
+ var crt = ProcessCoroutine(ftraceExe, startInfo.Arguments);
+ while (crt.MoveNext())
+ {
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ foreach (GameObject g in go) DestroyImmediate(g);
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ bakeInProgress = false;
+ yield break;
+ }
+ yield return null;
+ }
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ foreach (GameObject g in go) DestroyImmediate(g);
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ bakeInProgress = false;
+ yield break;
+ }
+ errCode = lastReturnValue;
+#else
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ var exeProcess = System.Diagnostics.Process.Start(startInfo);
+ exeProcess.WaitForExit();
+ errCode = exeProcess.ExitCode;
+#endif
+ }
+
+ if (errCode != 0)
+ {
+ DebugLogError("ftrace error: " + ftErrorCodes.TranslateFtrace(errCode, rtxMode));
+ userCanceled = true;
+ foreach (GameObject g in go) DestroyImmediate(g);
+
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ bakeInProgress = false;
+ yield break;
+ }
+
+ var halfs = new ushort[atlasTexSize * atlasTexSize * 4];
+ var halfBytes = new byte[halfs.Length * 2];
+ var fprobes = new BinaryReader(File.Open(scenePath + "/probes.dds", FileMode.Open, FileAccess.Read));
+ fprobes.BaseStream.Seek(128, SeekOrigin.Begin);
+ halfBytes = fprobes.ReadBytes(halfBytes.Length);
+ System.Buffer.BlockCopy(halfBytes, 0, halfs, 0, halfBytes.Length);
+ fprobes.Close();
+
+ var dir = light.transform.forward;
+ float cr = 0.0f;
+ float cg = 0.0f;
+ float cb = 0.0f;
+ for (int p = 0; p < probes.count; p++)
+ {
+ cr = Mathf.HalfToFloat(halfs[p * 4]);
+ cg = Mathf.HalfToFloat(halfs[p * 4 + 1]);
+ cb = Mathf.HalfToFloat(halfs[p * 4 + 2]);
+ if (cr + cg + cb <= 0) continue;
+
+ if (dirsPerProbe[p] == null)
+ {
+ dirsPerProbe[p] = new List<Vector3>();
+ dirColorsPerProbe[p] = new List<Vector3>();
+ }
+ dirsPerProbe[p].Add(dir);
+ dirColorsPerProbe[p].Add(new Vector3(cr, cg, cb));
+ }
+ }
+
+ for (int i = 0; i < pointLights.Length; i++)
+ {
+ ProgressBarShow("Rendering lightprobes - direct...", (i + directLights.Length) / (float)(directLights.Length + pointLights.Length), true);
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ foreach (GameObject g in go) DestroyImmediate(g);
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ bakeInProgress = false;
+ yield break;
+ }
+ yield return null;
+
+ var light = pointLights[i] as BakeryPointLight;
+ bool isError = ftBuildLights.BuildLight(light, SampleCount(light.samples), true, true); // TODO: dirty tex detection!!
+ if (isError)
+ {
+ ProgressBarEnd();
+ DebugLogError("BuildLight error");
+ userCanceled = true;
+ foreach (GameObject g in go) DestroyImmediate(g);
+
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ bakeInProgress = false;
+ yield break;
+ }
+ yield return null;
+
+ string renderMode = GetPointLightRenderMode(light);
+
+ if (exeMode)
+ {
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.Arguments = renderMode + " " + scenePathQuoted + " probes.dds " + PASS_HALF + " " + 0 + " " + LMID;
+ DebugLogInfo("Running ftrace " + startInfo.Arguments);
+#if LAUNCH_VIA_DLL
+ var crt = ProcessCoroutine(ftraceExe, startInfo.Arguments);
+ while (crt.MoveNext())
+ {
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ foreach (GameObject g in go) DestroyImmediate(g);
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ bakeInProgress = false;
+ yield break;
+ }
+ yield return null;
+ }
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ foreach (GameObject g in go) DestroyImmediate(g);
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ bakeInProgress = false;
+ yield break;
+ }
+ errCode = lastReturnValue;
+#else
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ var exeProcess = System.Diagnostics.Process.Start(startInfo);
+ exeProcess.WaitForExit();
+ errCode = exeProcess.ExitCode;
+#endif
+ }
+
+ if (errCode != 0)
+ {
+ ProgressBarEnd();
+ DebugLogError("ftrace error: " + ftErrorCodes.TranslateFtrace(errCode, rtxMode));
+ userCanceled = true;
+ foreach (GameObject g in go) DestroyImmediate(g);
+
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ bakeInProgress = false;
+ yield break;
+ }
+
+ var halfs = new ushort[atlasTexSize * atlasTexSize * 4];
+ var halfBytes = new byte[halfs.Length * 2];
+ var fprobes = new BinaryReader(File.Open(scenePath + "/probes.dds", FileMode.Open));
+ fprobes.BaseStream.Seek(128, SeekOrigin.Begin);
+ halfBytes = fprobes.ReadBytes(halfBytes.Length);
+ System.Buffer.BlockCopy(halfBytes, 0, halfs, 0, halfBytes.Length);
+ fprobes.Close();
+
+ for (int p = 0; p < probes.count; p++)
+ {
+ var dir = (positions[p] - light.transform.position).normalized;
+
+ float cr = Mathf.HalfToFloat(halfs[p * 4]);
+ float cg = Mathf.HalfToFloat(halfs[p * 4 + 1]);
+ float cb = Mathf.HalfToFloat(halfs[p * 4 + 2]);
+ if (cr + cg + cb <= 0) continue;
+
+ if (dirsPerProbe[p] == null)
+ {
+ dirsPerProbe[p] = new List<Vector3>();
+ dirColorsPerProbe[p] = new List<Vector3>();
+ }
+ dirsPerProbe[p].Add(dir);
+ dirColorsPerProbe[p].Add(new Vector3(cr, cg, cb));
+ }
+ }
+ }
+
+ //float numPixels = lightProbeReadSize * lightProbeReadSize * 6;
+
+ mat.SetFloat("gammaMode", PlayerSettings.colorSpace == ColorSpace.Linear ? 0 : 1);
+
+ var eventArgs = new ProbeEventArgs();
+ System.Threading.Thread[] thread = new System.Threading.Thread[maxThreads];
+
+ int currentThreadsCount = maxThreads;
+ int lastThreadsCount;
+ for (int i = 0; i < shs.Length + maxThreads; i = i + maxThreads)
+ {
+ lastThreadsCount = currentThreadsCount;
+ currentThreadsCount = Mathf.Min(shs.Length - i, maxThreads);
+ if (currentThreadsCount <= 0) {
+ if (i>0) for (int th = 0; th < lastThreadsCount; th++) thread[th].Join();
+ break;
+ }
+ for (int ip = 0; ip < currentThreadsCount; ip++)
+ {
+ probe[ip].transform.position = positions[i + ip];
+ }
+
+ if (OnPreRenderProbe != null)
+ {
+ eventArgs.pos = positions[i];
+ OnPreRenderProbe.Invoke(this, eventArgs);
+ }
+
+ int[] handle = new int[currentThreadsCount];
+ for (int ip = 0; ip < currentThreadsCount; ip++)
+ {
+ handle[ip] = probe[ip].RenderProbe();
+ }
+ yield return null;
+
+ for (int ip = 0; ip < currentThreadsCount; ip++)
+ {
+ while (!probe[ip].IsFinishedRendering(handle[ip]))
+ {
+ yield return null;
+ }
+
+ var cubemap = probe[ip].texture as RenderTexture;
+ Graphics.Blit(cubemap, rt[ip], mat);
+ Graphics.SetRenderTarget(rt[ip]);
+ tex[ip].ReadPixels(new Rect(0, 0, lightProbeReadSize * 6, lightProbeReadSize), 0, 0, false);
+ tex[ip].Apply();
+ }
+
+
+
+ for (int ip = 0; ip < currentThreadsCount; ip++)
+ {
+ int ii = i + ip;
+ var bytes = tex[ip].GetRawTextureData();
+ SphericalHarmonicsL2 sh;
+ sh = new SphericalHarmonicsL2();
+ sh.Clear();
+
+ if (i > 0) for (int th = 0; th < lastThreadsCount; th++) thread[th].Join();
+
+ thread[ip] = new System.Threading.Thread(() =>
+ {
+ float[] basis = new float[9];
+ float[] pixels = new float[bytes.Length / 4];
+ System.Buffer.BlockCopy(bytes, 0, pixels, 0, bytes.Length);
+
+ var probeDirLights = dirsPerProbe[ii];
+ var probeDirLightColors = dirColorsPerProbe[ii];
+
+
+ for (int face = 0; face < 6; face++)
+ {
+ for (int y = 0; y < lightProbeReadSize; y++)
+ {
+ for (int x = 0; x < lightProbeReadSize; x++)
+ {
+ var dir = directions[y * lightProbeReadSize + x];
+ //Vector3 dirL;
+
+ var solidAngle = solidAngles[y * lightProbeReadSize + x];
+
+ float stx = x / (float)(lightProbeReadSize - 1);
+ stx = stx * 2 - 1;
+ float sty = y / (float)(lightProbeReadSize - 1);
+ sty = sty * 2 - 1;
+ if (face == 0)
+ {
+ dir = new Vector3(-1, -sty, stx);
+ }
+ else if (face == 1)
+ {
+ dir = new Vector3(1, -sty, -stx);
+ }
+ else if (face == 2)
+ {
+ dir = new Vector3(-sty, -1, -stx);
+ }
+ else if (face == 3)
+ {
+ dir = new Vector3(-sty, 1, stx);
+ }
+ else if (face == 4)
+ {
+ dir = new Vector3(-stx, -sty, -1);
+ }
+ else
+ {
+ dir = new Vector3(stx, -sty, 1);
+ }
+ dir = dir.normalized;
+
+ float cr = 0.0f;
+ float cg = 0.0f;
+ float cb = 0.0f;
+ int pixelAddr = y * lightProbeReadSize * 6 + x + face * lightProbeReadSize;
+ cr = pixels[pixelAddr * 4];
+ cg = pixels[pixelAddr * 4 + 1];
+ cb = pixels[pixelAddr * 4 + 2];
+
+ if (cr + cg + cb > 0)
+ {
+ EvalSHBasis9(dir, ref basis);
+ for (int b = 0; b < 9; b++)
+ {
+ if (b == lightProbeMaxCoeffs) break;
+
+ // solidAngle is a weight for texels to account for cube shape of the cubemap (we need sphere)
+ sh[0, b] += cr * basis[b] * solidAngle;
+ sh[1, b] += cg * basis[b] * solidAngle;
+ sh[2, b] += cb * basis[b] * solidAngle;
+ }
+ }
+
+ }
+ }
+ }
+
+ if (probeDirLights != null)
+ {
+ const float norm = 2.9567930857315701067858823529412f;
+ for (int d = 0; d < probeDirLights.Count; d++)
+ {
+ var clr = probeDirLightColors[d];
+ EvalSHBasis9(-probeDirLights[d], ref basis);
+ for (int b = 0; b < 9; b++)
+ {
+ if (b == lightProbeMaxCoeffs) break;
+ sh[0, b] += clr.x * basis[b] * norm;
+ sh[1, b] += clr.y * basis[b] * norm;
+ sh[2, b] += clr.z * basis[b] * norm;
+ }
+ }
+ }
+
+ shs[ii] = sh;
+ });
+
+ thread[ip].IsBackground = true;
+ thread[ip].Start();
+ }
+
+ ProgressBarShow("Rendering lightprobes - GI...", (i / (float)probes.count), true);
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ foreach (GameObject g in go) DestroyImmediate(g);
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ bakeInProgress = false;
+ yield break;
+ }
+ yield return null;
+
+ }
+
+ foreach (GameObject g in go) DestroyImmediate(g);
+ foreach (var d in dynamicObjects) d.enabled = true;
+ RenderSettings.skybox = origSkybox;
+ if (newAsset != null) EditorUtility.SetDirty(newAsset);
+
+ probes.bakedProbes = shs;
+ EditorUtility.SetDirty(probes);
+
+ SceneManager.SetActiveScene(activeScene);
+
+ if (OnFinishedProbes != null)
+ {
+ OnFinishedProbes.Invoke(this, null);
+ }
+
+ ProgressBarEnd();
+
+ bakeInProgress = false;
+ DebugLogInfo("Finished rendering Light Probes.");
+ yield break;
+ }
+
+
+ void RenderLightmapUpdate()
+ {
+ if (!exeMode)
+ {
+ while(progressFunc.MoveNext()) {}
+ EditorApplication.update -= RenderLightmapUpdate;
+ bakeInProgress = false;
+ }
+ else
+ {
+ if (!progressFunc.MoveNext())
+ {
+ EditorApplication.update -= RenderLightmapUpdate;
+ bakeInProgress = false;
+ }
+ }
+ }
+
+ int SetupLightShadowmaskUsingBitmask(Light ulht, int bitmask, int shadowmaskGroupID, int[] channelBitsPerLayer)
+ {
+ int foundChannel = -1;
+ if (shadowmaskGroupID > 0)
+ {
+ shadowmaskGroupIDToChannel.TryGetValue(shadowmaskGroupID, out foundChannel);
+ }
+
+ if (foundChannel < 0)
+ {
+ // Find common available channels in affected layers
+ const int fourBits = 1|2|4|8;
+ int commonFreeBits = 0;
+ for(int layer=0; layer<32; layer++)
+ {
+ if ((bitmask & (1<<layer))!=0) commonFreeBits |= channelBitsPerLayer[layer];
+ if (commonFreeBits == fourBits)
+ {
+ DebugLogWarning("Light " + ulht.name + " can't generate shadow mask (out of channels).");
+ overlappingLights.Add(ulht.gameObject);
+ return -1;
+ }
+ }
+
+ // Get the first available common channel
+ int firstFreeBit = -1;
+ for(int bit=0; bit<4; bit++)
+ {
+ if ((commonFreeBits & (1<<bit)) == 0)
+ {
+ firstFreeBit = bit;
+ break;
+ }
+ }
+
+ foundChannel = firstFreeBit;
+ }
+
+ // Setup the light
+ if (!SetupLightShadowmask(ulht, foundChannel)) return -1;
+
+ // Mark the channel as unavailable for affected layers
+ for(int layer=0; layer<32; layer++)
+ {
+ if ((bitmask & (1<<layer))!=0)
+ {
+ channelBitsPerLayer[layer] |= 1<<foundChannel;
+ }
+ }
+
+ if (shadowmaskGroupID > 0)
+ {
+ shadowmaskGroupIDToChannel[shadowmaskGroupID] = foundChannel;
+ }
+
+ return foundChannel;
+ }
+
+ static void CollectStorages()
+ {
+ var sceneCount = SceneManager.sceneCount;
+ storages = new Dictionary<Scene, ftLightmapsStorage>();
+ for(int i=0; i<sceneCount; i++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(i);
+ if (!scene.isLoaded) continue;
+ SceneManager.SetActiveScene(scene);
+ var go = ftLightmaps.FindInScene("!ftraceLightmaps", scene);
+ if (go == null) {
+ go = new GameObject();
+ go.name = "!ftraceLightmaps";
+ go.hideFlags = HideFlags.HideInHierarchy;
+ }
+ storage = go.GetComponent<ftLightmapsStorage>();
+ if (storage == null) {
+ storage = go.AddComponent<ftLightmapsStorage>();
+ }
+ storages[scene] = storage;
+ }
+ }
+
+ bool CollectGroups(List<BakeryLightmapGroup> groupList, List<BakeryLightmapGroup> groupListGIContributing, bool selected, bool probes=false)
+ {
+ // 1: Collect
+ var sceneCount = SceneManager.sceneCount;
+ var groups = new List<BakeryLightmapGroup>();
+
+ // Find explicit LMGroups
+ var groupsSelectors = FindObjectsOfType(typeof(BakeryLightmapGroupSelector)) as BakeryLightmapGroupSelector[];
+ for(int i=0; i<groupsSelectors.Length; i++)
+ {
+ var grp = groupsSelectors[i].lmgroupAsset;
+ if (grp != null && fullSectorRender && (grp as BakeryLightmapGroup).passedFilter != passedFilterFlag) continue;
+ groups.Add(grp as BakeryLightmapGroup);
+ }
+
+ // Find implicit LMGroups
+ for(int s=0; s<sceneCount; s++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(s);
+ if (!scene.isLoaded) continue;
+ for(int i=0; i<storages[scene].implicitGroups.Count; i++)
+ {
+ var grp = storages[scene].implicitGroups[i] as BakeryLightmapGroup;
+ groups.Add(grp);
+ }
+ }
+
+ if (groups==null || groups.Count==0)
+ {
+ DebugLogError("Add at least one LMGroup");
+ ProgressBarEnd();
+ return false;
+ }
+
+ // 2: Filter
+ groupListPlain = new List<BakeryLightmapGroupPlain>();
+ groupListGIContributingPlain = new List<BakeryLightmapGroupPlain>();
+ Object[] selObjs = null;
+ if (selected)
+ {
+ // Selected only
+ selObjs = Selection.objects;
+ if (selObjs.Length == 0)
+ {
+ DebugLogError("No objects selected");
+ ProgressBarEnd();
+ return false;
+ }
+ for(int o=0; o<selObjs.Length; o++)
+ {
+ if (selObjs[o] as GameObject == null) continue;
+ var selGroup = ftBuildGraphics.GetLMGroupFromObject(selObjs[o] as GameObject);
+ if (selGroup == null) continue;
+ if (!groupList.Contains(selGroup))
+ {
+ groupList.Add(selGroup);
+ groupListPlain.Add(selGroup.GetPlainStruct());
+ }
+ }
+ for(int i=0; i<groups.Count; i++)
+ {
+ var lmgroup = groups[i];
+ if (lmgroup == null) continue;
+ if (!groupListGIContributing.Contains(lmgroup))
+ {
+ var outfile = "Assets/" + outputPathFull + "/"+lmgroup.name+"_final.hdr";
+ bool exists = File.Exists(outfile);
+ if ((!exists && lmgroup.mode != BakeryLightmapGroup.ftLMGroupMode.Vertex) && !groupList.Contains(lmgroup)) continue;
+ groupListGIContributing.Add(lmgroup);
+ groupListGIContributingPlain.Add(lmgroup.GetPlainStruct());
+ }
+ }
+ }
+ else if (probes)
+ {
+ // Probes only
+ for(int i=0; i<groups.Count; i++)
+ {
+ var lmgroup = groups[i];
+ if (lmgroup == null) continue;
+ if (groupList.Count == 0 && lmgroup.probes)
+ {
+ groupList.Add(lmgroup);
+ groupListPlain.Add(lmgroup.GetPlainStruct());
+ }
+ if (!groupListGIContributing.Contains(lmgroup))
+ {
+ var outfile = "Assets/" + outputPathFull + "/"+lmgroup.name;
+ var dirMode = (int)lmgroup.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto ? (int)renderDirMode : (int)lmgroup.renderDirMode;
+ if (dirMode == (int)RenderDirMode.RNM)
+ {
+ outfile += "_RNM0.hdr";
+ }
+ else if (dirMode == (int)RenderDirMode.SH)
+ {
+ outfile += "_L0.hdr";
+ }
+ else
+ {
+ outfile += "_final.hdr";
+ }
+ bool exists = File.Exists(outfile);
+ if ((!exists && lmgroup.mode != BakeryLightmapGroup.ftLMGroupMode.Vertex) && !groupList.Contains(lmgroup)) continue;
+ groupListGIContributing.Add(lmgroup);
+ groupListGIContributingPlain.Add(lmgroup.GetPlainStruct());
+ }
+ }
+ if (groupList.Count == 0)
+ {
+ DebugLogError("Add at least one LightProbeGroup (L1)");
+ ProgressBarEnd();
+ return false;
+ }
+ }
+ else
+ {
+ // Full render
+ for(int i=0; i<groups.Count; i++)
+ {
+ var lmgroup = groups[i];
+ if (lmgroup == null) continue;
+ if (!groupList.Contains(lmgroup))
+ {
+ groupList.Add(lmgroup);
+ groupListPlain.Add(lmgroup.GetPlainStruct());
+ groupListGIContributing.Add(lmgroup);
+ groupListGIContributingPlain.Add(lmgroup.GetPlainStruct());
+ }
+ }
+ }
+
+ return true;
+ }
+
+ bool ValidateSamples()
+ {
+ int warnCount = 0;
+ int warnLimit = 32;
+ string warns = "";
+
+ if (giSamples > 64 && bounces > 0)
+ {
+ var warn = "GI uses more than 64 samples.";
+ if (warnCount < warnLimit) warns += warn + "\n";
+ DebugLogWarning(warn);
+ warnCount++;
+ }
+
+ if (hackAOSamples > 64 && hackAOIntensity > 0)
+ {
+ var warn = "AO uses more than 64 samples.";
+ if (warnCount < warnLimit) warns += warn + "\n";
+ DebugLogWarning(warn);
+ warnCount++;
+ }
+
+ for(int i=0; i<All.Length; i++)
+ {
+ if (All[i].samples2 > 64 && All[i].selfShadow)
+ {
+ var warn = "Light " + All[i].name + " uses more than 64 near samples.";
+ if (warnCount < warnLimit) warns += warn + "\n";
+ DebugLogWarning(warn);
+ warnCount++;
+ }
+ if (All[i].samples > 4096)
+ {
+ var warn = "Light " + All[i].name + " uses more than 4096 far samples.";
+ if (warnCount < warnLimit) warns += warn + "\n";
+ DebugLogWarning(warn);
+ warnCount++;
+ }
+ }
+ for(int i=0; i<AllP.Length; i++)
+ {
+ if (AllP[i].samples > 4096)
+ {
+ var warn = "Light " + AllP[i].name + " uses more than 4096 samples.";
+ if (warnCount < warnLimit) warns += warn + "\n";
+ DebugLogWarning(warn);
+ warnCount++;
+ }
+ }
+ for(int i=0; i<All2.Length; i++)
+ {
+ if (All2[i].samples > 64)
+ {
+ var warn = "Light " + All2[i].name + " uses more than 64 samples.";
+ if (warnCount < warnLimit) warns += warn + "\n";
+ DebugLogWarning(warn);
+ warnCount++;
+ }
+ }
+ for(int i=0; i<All3.Length; i++)
+ {
+ if (All3[i].samples > 64)
+ {
+ var warn = "Light " + All3[i].name + " uses more than 64 samples.";
+ if (warnCount < warnLimit) warns += warn + "\n";
+ DebugLogWarning(warn);
+ warnCount++;
+ }
+ }
+ if (warnCount > 0)
+ {
+ if (verbose)
+ {
+ var warnText = "Some sample count values might be out of reasonable range. Extremely high values may cause GPU go out of available resources. This validation can be disabled.\n\n";
+ warnText += warns;
+ if (warnCount >= warnLimit) warnText += "(See more warnings in console)";
+ if (!EditorUtility.DisplayDialog("Bakery", warnText, "Continue", "Cancel"))
+ {
+ return false;
+ }
+ }
+ else
+ {
+ Debug.LogError("Some sample count values might be out of reasonable range");
+ }
+ }
+ return true;
+ }
+
+ bool ValidatePrefabs()
+ {
+ var lmprefabs2 = FindObjectsOfType(typeof(BakeryLightmappedPrefab)) as BakeryLightmappedPrefab[];
+ var lmprefabsList = new List<BakeryLightmappedPrefab>();
+ int pwarnCount = 0;
+ int pwarnLimit = 32;
+ string pwarns = "";
+ string pwarns2 = "";
+ for(int i=0; i<lmprefabs2.Length; i++)
+ {
+ var p = lmprefabs2[i];
+ if (!p.gameObject.activeInHierarchy) continue;
+ if (!p.enableBaking) continue;
+ if (!p.IsValid())
+ {
+ //if (prefabWarning)
+ {
+ var warn = p.name + ": " + p.errorMessage;
+ if (pwarnCount < pwarnLimit) pwarns += warn + "\n";
+ DebugLogWarning(warn);
+ pwarnCount++;
+ }
+ }
+ else
+ {
+ lmprefabsList.Add(p);
+ //if (prefabWarning)
+ {
+ if (pwarnCount < pwarnLimit) pwarns2 += p.name + "\n";
+ pwarnCount++;
+ }
+ }
+ }
+ if (pwarnCount > 0)
+ {
+ string warnText = "";
+ if (pwarns2.Length > 0)
+ {
+ warnText += "These prefabs are going to be overwritten:\n\n" + pwarns2;
+ }
+ if (pwarns.Length > 0)
+ {
+ if (pwarns2.Length > 0) warnText += "\n\n";
+ warnText += "These prefabs have baking enabled, but NOT going to be overwritten:\n\n" + pwarns;
+ }
+ if (warnText.Length > 0)
+ {
+ if (verbose)
+ {
+ if (!EditorUtility.DisplayDialog("Bakery", warnText, "Continue", "Cancel"))
+ {
+ return false;
+ }
+ }
+ else
+ {
+ Debug.LogError(warnText);
+ }
+ }
+ }
+ return true;
+ }
+
+ IEnumerator RenderLightmapFunc()
+ {
+ // Basic validation
+ if (userRenderMode == RenderMode.Indirect && bounces < 1)
+ {
+ DebugLogError("Can't render indirect lightmaps, if bounces < 1");
+ yield break;
+ }
+
+ if (userRenderMode == RenderMode.AmbientOcclusionOnly)
+ {
+ if (hackAOIntensity <= 0 || hackAOSamples <= 0)
+ {
+ DebugLogError("AO intensity and samples must be > 0 to render AO-only map");
+ yield break;
+ }
+
+ if (renderDirMode != RenderDirMode.None && renderDirMode != RenderDirMode.DominantDirection)
+ {
+ DebugLogError("AO-only mode does not support RNM or SH.");
+ yield break;
+ }
+ }
+
+ if (!exeMode && userRenderMode == RenderMode.Indirect)
+ {
+ DebugLogError("Selective baked direct lighting is not implemented in DLL mode");
+ yield break;
+ }
+
+ if (verbose)
+ {
+ if (!EditorSceneManager.EnsureUntitledSceneHasBeenSaved("Please save all scenes before rendering"))
+ {
+ yield break;
+ }
+ }
+ else
+ {
+ EditorSceneManager.SaveOpenScenes();
+ }
+
+ // Init probes
+ if (lightProbeMode == LightProbeMode.L1 && !selectedOnly && !fullSectorRender)
+ {
+ var proc = InitializeLightProbes(!probesOnlyL1);
+ while(proc.MoveNext()) yield return null;
+ if (probesOnlyL1 && !hasAnyProbes) yield break;
+ }
+
+ // Alloc new data
+ if (clientMode)
+ {
+ ftClient.serverFileList = new List<string>();
+ ftClient.serverGetFileList = new List<string>();
+ }
+
+ // Get base scene data
+ var activeScene = EditorSceneManager.GetActiveScene();
+ var sceneCount = SceneManager.sceneCount;
+
+ All = FindObjectsOfType(typeof(BakeryLightMesh)) as BakeryLightMesh[];
+ AllP = FindObjectsOfType(typeof(BakeryPointLight)) as BakeryPointLight[];
+ All2 = FindObjectsOfType(typeof(BakerySkyLight)) as BakerySkyLight[];
+ All3 = FindObjectsOfType(typeof(BakeryDirectLight)) as BakeryDirectLight[];
+
+ // Scene data validation
+ if (samplesWarning)
+ {
+ if (!ValidateSamples()) yield break;
+ }
+ if (prefabWarning)
+ {
+ if (!ValidatePrefabs()) yield break;
+ }
+
+ var sectors = FindObjectsOfType(typeof(BakerySector)) as BakerySector[];
+
+ // Unused (yet?)
+ if (!ftInitialized)
+ {
+ ftInitialized = true;
+ ftSceneDirty = true;
+ }
+
+ // Create output dir
+ var outDir = Application.dataPath + "/" + outputPathFull;
+ if (!Directory.Exists(outDir)) Directory.CreateDirectory(outDir);
+
+ // Init storages
+ storages = new Dictionary<Scene, ftLightmapsStorage>();
+ for(int i=0; i<sceneCount; i++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(i);
+
+#if UNITY_2017_3_OR_NEWER
+ bool mustGenerateLightingDataAsset = false;
+#else
+ bool mustGenerateLightingDataAsset = ((userRenderMode == RenderMode.Shadowmask || userRenderMode == RenderMode.Subtractive) && scene.isDirty);
+#endif
+ if ((unloadScenesInDeferredMode && deferredMode && scene.isDirty) || mustGenerateLightingDataAsset)
+ {
+ bool cont = true;
+ if (verbose)
+ {
+ cont = EditorUtility.DisplayDialog("Bakery", "All open scenes must be saved. Save now?", "OK", "Cancel");
+ }
+ if (cont)
+ {
+ EditorSceneManager.SaveOpenScenes();
+ }
+ else
+ {
+ yield break;
+ }
+ }
+
+ if (!scene.isLoaded) continue;
+ SceneManager.SetActiveScene(scene);
+ var go = ftLightmaps.FindInScene("!ftraceLightmaps", scene);
+ if (go == null) {
+ go = new GameObject();
+ go.name = "!ftraceLightmaps";
+ go.hideFlags = HideFlags.HideInHierarchy;
+ }
+ storage = go.GetComponent<ftLightmapsStorage>();
+ if (storage == null) {
+ storage = go.AddComponent<ftLightmapsStorage>();
+ }
+
+ // delete unused sectors from storages
+ var stSectors = storage.sectors;
+ if (stSectors == null) stSectors = storage.sectors = new List<ftLightmapsStorage.SectorData>();
+
+ var newStSectors = new List<ftLightmapsStorage.SectorData>();
+ ftLightmapsStorage.SectorData globalSector = null;
+ for(int st=0; st<stSectors.Count; st++)
+ {
+ var stSectorName = stSectors[st].name;
+ bool isGlobalSector = stSectorName == "$G";
+ if (isGlobalSector) globalSector = stSectors[st];
+ bool add = false;
+ if (!isGlobalSector)
+ {
+ for(int j=0; j<sectors.Length; j++)
+ {
+ if (sectors[j].name == stSectorName)
+ {
+ add = true;
+ break;
+ }
+ }
+ }
+ if (add) newStSectors.Add(stSectors[st]);
+ }
+ if (globalSector == null)
+ {
+ globalSector = new ftLightmapsStorage.SectorData();
+ globalSector.name = "$G";
+ }
+ newStSectors.Insert(0, globalSector);
+
+ // Cache global bake data as sector for merging
+ globalSector.maps = storage.maps;
+ globalSector.masks = storage.masks;
+ globalSector.dirMaps = storage.dirMaps;
+ globalSector.rnmMaps0 = storage.rnmMaps0;
+ globalSector.rnmMaps1 = storage.rnmMaps1;
+ globalSector.rnmMaps2 = storage.rnmMaps2;
+ globalSector.mapsMode = storage.mapsMode;
+ globalSector.bakedRenderers = storage.bakedRenderers;
+ globalSector.bakedRenderersTerrain = storage.bakedRenderersTerrain;
+ globalSector.bakedIDs = storage.bakedIDs;
+ globalSector.bakedIDsTerrain = storage.bakedIDsTerrain;
+ globalSector.bakedScaleOffset = storage.bakedScaleOffset;
+ globalSector.bakedScaleOffsetTerrain = storage.bakedScaleOffsetTerrain;
+ globalSector.bakedVertexColorMesh = storage.bakedVertexColorMesh;
+ globalSector.nonBakedRenderers = storage.nonBakedRenderers;
+
+ storage.sectors = newStSectors;
+
+ storage.maps = new List<Texture2D>();
+ storage.masks = new List<Texture2D>();
+ storage.dirMaps = new List<Texture2D>();
+ storage.rnmMaps0 = new List<Texture2D>();
+ storage.rnmMaps1 = new List<Texture2D>();
+ storage.rnmMaps2 = new List<Texture2D>();
+ storage.mapsMode = new List<int>();
+ storage.bakedLights = new List<Light>();
+ storage.bakedLightChannels = new List<int>();
+ storage.compressedVolumes = false;
+ storage.anyVolumes = false;
+
+ //if (forceRefresh) // removed condition to make "Export" option work in isolation
+ {
+ storage.serverGetFileList = new List<string>();
+ storage.lightmapHasColor = new List<bool>();
+ storage.lightmapHasMask = new List<bool>();
+ storage.lightmapHasDir = new List<bool>();
+ storage.lightmapHasRNM = new List<bool>();
+ }
+
+ storage.Init(forceRefresh);
+
+ //ftBuildGraphics.storage = storage;
+ storages[scene] = storage;
+ }
+ SceneManager.SetActiveScene(activeScene);
+
+ // Prepare realtime GI if needed
+ if (usesRealtimeGI && !probesOnlyL1)
+ {
+ var store = storages[activeScene];
+#if UNITY_2017_2_OR_NEWER
+ if (LightmapEditorSettings.lightmapper != BUILTIN_RADIOSITY)
+ {
+ if (verbose)
+ {
+ EditorUtility.DisplayDialog("Bakery", "'Combine with Enlighten real-time GI' is enabled, but Unity lightmapper is not set to Enlighten. Please go to Lighting settings and select it.", "OK");
+ yield break;
+ }
+ else
+ {
+ Debug.LogError("'Combine with Enlighten real-time GI' is enabled, but Unity lightmapper is not set to Enlighten");
+ }
+ }
+#else
+ if (!store.enlightenWarningShown2)
+ {
+ if (verbose)
+ {
+ if (!EditorUtility.DisplayDialog("Bakery", "'Combine with Enlighten real-time GI' is enabled. Make sure Unity lightmapper is set to Enlighten in the Lighting window.", "I'm sure", "Cancel"))
+ {
+ yield break;
+ }
+ store.enlightenWarningShown2 = true;
+ EditorUtility.SetDirty(store);
+ }
+ else
+ {
+ Debug.LogError("'Combine with Enlighten real-time GI' is enabled, but Unity lightmapper is not set to Enlighten");
+ }
+ }
+#endif
+
+ reflectionProbes = new List<ReflectionProbe>();
+
+ //Disable Refl probes, and Baked GI so all that we bake is Realtime GI
+ Lightmapping.bakedGI = false;
+ Lightmapping.realtimeGI = true;
+ FindAllReflectionProbesAndDisable();
+
+ //Bake to get the Realtime GI maps
+ //Lightmapping.Bake();
+
+ Lightmapping.BakeAsync();
+ ProgressBarInit("Waiting for Enlighten...");
+ while(Lightmapping.isRunning)
+ {
+ userCanceled = simpleProgressBarCancelled();
+ if (userCanceled)
+ {
+ Lightmapping.Cancel();
+ ProgressBarEnd();
+ break;
+ }
+ yield return null;
+ }
+ ProgressBarEnd();
+
+ //Re enable probes before bakery bakes, and bakedGI
+ Lightmapping.bakedGI = true;
+ ReEnableReflectionProbes();
+ }
+
+ // Export scene
+ if (forceRebuildGeometry)
+ {
+ passedFilterFlag++;
+
+ renderSettingsStorage = FindRenderSettingsStorage();
+ SaveRenderSettings();
+
+ ftBuildGraphics.overwriteWarningSelectedOnly = selectedOnly;
+ ftBuildGraphics.modifyLightmapStorage = true;
+ ftBuildGraphics.forceAllAreaLightsSelfshadow = false;
+ ftBuildGraphics.validateLightmapStorageImmutability = selectedOnly || probesOnlyL1;
+ ftBuildGraphics.sceneNeedsToBeRebuilt = false;
+ var exportSceneFunc = ftBuildGraphics.ExportScene((ftRenderLightmap)EditorWindow.GetWindow(typeof(ftRenderLightmap)), true);
+ progressBarEnabled = true;
+
+ var estartMs = GetTimeMs();
+ while(exportSceneFunc.MoveNext())
+ {
+ progressBarText = ftBuildGraphics.progressBarText;
+ progressBarPercent = ftBuildGraphics.progressBarPercent;
+ if (ftBuildGraphics.userCanceled)
+ {
+ ftBuildGraphics.ProgressBarEnd(true);
+ ProgressBarEnd();
+ yield break;
+ }
+ yield return null;
+ }
+
+ if (ftBuildGraphics.sceneNeedsToBeRebuilt)
+ {
+ ftBuildGraphics.ProgressBarEnd(true);
+ DebugLogError("Scene geometry/layout changed since last full bake. Use Render button instead.");
+ yield break;
+ }
+
+ var ems = GetTimeMs();
+ double exportTime = (ems - estartMs) / 1000.0;
+ DebugLogInfo("Scene export time: " + exportTime);
+
+ userCanceled = ftBuildGraphics.userCanceled;
+ ProgressBarEnd(false);
+ ftSceneDirty = true;
+ if (ftBuildGraphics.userCanceled) yield break;
+ SaveRenderSettings();
+ EditorSceneManager.MarkAllScenesDirty();
+ }
+ else
+ {
+ if (!ValidateCurrentScene())
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ }
+
+ lmnameComposed = new Dictionary<string, bool>();
+
+ uvBuffOffsets = storage.uvBuffOffsets;
+ uvBuffLengths = storage.uvBuffLengths;
+ uvSrcBuff = storage.uvSrcBuff;
+ uvDestBuff = storage.uvDestBuff;
+ lmrIndicesOffsets = storage.lmrIndicesOffsets;
+ lmrIndicesLengths = storage.lmrIndicesLengths;
+ lmrIndicesBuff = storage.lmrIndicesBuff;
+ lmGroupMinLOD = storage.lmGroupMinLOD;
+ lmGroupLODResFlags = storage.lmGroupLODResFlags;
+ lmGroupLODMatrix = storage.lmGroupLODMatrix;
+
+ userCanceled = false;
+ ProgressBarInit("Rendering lightmaps - preparing...");
+ yield return null;
+
+ // Init lmrebake
+ int lmrErrCode = lmrInit((System.IntPtr)0);
+ if (lmrErrCode != 0)
+ {
+ DebugLogError("Error initializing lmrebake: " + ftErrorCodes.TranslateLMRebake(lmrErrCode));
+ userCanceled = true;
+ ProgressBarEnd();
+ yield break;
+ }
+
+ var groupList = new List<BakeryLightmapGroup>();
+ var groupListGIContributing = new List<BakeryLightmapGroup>();
+ if (!CollectGroups(groupList, groupListGIContributing, selectedOnly, probesOnlyL1)) yield break;
+
+ // Prepare rendering lightmaps
+ var startMs = GetTimeMs();
+
+ var fsettings = new BinaryWriter(File.Open(scenePath + "/settings.bin", FileMode.Create));
+ fsettings.Write(tileSize);
+ fsettings.Write(compressedGBuffer);
+ fsettings.Write(compressedOutput);
+ fsettings.Write(deviceMask);
+ fsettings.Close();
+
+ if (clientMode) ftClient.serverFileList.Add("settings.bin");
+
+ /*if (All.Length == 0 && AllP.Length == 0 && All2.Length == 0 && All3.Length == 0)
+ {
+ userCanceled = true;
+ DebugLogError("Add at least one Bakery light");
+ ProgressBarEnd();
+ yield break;
+ }*/
+
+ // clean up the skylight list
+ /*
+ var skylights = storage.skylights;
+ var skylightsDirty = storage.skylightsDirty;
+ var newList = new List<ftSkyLight>();
+ var newListB = new List<bool>();
+ for(int i=0; i<skylights.Count; i++)
+ {
+ if (skylights[i] != null)
+ {
+ newList.Add(skylights[i]);
+ newListB.Add(skylightsDirty[i]);
+ }
+ }
+ storage.skylights = newList;
+ storage.skylightsDirty = newListB;
+ */
+
+
+ progressSteps = groupList.Count * (All.Length + AllP.Length + All2.Length + All3.Length) + // direct
+ 1 + // compositing
+ bounces * groupList.Count + // GI
+ groupList.Count * 3; // denoise + fixSeams + encode
+ progressStepsDone = 0;
+
+ if (deferredMode)
+ {
+ deferredCommands = new List<System.Diagnostics.ProcessStartInfo>();
+ deferredCommandsFallback = new Dictionary<int, List<string>>();
+ deferredCommandsRebake = new Dictionary<int, BakeryLightmapGroupPlain>();
+ deferredCommandsLODGen = new Dictionary<int, int>();
+ deferredCommandsGIGen = new Dictionary<int, Vector3>();
+ deferredCommandsHalf2VB = new Dictionary<int, BakeryLightmapGroupPlain>();
+ deferredCommandsUVGB = new Dictionary<int, bool>();
+ deferredFileSrc = new List<string>();
+ deferredFileDest = new List<string>();
+ deferredCommandDesc = new List<string>();
+ }
+
+ //if (forceRefresh) // removed condition to make "Export" option work in isolation
+ {
+ lightmapMasks = new List<List<List<string>>>();
+ lightmapMaskLMNames = new List<List<List<string>>>();
+ lightmapMaskLights = new List<List<List<Light>>>();
+ lightmapMaskDenoise = new List<List<List<bool>>>();
+ #if UNITY_2017_3_OR_NEWER
+ #else
+ maskedLights = new List<Light>();
+ #endif
+ lightmapHasColor = new List<bool>();
+ lightmapHasMask = new List<bool>();
+ lightmapHasDir = new List<bool>();
+ lightmapHasRNM = new List<bool>();
+
+ foreach(var lmgroup in groupListGIContributingPlain)
+ {
+ var rmode = lmgroup.renderMode == (int)BakeryLightmapGroup.RenderMode.Auto ? (int)userRenderMode : (int)lmgroup.renderMode;
+ var dirMode = lmgroup.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto ? (int)renderDirMode : (int)lmgroup.renderDirMode;
+ var dominantDirMode = dirMode == (int)ftRenderLightmap.RenderDirMode.DominantDirection;
+ while(lightmapMasks.Count <= lmgroup.id)
+ {
+ lightmapMasks.Add(new List<List<string>>());
+ lightmapMaskLMNames.Add(new List<List<string>>());
+ lightmapMaskLights.Add(new List<List<Light>>());
+ lightmapMaskDenoise.Add(new List<List<bool>>());
+ lightmapHasColor.Add(true);
+ lightmapHasMask.Add(rmode == (int)RenderMode.Shadowmask);
+ lightmapHasDir.Add(dominantDirMode);
+ lightmapHasRNM.Add(false);
+ }
+ }
+ }
+
+ // Fix starting ray positions
+ if (forceRebuildGeometry)
+ {
+ if (ftBuildGraphics.exportShaderColors)
+ {
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(null);
+ deferredCommandDesc.Add("Exporting scene - generating UV GBuffer...");
+ deferredCommandsUVGB[deferredCommands.Count - 1] = true;
+ }
+
+ foreach(var lmgroup in groupList)
+ {
+ var nm = lmgroup.name;
+ int LMID = lmgroup.id;
+ if (lmgroup.mode != BakeryLightmapGroup.ftLMGroupMode.Vertex || lmgroup.fixPos3D) // skip vertex colored
+ {
+ if (!adjustSamples) continue;
+
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ int fixPosPasses = PASS_FLOAT;
+ if (giLodModeEnabled) fixPosPasses |= PASS_MASK1;
+ if (lmgroup.fixPos3D)
+ {
+ var mfilename = "fixPos3D_" + LMID + ".bin";
+ var mf = new BinaryWriter(File.Open(scenePath + "/" + mfilename, FileMode.Create));
+ mf.Write(lmgroup.voxelSize.x);
+ mf.Write(lmgroup.voxelSize.y);
+ mf.Write(lmgroup.voxelSize.z);
+ mf.Close();
+ startInfo.Arguments = "fixpos3D " + scenePathQuoted + " \"" + "uvpos_" + nm +(compressedGBuffer ? ".lz4" : ".dds") + "\" " + fixPosPasses + " " + 0 + " " + LMID + " " + mfilename;
+ if (clientMode) ftClient.serverFileList.Add(mfilename);
+ }
+ else
+ {
+ startInfo.Arguments = "fixpos12 " + scenePathQuoted + " \"" + "uvpos_" + nm +(compressedGBuffer ? ".lz4" : ".dds") + "\" " + fixPosPasses + " " + 0 + " " + LMID + " " + Float2String(lmgroup.fakeShadowBias);
+ }
+
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add("Adjusting sample points for " + nm + "...");
+ }
+
+ if (giLodModeEnabled)
+ {
+ var startInfo2 = new System.Diagnostics.ProcessStartInfo();
+ startInfo2.CreateNoWindow = false;
+ startInfo2.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo2.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo2.FileName = startInfo2.WorkingDirectory + "/" + ftraceExe;
+ startInfo2.CreateNoWindow = true;
+ startInfo2.Arguments = "lodselect " + scenePathQuoted + " \"" + "lodselect" + "\" " + PASS_FLOAT + " " + 0 + " " + LMID;
+
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo2);
+ deferredCommandDesc.Add("Calculating what is visible from " + nm + "...");
+
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(null);
+ deferredCommandDesc.Add("Generating tracing mesh for " + lmgroup.name + "...");
+ deferredCommandsLODGen[deferredCommands.Count - 1] = lmgroup.id;
+ }
+ }
+ }
+ else
+ {
+ ValidateCurrentScene();
+ }
+
+ // Render AO if needed
+ if (hackAOIntensity > 0 && hackAOSamples > 0)
+ {
+ foreach(var lmgroup in groupList)
+ {
+ var nm = lmgroup.name;
+ currentGroup = lmgroup;
+ bool doRender = true;
+
+ if (doRender) {
+ DebugLogInfo("Preparing AO " + nm + " (" + (lmgroup.id+1) + "/" + groupList.Count + ")");
+
+ progressStepsDone++;
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ yield return null;
+
+ if (lmgroup.probes) continue;
+ if (!RenderLMAO(lmgroup.id, nm))
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ }
+ }
+ }
+
+ // Mark completely baked lights
+ for(int i=0; i<All3.Length; i++)
+ {
+ var obj = All3[i] as BakeryDirectLight;
+ if (!obj.enabled) continue;
+ var ulht = obj.GetComponent<Light>();
+ if (ulht == null) continue;
+ if (IsLightCompletelyBaked(obj.bakeToIndirect, userRenderMode))
+ {
+ MarkLightAsCompletelyBaked(ulht);
+ }
+ else if (IsLightSubtractive(obj.bakeToIndirect, userRenderMode))
+ {
+ MarkLightAsSubtractive(ulht);
+ }
+ else if (IsLightRealtime(obj.bakeToIndirect, userRenderMode))
+ {
+ MarkLightAsRealtime(ulht);
+ }
+ }
+ for(int i=0; i<AllP.Length; i++)
+ {
+ var obj = AllP[i] as BakeryPointLight;
+ if (!obj.enabled) continue;
+ var ulht = obj.GetComponent<Light>();
+ if (ulht == null) continue;
+ if (IsLightCompletelyBaked(obj.bakeToIndirect, userRenderMode))
+ {
+ MarkLightAsCompletelyBaked(ulht);
+ }
+ else if (IsLightSubtractive(obj.bakeToIndirect, userRenderMode))
+ {
+ MarkLightAsSubtractive(ulht);
+ }
+ else if (IsLightRealtime(obj.bakeToIndirect, userRenderMode))
+ {
+ MarkLightAsRealtime(ulht);
+ }
+ }
+
+ // Find intersecting light groups for shadowmask
+ bool someLightsCantBeMasked = false;
+ shadowmaskGroupIDToChannel = new Dictionary<int, int>();
+ if (userRenderMode == RenderMode.Shadowmask)
+ {
+ overlappingLights = new List<GameObject>();
+
+ //int channel = 0;
+ var channelBitsPerLayer = new int[32];
+
+ for(int i=0; i<All3.Length; i++)
+ {
+ var obj = All3[i] as BakeryDirectLight;
+ if (!obj.enabled) continue;
+ if (!obj.shadowmask) continue;
+ var ulht = obj.GetComponent<Light>();
+ if (ulht == null) continue;
+ if (SetupLightShadowmaskUsingBitmask(ulht, obj.bitmask, 0, channelBitsPerLayer) < 0) someLightsCantBeMasked = true;
+ }
+
+ var lightsRemaining = new List<Light>();
+ var lightsRemainingB = new List<BakeryPointLight>();
+ var lightChannels = new List<int>();
+ var lightArrayIndices = new List<int>();
+ var lightIntersections = new List<int>();
+ for(int i=0; i<AllP.Length; i++)
+ {
+ var obj = AllP[i] as BakeryPointLight;
+ if (!obj.enabled) continue;
+ if (!obj.shadowmask) continue;
+ var ulht = obj.GetComponent<Light>();
+ if (ulht == null) continue;
+ lightsRemaining.Add(ulht);
+ lightsRemainingB.Add(obj);
+ lightChannels.Add(-1);
+ lightArrayIndices.Add(lightArrayIndices.Count);
+ lightIntersections.Add(0);
+ }
+
+ // Sort by the intersection count
+ for(int i=0; i<lightsRemaining.Count; i++)
+ {
+ lightIntersections[i] = 0;
+ var la = lightsRemaining[i];
+ var laRange = lightsRemainingB[i].cutoff;// * 2;
+ //var laBounds = new Bounds(la.transform.position, new Vector3(laRange, laRange, laRange));
+ var laPos = la.transform.position;
+ var laBitmask = lightsRemainingB[i].bitmask;
+ for(int j=0; j<lightsRemaining.Count; j++)
+ {
+ if (i == j) continue;
+ var lb = lightsRemaining[j];
+ var lbRange = lightsRemainingB[j].cutoff;// * 2;
+ var lbPos = lb.transform.position;
+ var lbBitmask = lightsRemainingB[j].bitmask;
+ if ((laBitmask & lbBitmask) == 0) continue;
+ if ((lbPos - laPos).sqrMagnitude < (laRange+lbRange)*(laRange+lbRange)) lightIntersections[i]++;
+ //var lbBounds = new Bounds(lb.transform.position, new Vector3(lbRange, lbRange, lbRange));
+ //if (laBounds.Intersects(lbBounds)) lightIntersections[i]++;
+ }
+ }
+ lightArrayIndices.Sort(delegate(int a, int b)
+ {
+ return lightIntersections[b].CompareTo( lightIntersections[a] );
+ });
+
+ for(int i=0; i<lightsRemaining.Count; i++)
+ {
+ int idA = lightArrayIndices[i];
+ if (lightChannels[idA] != -1) continue;
+
+ var la = lightsRemaining[idA];
+ var laRange = lightsRemainingB[idA].cutoff;// * 2;
+ var laPos = la.transform.position;
+ //var laBounds = new Bounds(la.transform.position, new Vector3(laRange, laRange, laRange));
+ var laBitmask = lightsRemainingB[idA].bitmask;
+
+ var channelBoundsTypeAndOffset = new List<int>(); // sign is type, offset is to relevant array (+1)
+ // Spherical
+ var channelBoundsPos = new List<Vector3>();
+ var channelBoundsRadius = new List<float>();
+ // Convex
+ var channelBoundsConvex = new List<Convex>();
+
+ if (la.type == LightType.Spot)
+ {
+ // Add spot geometry as pyramid
+ channelBoundsTypeAndOffset.Add(-(channelBoundsConvex.Count+1));
+ channelBoundsConvex.Add(GetSpotConvex(la));
+ }
+ else
+ {
+ // Add point geometry as sphere
+ channelBoundsTypeAndOffset.Add(channelBoundsPos.Count+1);
+ channelBoundsPos.Add(laPos);
+ channelBoundsRadius.Add(laRange);
+ }
+
+ //channelBoundsPos.Add(laPos);
+ //channelBoundsRadius.Add(laRange);
+
+ int channelSet = SetupLightShadowmaskUsingBitmask(la, laBitmask, lightsRemainingB[idA].shadowmaskGroupID, channelBitsPerLayer);
+ if (channelSet < 0) someLightsCantBeMasked = true;
+
+ lightChannels[idA] = channelSet;
+ DebugLogInfo("* Light " + la.name + " set to channel " + channelSet);
+ //SetupLightShadowmask(la, channel);
+
+ // Find all non-overlapping
+ //for(int j=i+1; j<lightsRemaining.Count; j++)
+ for(int j=0; j<lightsRemaining.Count; j++)
+ {
+ int idB = lightArrayIndices[j];
+ if (lightChannels[idB] != -1) continue;
+ var lbBitmask = lightsRemainingB[idB].bitmask;
+ if ((laBitmask & lbBitmask) == 0) continue;
+ var lb = lightsRemaining[idB];
+ var lbRange = lightsRemainingB[idB].cutoff;// * 2;
+ //var lbBounds = new Bounds(lb.transform.position, new Vector3(lbRange, lbRange, lbRange));
+ var lbT = lb.transform;
+ var lbPos = lbT.position;
+ Convex lbConvex = null;
+ if (lb.type == LightType.Spot) lbConvex = GetSpotConvex(lb);
+
+ bool intersects = false;
+ int boffset;
+ for(int k=0; k<channelBoundsTypeAndOffset.Count; k++)
+ {
+ boffset = channelBoundsTypeAndOffset[k];
+ LightType ctype = LightType.Point;
+ if (boffset < 0)
+ {
+ boffset = -boffset;
+ ctype = LightType.Spot;
+ }
+ boffset--;
+
+ if (lb.type == LightType.Point && ctype == LightType.Point)
+ {
+ // sphere vs sphere
+ //if (channelBounds[k].Intersects(lbBounds))
+ float dist = channelBoundsRadius[boffset] + lbRange;
+ if ((channelBoundsPos[boffset] - lbPos).sqrMagnitude < dist*dist)
+ {
+ intersects = true;
+ break;
+ }
+ }
+ else if (lb.type == LightType.Spot && ctype == LightType.Spot)
+ {
+ // convex vs convex
+ //Debug.Log("testing " + lb.name+" with "+channelBoundsConvex[boffset].vertices[0]);
+ if (ConvexIntersect(lbConvex, channelBoundsConvex[boffset]))
+ {
+ //Debug.LogError(lb.name+" intersects with "+channelBoundsConvex[boffset].vertices[0]);
+ intersects = true;
+ break;
+ }
+ }
+ else if (lb.type == LightType.Spot && ctype == LightType.Point)
+ {
+ // convex vs sphere
+ if (ConvexSphereIntersect(lbConvex, channelBoundsPos[boffset], channelBoundsRadius[boffset]))
+ {
+ intersects = true;
+ break;
+ }
+ }
+ else if (lb.type == LightType.Point && ctype == LightType.Spot)
+ {
+ // sphere vs convex
+ if (ConvexSphereIntersect(channelBoundsConvex[boffset], lbPos, lbRange))
+ {
+ intersects = true;
+ break;
+ }
+ }
+ }
+ if (intersects) continue;
+
+ if (lb.type == LightType.Spot)
+ {
+ channelBoundsTypeAndOffset.Add(-(channelBoundsConvex.Count+1));
+ channelBoundsConvex.Add(lbConvex);
+ }
+ else
+ {
+ // Add point geometry as sphere
+ channelBoundsTypeAndOffset.Add(channelBoundsPos.Count+1);
+ channelBoundsPos.Add(lbPos);
+ channelBoundsRadius.Add(lbRange);
+ }
+ //channelBounds.Add(lbBounds);
+ lightChannels[idB] = channelSet;
+ DebugLogInfo("Light " + lb.name + " set to channel " + channelSet);
+ if (!SetupLightShadowmask(lb, channelSet)) someLightsCantBeMasked = true;
+ }
+
+ //channel++;
+ }
+ }
+
+ if (ftAdditionalConfig.batchPointLights)
+ {
+ System.Array.Sort(AllP, ComparePointLights);
+ }
+
+ if (someLightsCantBeMasked)
+ {
+ ProgressBarEnd();
+ if (verbose)
+ {
+ int ch = EditorUtility.DisplayDialogComplex("Bakery", "Some shadow masks can't be baked due to more than 4 masked lights overlapping. See console warnings for details. Press 'Stop and select' to select overlapping lights.", "Continue anyway", "Stop", "Stop and select");
+ if (ch > 0)
+ {
+ if (ch == 2)
+ {
+ Selection.objects = overlappingLights.ToArray();
+ }
+ yield break;
+ }
+ }
+ else
+ {
+ Debug.LogError("Some shadow masks can't be baked due to more than 4 masked lights overlapping");
+ }
+ }
+
+ // Render directional lighting for every lightmap
+ ftBuildLights.InitMaps(false);
+ foreach(var lmgroup in groupList)
+ {
+ var nm = lmgroup.name;
+ currentGroup = lmgroup;
+ bool doRender = true;
+
+ if (doRender) {
+ DebugLogInfo("Preparing (direct) lightmap " + nm + " (" + (lmgroup.id+1) + "/" + groupList.Count + ")");
+
+ progressStepsDone++;
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ yield return null;
+
+ var routine = RenderLMDirect(lmgroup.id, nm, lmgroup.resolution);
+ while(routine.MoveNext())
+ {
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ yield return null;
+ }
+ }
+ }
+
+ // Save rendered light properties
+ for(int i=0; i<All.Length; i++)
+ {
+ var obj = All[i] as BakeryLightMesh;
+ if (!obj.enabled) continue;
+ //if ((obj.bitmask & currentGroup.bitmask) == 0) continue;
+ StoreLight(obj);
+ }
+ for(int i=0; i<AllP.Length; i++)
+ {
+ var obj = AllP[i] as BakeryPointLight;
+ if (!obj.enabled) continue;
+ //if ((obj.bitmask & currentGroup.bitmask) == 0) continue;
+ StoreLight(obj);
+ }
+ for(int i=0; i<All2.Length; i++)
+ {
+ var obj = All2[i] as BakerySkyLight;
+ if (!obj.enabled) continue;
+ //if ((obj.bitmask & currentGroup.bitmask) == 0) continue;
+ StoreLight(obj);
+ }
+ for(int i=0; i<All3.Length; i++)
+ {
+ var obj = All3[i] as BakeryDirectLight;
+ if (!obj.enabled) continue;
+ //if ((obj.bitmask & currentGroup.bitmask) == 0) continue;
+ StoreLight(obj);
+ }
+
+ foreach(var lmgroup in groupList)
+ {
+ // Optionally compute SSS after direct lighting
+ if (!lmgroup.computeSSS) continue;
+ RenderLMSSS(lmgroup, bounces == 0);
+ }
+
+ // Render GI for every lightmap
+ for(int i=0; i<bounces; i++)
+ {
+ // Generate LODs
+ if (performRendering && giLodModeEnabled) {
+ foreach(var lmgroup2 in groupListGIContributing)
+ {
+ if (lmgroup2.resolution > 128 && lmgroup2.mode != BakeryLightmapGroup.ftLMGroupMode.Vertex)
+ {
+ if (deferredMode)
+ {
+ // Downsample via lmrebake
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(null);
+ if (lmgroup2.containsTerrains)
+ {
+ deferredCommandDesc.Add("Generating LOD lightmap of " + lmgroup2.name + " (terrain)...");
+ }
+ else
+ {
+ deferredCommandDesc.Add("Generating LOD lightmap of " + lmgroup2.name + "...");
+ }
+ deferredCommandsRebake[deferredCommands.Count - 1] = lmgroup2.GetPlainStruct();
+ }
+ else
+ {
+ Debug.LogError("Unsupported");
+ /*errCode = lmrRender(lmgroup2.name + "_diffuse_HDR" + (compressedOutput ? ".lz4" : ".dds"),
+ lmgroup2.name + "_diffuse_HDR_LOD",
+ scenePath + "/lodmask_uvpos_" + lmgroup2.name + (compressedGBuffer ? ".lz4" : ".dds"),
+ uvSrcBuff, uvDestBuff, uvBuffOffsets[lmgroup2.id], uvBuffLengths[lmgroup2.id],
+ lmrIndicesBuff, lmrIndicesOffsets[lmgroup2.id], lmrIndicesLengths[lmgroup2.id],
+ lmgroup2.resolution/2, lmgroup2.resolution/2, lmGroupLODResFlags[lmgroup2.id]);
+ if (errCode != 0)
+ {
+ DebugLogError("Error rebaking lightmap " + lmgroup2.name + ": " + ftErrorCodes.TranslateLMRebake(errCode));
+ }*/
+ }
+ }
+ }
+ }
+
+ foreach(var lmgroup in groupList)
+ {
+ var nm = lmgroup.name;
+ currentGroup = lmgroup;
+ bool doRender = true;
+
+ if (doRender) {
+ DebugLogInfo("Preparing (bounce " + i + ") lightmap " + nm + " (" + (lmgroup.id+1) + "/" + groupList.Count + ")");
+
+ progressStepsDone++;
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ yield return null;
+
+ var rmode = lmgroup.renderMode == BakeryLightmapGroup.RenderMode.Auto ? (int)userRenderMode : (int)lmgroup.renderMode;
+
+ if (rmode == (int)RenderMode.AmbientOcclusionOnly) continue;
+
+ bool lastPass = i == bounces - 1;
+ bool needsGIPass = (lastPass && (rmode == (int)RenderMode.Indirect || rmode == (int)RenderMode.Shadowmask));
+
+ var dirMode = lmgroup.renderDirMode == BakeryLightmapGroup.RenderDirMode.Auto ? (int)renderDirMode : (int)lmgroup.renderDirMode;
+ var dominantDirMode = dirMode == (int)ftRenderLightmap.RenderDirMode.DominantDirection && lightmapHasDir[lmgroup.id];
+
+ if (lmgroup.probes && !lastPass) continue; // probes only need final GI pass
+
+ if (performRendering)
+ {
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(null);
+ deferredCommandDesc.Add("Generating GI parameters for " + lmgroup.name + "...");
+ deferredCommandsGIGen[deferredCommands.Count - 1] = new Vector3(lmgroup.id, i, dominantDirMode?1:0);
+
+ if (!RenderLMGI(lmgroup.id, nm, i, needsGIPass, lastPass))
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+
+ // Optionally compute SSS after bounce
+ if (!lmgroup.computeSSS) continue;
+ RenderLMSSS(lmgroup, i == bounces - 1);
+ }
+ }
+ }
+ }
+
+ // Add directional contribution from selected lights to indirect
+ //if ((userRenderMode == RenderMode.Indirect || userRenderMode == RenderMode.Shadowmask) && performRendering)
+ {
+ //Debug.Log("Compositing bakeToIndirect lights with GI...");
+ foreach(var lmgroup in groupListPlain)
+ {
+ string nm = lmgroup.name;
+ try
+ {
+ nm = lmgroup.name;
+ }
+ catch
+ {
+ DebugLogError("Error postprocessing lightmaps - see console for details");
+ ProgressBarEnd();
+ throw;
+ }
+
+ var rmode = lmgroup.renderMode == (int)BakeryLightmapGroup.RenderMode.Auto ? (int)userRenderMode : (int)lmgroup.renderMode;
+ if ((rmode == (int)RenderMode.Indirect || rmode == (int)RenderMode.Shadowmask) && performRendering)
+ {
+ //int errCode2 = 0;
+ if (exeMode)
+ {
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "add " + scenePathQuoted + " \"" + nm + "_final_HDR" + (compressedOutput ? ".lz4" : ".dds")
+ + "\"" + " " + PASS_HALF + " " + 0 + " " + lmgroup.id + " comp_indirect" + lmgroup.id + ".bin";
+
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");//scenePath + "/comp_indirect" + lmgroup.id + ".bin");
+ deferredFileDest.Add("");//scenePath + "/comp.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add("Compositing baked lights with GI for " + lmgroup.name + "...");
+ }
+ else
+ {
+ /*File.Copy(scenePath + "/comp_indirect" + lmgroup.id + ".bin", scenePath + "/comp.bin", true);
+ Debug.Log("Running ftrace " + startInfo.Arguments);
+ var exeProcess = System.Diagnostics.Process.Start(startInfo);
+ exeProcess.WaitForExit();
+ errCode2 = exeProcess.ExitCode;*/
+ }
+ }
+
+ var dirMode = lmgroup.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto ? (int)renderDirMode : (int)lmgroup.renderDirMode;
+ var dominantDirMode = dirMode == (int)ftRenderLightmap.RenderDirMode.DominantDirection && lightmapHasDir[lmgroup.id];
+
+ if (dominantDirMode)
+ {
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "diradd " + scenePathQuoted + " \"" + nm + "_final_Dir" + (compressedOutput ? ".lz4" : ".dds")
+ + "\"" + " " + PASS_DIRECTION + " " + 0 + " " + lmgroup.id + " dircomp_indirect" + lmgroup.id + ".bin";
+
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");//scenePath + "/dircomp_indirect" + lmgroup.id + ".bin");
+ deferredFileDest.Add("");//scenePath + "/dircomp.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add("Compositing baked direction for " + lmgroup.name + "...");
+ }
+ }
+ }
+ }
+ }
+
+ /*
+ if (bounces > 0)
+ {
+ // Remove lighting from emissive surfaces
+ foreach(var lmgroup in groupListPlain)
+ {
+ string nm;
+ try
+ {
+ nm = lmgroup.name;
+ }
+ catch
+ {
+ DebugLogError("Error postprocessing lightmaps - see console for details");
+ ProgressBarEnd();
+ throw;
+ }
+ bool doRender = true;
+
+ if (lmgroup.id < 0) continue;
+ if (storage.hasEmissive.Count <= lmgroup.id) continue;
+ if (!storage.hasEmissive[lmgroup.id]) continue;
+
+ if (doRender) {
+ Debug.Log("Removing emissive from " + nm + " (" + (lmgroup.id+1) + "/" + groupList.Count + ")");
+
+ if (performRendering) {
+ if (!RemoveEmissive(nm))
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ }
+ }
+ }
+ }
+ */
+
+ PrepareAssetImporting();
+
+ // Finalize lightmaps
+ foreach(var lmgroup in groupListPlain)
+ {
+ if (lmgroup.vertexBake && lmgroup.isImplicit && !lmgroup.probes) continue; // skip objects with scaleImLm == 0
+ string nm;
+ try
+ {
+ nm = lmgroup.name;
+ }
+ catch
+ {
+ DebugLogError("Error postprocessing lightmaps - see console for details");
+ ProgressBarEnd();
+ throw;
+ }
+ bool doRender = true;
+
+ if (doRender) {
+ //if (lmgroup.vertexBake) continue; // do it after the scene is loaded back
+ DebugLogInfo("Preparing (finalize) lightmap " + nm + " (" + (lmgroup.id+1) + "/" + groupList.Count + ")");
+
+ var routine = RenderLMFinalize(lmgroup.id, nm, lmgroup.resolution, lmgroup.vertexBake, lmgroup.renderDirMode, lmgroup.renderMode, lmgroup);
+ while(routine.MoveNext())
+ {
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ yield return null;
+ }
+
+ if (lmgroup.probes && lmgroup.name == "volumes" && lastFoundBakeableVolumes != null && lastFoundBakeableVolumes.Length > 0)
+ {
+ var vols = lastFoundBakeableVolumes;
+ int voffset = 0;
+
+ var denoiseMod = GetDenoiseMode();
+ var ext = (compressedOutput ? ".lz4" : ".dds");
+ for(int v=0; v<vols.Length; v++)
+ {
+ var vol = vols[v];
+ int rx = VolumeDimension(vol.resolutionX);
+ int ry = VolumeDimension(vol.resolutionY);
+ int rz = VolumeDimension(vol.resolutionZ);
+ if (vol.denoise)
+ {
+ var progressText = "Denoising volume " + vol.name + "...";
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ startInfo.WorkingDirectory = "Assets/Editor/x64/Bakery";
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/denoiser"+denoiseMod+".exe";
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "v ";
+ startInfo.Arguments += "\"" + scenePath + "/volumes_final_L0" + ext +
+ "\" \"" + scenePath + "/volumes_final_L1x" + ext +
+ "\" \"" + scenePath + "/volumes_final_L1y" + ext +
+ "\" \"" + scenePath + "/volumes_final_L1z" + ext +
+ "\" " +
+ voffset + " " + rx + " " + ry + " " + rz + " 32 0";
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ }
+
+ voffset += rx * ry * rz;
+ }
+
+ if (clientMode)
+ {
+ ftClient.serverGetFileList.Add("volumes_final_L0" + ext);
+ ftClient.serverGetFileList.Add("volumes_final_L1x" + ext);
+ ftClient.serverGetFileList.Add("volumes_final_L1y" + ext);
+ ftClient.serverGetFileList.Add("volumes_final_L1z" + ext);
+ }
+ }
+ }
+ }
+
+ // Add lightmaps split by buckets
+ if (ftBuildGraphics.postPacking)
+ {
+ foreach(var lmgroup in groupListPlain)
+ {
+ //if (lmgroup.parentID != -2) continue; // parent lightmap mark
+ if (lmgroup.parentName != "|") continue; // parent lightmap mark
+ var nm = lmgroup.name;
+
+ DebugLogInfo("Preparing (add buckets) lightmap " + nm + " (" + (lmgroup.id+1) + "/" + groupList.Count + ")");
+
+ var routine = RenderLMAddBuckets(lmgroup.id, nm, lmgroup.resolution, lmgroup.vertexBake, lmgroup.renderDirMode, lmgroup.renderMode);
+ while(routine.MoveNext())
+ {
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ yield return null;
+ }
+ }
+ }
+
+ // Combine masks
+ foreach(var lmgroup in groupListPlain)
+ {
+ if (lmgroup.vertexBake && lmgroup.isImplicit && !lmgroup.probes) continue; // skip objects with scaleImLm == 0
+ string nm;
+ try
+ {
+ nm = lmgroup.name;
+ }
+ catch
+ {
+ DebugLogError("Error postprocessing lightmaps - see console for details");
+ ProgressBarEnd();
+ throw;
+ }
+ bool doRender = true;
+
+ if (doRender)
+ {
+ //if (lmgroup.vertexBake) continue; // do it after the scene is loaded back
+ DebugLogInfo("Preparing (combine masks) lightmap " + nm + " (" + (lmgroup.id+1) + "/" + groupList.Count + ")");
+
+ var routine = RenderLMCombineMasks(lmgroup.id, nm, lmgroup.resolution, lmgroup.vertexBake, lmgroup.renderMode, lmgroup);
+ while(routine.MoveNext())
+ {
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ yield return null;
+ }
+ }
+ }
+
+ // Encode lightmaps
+ foreach(var lmgroup in groupListPlain)
+ {
+ if (lmgroup.vertexBake && lmgroup.isImplicit && !lmgroup.probes) continue; // skip objects with scaleImLm == 0
+ var nm = lmgroup.name;
+ bool doRender = true;
+
+ if (lmgroup.parentName != null && lmgroup.parentName.Length > 0 && lmgroup.parentName != "|")
+ {
+ doRender = false;
+ }
+
+ if (doRender) {
+ DebugLogInfo("Preparing (encode) lightmap " + nm + " (" + (lmgroup.id+1) + "/" + groupList.Count + ")");
+
+ var routine = RenderLMEncode(lmgroup.id, nm, lmgroup.resolution, lmgroup.vertexBake, lmgroup.renderDirMode, lmgroup.renderMode);
+ while(routine.MoveNext())
+ {
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ yield return null;
+ }
+ }
+ }
+
+ ftBuildGraphics.FreeTemporaryAreaLightMeshes();
+
+#if UNITY_2017_3_OR_NEWER
+#else
+ if ((userRenderMode == RenderMode.Shadowmask || userRenderMode == RenderMode.Subtractive) && (lightProbeMode != LightProbeMode.L1) || !hasAnyProbes)
+ {
+ // Generate lighting data asset
+ var assetName = GenerateLightingDataAssetName();
+ var newPath = "Assets/" + outputPath + "/" + assetName + ".asset";
+
+ // Try writing the file. If it's locked, write a copy
+ bool locked = false;
+ BinaryWriter ftest = null;
+ try
+ {
+ ftest = new BinaryWriter(File.Open(newPath, FileMode.Create));
+ }
+ catch
+ {
+ var index = assetName.IndexOf("_copy");
+ if (index >= 0)
+ {
+ assetName = assetName.Substring(0, index);
+ }
+ else
+ {
+ assetName += "_copy";
+ }
+ newPath = "Assets/" + outputPath + "/" + assetName + ".asset";
+ locked = true;
+ }
+ if (!locked) ftest.Close();
+
+ if (!ftLightingDataGen.GenerateShadowmaskLightingData(newPath, ref maskedLights, userRenderMode == RenderMode.Subtractive))
+ {
+ DebugLogError("Failed to generate LightingDataAsset");
+ userCanceled = true;
+ yield break;
+ }
+ AssetDatabase.Refresh();
+ ApplyLightingDataAsset(newPath);
+ EditorSceneManager.MarkAllScenesDirty();
+ EditorSceneManager.SaveOpenScenes();
+ }
+#endif
+
+ // Store lightmap flags
+ for(int s=0; s<sceneCount; s++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(s);
+ if (!scene.isLoaded) continue;
+ storage = storages[scene];
+ //if (forceRefresh) // removed condition to make "Export" option work in isolation
+ {
+ storage.lightmapHasColor = lightmapHasColor;
+ storage.lightmapHasMask = lightmapHasMask;
+ storage.lightmapHasDir = lightmapHasDir;
+ storage.lightmapHasRNM = lightmapHasRNM;
+ storage.serverGetFileList = ftClient.serverGetFileList;
+ }
+ }
+ EditorSceneManager.MarkAllScenesDirty();
+
+ // Run commands
+ if (clientMode)
+ {
+ // Add vertex LM data to the list of requested files
+ var ext = (compressedOutput ? ".lz4" : ".dds");
+ foreach(var lmgroup in groupListPlain)
+ {
+ if (!lmgroup.vertexBake) continue;
+ if (lmgroup.isImplicit) continue;
+
+ bool hasShadowMask = lmgroup.renderMode == (int)BakeryLightmapGroup.RenderMode.Shadowmask ||
+ (lmgroup.renderMode == (int)BakeryLightmapGroup.RenderMode.Auto && userRenderMode == RenderMode.Shadowmask);
+
+ bool hasDir = lmgroup.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.DominantDirection ||
+ (lmgroup.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto && renderDirMode == RenderDirMode.DominantDirection);
+
+ bool hasSH = lmgroup.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.SH ||
+ (lmgroup.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto && renderDirMode == RenderDirMode.SH);
+
+ var lmname = lmgroup.name;
+
+ ftClient.serverGetFileList.Add(lmname + (hasSH ? "_final_L0" : "_final_HDR") + ext);
+ if (hasShadowMask) ftClient.serverGetFileList.Add(lmname + "_Mask" + ext);
+ if (hasDir) ftClient.serverGetFileList.Add(lmname + "_final_Dir" + ext);
+ if (hasSH)
+ {
+ ftClient.serverGetFileList.Add(lmname + "_final_L1x" + ext);
+ ftClient.serverGetFileList.Add(lmname + "_final_L1y" + ext);
+ ftClient.serverGetFileList.Add(lmname + "_final_L1z" + ext);
+ }
+ }
+
+ // Add probe data to requested list
+ if (lightProbeMode == LightProbeMode.L1 && hasAnyProbes)
+ {
+ ftClient.serverGetFileList.Add("probes_final_L0" + ext);
+ ftClient.serverGetFileList.Add("probes_final_L1x" + ext);
+ ftClient.serverGetFileList.Add("probes_final_L1y" + ext);
+ ftClient.serverGetFileList.Add("probes_final_L1z" + ext);
+ }
+
+ var flist = new BinaryWriter(File.Open(scenePath + "/renderSequence.bin", FileMode.Create));
+ byte task;
+ int tasks = 0;
+
+ flist.Write(tasks);
+
+ tasks++;
+ flist.Write(ftClient.SERVERTASK_SETSCENENAME);
+ WriteString(flist, EditorSceneManager.GetActiveScene().name);
+
+ if (deferredCommandsLODGen.Count > 0)
+ {
+ var vbtraceTexPosNormalArray = ftBuildGraphics.vbtraceTexPosNormalArray;
+ var vbtraceTexUVArray = ftBuildGraphics.vbtraceTexUVArray;
+ var vbtraceTexUVArrayLOD = ftBuildGraphics.vbtraceTexUVArrayLOD;
+
+ tasks++;
+ flist.Write(ftClient.SERVERTASK_LODGENINIT);
+ flist.Write(lmGroupMinLOD.Length);
+ for(int j=0; j<lmGroupMinLOD.Length; j++) flist.Write(lmGroupMinLOD[j]);
+ flist.Write(vbtraceTexPosNormalArray.Count);
+ for(int j=0; j<vbtraceTexPosNormalArray.Count; j++) flist.Write(vbtraceTexPosNormalArray[j]);
+ flist.Write(vbtraceTexUVArray.Count);
+ for(int j=0; j<vbtraceTexUVArray.Count; j++) flist.Write(vbtraceTexUVArray[j]);
+ flist.Write(vbtraceTexUVArrayLOD.Length);
+ for(int j=0; j<vbtraceTexUVArrayLOD.Length; j++) flist.Write(vbtraceTexUVArrayLOD[j]);
+ }
+
+ for(int i=0; i<deferredCommands.Count; i++)
+ {
+ if (deferredFileSrc[i].Length > 0)
+ {
+ tasks++;
+ flist.Write(ftClient.SERVERTASK_COPY);
+ WriteString(flist, deferredFileSrc[i].Replace(scenePath, "%SCENEPATH%"));
+ WriteString(flist, deferredFileDest[i].Replace(scenePath, "%SCENEPATH%"));
+ }
+
+ var startInfo = deferredCommands[i];
+ if (startInfo != null)
+ {
+ var app = Path.GetFileNameWithoutExtension(deferredCommands[i].FileName);
+ if (!ftClient.app2serverTask.TryGetValue(app, out task))
+ {
+ DebugLogError("Server doesn't support the task: " + app);
+ userCanceled = true;
+ yield break;
+ }
+ tasks++;
+ flist.Write(task);
+ WriteString(flist, startInfo.Arguments.Replace(scenePath, "%SCENEPATH%").
+ Replace(Application.dataPath + "/" + outputPathFull, "%SCENEPATH%"));
+ }
+
+ if (deferredCommandsUVGB.ContainsKey(i))
+ {
+ GL.IssuePluginEvent(7); // render UVGBuffer
+ int uerr = 0;
+ while(uerr == 0)
+ {
+ uerr = ftBuildGraphics.GetUVGBErrorCode();
+ yield return null;
+ }
+
+ if (uerr != 0 && uerr != 99999)
+ {
+ DebugLogError("ftRenderUVGBuffer error: " + uerr);
+ userCanceled = true;
+ yield break;
+ }
+
+ ftBuildGraphics.FreeAlbedoCopies();
+ }
+
+ if (deferredCommandsRebake.ContainsKey(i))
+ {
+ var lmgroup2 = deferredCommandsRebake[i];
+ if (lmgroup2.containsTerrains)
+ {
+ tasks++;
+ flist.Write(ftClient.SERVERTASK_LMREBAKESIMPLE);
+ WriteString(flist, lmgroup2.name + "_diffuse_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ WriteString(flist, lmgroup2.name + "_diffuse_HDR_LOD");
+ flist.Write(lmgroup2.resolution/2);
+ flist.Write(lmgroup2.resolution/2);
+ flist.Write(lmgroup2.id);
+ }
+ else
+ {
+ if (lmrIndicesLengths[lmgroup2.id] == 0)
+ {
+ Debug.LogError("lmrIndicesLengths == 0 for " + lmgroup2.name);
+ }
+ else
+ {
+ tasks++;
+ flist.Write(ftClient.SERVERTASK_LMREBAKE);
+ WriteString(flist, lmgroup2.name + "_diffuse_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ WriteString(flist, lmgroup2.name + "_diffuse_HDR_LOD");
+ WriteString(flist, "lodmask_uvpos_" + lmgroup2.name + (compressedGBuffer ? ".lz4" : ".dds"));
+ flist.Write(uvSrcBuff.Length);
+ for(int j=0; j<uvSrcBuff.Length; j++) flist.Write(uvSrcBuff[j]);
+ flist.Write(uvDestBuff.Length);
+ for(int j=0; j<uvDestBuff.Length; j++) flist.Write(uvDestBuff[j]);
+ flist.Write(uvBuffOffsets[lmgroup2.id]);
+ flist.Write(uvBuffLengths[lmgroup2.id]);
+ flist.Write(lmrIndicesBuff.Length);
+ for(int j=0; j<lmrIndicesBuff.Length; j++) flist.Write(lmrIndicesBuff[j]);
+ flist.Write(lmrIndicesOffsets[lmgroup2.id]);
+ flist.Write(lmrIndicesLengths[lmgroup2.id]);
+ flist.Write(lmgroup2.resolution/2);
+ flist.Write(lmgroup2.resolution/2);
+ flist.Write(lmgroup2.id);
+ }
+ }
+ }
+
+ if (deferredCommandsLODGen.ContainsKey(i))
+ {
+ int id = deferredCommandsLODGen[i];
+ tasks++;
+ flist.Write(ftClient.SERVERTASK_LODGEN);
+ flist.Write(id);
+ }
+
+ if (deferredCommandsGIGen.ContainsKey(i))
+ {
+ Vector3 paramz = deferredCommandsGIGen[i];
+ int id = (int)paramz.x;
+ int bounce = (int)paramz.y;
+ string nm = "";
+ for(int j=0; j<groupListPlain.Count; j++)
+ {
+ if (groupListPlain[j].id == id)
+ {
+ nm = groupListPlain[j].name;
+ }
+ }
+ if (nm.Length == 0)
+ {
+ DebugLogError("Error generating GI parameters for ID " + id);
+ userCanceled = true;
+ yield break;
+ }
+ tasks++;
+ flist.Write(ftClient.SERVERTASK_GIPARAMS);
+ WriteString(flist, "gi_" + nm + bounce + ".bin");
+ flist.Write(SampleCount(giSamples));
+ flist.Write(giBackFaceWeight);
+ WriteString(flist, bounce == bounces-1 ? "" : "uvalbedo_" + nm + (compressedGBuffer ? ".lz4" : ".dds"));
+ flist.Write(groupListGIContributingPlain.Count);
+ flist.Write(giLodModeEnabled ? (byte)1 : (byte)0);
+ flist.Write(id);
+ foreach(var lmgroup2 in groupListGIContributingPlain)
+ {
+ flist.Write(lmgroup2.id);
+ WriteString(flist, lmgroup2.name);
+ flist.Write(compressedOutput ? (byte)1 : (byte)0);
+ }
+ WriteString(flist, bounce == bounces - 1 ? (nm + "_lights_Dir" + (compressedOutput ? ".lz4" : ".dds")) : "");
+ }
+ }
+
+ flist.BaseStream.Seek(0, SeekOrigin.Begin);
+ flist.Write(tasks);
+ flist.Close();
+
+ var renderSequence = File.ReadAllBytes(scenePath + "/renderSequence.bin");
+
+ try
+ {
+ if (!ftClient.SendRenderSequence(renderSequence))
+ {
+ DebugLogError("Can't connect to server");
+ ProgressBarEnd();
+ }
+ }
+ catch
+ {
+ DebugLogError("Error sending data to server");
+ ProgressBarEnd();
+ throw;
+ }
+ }
+ else if (deferredMode)
+ {
+ DebugLogInfo("Unloading scenes...");
+ if (unloadScenesInDeferredMode) UnloadScenes();
+ yield return new WaitForEndOfFrame();
+ DebugLogInfo("Unloading scenes - done.");
+
+ if (deferredCommands.Count != deferredFileSrc.Count || deferredFileSrc.Count != deferredFileDest.Count || deferredCommands.Count != deferredCommandDesc.Count)
+ {
+ DebugLogError("Deferred execution error");
+ userCanceled = true;
+ yield break;
+ }
+
+ ProgressBarSetStep(1.0f / deferredCommands.Count);
+ for(int i=0; i<deferredCommands.Count; i++)
+ {
+ if (deferredFileSrc[i].Length > 0) File.Copy(deferredFileSrc[i], deferredFileDest[i], true);
+
+ var startInfo = deferredCommands[i];
+
+ if (startInfo != null)
+ {
+ var app = Path.GetFileNameWithoutExtension(deferredCommands[i].FileName);
+ DebugLogInfo("Running " + app + " " + startInfo.Arguments);
+ ProgressBarShow(deferredCommandDesc[i], i / (float)deferredCommands.Count, true);
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ yield return null;
+
+ int errCode2 = -1;
+ int fallbackCtr = 0;
+ while(errCode2 != 0)
+ {
+#if LAUNCH_VIA_DLL
+ var crt = ProcessCoroutine(app, startInfo.Arguments);
+ while(crt.MoveNext()) yield return null;
+ if (userCanceled) yield break;
+ errCode2 = lastReturnValue;
+#else
+ var exeProcess = System.Diagnostics.Process.Start(startInfo);
+
+ //exeProcess.WaitForExit();
+ while(!exeProcess.HasExited)
+ {
+ yield return null;
+ userCanceled = simpleProgressBarCancelled();
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ }
+
+ errCode2 = exeProcess.ExitCode;
+#endif
+
+ if (errCode2 != 0)
+ {
+ DebugLogInfo("Error: " + ftErrorCodes.Translate(app, errCode2));
+ if (deferredCommandsFallback.ContainsKey(i))
+ {
+ DebugLogInfo("Trying fallback " +fallbackCtr);
+ var fallbackList = deferredCommandsFallback[i];
+ if (fallbackCtr >= fallbackList.Count) break;
+ startInfo.Arguments = fallbackList[fallbackCtr];
+ fallbackCtr++;
+ }
+ else
+ {
+ break;
+ }
+ }
+ }
+
+ if (errCode2 != 0)
+ {
+ DebugLogError(app + " error: " + ftErrorCodes.Translate(app, errCode2));
+ userCanceled = true;
+ yield break;
+ }
+ }
+
+ if (deferredCommandsRebake.ContainsKey(i))
+ {
+ var lmgroup2 = deferredCommandsRebake[i];
+
+ ProgressBarShow(deferredCommandDesc[i], i / (float)deferredCommands.Count, true);
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ yield return null;
+
+ if (lmgroup2.containsTerrains)
+ {
+ DebugLogInfo("Running lmrebake (terrain) for " + lmgroup2.name + " (" + lmGroupLODResFlags[lmgroup2.id] + ")");
+ int errCode2 = lmrRenderSimple(scenePath + "/" + lmgroup2.name + "_diffuse_HDR" + (compressedOutput ? ".lz4" : ".dds"),
+ scenePath + "/" + lmgroup2.name + "_diffuse_HDR_LOD",
+ lmgroup2.resolution/2, lmgroup2.resolution/2, lmGroupLODResFlags[lmgroup2.id]);
+ if (errCode2 != 0)
+ {
+ DebugLogError("Error rebaking lightmap (terrain) " + lmgroup2.name + ": " + ftErrorCodes.TranslateLMRebake(errCode2));
+ userCanceled = true;
+ yield break;
+ }
+ }
+ else
+ {
+ if (lmrIndicesLengths[lmgroup2.id] == 0)
+ {
+ Debug.LogError("lmrIndicesLengths == 0 for " + lmgroup2.name);
+ }
+ else
+ {
+ int errCode2 = lmrRender(scenePath + "/" + lmgroup2.name + "_diffuse_HDR" + (compressedOutput ? ".lz4" : ".dds"),
+ scenePath + "/" + lmgroup2.name + "_diffuse_HDR_LOD",
+ scenePath + "/lodmask_uvpos_" + lmgroup2.name + (compressedGBuffer ? ".lz4" : ".dds"),
+ uvSrcBuff, uvDestBuff, uvBuffOffsets[lmgroup2.id], uvBuffLengths[lmgroup2.id],
+ lmrIndicesBuff, lmrIndicesOffsets[lmgroup2.id], lmrIndicesLengths[lmgroup2.id],
+ lmgroup2.resolution/2, lmgroup2.resolution/2, lmGroupLODResFlags[lmgroup2.id]);
+ if (errCode2 != 0)
+ {
+ DebugLogError("Error rebaking lightmap " + lmgroup2.name + ": " + ftErrorCodes.TranslateLMRebake(errCode2));
+ userCanceled = true;
+ yield break;
+ }
+ }
+ }
+ }
+
+ if (deferredCommandsLODGen.ContainsKey(i))
+ {
+ int id = deferredCommandsLODGen[i];
+ DebugLogInfo("Generating LOD vbTraceTex for " + id);
+
+ ProgressBarShow(deferredCommandDesc[i], i / (float)deferredCommands.Count, true);
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ yield return null;
+
+ int errCode2 = GenerateVBTraceTexLOD(id);
+ if (errCode2 != 0)
+ {
+ DebugLogError("Error generating tracing mesh for ID " + id);
+ userCanceled = true;
+ yield break;
+ }
+ }
+
+ if (deferredCommandsGIGen.ContainsKey(i))
+ {
+ Vector3 paramz = deferredCommandsGIGen[i];
+ int id = (int)paramz.x;
+ int bounce = (int)paramz.y;
+ bool useDir = paramz.z > 0;
+ DebugLogInfo("Generating GI parameters for " + id+" "+bounce);
+
+ ProgressBarShow(deferredCommandDesc[i], i / (float)deferredCommands.Count, true);
+ if (userCanceled)
+ {
+ ProgressBarEnd();
+ yield break;
+ }
+ yield return null;
+
+ string nm = "";
+ int sceneLodLevel = -1;
+ for(int j=0; j<groupListPlain.Count; j++)
+ {
+ if (groupListPlain[j].id == id)
+ {
+ nm = groupListPlain[j].name;
+ sceneLodLevel = groupListPlain[j].sceneLodLevel;
+ }
+ }
+ if (nm.Length == 0)
+ {
+ DebugLogError("Error generating GI parameters for ID " + id);
+ userCanceled = true;
+ yield break;
+ }
+ GenerateGIParameters(id, nm, bounce, bounces, useDir, sceneLodLevel);
+ }
+
+ if (deferredCommandsHalf2VB.ContainsKey(i))
+ {
+ var gr = deferredCommandsHalf2VB[i];
+
+ bool hasShadowMask = gr.renderMode == (int)BakeryLightmapGroup.RenderMode.Shadowmask ||
+ (gr.renderMode == (int)BakeryLightmapGroup.RenderMode.Auto && userRenderMode == RenderMode.Shadowmask);
+
+ bool hasDir = gr.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.DominantDirection ||
+ (gr.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto && renderDirMode == RenderDirMode.DominantDirection);
+
+ bool hasSH = gr.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.SH ||
+ (gr.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto && renderDirMode == RenderDirMode.SH);
+
+ int err = GenerateVertexBakedMeshes(gr.id, gr.name, hasShadowMask, hasDir, hasSH);
+ if (err != 0)
+ {
+ DebugLogError("Error generating vertex color data for " + gr.name);
+ userCanceled = true;
+ yield break;
+ }
+ }
+
+ if (deferredCommandsUVGB.ContainsKey(i))
+ {
+ GL.IssuePluginEvent(7); // render UVGBuffer
+ int uerr = 0;
+ while(uerr == 0)
+ {
+ uerr = ftBuildGraphics.GetUVGBErrorCode();
+ yield return null;
+ }
+
+ if (uerr != 0 && uerr != 99999)
+ {
+ DebugLogError("ftRenderUVGBuffer error: " + uerr);
+ userCanceled = true;
+ yield break;
+ }
+
+ ftBuildGraphics.FreeAlbedoCopies();
+ }
+ }
+
+ ProgressBarShow("Finished rendering", 1, true);
+
+ if (unloadScenesInDeferredMode)
+ {
+ LoadScenes();
+ storages = new Dictionary<Scene, ftLightmapsStorage>();
+ //var sanityTimeout = GetTime() + 5;
+ while( (sceneCount > EditorSceneManager.sceneCount || EditorSceneManager.GetSceneAt(0).path.Length == 0))// && GetTime() < sanityTimeout )
+ {
+ yield return null;
+ }
+ for(int i=0; i<sceneCount; i++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(i);
+ if (!scene.isLoaded) continue;
+ var go = ftLightmaps.FindInScene("!ftraceLightmaps", scene);
+ storage = go.GetComponent<ftLightmapsStorage>();
+ storages[scene] = storage;
+
+ if (giLodModeEnabled)
+ {
+ storage.lmGroupLODResFlags = lmGroupLODResFlags;
+ storage.lmGroupLODMatrix = lmGroupLODMatrix;
+ EditorUtility.SetDirty(storage);
+ }
+
+ if (loadedScenesActive[i]) EditorSceneManager.SetActiveScene(scene);
+ }
+ }
+ progressStepsDone = 0;
+ progressSteps = groupList.Count * 3;
+ ProgressBarSetStep(0);
+ }
+
+ if (clientMode)
+ {
+ ProgressBarEnd();
+ }
+ else
+ {
+ LoadRenderSettings();
+
+ var apply = ApplyBakedData();
+ while(apply.MoveNext()) yield return null;
+
+ var ms = GetTimeMs();
+ double bakeTime = (ms - startMs) / 1000.0;
+ DebugLogInfo("Rendering finished in " + bakeTime + " seconds");
+
+ lastBakeTime = (int)bakeTime;
+ if (renderSettingsStorage == null) renderSettingsStorage = FindRenderSettingsStorage();
+ if (renderSettingsStorage != null) renderSettingsStorage.lastBakeTime = lastBakeTime;
+
+ try
+ {
+ var bakeTimeLog = new StreamWriter(File.Open("bakery_times.log", FileMode.Append));
+ if (bakeTimeLog != null)
+ {
+ int hours = lastBakeTime / (60*60);
+ int minutes = (lastBakeTime / 60) % 60;
+ int seconds = lastBakeTime % 60;
+ bakeTimeLog.Write(System.DateTime.Now.ToString("MM/dd/yyyy HH:mm") + " | " + EditorSceneManager.GetActiveScene().name + " | " + hours+"h "+minutes+"m "+seconds+"s\n");
+ }
+ bakeTimeLog.Close();
+ }
+ catch
+ {
+ Debug.LogError("Failed writing bakery_times.log");
+ }
+
+ ProgressBarEnd();
+
+ if (beepOnFinish) System.Media.SystemSounds.Beep.Play();
+
+ if (OnFinishedFullRender != null)
+ {
+ OnFinishedFullRender.Invoke(this, null);
+ }
+ }
+ }
+
+
+ IEnumerator ApplyBakedData()
+ {
+ var sceneCount = EditorSceneManager.sceneCount;
+ var bdataName = "BakeryPrefabLightmapData";
+
+ // Load vertex colors
+ try
+ {
+ foreach(var lmgroup in groupListGIContributingPlain)
+ {
+ if (!lmgroup.vertexBake) continue;
+ if (lmgroup.isImplicit) continue;
+
+ bool hasShadowMask = lmgroup.renderMode == (int)BakeryLightmapGroup.RenderMode.Shadowmask ||
+ (lmgroup.renderMode == (int)BakeryLightmapGroup.RenderMode.Auto && userRenderMode == RenderMode.Shadowmask);
+
+ bool hasDir = lmgroup.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.DominantDirection ||
+ (lmgroup.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto && renderDirMode == RenderDirMode.DominantDirection);
+
+ bool hasSH = lmgroup.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.SH ||
+ (lmgroup.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto && renderDirMode == RenderDirMode.SH);
+
+ GenerateVertexBakedMeshes(lmgroup.id, lmgroup.name, hasShadowMask, hasDir, hasSH);
+ }
+ }
+ catch
+ {
+ DebugLogError("Error loading vertex colors - see console for details");
+ ProgressBarEnd();
+ throw;
+ }
+
+ // Set probe colors
+ if (!selectedOnly && lightProbeMode == LightProbeMode.L1 && hasAnyProbes && !fullSectorRender)
+ {
+ var probes = LightmapSettings.lightProbes;
+ if (probes == null)
+ {
+ DebugLogError("No probes in LightingDataAsset");
+ yield break;
+ }
+ var positions = probes.positions;
+ int atlasTexSize = (int)Mathf.Ceil(Mathf.Sqrt((float)probes.count));
+ atlasTexSize = (int)Mathf.Ceil(atlasTexSize / (float)tileSize) * tileSize;
+
+ var shs = new SphericalHarmonicsL2[probes.count];
+
+ int r = 0;
+ int g = 1;
+ int b = 2;
+
+ var l0 = new float[atlasTexSize * atlasTexSize * 4];
+ var l1x = new float[atlasTexSize * atlasTexSize * 4];
+ var l1y = new float[atlasTexSize * atlasTexSize * 4];
+ var l1z = new float[atlasTexSize * atlasTexSize * 4];
+ var handle = GCHandle.Alloc(l0, GCHandleType.Pinned);
+ var handleL1x = GCHandle.Alloc(l1x, GCHandleType.Pinned);
+ var handleL1y = GCHandle.Alloc(l1y, GCHandleType.Pinned);
+ var handleL1z = GCHandle.Alloc(l1z, GCHandleType.Pinned);
+ var errCodes = new int[4];
+ try
+ {
+ var pointer = handle.AddrOfPinnedObject();
+ var pointerL1x = handleL1x.AddrOfPinnedObject();
+ var pointerL1y = handleL1y.AddrOfPinnedObject();
+ var pointerL1z = handleL1z.AddrOfPinnedObject();
+ errCodes[0] = halffloat2vb(scenePath + "\\probes_final_L0" + (compressedOutput ? ".lz4" : ".dds"), pointer, 2);
+ errCodes[1] = halffloat2vb(scenePath + "\\probes_final_L1x" + (compressedOutput ? ".lz4" : ".dds"), pointerL1x, 2);
+ errCodes[2] = halffloat2vb(scenePath + "\\probes_final_L1y" + (compressedOutput ? ".lz4" : ".dds"), pointerL1y, 2);
+ errCodes[3] = halffloat2vb(scenePath + "\\probes_final_L1z" + (compressedOutput ? ".lz4" : ".dds"), pointerL1z, 2);
+ bool ok = true;
+ for(int i=0; i<4; i++)
+ {
+ if (errCodes[i] != 0)
+ {
+ Debug.LogError("hf2vb (" + i + "): " + errCodes[i]);
+ ok = false;
+ }
+ }
+ if (ok)
+ {
+ for(int i=0; i<probes.count; i++)
+ {
+ var sh = new SphericalHarmonicsL2();
+
+ sh[r,0] = l0[i*4+0] * 2;
+ sh[g,0] = l0[i*4+1] * 2;
+ sh[b,0] = l0[i*4+2] * 2;
+
+ const float convL0 = ftAdditionalConfig.convL0;
+ const float convL1 = ftAdditionalConfig.convL1;
+
+ // read as BGR (2,1,0)
+ sh[r,3] = (l1x[i*4+2] * 2.0f - 1.0f) * sh[r,0]*2 * convL1;
+ sh[g,3] = (l1x[i*4+1] * 2.0f - 1.0f) * sh[g,0]*2 * convL1;
+ sh[b,3] = (l1x[i*4+0] * 2.0f - 1.0f) * sh[b,0]*2 * convL1;
+
+ sh[r,1] = (l1y[i*4+2] * 2.0f - 1.0f) * sh[r,0]*2 * convL1;
+ sh[g,1] = (l1y[i*4+1] * 2.0f - 1.0f) * sh[g,0]*2 * convL1;
+ sh[b,1] = (l1y[i*4+0] * 2.0f - 1.0f) * sh[b,0]*2 * convL1;
+
+ sh[r,2] = (l1z[i*4+2] * 2.0f - 1.0f) * sh[r,0]*2 * convL1;
+ sh[g,2] = (l1z[i*4+1] * 2.0f - 1.0f) * sh[g,0]*2 * convL1;
+ sh[b,2] = (l1z[i*4+0] * 2.0f - 1.0f) * sh[b,0]*2 * convL1;
+
+ sh[r,0] *= convL0;
+ sh[g,0] *= convL0;
+ sh[b,0] *= convL0;
+
+ shs[i] = sh;
+ }
+ }
+ }
+ finally
+ {
+ handle.Free();
+ handleL1x.Free();
+ handleL1y.Free();
+ handleL1z.Free();
+ }
+
+#if UNITY_2019_3_OR_NEWER
+ if (useUnityForOcclsusionProbes)
+ {
+ // Reload scenes or changes to LightingDataAsset are not applied (?!)
+ EditorSceneManager.SaveOpenScenes();
+ var setup = EditorSceneManager.GetSceneManagerSetup();
+ RestoreSceneManagerSetup(setup);
+ storages = new Dictionary<Scene, ftLightmapsStorage>();
+ while( (sceneCount > EditorSceneManager.sceneCount || EditorSceneManager.GetSceneAt(0).path.Length == 0))// && GetTime() < sanityTimeout )
+ {
+ yield return null;
+ }
+ for(int i=0; i<sceneCount; i++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(i);
+ if (!scene.isLoaded) continue;
+ var go = ftLightmaps.FindInScene("!ftraceLightmaps", scene);
+ storage = go.GetComponent<ftLightmapsStorage>();
+ storages[scene] = storage;
+ }
+ }
+#endif
+
+ probes.bakedProbes = shs;
+ EditorUtility.SetDirty(Lightmapping.lightingDataAsset);
+ }
+
+ LoadVolumes();
+
+ //EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
+ EditorSceneManager.MarkAllScenesDirty();
+
+ // Asset importing stage 1: set AssetPostprocessor settings -> moved
+
+ // Asset importing stage 2: actual import
+ AssetDatabase.Refresh();
+ ftTextureProcessor.texSettings = new Dictionary<string, Vector2>();
+
+ // Asset importing stage 3: load and assign imported assets
+ foreach(var lmgroup in groupListGIContributingPlain)
+ {
+ if (lmgroup.vertexBake) continue;
+ if (lmgroup.parentName != null && lmgroup.parentName.Length > 0 && lmgroup.parentName != "|") continue;
+ var nm = lmgroup.name;
+
+ var dirMode = lmgroup.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto ? (int)renderDirMode : (int)lmgroup.renderDirMode;
+ var dominantDirMode = dirMode == (int)ftRenderLightmap.RenderDirMode.DominantDirection && lightmapHasDir[lmgroup.id];
+ var rnmMode = dirMode == (int)ftRenderLightmap.RenderDirMode.RNM && lightmapHasRNM[lmgroup.id];
+ var shMode = dirMode == (int)ftRenderLightmap.RenderDirMode.SH && lightmapHasRNM[lmgroup.id];
+ var shModeProbe = dirMode == (int)BakeryLightmapGroup.RenderDirMode.ProbeSH && lightmapHasRNM[lmgroup.id];
+ if (shModeProbe) shMode = true;
+
+ Texture2D lm = null;
+ var outfile = "Assets/" + outputPathFull + "/"+nm+"_final.hdr";
+ if (rnmMode) outfile = "Assets/" + outputPathFull + "/"+nm+"_RNM0.hdr";
+ if (lightmapHasColor[lmgroup.id] && File.Exists(outfile))
+ {
+ lm = AssetDatabase.LoadAssetAtPath(outfile, typeof(Texture2D)) as Texture2D;
+ }
+
+ Texture2D mask = null;
+ if (lightmapHasMask[lmgroup.id])
+ {
+ outfile = "Assets/" + outputPathFull + "/"+nm+"_mask" + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? ".png" : ".tga");
+ if (File.Exists(outfile))
+ {
+ mask = AssetDatabase.LoadAssetAtPath(outfile, typeof(Texture2D)) as Texture2D;
+ }
+ }
+
+ Texture2D dirLightmap = null;
+ if (dominantDirMode)
+ {
+ outfile = "Assets/" + outputPathFull + "/"+nm+"_dir" + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? ".png" : ".tga");
+ if (File.Exists(outfile))
+ {
+ dirLightmap = AssetDatabase.LoadAssetAtPath(outfile, typeof(Texture2D)) as Texture2D;
+ }
+ }
+
+ Texture2D rnmLightmap0 = null;
+ Texture2D rnmLightmap1 = null;
+ Texture2D rnmLightmap2 = null;
+ if (rnmMode)
+ {
+ for(int c=0; c<3; c++)
+ {
+ outfile = "Assets/" + outputPathFull + "/"+nm+"_RNM" + c + ".hdr";
+ if (c == 0) rnmLightmap0 = AssetDatabase.LoadAssetAtPath(outfile, typeof(Texture2D)) as Texture2D;
+ if (c == 1) rnmLightmap1 = AssetDatabase.LoadAssetAtPath(outfile, typeof(Texture2D)) as Texture2D;
+ if (c == 2) rnmLightmap2 = AssetDatabase.LoadAssetAtPath(outfile, typeof(Texture2D)) as Texture2D;
+ }
+ }
+
+ if (shMode)
+ {
+ outfile = "Assets/" + outputPathFull + "/"+nm+"_L0.hdr";
+ lm = AssetDatabase.LoadAssetAtPath(outfile, typeof(Texture2D)) as Texture2D;
+ for(int c=0; c<3; c++)
+ {
+ string comp;
+ if (c==0)
+ {
+ comp = "x";
+ }
+ else if (c==1)
+ {
+ comp = "y";
+ }
+ else
+ {
+ comp = "z";
+ }
+ outfile = "Assets/" + outputPathFull + "/"+nm+"_L1" + comp + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? ".png" : ".tga");
+ if (c == 0) rnmLightmap0 = AssetDatabase.LoadAssetAtPath(outfile, typeof(Texture2D)) as Texture2D;
+ if (c == 1) rnmLightmap1 = AssetDatabase.LoadAssetAtPath(outfile, typeof(Texture2D)) as Texture2D;
+ if (c == 2) rnmLightmap2 = AssetDatabase.LoadAssetAtPath(outfile, typeof(Texture2D)) as Texture2D;
+ }
+ }
+
+ for(int s=0; s<sceneCount; s++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(s);
+ if (!scene.isLoaded) continue;
+ storage = storages[scene];
+
+ storage.anyVolumes = hasAnyVolumes;
+ storage.compressedVolumes = compressVolumes;
+
+ while(storage.maps.Count <= lmgroup.id)
+ {
+ storage.maps.Add(null);
+ }
+ storage.maps[lmgroup.id] = lm;
+
+ if (userRenderMode == RenderMode.Shadowmask)
+ {
+ while(storage.masks.Count <= lmgroup.id)
+ {
+ storage.masks.Add(null);
+ }
+ storage.masks[lmgroup.id] = mask;
+ }
+
+ if (dominantDirMode)
+ {
+ while(storage.dirMaps.Count <= lmgroup.id)
+ {
+ storage.dirMaps.Add(null);
+ }
+ storage.dirMaps[lmgroup.id] = dirLightmap;
+ }
+
+ if (rnmMode || shMode)
+ {
+ while(storage.rnmMaps0.Count <= lmgroup.id)
+ {
+ storage.rnmMaps0.Add(null);
+ }
+ storage.rnmMaps0[lmgroup.id] = rnmLightmap0;
+
+ while(storage.rnmMaps1.Count <= lmgroup.id)
+ {
+ storage.rnmMaps1.Add(null);
+ }
+ storage.rnmMaps1[lmgroup.id] = rnmLightmap1;
+
+ while(storage.rnmMaps2.Count <= lmgroup.id)
+ {
+ storage.rnmMaps2.Add(null);
+ }
+ storage.rnmMaps2[lmgroup.id] = rnmLightmap2;
+
+ while(storage.mapsMode.Count <= lmgroup.id)
+ {
+ storage.mapsMode.Add(0);
+ }
+ storage.mapsMode[lmgroup.id] = rnmMode ? 2 : 3;
+ }
+
+ // Clear temp data from storage
+ storage.uvBuffOffsets = new int[0];
+ storage.uvBuffLengths = new int[0];
+ storage.uvSrcBuff = new float[0];
+ storage.uvDestBuff = new float[0];
+ storage.lmrIndicesOffsets = new int[0];
+ storage.lmrIndicesLengths = new int[0];
+ storage.lmrIndicesBuff = new int[0];
+
+ storage.lmGroupLODResFlags = new int[0];
+ storage.lmGroupMinLOD = new int[0];
+ storage.lmGroupLODMatrix = new int[0];
+ }
+ }
+
+ if (curSector != null && curSectorName.Length > 0)
+ {
+ for(int s=0; s<sceneCount; s++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(s);
+ if (!scene.isLoaded) continue;
+ storage = storages[scene];
+
+ // Copy lightmap mappings to sector data
+ if (storage.sectors == null) storage.sectors = new List<ftLightmapsStorage.SectorData>();
+ ftLightmapsStorage.SectorData sect = null;
+ for(int sc=0; sc<storage.sectors.Count; sc++)
+ {
+ if (storage.sectors[sc].name == curSectorName)
+ {
+ sect = storage.sectors[sc];
+ break;
+ }
+ }
+ if (sect == null)
+ {
+ sect = new ftLightmapsStorage.SectorData();
+ sect.name = curSectorName;
+ storage.sectors.Add(sect);
+ }
+ sect.maps = storage.maps;
+ sect.masks = storage.masks;
+ sect.dirMaps = storage.dirMaps;
+ sect.rnmMaps0 = storage.rnmMaps0;
+ sect.rnmMaps1 = storage.rnmMaps1;
+ sect.rnmMaps2 = storage.rnmMaps2;
+ sect.mapsMode = storage.mapsMode;
+ sect.bakedRenderers = storage.bakedRenderers;
+ sect.bakedRenderersTerrain = storage.bakedRenderersTerrain;
+ sect.bakedIDs = storage.bakedIDs;
+ sect.bakedIDsTerrain = storage.bakedIDsTerrain;
+ sect.bakedScaleOffset = storage.bakedScaleOffset;
+ sect.bakedScaleOffsetTerrain = storage.bakedScaleOffsetTerrain;
+ sect.bakedVertexColorMesh = storage.bakedVertexColorMesh;
+ sect.nonBakedRenderers = storage.nonBakedRenderers;
+ }
+ }
+
+ if (fullSectorRender || selectedOnly || probesOnlyL1)
+ {
+ MergeSectors();
+ }
+
+ // Remove unused lightmaps and remap IDs
+ if (sceneCount > 1 && removeDuplicateLightmaps)
+ {
+ for(int s=0; s<sceneCount; s++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(s);
+ if (!scene.isLoaded) continue;
+ storage = storages[scene];
+ var usedIDs = new Dictionary<int, bool>();
+ var origID2New = new Dictionary<int, int>();
+ for(int i=0; i<storage.bakedIDs.Count; i++)
+ {
+ if (storage.bakedIDs[i] < 0 || storage.bakedIDs[i] > storage.maps.Count) continue;
+ usedIDs[storage.bakedIDs[i]] = true;
+ }
+ for(int i=0; i<storage.bakedIDsTerrain.Count; i++)
+ {
+ if (storage.bakedIDsTerrain[i] < 0 || storage.bakedIDsTerrain[i] > storage.maps.Count) continue;
+ usedIDs[storage.bakedIDsTerrain[i]] = true;
+ }
+ var newMaps = new List<Texture2D>();
+ var newMasks = new List<Texture2D>();
+ var newDirMaps = new List<Texture2D>();
+ var newRNM0Maps = new List<Texture2D>();
+ var newRNM1Maps = new List<Texture2D>();
+ var newRNM2Maps = new List<Texture2D>();
+ var newMapsMode = new List<int>();
+ foreach(var pair in usedIDs)
+ {
+ int origID = pair.Key;
+ int newID = newMaps.Count;
+ origID2New[origID] = newID;
+
+ newMaps.Add(storage.maps[origID]);
+ if (storage.masks.Count > origID) newMasks.Add(storage.masks[origID]);
+ if (storage.dirMaps.Count > origID) newDirMaps.Add(storage.dirMaps[origID]);
+ if (storage.rnmMaps0.Count > origID)
+ {
+ newRNM0Maps.Add(storage.rnmMaps0[origID]);
+ newRNM1Maps.Add(storage.rnmMaps1[origID]);
+ newRNM2Maps.Add(storage.rnmMaps2[origID]);
+ newMapsMode.Add(storage.mapsMode[origID]);
+ }
+ }
+ storage.maps = newMaps;
+ storage.masks = newMasks;
+ storage.dirMaps = newDirMaps;
+ storage.rnmMaps0 = newRNM0Maps;
+ storage.rnmMaps1 = newRNM1Maps;
+ storage.rnmMaps2 = newRNM2Maps;
+ storage.mapsMode = newMapsMode;
+
+ for(int i=0; i<storage.bakedIDs.Count; i++)
+ {
+ int newID = origID2New[storage.bakedIDs[i]];
+ if (newID < 0 || newID > storage.maps.Count) continue;
+ storage.bakedIDs[i] = newID;
+ }
+
+ for(int i=0; i<storage.bakedIDsTerrain.Count; i++)
+ {
+ int newID = origID2New[storage.bakedIDsTerrain[i]];
+ if (newID < 0 || newID > storage.maps.Count) continue;
+ storage.bakedIDsTerrain[i] = newID;
+ }
+ }
+ }
+
+ // Patch lightmapped prefabs
+ //var bdataName = "BakeryPrefabLightmapData";
+ var lmprefabs = FindObjectsOfType(typeof(BakeryLightmappedPrefab)) as BakeryLightmappedPrefab[];
+ for(int i=0; i<lmprefabs.Length; i++)
+ {
+ var p = lmprefabs[i];
+ if (!p.gameObject.activeInHierarchy) continue;
+ if (!p.IsValid()) continue;
+
+ var pstoreT = p.transform.Find(bdataName);
+ if (pstoreT == null)
+ {
+ var pstoreG = new GameObject();
+ pstoreG.name = bdataName;
+ pstoreT = pstoreG.transform;
+ pstoreT.parent = p.transform;
+ }
+ var pstore = pstoreT.gameObject.GetComponent<ftLightmapsStorage>();
+ if (pstore == null) pstore = pstoreT.gameObject.AddComponent<ftLightmapsStorage>();
+
+ var prenderers = p.GetComponentsInChildren<Renderer>();
+ var pterrains = p.GetComponentsInChildren<Terrain>();
+ var plights = p.GetComponentsInChildren<Light>();
+
+ var storage = storages[p.gameObject.scene];
+
+ pstore.bakedRenderers = new List<Renderer>();
+ pstore.bakedIDs = new List<int>();
+ pstore.bakedScaleOffset = new List<Vector4>();
+ pstore.bakedVertexColorMesh = new List<Mesh>();
+
+ pstore.bakedRenderersTerrain = new List<Terrain>();
+ pstore.bakedIDsTerrain = new List<int>();
+ pstore.bakedScaleOffsetTerrain = new List<Vector4>();
+
+ pstore.bakedLights = new List<Light>();
+ pstore.bakedLightChannels = new List<int>();
+ var usedIDs = new Dictionary<int, bool>();
+ usedIDs[0] = true; // have to include ID 0 because Unity judges lightmap compression by it
+
+ for(int j=0; j<prenderers.Length; j++)
+ {
+ var r = prenderers[j];
+ int idx = storage.bakedRenderers.IndexOf(r);
+ if (idx < 0) continue;
+ pstore.bakedRenderers.Add(r);
+ pstore.bakedIDs.Add(storage.bakedIDs[idx]);
+ pstore.bakedScaleOffset.Add(storage.bakedScaleOffset[idx]);
+ pstore.bakedVertexColorMesh.Add(storage.bakedVertexColorMesh[idx]);
+ usedIDs[storage.bakedIDs[idx]] = true;
+ }
+
+ for(int j=0; j<pterrains.Length; j++)
+ {
+ var r = pterrains[j];
+ int idx = storage.bakedRenderersTerrain.IndexOf(r);
+ if (idx < 0) continue;
+ pstore.bakedRenderersTerrain.Add(r);
+ pstore.bakedIDsTerrain.Add(storage.bakedIDsTerrain[idx]);
+ pstore.bakedScaleOffsetTerrain.Add(storage.bakedScaleOffsetTerrain[idx]);
+ usedIDs[storage.bakedIDsTerrain[idx]] = true;
+ }
+
+ for(int j=0; j<plights.Length; j++)
+ {
+ var r = plights[j];
+ int idx = storage.bakedLights.IndexOf(r);
+ if (idx < 0) continue;
+ pstore.bakedLights.Add(r);
+ pstore.bakedLightChannels.Add(storage.bakedLightChannels[idx]);
+ }
+
+ pstore.maps = new List<Texture2D>();
+ pstore.masks = new List<Texture2D>();
+ pstore.dirMaps = new List<Texture2D>();
+ pstore.rnmMaps0 = new List<Texture2D>();
+ pstore.rnmMaps1 = new List<Texture2D>();
+ pstore.rnmMaps2 = new List<Texture2D>();
+ pstore.mapsMode = new List<int>();
+ foreach(var pair in usedIDs)
+ {
+ int id = pair.Key;
+ if (id < 0) continue;
+ while(pstore.maps.Count <= id)
+ {
+ pstore.maps.Add(null);
+ if (storage.masks.Count > pstore.masks.Count) pstore.masks.Add(null);
+ if (storage.dirMaps.Count > pstore.dirMaps.Count) pstore.dirMaps.Add(null);
+ if (storage.rnmMaps0.Count > pstore.rnmMaps0.Count)
+ {
+ pstore.rnmMaps0.Add(null);
+ pstore.rnmMaps1.Add(null);
+ pstore.rnmMaps2.Add(null);
+ pstore.mapsMode.Add(0);
+ }
+ }
+ if (storage.maps.Count > id)
+ {
+ pstore.maps[id] = storage.maps[id];
+ if (pstore.masks.Count > id) pstore.masks[id] = storage.masks[id];
+ if (pstore.dirMaps.Count > id) pstore.dirMaps[id] = storage.dirMaps[id];
+ if (pstore.rnmMaps0.Count > id)
+ {
+ pstore.rnmMaps0[id] = storage.rnmMaps0[id];
+ pstore.rnmMaps1[id] = storage.rnmMaps1[id];
+ pstore.rnmMaps2[id] = storage.rnmMaps2[id];
+ pstore.mapsMode[id] = storage.mapsMode[id];
+ }
+ }
+ }
+
+#if UNITY_2018_3_OR_NEWER
+ // Unity 2018.3 incorrectly sets lightmap IDs when applying prefabs, UNLESS editor is focused
+ DebugLogInfo("Waiting for Unity editor focus...");
+ bool focused = false;
+ while(!focused)
+ {
+ var wnd = GetForegroundWindow();
+ while(wnd != (System.IntPtr)0)
+ {
+ if (wnd == unityEditorHWND)
+ {
+ focused = true;
+ break;
+ }
+ wnd = GetParent(wnd);
+ }
+ yield return null;
+ }
+#endif
+
+ PrefabUtility.ReplacePrefab(p.gameObject, PrefabUtility.GetPrefabParent(p.gameObject), ReplacePrefabOptions.ConnectToPrefab);
+ DebugLogInfo("Patched prefab " + p.name);
+ }
+
+ ftLightmaps.RefreshFull();
+ }
+
+ static void MergeSectorsUpdate()
+ {
+ if (loadedScenes != null)
+ {
+ if ( (loadedScenes.Count > EditorSceneManager.sceneCount || EditorSceneManager.GetSceneAt(0).path.Length == 0))
+ {
+ DebugLogInfo("MergeSectors: waiting for scenes...");
+ return;
+ }
+ MergeSectors();
+ DebugLogInfo("MergeSectors: done");
+ }
+ EditorApplication.update -= MergeSectorsUpdate;
+ }
+
+ static void MergeSectorsDeferred()
+ {
+ EditorApplication.update += MergeSectorsUpdate;
+ }
+
+ static public void MergeSectors()
+ {
+ int sceneCount = EditorSceneManager.sceneCount;
+ CollectStorages();
+
+ for(int s=0; s<sceneCount; s++)
+ {
+ var scene = EditorSceneManager.GetSceneAt(s);
+ if (!scene.isLoaded) continue;
+ storage = storages[scene];
+
+ // Merge all sectors
+ var newMaps = new List<Texture2D>();
+ var newMasks = new List<Texture2D>();
+ var newDirMaps = new List<Texture2D>();
+ var newRNM0Maps = new List<Texture2D>();
+ var newRNM1Maps = new List<Texture2D>();
+ var newRNM2Maps = new List<Texture2D>();
+ var newMapsMode = new List<int>();
+ var newBakedRenderers = new List<Renderer>();
+ var newBakedRenderersTerrain = new List<Terrain>();
+ var newBakedIDs = new List<int>();
+ var newBakedIDsTerrain = new List<int>();
+ var newBakedScaleOffset = new List<Vector4>();
+ var newBakedScaleOffsetTerrain = new List<Vector4>();
+ var newBakedVertexColorMesh = new List<Mesh>();
+ HashSet<Renderer> nonBakedSet = null;
+ bool anyMasks = false;
+ bool anyDirMaps = false;
+ bool anyRNMMaps = false;
+ int maxMapCount = 0;
+ for(int sc=0; sc<storage.sectors.Count; sc++)
+ {
+ var sect = storage.sectors[sc];
+ if (sect.masks != null && sect.masks.Count > 0) anyMasks = true;
+ if (sect.dirMaps != null && sect.dirMaps.Count > 0) anyDirMaps = true;
+ if (sect.rnmMaps0 != null && sect.rnmMaps0.Count > 0) anyRNMMaps = true;
+
+ if (sect.maps != null) maxMapCount = System.Math.Max(maxMapCount, sect.maps.Count);
+ }
+
+ var idRemap = new int[maxMapCount];
+
+ var rendererSet = new HashSet<Renderer>();
+ var terrainSet = new HashSet<Terrain>();
+
+ for(int sc=storage.sectors.Count-1; sc>=0; sc--) // revert order because newest sectors have priority over the global sector
+ //for(int sc=0; sc<storage.sectors.Count; sc++)
+ {
+ var sect = storage.sectors[sc];
+ bool hasMasks = (sect.masks != null && sect.masks.Count > 0);
+ bool hasDirMaps = (sect.dirMaps != null && sect.dirMaps.Count > 0);
+ bool hasRNMMaps = (sect.rnmMaps0 != null && sect.rnmMaps0.Count > 0);
+ for(int j=0; j<sect.maps.Count; j++)
+ {
+ int exists = newMaps.IndexOf(sect.maps[j]);
+ if (exists >= 0)
+ {
+ idRemap[j] = exists;
+ continue;
+ }
+
+ idRemap[j] = newMaps.Count;
+ newMaps.Add(sect.maps[j]);
+
+ bool has = hasMasks && sect.masks.Count > j;
+ if (anyMasks) newMasks.Add(has ? sect.masks[j] : null);
+
+ has = hasDirMaps && sect.dirMaps.Count > j;
+ if (anyDirMaps)
+ {
+ newDirMaps.Add(has ? sect.dirMaps[j] : null);
+ }
+
+ if (anyRNMMaps)
+ {
+ has = hasRNMMaps && sect.rnmMaps0.Count > j;
+ newRNM0Maps.Add(has ? sect.rnmMaps0[j] : null);
+ newRNM1Maps.Add(has ? sect.rnmMaps1[j] : null);
+ newRNM2Maps.Add(has ? sect.rnmMaps2[j] : null);
+ newMapsMode.Add(has ? sect.mapsMode[j] : 0);
+ }
+ }
+
+ for(int j=0; j<sect.bakedRenderers.Count; j++)
+ {
+ var renderer = sect.bakedRenderers[j];
+ if (rendererSet.Contains(renderer)) continue;
+ rendererSet.Add(renderer);
+
+ newBakedRenderers.Add(renderer);
+ newBakedScaleOffset.Add(sect.bakedScaleOffset[j]);
+ newBakedVertexColorMesh.Add(sect.bakedVertexColorMesh.Count > j ? sect.bakedVertexColorMesh[j] : null);
+
+ int id = sect.bakedIDs[j];
+ if (id >= 0 && id != 0xFFFF)
+ {
+ if (idRemap.Length > id) id = idRemap[id];
+ }
+ newBakedIDs.Add(id);
+ }
+ for(int j=0; j<sect.bakedRenderersTerrain.Count; j++)
+ {
+ var terrain = sect.bakedRenderersTerrain[j];
+ if (terrainSet.Contains(terrain)) continue;
+ terrainSet.Add(terrain);
+
+ newBakedRenderersTerrain.Add(terrain);
+ newBakedScaleOffsetTerrain.Add(sect.bakedScaleOffsetTerrain[j]);
+
+ int id = sect.bakedIDsTerrain[j];
+ if (id >= 0 && id != 0xFFFF)
+ {
+ if (idRemap.Length > id) id = idRemap[id];
+ }
+ newBakedIDsTerrain.Add(id);
+ }
+
+ if (nonBakedSet == null)
+ {
+ nonBakedSet = new HashSet<Renderer>(sect.nonBakedRenderers);
+ }
+ else
+ {
+ nonBakedSet.IntersectWith(sect.nonBakedRenderers);
+ }
+ }
+ storage.maps = newMaps;
+ storage.masks = newMasks;
+ storage.dirMaps = newDirMaps;
+ storage.rnmMaps0 = newRNM0Maps;
+ storage.rnmMaps1 = newRNM1Maps;
+ storage.rnmMaps2 = newRNM2Maps;
+ storage.mapsMode = newMapsMode;
+ storage.bakedRenderers = newBakedRenderers;
+ storage.bakedRenderersTerrain = newBakedRenderersTerrain;
+ storage.bakedIDs = newBakedIDs;
+ storage.bakedIDsTerrain = newBakedIDsTerrain;
+ storage.bakedScaleOffset = newBakedScaleOffset;
+ storage.bakedScaleOffsetTerrain = newBakedScaleOffsetTerrain;
+ storage.bakedVertexColorMesh = newBakedVertexColorMesh;
+ storage.nonBakedRenderers = new List<Renderer>(nonBakedSet);
+
+ EditorUtility.SetDirty(storage);
+ EditorSceneManager.MarkAllScenesDirty();
+
+ ftLightmaps.RefreshFull();
+ }
+ }
+
+ void FindAllReflectionProbesAndDisable()
+ {
+ var found = FindObjectsOfType(typeof(ReflectionProbe))as ReflectionProbe[];
+ for(int i = 0; i < found.Length; i++)
+ {
+ reflectionProbes.Add(found[i]);
+ found[i].enabled = false;
+ }
+ }
+
+ void ReEnableReflectionProbes()
+ {
+ for(int i = 0; i < reflectionProbes.Count; i++)
+ {
+ if (reflectionProbes[i] != null) reflectionProbes[i].enabled = true;
+ }
+ }
+
+ public static int GetID(Object obj)
+ {
+ int uid = ftUniqueIDRegistry.GetUID(obj.GetInstanceID());
+ if (uid == -1)
+ {
+ var s = (obj as GameObject).GetComponent<BakerySkyLight>();
+ if (s != null) s.Start();
+ var d = (obj as GameObject).GetComponent<BakeryDirectLight>();
+ if (d != null) d.Start();
+ var p = (obj as GameObject).GetComponent<BakeryPointLight>();
+ if (p != null) p.Start();
+ var l = (obj as GameObject).GetComponent<BakeryLightMesh>();
+ if (l != null) l.Start();
+
+ uid = ftUniqueIDRegistry.GetUID(obj.GetInstanceID());
+ if (uid == -1)
+ {
+ Debug.LogError("GetUID failed for " + obj.name);
+ }
+ }
+ return uid;
+ }
+
+ string GetLightName(GameObject obj, int lmid)
+ {
+ return "light_" + GetID(obj) + "_" + lmid;
+ }
+
+ bool IsLightDirty(BakeryLightMesh light)
+ {
+ if (forceRefresh) return true;
+
+ storage = storages[light.gameObject.scene];
+ ftLightmapsStorage.LightData data;
+ if (!storage.lightsDict.TryGetValue(GetID(light.gameObject), out data)) {
+ return true; // not stored
+ }
+
+ if (light.color != data.color) {
+ return true;
+ }
+ if (light.intensity != data.intensity) {
+ return true;
+ }
+ if (light.cutoff != data.range) {
+ return true;
+ }
+ if (light.samples != data.samples) {
+ return true;
+ }
+ if (light.samples2 != data.samples2) {
+ return true;
+ }
+ if (light.selfShadow != data.selfShadow) {
+ return true;
+ }
+ if (light.bakeToIndirect != data.bakeToIndirect) {
+ return true;
+ }
+
+ var tform1 = light.GetComponent<Transform>().localToWorldMatrix;
+ var tform2 = data.tform;
+ for(int y=0; y<4; y++) {
+ for(int x=0; x<4; x++) {
+ if (tform1[x,y] != tform2[x,y]) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ bool IsLightDirty(BakeryPointLight light)
+ {
+ if (forceRefresh) return true;
+
+ storage = storages[light.gameObject.scene];
+ ftLightmapsStorage.LightData data;
+ if (!storage.lightsDict.TryGetValue(GetID(light.gameObject), out data)) {
+ return true; // not stored
+ }
+
+ if (light.color != data.color) {
+ return true;
+ }
+ if (light.intensity != data.intensity) {
+ return true;
+ }
+ if (light.cutoff != data.range) {
+ return true;
+ }
+ if (light.shadowSpread != data.radius) {
+ return true;
+ }
+ if (light.samples != data.samples) {
+ return true;
+ }
+ if (light.realisticFalloff != data.realisticFalloff)
+ {
+ return true;
+ }
+ if ((int)light.projMode != data.projMode)
+ {
+ return true;
+ }
+ Object cookie = null;
+ if (light.projMode == BakeryPointLight.ftLightProjectionMode.Cubemap)
+ {
+ cookie = light.cubemap;
+ } else if (light.projMode == BakeryPointLight.ftLightProjectionMode.Cookie)
+ {
+ cookie = light.cookie;
+ } else if (light.projMode == BakeryPointLight.ftLightProjectionMode.IES)
+ {
+ cookie = light.iesFile;
+ }
+ if (cookie != data.cookie) return true;
+
+ if (light.angle != data.angle) return true;
+
+ if (light.bakeToIndirect != data.bakeToIndirect) {
+ return true;
+ }
+
+ //if (light.texName != data.texName) return true;
+
+ var tform1 = light.GetComponent<Transform>().localToWorldMatrix;
+ var tform2 = data.tform;
+ for(int y=0; y<4; y++) {
+ for(int x=0; x<4; x++) {
+ if (tform1[x,y] != tform2[x,y]) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ public static bool IsLightDirty(BakeryDirectLight light)
+ {
+ if (forceRefresh) return true;
+
+ storage = storages[light.gameObject.scene];
+ ftLightmapsStorage.LightData data;
+ if (!storage.lightsDict.TryGetValue(GetID(light.gameObject), out data)) return true; // not stored
+
+ if (light.color != data.color) {
+ return true;
+ }
+ if (light.intensity != data.intensity) {
+ return true;
+ }
+ if (light.shadowSpread != data.radius) {
+ return true;
+ }
+ if (light.samples != data.samples) {
+ return true;
+ }
+
+ if (light.bakeToIndirect != data.bakeToIndirect) {
+ return true;
+ }
+
+ var tform1 = light.GetComponent<Transform>().localToWorldMatrix;
+ var tform2 = data.tform;
+ for(int y=0; y<4; y++) {
+ for(int x=0; x<4; x++) {
+ if (tform1[x,y] != tform2[x,y]) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ bool IsLightDirty(BakerySkyLight light)
+ {
+ if (forceRefresh) return true;
+
+ storage = storages[light.gameObject.scene];
+ ftLightmapsStorage.LightData data;
+ if (!storage.lightsDict.TryGetValue(GetID(light.gameObject), out data)) return true; // not stored
+
+ if (light.color != data.color) return true;
+ if (light.intensity != data.intensity) return true;
+ //if (light.texName != data.texName) return true;
+ if (light.samples != data.samples) {
+ return true;
+ }
+ if (light.bakeToIndirect != data.bakeToIndirect) {
+ return true;
+ }
+ if (light.cubemap != data.cookie)
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+ void StoreLight(BakeryLightMesh light)
+ {
+ storage = storages[light.gameObject.scene];
+ ftLightmapsStorage.LightData data;
+ int uid = GetID(light.gameObject);
+ if (!storage.lightsDict.TryGetValue(uid, out data) || data == null)
+ {
+ data = new ftLightmapsStorage.LightData();
+ storage.StoreLight(uid, data);
+ }
+ data.color = light.color;
+ data.intensity = light.intensity;
+ data.range = light.cutoff;
+ data.samples = light.samples;
+ data.samples2 = light.samples2;
+ data.selfShadow = light.selfShadow;
+ data.bakeToIndirect = light.bakeToIndirect;
+ data.tform = light.GetComponent<Transform>().localToWorldMatrix;
+ }
+
+ void StoreLight(BakeryPointLight light)
+ {
+ storage = storages[light.gameObject.scene];
+ ftLightmapsStorage.LightData data;
+ int uid = GetID(light.gameObject);
+ if (!storage.lightsDict.TryGetValue(uid, out data) || data == null)
+ {
+ data = new ftLightmapsStorage.LightData();
+ storage.StoreLight(uid, data);
+ }
+ //var unityLight = light.GetComponent<Light>();
+ data.color = light.color;
+ data.intensity = light.intensity;
+ data.radius = light.shadowSpread;
+ data.range = light.cutoff;
+ data.samples = light.samples;
+ data.bakeToIndirect = light.bakeToIndirect;
+
+ data.realisticFalloff = light.realisticFalloff;
+ data.projMode = (int)light.projMode;
+ if (light.projMode == BakeryPointLight.ftLightProjectionMode.Cubemap)
+ {
+ data.cookie = light.cubemap;
+ } else if (light.projMode == BakeryPointLight.ftLightProjectionMode.Cookie)
+ {
+ data.cookie = light.cookie;
+ } else if (light.projMode == BakeryPointLight.ftLightProjectionMode.IES)
+ {
+ data.cookie = light.iesFile;
+ }
+ data.angle = light.angle;
+
+ //data.texName = light.texName; // TODO: check for cubemap! (and sky too)
+ data.tform = light.GetComponent<Transform>().localToWorldMatrix;
+ }
+
+ void StoreLight(BakeryDirectLight light)
+ {
+ storage = storages[light.gameObject.scene];
+ ftLightmapsStorage.LightData data;
+ int uid = GetID(light.gameObject);
+ if (!storage.lightsDict.TryGetValue(uid, out data) || data == null)
+ {
+ data = new ftLightmapsStorage.LightData();
+ storage.StoreLight(uid, data);
+ }
+ data.color = light.color;
+ data.intensity = light.intensity;
+ data.radius = light.shadowSpread;
+ data.samples = light.samples;
+ data.bakeToIndirect = light.bakeToIndirect;
+ data.tform = light.GetComponent<Transform>().localToWorldMatrix;
+ }
+
+ void StoreLight(BakerySkyLight light)
+ {
+ storage = storages[light.gameObject.scene];
+ ftLightmapsStorage.LightData data;
+ int uid = GetID(light.gameObject);
+ if (!storage.lightsDict.TryGetValue(uid, out data) || data == null)
+ {
+ data = new ftLightmapsStorage.LightData();
+ storage.StoreLight(uid, data);
+ }
+ data.color = light.color;
+ data.intensity = light.intensity;
+ data.range = 0;
+ data.samples = light.samples;
+ data.bakeToIndirect = light.bakeToIndirect;
+ data.tform = Matrix4x4.identity;
+ //data.texName = light.texName;
+ data.cookie = light.cubemap;
+ }
+
+ void UpdateLightmapShadowmaskFromPointLight(BakeryPointLight obj, int LMID, string lname, string lmname)
+ {
+ if (userRenderMode == RenderMode.Shadowmask && obj.shadowmask)
+ {
+ var ulht = obj.GetComponent<Light>();
+ if (ulht == null)
+ {
+ DebugLogWarning("Light " + obj.name + " set to shadowmask, but doesn't have real-time light");;
+ }
+ else
+ {
+ UpdateMaskArray(LMID, lname, lmname, ulht, false);
+ }
+ }
+ }
+
+ bool WriteCompFiles(BakeryPointLight obj, ComposeInstructionFiles cif, string lname, int rmode, bool dominantDirMode, bool rnmMode, bool shMode)
+ {
+ bool usesIndirectIntensity = false;
+
+ cif.fcomp.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ if (bounces > 0)
+ {
+ cif.fcomp.Write(obj.indirectIntensity * hackIndirectBoost);
+ if (Mathf.Abs(obj.indirectIntensity - 1.0f) > 0.01f) usesIndirectIntensity = true;
+ }
+
+ if ((rmode == (int)RenderMode.Indirect || rmode == (int)RenderMode.Shadowmask)
+ && obj.bakeToIndirect)
+ {
+ cif.fcompIndirect.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ if (cif.fcompDirIndirect != null)
+ {
+ cif.fcompDirIndirect.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompDirIndirect.Write(lname + "_Dir" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ }
+
+ bool rmodeFullLight = (rmode == (int)RenderMode.FullLighting || rmode == (int)RenderMode.Subtractive);
+
+ if (dominantDirMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ cif.fcompDir.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompDir.Write(lname + "_Dir" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ else if (rnmMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ cif.fcompRNM0.Write(lname + "_RNM0" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompRNM1.Write(lname + "_RNM1" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompRNM2.Write(lname + "_RNM2" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ else if (shMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ cif.fcompSH.Write(lname + "_RNM0" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lname + "_RNM1" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lname + "_RNM2" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lname + "_RNM3" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+
+ return usesIndirectIntensity;
+ }
+
+ void AddPointLightCommandLine(string renderMode, string lname, string settingsFile, string progressText, int LMID, BakeryPointLight obj,
+ int rmode, bool dominantDirMode, bool rnmMode, bool shMode, bool shModeProbe)
+ {
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+
+ bool rmodeFullLight = (rmode == (int)RenderMode.FullLighting || rmode == (int)RenderMode.Subtractive);
+
+ int passes = PASS_HALF;
+ if (dominantDirMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ passes |= PASS_DIRECTION;
+ }
+ else if (rnmMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ renderMode += "rnm";
+ if (bounces == 0) passes = 0;
+ passes |= PASS_RNM0 | PASS_RNM1 | PASS_RNM2;
+ }
+ else if (shMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ renderMode += shModeProbe ? "probesh" : "sh";
+ if (bounces == 0) passes = 0;
+ passes |= PASS_RNM0 | PASS_RNM1 | PASS_RNM2 | PASS_RNM3;
+ }
+ if (userRenderMode == RenderMode.Shadowmask && obj.shadowmask)
+ {
+ passes |= PASS_MASK;
+ if (currentGroup.transparentSelfShadow) passes |= PASS_MASK1;
+ }
+
+ startInfo.Arguments = renderMode + " " + scenePathQuoted + " \"" + lname + "\" " + passes + " " + 0 + " " + LMID + " " + settingsFile;
+
+ deferredFileSrc.Add("");//scenePath + "/pointlight" + i + ".bin");
+ deferredFileDest.Add("");//scenePath + "/pointlight.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ }
+
+ string PrepareBatchPointLight(int start, int end, int LMID, bool[] skipLight, ComposeInstructionFiles cif, int rmode, bool dominantDirMode, bool rnmMode, bool shMode, ref bool usesIndirectIntensity)
+ {
+ string lname = "PointBatch_" + LMID + "_" + start + "_" + end;
+ bool first = true;
+ //Debug.LogError("----- Group:");
+ for(int j=start; j<=end; j++)
+ {
+ if (skipLight[j]) continue;
+
+ //Debug.LogError(AllP[j]);
+
+ // For every light in a batch
+ UpdateLightmapShadowmaskFromPointLight(AllP[j], LMID, lname, currentGroup.name);
+ if (first)
+ {
+ // Once for the whole batch
+ if (WriteCompFiles(AllP[j], cif, lname, rmode, dominantDirMode, rnmMode, shMode)) usesIndirectIntensity = true;
+ first = false;
+ }
+ }
+ return lname;
+ }
+
+ class ComposeInstructionFiles
+ {
+ public BinaryWriter fcomp = null;
+ public BinaryWriter fcompIndirect = null;
+ public BinaryWriter fcompDir = null;
+ public BinaryWriter fcompDirIndirect = null;
+ public BinaryWriter fcompRNM0 = null;
+ public BinaryWriter fcompRNM1 = null;
+ public BinaryWriter fcompRNM2 = null;
+ public BinaryWriter fcompSH = null;
+
+ public void Close()
+ {
+ if (fcomp != null) fcomp.Close();
+ if (fcompIndirect != null) fcompIndirect.Close();
+ if (fcompDirIndirect != null) fcompDirIndirect.Close();
+ if (fcompDir != null) fcompDir.Close();
+ if (fcompRNM0 != null) fcompRNM0.Close();
+ if (fcompRNM1 != null) fcompRNM1.Close();
+ if (fcompRNM2 != null) fcompRNM2.Close();
+ if (fcompSH != null) fcompSH.Close();
+ }
+ }
+
+ IEnumerator RenderLMDirect(int LMID, string lmname, int resolution)
+ {
+ System.Diagnostics.ProcessStartInfo startInfo;
+ //System.Diagnostics.Process exeProcess;
+
+ bool doCompose = exeMode;
+
+ var cif = new ComposeInstructionFiles();
+
+ long fcompStartPos = 0;
+ bool usesIndirectIntensity = Mathf.Abs(hackIndirectBoost - 1.0f) > 0.001f;
+ var rmode = currentGroup.renderMode == BakeryLightmapGroup.RenderMode.Auto ? (int)userRenderMode : (int)currentGroup.renderMode;
+ var dirMode = currentGroup.renderDirMode == BakeryLightmapGroup.RenderDirMode.Auto ? (int)renderDirMode : (int)currentGroup.renderDirMode;
+ var dominantDirMode = dirMode == (int)ftRenderLightmap.RenderDirMode.DominantDirection;
+ var rnmMode = dirMode == (int)ftRenderLightmap.RenderDirMode.RNM;
+ var shMode = dirMode == (int)ftRenderLightmap.RenderDirMode.SH;
+ var shModeProbe = dirMode == (int)BakeryLightmapGroup.RenderDirMode.ProbeSH;
+ if (shModeProbe) shMode = true;
+
+ if (rmode == (int)RenderMode.AmbientOcclusionOnly)
+ {
+ if (dominantDirMode) lightmapHasDir[LMID] = true;
+ yield break;
+ }
+
+ bool rmodeFullLight = (rmode == (int)RenderMode.FullLighting || rmode == (int)RenderMode.Subtractive);
+
+ lightmapHasMask[LMID] = false;
+
+ if (doCompose)
+ {
+ var fcompName = "comp_" + LMID + ".bin";
+ cif.fcomp = new BinaryWriter(File.Open(scenePath + "/" + fcompName, FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add(fcompName);
+ if (bounces > 0)
+ {
+ cif.fcomp.Write(false);
+ cif.fcomp.Write("uvalbedo_" + lmname + (compressedGBuffer ? ".lz4" : ".dds"));
+
+ if (storage.hasEmissive.Count > LMID && storage.hasEmissive[LMID])
+ {
+ cif.fcomp.Write("uvemissive_" + lmname + (compressedGBuffer ? ".lz4" : ".dds"));
+ }
+ else
+ {
+ cif.fcomp.Write("");
+ }
+ }
+
+ if (rmode == (int)RenderMode.Indirect || rmode == (int)RenderMode.Shadowmask)
+ {
+ cif.fcompIndirect = new BinaryWriter(File.Open(scenePath + "/comp_indirect" + LMID + ".bin", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("comp_indirect" + LMID + ".bin");
+ if (bounces > 0)
+ {
+ cif.fcompIndirect.Write(lmname + "_final_HDR2" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ if (dominantDirMode)
+ {
+ cif.fcompDirIndirect = new BinaryWriter(File.Open(scenePath + "/dircomp_indirect" + LMID + ".bin", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("dircomp_indirect" + LMID + ".bin");
+ cif.fcompDirIndirect.Write("uvnormal_" + lmname + (compressedGBuffer ? ".lz4" : ".dds"));
+ if (bounces > 0)
+ {
+ cif.fcompDirIndirect.Write(lmname + "_final_HDR2" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompDirIndirect.Write(lmname + "_final_Dir" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ }
+ }
+ if (dominantDirMode)
+ {
+ cif.fcompDir = new BinaryWriter(File.Open(scenePath + (deferredMode ? "/dircomp_" + LMID + ".bin" : "/dircomp.bin"), FileMode.Create));
+ cif.fcompDir.Write("uvnormal_" + lmname + (compressedGBuffer ? ".lz4" : ".dds"));
+ if (clientMode) ftClient.serverFileList.Add("dircomp_" + LMID + ".bin");
+ }
+ if (rnmMode)
+ {
+ cif.fcompRNM0 = new BinaryWriter(File.Open(scenePath + (deferredMode ? "/rnm0comp_" + LMID + ".bin" : "/rnm0comp.bin"), FileMode.Create));
+ cif.fcompRNM1 = new BinaryWriter(File.Open(scenePath + (deferredMode ? "/rnm1comp_" + LMID + ".bin" : "/rnm1comp.bin"), FileMode.Create));
+ cif.fcompRNM2 = new BinaryWriter(File.Open(scenePath + (deferredMode ? "/rnm2comp_" + LMID + ".bin" : "/rnm2comp.bin"), FileMode.Create));
+
+ if (clientMode)
+ {
+ ftClient.serverFileList.Add("rnm0comp_" + LMID + ".bin");
+ ftClient.serverFileList.Add("rnm1comp_" + LMID + ".bin");
+ ftClient.serverFileList.Add("rnm2comp_" + LMID + ".bin");
+ }
+
+ if (bounces > 0)
+ {
+ cif.fcompRNM0.Write(lmname + "_final_RNM0" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompRNM1.Write(lmname + "_final_RNM1" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompRNM2.Write(lmname + "_final_RNM2" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ }
+ if (shMode)
+ {
+ cif.fcompSH = new BinaryWriter(File.Open(scenePath + (deferredMode ? "/shcomp_" + LMID + ".bin" : "/shcomp.bin"), FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("shcomp_" + LMID + ".bin");
+ if (bounces > 0)
+ {
+ cif.fcompSH.Write(lmname + "_final_RNM0" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lmname + "_final_RNM1" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lmname + "_final_RNM2" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lmname + "_final_RNM3" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ if (currentGroup.computeSSS)
+ {
+ cif.fcompSH.Write(lmname + "_SSS_RNM0" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lmname + "_SSS_RNM1" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lmname + "_SSS_RNM2" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lmname + "_SSS_RNM3" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ }
+ }
+ fcompStartPos = cif.fcomp.BaseStream.Position;
+
+ // Area lights
+ for(int i=0; i<All.Length; i++)
+ {
+ progressStepsDone++;
+
+ var obj = All[i] as BakeryLightMesh;
+ if (!obj.enabled) continue;
+ if ((obj.bitmask & currentGroup.bitmask) == 0) continue;
+
+ var lmr = ftBuildGraphics.GetValidRenderer(obj.gameObject);
+ var lma = obj.GetComponent<Light>();
+ if (lmr == null && lma == null) continue;
+
+ if (lma != null && ftLightMeshInspector.IsArea(lma))
+ {
+ lmr = null;
+ }
+ else
+ {
+ lma = null;
+ }
+
+ Bounds lBounds;
+ Vector3[] corners = null;
+ if (lma != null)
+ {
+ corners = ftLightMeshInspector.GetAreaLightCorners(lma);
+ lBounds = new Bounds(corners[0], Vector3.zero);
+ lBounds.Encapsulate(corners[1]);
+ lBounds.Encapsulate(corners[2]);
+ lBounds.Encapsulate(corners[3]);
+ }
+ else
+ {
+ var lmrState = lmr.enabled;
+ lmr.enabled = true;
+ lBounds = lmr.bounds;
+ lmr.enabled = lmrState;
+ }
+
+ lBounds.Expand(new Vector3(obj.cutoff, obj.cutoff, obj.cutoff));
+ if (!lBounds.Intersects(storage.bounds[LMID])) continue;
+
+ var lname = GetLightName(obj.gameObject, LMID);
+ if (doCompose)
+ {
+ cif.fcomp.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ if (bounces > 0)
+ {
+ cif.fcomp.Write(obj.indirectIntensity * hackIndirectBoost);
+ if (Mathf.Abs(obj.indirectIntensity - 1.0f) > 0.01f) usesIndirectIntensity = true;
+ }
+
+ if ((rmode == (int)RenderMode.Indirect || rmode == (int)RenderMode.Shadowmask)
+ && obj.bakeToIndirect)
+ {
+ cif.fcompIndirect.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ if (cif.fcompDirIndirect != null)
+ {
+ cif.fcompDirIndirect.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompDirIndirect.Write(lname + "_Dir" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ }
+ }
+
+ string renderMode;
+ int passes = PASS_HALF;
+ if (dominantDirMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ renderMode = obj.texture == null ? "arealightdir" : "texarealightdir";
+ passes |= PASS_DIRECTION;
+
+ cif.fcompDir.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompDir.Write(lname + "_Dir" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ else if (rnmMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ renderMode = obj.texture == null ? "arealightrnm" : "texarealightrnm";
+ if (bounces == 0) passes = 0;
+ passes |= PASS_RNM0 | PASS_RNM1 | PASS_RNM2;
+
+ cif.fcompRNM0.Write(lname + "_RNM0" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompRNM1.Write(lname + "_RNM1" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompRNM2.Write(lname + "_RNM2" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ else if (shMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ if (shModeProbe) {
+ renderMode = obj.texture == null ? "arealightprobesh" : "texarealightprobesh";
+ } else {
+ renderMode = obj.texture == null ? "arealightsh" : "texarealightsh";
+ }
+ if (bounces == 0) passes = 0;
+ passes |= PASS_RNM0 | PASS_RNM1 | PASS_RNM2 | PASS_RNM3;
+
+ cif.fcompSH.Write(lname + "_RNM0" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lname + "_RNM1" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lname + "_RNM2" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lname + "_RNM3" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ else
+ {
+ renderMode = obj.texture == null ? "arealight" : "texarealight";
+ }
+
+ if (!performRendering) continue;
+
+ ftBuildLights.BuildLight(obj, SampleCount(obj.samples), corners, deferredMode ? ("lights" + i + ".bin") : "lights.bin");
+
+
+ var pth = scenePath + "/" + lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds");
+ if (!IsLightDirty(obj) && File.Exists(pth)) continue;// && new FileInfo(pth).Length == 128+size*size*8) continue;
+
+ string progressText = "Rendering area light " + obj.name + " for " + lmname + "...";
+ if (!deferredMode) ProgressBarShow(progressText, (progressStepsDone / (float)progressSteps), true);
+ if (userCanceled)
+ {
+ if (doCompose)
+ {
+ cif.fcomp.Close();
+ if (cif.fcompIndirect != null) cif.fcompIndirect.Close();
+ if (cif.fcompDirIndirect != null) cif.fcompDirIndirect.Close();
+ if (cif.fcompDir != null) cif.fcompDir.Close();
+ if (cif.fcompRNM0 != null) cif.fcompRNM0.Close();
+ if (cif.fcompRNM1 != null) cif.fcompRNM1.Close();
+ if (cif.fcompRNM2 != null) cif.fcompRNM2.Close();
+ if (cif.fcompSH != null) cif.fcompSH.Close();
+ }
+ yield break;
+ }
+ yield return null;
+
+ DebugLogInfo("Preparing light " + obj.name + "...");
+
+ int errCode = 0;
+ if (exeMode)
+ {
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ /*if (userRenderMode == RenderMode.Shadowmask && obj.shadowmask)
+ {
+ passes |= PASS_MASK;
+ }*/
+ startInfo.Arguments = renderMode + " " + scenePathQuoted + " \"" + lname + "\" " + passes + " " + 0 + " " + LMID + " lights" + i + ".bin";
+
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");//scenePath + "/lights" + i + ".bin");
+ deferredFileDest.Add("");//scenePath + "/lights.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ }
+ else
+ {
+ /*Debug.Log("Running ftrace " + startInfo.Arguments);
+ exeProcess = System.Diagnostics.Process.Start(startInfo);
+ exeProcess.WaitForExit();
+ errCode = exeProcess.ExitCode;*/
+ }
+ }
+ if (errCode != 0)
+ {
+ DebugLogError("ftrace error: " + ftErrorCodes.TranslateFtrace(errCode, rtxMode));
+ userCanceled = true;
+ if (doCompose)
+ {
+ cif.fcomp.Close();
+ if (cif.fcompIndirect != null) cif.fcompIndirect.Close();
+ if (cif.fcompDirIndirect != null) cif.fcompDirIndirect.Close();
+ if (cif.fcompDir != null) cif.fcompDir.Close();
+ if (cif.fcompRNM0 != null) cif.fcompRNM0.Close();
+ if (cif.fcompRNM1 != null) cif.fcompRNM1.Close();
+ if (cif.fcompRNM2 != null) cif.fcompRNM2.Close();
+ if (cif.fcompSH != null) cif.fcompSH.Close();
+ }
+ yield break;//return false;
+ }
+
+ //StoreLight(obj);
+ }
+
+ // Point lights
+ int start = 0;
+ int end = 0;
+ int sampleCounter = 0;
+ int channel = -1;
+ bool bakeToIndirect = false;
+ float indirectIntensity = 1.0f;
+ bool[] skipLight = null;
+ int addedLights = 0;
+ if (ftAdditionalConfig.batchPointLights)
+ {
+ if (AllP.Length > 0)
+ {
+ channel = GetShadowmaskChannel(AllP[0]);
+ bakeToIndirect = AllP[0].bakeToIndirect;
+ indirectIntensity = AllP[0].indirectIntensity;
+ }
+ skipLight = new bool[AllP.Length];
+ }
+ for(int i=0; i<AllP.Length; i++)
+ {
+ progressStepsDone++;
+ if (ftAdditionalConfig.batchPointLights) skipLight[i] = true;
+
+ // Cull the light
+ var obj = AllP[i] as BakeryPointLight;
+ if (!obj.enabled) continue;
+ if ((obj.bitmask & currentGroup.bitmask) == 0) continue;
+
+ var boundsRange = obj.cutoff * 2;//obj.GetComponent<Light>().range * 2;
+ var lBounds = new Bounds(obj.transform.position, new Vector3(boundsRange, boundsRange, boundsRange));
+ if (!lBounds.Intersects(storage.bounds[LMID])) continue;
+
+ string lname = "";
+ string settingsFile = "";
+
+ // Split in batches if needed
+ bool bakeBatch = false;
+ if (ftAdditionalConfig.batchPointLights)
+ {
+ skipLight[i] = false;
+ addedLights++;
+ bool split = false;
+
+ // Split by bakeToIndirect
+ if (AllP[i].bakeToIndirect != bakeToIndirect)
+ {
+ split = true;
+ bakeToIndirect = AllP[i].bakeToIndirect;
+ }
+
+ // Split by indirectIntensity
+ if (AllP[i].indirectIntensity != indirectIntensity)
+ {
+ split = true;
+ indirectIntensity = AllP[i].indirectIntensity;
+ }
+
+ // Split by shadowmask channel
+ var objChannel = GetShadowmaskChannel(AllP[i]);
+ if (objChannel != channel)
+ {
+ split = true;
+ channel = objChannel;
+ }
+
+ // Split by count
+ int newSampleCount = sampleCounter + AllP[i].samples;
+ if (newSampleCount > maxSamplesPerPointLightBatch)
+ {
+ split = true;
+ sampleCounter = 0;
+ }
+ sampleCounter += AllP[i].samples;
+
+ if (split)
+ {
+ end = i-1;
+ lname = PrepareBatchPointLight(start, end, LMID, skipLight, cif, rmode, dominantDirMode, rnmMode, shMode, ref usesIndirectIntensity);
+ settingsFile = "batchpointlight_" + LMID + "_" + start + "_" + end + ".bin";
+ bakeBatch = true;
+ }
+ }
+ else
+ {
+ // Update shadowmask settings for LMGroup
+ lname = GetLightName(obj.gameObject, LMID);
+ UpdateLightmapShadowmaskFromPointLight(obj, LMID, lname, lmname);
+
+ // Update composing instructions
+ if (WriteCompFiles(obj, cif, lname, rmode, dominantDirMode, rnmMode, shMode)) usesIndirectIntensity = true;
+
+ settingsFile = "pointlight" + i + ".bin";
+ }
+
+ if (!performRendering) continue;
+
+ if (ftAdditionalConfig.batchPointLights)
+ {
+ if (bakeBatch)
+ {
+ // Export batch light data and textures
+ bool isError = ftBuildLights.BuildLights(AllP, start, end, skipLight, sampleDivisor, false, settingsFile); // TODO: dirty tex detection!!
+ if (isError)
+ {
+ userCanceled = true;
+ cif.Close();
+ yield break;
+ }
+
+ // Cancel
+ if (userCanceled)
+ {
+ cif.Close();
+ yield break;
+ }
+ yield return null;
+
+ // Generate batch command line
+ string renderMode = "batchpointlight";
+ string progressText = "Rendering point light batch (" + (start) + "-" + (end) + ") for " + lmname + "...";
+ AddPointLightCommandLine(renderMode, lname, settingsFile, progressText, LMID, AllP[start], rmode, dominantDirMode, rnmMode, shMode, shModeProbe);
+
+ start = i;
+ }
+ }
+ else
+ {
+ // Export light data and textures
+ bool isError = ftBuildLights.BuildLight(obj, SampleCount(obj.samples), true, false, settingsFile); // TODO: dirty tex detection!!
+ if (isError)
+ {
+ userCanceled = true;
+ cif.Close();
+ yield break;
+ }
+ if (obj.projMode != 0)
+ {
+ //yield return new WaitForEndOfFrame();
+ //yield return new WaitForSeconds(1); // ?????
+ yield return null;
+ }
+
+ // Check if "update unmodified lights" is off, and this light was modified
+ var pth = scenePath + "/" + lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds");
+ if (!IsLightDirty(obj) && File.Exists(pth)) continue;// && new FileInfo(pth).Length == 128+size*size*8) continue;
+
+ // Get ftrace rendermode
+ string renderMode = GetPointLightRenderMode(obj);
+
+ // Progressbar
+ string progressText = "Rendering point light " + obj.name + " for " + lmname + "...";
+
+ // Cancel
+ if (userCanceled)
+ {
+ cif.Close();
+ yield break;
+ }
+ yield return null;
+
+ // Generate command line
+ AddPointLightCommandLine(renderMode, lname, settingsFile, progressText, LMID, AllP[i], rmode, dominantDirMode, rnmMode, shMode, shModeProbe);
+ }
+ }
+ if (ftAdditionalConfig.batchPointLights && addedLights > 0)
+ {
+ end = AllP.Length-1;
+ string lname = PrepareBatchPointLight(start, end, LMID, skipLight, cif, rmode, dominantDirMode, rnmMode, shMode, ref usesIndirectIntensity);
+ string settingsFile = "batchpointlight_" + LMID + "_" + start + "_" + end + ".bin";
+ string renderMode = "batchpointlight";
+ string progressText = "Rendering point light batch (" + (start) + "-" + (end) + ") for " + lmname + "...";
+ bool isError = ftBuildLights.BuildLights(AllP, start, end, skipLight, sampleDivisor, false, settingsFile); // TODO: dirty tex detection!!
+ if (isError)
+ {
+ userCanceled = true;
+ cif.Close();
+ yield break;
+ }
+ AddPointLightCommandLine(renderMode, lname, settingsFile, progressText, LMID, AllP[start], rmode, dominantDirMode, rnmMode, shMode, shModeProbe);
+ }
+
+ // Skylight
+ for(int i=0; i<All2.Length; i++)
+ {
+ progressStepsDone++;
+
+ var obj = All2[i] as BakerySkyLight;
+ if (!obj.enabled) continue;
+ if ((obj.bitmask & currentGroup.bitmask) == 0) continue;
+
+
+ var lname = GetLightName(obj.gameObject, LMID);
+ if (doCompose)
+ {
+ cif.fcomp.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ if (bounces > 0)
+ {
+ cif.fcomp.Write(obj.indirectIntensity * hackIndirectBoost);
+ if (Mathf.Abs(obj.indirectIntensity - 1.0f) > 0.01f) usesIndirectIntensity = true;
+ }
+
+ if ((rmode == (int)RenderMode.Indirect || rmode == (int)RenderMode.Shadowmask)
+ && obj.bakeToIndirect)
+ {
+ cif.fcompIndirect.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ if (cif.fcompDirIndirect != null)
+ {
+ cif.fcompDirIndirect.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompDirIndirect.Write(lname + "_Dir" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ }
+
+ if (dominantDirMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ cif.fcompDir.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompDir.Write(lname + "_Dir" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ else if (rnmMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ cif.fcompRNM0.Write(lname + "_RNM0" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompRNM1.Write(lname + "_RNM1" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompRNM2.Write(lname + "_RNM2" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ else if (shMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ cif.fcompSH.Write(lname + "_RNM0" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lname + "_RNM1" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lname + "_RNM2" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lname + "_RNM3" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ }
+
+ if (!performRendering) continue;
+
+ /*
+ if (!storage.skylights.Contains(obj))
+ {
+ storage.skylights.Add(obj);
+ storage.skylightsDirty.Add(true);
+ }
+ var skylightIndex = storage.skylights.IndexOf(obj);
+ */
+ var texDirty = obj.cubemap != null;//true;//storage.skylightsDirty[skylightIndex];
+
+ ftBuildLights.BuildSkyLight(obj, SampleCount(obj.samples), texDirty, deferredMode ? "sky" + i + ".bin" : "sky.bin");
+
+ if (texDirty)
+ {
+ //yield return new WaitForEndOfFrame();
+ yield return new WaitForSeconds(1);
+ }
+
+ //storage.skylightsDirty[skylightIndex] = false;
+
+ var pth = scenePath + "/" + lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds");
+ if (!IsLightDirty(obj) && File.Exists(pth)) continue;// && new FileInfo(pth).Length == 128+size*size*8) continue;
+
+ string progressText = "Rendering sky light " + obj.name + " for " + lmname + "...";
+ if (!deferredMode) ProgressBarShow(progressText, (progressStepsDone / (float)progressSteps), true);
+ if (userCanceled)
+ {
+ if (doCompose)
+ {
+ cif.fcomp.Close();
+ if (cif.fcompIndirect != null) cif.fcompIndirect.Close();
+ if (cif.fcompDirIndirect != null) cif.fcompDirIndirect.Close();
+ if (cif.fcompDir != null) cif.fcompDir.Close();
+ if (cif.fcompRNM0 != null) cif.fcompRNM0.Close();
+ if (cif.fcompRNM1 != null) cif.fcompRNM1.Close();
+ if (cif.fcompRNM2 != null) cif.fcompRNM2.Close();
+ if (cif.fcompSH != null) cif.fcompSH.Close();
+ }
+ yield break;
+ }
+ yield return null;
+
+ var bakeDir = (dominantDirMode && (rmodeFullLight || obj.bakeToIndirect));
+ var bakeRNM = (rnmMode && (rmodeFullLight || obj.bakeToIndirect));
+ var bakeSH = (shMode && (rmodeFullLight || obj.bakeToIndirect));
+ string renderMode;
+ if (obj.cubemap != null)
+ {
+ if (bakeDir)
+ {
+ renderMode = "skycubemapdir";
+ }
+ else if (bakeRNM)
+ {
+ renderMode = "skycubemaprnm";
+ }
+ else if (bakeSH)
+ {
+ renderMode = shModeProbe ? "skycubemapprobesh" : "skycubemapsh";
+ }
+ else
+ {
+ renderMode = "skycubemap";
+ }
+ }
+ else
+ {
+ if (bakeDir)
+ {
+ renderMode = "skydir";
+ }
+ else if (bakeRNM)
+ {
+ renderMode = "skyrnm";
+ }
+ else if (bakeSH)
+ {
+ renderMode = obj.tangentSH ? "skytangentsh" : (shModeProbe ? "skyprobesh" : "skysh");
+ }
+ else
+ {
+ renderMode = "sky";
+ }
+ }
+
+ int errCode = 0;
+ if (exeMode)
+ {
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ int passes = PASS_HALF;
+ if (bakeDir) passes |= PASS_DIRECTION;
+ if ((bakeRNM || bakeSH) && bounces == 0) passes = 0;
+ if (bakeRNM) passes |= PASS_RNM0 | PASS_RNM1 | PASS_RNM2;
+ if (bakeSH) passes |= PASS_RNM0 | PASS_RNM1 | PASS_RNM2 | PASS_RNM3;
+ startInfo.Arguments = renderMode + " " + scenePathQuoted + " \"" + lname + "\" " + passes + " " + 0 + " " + LMID + " sky" + i + ".bin";
+
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");//scenePath + "/sky" + i + ".bin");
+ deferredFileDest.Add("");//scenePath + "/sky.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ }
+ else
+ {
+ /*Debug.Log("Running ftrace " + startInfo.Arguments);
+ exeProcess = System.Diagnostics.Process.Start(startInfo);
+ exeProcess.WaitForExit();
+ errCode = exeProcess.ExitCode;*/
+ }
+ }
+
+ if (errCode != 0)
+ {
+ DebugLogError("ftrace error: "+ftErrorCodes.TranslateFtrace(errCode, rtxMode));
+ userCanceled = true;
+ if (doCompose)
+ {
+ cif.fcomp.Close();
+ if (cif.fcompIndirect != null) cif.fcompIndirect.Close();
+ if (cif.fcompDirIndirect != null) cif.fcompDirIndirect.Close();
+ if (cif.fcompDir != null) cif.fcompDir.Close();
+ if (cif.fcompRNM0 != null) cif.fcompRNM0.Close();
+ if (cif.fcompRNM1 != null) cif.fcompRNM1.Close();
+ if (cif.fcompRNM2 != null) cif.fcompRNM2.Close();
+ if (cif.fcompSH != null) cif.fcompSH.Close();
+ }
+ yield break;
+ }
+ //StoreLight(obj);
+ }
+
+ // Directional light
+ for(int i=0; i<All3.Length; i++)
+ {
+ progressStepsDone++;
+
+ var obj = All3[i] as BakeryDirectLight;
+ if (!obj.enabled) continue;
+ if ((obj.bitmask & currentGroup.bitmask) == 0) continue;
+
+ var lname = GetLightName(obj.gameObject, LMID);
+ if (doCompose && userRenderMode == RenderMode.Shadowmask && obj.shadowmask)
+ {
+ var ulht = obj.GetComponent<Light>();
+ if (ulht == null)
+ {
+ DebugLogWarning("Light " + obj.name + " set to shadowmask, but doesn't have real-time light");;
+ }
+ else
+ {
+ UpdateMaskArray(currentGroup.id, lname, lmname, ulht, obj.shadowmaskDenoise);
+ }
+ }
+
+ if (doCompose)
+ {
+ var texName = lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds");
+ cif.fcomp.Write(texName);
+ if (bounces > 0)
+ {
+ cif.fcomp.Write(obj.indirectIntensity * hackIndirectBoost);
+ if (Mathf.Abs(obj.indirectIntensity - 1.0f) > 0.01f) usesIndirectIntensity = true;
+ }
+
+ if ((rmode == (int)RenderMode.Indirect || rmode == (int)RenderMode.Shadowmask)
+ && obj.bakeToIndirect)
+ {
+ cif.fcompIndirect.Write(texName);
+ if (cif.fcompDirIndirect != null)
+ {
+ cif.fcompDirIndirect.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompDirIndirect.Write(lname + "_Dir" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ }
+
+ if (dominantDirMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ cif.fcompDir.Write(lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompDir.Write(lname + "_Dir" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ else if (rnmMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ cif.fcompRNM0.Write(lname + "_RNM0" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompRNM1.Write(lname + "_RNM1" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompRNM2.Write(lname + "_RNM2" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ else if (shMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ cif.fcompSH.Write(lname + "_RNM0" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lname + "_RNM1" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lname + "_RNM2" + (compressedOutput ? ".lz4" : ".dds"));
+ cif.fcompSH.Write(lname + "_RNM3" + (compressedOutput ? ".lz4" : ".dds"));
+ }
+ }
+
+ if (!performRendering) continue;
+
+ ftBuildLights.BuildDirectLight(obj, SampleCount(obj.samples), false, deferredMode ? "direct" + i + ".bin" : "direct.bin");
+
+ if (hasAnyVolumes)
+ {
+ ftBuildLights.BuildDirectLight(obj, SampleCount(obj.samples), true, deferredMode ? "direct" + i + "_volumes.bin" : "direct.bin");
+ }
+
+ var pth = scenePath + "/" + lname + "_HDR" + (compressedOutput ? ".lz4" : ".dds");
+ if (!IsLightDirty(obj) && File.Exists(pth)) continue;// && new FileInfo(pth).Length == 128+size*size*8) continue;
+ //Debug.Log(IsLightDirty(obj)+" "+File.Exists(pth)+" "+(new FileInfo(pth).Length == 128+size*size*8));
+
+ string progressText = "Rendering direct light " + obj.name + " for " + lmname + "...";
+ if (!deferredMode) ProgressBarShow(progressText, (progressStepsDone / (float)progressSteps), true);
+ if (userCanceled)
+ {
+ if (doCompose)
+ {
+ cif.fcomp.Close();
+ if (cif.fcompIndirect != null) cif.fcompIndirect.Close();
+ if (cif.fcompDirIndirect != null) cif.fcompDirIndirect.Close();
+ if (cif.fcompDir != null) cif.fcompDir.Close();
+ if (cif.fcompRNM0 != null) cif.fcompRNM0.Close();
+ if (cif.fcompRNM1 != null) cif.fcompRNM1.Close();
+ if (cif.fcompRNM2 != null) cif.fcompRNM2.Close();
+ if (cif.fcompSH != null) cif.fcompSH.Close();
+ }
+ yield break;
+ }
+ yield return null;
+
+ int errCode = 0;
+ if (exeMode)
+ {
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+
+ int passes = PASS_HALF;
+ string rrmode = GetSunRenderMode(obj);
+ if (dominantDirMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ passes |= PASS_DIRECTION;
+ }
+ else if (rnmMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ rrmode += "rnm";
+ if (bounces == 0) passes = 0;
+ passes |= PASS_RNM0 | PASS_RNM1 | PASS_RNM2;
+ }
+ else if (shMode && (rmodeFullLight || obj.bakeToIndirect))
+ {
+ rrmode += shModeProbe ? "probesh" : "sh";
+ if (bounces == 0) passes = 0;
+ passes |= PASS_RNM0 | PASS_RNM1 | PASS_RNM2 | PASS_RNM3;
+ }
+ if (userRenderMode == RenderMode.Shadowmask && obj.shadowmask)
+ {
+ passes |= PASS_MASK;
+ if (currentGroup.transparentSelfShadow) passes |= PASS_MASK1;
+ }
+
+ startInfo.Arguments = rrmode + " " + scenePathQuoted + " \"" + lname + "\" " + passes + " " + 0 + " " + LMID +
+ " direct" + i + ((currentGroup.probes && currentGroup.name == "volumes") ? "_volumes" : "") + ".bin";
+
+ deferredFileSrc.Add("");//scenePath + "/direct" + i + ".bin");
+ deferredFileDest.Add("");//scenePath + "/direct.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ }
+
+ if (errCode != 0)
+ {
+ DebugLogError("ftrace error: "+ftErrorCodes.TranslateFtrace(errCode, rtxMode));
+ userCanceled = true;
+ if (doCompose)
+ {
+ cif.fcomp.Close();
+ if (cif.fcompIndirect != null) cif.fcompIndirect.Close();
+ if (cif.fcompDirIndirect != null) cif.fcompDirIndirect.Close();
+ if (cif.fcompDir != null) cif.fcompDir.Close();
+ if (cif.fcompRNM0 != null) cif.fcompRNM0.Close();
+ if (cif.fcompRNM1 != null) cif.fcompRNM1.Close();
+ if (cif.fcompRNM2 != null) cif.fcompRNM2.Close();
+ if (cif.fcompSH != null) cif.fcompSH.Close();
+ }
+ yield break;//return false;
+ }
+ //StoreLight(obj);
+ }
+
+ lmnameComposed[lmname] = true;
+
+ if (dominantDirMode && cif.fcompDir.BaseStream.Position > 0)
+ {
+ lightmapHasDir[LMID] = true;
+ }
+
+ if (rnmMode && cif.fcompRNM0.BaseStream.Position > 0)
+ {
+ lightmapHasRNM[LMID] = true;
+ }
+
+ if (shMode && cif.fcompSH.BaseStream.Position > 0)
+ {
+ lightmapHasRNM[LMID] = true;
+ }
+
+ if (cif.fcomp.BaseStream.Position == fcompStartPos)
+ {
+ cif.fcomp.Write(lmname + "_lights_HDR.dds");
+
+ /*cif.fcomp.Close();
+ if (cif.fcompIndirect != null) cif.fcompIndirect.Close();*/
+ DebugLogInfo("No lights for " + lmname);
+
+ var fpos = new BinaryWriter(File.Open(scenePath + "/" + lmname + "_lights_HDR.dds", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add(lmname + "_lights_HDR.dds");
+ //var fpos = new BinaryWriter(File.Open(scenePath + "/" + lmname + "_diffuse_HDR" + (compressedOutput ? ".lz4" : ".dds"), FileMode.Create));
+ fpos.Write(ftDDS.ddsHeaderHalf4);
+
+ int atlasTexSize = resolution;
+ if (currentGroup.mode == BakeryLightmapGroup.ftLMGroupMode.Vertex)
+ {
+ atlasTexSize = (int)Mathf.Ceil(Mathf.Sqrt((float)currentGroup.totalVertexCount));
+ atlasTexSize = (int)Mathf.Ceil(atlasTexSize / (float)ftRenderLightmap.tileSize) * ftRenderLightmap.tileSize;
+ }
+
+ var halfs = new ushort[atlasTexSize*atlasTexSize*4];
+ for(int f=0; f<atlasTexSize*atlasTexSize*4; f+=4)
+ {
+ halfs[f+3] = 15360; // 1.0f in halffloat
+ }
+ var posbytes = new byte[atlasTexSize * atlasTexSize * 8];
+ System.Buffer.BlockCopy(halfs, 0, posbytes, 0, posbytes.Length);
+ fpos.Write(posbytes);
+ fpos.BaseStream.Seek(12, SeekOrigin.Begin);
+ fpos.Write(atlasTexSize);
+ fpos.Write(atlasTexSize);
+ fpos.Close();
+
+ //yield break;
+ }
+ else if (usesIndirectIntensity)
+ {
+ cif.fcomp.Seek(0, SeekOrigin.Begin);
+ cif.fcomp.Write(true);
+ }
+
+ if (rmode == (int)RenderMode.Shadowmask && cif.fcompIndirect.BaseStream.Position == 0)
+ {
+ lightmapHasColor[LMID] = false;
+ }
+
+ if (!doCompose)
+ {
+ progressStepsDone++;
+ yield break;
+ }
+
+ progressStepsDone++;
+ string progressText2 = "Compositing lighting for " + lmname + "...";
+ if (!deferredMode) ProgressBarShow(progressText2 , (progressStepsDone / (float)progressSteps), true);
+ if (userCanceled)
+ {
+ cif.fcomp.Close();
+ if (cif.fcompIndirect != null) cif.fcompIndirect.Close();
+ if (cif.fcompDirIndirect != null) cif.fcompDirIndirect.Close();
+ if (cif.fcompDir != null) cif.fcompDir.Close();
+ if (cif.fcompRNM0 != null) cif.fcompRNM0.Close();
+ if (cif.fcompRNM1 != null) cif.fcompRNM1.Close();
+ if (cif.fcompRNM2 != null) cif.fcompRNM2.Close();
+ if (cif.fcompSH != null) cif.fcompSH.Close();
+ yield break;
+ }
+ yield return null;
+
+ // Compose
+ cif.fcomp.Close();
+ if (cif.fcompIndirect != null) cif.fcompIndirect.Close();
+ if (cif.fcompDirIndirect != null) cif.fcompDirIndirect.Close();
+ if (cif.fcompDir != null) cif.fcompDir.Close();
+ if (cif.fcompRNM0 != null) cif.fcompRNM0.Close();
+ if (cif.fcompRNM1 != null) cif.fcompRNM1.Close();
+ if (cif.fcompRNM2 != null) cif.fcompRNM2.Close();
+ if (cif.fcompSH != null) cif.fcompSH.Close();
+ if (!performRendering) yield break;
+ DebugLogInfo("Compositing...");
+
+ int errCode2 = 0;
+ if (exeMode)
+ {
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+
+ bool shouldAddLights = !(bounces == 0 && (shMode || rnmMode));
+
+ if (shouldAddLights)
+ {
+ if (bounces == 0)
+ {
+ startInfo.Arguments = "add " + scenePathQuoted + " \"" + lmname + "_final_HDR" + (compressedOutput ? ".lz4" : ".dds")
+ + "\" " + PASS_HALF + " " + 0 + " " + LMID + " comp_" + LMID + ".bin";
+ }
+ else
+ {
+ startInfo.Arguments = "addmul " + scenePathQuoted + " \"" + lmname + "\" " + PASS_HALF + " " + 0 + " " + LMID + " comp_" + LMID + ".bin";;
+ }
+
+ deferredFileSrc.Add("");//scenePath + "/comp_" + LMID + ".bin");
+ deferredFileDest.Add("");//scenePath + "/comp.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText2);
+ }
+
+ if (dominantDirMode)// && rmode == (int)RenderMode.FullLighting)
+ {
+ progressText2 = "Compositing direction for " + lmname + "...";
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+
+ startInfo.Arguments = "diradd " + scenePathQuoted + " \"" + lmname + (bounces > 0 ? "_lights_Dir" : "_final_Dir") + (compressedOutput ? ".lz4" : ".dds")
+ + "\" " + PASS_DIRECTION + " " + 0 + " " + LMID + " dircomp_" + LMID + ".bin";
+
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");//scenePath + "/dircomp_" + LMID + ".bin");
+ deferredFileDest.Add("");//scenePath + "/dircomp.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText2);
+ }
+ else
+ {
+ Debug.LogError("Not supported");
+ }
+ }
+ }
+
+ if (errCode2 != 0)
+ {
+ DebugLogError("ftrace error: "+ftErrorCodes.TranslateFtrace(errCode2, rtxMode));
+ userCanceled = true;
+ yield break;
+ }
+ }
+
+ bool RenderLMAO(int LMID, string lmname)
+ {
+ string progressText = "Rendering AO for " + lmname + "...";
+ if (!deferredMode) ProgressBarShow(progressText, (progressStepsDone / (float)progressSteps), true);
+
+ var rmode = currentGroup.renderMode == BakeryLightmapGroup.RenderMode.Auto ? (int)userRenderMode : (int)currentGroup.renderMode;
+
+ int passes = rmode == (int)RenderMode.AmbientOcclusionOnly ? PASS_HALF : PASS_MASK;
+
+ // There is no realistic weight for AO to mix with other light directions
+ var dirMode = currentGroup.renderDirMode == BakeryLightmapGroup.RenderDirMode.Auto ? (int)renderDirMode : (int)currentGroup.renderDirMode;
+ var dominantDirMode = dirMode == (int)ftRenderLightmap.RenderDirMode.DominantDirection;
+ if (dominantDirMode && rmode == (int)RenderMode.AmbientOcclusionOnly) passes |= PASS_DIRECTION;
+
+ var fao = new BinaryWriter(File.Open(scenePath + "/ao.bin", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("ao.bin");
+ fao.Write(SampleCount(hackAOSamples));
+ fao.Write(hackAORadius);
+ fao.Write(rmode == (int)RenderMode.AmbientOcclusionOnly ? hackAOIntensity : 1.0f);
+ fao.Close();
+
+ System.Diagnostics.ProcessStartInfo startInfo;
+ //System.Diagnostics.Process exeProcess;
+
+ int errCode = 0;
+ if (exeMode)
+ {
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ string renderMode;
+ if (dominantDirMode && rmode == (int)RenderMode.AmbientOcclusionOnly)
+ {
+ renderMode = "aodir";
+ }
+ else
+ {
+ renderMode = "ao";//currentGroup.aoIsThickness ? "thickness" : "ao";
+ }
+
+ if (rmode == (int)RenderMode.AmbientOcclusionOnly)
+ {
+ startInfo.Arguments = renderMode + " " + scenePathQuoted + " \"" + lmname + "_final" + "\" " + passes + " " + 16 + " " + LMID;
+ }
+ else
+ {
+ startInfo.Arguments = renderMode + " " + scenePathQuoted + " \"" + lmname + "_ao" + "\" " + passes + " " + 16 + " " + LMID;
+ }
+
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ }
+
+ if (errCode != 0)
+ {
+ DebugLogError("ftrace error: "+ftErrorCodes.TranslateFtrace(errCode, rtxMode));
+ userCanceled = true;
+ return false;
+ }
+ return true;
+ }
+
+ void RenderLMSSS(BakeryLightmapGroup lmgroup, bool lastPass)
+ {
+ int LMID = lmgroup.id;
+
+ //var rmode = lmgroup.renderMode == BakeryLightmapGroup.RenderMode.Auto ? (int)userRenderMode : (int)lmgroup.renderMode;
+
+ var dirMode = lmgroup.renderDirMode == BakeryLightmapGroup.RenderDirMode.Auto ? (int)renderDirMode : (int)lmgroup.renderDirMode;
+ //var dominantDirMode = dirMode == (int)ftRenderLightmap.RenderDirMode.DominantDirection && lightmapHasDir[lmgroup.id];
+ var rnmMode = dirMode == (int)ftRenderLightmap.RenderDirMode.RNM && lightmapHasRNM[LMID];
+ var shMode = dirMode == (int)ftRenderLightmap.RenderDirMode.SH && lightmapHasRNM[LMID];
+
+ int passes = PASS_HALF;
+ //if (dominantDirMode && lastPass) passes |= PASS_DIRECTION;
+ if (rnmMode && lastPass) passes |= PASS_RNM0 | PASS_RNM1 | PASS_RNM2;
+ if (shMode && lastPass) passes |= PASS_RNM0 | PASS_RNM1 | PASS_RNM2 | PASS_RNM3;
+
+ var remode = "sss";
+ /*if (dominantDirMode)
+ {
+ rmode = "sss";
+ }
+ else if (rnmMode)
+ {
+ rmode = "sssrnm";
+ }
+ else*/ if (shMode && lastPass)
+ {
+ remode = "ssssh";
+ }
+
+ var fsss = new BinaryWriter(File.Open(scenePath + "/sss" + LMID + ".bin", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("sss.bin");
+ fsss.Write(SampleCount(lmgroup.sssSamples));
+ fsss.Write(lmgroup.sssDensity);
+ fsss.Write(Mathf.Pow(lmgroup.sssColor.r,2.2f) * lmgroup.sssScale);
+ fsss.Write(Mathf.Pow(lmgroup.sssColor.g,2.2f) * lmgroup.sssScale);
+ fsss.Write(Mathf.Pow(lmgroup.sssColor.b,2.2f) * lmgroup.sssScale);
+ fsss.Close();
+
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = remode + " " + scenePathQuoted + " \"" + lmgroup.name + (lastPass ? "_SSS" : "_diffuse")
+ + "\"" + " " + passes + " " + 0 + " " + lmgroup.id
+ + " sss" + LMID + ".bin"
+ + " \"" + lmgroup.name + "_diffuse_HDR" + (compressedOutput ? ".lz4" : ".dds") + "\""; // full lighting passed as direct
+
+ deferredFileSrc.Add("");//scenePath + "/sss" + LMID + ".bin");
+ deferredFileDest.Add("");//scenePath + "/sss.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add("Computing subsurface scattering for " + lmgroup.name + "...");
+ }
+
+ bool RenderLMGI(int LMID, string lmname, int i, bool needsGIPass, bool lastPass)
+ {
+ string progressText = "Rendering GI bounce " + i + " for " + lmname + "...";
+ if (!deferredMode) ProgressBarShow(progressText, (progressStepsDone / (float)progressSteps), true);
+
+ var dirMode = currentGroup.renderDirMode == BakeryLightmapGroup.RenderDirMode.Auto ? (int)renderDirMode : (int)currentGroup.renderDirMode;
+ var dominantDirMode = dirMode == (int)ftRenderLightmap.RenderDirMode.DominantDirection && lightmapHasDir[LMID];
+ var rnmMode = dirMode == (int)ftRenderLightmap.RenderDirMode.RNM && lightmapHasRNM[LMID];
+ var shMode = dirMode == (int)ftRenderLightmap.RenderDirMode.SH && lightmapHasRNM[LMID];
+ var shModeProbe = dirMode == (int)BakeryLightmapGroup.RenderDirMode.ProbeSH && lightmapHasRNM[LMID];
+ if (shModeProbe) shMode = true;
+
+ // Needs both HALF and SECONDARY_HALF because of multiple lightmaps reading each other's lighting
+ int passes = needsGIPass ? (PASS_HALF|PASS_SECONDARY_HALF) : PASS_HALF;
+
+ if (dominantDirMode && lastPass) passes |= PASS_DIRECTION;
+ if (rnmMode && lastPass) passes |= PASS_RNM0 | PASS_RNM1 | PASS_RNM2;
+ if (shMode && lastPass) passes |= PASS_RNM0 | PASS_RNM1 | PASS_RNM2 | PASS_RNM3;
+
+ System.Diagnostics.ProcessStartInfo startInfo;
+ //System.Diagnostics.Process exeProcess;
+
+ int errCode = 0;
+ if (exeMode)
+ {
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ string rmode = "texgi";
+ if (dominantDirMode && lastPass)
+ {
+ rmode = "texgidir";
+ }
+ else if (rnmMode && lastPass)
+ {
+ rmode = "texgirnm";
+ }
+ else if (shMode && lastPass)
+ {
+ rmode = shModeProbe ? "texgiprobesh" : "texgish";
+ }
+ startInfo.Arguments = rmode + " " + scenePathQuoted + " \"" + lmname + (i==bounces-1 ? "_final" : "_diffuse") + "\" " + passes + " " + 16 + " " + LMID;
+ startInfo.Arguments += " \"gi_" + lmname + i + ".bin\"";
+ if (i == bounces-1)
+ {
+ // add direct lighting on top of GI
+ startInfo.Arguments += " \"" + lmname + "_lights_HDR" + (compressedOutput ? ".lz4" : ".dds") + "\""; // direct lighting
+ }
+ else
+ {
+ // add direct*albedo+emissive on top of GI
+ startInfo.Arguments += " \"" + lmname + "_diffuse0_HDR" + (compressedOutput ? ".lz4" : ".dds") + "\""; // direct lighting
+ }
+
+ if (giLodModeEnabled)
+ {
+ startInfo.Arguments += " vbTraceTex" + LMID + ".bin";
+ }
+ else
+ {
+ startInfo.Arguments += " vbTraceTex.bin";
+ }
+
+ deferredFileSrc.Add("");//scenePath + "/gi_" + lmname + i + ".bin");
+ deferredFileDest.Add("");//scenePath + "/gi.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ }
+
+ if (errCode != 0)
+ {
+ DebugLogError("ftrace error: "+ftErrorCodes.TranslateFtrace(errCode, rtxMode));
+ userCanceled = true;
+ return false;
+ }
+ return true;
+ }
+
+ void UpdateMaskArray(int LMID, string lname, string lmname, Light ulht, bool denoise)
+ {
+#if UNITY_2017_3_OR_NEWER
+ var maskChannel = ulht.bakingOutput.occlusionMaskChannel;
+#else
+ var so = new SerializedObject(ulht);
+ var maskChannel = so.FindProperty("m_BakingOutput").FindPropertyRelative("occlusionMaskChannel").intValue;
+#endif
+ if (maskChannel >=0 && maskChannel <= 3)
+ {
+ var maskArray = lightmapMasks[LMID];
+ var maskArrayLMNames = lightmapMaskLMNames[LMID];
+ var maskArrayLights = lightmapMaskLights[LMID];
+ var maskArrayDenoise = lightmapMaskDenoise[LMID];
+ while(maskArray.Count < maskChannel + 1)
+ {
+ maskArray.Add(new List<string>());
+ maskArrayLMNames.Add(new List<string>());
+ maskArrayLights.Add(new List<Light>());
+ maskArrayDenoise.Add(new List<bool>());
+ }
+ maskArray[maskChannel].Add(lname + "_Mask" + (compressedOutput ? ".lz4" : ".dds"));
+ maskArrayLMNames[maskChannel].Add(lmname);
+ maskArrayLights[maskChannel].Add(ulht);
+ maskArrayDenoise[maskChannel].Add(denoise);
+ lightmapHasMask[LMID] = true;
+ }
+ }
+
+ bool SetupLightShadowmask(Light light, int channel)
+ {
+ bool success = true;
+ if (channel > 3)
+ {
+ success = false;
+ DebugLogWarning("Light " + light.name + " can't generate shadow mask (out of channels).");
+ overlappingLights.Add(light.gameObject);
+ }
+
+ int occlusionMaskChannel = channel > 3 ? -1 : channel;
+
+#if UNITY_2017_3_OR_NEWER
+ var output = new LightBakingOutput();
+ output.isBaked = true;
+ output.lightmapBakeType = LightmapBakeType.Mixed;
+ output.mixedLightingMode = userRenderMode == RenderMode.Shadowmask ? MixedLightingMode.Shadowmask : MixedLightingMode.Subtractive;
+ output.occlusionMaskChannel = occlusionMaskChannel;
+ output.probeOcclusionLightIndex = light.bakingOutput.probeOcclusionLightIndex;
+ light.bakingOutput = output;
+#else
+ light.alreadyLightmapped = true;
+ light.lightmapBakeType = LightmapBakeType.Mixed;
+ var so = new SerializedObject(light);
+ var sp = so.FindProperty("m_BakingOutput");
+ sp.FindPropertyRelative("occlusionMaskChannel").intValue = occlusionMaskChannel;
+ //sp.FindPropertyRelative("probeOcclusionLightIndex").intValue = -1;
+ sp.FindPropertyRelative("lightmappingMask").intValue = -1;
+ so.ApplyModifiedProperties();
+
+ if (!maskedLights.Contains(light)) maskedLights.Add(light);
+
+#endif
+
+ var st = storages[light.gameObject.scene];
+ if (!st.bakedLights.Contains(light))
+ {
+ st.bakedLights.Add(light);
+ st.bakedLightChannels.Add(occlusionMaskChannel);
+ }
+
+ return success;
+ }
+
+ void PrepareAssetImporting()
+ {
+ var outputPathCompat = outputPathFull.Replace("\\", "/");
+
+ // Prepare asset importing: set AssetPostprocessor settings
+ ftTextureProcessor.texSettings = new Dictionary<string, Vector2>();
+ foreach(var lmgroup in groupListGIContributingPlain)
+ {
+ if (lmgroup.vertexBake) continue;
+ var nm = lmgroup.name;
+
+ int colorSize = lmgroup.resolution / (1 << (int)((1.0f - ftBuildGraphics.mainLightmapScale) * 6));
+ int maskSize = lmgroup.resolution / (1 << (int)((1.0f - ftBuildGraphics.maskLightmapScale) * 6));
+ int dirSize = lmgroup.resolution / (1 << (int)((1.0f - ftBuildGraphics.dirLightmapScale) * 6));
+
+ var dirMode = lmgroup.renderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto ? (int)renderDirMode : (int)lmgroup.renderDirMode;
+ var dominantDirMode = dirMode == (int)ftRenderLightmap.RenderDirMode.DominantDirection && lightmapHasDir[lmgroup.id];
+ var rnmMode = dirMode == (int)ftRenderLightmap.RenderDirMode.RNM && lightmapHasRNM[lmgroup.id];
+ var shMode = dirMode == (int)ftRenderLightmap.RenderDirMode.SH && lightmapHasRNM[lmgroup.id];
+ var shModeProbe = dirMode == (int)BakeryLightmapGroup.RenderDirMode.ProbeSH && lightmapHasRNM[lmgroup.id];
+ if (shModeProbe) shMode = true;
+
+ //if (!bc6h)
+ {
+ //if (File.Exists(folder + "../Assets/" + nm + "_final.hdr"))
+ {
+ //var outfile = "Assets/"+nm+"_final_RGBM.dds";
+ //Texture2D lm = null;
+ var outfile = "Assets/" + outputPathCompat + "/"+nm+"_final.hdr";
+ if (rnmMode) outfile = "Assets/" + outputPathCompat + "/"+nm+"_RNM0.hdr";
+ var desiredTextureType = encodeMode == 0 ? ftTextureProcessor.TEX_LM : ftTextureProcessor.TEX_LMDEFAULT;
+ if (lightmapHasColor[lmgroup.id])// && File.Exists(outfile))
+ {
+ ftTextureProcessor.texSettings[outfile] = new Vector2(colorSize, desiredTextureType);
+ }
+
+ //Texture2D mask = null;
+ //if (userRenderMode == RenderMode.Shadowmask && lightmapMasks[lmgroup.id].Count > 0)
+ if (lightmapHasMask[lmgroup.id])
+ {
+ outfile = "Assets/" + outputPathCompat + "/"+nm+"_mask" + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? ".png" : ".tga");
+ desiredTextureType = ftTextureProcessor.TEX_MASK;// TextureImporterType.Default;
+ ftTextureProcessor.texSettings[outfile] = new Vector2(maskSize, desiredTextureType);
+ }
+
+ //Texture2D dirLightmap = null;
+ if (dominantDirMode)
+ {
+ outfile = "Assets/" + outputPathCompat + "/"+nm+"_dir" + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? ".png" : ".tga");
+ desiredTextureType = ftTextureProcessor.TEX_DIR;// TextureImporterType.Default;
+ ftTextureProcessor.texSettings[outfile] = new Vector2(dirSize, desiredTextureType);
+ }
+
+ //Texture2D rnmLightmap0 = null;
+ //Texture2D rnmLightmap1 = null;
+ //Texture2D rnmLightmap2 = null;
+ if (rnmMode)
+ {
+ desiredTextureType = encodeMode == 0 ? ftTextureProcessor.TEX_LM : ftTextureProcessor.TEX_LMDEFAULT;
+ //TextureImporterType.Lightmap : TextureImporterType.Default;
+ for(int c=0; c<3; c++)
+ {
+ outfile = "Assets/" + outputPathCompat + "/"+nm+"_RNM" + c + ".hdr";
+ ftTextureProcessor.texSettings[outfile] = new Vector2(dirSize, desiredTextureType);
+ }
+ }
+
+ if (shMode)
+ {
+ outfile = "Assets/" + outputPathCompat + "/"+nm+"_L0.hdr";
+ desiredTextureType = encodeMode == 0 ? ftTextureProcessor.TEX_LM : ftTextureProcessor.TEX_LMDEFAULT;
+ ftTextureProcessor.texSettings[outfile] = new Vector2(colorSize, desiredTextureType);
+
+ desiredTextureType = ftTextureProcessor.TEX_DIR;// TextureImporterType.Default;
+ for(int c=0; c<3; c++)
+ {
+ string comp;
+ if (c==0)
+ {
+ comp = "x";
+ }
+ else if (c==1)
+ {
+ comp = "y";
+ }
+ else
+ {
+ comp = "z";
+ }
+ outfile = "Assets/" + outputPathCompat + "/"+nm+"_L1" + comp + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? ".png" : ".tga");
+ ftTextureProcessor.texSettings[outfile] = new Vector2(dirSize, desiredTextureType);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ IEnumerator RenderLMAddBuckets(int LMID, string lmname, int resolution, bool vertexBake, int lmgroupRenderDirMode, int lmgroupRenderMode)
+ {
+ var dirMode = lmgroupRenderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto ? (int)renderDirMode : (int)lmgroupRenderDirMode;
+ var dominantDirMode = dirMode == (int)ftRenderLightmap.RenderDirMode.DominantDirection;
+ var rnmMode = dirMode == (int)ftRenderLightmap.RenderDirMode.RNM && lightmapHasRNM[LMID];
+ var shMode = dirMode == (int)ftRenderLightmap.RenderDirMode.SH && lightmapHasRNM[LMID];
+ var shModeProbe = dirMode == (int)BakeryLightmapGroup.RenderDirMode.ProbeSH && lightmapHasRNM[LMID];
+ if (shModeProbe) shMode = true;
+ var shadowmask = (userRenderMode == RenderMode.Shadowmask);
+
+ if (rnmMode)
+ {
+ for(int c=0; c<3; c++)
+ {
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ #if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+ #endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "postadd " + scenePathQuoted + " \"" + lmname + "_final_RNM" + c + (compressedOutput ? ".lz4" : ".dds")
+ + "\"" + " " + PASS_HALF + " " + 0 + " " + LMID + " comp_addbuckets" + c + "_" + LMID + ".bin";
+
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add("Compositing lightmaps for " + lmname + "...");
+
+ var fcomp = new BinaryWriter(File.Open(scenePath + "/comp_addbuckets" + c + "_" + LMID + ".bin", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("comp_addbuckets" + c + "_" + LMID + ".bin");
+ fcomp.Write(lmname + "_final_RNM" + c + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write("uvnormal_" + lmname + (compressedGBuffer ? ".lz4" : ".dds"));
+ foreach(var lmgroup in groupListPlain)
+ {
+ if (lmgroup.parentName != lmname) continue;
+ fcomp.Write(lmgroup.name + "_final_RNM" + c + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write("uvnormal_" + lmgroup.name + (compressedGBuffer ? ".lz4" : ".dds"));
+ }
+ fcomp.Close();
+ }
+ }
+ else if (shMode)
+ {
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ #if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+ #endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "postadd " + scenePathQuoted + " \"" + lmname + "_final_L0" + (compressedOutput ? ".lz4" : ".dds")
+ + "\"" + " " + PASS_HALF + " " + 0 + " " + LMID + " comp_addbucketsL0_" + LMID + ".bin";
+
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add("Compositing lightmaps for " + lmname + "...");
+
+ var fcomp = new BinaryWriter(File.Open(scenePath + "/comp_addbucketsL0_" + LMID + ".bin", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("comp_addbucketsL0_" + LMID + ".bin");
+ fcomp.Write(lmname + "_final_L0" + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write("uvnormal_" + lmname + (compressedGBuffer ? ".lz4" : ".dds"));
+ foreach(var lmgroup in groupListPlain)
+ {
+ if (lmgroup.parentName != lmname) continue;
+ fcomp.Write(lmgroup.name + "_final_L0" + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write("uvnormal_" + lmgroup.name + (compressedGBuffer ? ".lz4" : ".dds"));
+ }
+ fcomp.Close();
+
+ for(int c=0; c<3; c++)
+ {
+ string cname;
+ switch(c)
+ {
+ case 0:
+ cname = "L1x";
+ break;
+ case 1:
+ cname = "L1y";
+ break;
+ default:
+ cname = "L1z";
+ break;
+ }
+
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ #if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+ #endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "postdiradd " + scenePathQuoted + " \"" + lmname + "_final_" + cname + (compressedOutput ? ".lz4" : ".dds")
+ + "\"" + " " + PASS_DIRECTION + " " + 0 + " " + LMID + " dircomp_addbuckets" + c + "_" + LMID + ".bin";
+
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add("Compositing directions for " + lmname + "...");
+
+ fcomp = new BinaryWriter(File.Open(scenePath + "/dircomp_addbuckets" + c + "_" + LMID + ".bin", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("dircomp_addbuckets" + c + "_" + LMID + ".bin");
+ fcomp.Write(lmname + "_final_" + cname + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write("uvnormal_" + lmname + (compressedGBuffer ? ".lz4" : ".dds"));
+ foreach(var lmgroup in groupListPlain)
+ {
+ if (lmgroup.parentName != lmname) continue;
+ fcomp.Write(lmgroup.name + "_final_" + cname + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write("uvnormal_" + lmgroup.name + (compressedGBuffer ? ".lz4" : ".dds"));
+ }
+ fcomp.Close();
+ }
+ }
+ else
+ {
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ #if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+ #endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "postadd " + scenePathQuoted + " \"" + lmname + "_final_HDR" + (compressedOutput ? ".lz4" : ".dds")
+ + "\"" + " " + PASS_HALF + " " + 0 + " " + LMID + " comp_addbuckets" + LMID + ".bin";
+
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add("Compositing lightmaps for " + lmname + "...");
+
+ var fcomp = new BinaryWriter(File.Open(scenePath + "/comp_addbuckets" + LMID + ".bin", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("comp_addbuckets" + LMID + ".bin");
+ fcomp.Write(lmname + "_final_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write("uvnormal_" + lmname + (compressedGBuffer ? ".lz4" : ".dds"));
+ foreach(var lmgroup in groupListPlain)
+ {
+ //Debug.LogError("Cur: "+lmname+", "+LMID+", this parent: " + lmgroup.name+", "+lmgroup.parentID);
+ //if (lmgroup.parentID != LMID) continue;
+ if (lmgroup.parentName != lmname) continue;
+ fcomp.Write(lmgroup.name + "_final_HDR" + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write("uvnormal_" + lmgroup.name + (compressedGBuffer ? ".lz4" : ".dds"));
+ }
+ fcomp.Close();
+ }
+
+ if (dominantDirMode)
+ {
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "postdiradd " + scenePathQuoted + " \"" + lmname + "_final_Dir" + (compressedOutput ? ".lz4" : ".dds")
+ + "\"" + " " + PASS_DIRECTION + " " + 0 + " " + LMID + " dircomp_addbuckets" + LMID + ".bin";
+
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add("Compositing directions for " + lmname + "...");
+
+ var fcomp = new BinaryWriter(File.Open(scenePath + "/dircomp_addbuckets" + LMID + ".bin", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("dircomp_addbuckets" + LMID + ".bin");
+ fcomp.Write(lmname + "_final_Dir" + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write("uvnormal_" + lmname + (compressedGBuffer ? ".lz4" : ".dds"));
+ foreach(var lmgroup in groupListPlain)
+ {
+ if (lmgroup.parentName != lmname) continue;
+ fcomp.Write(lmgroup.name + "_final_Dir" + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write("uvnormal_" + lmgroup.name + (compressedGBuffer ? ".lz4" : ".dds"));
+ }
+ fcomp.Close();
+ }
+
+ if (shadowmask)
+ {
+ var maskNames = lightmapMasks[LMID];
+ var maskLights = lightmapMaskLights[LMID];
+ if (maskNames != null)
+ {
+ for(int c=0; c<maskNames.Count; c++)
+ {
+ var maskNamesOnChannel = maskNames[c];
+ var maskLightsOnChannel = maskLights[c];
+
+ for(int i=0; i<maskNamesOnChannel.Count; i++)
+ {
+ var uid = LMID + "_" + c + "_" + i;
+
+ var startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ #if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+ #endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "postmaskadd " + scenePathQuoted + " \"" + maskNamesOnChannel[i]
+ + "\"" + " " + PASS_MASK + " " + 0 + " " + LMID + " maskcomp_addbuckets" + uid + ".bin";
+
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add("Compositing masks for " + lmname + "...");
+
+ var fcomp = new BinaryWriter(File.Open(scenePath + "/maskcomp_addbuckets" + uid + ".bin", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("maskcomp_addbuckets" + uid + ".bin");
+ fcomp.Write(maskNamesOnChannel[i]);
+ fcomp.Write("uvnormal_" + lmname + (compressedGBuffer ? ".lz4" : ".dds"));
+ foreach(var lmgroup2 in groupListPlain)
+ {
+ if (lmgroup2.parentName != lmname) continue;
+
+ var maskNames2 = lightmapMasks[lmgroup2.id];
+ var maskLMNames2 = lightmapMaskLMNames[lmgroup2.id];
+ var maskLights2 = lightmapMaskLights[lmgroup2.id];
+ int channels2 = maskNames2.Count;
+ if (channels2 <= c) continue;
+
+ var names2 = maskNames2[c];
+ var lmnames2 = maskLMNames2[c];
+ var lights2 = maskLights2[c];
+ for(int k=0; k<names2.Count; k++)
+ {
+ if (lights2[k] != maskLightsOnChannel[i]) continue;
+ fcomp.Write(names2[k]);
+ fcomp.Write("uvnormal_" + lmnames2[k] + (compressedGBuffer ? ".lz4" : ".dds"));
+ }
+ }
+ fcomp.Close();
+ }
+ }
+ }
+ }
+
+ yield break;
+ }
+
+ string GetDenoiseMode()
+ {
+ string denoiseMod;
+ switch(denoiserType)
+ {
+ case ftGlobalStorage.DenoiserType.OpenImageDenoise:
+ denoiseMod = "OIDN";
+ break;
+ case ftGlobalStorage.DenoiserType.Optix5:
+ denoiseMod = "Legacy";
+ break;
+ case ftGlobalStorage.DenoiserType.Optix7:
+ denoiseMod = "72";
+ break;
+ default:
+ denoiseMod = "";
+ break;
+ }
+ return denoiseMod;
+ }
+
+ IEnumerator RenderLMCombineMasks(int LMID, string lmname, int resolution, bool vertexBake, int lmgroupRenderMode, BakeryLightmapGroupPlain lmgroup)
+ {
+ System.Diagnostics.ProcessStartInfo startInfo;
+ string progressText;
+
+ //var rmode = lmgroupRenderMode == (int)BakeryLightmapGroup.RenderMode.Auto ? (int)userRenderMode : (int)lmgroupRenderMode;
+ var denoiseMod = GetDenoiseMode();
+
+ // Combine shadow masks
+ if (userRenderMode == RenderMode.Shadowmask)
+ {
+ var maskNames = lightmapMasks[LMID];
+ var maskLights = lightmapMaskLights[LMID];
+ var maskDenoise = lightmapMaskDenoise[LMID];
+
+ bool process = true;
+ if (ftBuildGraphics.postPacking)
+ {
+ if (lmgroup.parentName != null && lmgroup.parentName.Length > 0 && lmgroup.parentName != "|")
+ {
+ process = false;
+ }
+ /*else if (lmgroup.parentName == "|")
+ {
+ foreach(var lmgroup2 in groupListPlain)
+ {
+ if (lmgroup2.parentName == lmgroup.name)
+ {
+ var maskNames2 = lightmapMasks[lmgroup2.id];
+ var maskLights2 = lightmapMaskLights[lmgroup2.id];
+ var maskDenoise2 = lightmapMaskDenoise[lmgroup2.id];
+ int channels2 = maskNames2.Count;
+ for(int j=0; j<channels2; j++)
+ {
+ var names2 = maskNames2[j];
+ var lights2 = maskLights2[j];
+ var denoise2 = maskDenoise2[j];
+ for(int k=0; k<names2.Count; k++)
+ {
+ maskNames[j].Add(names2[k]);
+ maskLights[j].Add(lights2[k]);
+ maskDenoise[j].Add(denoise2[k]);
+ }
+ }
+ }
+ }
+ }*/
+ }
+
+ if (maskNames.Count > 0 && process)
+ {
+ var fcomp = new BinaryWriter(File.Open(scenePath + ("/masks_" + LMID + ".bin"), FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("masks_" + LMID + ".bin");
+ fcomp.Write(maskNames[0].Count);
+ fcomp.Write(maskNames.Count > 1 ? maskNames[1].Count : 0);
+ fcomp.Write(maskNames.Count > 2 ? maskNames[2].Count : 0);
+ fcomp.Write(maskNames.Count > 3 ? maskNames[3].Count : 0);
+ for(int channel=0; channel<maskNames.Count; channel++)
+ {
+ for(int i=0; i<maskNames[channel].Count; i++)
+ {
+ fcomp.Write(maskNames[channel][i]);
+ if (vertexBake) continue;
+ if (!maskDenoise[channel][i]) continue;
+ if (maskLights[channel][i] == null) continue;
+
+ progressText = "Denoising light " + maskLights[channel][i].name + " for shadowmask " + lmname + "...";
+ if (userCanceled) yield break;
+ yield return null;
+
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ startInfo.WorkingDirectory = "Assets/Editor/x64/Bakery";
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/denoiser"+denoiseMod+".exe";
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "m \"" + scenePath + "/" + maskNames[channel][i] + "\" \"" + scenePath + "/" + maskNames[channel][i] + "\"";
+ string firstArgs = startInfo.Arguments;
+ startInfo.Arguments += " " + resolution + " 0";
+
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ List<string> list;
+ deferredCommandsFallback[deferredCommands.Count - 1] = list = new List<string>();
+
+ int denoiseRes = resolution;
+ while(denoiseRes > 64)
+ {
+ denoiseRes /= 2;
+ list.Add(firstArgs + " " + denoiseRes + " 0");
+ }
+ }
+ else
+ {
+ // unsupported
+ }
+ }
+ }
+ fcomp.Close();
+
+ progressText = "Creating shadow masks for " + lmname + "...";
+ if (!deferredMode) ProgressBarShow(progressText, (progressStepsDone / (float)progressSteps), true);
+ if (userCanceled) yield break;
+ yield return null;
+
+ var outPath = Application.dataPath + "/" + outputPathFull + "/" + lmname + "_mask" + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? ".png" : ".tga");
+ if (File.Exists(outPath)) ValidateFileAttribs(outPath);
+
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ startInfo.WorkingDirectory = "Assets/Editor/x64/Bakery";
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/combineMasks.exe";
+ startInfo.CreateNoWindow = true;
+ if (vertexBake)
+ {
+ startInfo.Arguments = "\"" + scenePath + "/" + lmname + "_mask.lz4\" ";
+ }
+ else
+ {
+ startInfo.Arguments = "\"" + outPath + "\" ";
+ }
+ /*maskNames[0] + " ";
+ if (maskNames.Count > 1) startInfo.Arguments += maskNames[1] + " ";
+ if (maskNames.Count > 2) startInfo.Arguments += maskNames[2] + " ";
+ if (maskNames.Count > 3) startInfo.Arguments += maskNames[3] + " ";*/
+ startInfo.Arguments +=
+ "\"" + scenePath + ("/masks_" + LMID + ".bin") + "\" " +
+ "\"" + scenePath + "/\"";
+
+ //for(int i=0; i<maskLights.Count; i++) SetupLightShadowmask(maskLights[i], i);
+
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ if (clientMode && !vertexBake) ftClient.serverGetFileList.Add(lmname + "_mask" + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? ".png" : ".tga"));
+ }
+ else
+ {
+ Debug.LogError("Doesn't work in non-deferred mode");
+ }
+ }
+ }
+ }
+
+ IEnumerator RenderLMFinalize(int LMID, string lmname, int resolution, bool vertexBake, int lmgroupRenderDirMode, int lmgroupRenderMode, BakeryLightmapGroupPlain lmgroup)
+ {
+ System.Diagnostics.ProcessStartInfo startInfo;
+ //System.Diagnostics.Process exeProcess;
+ string progressText;
+
+ var dirMode = lmgroupRenderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto ? (int)renderDirMode : (int)lmgroupRenderDirMode;
+ var dominantDirMode = dirMode == (int)ftRenderLightmap.RenderDirMode.DominantDirection;
+ var rnmMode = dirMode == (int)ftRenderLightmap.RenderDirMode.RNM && lightmapHasRNM[LMID];
+ var shMode = dirMode == (int)ftRenderLightmap.RenderDirMode.SH && lightmapHasRNM[LMID];
+ var shModeProbe = dirMode == (int)BakeryLightmapGroup.RenderDirMode.ProbeSH && lightmapHasRNM[LMID];
+ if (shModeProbe) shMode = true;
+
+ var rmode = lmgroupRenderMode == (int)BakeryLightmapGroup.RenderMode.Auto ? (int)userRenderMode : (int)lmgroupRenderMode;
+
+ var denoiseMod = GetDenoiseMode();
+
+ // Denoise directions
+ if (dominantDirMode && denoise && !vertexBake && lightmapHasDir[LMID])
+ {
+ progressText = "Denoising direction for " + lmname + "...";
+ //if (userCanceled) yield break;
+ //yield return null;
+
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ startInfo.WorkingDirectory = "Assets/Editor/x64/Bakery";
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/denoiser"+denoiseMod+".exe";
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = (alternativeDenoiseDir?"D":"d") + " \"" + scenePath + "/" + lmname + "_final_Dir" + (compressedOutput ? ".lz4" : ".dds") + "\" \"" + scenePath + "/" + lmname + "_final_Dir" + (compressedOutput ? ".lz4" : ".dds") + "\"";
+ string firstArgs = startInfo.Arguments;
+ startInfo.Arguments += " " + resolution + " 0";
+
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ List<string> list;
+ deferredCommandsFallback[deferredCommands.Count - 1] = list = new List<string>();
+
+ int denoiseRes = resolution;
+ while(denoiseRes > 64)
+ {
+ denoiseRes /= 2;
+ list.Add(firstArgs + " " + denoiseRes + " 0");
+ }
+ }
+ else
+ {
+ // unsupported
+ }
+ }
+
+ if (!lightmapHasColor[LMID]) yield break;
+
+ // Apply AO if needed
+ if (hackAOIntensity > 0 && hackAOSamples > 0 && !rnmMode && !shMode && !lmgroup.probes && rmode != (int)RenderMode.AmbientOcclusionOnly)
+ {
+ progressText = "Applying AO to " + lmname + "...";
+ if (userCanceled) yield break;//return false;
+
+ var fcomp = new BinaryWriter(File.Open(scenePath + "/addao_" + LMID + ".bin", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("addao_" + LMID + ".bin");
+ fcomp.Write(lmname + (shMode ? "_final_L0" : "_final_HDR") + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write(lmname + "_ao_Mask" + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write(hackAOIntensity);
+ fcomp.Close();
+
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "addao " + scenePathQuoted + " \"" + lmname + (shMode ? "_final_L0" : "_final_HDR") + (compressedOutput ? ".lz4" : ".dds")
+ + "\"" + " " + PASS_HALF + " " + 0 + " " + LMID + " addao_" + LMID + ".bin";
+
+ deferredFileSrc.Add("");//scenePath + "/addao_" + LMID + ".bin");
+ deferredFileDest.Add("");//scenePath + "/addao.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ }
+
+ // Denoise
+ if (denoise && !vertexBake)
+ {
+ if (!shMode && !rnmMode)
+ {
+ progressText = "Denoising " + lmname + "...";
+ if (userCanceled) yield break;//return false;
+ yield return null;
+
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ startInfo.WorkingDirectory = "Assets/Editor/x64/Bakery";
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/denoiser"+denoiseMod+".exe";
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "c \"" + scenePath + "/" + lmname + "_final_HDR" + (compressedOutput ? ".lz4" : ".dds") + "\" \"" + scenePath + "/" + lmname + "_final_HDR" + (compressedOutput ? ".lz4" : ".dds") + "\"";
+ string firstArgs = startInfo.Arguments;
+ startInfo.Arguments += " " + resolution + " " + (denoise2x ? 1 : 0);
+
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ List<string> list;
+ deferredCommandsFallback[deferredCommands.Count - 1] = list = new List<string>();
+
+ int denoiseRes = resolution;
+ while(denoiseRes > 64)
+ {
+ denoiseRes /= 2;
+ list.Add(firstArgs + " " + denoiseRes + " " + (denoise2x ? 1 : 0));
+ }
+ }
+ }
+ }
+ progressStepsDone++;
+
+ string progressText2;
+
+ if (rnmMode && lightmapHasRNM[LMID])
+ {
+ for(int c=0; c<3; c++)
+ {
+ // Compose RNM
+ progressText2 = "Composing RNM" + c + " for " + lmname + "...";
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "add " + scenePathQuoted + " \"" + lmname + "_final_RNM" + c + (compressedOutput ? ".lz4" : ".dds")
+ + "\" " + PASS_HALF + " " + 0 + " " + LMID + " rnm" + c +"comp_" + LMID + ".bin";
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");//scenePath + "/rnm" + c +"comp_" + LMID + ".bin");
+ deferredFileDest.Add("");//scenePath + "/comp.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText2);
+ }
+ else
+ {
+ Debug.LogError("Not supported");
+ }
+
+ if (hackAOIntensity > 0 && hackAOSamples > 0)
+ {
+ progressText = "Applying AO to " + lmname + "...";
+ //for(int c=0; c<3; c++)
+ {
+ var fcomp = new BinaryWriter(File.Open(scenePath + "/addao_" + LMID + "_" + c + ".bin", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("addao_" + LMID + "_" + c + ".bin");
+ fcomp.Write(lmname + "_final_RNM" + c + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write(lmname + "_ao_Mask" + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write(hackAOIntensity);
+ fcomp.Close();
+
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "addao " + scenePathQuoted + " \"" + lmname + "_final_RNM" + c + (compressedOutput ? ".lz4" : ".dds")
+ + "\"" + " " + PASS_HALF + " " + 0 + " " + LMID + " addao_" + LMID + "_" + c + ".bin";
+
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");//scenePath + "/addao_" + LMID + "_" + c + ".bin");
+ deferredFileDest.Add("");//scenePath + "/addao.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ }
+ }
+ }
+
+ if (denoise && !vertexBake)
+ {
+ progressText = "Denoising RNM" + c + " for " + lmname + "...";
+ if (userCanceled) yield break;
+ yield return null;
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ startInfo.WorkingDirectory = "Assets/Editor/x64/Bakery";
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/denoiser"+denoiseMod+".exe";
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "c \"" + scenePath + "/" + lmname + "_final_RNM" + c + (compressedOutput ? ".lz4" : ".dds") + "\" \"" + scenePath + "/" + lmname + "_final_RNM" + c + (compressedOutput ? ".lz4" : ".dds") + "\"";
+ string firstArgs = startInfo.Arguments;
+ startInfo.Arguments += " " + resolution + " " + (denoise2x ? 1 : 0);
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ List<string> list;
+ deferredCommandsFallback[deferredCommands.Count - 1] = list = new List<string>();
+
+ int denoiseRes = resolution;
+ while(denoiseRes > 64)
+ {
+ denoiseRes /= 2;
+ list.Add(firstArgs + " " + denoiseRes + " " + (denoise2x ? 1 : 0));
+ }
+ }
+ else
+ {
+ Debug.LogError("Not supported");
+ }
+ }
+ }
+ }
+
+ if (shMode && lightmapHasRNM[LMID])
+ {
+ // Compose SH
+ progressText2 = "Composing SH " + " for " + lmname + "...";
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "addsh " + scenePathQuoted + " \"" + lmname + "_final_"
+ + "\" " + PASS_HALF + " " + 0 + " " + LMID + " shcomp_" + LMID + ".bin";
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");//scenePath + "/shcomp_" + LMID + ".bin");
+ deferredFileDest.Add("");//scenePath + "/shcomp.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText2);
+ }
+ else
+ {
+ Debug.LogError("Not supported");
+ }
+
+ if (hackAOIntensity > 0 && hackAOSamples > 0 && !lmgroup.probes)
+ {
+ progressText = "Applying AO to " + lmname + "...";
+ var fcomp = new BinaryWriter(File.Open(scenePath + "/addao_" + LMID + ".bin", FileMode.Create));
+ if (clientMode) ftClient.serverFileList.Add("addao_" + LMID + ".bin");
+ fcomp.Write(lmname + (shMode ? "_final_L0" : "_final_HDR") + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write(lmname + "_ao_Mask" + (compressedOutput ? ".lz4" : ".dds"));
+ fcomp.Write(hackAOIntensity);
+ fcomp.Close();
+
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = startInfo.WorkingDirectory + "/" + ftraceExe;
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "addao " + scenePathQuoted + " \"" + lmname + (shMode ? "_final_L0" : "_final_HDR") + (compressedOutput ? ".lz4" : ".dds")
+ + "\"" + " " + PASS_HALF + " " + 0 + " " + LMID + " addao_" + LMID + ".bin";
+
+ deferredFileSrc.Add("");//scenePath + "/addao_" + LMID + ".bin");
+ deferredFileDest.Add("");//scenePath + "/addao.bin");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ }
+
+ if (denoise && !vertexBake)
+ {
+ progressText = "Denoising SH for " + lmname + "...";
+ if (userCanceled) yield break;
+ yield return null;
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ startInfo.WorkingDirectory = "Assets/Editor/x64/Bakery";
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/denoiser"+denoiseMod+".exe";
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "s ";
+ startInfo.Arguments += "\"" + scenePath + "/" + lmname + "_final_L0" + (compressedOutput ? ".lz4" : ".dds") +
+ "\" \"" + scenePath + "/" + lmname + "_final_L1x" + (compressedOutput ? ".lz4" : ".dds") +
+ "\" \"" + scenePath + "/" + lmname + "_final_L1y" + (compressedOutput ? ".lz4" : ".dds") +
+ "\" \"" + scenePath + "/" + lmname + "_final_L1z" + (compressedOutput ? ".lz4" : ".dds") +
+ "\"";
+ string firstArgs = startInfo.Arguments;
+ startInfo.Arguments += " " + resolution + " 0";
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ List<string> list;
+ deferredCommandsFallback[deferredCommands.Count - 1] = list = new List<string>();
+
+ int denoiseRes = resolution;
+ while(denoiseRes > 64)
+ {
+ denoiseRes /= 2;
+ list.Add(firstArgs + " " + denoiseRes + " 0");
+ }
+ }
+
+
+ }
+
+ // Fix seams
+ if (fixSeams && !vertexBake)
+ {
+ progressText = "Fixing seams " + lmname + "...";
+ if (userCanceled) yield break;//return false;
+ yield return null;
+
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ startInfo.WorkingDirectory = "Assets/Editor/x64/Bakery";
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/seamfixer.exe";
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "\"" + scenePath + "\" \"" +
+ LMID + "\" \"";
+ if (shMode)
+ {
+ startInfo.Arguments += lmname + "_final_L0" + (compressedOutput ? ".lz4" : ".dds") + "\" \"" +
+ lmname + "_final_L1x" + (compressedOutput ? ".lz4" : ".dds") + "\" \"" +
+ lmname + "_final_L1y" + (compressedOutput ? ".lz4" : ".dds") + "\" \"" +
+ lmname + "_final_L1z" + (compressedOutput ? ".lz4" : ".dds") + "\"";
+ }
+ else if (rnmMode)
+ {
+ startInfo.Arguments += lmname + "_final_RNM0" + (compressedOutput ? ".lz4" : ".dds") + "\" \"" +
+ lmname + "_final_RNM1" + (compressedOutput ? ".lz4" : ".dds") + "\" \"" +
+ lmname + "_final_RNM2" + (compressedOutput ? ".lz4" : ".dds") + "\"";
+ }
+ else if (dominantDirMode)
+ {
+ startInfo.Arguments += lmname + "_final_HDR" + (compressedOutput ? ".lz4" : ".dds") + "\" \"" +
+ lmname + "_final_Dir" + (compressedOutput ? ".lz4" : ".dds");
+ }
+ else
+ {
+ startInfo.Arguments += lmname + "_final_HDR" + (compressedOutput ? ".lz4" : ".dds") + "\"";
+ }
+
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText);
+ }
+ progressStepsDone++;
+ }
+
+ IEnumerator RenderLMEncode(int LMID, string lmname, int resolution, bool vertexBake, int lmgroupRenderDirMode, int lmgroupRenderMode)
+ {
+ if (vertexBake) yield break;
+
+ System.Diagnostics.ProcessStartInfo startInfo;
+
+ var dirMode = lmgroupRenderDirMode == (int)BakeryLightmapGroup.RenderDirMode.Auto ? (int)renderDirMode : (int)lmgroupRenderDirMode;
+ var dominantDirMode = dirMode == (int)ftRenderLightmap.RenderDirMode.DominantDirection;
+ var rnmMode = dirMode == (int)ftRenderLightmap.RenderDirMode.RNM && lightmapHasRNM[LMID];
+ var shMode = dirMode == (int)ftRenderLightmap.RenderDirMode.SH && lightmapHasRNM[LMID];
+ var shModeProbe = dirMode == (int)BakeryLightmapGroup.RenderDirMode.ProbeSH && lightmapHasRNM[LMID];
+ if (shModeProbe) shMode = true;
+
+ var progressText2 = "Encoding " + lmname + "...";
+ if (userCanceled) yield break;//return false;
+ progressStepsDone++;
+ yield return null;
+
+ int maxValue = 1024;
+#if UNITY_2019_1_OR_NEWER
+ if (GraphicsSettings.renderPipelineAsset != null)
+ {
+ var srpType = GraphicsSettings.renderPipelineAsset.GetType().ToString();
+ if (srpType.Contains("HDRenderPipelineAsset"))
+ {
+ maxValue = 64000;
+ }
+ }
+#endif
+
+ if (encode)// && !vertexBake)// && File.Exists(scenePath + "/" + lmname + "_final_HDR.dds"))
+ {
+ if (vertexBake)
+ {
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(null);
+ deferredCommandDesc.Add(progressText2);
+
+ var gr = new BakeryLightmapGroupPlain();
+ gr.id = LMID;
+ gr.name = lmname;
+ deferredCommandsHalf2VB[deferredCommands.Count - 1] = gr;
+ }
+ else
+ {
+ //GenerateVertexBakedMeshes(LMID, lmname);
+ }
+ }
+ else// if (!bc6h)
+ {
+ if (!shMode && !rnmMode)
+ {
+ var outPath = Application.dataPath + "/" + outputPathFull + "/" + lmname + "_final.hdr";
+ if (File.Exists(outPath)) ValidateFileAttribs(outPath);
+
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ //startInfo.WorkingDirectory = scenePath;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/halffloat2hdr.exe";
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "\"" + scenePath + "/" + lmname + "_final_HDR" + (compressedOutput ? ".lz4" : ".dds") + "\" \"" + outPath + "\" " + maxValue;
+
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText2);
+ if (clientMode) ftClient.serverGetFileList.Add(lmname + "_final.hdr");
+ }
+ }
+ }
+
+ // Encode directions
+ if (dominantDirMode && !vertexBake && lightmapHasDir[LMID])
+ {
+ var outPath = Application.dataPath + "/" + outputPathFull + "/" + lmname + "_dir" + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? ".png" : ".tga");
+ if (File.Exists(outPath)) ValidateFileAttribs(outPath);
+
+ progressText2 = "Encoding direction for " + lmname + "...";
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ //startInfo.WorkingDirectory = scenePath;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/rgba2tga.exe";
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "\"" + scenePath + "/" + lmname + "_final_Dir" + (compressedOutput ? ".lz4" : ".dds") + "\" \"" + outPath + "\" " + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? "p" : "");
+
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText2);
+ if (clientMode) ftClient.serverGetFileList.Add(lmname + "_dir" + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? ".png" : ".tga"));
+ }
+ else
+ {
+ Debug.LogError("Not supported");
+ }
+ }
+
+ if (rnmMode && !vertexBake && lightmapHasRNM[LMID])
+ {
+ for(int c=0; c<3; c++)
+ {
+ var outPath = Application.dataPath + "/" + outputPathFull + "/" + lmname + "_RNM" + c + ".hdr";
+ if (File.Exists(outPath)) ValidateFileAttribs(outPath);
+
+ // Encode RNM
+ progressText2 = "Encoding RNM" + c + " for " + lmname + "...";
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ //startInfo.WorkingDirectory = scenePath;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/halffloat2hdr.exe";
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "\"" + scenePath + "/" + lmname + "_final_RNM" + c + (compressedOutput ? ".lz4" : ".dds") + "\" \"" + outPath + "\" " + maxValue;
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText2);
+ if (clientMode) ftClient.serverGetFileList.Add(lmname + "_RNM" + c + ".hdr");
+ }
+ else
+ {
+ Debug.LogError("Not supported");
+ }
+ }
+ }
+
+ if (shMode && !vertexBake && lightmapHasRNM[LMID])
+ {
+ var outPath = Application.dataPath + "/" + outputPathFull + "/" + lmname + "_L0.hdr";
+ if (File.Exists(outPath)) ValidateFileAttribs(outPath);
+
+ progressText2 = "Encoding SH L0 for " + lmname + "...";
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ //startInfo.WorkingDirectory = scenePath;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/halffloat2hdr.exe";
+ startInfo.CreateNoWindow = true;
+ startInfo.Arguments = "\"" + scenePath + "/" + lmname + "_final_L0" + (compressedOutput ? ".lz4" : ".dds") + "\" \"" + outPath + "\" " + maxValue;
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText2);
+ if (clientMode) ftClient.serverGetFileList.Add(lmname + "_L0.hdr");
+ }
+ else
+ {
+ Debug.LogError("Not supported");
+ }
+
+ progressText2 = "Encoding SH L1 for " + lmname + "...";
+ for(int i=0; i<3; i++)
+ {
+ startInfo = new System.Diagnostics.ProcessStartInfo();
+ startInfo.CreateNoWindow = false;
+ startInfo.UseShellExecute = false;
+ //startInfo.WorkingDirectory = scenePath;
+#if !LAUNCH_VIA_DLL
+ startInfo.WorkingDirectory = dllPath + "/Bakery";
+#endif
+ startInfo.FileName = Application.dataPath + "/Editor/x64/Bakery/rgba2tga.exe";
+ startInfo.CreateNoWindow = true;
+ string comp;
+ if (i==0)
+ {
+ comp = "x";
+ }
+ else if (i==1)
+ {
+ comp = "y";
+ }
+ else
+ {
+ comp = "z";
+ }
+
+ var outPath1 = Application.dataPath + "/" + outputPathFull + "/" + lmname + "_L1" + comp + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? ".png" : ".tga");
+ if (File.Exists(outPath1)) ValidateFileAttribs(outPath1);
+
+ startInfo.Arguments = "\"" + scenePath + "/" + lmname + "_final_L1" + comp + (compressedOutput ? ".lz4" : ".dds") + "\" \"" + outPath1 + "\" " + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? "p" : "");
+
+ if (deferredMode)
+ {
+ deferredFileSrc.Add("");
+ deferredFileDest.Add("");
+ deferredCommands.Add(startInfo);
+ deferredCommandDesc.Add(progressText2);
+ if (clientMode) ftClient.serverGetFileList.Add(lmname + "_L1" + comp + (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG ? ".png" : ".tga"));
+ }
+ else
+ {
+ Debug.LogError("Not supported");
+ }
+ }
+ }
+ }
+
+ public static System.IntPtr RunFTrace(string args, bool visible = false)
+ {
+ DebugLogInfo("Running ftrace " + args);
+#if LAUNCH_VIA_DLL
+ System.IntPtr exeProcess;
+
+ if (visible)
+ {
+ exeProcess = RunLocalProcessVisible(ftraceExe+" "+args);
+ }
+ else
+ {
+ exeProcess = RunLocalProcess(ftraceExe+" "+args, true);
+ }
+
+ if (exeProcess == (System.IntPtr)null)
+ {
+ Debug.LogError(ftraceExe + " launch failed (see console for details)");
+ return (System.IntPtr)0;
+ }
+ return exeProcess;
+#else
+ Debug.LogError("Not supported");
+ return (System.IntPtr)0;
+#endif
+ }
+
+ static void FindGlobalStorage()
+ {
+ if (gstorage == null)
+ {
+ var bakeryRuntimePath = ftLightmaps.GetRuntimePath();
+ gstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage;
+ }
+ }
+
+ public static void LoadDefaultSettings(ftLightmapsStorage storage)
+ {
+ FindGlobalStorage();
+ if (gstorage == null) return;
+ ftLightmapsStorage.CopySettings(gstorage, storage);
+ }
+
+ static List<GameObject> roots;
+ public static ftLightmapsStorage FindRenderSettingsStorage()
+ {
+ // Load saved settings
+ GameObject go = null;
+ if (roots == null) roots = new List<GameObject>();
+
+ try
+ {
+ SceneManager.GetActiveScene().GetRootGameObjects(roots);
+ }
+ catch
+ {
+ // scene is not loaded, oops
+ return null;
+ }
+
+ go = roots.Find( g => g.name == "!ftraceLightmaps" );
+
+ if (go == null) go = GameObject.Find("!ftraceLightmaps");
+ if (go == null) {
+ go = new GameObject();
+ go.name = "!ftraceLightmaps";
+ go.hideFlags = HideFlags.HideInHierarchy;
+ }
+ var storage = go.GetComponent<ftLightmapsStorage>();
+ if (storage == null) {
+ storage = go.AddComponent<ftLightmapsStorage>();
+ LoadDefaultSettings(storage);
+ }
+ return storage;
+ }
+
+ public static void LoadStaticAtlasingSettings()
+ {
+ var storage = FindRenderSettingsStorage();
+ ftRenderLightmap.tileSize = storage.renderSettingsTileSize;
+ ftBuildGraphics.texelsPerUnit = storage.renderSettingsTexelsPerUnit;
+ ftBuildGraphics.autoAtlas = storage.renderSettingsAutoAtlas;
+ ftBuildGraphics.unwrapUVs = storage.renderSettingsUnwrapUVs;
+ ftBuildGraphics.forceDisableUnwrapUVs = storage.renderSettingsForceDisableUnwrapUVs;
+ ftBuildGraphics.maxAutoResolution = storage.renderSettingsMaxAutoResolution;
+ ftBuildGraphics.minAutoResolution = storage.renderSettingsMinAutoResolution;
+ ftRenderLightmap.checkOverlaps = storage.renderSettingsCheckOverlaps;
+ ftBuildGraphics.texelsPerUnitPerMap = storage.renderSettingsTexelsPerMap;
+ ftBuildGraphics.mainLightmapScale = storage.renderSettingsTexelsColor;
+ ftBuildGraphics.maskLightmapScale = storage.renderSettingsTexelsMask;
+ ftBuildGraphics.dirLightmapScale = storage.renderSettingsTexelsDir;
+ ftBuildGraphics.splitByScene = storage.renderSettingsSplitByScene;
+ ftBuildGraphics.uvPaddingMax = storage.renderSettingsUVPaddingMax;
+ ftBuildGraphics.postPacking = storage.renderSettingsPostPacking;
+ ftBuildGraphics.holeFilling = storage.renderSettingsHoleFilling;
+ ftBuildGraphics.atlasPacker = storage.renderSettingsAtlasPacker;
+ }
+
+ public void LoadRenderSettings()
+ {
+ FindGlobalStorage();
+ if (gstorage != null)
+ {
+ foundCompatibleSetup = gstorage.foundCompatibleSetup;
+ scenePath = gstorage.renderSettingsTempPath;
+ }
+
+ instance = this;
+ var storage = instance.renderSettingsStorage = FindRenderSettingsStorage();
+ if (storage == null) return;
+ bounces = storage.renderSettingsBounces;
+ instance.giSamples = storage.renderSettingsGISamples;
+ giBackFaceWeight = storage.renderSettingsGIBackFaceWeight;
+ ftRenderLightmap.tileSize = storage.renderSettingsTileSize;
+ instance.priority = storage.renderSettingsPriority;
+ instance.texelsPerUnit = storage.renderSettingsTexelsPerUnit;
+ ftRenderLightmap.forceRefresh = storage.renderSettingsForceRefresh;
+ instance.forceRebuildGeometry = storage.renderSettingsForceRebuildGeometry;
+ instance.performRendering = storage.renderSettingsPerformRendering;
+ instance.userRenderMode = (RenderMode)storage.renderSettingsUserRenderMode;
+ instance.settingsMode = (SettingsMode)storage.renderSettingsSettingsMode;
+ instance.fixSeams = storage.renderSettingsFixSeams;
+ instance.denoise = storage.renderSettingsDenoise;
+ instance.denoise2x = storage.renderSettingsDenoise2x;
+ instance.encode = storage.renderSettingsEncode;
+ instance.encodeMode = storage.renderSettingsEncodeMode;
+ ftBuildGraphics.overwriteWarning = storage.renderSettingsOverwriteWarning;
+ ftBuildGraphics.autoAtlas = storage.renderSettingsAutoAtlas;
+ ftBuildGraphics.unwrapUVs = storage.renderSettingsUnwrapUVs;
+ ftBuildGraphics.forceDisableUnwrapUVs = storage.renderSettingsForceDisableUnwrapUVs;
+ ftBuildGraphics.maxAutoResolution = storage.renderSettingsMaxAutoResolution;
+ ftBuildGraphics.minAutoResolution = storage.renderSettingsMinAutoResolution;
+ instance.unloadScenesInDeferredMode = storage.renderSettingsUnloadScenes;
+ ftRenderLightmap.adjustSamples = storage.renderSettingsAdjustSamples;
+ ftRenderLightmap.giLodMode = (GILODMode)storage.renderSettingsGILODMode;
+ ftRenderLightmap.giLodModeEnabled = storage.renderSettingsGILODModeEnabled;
+ ftRenderLightmap.checkOverlaps = storage.renderSettingsCheckOverlaps;
+ ftRenderLightmap.outputPath = storage.renderSettingsOutPath == "" ? "BakeryLightmaps" : storage.renderSettingsOutPath;
+ ftRenderLightmap.useScenePath = storage.renderSettingsUseScenePath;
+ hackEmissiveBoost = storage.renderSettingsHackEmissiveBoost;
+ hackIndirectBoost = storage.renderSettingsHackIndirectBoost;
+ hackAOIntensity = renderSettingsStorage.renderSettingsHackAOIntensity;
+ hackAORadius = renderSettingsStorage.renderSettingsHackAORadius;
+ hackAOSamples = renderSettingsStorage.renderSettingsHackAOSamples;
+ showAOSettings = renderSettingsStorage.renderSettingsShowAOSettings;
+ showTasks = renderSettingsStorage.renderSettingsShowTasks;
+ showTasks2 = renderSettingsStorage.renderSettingsShowTasks2;
+ showPaths = renderSettingsStorage.renderSettingsShowPaths;
+ showNet = renderSettingsStorage.renderSettingsShowNet;
+ showPerf = renderSettingsStorage.renderSettingsShowPerf;
+ //showCompression = renderSettingsStorage.renderSettingsShowCompression;
+ ftBuildGraphics.texelsPerUnitPerMap = renderSettingsStorage.renderSettingsTexelsPerMap;
+ ftBuildGraphics.mainLightmapScale = renderSettingsStorage.renderSettingsTexelsColor;
+ ftBuildGraphics.maskLightmapScale = renderSettingsStorage.renderSettingsTexelsMask;
+ ftBuildGraphics.dirLightmapScale = renderSettingsStorage.renderSettingsTexelsDir;
+ useUnityForOcclsusionProbes = renderSettingsStorage.renderSettingsOcclusionProbes;
+ lastBakeTime = renderSettingsStorage.lastBakeTime;
+ beepOnFinish = renderSettingsStorage.renderSettingsBeepOnFinish;
+ ftBuildGraphics.exportTerrainAsHeightmap = renderSettingsStorage.renderSettingsExportTerrainAsHeightmap;
+ ftBuildGraphics.exportTerrainTrees = renderSettingsStorage.renderSettingsExportTerrainTrees;
+ rtxMode = renderSettingsStorage.renderSettingsRTXMode;
+ lightProbeMode = (LightProbeMode)renderSettingsStorage.renderSettingsLightProbeMode;
+ clientMode = renderSettingsStorage.renderSettingsClientMode;
+ ftClient.serverAddress = renderSettingsStorage.renderSettingsServerAddress;
+ unwrapper = (ftGlobalStorage.Unwrapper)renderSettingsStorage.renderSettingsUnwrapper;
+ denoiserType = (ftGlobalStorage.DenoiserType)renderSettingsStorage.renderSettingsDenoiserType;
+ //legacyDenoiser = renderSettingsStorage.renderSettingsLegacyDenoiser;
+ ftBuildGraphics.atlasPacker = renderSettingsStorage.renderSettingsAtlasPacker;
+ sampleDivisor = storage.renderSettingsSampleDiv;
+ if (storage.renderSettingsSector != null) curSector = (BakerySector)storage.renderSettingsSector;
+
+ ftraceExe = rtxMode ? ftraceExe6 : ftraceExe1;
+ //scenePath = storage.renderSettingsTempPath;
+
+ if (scenePath == "") scenePath = System.Environment.GetEnvironmentVariable("TEMP", System.EnvironmentVariableTarget.Process) + "\\frender";
+ ftBuildGraphics.scenePath = scenePath;
+ scenePathQuoted = "\"" + scenePath + "\"";
+
+#if UNITY_2017_1_OR_NEWER
+ isDistanceShadowmask = QualitySettings.shadowmaskMode == ShadowmaskMode.DistanceShadowmask;
+#else
+ isDistanceShadowmask = storage.renderSettingsDistanceShadowmask;
+#endif
+ showDirWarning = storage.renderSettingsShowDirWarning;
+ renderDirMode = (RenderDirMode)storage.renderSettingsRenderDirMode;
+ showCheckerSettings = storage.renderSettingsShowCheckerSettings;
+ usesRealtimeGI = storage.usesRealtimeGI;
+ samplesWarning = storage.renderSettingsSamplesWarning;
+ prefabWarning = storage.renderSettingsPrefabWarning;
+ ftBuildGraphics.splitByScene = storage.renderSettingsSplitByScene;
+ ftBuildGraphics.uvPaddingMax = storage.renderSettingsUVPaddingMax;
+ ftBuildGraphics.postPacking = storage.renderSettingsPostPacking;
+ ftBuildGraphics.holeFilling = storage.renderSettingsHoleFilling;
+ compressVolumes = storage.renderSettingsCompressVolumes;
+ }
+
+ void OnEnable()
+ {
+ LoadRenderSettings();
+ }
+
+ [MenuItem ("Bakery/Render lightmap...", false, 0)]
+ public static void RenderLightmap ()
+ {
+ instance = (ftRenderLightmap)GetWindow(typeof(ftRenderLightmap));
+ instance.titleContent.text = "Bakery";
+ var edPath = ftLightmaps.GetEditorPath();
+ var icon = EditorGUIUtility.Load(edPath + "icon.png") as Texture2D;
+ instance.titleContent.image = icon;
+ instance.Show();
+ ftLightmaps.GetRuntimePath();
+ }
+}
+
+#endif
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRenderLightmap.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRenderLightmap.cs.meta
new file mode 100644
index 00000000..f7587a31
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRenderLightmap.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dc64e635488f60747bf5e9025c593285
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRestorePaddingMenu.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRestorePaddingMenu.cs
new file mode 100644
index 00000000..0ea8020b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRestorePaddingMenu.cs
@@ -0,0 +1,88 @@
+using UnityEngine;
+using UnityEditor;
+using UnityEngine.SceneManagement;
+
+public class ftRestorePaddingMenu
+{
+ [MenuItem("Bakery/Utilities/Re-adjust UV padding", false, 43)]
+ private static void RestorePadding()
+ {
+ var bakeryRuntimePath = ftLightmaps.GetRuntimePath();
+ var gstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage;
+
+ if (gstorage == null)
+ {
+ Debug.Log("Bakery is not initalized");
+ return;
+ }
+
+ if (EditorUtility.DisplayDialog("Bakery", "Re-unwrap and reimport lightmapped scene models to match last bake?", "OK", "Cancel"))
+ {
+ var sceneCount = SceneManager.sceneCount;
+ int reimported = 0;
+ for(int i=0; i<sceneCount; i++)
+ {
+ var scene = SceneManager.GetSceneAt(i);
+ if (!scene.isLoaded) continue;
+ var go = ftLightmaps.FindInScene("!ftraceLightmaps", scene);
+ if (go == null) continue;
+ var store = go.GetComponent<ftLightmapsStorage>();
+ if (store == null) continue;
+
+ for(int j=0; j<store.modifiedAssetPathList.Count; j++)
+ {
+ bool updated = false;
+ var path = store.modifiedAssetPathList[j];
+ var data = store.modifiedAssets[j];
+ int mstoreIndex = gstorage.modifiedAssetPathList.IndexOf(path);
+ if (mstoreIndex < 0)
+ {
+ mstoreIndex = gstorage.modifiedAssetPathList.Count;
+ gstorage.modifiedAssetPathList.Add(path);
+ gstorage.modifiedAssets.Add(data);
+ updated = true;
+ }
+ else
+ {
+ var dataExisting = gstorage.modifiedAssets[mstoreIndex];
+ for(int k=0; k<data.meshName.Count; k++)
+ {
+ int ind = dataExisting.meshName.IndexOf( data.meshName[k] );
+ if (ind >= 0)
+ {
+ if (dataExisting.padding[ind] != data.padding[k])
+ {
+ dataExisting.padding[ind] = data.padding[k];
+ updated = true;
+ }
+ if (dataExisting.unwrapper[ind] != data.unwrapper[k])
+ {
+ dataExisting.unwrapper[ind] = data.unwrapper[k];
+ updated = true;
+ }
+ }
+ else
+ {
+ dataExisting.meshName.Add( data.meshName[k] );
+ dataExisting.padding.Add( data.padding[k] );
+ dataExisting.unwrapper.Add( data.unwrapper[k] );
+ updated = true;
+ }
+ }
+ }
+ if (updated)
+ {
+#if UNITY_2017_1_OR_NEWER
+ gstorage.SyncModifiedAsset(mstoreIndex);
+#endif
+ EditorUtility.SetDirty(gstorage);
+ (AssetImporter.GetAtPath(path) as ModelImporter).SaveAndReimport();
+ reimported++;
+ }
+ }
+ }
+ Debug.Log(reimported > 0 ? ("Updated " + reimported + " models") : "No changes detected");
+ }
+ }
+}
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRestorePaddingMenu.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRestorePaddingMenu.cs.meta
new file mode 100644
index 00000000..cec7770a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftRestorePaddingMenu.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 1acbda60094b1b14fa803d9ce4fb88d3
+timeCreated: 1557694522
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavePadding.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavePadding.cs
new file mode 100644
index 00000000..ea4f56a6
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavePadding.cs
@@ -0,0 +1,55 @@
+#if UNITY_EDITOR
+
+using UnityEngine;
+using UnityEditor;
+using UnityEngine.SceneManagement;
+using System.IO;
+using System.Collections.Generic;
+
+public class ftSavePaddingMenu
+{
+ [MenuItem("Bakery/Utilities/Save UV padding to asset", false, 60)]
+ private static void RestorePadding()
+ {
+ var bakeryRuntimePath = ftLightmaps.GetRuntimePath();
+ var gstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage;
+
+ if (gstorage == null)
+ {
+ Debug.Log("Bakery is not initalized");
+ return;
+ }
+
+ var sel = Selection.objects;
+ var pathList = new List<string>();
+
+ for(int i=0; i<sel.Length; i++)
+ {
+ var path = AssetDatabase.GetAssetPath(sel[i]);
+ if (path == "") continue;
+ if (!pathList.Contains(path)) pathList.Add(path);
+ }
+
+ int ctr = 0;
+ for(int i=0; i<pathList.Count; i++)
+ {
+ var index = gstorage.modifiedAssetPathList.IndexOf(pathList[i]);
+ if (index < 0)
+ {
+ Debug.Log("UV padding wasn't generated yet, skipping " + pathList[i]);
+ continue;
+ }
+ var mod = gstorage.modifiedAssets[index];
+ var asset = ScriptableObject.CreateInstance<ftSavedPadding2>();
+ asset.data = mod;
+ AssetDatabase.CreateAsset(asset, Path.GetDirectoryName(pathList[i]) + "/" + Path.GetFileNameWithoutExtension(pathList[i]) + "_padding.asset");
+ Debug.Log("Created padding asset for " + pathList[i]);
+ ctr++;
+ }
+
+ AssetDatabase.SaveAssets();
+ Debug.Log("Created " + ctr + " UV padding assets");
+ }
+}
+
+#endif
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavePadding.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavePadding.cs.meta
new file mode 100644
index 00000000..77fac003
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavePadding.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 1b9bbae7393eaa04db704d80e254be86
+timeCreated: 1565341770
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSaveSettingsMenu.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSaveSettingsMenu.cs
new file mode 100644
index 00000000..ba26d3cd
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSaveSettingsMenu.cs
@@ -0,0 +1,53 @@
+using UnityEngine;
+using UnityEditor;
+using UnityEngine.SceneManagement;
+
+public class ftSaveSettingsMenu
+{
+ [MenuItem("Bakery/Utilities/Save settings as default", false, 41)]
+ private static void SaveSettings()
+ {
+ var bakeryRuntimePath = ftLightmaps.GetRuntimePath();
+ var gstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage;
+
+ if (gstorage == null)
+ {
+ Debug.Log("Bakery is not initalized");
+ return;
+ }
+
+ if (EditorUtility.DisplayDialog("Bakery", "Save current scene settings as global defaults?", "OK", "Cancel"))
+ {
+ var storage = ftRenderLightmap.FindRenderSettingsStorage();
+ ftRenderLightmap bakery = ftRenderLightmap.instance != null ? ftRenderLightmap.instance : new ftRenderLightmap();
+ bakery.LoadRenderSettings();
+ ftLightmapsStorage.CopySettings(storage, gstorage);
+ EditorUtility.SetDirty(gstorage);
+ Debug.Log("Default settings saved");
+ }
+ }
+
+ [MenuItem("Bakery/Utilities/Load default settings", false, 42)]
+ private static void LoadSettings()
+ {
+ var bakeryRuntimePath = ftLightmaps.GetRuntimePath();
+ var gstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage;
+
+ if (gstorage == null)
+ {
+ Debug.Log("Bakery is not initalized");
+ return;
+ }
+
+ if (EditorUtility.DisplayDialog("Bakery", "Set default baking settings for the current scene?", "OK", "Cancel"))
+ {
+ var storage = ftRenderLightmap.FindRenderSettingsStorage();
+ ftRenderLightmap bakery = ftRenderLightmap.instance != null ? ftRenderLightmap.instance : new ftRenderLightmap();
+ ftLightmapsStorage.CopySettings(gstorage, storage);
+ EditorUtility.SetDirty(storage);
+ bakery.LoadRenderSettings();
+ Debug.Log("Default settings loaded");
+ }
+ }
+}
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSaveSettingsMenu.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSaveSettingsMenu.cs.meta
new file mode 100644
index 00000000..0c06bbe4
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSaveSettingsMenu.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 6977f7d9b2482ea4cbd5535e0046efab
+timeCreated: 1558111532
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavedPadding2.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavedPadding2.cs
new file mode 100644
index 00000000..73d1473c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavedPadding2.cs
@@ -0,0 +1,8 @@
+using UnityEngine;
+using UnityEditor;
+
+public class ftSavedPadding2 : ScriptableObject
+{
+ [SerializeField]
+ public ftGlobalStorage.AdjustedMesh data;
+}
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavedPadding2.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavedPadding2.cs.meta
new file mode 100644
index 00000000..eab1f729
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSavedPadding2.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f1b283dcb6cb8fb4e984405825d17555
+timeCreated: 1583479458
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSceneView.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSceneView.cs
new file mode 100644
index 00000000..e9c278cd
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSceneView.cs
@@ -0,0 +1,171 @@
+#if UNITY_EDITOR
+//#if UNITY_2018_2_OR_NEWER
+
+using UnityEngine;
+using UnityEditor;
+using System;
+using System.IO;
+using System.Text;
+using System.Collections;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using System.Linq;
+
+/*
+public class ftSceneView
+{
+ public static void Init()
+ {
+ var mode = SceneView.AddCameraMode("Bakery lightmap checker", "Bakery");
+ }
+}
+*/
+
+public class ftSceneView
+{
+ static Shader checkerShader;
+ public static bool enabled;
+ static List<Texture2D> tempTextures;
+
+ static void Atlas()
+ {
+ var fgo = GameObject.Find("!ftraceLightmaps");
+ if (fgo == null) {
+ fgo = new GameObject();
+ fgo.name = "!ftraceLightmaps";
+ fgo.hideFlags = HideFlags.HideInHierarchy;
+ }
+ var store = fgo.GetComponent<ftLightmapsStorage>();
+ if (store == null) {
+ store = fgo.AddComponent<ftLightmapsStorage>();
+ }
+ ftRenderLightmap.LoadStaticAtlasingSettings();
+
+ Debug.Log("Atlasing...");
+ ftBuildGraphics.modifyLightmapStorage = false;
+ ftBuildGraphics.validateLightmapStorageImmutability = false;
+ var exportSceneFunc = ftBuildGraphics.ExportScene(null, false, true);
+ while(exportSceneFunc.MoveNext())
+ {
+ //progressBarText = ftBuildGraphics.progressBarText;
+ //progressBarPercent = ftBuildGraphics.progressBarPercent;
+ /*if (ftBuildGraphics.userCanceled)
+ {
+ ProgressBarEnd();
+ DestroyImmediate(go);
+ foreach(var d in dynamicObjects) d.enabled = true;
+ yield break;
+ }*/
+ //yield return null;
+ }
+ Debug.Log("Atlasing done");
+ //ftRenderLightmap.simpleProgressBarEnd();
+ ftBuildGraphics.ProgressBarEnd(true);
+ }
+
+ static void ApplyNewProperties()
+ {
+ var objs = ftBuildGraphics.atlasOnlyObj;
+ if (objs == null) return;
+ var scaleOffset = ftBuildGraphics.atlasOnlyScaleOffset;
+ var size = ftBuildGraphics.atlasOnlySize;
+ var ids = ftBuildGraphics.atlasOnlyID;
+ var existingLmaps = LightmapSettings.lightmaps.ToList();
+ tempTextures = new List<Texture2D>();
+ int maxLM = 0;
+ for(int i=0; i<objs.Count; i++)
+ {
+ if (objs[i] == null) continue;
+ objs[i].lightmapScaleOffset = scaleOffset[i];
+ if (objs[i].lightmapIndex < 0 || objs[i].lightmapIndex >= existingLmaps.Count ||
+ existingLmaps[objs[i].lightmapIndex] == null ||
+ existingLmaps[objs[i].lightmapIndex].lightmapColor == null || existingLmaps[objs[i].lightmapIndex].lightmapColor.width != size[i])
+ {
+ int s = 1;//Math.Max(size[i],1);
+ var tex = new Texture2D(s, s);
+ tempTextures.Add(tex);
+ tex.SetPixels32(new Color32[s*s]);
+ tex.Apply();
+ var ldata = new LightmapData();
+ ldata.lightmapColor = tex;
+ existingLmaps.Add(ldata);
+ objs[i].lightmapIndex = existingLmaps.Count - 1;
+ }
+
+ var prop = new MaterialPropertyBlock();
+ objs[i].GetPropertyBlock(prop);
+ prop.SetFloat("bakeryLightmapSize", size[i]);
+ int lmid = ids[i];
+ if (lmid < 1000)
+ {
+ if (lmid > maxLM) maxLM = lmid;
+ }
+ UnityEngine.Random.InitState(lmid);
+ prop.SetVector("bakeryLightmapID", UnityEngine.Random.ColorHSV(0, 1, 0.3f, 0.3f, 1, 1));
+ objs[i].SetPropertyBlock(prop);
+ }
+
+ Debug.Log("Lightmap count with current settings: " + (maxLM+1));
+
+ LightmapSettings.lightmaps = existingLmaps.ToArray();
+ }
+
+ //[MenuItem("Bakery/Checker/Toggle")]
+ public static void ToggleChecker()
+ {
+ var sceneView = SceneView.lastActiveSceneView;
+ if (sceneView == null)
+ {
+ Debug.LogError("Can't get SceneView");
+ return;
+ }
+ if (enabled)
+ {
+ tempTextures = null;
+ //var sceneCameras = SceneView.GetAllSceneCameras();
+ //for(int i=0; i<sceneCameras.Length; i++) sceneCameras[i].renderingPath = RenderingPath.UsePlayerSettings;
+ sceneView.SetSceneViewShaderReplace(null, null);
+ ftLightmaps.RefreshFull();
+ enabled = false;
+
+ var gstorage = ftLightmaps.GetGlobalStorage();
+ gstorage.checkerPreviewOn = false;
+ EditorUtility.SetDirty(gstorage);
+ }
+ else
+ {
+ //if (checkerShader == null)
+ {
+ checkerShader = Shader.Find("Hidden/ftChecker");
+ if (checkerShader == null)
+ {
+ Debug.LogError("Can't load checker shader");
+ return;
+ }
+ }
+ sceneView.SetSceneViewShaderReplace(checkerShader, null);
+ //var sceneCameras = SceneView.GetAllSceneCameras();
+ //for(int i=0; i<sceneCameras.Length; i++) sceneCameras[i].renderingPath = RenderingPath.Forward;
+ enabled = true;
+
+ var gstorage = ftLightmaps.GetGlobalStorage();
+ gstorage.checkerPreviewOn = true;
+ EditorUtility.SetDirty(gstorage);
+
+ Atlas();
+ ApplyNewProperties();
+ }
+ sceneView.Repaint();
+ }
+
+ //[MenuItem("Bakery/Checker/Refresh")]
+ public static void RefreshChecker()
+ {
+ if (!enabled) return;
+ Atlas();
+ ApplyNewProperties();
+ }
+}
+
+//#endif
+#endif
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSceneView.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSceneView.cs.meta
new file mode 100644
index 00000000..d446667c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSceneView.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 875c029f22e4efd438030561aaaf38b3
+timeCreated: 1540221309
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSectorInspector.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSectorInspector.cs
new file mode 100644
index 00000000..1094c929
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSectorInspector.cs
@@ -0,0 +1,474 @@
+// Disable 'obsolete' warnings
+#pragma warning disable 0618
+
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine.SceneManagement;
+using UnityEngine;
+using System.IO;
+#if UNITY_EDITOR
+using UnityEditor;
+using UnityEditor.IMGUI.Controls;
+using UnityEditor.SceneManagement;
+#endif
+
+#if UNITY_EDITOR
+[CustomEditor(typeof(BakerySector))]
+public class BakerySectorInspector : Editor
+{
+ BoxBoundsHandle boundsHandle = new BoxBoundsHandle(typeof(BakerySectorInspector).GetHashCode());
+ SerializedProperty ftraceCaptureMode, ftraceCaptureAssetName, ftraceCaptureAsset, ftraceAllowUV;
+ int curSelectedB = -1;
+ int curSelectedC = -1;
+ Tool lastTool = Tool.None;
+
+ static GUIStyle ToggleButtonStyleNormal = null;
+ static GUIStyle ToggleButtonStyleNormalBig = null;
+ static GUIStyle CButtonStyle = null;
+ static GUIStyle XButtonStyle = null;
+ static GUIStyle LabelStyle = null;
+
+ GameObject objToRemove;
+ EditorApplication.CallbackFunction remFunc;
+
+ ftLightmapsStorage storage;
+
+ void OnEnable()
+ {
+ ftraceCaptureMode = serializedObject.FindProperty("captureMode");
+ ftraceCaptureAssetName = serializedObject.FindProperty("captureAssetName");
+ ftraceCaptureAsset = serializedObject.FindProperty("captureAsset");
+ ftraceAllowUV = serializedObject.FindProperty("allowUVPaddingAdjustment");
+ }
+
+ void RemoveWithUndo()
+ {
+ EditorApplication.delayCall -= remFunc;
+ if (objToRemove == null) return;
+ Undo.DestroyObjectImmediate(objToRemove);
+ }
+
+ public static void DisablePreview(BakerySector vol)
+ {
+ var outRend = vol.previewDisabledRenderers;
+ if (outRend != null)
+ {
+ for(int i=0; i<outRend.Count; i++)
+ {
+ if (outRend[i] != null) outRend[i].enabled = true;
+ }
+ }
+ vol.previewDisabledRenderers = null;
+
+ ftRenderLightmap.showProgressBar = false;
+ ftBuildGraphics.ProgressBarEnd(true);
+ ftRenderLightmap.showProgressBar = true;
+
+ var temp = vol.previewTempObjects;
+ if (temp != null)
+ {
+ for(int i=0; i<temp.Count; i++)
+ {
+ if (temp[i] != null) DestroyImmediate(temp[i]);
+ }
+ }
+ vol.previewTempObjects = null;
+
+ vol.previewEnabled = false;
+ EditorUtility.SetDirty(vol);
+
+ EditorSceneManager.MarkAllScenesDirty();
+ }
+
+ public override void OnInspectorGUI()
+ {
+ serializedObject.Update();
+ var vol = target as BakerySector;
+
+ if ( ToggleButtonStyleNormal == null )
+ {
+ ToggleButtonStyleNormal = "Button";
+ }
+
+ if ( ToggleButtonStyleNormalBig == null )
+ {
+ ToggleButtonStyleNormalBig = new GUIStyle("Button");
+ ToggleButtonStyleNormalBig.fixedHeight = 32;
+ }
+
+ if (CButtonStyle == null)
+ {
+ CButtonStyle = new GUIStyle("Button");
+ CButtonStyle.fixedWidth = 48;
+ }
+
+ if (XButtonStyle == null)
+ {
+ XButtonStyle = new GUIStyle("Button");
+ XButtonStyle.fixedWidth = 32;
+ }
+
+ if (LabelStyle == null)
+ {
+ LabelStyle = new GUIStyle("Label");
+ LabelStyle.fontSize = 18;
+ LabelStyle.fontStyle = FontStyle.Bold;
+ }
+
+ if (remFunc == null) remFunc = new EditorApplication.CallbackFunction(RemoveWithUndo);
+
+ EditorGUILayout.PropertyField(ftraceAllowUV, new GUIContent("Allow UV adjustment", "Allow UV padding adjustment when baking this sector? Disable when having multiple sectors affecting instances of the same mesh to prevent one sector from breaking UVs on another sector."));
+
+ if (vol.previewEnabled) GUI.enabled = false;
+ EditorGUILayout.PropertyField(ftraceCaptureMode, new GUIContent("Capture mode", "'Capture In Place' will generate outside geometry approximation every time 'Render' is pressed or RTPreview is open. It is a good option for exterior scenes where all sectors are loaded together and visible in the Editor.\n'Capture To Asset' will save approximated outside geometry into a file which can be used in another scene using 'Load Captured'."));
+
+ if (ftraceCaptureMode.intValue == (int)BakerySector.CaptureMode.CaptureToAsset)
+ {
+ EditorGUILayout.Space();
+ var assetName = ftraceCaptureAssetName.stringValue;
+ if (assetName.Length == 0) assetName = "SectorCapture_" + target.name;
+ assetName = EditorGUILayout.TextField("Asset name", assetName);
+ bool guiPrev = GUI.enabled;
+ GUI.enabled = false;
+ EditorGUILayout.PropertyField(ftraceCaptureAsset, new GUIContent("Captured asset", ""));
+ GUI.enabled = guiPrev;
+ EditorGUILayout.Space();
+ if (GUILayout.Button("Capture", GUILayout.Height(32)))
+ {
+ if (storage == null) storage = ftRenderLightmap.FindRenderSettingsStorage();
+
+ var asset = ScriptableObject.CreateInstance<BakerySectorCapture>();
+ asset.write = true;
+
+ ftRenderLightmap.fullSectorRender = true;
+ ftBuildGraphics.modifyLightmapStorage = false;
+ ftBuildGraphics.validateLightmapStorageImmutability = false;
+ var exportSceneFunc = ftBuildGraphics.ExportScene(null, false, true, asset);
+ var prevSector = storage.renderSettingsSector as BakerySector;
+ storage.renderSettingsSector = ftRenderLightmap.curSector = vol;
+ while(exportSceneFunc.MoveNext())
+ {
+ }
+ storage.renderSettingsSector = ftRenderLightmap.curSector = prevSector;
+
+ if (asset.meshes != null && asset.meshes.Count > 0)
+ {
+ string fname;
+ var activeScene = SceneManager.GetActiveScene();
+ if (activeScene.path.Length > 0)
+ {
+ fname = Path.GetDirectoryName(activeScene.path) + "/" + assetName;
+ }
+ else
+ {
+ fname = "Assets/" + assetName;
+ }
+
+ var tform = (target as BakerySector).transform;
+ asset.sectorPos = tform.position;
+ asset.sectorRot = tform.rotation;
+
+ var apath = fname + ".asset";
+ AssetDatabase.CreateAsset(asset, apath);
+
+ for(int i=0; i<asset.meshes.Count; i++)
+ {
+ if (asset.meshes[i] == null)
+ {
+ Debug.LogError("Mesh " + i + " is null");
+ continue;
+ }
+ AssetDatabase.AddObjectToAsset(asset.meshes[i], apath);
+ AssetDatabase.AddObjectToAsset(asset.textures[i], apath);
+ }
+
+ AssetDatabase.SaveAssets();
+ ftraceCaptureAsset.objectReferenceValue = asset;
+ }
+ else
+ {
+ Debug.LogError("SectorCapture wasn't generated");
+ }
+ ftBuildGraphics.ProgressBarEnd(true);
+ }
+ EditorGUILayout.Space();
+ }
+ else if (ftraceCaptureMode.intValue == (int)BakerySector.CaptureMode.LoadCaptured)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.PropertyField(ftraceCaptureAsset, new GUIContent("Captured asset", ""));
+ }
+
+ if (vol.previewEnabled) GUI.enabled = true;
+
+ EditorGUILayout.Space();
+
+ bool loadNothing = (ftraceCaptureMode.intValue == (int)BakerySector.CaptureMode.LoadCaptured && ftraceCaptureAsset.objectReferenceValue == null);
+ if (loadNothing) GUI.enabled = false;
+
+ bool previewEnabled = GUILayout.Toggle(vol.previewEnabled, "Preview", ToggleButtonStyleNormalBig);
+ if (!vol.previewEnabled && previewEnabled)
+ {
+ vol.previewEnabled = true;
+
+ if (storage == null) storage = ftRenderLightmap.FindRenderSettingsStorage();
+
+ BakerySectorCapture asset = null;
+ bool loadedAsset = (ftraceCaptureMode.intValue == (int)BakerySector.CaptureMode.LoadCaptured);
+
+ if (loadedAsset)
+ {
+ asset = vol.captureAsset;
+ asset.write = false;
+ }
+ else
+ {
+ asset = ScriptableObject.CreateInstance<BakerySectorCapture>();
+ asset.write = true;
+ }
+
+ ftRenderLightmap.showProgressBar = false;
+ ftRenderLightmap.fullSectorRender = true;
+ ftBuildGraphics.modifyLightmapStorage = false;
+ ftBuildGraphics.validateLightmapStorageImmutability = false;
+ var exportSceneFunc = ftBuildGraphics.ExportScene(null, false, true, asset);
+ var prevSector = storage.renderSettingsSector as BakerySector;
+ storage.renderSettingsSector = ftRenderLightmap.curSector = vol;
+ while(exportSceneFunc.MoveNext())
+ {
+ }
+ storage.renderSettingsSector = ftRenderLightmap.curSector = prevSector;
+ ftRenderLightmap.showProgressBar = true;
+
+ var outRend = asset.outsideRenderers;
+ vol.previewDisabledRenderers = outRend;
+ if (outRend != null)
+ {
+ for(int i=0; i<outRend.Count; i++)
+ {
+ if (outRend[i] != null) outRend[i].enabled = false;
+ }
+ }
+
+ vol.previewTempObjects = ftBuildGraphics.temporaryGameObjects;
+
+ EditorUtility.SetDirty(vol);
+ if (!loadedAsset) DestroyImmediate(asset);
+
+ EditorSceneManager.MarkAllScenesDirty();
+ }
+ else if (vol.previewEnabled && !previewEnabled)
+ {
+ DisablePreview(vol);
+ }
+ if (loadNothing) GUI.enabled = true;
+
+ EditorGUILayout.Space();
+ EditorGUILayout.BeginVertical("box");
+
+ if (previewEnabled) GUI.enabled = false;
+
+ if (GUILayout.Button(new GUIContent("Add capture point", "Adds a new capture point to this sector. Points will appear as dummy objects parented to this object. When baking the scene (or clicking 'Capture'), each point will generate a simplified scene representation as seen from it. Points can approximate parts of the outside scene geometry and provide shadows/bounces from that geometry without loading the whole world in memory.")))
+ {
+ var g = new GameObject();
+ Undo.RegisterCreatedObjectUndo(g, "Create capture point");
+ g.name = vol.name + "_C_" + vol.tforms.Count;
+ var t = g.transform;
+ t.localPosition = vol.transform.position;
+ t.parent = vol.transform;
+ t.localScale = Vector3.one * 4;
+ vol.cpoints.Add(t);
+ }
+
+ EditorGUILayout.Space();
+
+ if (vol.cpoints.Count > 0)
+ {
+ GUILayout.Label("Edit capture points:");
+ }
+
+ for(int i=0; i<vol.cpoints.Count; i++)
+ {
+ if (vol.cpoints[i] == null)
+ {
+ vol.cpoints.RemoveAt(i);
+ curSelectedC = -1;
+ break;
+ }
+
+ GUILayout.BeginHorizontal("box");
+
+ bool wasSelected = i == curSelectedC;
+ bool selected = GUILayout.Toggle(i == curSelectedC, new GUIContent("" + i, "Select this capture point. Switch to the Move tool to manipulate it."), ToggleButtonStyleNormal);
+ if (selected)
+ {
+ curSelectedC = i;
+ curSelectedB = -1;
+ }
+ else if (wasSelected != selected)
+ {
+ curSelectedC = -1;
+ }
+
+ if (GUILayout.Button("Clone", CButtonStyle))
+ {
+ var g = new GameObject();
+ Undo.RegisterCreatedObjectUndo(g, "Clone capture point");
+ g.name = vol.name + "_C_" + vol.cpoints.Count;
+ var t = g.transform;
+ t.localPosition = vol.cpoints[i].position;
+ t.parent = vol.transform;
+ t.localScale = Vector3.one * 4;
+ vol.cpoints.Add(t);
+ }
+
+ if (GUILayout.Button(new GUIContent("X", "Delete this capture point"), XButtonStyle))
+ {
+ objToRemove = vol.cpoints[i].gameObject;
+
+ Undo.RecordObject(vol, "Remove capture point");
+ vol.cpoints.RemoveAt(i);
+ curSelectedC = -1;
+
+ EditorApplication.delayCall += remFunc;
+
+ break;
+ }
+ GUILayout.EndHorizontal();
+ }
+
+ EditorGUILayout.EndVertical();
+
+ if (previewEnabled) GUI.enabled = true;
+
+ serializedObject.ApplyModifiedProperties();
+ }
+
+ protected virtual void OnSceneGUI()
+ {
+ var vol = (BakerySector)target;
+
+ var origHMatrix = Handles.matrix;
+ boundsHandle.center = Vector3.zero;
+ boundsHandle.size = Vector3.one;
+
+ var solid = new Color(0.3f, 0.6f, 0.95f) * 2;
+ //var semiTransparent = new Color(1, 1, 1, 0.2f);
+ Handles.color = solid;
+
+ if (Tools.current != lastTool && Tools.current != Tool.None)
+ {
+ lastTool = Tools.current;
+ }
+ if (curSelectedB >= 0 || curSelectedC >= 0) Tools.current = Tool.None;
+
+ for(int i=0; i<vol.tforms.Count; i++)
+ {
+ if (vol.tforms[i] == null) continue;
+
+ Handles.matrix = origHMatrix;
+ //Handles.color = solid;
+
+ Handles.zTest = UnityEngine.Rendering.CompareFunction.Less;
+ Handles.matrix = Matrix4x4.TRS(vol.tforms[i].position, vol.tforms[i].rotation, Vector3.one);
+ boundsHandle.size = vol.tforms[i].localScale;
+
+ Handles.Label(Vector3.zero, "" + i, LabelStyle);
+
+ if (!vol.previewEnabled)
+ {
+ EditorGUI.BeginChangeCheck();
+ boundsHandle.DrawHandle();
+ if (EditorGUI.EndChangeCheck())
+ {
+ Undo.RecordObject(vol.tforms[i], "Change Bounds");
+ vol.tforms[i].localScale = boundsHandle.size;
+ vol.tforms[i].position = Handles.matrix.MultiplyPoint(boundsHandle.center);
+ }
+ }
+
+ //Handles.color = semiTransparent;
+ //Handles.DrawWireCube(boundsHandle.center, boundsHandle.size + Vector3.one * vol.nearDistance);
+ }
+
+ if (curSelectedB >= 0)
+ {
+ Handles.matrix = origHMatrix;
+ int i = curSelectedB;
+ Handles.zTest = UnityEngine.Rendering.CompareFunction.Always;
+ var pos = vol.tforms[i].position;
+ var rot = vol.tforms[i].rotation;
+ var scl = vol.tforms[i].localScale;
+
+ if (!vol.previewEnabled)
+ {
+ EditorGUI.BeginChangeCheck();
+ if (lastTool == Tool.Move)
+ {
+ pos = Handles.PositionHandle(pos, Quaternion.identity);
+ }
+ else if (lastTool == Tool.Rotate)
+ {
+ rot = Handles.RotationHandle(rot, pos);
+ }
+ else if (lastTool == Tool.Scale)
+ {
+ scl = Handles.ScaleHandle(scl, pos, rot, HandleUtility.GetHandleSize(pos));
+ }
+ if (EditorGUI.EndChangeCheck())
+ {
+ Undo.RecordObject(vol.tforms[i], "Change Bounds");
+ vol.tforms[i].position = pos;
+ vol.tforms[i].rotation = rot;
+ vol.tforms[i].localScale = scl;
+ }
+ }
+ }
+
+ Handles.matrix = Matrix4x4.identity;
+ Handles.color = Color.green;
+
+ for(int i=0; i<vol.cpoints.Count; i++)
+ {
+ if (vol.cpoints[i] == null) continue;
+
+ Handles.zTest = UnityEngine.Rendering.CompareFunction.Less;
+
+ try
+ {
+ Handles.Label(vol.cpoints[i].position, "" + i, LabelStyle);
+ }
+ catch
+ {
+ // Unity can throw nullrefs when Handles.Label uses larger font
+ }
+ }
+
+ if (curSelectedC >= 0)
+ {
+ int i = curSelectedC;
+ Handles.zTest = UnityEngine.Rendering.CompareFunction.Always;
+
+ if (vol.cpoints[i] != null)
+ {
+ var pos = vol.cpoints[i].position;
+
+ if (!vol.previewEnabled)
+ {
+ EditorGUI.BeginChangeCheck();
+ if (lastTool == Tool.Move)
+ {
+ pos = Handles.PositionHandle(pos, Quaternion.identity);
+ }
+
+ if (EditorGUI.EndChangeCheck())
+ {
+ Undo.RecordObject(vol.cpoints[i], "Change capture point");
+ vol.cpoints[i].position = pos;
+ }
+ }
+ }
+ }
+ }
+}
+#endif
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSectorInspector.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSectorInspector.cs.meta
new file mode 100644
index 00000000..7a75de1f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSectorInspector.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: adbe9477f3f37ce4b9269e796a502ed0
+timeCreated: 1619369355
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSettingsProvider.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSettingsProvider.cs
new file mode 100644
index 00000000..3cdf1250
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSettingsProvider.cs
@@ -0,0 +1,69 @@
+using UnityEditor;
+using UnityEngine;
+
+public class ftSettingsProvider
+{
+ static BakeryProjectSettings pstorage;
+
+ static void GUIHandler(string searchContext)
+ {
+ if (pstorage == null) pstorage = ftLightmaps.GetProjectSettings();
+ if (pstorage == null) return;
+
+ var so = new SerializedObject(pstorage);
+
+ var prev = EditorGUIUtility.labelWidth;
+ EditorGUIUtility.labelWidth = 280;
+
+ EditorGUILayout.PropertyField(so.FindProperty("mipmapLightmaps"), new GUIContent("Mipmap Lightmaps", "Enable mipmapping on lightmap assets. Can cause leaks across UV charts as atlases get smaller."));
+ EditorGUILayout.PropertyField(so.FindProperty("format8bit"), new GUIContent("Mask/Direction format", ""));
+ EditorGUILayout.PropertyField(so.FindProperty("texelPaddingForDefaultAtlasPacker"), new GUIContent("Texel padding (Default atlas packer)", "How many empty texels to add between objects' UV layouts in lightmap atlases."), GUILayout.ExpandWidth(true));
+ EditorGUILayout.PropertyField(so.FindProperty("texelPaddingForXatlasAtlasPacker"), new GUIContent("Texel padding (xatlas packer)", "How many empty texels to add between objects' UV layouts in lightmap atlases."));
+ EditorGUILayout.PropertyField(so.FindProperty("alphaMetaPassResolutionMultiplier"), new GUIContent("Alpha Meta Pass resolution multiplier", "Scales resolution for alpha Meta Pass maps."));
+ //EditorGUILayout.PropertyField(so.FindProperty("volumeRenderMode"), new GUIContent("Volume render mode", "Render mode for volumes."));
+
+ var volMode = (BakeryLightmapGroup.RenderMode)so.FindProperty("volumeRenderMode").intValue;
+ var newVolMode = (BakeryLightmapGroup.RenderMode)EditorGUILayout.EnumPopup(new GUIContent("Volume render mode", "Render mode for volumes."), volMode);
+ if (volMode != newVolMode) so.FindProperty("volumeRenderMode").intValue = (int)newVolMode;
+
+ EditorGUILayout.PropertyField(so.FindProperty("deletePreviousLightmapsBeforeBake"), new GUIContent("Delete previous lightmaps before bake", "Should previously rendered Bakery lightmaps be deleted before the new bake?"));
+ EditorGUILayout.PropertyField(so.FindProperty("logLevel"), new GUIContent("Log level", "Print information about the bake process to console? 0 = don't. 1 = info only; 2 = warnings only; 3 = everything."));
+ EditorGUILayout.PropertyField(so.FindProperty("alternativeScaleInLightmap"), new GUIContent("Alternative Scale in Lightmap", "Make 'Scale in Lightmap' renderer property act more similar to built-in Unity behaviour."));
+ EditorGUILayout.PropertyField(so.FindProperty("generateSmoothPos"), new GUIContent("Generate smooth positions", "Should we adjust sample positions to prevent incorrect shadowing on very low-poly meshes with smooth normals?"));
+
+ EditorGUIUtility.labelWidth = prev;
+
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+
+ if (GUILayout.Button("Revert to defaults"))
+ {
+ if (EditorUtility.DisplayDialog("Bakery", "Revert Bskery project settings to default?", "Yes", "No"))
+ {
+ so.FindProperty("mipmapLightmaps").boolValue = false;
+ so.FindProperty("format8bit").intValue = 0;
+ so.FindProperty("texelPaddingForDefaultAtlasPacker").intValue = 3;
+ so.FindProperty("texelPaddingForXatlasAtlasPacker").intValue = 1;
+ so.FindProperty("alphaMetaPassResolutionMultiplier").intValue = 2;
+ so.FindProperty("volumeRenderMode").intValue = 1000;
+ so.FindProperty("deletePreviousLightmapsBeforeBake").boolValue = false;
+ so.FindProperty("logLevel").intValue = 3;
+ so.FindProperty("alternativeScaleInLightmap").boolValue = false;
+ so.FindProperty("generateSmoothPos").boolValue = true;
+ }
+ }
+
+ so.ApplyModifiedPropertiesWithoutUndo();
+ }
+
+#if UNITY_2018_3_OR_NEWER
+ [SettingsProvider]
+ public static SettingsProvider CreateSettingsProvider()
+ {
+ var provider = new SettingsProvider("Project/BakeryGlobalSettings", SettingsScope.Project);
+ provider.label = "Bakery GPU Lightmapper";
+ provider.guiHandler = GUIHandler;
+ return provider;
+ }
+#endif
+}
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSettingsProvider.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSettingsProvider.cs.meta
new file mode 100644
index 00000000..8007a641
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSettingsProvider.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: a23d6b5064fb9a9408669cb173b201a8
+timeCreated: 1622052091
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftShaderTweaks.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftShaderTweaks.cs
new file mode 100644
index 00000000..c21e5cd2
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftShaderTweaks.cs
@@ -0,0 +1,777 @@
+#if UNITY_EDITOR
+
+using UnityEngine;
+using UnityEngine.Rendering;
+using UnityEditor;
+using System.IO;
+using System.Text;
+using System.Collections;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using UnityEditor.SceneManagement;
+using UnityEngine.SceneManagement;
+using System.Diagnostics;
+using System.Linq;
+
+public class ftShaderTweaks : ScriptableWizard
+{
+ public bool bicubic;
+ public bool bicubicShadow;
+ public bool shadowBlend;
+ public bool falloff;
+ public bool falloffDeferred;
+ bool initialized = false;
+ //bool agree = false;
+ string includeGIPath;
+ string includeShadowPath;
+ string includeLightPath;
+ string includeDeferredPath;
+ string shadersDir;
+
+ string ftSignatureBegin = "//<FTRACEV1.0>";
+ string ftSignatureBicubic = "//<FTRACE_BICUBIC>";
+ string ftSignatureShadowmask = "//<FTRACE_SHADOWMASK>";
+ string ftSignatureEnd = "//</FTRACEV1.0>";
+ string unityLightmapReadCode = "half3 bakedColor = DecodeLightmap(bakedColorTex);";
+ //string unityLightMatrixDecl = "unityShadowCoord4x4 unity_WorldToLight;";
+ string unityDefineLightAtten = "#define UNITY_LIGHT_ATTENUATION(destName, input, worldPos) ";
+ string unityGetShadowCoord = "unityShadowCoord3 lightCoord = mul(unity_WorldToLight, unityShadowCoord4(worldPos, 1)).xyz;";
+ string unityGetShadowCoord4 = "unityShadowCoord4 lightCoord = mul(unity_WorldToLight, unityShadowCoord4(worldPos, 1));";
+ string unityGetShadow = "fixed shadow = UNITY_SHADOW_ATTENUATION(input, worldPos);";
+ string ftLightFalloff = "fixed destName = ftLightFalloff(unity_WorldToLight, worldPos)";
+ //string unityLightFalloffNew = "UnitySpotAttenuate(lightCoord.xyz)";
+ //string ftLightFalloffNew = "ftLightFalloff(unity_WorldToLight, worldPos)";
+ //string unityLightFalloffNew2 = "UnitySpotAttenuate(worldPos)";
+ //string ftLightFalloffNew2 = "ftLightFalloff(unity_WorldToLight, worldPos)";
+ string unitySpotFalloffDeferred = "atten *= tex2D (_LightTextureB0,";
+ string ftSpotFalloffDeferred = "atten *= ftLightFalloff(_LightPos, wpos);";
+ string unityPointFalloffDeferred = "float atten = tex2D (_LightTextureB0, ";
+ string ftPointFalloffDeferred = "float atten = ftLightFalloff(_LightPos, wpos);";
+ string unityShadowMaskRead = "UNITY_SAMPLE_TEX2D(unity_ShadowMask";
+ string ftShadowMaskRead = "ftBicubicSampleShadow(unity_ShadowMask";
+ string unityShadowMaskRead2 = "UNITY_SAMPLE_TEX2D_SAMPLER(unity_ShadowMask";
+ string ftShadowMaskRead2 = "ftBicubicSampleShadow2(unity_ShadowMask";
+ string unityShadowMaskBlend = "min(realtimeShadowAttenuation, bakedShadowAttenuation)";
+ string ftShadowMaskBlend = "(realtimeShadowAttenuation * bakedShadowAttenuation)";
+
+ //string ftLightFalloffDeferred = "#define LIGHT_ATTENUATION ftLightFalloff(unity_WorldToLight, worldPos) * SHADOW_ATTENUATION(a))";
+
+ void OnInspectorUpdate()
+ {
+ Repaint();
+ }
+
+ void CopyInclude(string shadersDir)
+ {
+ var edPath = ftLightmaps.GetEditorPath();
+ File.Copy(edPath + "shaderSrc/ftrace.cginc", shadersDir + "/ftrace.cginc", true);
+ }
+
+ bool RevertFile(string fname)
+ {
+ var reader = new StreamReader(fname);
+ if (reader == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + fname);
+ return false;
+ }
+ var lines = new List<string>();
+ bool inBlock = false;
+ while (!reader.EndOfStream)
+ {
+ var line = reader.ReadLine();
+ if (line.StartsWith(ftSignatureBegin))
+ {
+ inBlock = true;
+ }
+ else if (line.StartsWith(ftSignatureEnd))
+ {
+ inBlock = false;
+ }
+ else if (!inBlock)
+ {
+ lines.Add(line);
+ }
+ }
+ reader.Close();
+
+ var writer = new StreamWriter(fname, false);
+ if (writer == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + fname);
+ return false;
+ }
+ for(int i=0; i<lines.Count; i++)
+ {
+ writer.WriteLine(lines[i]);
+ }
+ writer.Close();
+ //EditorUtility.DisplayDialog("Bakery", "Restart Editor to apply changes", "OK");
+ return true;
+ }
+
+ void OnGUI()
+ {
+ if (!initialized)
+ {
+ try
+ {
+ bicubic = false;
+ var entryAssembly = new StackTrace().GetFrames().Last().GetMethod().Module.Assembly;
+ var managedDir = System.IO.Path.GetDirectoryName(entryAssembly.Location);
+ shadersDir = managedDir + "/../CGIncludes/";
+ if (!Directory.Exists(shadersDir)) shadersDir = managedDir + "/../../CGIncludes/";
+ if (!Directory.Exists(shadersDir))
+ {
+ UnityEngine.Debug.LogError("Can't find directory: " + shadersDir);
+ return;
+ }
+
+ includeGIPath = shadersDir + "UnityGlobalIllumination.cginc";
+ if (File.Exists(includeGIPath))
+ {
+ var reader = new StreamReader(includeGIPath);
+ if (reader == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeGIPath);
+ bicubic = false;
+ return;
+ }
+ //bool patched = false;
+ while (!reader.EndOfStream)
+ {
+ var line = reader.ReadLine();
+ if (line.StartsWith(ftSignatureBegin))
+ {
+ UnityEngine.Debug.Log("Bicubic: already patched");
+ //patched = true;
+ bicubic = true;
+ break;
+ }
+ }
+ reader.Close();
+ }
+
+ shadowBlend = false;
+ includeShadowPath = shadersDir + "UnityShadowLibrary.cginc";
+ if (File.Exists(includeShadowPath))
+ {
+ var reader = new StreamReader(includeShadowPath);
+ if (reader == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeShadowPath);
+ bicubicShadow = false;
+ return;
+ }
+ //bool patched = false;
+ while (!reader.EndOfStream)
+ {
+ var line = reader.ReadLine();
+ if (line.StartsWith(ftSignatureShadowmask))
+ {
+ UnityEngine.Debug.Log("Shadowmask: already patched");
+ //patched = true;
+ shadowBlend = true;
+ break;
+ }
+ }
+ reader.Close();
+ }
+
+ falloff = false;
+ includeLightPath = shadersDir + "AutoLight.cginc";
+ if (File.Exists(includeLightPath))
+ {
+ var reader = new StreamReader(includeLightPath);
+ if (reader == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeLightPath);
+ falloff = false;
+ return;
+ }
+ //bool patched = false;
+ while (!reader.EndOfStream)
+ {
+ var line = reader.ReadLine();
+ if (line.StartsWith(ftSignatureBegin))
+ {
+ UnityEngine.Debug.Log("Lights: already patched");
+ //patched = true;
+ falloff = true;
+ break;
+ }
+ }
+ reader.Close();
+ }
+ falloffDeferred = false;
+ includeDeferredPath = shadersDir + "UnityDeferredLibrary.cginc";
+ if (File.Exists(includeDeferredPath))
+ {
+ var reader = new StreamReader(includeDeferredPath);
+ if (reader == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeDeferredPath);
+ falloffDeferred = false;
+ return;
+ }
+ //bool patched = false;
+ while (!reader.EndOfStream)
+ {
+ var line = reader.ReadLine();
+ if (line.StartsWith(ftSignatureBegin))
+ {
+ UnityEngine.Debug.Log("Lights: already patched");
+ //patched = true;
+ falloffDeferred = true;
+ break;
+ }
+ }
+ reader.Close();
+ }
+ initialized = true;
+ }
+ catch//(System.UnauthorizedAccessException err)
+ {
+ GUI.Label(new Rect(10, 20, 320, 60), "Can't access Unity shader include files,\ntry running Unity as admin.");
+ return;
+ }
+ }
+
+ bool wasBicubic = bicubic;
+ //bool wasBicubicShadow = bicubicShadow;
+ bool wasShadowBlend = shadowBlend;
+ bool wasFalloff = falloff;
+ bool wasFalloffDeferred = falloffDeferred;
+
+ this.minSize = new Vector2(320, 290+60);
+
+ GUI.Label(new Rect(10, 20, 320, 60), "These settings will modify base Unity shaders.\nAll projects opened with this version of Editor\nwill use modified shaders.");
+ //agree = GUI.Toggle(new Rect(10, 65, 200, 15), agree, "I understand");
+
+ GUI.BeginGroup(new Rect(10, 80, 300, 260), "Options");
+ if (initialized)
+ {
+ bicubic = GUI.Toggle(new Rect(10, 20, 280, 50), bicubic, "Use bicubic interpolation for lightmaps", "Button");
+ shadowBlend = GUI.Toggle(new Rect(10, 80, 280, 50), shadowBlend, "Use multiplication for shadowmask", "Button");
+ falloff = GUI.Toggle(new Rect(10, 140, 280, 50), falloff, "Use physical light falloff (Forward)", "Button");
+ falloffDeferred = GUI.Toggle(new Rect(10, 200, 280, 50), falloffDeferred, "Use physical light falloff (Deferred)", "Button");
+
+ if (!wasBicubic && bicubic)
+ {
+ CopyInclude(shadersDir);
+ var reader = new StreamReader(includeGIPath);
+ if (reader == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeGIPath);
+ bicubic = false;
+ return;
+ }
+ bool patched = false;
+
+ var lines = new List<string>();
+ lines.Add(ftSignatureBegin);
+ lines.Add(ftSignatureBicubic);
+ lines.Add("#define USEFTRACE\n");
+ lines.Add("#ifdef USEFTRACE");
+ lines.Add("#include \"ftrace.cginc\"");
+ lines.Add("#endif");
+ lines.Add(ftSignatureEnd);
+
+ while (!reader.EndOfStream)
+ {
+ var line = reader.ReadLine();
+ if (line.StartsWith(ftSignatureBicubic))
+ {
+ UnityEngine.Debug.Log("Already patched");
+ patched = true;
+ break;
+ }
+ else if (line.Trim() == unityLightmapReadCode)
+ {
+ lines.Add(ftSignatureBegin);
+ lines.Add("#ifdef USEFTRACE");
+ lines.Add(" half3 bakedColor = ftLightmapBicubic(data.lightmapUV.xy);");
+ lines.Add("#else");
+ lines.Add(ftSignatureEnd);
+
+ lines.Add(unityLightmapReadCode);
+
+ lines.Add(ftSignatureBegin);
+ lines.Add("#endif");
+ lines.Add(ftSignatureEnd);
+ }
+ else
+ {
+ lines.Add(line);
+ }
+ }
+ reader.Close();
+
+ if (!patched)
+ {
+ if (!File.Exists(includeGIPath + "_backup")) File.Copy(includeGIPath, includeGIPath + "_backup");
+ var writer = new StreamWriter(includeGIPath, false);
+
+ if (writer == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeGIPath);
+ bicubic = false;
+ return;
+ }
+
+ for(int i=0; i<lines.Count; i++)
+ {
+ writer.WriteLine(lines[i]);
+ }
+ writer.Close();
+ //EditorUtility.DisplayDialog("Bakery", "Restart Editor to apply changes", "OK");
+ }
+
+ reader = new StreamReader(includeShadowPath);
+ if (reader == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeShadowPath);
+ bicubic = false;
+ return;
+ }
+ patched = false;
+
+ lines = new List<string>();
+ lines.Add(ftSignatureBegin);
+ lines.Add(ftSignatureBicubic);
+ lines.Add("#define USEFTRACE\n");
+ lines.Add("#ifdef USEFTRACE");
+ lines.Add("#include \"ftrace.cginc\"");
+ lines.Add("#endif");
+ lines.Add(ftSignatureEnd);
+
+ while (!reader.EndOfStream)
+ {
+ var line = reader.ReadLine();
+ if (line.StartsWith(ftSignatureBicubic))
+ {
+ UnityEngine.Debug.Log("Already patched");
+ patched = true;
+ break;
+ }
+ else if (line.IndexOf(unityShadowMaskRead) >= 0)
+ {
+ lines.Add(ftSignatureBegin);
+ lines.Add("#ifdef USEFTRACE");
+ lines.Add(line.Replace(unityShadowMaskRead, ftShadowMaskRead));
+ lines.Add("#else");
+ lines.Add(ftSignatureEnd);
+
+ lines.Add(line);
+
+ lines.Add(ftSignatureBegin);
+ lines.Add("#endif");
+ lines.Add(ftSignatureEnd);
+ }
+ else if (line.IndexOf(unityShadowMaskRead2) >= 0)
+ {
+ lines.Add(ftSignatureBegin);
+ lines.Add("#ifdef USEFTRACE");
+ lines.Add(line.Replace(unityShadowMaskRead2, ftShadowMaskRead2));
+ lines.Add("#else");
+ lines.Add(ftSignatureEnd);
+
+ lines.Add(line);
+
+ lines.Add(ftSignatureBegin);
+ lines.Add("#endif");
+ lines.Add(ftSignatureEnd);
+ }
+ else
+ {
+ lines.Add(line);
+ }
+ }
+ reader.Close();
+
+ if (!patched)
+ {
+ if (!File.Exists(includeShadowPath + "_backup")) File.Copy(includeShadowPath, includeShadowPath + "_backup");
+ var writer = new StreamWriter(includeShadowPath, false);
+
+ if (writer == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeShadowPath);
+ bicubicShadow = false;
+ return;
+ }
+
+ for(int i=0; i<lines.Count; i++)
+ {
+ writer.WriteLine(lines[i]);
+ }
+ writer.Close();
+ EditorUtility.DisplayDialog("Bakery", "Restart Editor to apply changes", "OK");
+ }
+ }
+
+ if (wasBicubic && !bicubic)
+ {
+ bicubic = true;
+ if (RevertFile(includeGIPath)) bicubic = false;
+ bicubicShadow = true;
+ if (RevertFile(includeShadowPath))
+ {
+ bicubicShadow = false;
+ shadowBlend = false;
+ }
+ EditorUtility.DisplayDialog("Bakery", "Restart Editor to apply changes", "OK");
+ }
+
+ if (!wasShadowBlend && shadowBlend)
+ {
+ CopyInclude(shadersDir);
+ var reader = new StreamReader(includeShadowPath);
+ if (reader == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeShadowPath);
+ shadowBlend = false;
+ return;
+ }
+ bool patched = false;
+
+ var lines = new List<string>();
+ lines.Add(ftSignatureBegin);
+ lines.Add(ftSignatureShadowmask);
+ lines.Add("#define USEFTRACE\n");
+ lines.Add("#ifdef USEFTRACE");
+ lines.Add("#include \"ftrace.cginc\"");
+ lines.Add("#endif");
+ lines.Add(ftSignatureEnd);
+
+ while (!reader.EndOfStream)
+ {
+ var line = reader.ReadLine();
+ if (line.StartsWith(ftSignatureShadowmask))
+ {
+ UnityEngine.Debug.Log("Already patched");
+ patched = true;
+ break;
+ }
+ else if (line.IndexOf(unityShadowMaskBlend) >= 0)
+ {
+ lines.Add(ftSignatureBegin);
+ lines.Add("#ifdef USEFTRACE");
+ lines.Add(line.Replace(unityShadowMaskBlend, ftShadowMaskBlend));
+ lines.Add("#else");
+ lines.Add(ftSignatureEnd);
+
+ lines.Add(line);
+
+ lines.Add(ftSignatureBegin);
+ lines.Add("#endif");
+ lines.Add(ftSignatureEnd);
+ }
+ else
+ {
+ lines.Add(line);
+ }
+ }
+ reader.Close();
+
+ if (!patched)
+ {
+ if (!File.Exists(includeShadowPath + "_backup")) File.Copy(includeShadowPath, includeShadowPath + "_backup");
+ var writer = new StreamWriter(includeShadowPath, false);
+
+ if (writer == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeShadowPath);
+ shadowBlend = false;
+ return;
+ }
+
+ for(int i=0; i<lines.Count; i++)
+ {
+ writer.WriteLine(lines[i]);
+ }
+ writer.Close();
+ EditorUtility.DisplayDialog("Bakery", "Restart Editor to apply changes", "OK");
+ }
+ }
+
+ if (wasShadowBlend && !shadowBlend)
+ {
+ shadowBlend = true;
+ if (RevertFile(includeShadowPath)) shadowBlend = false;
+
+ bicubic = true;
+ if (RevertFile(includeGIPath)) bicubic = false;
+
+ EditorUtility.DisplayDialog("Bakery", "Restart Editor to apply changes", "OK");
+ }
+
+ if (!wasFalloff && falloff)
+ {
+ CopyInclude(shadersDir);
+ var reader = new StreamReader(includeLightPath);
+ if (reader == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeLightPath);
+ falloff = false;
+ return;
+ }
+ bool patched = false;
+
+ var lines = new List<string>();
+ lines.Add(ftSignatureBegin);
+ lines.Add("#define USEFTRACE\n");
+ lines.Add("#ifdef USEFTRACE");
+ lines.Add("#include \"ftrace.cginc\"");
+ lines.Add("#endif");
+ lines.Add(ftSignatureEnd);
+ int lastIfdef = 0;
+ int lastEndif = 0;
+ int lastDefine = 0;
+
+ while (!reader.EndOfStream)
+ {
+ var line = reader.ReadLine();
+
+ //if (line.IndexOf(unityLightFalloffNew) >= 0)
+ //{
+ // lines.Add(ftSignatureBegin);
+ // lines.Add("/*");
+ // lines.Add(ftSignatureEnd);
+//
+ // lines.Add(line);
+//
+ // lines.Add(ftSignatureBegin);
+ // lines.Add("*/");
+ // lines.Add(line.Replace(unityLightFalloffNew, ftLightFalloffNew));
+ // lines.Add(ftSignatureEnd);
+ // continue;
+ //}
+ //else if (line.IndexOf(unityLightFalloffNew2) >= 0)
+ //{
+ // lines.Add(ftSignatureBegin);
+ // lines.Add("/*");
+ // lines.Add(ftSignatureEnd);
+//
+ // lines.Add(line);
+//
+ // lines.Add(ftSignatureBegin);
+ // lines.Add("*/");
+ // lines.Add(line.Replace(unityLightFalloffNew2, ftLightFalloffNew2));
+ // lines.Add(ftSignatureEnd);
+ // continue;
+ //}
+
+ if (line.IndexOf("#if") >= 0) lastIfdef = lines.Count;
+ if (line.IndexOf("define UNITY_LIGHT_ATTENUATION") >= 0 || line.IndexOf("define LIGHT_ATTENUATION") >= 0)
+ {
+ lastDefine = lines.Count;
+ }
+ if (line.IndexOf("#endif") >= 0) lastEndif = lines.Count;
+
+ if (line.StartsWith(ftSignatureBegin))
+ {
+ UnityEngine.Debug.Log("Already patched");
+ patched = true;
+ break;
+ }
+ else
+ {
+ if (lastEndif == lines.Count && lastDefine > lastIfdef) // we should be at the endif of light atten declaration
+ {
+ string ifdefLine = lines[lastIfdef];
+ string defineLine = lines[lastDefine];
+
+ if (defineLine.IndexOf("define UNITY_LIGHT_ATTENUATION") >= 0)
+ {
+ if ((ifdefLine.IndexOf("POINT") >= 0 || ifdefLine.IndexOf("SPOT") >= 0) &&
+ ifdefLine.IndexOf("POINT_COOKIE") < 0 && ifdefLine.IndexOf("SPOT_COOKIE") < 0)
+ {
+ // Forward point light
+ lines.Insert(lastDefine, ftSignatureBegin);
+ lines.Insert(lastDefine + 1, "/*");
+ lines.Insert(lastDefine + 2, ftSignatureEnd);
+
+ lines.Add(ftSignatureBegin);
+ lines.Add("*/");
+
+ if (ifdefLine.IndexOf("POINT") >= 0)
+ {
+ //lines.Add(unityLightMatrixDecl);
+ lines.Add(unityDefineLightAtten + "\\");
+ lines.Add(unityGetShadowCoord + "\\");
+ lines.Add(unityGetShadow + "\\");
+ lines.Add(ftLightFalloff + " * shadow;");
+ }
+ else if (ifdefLine.IndexOf("SPOT") >= 0)
+ {
+ lines.Add(unityDefineLightAtten + "\\");
+ lines.Add(unityGetShadowCoord4 + "\\");
+ lines.Add(unityGetShadow + "\\");
+ lines.Add(ftLightFalloff + " * (lightCoord.z > 0) * UnitySpotCookie(lightCoord) * shadow;");
+ }
+
+ lines.Add(ftSignatureEnd);
+ }
+ }
+ //else if (defineLine.IndexOf("define LIGHT_ATTENUATION") >= 0)
+ // {
+ // if (ifdefLine.IndexOf("POINT") >= 0)
+ // {
+ // // Deferred point light
+ // lines.Insert(lastDefine, ftSignatureBegin);
+ // lines.Insert(lastDefine + 1, "/*");
+ // lines.Insert(lastDefine + 2, ftSignatureEnd);
+
+ // lines.Insert(lastDefine + 4, ftSignatureBegin);
+ // lines.Insert(lastDefine + 5, "*/");
+
+ // if (ifdefLine.IndexOf("POINT") >= 0)
+ // {
+ // lines.Add(ftLightFalloffDeferred);
+ // }
+
+ // lines.Add(ftSignatureEnd);
+ // }
+ // }
+ }
+ lines.Add(line);
+ }
+ }
+ reader.Close();
+
+ if (!patched)
+ {
+ if (!File.Exists(includeLightPath + "_backup")) File.Copy(includeLightPath, includeLightPath + "_backup");
+ var writer = new StreamWriter(includeLightPath, false);
+
+ if (writer == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeLightPath);
+ falloff = false;
+ return;
+ }
+
+ for(int i=0; i<lines.Count; i++)
+ {
+ writer.WriteLine(lines[i]);
+ }
+ writer.Close();
+ EditorUtility.DisplayDialog("Bakery", "Restart Editor to apply changes", "OK");
+ }
+ }
+
+ if (wasFalloff && !falloff)
+ {
+ falloff = true;
+ if (RevertFile(includeLightPath)) falloff = false;
+ EditorUtility.DisplayDialog("Bakery", "Restart Editor to apply changes", "OK");
+ }
+
+
+ if (!wasFalloffDeferred && falloffDeferred)
+ {
+ CopyInclude(shadersDir);
+ var reader = new StreamReader(includeDeferredPath);
+ if (reader == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeDeferredPath);
+ falloff = false;
+ return;
+ }
+ bool patched = false;
+
+ var lines = new List<string>();
+ lines.Add(ftSignatureBegin);
+ lines.Add("#define USEFTRACE\n");
+ lines.Add("#ifdef USEFTRACE");
+ lines.Add("#include \"ftrace.cginc\"");
+ lines.Add("#endif");
+ lines.Add(ftSignatureEnd);
+
+ while (!reader.EndOfStream)
+ {
+ var line = reader.ReadLine();
+ if (line.StartsWith(ftSignatureBegin))
+ {
+ UnityEngine.Debug.Log("Already patched");
+ patched = true;
+ break;
+ }
+ else if (line.IndexOf(unitySpotFalloffDeferred) >= 0)
+ {
+ lines.Add(ftSignatureBegin);
+ lines.Add("/*");
+ lines.Add(ftSignatureEnd);
+
+ lines.Add(line);
+
+ lines.Add(ftSignatureBegin);
+ lines.Add("*/");
+ lines.Add(ftSpotFalloffDeferred);
+ lines.Add(ftSignatureEnd);
+ }
+ else if (line.IndexOf(unityPointFalloffDeferred) >= 0)
+ {
+ lines.Add(ftSignatureBegin);
+ lines.Add("/*");
+ lines.Add(ftSignatureEnd);
+
+ lines.Add(line);
+
+ lines.Add(ftSignatureBegin);
+ lines.Add("*/");
+ lines.Add(ftPointFalloffDeferred);
+ lines.Add(ftSignatureEnd);
+ }
+ else
+ {
+ lines.Add(line);
+ }
+ }
+ reader.Close();
+
+ if (!patched)
+ {
+ if (!File.Exists(includeDeferredPath + "_backup")) File.Copy(includeDeferredPath, includeDeferredPath + "_backup");
+ var writer = new StreamWriter(includeDeferredPath, false);
+
+ if (writer == null)
+ {
+ UnityEngine.Debug.LogError("Can't open " + includeDeferredPath);
+ falloffDeferred = false;
+ return;
+ }
+
+ for(int i=0; i<lines.Count; i++)
+ {
+ writer.WriteLine(lines[i]);
+ }
+ writer.Close();
+ EditorUtility.DisplayDialog("Bakery", "Restart Editor to apply changes", "OK");
+ }
+ }
+
+ if (wasFalloffDeferred && !falloffDeferred)
+ {
+ falloffDeferred = true;
+ if (RevertFile(includeDeferredPath)) falloffDeferred = false;
+ EditorUtility.DisplayDialog("Bakery", "Restart Editor to apply changes", "OK");
+ }
+
+
+ }
+ else
+ {
+ GUI.Label(new Rect(10, 20, 250, 30), "Can't find Unity include at path: \n" + includeGIPath + ".");
+ }
+ GUI.EndGroup();
+ }
+
+ [MenuItem ("Bakery/Global shader tweaks", false, 60)]
+ public static void RenderLightmap () {
+ ScriptableWizard.DisplayWizard("Bakery - shader tweaks", typeof(ftShaderTweaks), "RenderLightmap");
+ }
+}
+
+#endif
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftShaderTweaks.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftShaderTweaks.cs.meta
new file mode 100644
index 00000000..2d555474
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftShaderTweaks.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 482c0edd4bdba214f93b66b9cf3c0f3e
+timeCreated: 1527024891
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSkyLightInspector.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSkyLightInspector.cs
new file mode 100644
index 00000000..c481db32
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSkyLightInspector.cs
@@ -0,0 +1,360 @@
+
+using UnityEditor;
+using UnityEngine;
+using System;
+using System.IO;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+using UnityEditor.SceneManagement;
+using UnityEngine.SceneManagement;
+
+[CustomEditor(typeof(BakerySkyLight))]
+[CanEditMultipleObjects]
+public class ftSkyLightInspector : UnityEditor.Editor
+{
+ public static Quaternion QuaternionFromMatrix(Matrix4x4 m) {
+ Quaternion q = new Quaternion();
+ q.w = Mathf.Sqrt( Mathf.Max( 0, 1 + m[0,0] + m[1,1] + m[2,2] ) ) / 2;
+ q.x = Mathf.Sqrt( Mathf.Max( 0, 1 + m[0,0] - m[1,1] - m[2,2] ) ) / 2;
+ q.y = Mathf.Sqrt( Mathf.Max( 0, 1 - m[0,0] + m[1,1] - m[2,2] ) ) / 2;
+ q.z = Mathf.Sqrt( Mathf.Max( 0, 1 - m[0,0] - m[1,1] + m[2,2] ) ) / 2;
+ q.x *= Mathf.Sign( q.x * ( m[2,1] - m[1,2] ) );
+ q.y *= Mathf.Sign( q.y * ( m[0,2] - m[2,0] ) );
+ q.z *= Mathf.Sign( q.z * ( m[1,0] - m[0,1] ) );
+ return q;
+ }
+
+ SerializedProperty ftraceLightColor;
+ SerializedProperty ftraceLightIntensity;
+ SerializedProperty ftraceLightTexture;
+ SerializedProperty ftraceLightSamples;
+ SerializedProperty ftraceLightHemi;
+ SerializedProperty ftraceLightCorrectRot;
+ SerializedProperty ftraceLightBitmask;
+ SerializedProperty ftraceLightBakeToIndirect;
+ SerializedProperty ftraceLightIndirectIntensity;
+ SerializedProperty ftraceTangentSH;
+
+ int texCached = -1;
+
+ void TestPreviewRefreshProperty(ref int cached, int newVal)
+ {
+ if (cached >= 0)
+ {
+ if (cached != newVal)
+ {
+ BakerySkyLight.lightsChanged = 2;
+ }
+ }
+ cached = newVal;
+ }
+
+ void TestPreviewRefreshProperty(ref int cached, UnityEngine.Object newVal)
+ {
+ if (newVal == null)
+ {
+ TestPreviewRefreshProperty(ref cached, 0);
+ return;
+ }
+ TestPreviewRefreshProperty(ref cached, newVal.GetInstanceID());
+ }
+
+ static string ftSkyboxShaderName = "Bakery/Skybox";
+
+ ftLightmapsStorage storage;
+
+ static string[] selStrings = new string[] {"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16",
+ "17","18","19","20","21","22","23","24","25","26","27","28","29","30"};//,"31"};
+
+ static public string[] directContributionOptions = new string[] {"Direct And Indirect (recommended)", "Indirect only"};
+
+ bool showExperimental = false;
+
+ void OnEnable()
+ {
+ ftraceLightColor = serializedObject.FindProperty("color");
+ ftraceLightIntensity = serializedObject.FindProperty("intensity");
+ ftraceLightIndirectIntensity = serializedObject.FindProperty("indirectIntensity");
+ ftraceLightTexture = serializedObject.FindProperty("cubemap");
+ ftraceLightSamples = serializedObject.FindProperty("samples");
+ ftraceLightHemi = serializedObject.FindProperty("hemispherical");
+ ftraceLightCorrectRot = serializedObject.FindProperty("correctRotation");
+ ftraceLightBitmask = serializedObject.FindProperty("bitmask");
+ ftraceLightBakeToIndirect = serializedObject.FindProperty("bakeToIndirect");
+ ftraceTangentSH = serializedObject.FindProperty("tangentSH");
+ }
+
+ public override void OnInspectorGUI() {
+ {
+ serializedObject.Update();
+
+ TestPreviewRefreshProperty(ref texCached, ftraceLightTexture.objectReferenceValue);
+
+ EditorGUILayout.PropertyField(ftraceLightColor, new GUIContent("Color", "Sky color. Multiplies texture color."));
+ EditorGUILayout.PropertyField(ftraceLightIntensity, new GUIContent("Intensity", "Color multiplier"));
+ EditorGUILayout.PropertyField(ftraceLightTexture, new GUIContent("Sky texture", "Cubemap"));
+ if (ftraceLightTexture.objectReferenceValue != null)
+ {
+ EditorGUILayout.PropertyField(ftraceLightCorrectRot, new GUIContent("Correct rotation", "Enable to have a proper match between GameObject rotation and HDRI rotation. Disabled by default for backwards compatibility."));
+ var angles = (target as BakerySkyLight).transform.eulerAngles;
+ EditorGUILayout.LabelField("Cubemap angles: " + angles.x + ", " + angles.y + ", " + angles.z);
+ EditorGUILayout.LabelField("Rotate this GameObject to change cubemap angles.");
+ EditorGUILayout.Space();
+ }
+ EditorGUILayout.PropertyField(ftraceLightSamples, new GUIContent("Samples", "The amount of rays tested for this light. Rays are emitted hemispherically."));
+
+ EditorGUILayout.PropertyField(ftraceLightHemi, new GUIContent("Hemispherical", "Only emit light from upper hemisphere"));
+
+ //ftraceLightBitmask.intValue = EditorGUILayout.MaskField(new GUIContent("Bitmask", "Lights only affect renderers with overlapping bits"), ftraceLightBitmask.intValue, selStrings);
+ int prevVal = ftraceLightBitmask.intValue;
+ int newVal = EditorGUILayout.MaskField(new GUIContent("Bitmask", "Lights only affect renderers with overlapping bits"), ftraceLightBitmask.intValue, selStrings);
+ if (prevVal != newVal) ftraceLightBitmask.intValue = newVal;
+
+ //EditorGUILayout.PropertyField(ftraceLightBakeToIndirect, new GUIContent("Bake to indirect", "Add direct contribution from this light to indirect-only lightmaps"));
+
+ if (storage == null) storage = ftRenderLightmap.FindRenderSettingsStorage();
+ var rmode = storage.renderSettingsUserRenderMode;
+ if (rmode != (int)ftRenderLightmap.RenderMode.FullLighting)
+ {
+ ftDirectLightInspector.BakeWhat contrib;
+ if (ftraceLightBakeToIndirect.boolValue)
+ {
+ contrib = ftDirectLightInspector.BakeWhat.DirectAndIndirect;
+ }
+ else
+ {
+ contrib = ftDirectLightInspector.BakeWhat.IndirectOnly;
+ }
+ var prevContrib = contrib;
+
+ contrib = (ftDirectLightInspector.BakeWhat)EditorGUILayout.Popup("Baked contribution", (int)contrib, directContributionOptions);
+
+ if (prevContrib != contrib)
+ {
+ if (contrib == ftDirectLightInspector.BakeWhat.IndirectOnly)
+ {
+ ftraceLightBakeToIndirect.boolValue = false;
+ }
+ else
+ {
+ ftraceLightBakeToIndirect.boolValue = true;
+ }
+ }
+ }
+
+ EditorGUILayout.PropertyField(ftraceLightIndirectIntensity, new GUIContent("Indirect intensity", "Non-physical GI multiplier for this light"));
+
+ showExperimental = EditorGUILayout.Foldout(showExperimental, "Experimental", EditorStyles.foldout);
+ if (showExperimental)
+ {
+ EditorGUILayout.PropertyField(ftraceTangentSH, new GUIContent("Tangent-space SH", "Only affects single-color skylights. When baking in SH mode, harmonics will be in tangent space. Can be useful for implementing skinned model specular occlusion in custom shaders."));
+ }
+
+ serializedObject.ApplyModifiedProperties();
+ }
+
+ var skyMat = RenderSettings.skybox;
+ bool match = false;
+ bool skyboxValid = true;
+ string why = "";
+ if (skyMat != null)
+ {
+ if (skyMat.HasProperty("_Tex") && skyMat.HasProperty("_Exposure") && skyMat.HasProperty("_Tint"))
+ {
+ if (skyMat.GetTexture("_Tex") == ftraceLightTexture.objectReferenceValue)
+ {
+ float exposure = skyMat.GetFloat("_Exposure");
+ bool exposureSRGB = skyMat.shader.name == "Skybox/Cubemap";
+ if (exposureSRGB)
+ {
+ exposure = Mathf.Pow(exposure, 2.2f); // can't detect [Gamma] keyword...
+ exposure *= PlayerSettings.colorSpace == ColorSpace.Linear ? 4.59f : 2; // weird unity constant
+ }
+ if (Mathf.Abs(exposure - ftraceLightIntensity.floatValue) < 0.0001f)
+ {
+ if (skyMat.GetColor("_Tint") == ftraceLightColor.colorValue)
+ {
+ bool anglesMatch = true;
+ var angles = (target as BakerySkyLight).transform.eulerAngles;
+ Vector3 matMatrixX = Vector3.right;
+ Vector3 matMatrixY = Vector3.up;
+ Vector3 matMatrixZ = Vector3.forward;
+ float matAngleY = 0;
+ bool hasYAngle = skyMat.HasProperty("_Rotation");
+ bool hasXZAngles = skyMat.HasProperty("_MatrixRight");
+ if (hasYAngle) matAngleY = skyMat.GetFloat("_Rotation");
+ if (hasXZAngles)
+ {
+ matMatrixX = skyMat.GetVector("_MatrixRight");
+ matMatrixY = skyMat.GetVector("_MatrixUp");
+ matMatrixZ = skyMat.GetVector("_MatrixForward");
+ }
+
+ if (angles.y != 0 && !hasYAngle)
+ {
+ anglesMatch = false;
+ why = "no _Rotation property, but light is rotated";
+ }
+ else if ((angles.x != 0 || angles.z != 0) && !hasXZAngles)
+ {
+ anglesMatch = false;
+ why = "shader doesn't allow XZ rotation";
+ }
+ else
+ {
+ var lightQuat = (target as BakerySkyLight).transform.rotation;
+ Quaternion matQuat;
+ if (hasXZAngles)
+ {
+ var mtx = new Matrix4x4();
+ mtx.SetColumn(0, new Vector4(matMatrixX.x, matMatrixX.y, matMatrixX.z, 0));
+ mtx.SetColumn(1, new Vector4(matMatrixY.x, matMatrixY.y, matMatrixY.z, 0));
+ mtx.SetColumn(2, new Vector4(matMatrixZ.x, matMatrixZ.y, matMatrixZ.z, 0));
+ matQuat = QuaternionFromMatrix(mtx);
+ }
+ else
+ {
+ matQuat = Quaternion.Euler(0, matAngleY, 0);
+ }
+
+ float diff = Quaternion.Angle(matQuat, lightQuat);
+ //Debug.Log("d " + diff);
+ if (Mathf.Abs(diff) > 0.01f)
+ {
+ anglesMatch = false;
+ why = "angles don't match";
+ }
+ }
+ if (anglesMatch) match = true;
+ }
+ else
+ {
+ why = "color doesn't match";
+ }
+ }
+ else
+ {
+ why = "exposure doesn't match";
+ }
+ }
+ else
+ {
+ why = "texture doesn't match";
+ }
+ }
+ else
+ {
+ if (!skyMat.HasProperty("_Tex")) why += "_Tex ";
+ if (!skyMat.HasProperty("_Exposure")) why += "_Exposure ";
+ if (!skyMat.HasProperty("_Tint")) why += "_Tint ";
+ why += "not defined";
+ skyboxValid = false;
+ }
+ }
+ else
+ {
+ why = "no skybox set";
+ skyboxValid = false;
+ }
+
+ if (!match)
+ {
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("Skylight doesn't match skybox: " + why);
+ EditorGUILayout.Space();
+
+ if (skyboxValid)
+ {
+ if (GUILayout.Button("Match this light to scene skybox"))
+ {
+ ftraceLightTexture.objectReferenceValue = skyMat.GetTexture("_Tex");
+
+ float exposure = skyMat.GetFloat("_Exposure");
+ bool exposureSRGB = skyMat.shader.name == "Skybox/Cubemap";
+ if (exposureSRGB)
+ {
+ exposure = Mathf.Pow(exposure, 2.2f); // can't detect [Gamma] keyword...
+ exposure *= PlayerSettings.colorSpace == ColorSpace.Linear ? 4.59f : 2; // weird unity constant
+ }
+ ftraceLightIntensity.floatValue = exposure;
+
+ ftraceLightColor.colorValue = skyMat.GetColor("_Tint");
+
+ float matAngle = 0;
+ if (skyMat.HasProperty("_Rotation")) matAngle = skyMat.GetFloat("_Rotation");
+ var matQuat = Quaternion.Euler(0, matAngle, 0);
+ Undo.RecordObject((target as BakerySkyLight).transform, "Rotate skylight");
+ (target as BakerySkyLight).transform.rotation = matQuat;
+
+ serializedObject.ApplyModifiedProperties();
+ }
+ }
+
+ if (GUILayout.Button("Match scene skybox to this light"))
+ {
+ var tform = (target as BakerySkyLight).transform;
+ var angles = tform.eulerAngles;
+ if (angles.x !=0 || angles.z !=0)
+ {
+ if (skyboxValid && !skyMat.HasProperty("_MatrixRight")) skyboxValid = false; // only ftrace skybox can handle xz rotation for now
+ }
+
+ if (angles.y != 0 && skyboxValid && !skyMat.HasProperty("_Rotation")) skyboxValid = false; // needs _Rotation for Y angle
+
+ if (!skyboxValid)
+ {
+ var outputPath = ftRenderLightmap.outputPath;
+ skyMat = new Material(Shader.Find(ftSkyboxShaderName));
+ if (!Directory.Exists("Assets/" + outputPath))
+ {
+ Directory.CreateDirectory("Assets/" + outputPath);
+ }
+ AssetDatabase.CreateAsset(skyMat, "Assets/" + outputPath + "/" + SceneManager.GetActiveScene().name + "_skybox.asset");
+ AssetDatabase.SaveAssets();
+ AssetDatabase.Refresh();
+ }
+ skyMat.SetTexture("_Tex", ftraceLightTexture.objectReferenceValue as Cubemap);
+ skyMat.SetFloat("_NoTexture", ftraceLightTexture.objectReferenceValue == null ? 1 : 0);
+
+ float exposure = ftraceLightIntensity.floatValue;
+ bool exposureSRGB = skyMat.shader.name == "Skybox/Cubemap";
+ if (exposureSRGB)
+ {
+ exposure /= PlayerSettings.colorSpace == ColorSpace.Linear ? 4.59f : 2; // weird unity constant
+ exposure = Mathf.Pow(exposure, 1.0f / 2.2f); // can't detect [Gamma] keyword...
+ }
+ skyMat.SetFloat("_Exposure", exposure);
+
+ skyMat.SetColor("_Tint", ftraceLightColor.colorValue);
+
+ if (skyMat.HasProperty("_Rotation")) skyMat.SetFloat("_Rotation", angles.y);
+
+ if ((target as BakerySkyLight).correctRotation)
+ {
+ // transpose
+ var r = tform.right;
+ var u = tform.up;
+ var f = tform.forward;
+ if (skyMat.HasProperty("_MatrixRight")) skyMat.SetVector("_MatrixRight", new Vector3(r.x, u.x, f.x));
+ if (skyMat.HasProperty("_MatrixUp")) skyMat.SetVector("_MatrixUp", new Vector3(r.y, u.y, f.y));
+ if (skyMat.HasProperty("_MatrixForward")) skyMat.SetVector("_MatrixForward", new Vector3(r.z, u.z, f.z));
+ }
+ else
+ {
+ if (skyMat.HasProperty("_MatrixRight")) skyMat.SetVector("_MatrixRight", tform.right);
+ if (skyMat.HasProperty("_MatrixUp")) skyMat.SetVector("_MatrixUp", tform.up);
+ if (skyMat.HasProperty("_MatrixForward")) skyMat.SetVector("_MatrixForward", tform.forward);
+ }
+
+ RenderSettings.skybox = skyMat;
+ EditorUtility.SetDirty(skyMat);
+ }
+
+ EditorGUILayout.Space();
+ EditorGUILayout.Space();
+ }
+ }
+}
+
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSkyLightInspector.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSkyLightInspector.cs.meta
new file mode 100644
index 00000000..a8f7e985
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftSkyLightInspector.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 43b464df539471c47880a0cc39cd4861
+timeCreated: 1525278120
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftTextureProcessor.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftTextureProcessor.cs
new file mode 100644
index 00000000..3f26bd6a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftTextureProcessor.cs
@@ -0,0 +1,57 @@
+using UnityEngine;
+using UnityEditor;
+using System.Collections.Generic;
+
+public class ftTextureProcessor : AssetPostprocessor
+{
+ public static Dictionary<string, Vector2> texSettings = new Dictionary<string, Vector2>();
+ static BakeryProjectSettings pstorage;
+
+ public const int TEX_LM = 0;
+ public const int TEX_LMDEFAULT = 1;
+ public const int TEX_MASK = 2;
+ public const int TEX_DIR = 3;
+
+ void OnPreprocessTexture()
+ {
+ TextureImporter importer = assetImporter as TextureImporter;
+ Vector2 settings;
+
+ if (!texSettings.TryGetValue(importer.assetPath, out settings)) return;
+
+ if (pstorage == null) pstorage = ftLightmaps.GetProjectSettings();
+
+ importer.maxTextureSize = (int)settings.x;
+ importer.mipmapEnabled = pstorage.mipmapLightmaps;
+ importer.wrapMode = TextureWrapMode.Clamp;
+
+ int texType = (int)settings.y;
+ switch(texType)
+ {
+ case TEX_LM:
+ {
+ importer.textureType = TextureImporterType.Lightmap;
+ break;
+ }
+ case TEX_LMDEFAULT:
+ {
+ importer.textureType = TextureImporterType.Default;
+ break;
+ }
+ case TEX_MASK:
+ {
+ importer.textureType = TextureImporterType.Default;
+ importer.textureCompression = TextureImporterCompression.CompressedHQ;
+ break;
+ }
+ case TEX_DIR:
+ {
+ importer.textureType = TextureImporterType.Default;
+ importer.textureCompression = TextureImporterCompression.CompressedHQ;
+ importer.sRGBTexture = (pstorage.format8bit == BakeryProjectSettings.FileFormat.PNG);
+ break;
+ }
+ }
+ }
+}
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftTextureProcessor.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftTextureProcessor.cs.meta
new file mode 100644
index 00000000..9fe9fda4
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftTextureProcessor.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 68d2ca0e99ca9604fa09956f75773620
+timeCreated: 1546597706
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUVGBufferGen.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUVGBufferGen.cs
new file mode 100644
index 00000000..368d17d9
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUVGBufferGen.cs
@@ -0,0 +1,595 @@
+#if UNITY_EDITOR
+
+using UnityEngine;
+using UnityEditor;
+using System.IO;
+
+public class ftUVGBufferGen
+{
+ static RenderTexture rtAlbedo, rtEmissive, rtNormal, rtAlpha;
+ public static Texture2D texAlbedo, texEmissive, texNormal, texBestFit, texAlpha;
+ //static GameObject dummyCamGO;
+ //static Camera dummyCam;
+ static float texelSize;
+ //static Vector4 shaBlack, shaWhite;
+ static Material matFromRGBM;
+ static Material matDilate, matMultiply;
+ static bool emissiveEnabled = false;
+ static bool normalEnabled = false;
+ static bool alphaEnabled = false;
+ static Vector4 metaControl, metaControlAlbedo, metaControlEmission, metaControlNormal, metaControlAlpha;
+ static Material fallbackMat, normalMat, blackMat;
+ static int fallbackMatMetaPass;
+ static BakeryProjectSettings pstorage;
+
+ const int PASS_ALBEDO = 0;
+ const int PASS_EMISSIVE = 1;
+ const int PASS_NORMAL = 2;
+ const int PASS_ALPHA = 3;
+ const int PASS_COUNT = 4; // just a marker
+
+ public static float[] uvOffset =
+ {
+ -2, -2,
+ 2, -2,
+ -2, 2,
+ 2, 2,
+
+ -1, -2,
+ 1, -2,
+ -2, -1,
+ 2, -1,
+ -2, 1,
+ 2, 1,
+ -1, 2,
+ 1, 2,
+
+ -2, 0,
+ 2, 0,
+ 0, -2,
+ 0, 2,
+
+ -1, -1,
+ 1, -1,
+ -1, 0,
+ 1, 0,
+ -1, 1,
+ 1, 1,
+ 0, -1,
+ 0, 1,
+
+ 0, 0
+ };
+
+ static public void UpdateMatrix(Matrix4x4 worldMatrix, float offsetX, float offsetY)//Matrix4x4 worldMatrix)
+ {
+ // Generate a projection matrix similar to LoadOrtho
+ /*var dummyCamGO = new GameObject();
+ dummyCamGO.name = "dummyCam";
+ var dummyCam = dummyCamGO.AddComponent<Camera>();
+ dummyCam.cullingMask = 0;
+ dummyCam.orthographic = true;
+ dummyCam.orthographicSize = 0.5f;
+ dummyCam.nearClipPlane = -10;
+ dummyCam.aspect = 1;
+ var proj = dummyCam.projectionMatrix;
+ var c3 = proj.GetColumn(3);
+ proj.SetColumn(3, new Vector4(-1, -1, c3.z, c3.w));
+ Debug.Log(proj);*/
+
+ var proj = new Matrix4x4();
+ proj.SetRow(0, new Vector4(2.00000f, 0.00000f, 0.00000f, -1.00000f + offsetX));
+ proj.SetRow(1, new Vector4(0.00000f, 2.00000f, 0.00000f, -1.00000f + offsetY));
+ proj.SetRow(2, new Vector4(0.00000f, 0.00000f, -0.00198f, -0.98f));
+ proj.SetRow(3, new Vector4(0.00000f, 0.00000f, 0.00000f, 1.00000f));
+
+ //if (ftBuildGraphics.unityVersionMajor < 2018) // Unity 2018 stopped multiplying vertices by world matrix in meta pass
+ //{
+#if UNITY_2018_1_OR_NEWER
+#else
+ proj = proj * worldMatrix.inverse;
+#endif
+ //}
+
+ // If Camera.current is set, multiply our matrix by the inverse of its view matrix
+ if (Camera.current != null)
+ {
+ proj = proj * Camera.current.worldToCameraMatrix.inverse;
+ }
+
+ GL.LoadProjectionMatrix(proj);
+ }
+
+ static public void StartUVGBuffer(int size, bool hasEmissive, bool hasNormal)
+ {
+ emissiveEnabled = hasEmissive;
+ normalEnabled = hasNormal;
+ alphaEnabled = false;
+
+ rtAlbedo = new RenderTexture(size, size, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.sRGB);
+ texAlbedo = new Texture2D(size, size, TextureFormat.RGBA32, false, false);
+
+ Graphics.SetRenderTarget(rtAlbedo);
+ GL.Clear(true, true, new Color(0,0,0,0));
+
+ if (hasEmissive)
+ {
+ rtEmissive = new RenderTexture(size, size, 0, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear);
+ texEmissive = new Texture2D(size, size, TextureFormat.RGBAHalf, false, true);
+ Graphics.SetRenderTarget(rtEmissive);
+ GL.Clear(true, true, new Color(0,0,0,0));
+ }
+
+ if (hasNormal)
+ {
+ rtNormal = new RenderTexture(size, size, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear);
+ texNormal = new Texture2D(size, size, TextureFormat.RGBA32, false, true);
+ Graphics.SetRenderTarget(rtNormal);
+ GL.Clear(true, true, new Color(0,0,0,0));
+ }
+
+ //GL.sRGBWrite = true;//!hasEmissive;
+ GL.invertCulling = false;
+ GL.PushMatrix();
+ //GL.LoadOrtho();
+ //UpdateMatrix();
+ /*float ambR, ambG, ambB;
+ //ambR = ambG = ambB = emissiveOnly ? 0 : 1;
+ Shader.SetGlobalVector("unity_SHBr", Vector4.zero);
+ Shader.SetGlobalVector("unity_SHBg", Vector4.zero);
+ Shader.SetGlobalVector("unity_SHBb", Vector4.zero);
+ Shader.SetGlobalVector("unity_SHC", Vector4.zero);*/
+ texelSize = (1.0f / size) / 5;
+ //shaBlack = new Vector4(0,0,0,0);
+ //shaWhite = new Vector4(0,0,0,1);
+ metaControl = new Vector4(1,0,0,0);
+ metaControlAlbedo = new Vector4(1,0,0,0);
+ metaControlEmission = new Vector4(0,1,0,0);
+ metaControlNormal = new Vector4(0,0,1,0);
+ metaControlAlpha = new Vector4(0,0,0,1);
+ Shader.SetGlobalVector("unity_MetaVertexControl", metaControl);
+ Shader.SetGlobalFloat("unity_OneOverOutputBoost", 1.0f);
+ Shader.SetGlobalFloat("unity_MaxOutputValue", 10000000.0f);
+ Shader.SetGlobalFloat("unity_UseLinearSpace", PlayerSettings.colorSpace == ColorSpace.Linear ? 1.0f : 0.0f);
+ }
+
+ static public void InitAlphaBuffer(int size)
+ {
+ alphaEnabled = true;
+ rtAlpha = new RenderTexture(size, size, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear);
+ texAlpha = new Texture2D(size, size, TextureFormat.RGBA32, false, true);
+ Graphics.SetRenderTarget(rtAlpha);
+ GL.Clear(true, true, new Color(0,0,0,0));
+ }
+
+ static public void RenderUVGBuffer(Mesh mesh, Renderer renderer, Vector4 scaleOffset, Transform worldTransform, bool vertexBake,
+ Vector2[] uvOverride, bool terrainNormals = false, bool metaAlpha = false)
+ {
+ var worldMatrix = worldTransform.localToWorldMatrix;
+
+ if (pstorage == null) pstorage = ftLightmaps.GetProjectSettings();
+
+ if (metaAlpha && !alphaEnabled)
+ {
+ int res = rtAlbedo.width * pstorage.alphaMetaPassResolutionMultiplier;
+ if (res > 8192) res = 8192;
+ InitAlphaBuffer(res);
+ }
+
+ Material[] materials = renderer.sharedMaterials;
+#if SUPPORT_MBLOCKS
+ var mb = new MaterialPropertyBlock();
+#endif
+
+ var m = mesh;
+ if (uvOverride != null)
+ {
+ m = Mesh.Instantiate(mesh);
+ //var uvs = m.uv2;
+ //if (uvs.Length == 0) uvs = m.uv;
+ //var pos = new Vector3[uvs.Length];
+ /*for(int i=0; i<uvs.Length; i++)
+ {
+ pos[i] = new Vector3(uvs[i].x * scaleOffset.x + scaleOffset.z, uvs[i].y * scaleOffset.y + scaleOffset.w, 0.0f);
+ }
+ m.vertices = pos;*/
+
+ m.uv2 = uvOverride;
+
+ if (vertexBake)
+ {
+ for(int i=0; i<mesh.subMeshCount; i++)
+ {
+ var indices = m.GetIndices(i);
+ m.SetIndices(indices, MeshTopology.Points, i, false);
+ }
+ }
+ }
+
+ var scaleOffsetFlipped = new Vector4(scaleOffset.x, -scaleOffset.y, scaleOffset.z, 1.0f - scaleOffset.w);
+
+ //UpdateMatrix(worldMatrix);
+
+ for(int pass=0; pass<PASS_COUNT; pass++)
+ {
+ if (pass == PASS_EMISSIVE && !emissiveEnabled) continue;
+ if (pass == PASS_NORMAL && !normalEnabled) continue;
+ if (pass == PASS_ALPHA && !alphaEnabled) continue; // per Start-End
+ if (pass == PASS_ALPHA && !metaAlpha) continue; // per this object
+
+ if (pass == PASS_ALBEDO)
+ {
+ Graphics.SetRenderTarget(rtAlbedo);
+ }
+ else if (pass == PASS_EMISSIVE)
+ {
+ Graphics.SetRenderTarget(rtEmissive);
+ }
+ else if (pass == PASS_NORMAL)
+ {
+ Graphics.SetRenderTarget(rtNormal);
+ }
+ else if (pass == PASS_ALPHA)
+ {
+ Graphics.SetRenderTarget(rtAlpha);
+ }
+
+ for(int i=0; i<mesh.subMeshCount; i++)
+ {
+ if (materials.Length <= i) break;
+ if (materials[i] == null) continue;
+ if (materials[i].shader == null) continue;
+
+ // Optionally skip emission
+ bool passAsBlack = (pass == PASS_EMISSIVE && materials[i].globalIlluminationFlags != MaterialGlobalIlluminationFlags.BakedEmissive);
+
+ var rpTag = materials[i].GetTag("RenderPipeline", true, "");
+ bool isHDRP = rpTag == "HDRenderPipeline";
+ if (pass >= PASS_NORMAL) isHDRP = false; // custom meta shaders are not affected
+ int bakeryPass = -1;
+
+ if (pass < PASS_NORMAL)
+ {
+ int metaPass = -1;
+ if (!materials[i].HasProperty("BAKERY_FORCE_NO_META"))
+ {
+ if (!passAsBlack)
+ {
+ metaPass = materials[i].FindPass("META");
+ if (metaPass < 0)
+ {
+ // Try finding another pass pass with "META" in it
+ for(int mpass=0; mpass<materials[i].passCount; mpass++)
+ {
+ if (materials[i].GetPassName(mpass).IndexOf("META") >= 0)
+ {
+ metaPass = mpass;
+ break;
+ }
+ }
+ }
+ }
+ }
+ Shader.SetGlobalVector("unity_LightmapST", (isHDRP) ? scaleOffsetFlipped : scaleOffset);
+ Shader.SetGlobalVector("unity_MetaFragmentControl", pass == PASS_ALBEDO ? metaControlAlbedo : metaControlEmission);
+
+ if (metaPass >= 0)
+ {
+ materials[i].SetPass(metaPass);
+ }
+ else
+ {
+ if (passAsBlack)
+ {
+ if (blackMat == null)
+ {
+ blackMat = new Material(Shader.Find("Hidden/ftBlack"));
+ }
+ Shader.SetGlobalVector("unity_LightmapST", scaleOffset);
+ blackMat.SetPass(0);
+ }
+ else
+ {
+ if (fallbackMat == null)
+ {
+ fallbackMat = new Material(Shader.Find("Standard"));
+ fallbackMat.EnableKeyword("_EMISSION");
+ fallbackMatMetaPass = fallbackMat.FindPass("META");
+ }
+ if ((pstorage.logLevel & (int)BakeryProjectSettings.LogLevel.Warning) != 0)
+ {
+ if (materials[i].name != "Hidden/ftFarSphere")
+ {
+ Debug.LogWarning("Material " + materials[i].name + " doesn't have meta pass - maps are taken by name");
+ }
+ }
+ if (materials[i].HasProperty("_MainTex"))
+ {
+ fallbackMat.mainTexture = materials[i].GetTexture("_MainTex");
+ }
+ else if (materials[i].HasProperty("_BaseColorMap"))
+ {
+ // HDRP
+ fallbackMat.mainTexture = materials[i].GetTexture("_BaseColorMap");
+ }
+ else if (materials[i].HasProperty("_BaseMap"))
+ {
+ // URP
+ fallbackMat.mainTexture = materials[i].GetTexture("_BaseMap");
+ }
+ if (materials[i].HasProperty("_Color"))
+ {
+ fallbackMat.SetVector("_Color", materials[i].GetVector("_Color"));
+ }
+ else
+ {
+ fallbackMat.SetVector("_Color", Color.white);
+ }
+ if (materials[i].HasProperty("_EmissionMap"))
+ {
+ fallbackMat.SetTexture("_EmissionMap", materials[i].GetTexture("_EmissionMap"));
+ }
+ else
+ {
+ fallbackMat.SetTexture("_EmissionMap", null);
+ }
+ if (materials[i].HasProperty("_EmissionColor"))
+ {
+ fallbackMat.SetVector("_EmissionColor", materials[i].GetVector("_EmissionColor"));
+ }
+ else
+ {
+ fallbackMat.SetVector("_EmissionColor", Color.black);
+ }
+ fallbackMat.SetPass(fallbackMatMetaPass);
+ }
+ }
+ }
+ else if (pass == PASS_NORMAL)
+ {
+ bool isURP = rpTag == "UniversalPipeline";
+
+ var metaPass = materials[i].FindPass("META_BAKERY");
+ bakeryPass = metaPass;
+
+ if (normalMat == null && metaPass < 0)
+ {
+ normalMat = new Material(Shader.Find("Hidden/ftUVNormalMap"));
+ }
+ if (texBestFit == null)
+ {
+ texBestFit = new Texture2D(1024, 1024, TextureFormat.RGBA32, false, true);
+ var edPath = ftLightmaps.GetEditorPath();
+ var fbestfit = new BinaryReader(File.Open(edPath + "NormalsFittingTexture_dds", FileMode.Open, FileAccess.Read));
+ fbestfit.BaseStream.Seek(128, SeekOrigin.Begin);
+ var bytes = fbestfit.ReadBytes(1024 * 1024 * 4);
+ fbestfit.Close();
+ texBestFit.LoadRawTextureData(bytes);
+ texBestFit.Apply();
+ }
+
+ if (metaPass < 0)
+ {
+ if (materials[i].HasProperty("_BumpMap"))
+ {
+ normalMat.SetTexture("_BumpMap", materials[i].GetTexture("_BumpMap"));
+ if (materials[i].HasProperty("_MainTex_ST"))
+ {
+ normalMat.SetVector("_BumpMap_scaleOffset", materials[i].GetVector("_MainTex_ST"));
+ //Debug.LogError(materials[i].GetVector("_MainTex_ST"));
+ }
+ else
+ {
+ normalMat.SetVector("_BumpMap_scaleOffset", new Vector4(1,1,0,0));
+ }
+ }
+ else if (materials[i].HasProperty("_NormalMap"))
+ {
+ normalMat.SetTexture("_BumpMap", materials[i].GetTexture("_NormalMap"));
+ normalMat.SetVector("_BumpMap_scaleOffset", new Vector4(1,1,0,0));
+ }
+ else
+ {
+ normalMat.SetTexture("_BumpMap", null);
+ }
+ normalMat.SetFloat("_IsTerrain", terrainNormals ? 1.0f : 0.0f);
+ normalMat.SetTexture("bestFitNormalMap", texBestFit);
+ normalMat.SetFloat("_IsPerPixel", (isURP||isHDRP) ? 1.0f : 0.0f);
+ normalMat.SetPass(0);
+ }
+ else
+ {
+ materials[i].SetTexture("bestFitNormalMap", texBestFit);
+ materials[i].SetFloat("_IsPerPixel", (isURP||isHDRP) ? 1.0f : 0.0f);
+ materials[i].SetPass(metaPass);
+ }
+ Shader.SetGlobalVector("unity_MetaFragmentControl", metaControlNormal);
+ }
+ else if (pass == PASS_ALPHA)
+ {
+ // Unity does not output alpha in its meta pass, so only custom shaders are supported
+ var metaPass = materials[i].FindPass("META_BAKERY");
+ if (metaPass < 0)
+ {
+ Debug.LogError("BAKERY_META_ALPHA_ENABLE is set, but there is no META_BAKERY pass in " + materials[i].name);
+ continue;
+ }
+ bakeryPass = metaPass;
+ materials[i].SetPass(metaPass);
+ Shader.SetGlobalVector("unity_MetaFragmentControl", metaControlAlpha);
+ }
+
+ GL.sRGBWrite = pass == PASS_ALBEDO;
+
+ if (!vertexBake)
+ {
+ for(int j=0; j<uvOffset.Length/2; j++)
+ {
+ if (pass < PASS_NORMAL)
+ {
+ UpdateMatrix(worldMatrix, uvOffset[j*2] * texelSize, uvOffset[j*2+1] * texelSize);
+ }
+ else
+ {
+ // TODO: use in HDRP as well
+ var srcVec = (isHDRP) ? scaleOffsetFlipped : scaleOffset;
+ var vec = new Vector4(srcVec.x, srcVec.y, srcVec.z + uvOffset[j*2] * texelSize, srcVec.w + uvOffset[j*2+1] * texelSize);
+ Shader.SetGlobalVector("unity_LightmapST", vec);
+ if (bakeryPass >= 0)
+ {
+ materials[i].SetPass(bakeryPass);
+ }
+ else
+ {
+ var s = worldTransform.lossyScale;
+ bool isFlipped = Mathf.Sign(s.x*s.y*s.z) < 0;
+ normalMat.SetFloat("_IsFlipped", isFlipped ? -1.0f : 1.0f);
+ normalMat.SetPass(0);
+ }
+ }
+ Graphics.DrawMeshNow(m, worldMatrix, i);
+ }
+ }
+ else
+ {
+ UpdateMatrix(worldMatrix, 0, 0);
+#if SUPPORT_MBLOCKS
+ #if UNITY_2018_1_OR_NEWER
+ renderer.GetPropertyBlock(mb, i);
+ #else
+ renderer.GetPropertyBlock(mb);
+ #endif
+ Graphics.DrawMesh(m, worldMatrix, materials[i], 0, null, i, mb, false, false, false);
+#else
+ Graphics.DrawMeshNow(m, worldMatrix, i);
+#endif
+ }
+ }
+ }
+ }
+
+ static public void EndUVGBuffer()
+ {
+ GL.PopMatrix();
+
+ Graphics.SetRenderTarget(rtAlbedo);
+ texAlbedo.ReadPixels(new Rect(0,0,rtAlbedo.width,rtAlbedo.height), 0, 0, false);
+ texAlbedo.Apply();
+ Graphics.SetRenderTarget(null);
+ rtAlbedo.Release();
+
+ if (emissiveEnabled)
+ {
+ Graphics.SetRenderTarget(rtEmissive);
+ texEmissive.ReadPixels(new Rect(0,0,rtEmissive.width,rtEmissive.height), 0, 0, false);
+ texEmissive.Apply();
+ Graphics.SetRenderTarget(null);
+ rtEmissive.Release();
+ }
+
+ if (normalEnabled)
+ {
+ Graphics.SetRenderTarget(rtNormal);
+ texNormal.ReadPixels(new Rect(0,0,rtNormal.width,rtNormal.height), 0, 0, false);
+ texNormal.Apply();
+ Graphics.SetRenderTarget(null);
+ rtNormal.Release();
+ }
+
+ if (alphaEnabled)
+ {
+ Graphics.SetRenderTarget(rtAlpha);
+ texAlpha.ReadPixels(new Rect(0,0,rtAlpha.width,rtAlpha.height), 0, 0, false);
+ texAlpha.Apply();
+ Graphics.SetRenderTarget(null);
+ rtAlpha.Release();
+ }
+ }
+
+ static public Texture2D DecodeFromRGBM(Texture2D emissive)
+ {
+ var rt = new RenderTexture(emissive.width, emissive.height, 0, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear);
+ var tex = new Texture2D(emissive.width, emissive.height, TextureFormat.RGBAHalf, false, true);
+
+ if (matFromRGBM == null) matFromRGBM = new Material(Shader.Find("Hidden/ftRGBM2Half"));
+
+ Graphics.SetRenderTarget(rt);
+ GL.sRGBWrite = false;
+
+ matFromRGBM.SetTexture("_MainTex", emissive);
+
+ Graphics.Blit(emissive, rt, matFromRGBM);
+
+ tex.ReadPixels(new Rect(0,0,rt.width,rt.height), 0, 0, false);
+ tex.Apply();
+
+ Graphics.SetRenderTarget(null);
+ rt.Release();
+ Object.DestroyImmediate(emissive);
+
+ return tex;
+ }
+
+ static public void Dilate(Texture2D albedo)
+ {
+ if (matDilate == null) matDilate = new Material(Shader.Find("Hidden/ftDilate"));
+
+ RenderTexture rt, rt2;
+ if (albedo.format == TextureFormat.RGBA32)
+ {
+ rt = new RenderTexture(albedo.width, albedo.height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.sRGB);
+ rt2 = new RenderTexture(albedo.width, albedo.height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.sRGB);
+ }
+ else
+ {
+ rt = new RenderTexture(albedo.width, albedo.height, 0, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear);
+ rt2 = new RenderTexture(albedo.width, albedo.height, 0, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear);
+ }
+
+ GL.sRGBWrite = albedo.format == TextureFormat.RGBA32;
+ Graphics.Blit(albedo, rt, matDilate);
+
+ for(int i=0; i<8; i++)
+ {
+ Graphics.Blit(rt, rt2, matDilate);
+ Graphics.Blit(rt2, rt, matDilate);
+ }
+
+ Graphics.SetRenderTarget(rt);
+ albedo.ReadPixels(new Rect(0,0,rt.width,rt.height), 0, 0, false);
+ albedo.Apply();
+
+ Graphics.SetRenderTarget(null);
+ rt.Release();
+ rt2.Release();
+ }
+
+ static public void Multiply(Texture2D albedo, float val)
+ {
+ if (matMultiply == null) matMultiply = new Material(Shader.Find("Hidden/ftMultiply"));
+
+ RenderTexture rt;
+ if (albedo.format == TextureFormat.RGBA32)
+ {
+ rt = new RenderTexture(albedo.width, albedo.height, 0, RenderTextureFormat.ARGB32, RenderTextureReadWrite.sRGB);
+ }
+ else
+ {
+ rt = new RenderTexture(albedo.width, albedo.height, 0, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Linear);
+ }
+
+ GL.sRGBWrite = albedo.format == TextureFormat.RGBA32;
+ matMultiply.SetFloat("multiplier", val);
+ Graphics.Blit(albedo, rt, matMultiply);
+
+ Graphics.SetRenderTarget(rt);
+ albedo.ReadPixels(new Rect(0,0,rt.width,rt.height), 0, 0, false);
+ albedo.Apply();
+
+ Graphics.SetRenderTarget(null);
+ rt.Release();
+ }
+}
+
+#endif
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUVGBufferGen.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUVGBufferGen.cs.meta
new file mode 100644
index 00000000..8e5647b0
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUVGBufferGen.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 5d93843fab7110948a9eba95e82ced39
+timeCreated: 1533369120
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUpdater.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUpdater.cs
new file mode 100644
index 00000000..4e2b2f00
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUpdater.cs
@@ -0,0 +1,378 @@
+// Disable 'obsolete' warnings
+#pragma warning disable 0618
+
+#if UNITY_EDITOR
+
+using UnityEngine;
+using UnityEditor;
+using UnityEditor.Callbacks;
+using System;
+using System.IO;
+using System.Text;
+using System.Net;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine.Networking;
+using System.Runtime.InteropServices;
+
+[InitializeOnLoad]
+public class ftUpdater : EditorWindow
+{
+ [DllImport ("frender", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int ExtractZIP([MarshalAs(UnmanagedType.LPWStr)]string zipFilename, int skipInnerFolders, string onlyFolder, [MarshalAs(UnmanagedType.LPWStr)]string outPath);
+
+ IEnumerator progressFunc;
+ float progress = 0.0f;
+ string curItem = "";
+ bool isError = false;
+
+ string inLM = "IN000000000000";
+ string inRT = "IN000000000000";
+ string username = "";
+ string errMsg = "";
+ string lastVer = "";
+ bool init = false;
+
+ [MenuItem ("Bakery/Utilities/Check for patches", false, 1000)]
+ public static void Check()
+ {
+ var instance = (ftUpdater)GetWindow(typeof(ftUpdater));
+ instance.titleContent.text = "Bakery patch";
+ instance.minSize = new Vector2(320, 110);
+ instance.maxSize = new Vector2(instance.minSize.x, instance.minSize.y + 1);
+ instance.Show();
+ }
+
+ void DebugLogError(string str)
+ {
+ Debug.LogError(str);
+ errMsg = str;
+ progressFunc = null;
+ isError = true;
+ Repaint();
+ }
+
+ IEnumerator DownloadItem(string url)
+ {
+ var req = UnityWebRequest.Get(url + curItem);
+ yield return req.Send();
+ while(!req.isDone)
+ {
+ progress = req.downloadProgress;
+ Repaint();
+ yield return null;
+ }
+
+ if (req.isError)
+ {
+ DebugLogError("Download error (" + curItem + ")");
+ yield break;
+ }
+ else
+ {
+ if (req.downloadHandler.data.Length < 100)
+ {
+ DebugLogError(req.downloadHandler.text);
+ yield break;
+ }
+ else
+ {
+ File.WriteAllBytes(curItem + ".zip", req.downloadHandler.data);
+ }
+ }
+ }
+
+ IEnumerator GetLastVer(string url)
+ {
+ lastVer = "";
+ var req = UnityWebRequest.Get(url + curItem + "&getLastVer");
+ yield return req.Send();
+ while(!req.isDone)
+ {
+ progress = req.downloadProgress;
+ Repaint();
+ yield return null;
+ }
+
+ if (req.isError)
+ {
+ DebugLogError("Request error (" + curItem + ")");
+ yield break;
+ }
+ else
+ {
+ if (req.downloadHandler.data.Length != 40)
+ {
+ DebugLogError(req.downloadHandler.text);
+ yield break;
+ }
+ else
+ {
+ lastVer = req.downloadHandler.text;
+ }
+ }
+ }
+
+ IEnumerator DownloadItemIfNewer(string url)
+ {
+ var dw = GetLastVer(url);
+ while(dw.MoveNext()) yield return null;
+ if (isError) yield break;
+
+ var fname = curItem + "-cver.txt"; // currently installed
+ if (File.Exists(fname))
+ {
+ var curVer = File.ReadAllText(fname);
+ if (lastVer == curVer)
+ {
+ Debug.Log(curItem + ": already latest");
+ yield break;
+ }
+ }
+
+ dw = DownloadItem(url);
+ while(dw.MoveNext()) yield return null;
+
+ File.WriteAllText(curItem + "-dver.txt", lastVer); // downloaded
+ }
+
+ IEnumerator CheckProc()
+ {
+ //var runtimePath = ftLightmaps.GetRuntimePath();
+ //var editorPath = ftLightmaps.GetEditorPath();
+
+ isError = false;
+
+ bool downloadLM = inLM.Length > 0 && inLM != "IN000000000000";
+ bool downloadRT = inRT.Length > 0 && inRT != "IN000000000000";
+
+ if (!downloadLM && !downloadRT)
+ {
+ DebugLogError("No invoices set");
+ yield break;
+ }
+
+ if (downloadLM)
+ {
+ // Download bakery-csharp
+ curItem = "bakery-csharp";
+ var dw = DownloadItemIfNewer("https://geom.io/bakery/github-download.php?name=" + username + "&invoice=" + inLM + "&repo=");
+ while(dw.MoveNext()) yield return null;
+ if (isError) yield break;
+
+ // Download bakery-compiled
+ curItem = "bakery-compiled";
+ dw = DownloadItemIfNewer("https://geom.io/bakery/github-download.php?name=" + username + "&invoice=" + inLM + "&repo=");
+ while(dw.MoveNext()) yield return null;
+ if (isError) yield break;
+ }
+
+ if (downloadRT)
+ {
+ // Download bakery-rtpreview-csharp
+ curItem = "bakery-rtpreview-csharp";
+ var dw = DownloadItemIfNewer("https://geom.io/bakery/github-download.php?name=" + username + "&invoice=" + inRT + "&repo=");
+ while(dw.MoveNext()) yield return null;
+ if (isError) yield break;
+ }
+
+ var cachePath = Directory.GetCurrentDirectory() + "/BakeryPatchCache";
+ if (!Directory.Exists(cachePath)) Directory.CreateDirectory(cachePath);
+
+ var runtimePath = cachePath + "/Runtime";
+ if (!Directory.Exists(runtimePath)) Directory.CreateDirectory(runtimePath);
+
+ var editorPath = cachePath + "/Editor";
+ if (!Directory.Exists(editorPath)) Directory.CreateDirectory(editorPath);
+
+ if (downloadLM)
+ {
+ // Extract runtime files
+ int err = ExtractZIP("bakery-csharp.zip", 1, "Bakery", runtimePath);
+ if (err != 0)
+ {
+ DebugLogError("ExtractZIP: " + err);
+ yield break;
+ }
+
+ // Extract editor files
+ err = ExtractZIP("bakery-csharp.zip", 3, "Bakery", editorPath);
+ if (err != 0)
+ {
+ DebugLogError("ExtractZIP: " + err);
+ yield break;
+ }
+
+ Debug.Log("Extracted bakery-csharp");
+
+ // Extract binaries
+ err = ExtractZIP("bakery-compiled.zip", 1, "", editorPath);
+ if (err != 0)
+ {
+ DebugLogError("ExtractZIP: " + err);
+ yield break;
+ }
+
+ Debug.Log("Extracted bakery-compiled");
+ }
+
+ if (downloadRT)
+ {
+ // Extract RTPreview files
+ int err = ExtractZIP("bakery-rtpreview-csharp.zip", 1, "", editorPath);
+ if (err != 0)
+ {
+ DebugLogError("ExtractZIP: " + err);
+ yield break;
+ }
+
+ Debug.Log("Extracted bakery-rtpreview-csharp");
+ }
+
+ Debug.Log("Done");
+
+ progressFunc = null;
+ Repaint();
+ EditorUtility.DisplayDialog("Bakery", "Restart Editor to apply the patch", "OK");
+ }
+
+ void CheckUpdate()
+ {
+ if (!progressFunc.MoveNext())
+ {
+ EditorApplication.update -= CheckUpdate;
+ }
+ }
+
+ void OnGUI()
+ {
+ if (!init)
+ {
+ if (PlayerPrefs.HasKey("BakeryInvLM")) inLM = PlayerPrefs.GetString("BakeryInvLM");
+ if (PlayerPrefs.HasKey("BakeryInvRT")) inRT = PlayerPrefs.GetString("BakeryInvRT");
+ if (PlayerPrefs.HasKey("BakeryGHUsername")) username = PlayerPrefs.GetString("BakeryGHUsername");
+ init = true;
+ }
+
+ int y = 10;
+
+ if (progressFunc != null) GUI.enabled = false;
+
+ GUI.Label(new Rect(5, y, 130, 18), "Lightmapper invoice:");
+ var prev = inLM;
+ inLM = EditorGUI.TextField(new Rect(140, y, 170, 18), inLM);
+ if (inLM != prev && (inLM.Length == 14 || inLM.Length == 0))
+ {
+ PlayerPrefs.SetString("BakeryInvLM", inLM);
+ }
+ y += 18;
+
+ GUI.Label(new Rect(5, y, 120, 18), "RTPreview invoice:");
+ prev = inRT;
+ inRT = EditorGUI.TextField(new Rect(140, y, 170, 18), inRT);
+ if (inRT != prev && (inRT.Length == 14 || inRT.Length == 0))
+ {
+ PlayerPrefs.SetString("BakeryInvRT", inRT);
+ }
+ y += 18;
+
+ GUI.Label(new Rect(5, y, 130, 18), "GitHub username:");
+ prev = username;
+ username = EditorGUI.TextField(new Rect(140, y, 170, 18), username);
+ if (username != prev && username.Length <= 255)
+ {
+ PlayerPrefs.SetString("BakeryGHUsername", username);
+ }
+ y += 18*2;
+
+ if (GUI.Button(new Rect(0, y, 320, 18), "Check"))
+ {
+ SessionState.SetBool("BakeryPatchWaitForRestart", true);
+ progressFunc = CheckProc();
+ EditorApplication.update += CheckUpdate;
+ }
+ y += 20;
+
+ GUI.enabled = true;
+
+ minSize = new Vector2(320, isError ? 160 : (progressFunc == null ? 110 : 160));
+
+ if (progressFunc != null)
+ {
+ GUI.Label(new Rect(0, y, 320, 24), curItem);
+ y += 24;
+ EditorGUI.ProgressBar(new Rect(0, y, 320, 24), progress, progress > 0 ? ("Downloading: " + (int)(progress * 100) + "%") : "Waiting for server...");
+ }
+ else if (isError)
+ {
+ EditorGUI.HelpBox(new Rect(0, y, 320, 40), errMsg, MessageType.Error);
+ }
+ }
+
+ private static void Copy(string srcFolder, string destFolder)
+ {
+ var dir = new DirectoryInfo(srcFolder);
+ if (!dir.Exists)
+ {
+ Debug.LogError("Can't find " + srcFolder);
+ return;
+ }
+
+ Directory.CreateDirectory(destFolder);
+
+ var files = dir.GetFiles();
+ foreach (FileInfo file in files)
+ {
+ string tempPath = Path.Combine(destFolder, file.Name);
+ file.CopyTo(tempPath, true);
+ }
+
+ var dirs = dir.GetDirectories();
+ foreach (DirectoryInfo subdir in dirs)
+ {
+ string tempPath = Path.Combine(destFolder, subdir.Name);
+ Copy(subdir.FullName, tempPath);
+
+ Debug.Log("Copying " + tempPath);
+ }
+ }
+
+ static void PatchAsk()
+ {
+ EditorApplication.update -= PatchAsk;
+
+ if (Application.isPlaying) return;
+
+ // Run only once when opening the editor (not when reloading scripts, changing between modes, etc)
+ if (SessionState.GetBool("BakeryPatchWaitForRestart", false)) return;
+
+ var cachePath = Directory.GetCurrentDirectory() + "/BakeryPatchCache";
+
+ if (EditorUtility.DisplayDialog("Bakery", "Bakery patch was downloaded. Apply patch?", "Yes", "No"))
+ {
+ Copy(cachePath + "/Runtime", ftLightmaps.GetRuntimePath());
+ Copy(cachePath + "/Editor", ftLightmaps.GetEditorPath());
+
+ // Downloaded version -> current version
+ if (File.Exists("bakery-csharp-dver.txt")) File.Copy("bakery-csharp-dver.txt", "bakery-csharp-cver.txt", true);
+ if (File.Exists("bakery-compiled-dver.txt")) File.Copy("bakery-compiled-dver.txt", "bakery-compiled-cver.txt", true);
+ if (File.Exists("bakery-rtpreview-csharp-dver.txt")) File.Copy("bakery-rtpreview-csharp-dver.txt", "bakery-rtpreview-csharp-cver.txt", true);
+ }
+
+ Directory.Delete(cachePath, true);
+
+ AssetDatabase.Refresh();
+ }
+
+ static ftUpdater()
+ {
+ // Was the patch downloaded?
+ var cachePath = Directory.GetCurrentDirectory() + "/BakeryPatchCache";
+ if (!Directory.Exists(cachePath)) return;
+
+ // Can't call everything in the constructor, continue there
+ EditorApplication.update += PatchAsk;
+ }
+}
+
+#endif
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUpdater.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUpdater.cs.meta
new file mode 100644
index 00000000..a2550400
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftUpdater.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 7150afb8f1312c144ab37ad7b22c6e7a
+timeCreated: 1618931374
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftVolumeInspector.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftVolumeInspector.cs
new file mode 100644
index 00000000..acba7105
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftVolumeInspector.cs
@@ -0,0 +1,226 @@
+// Disable 'obsolete' warnings
+#pragma warning disable 0618
+
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+#if UNITY_EDITOR
+using UnityEditor;
+using UnityEditor.IMGUI.Controls;
+#endif
+
+#if UNITY_EDITOR
+[CustomEditor(typeof(BakeryVolume))]
+public class BakeryVolumeInspector : Editor
+{
+ BoxBoundsHandle boundsHandle = new BoxBoundsHandle(typeof(BakeryVolumeInspector).GetHashCode());
+
+ SerializedProperty ftraceAdaptiveRes, ftraceResX, ftraceResY, ftraceResZ, ftraceVoxelsPerUnit, ftraceAdjustSamples, ftraceEnableBaking, ftraceEncoding, ftraceShadowmaskEncoding, ftraceDenoise, ftraceGlobal, ftraceRotation;
+
+ bool showExperimental = false;
+
+ ftLightmapsStorage storage;
+
+ static BakeryProjectSettings pstorage;
+
+ void OnEnable()
+ {
+ ftraceAdaptiveRes = serializedObject.FindProperty("adaptiveRes");
+ ftraceVoxelsPerUnit = serializedObject.FindProperty("voxelsPerUnit");
+ ftraceResX = serializedObject.FindProperty("resolutionX");
+ ftraceResY = serializedObject.FindProperty("resolutionY");
+ ftraceResZ = serializedObject.FindProperty("resolutionZ");
+ ftraceEnableBaking = serializedObject.FindProperty("enableBaking");
+ ftraceEncoding = serializedObject.FindProperty("encoding");
+ ftraceShadowmaskEncoding = serializedObject.FindProperty("shadowmaskEncoding");
+ ftraceDenoise = serializedObject.FindProperty("denoise");
+ ftraceGlobal = serializedObject.FindProperty("isGlobal");
+ ftraceRotation = serializedObject.FindProperty("supportRotationAfterBake");
+ //ftraceAdjustSamples = serializedObject.FindProperty("adjustSamples");
+ }
+
+ string F(float f)
+ {
+ // Unity keeps using comma for float printing on some systems since ~2018, even if system-wide decimal symbol is "."
+ return (f + "").Replace(",", ".");
+ }
+
+ string FormatSize(int b)
+ {
+ float mb = b / (float)(1024*1024);
+ return mb.ToString("0.0");
+ }
+
+ public override void OnInspectorGUI()
+ {
+ serializedObject.Update();
+ var vol = target as BakeryVolume;
+
+ if (pstorage == null) pstorage = ftLightmaps.GetProjectSettings();
+
+ EditorGUILayout.PropertyField(ftraceEnableBaking, new GUIContent("Enable baking", "Should the volume be (re)computed? Disable to prevent overwriting existing data."));
+ bool wasGlobal = ftraceGlobal.boolValue;
+ EditorGUILayout.PropertyField(ftraceGlobal, new GUIContent("Global", "Automatically assign this volume to all volume-compatible shaders, unless they have overrides."));
+ if (!wasGlobal && ftraceGlobal.boolValue)
+ {
+ (target as BakeryVolume).SetGlobalParams();
+ }
+ EditorGUILayout.PropertyField(ftraceDenoise, new GUIContent("Denoise", "Apply denoising after baking the volume."));
+ EditorGUILayout.Space();
+
+ EditorGUILayout.PropertyField(ftraceAdaptiveRes, new GUIContent("Adaptive resolution", "Calculate voxel resolution based on size?"));
+ if (ftraceAdaptiveRes.boolValue)
+ {
+ EditorGUILayout.PropertyField(ftraceVoxelsPerUnit, new GUIContent("Voxels per unit"));
+
+ GUI.enabled = false;
+ var size = vol.bounds.size;
+ ftraceResX.intValue = System.Math.Max((int)(size.x * vol.voxelsPerUnit), 1);
+ ftraceResY.intValue = System.Math.Max((int)(size.y * vol.voxelsPerUnit), 1);
+ ftraceResZ.intValue = System.Math.Max((int)(size.z * vol.voxelsPerUnit), 1);
+ }
+ EditorGUILayout.PropertyField(ftraceResX, new GUIContent("Resolution X"));
+ EditorGUILayout.PropertyField(ftraceResY, new GUIContent("Resolution Y"));
+ EditorGUILayout.PropertyField(ftraceResZ, new GUIContent("Resolution Z"));
+ if (ftraceResX.intValue < 1) ftraceResX.intValue = 1;
+ if (ftraceResY.intValue < 1) ftraceResY.intValue = 1;
+ if (ftraceResZ.intValue < 1) ftraceResZ.intValue = 1;
+ GUI.enabled = true;
+
+ EditorGUILayout.Space();
+ if (storage == null) storage = ftRenderLightmap.FindRenderSettingsStorage();
+ var rmode = storage.renderSettingsUserRenderMode;
+ int sizeX = ftRenderLightmap.VolumeDimension(ftraceResX.intValue);
+ int sizeY = ftRenderLightmap.VolumeDimension(ftraceResY.intValue);
+ int sizeZ = ftRenderLightmap.VolumeDimension(ftraceResZ.intValue);
+ int vSize = 0;
+ if (storage.renderSettingsCompressVolumes)
+ {
+ const int blockDimension = 4;
+ const int blockByteSize = 16; // both BC6H and BC7
+ int numBlocks = (sizeX/blockDimension) * (sizeY/blockDimension);
+ vSize = numBlocks * blockByteSize * sizeZ * 4;
+ }
+ else
+ {
+ vSize = sizeX*sizeY*sizeZ*8*3;
+ }
+ string note = "VRAM: " + FormatSize(vSize) + " MB " + (storage.renderSettingsCompressVolumes ? "(compressed color)" : "(color)");
+ if (rmode == (int)ftRenderLightmap.RenderMode.Shadowmask || pstorage.volumeRenderMode == (int)BakeryLightmapGroup.RenderMode.Shadowmask)
+ {
+ note += ", " + FormatSize(sizeX*sizeY*sizeZ * (ftraceShadowmaskEncoding.intValue == 0 ? 4 : 1)) + " MB (mask)";
+ }
+ EditorGUILayout.LabelField(note);
+
+ //EditorGUILayout.PropertyField(ftraceAdjustSamples, new GUIContent("Adjust sample positions", "Fixes light leaking from inside surfaces"));
+
+ EditorGUILayout.Space();
+
+ showExperimental = EditorGUILayout.Foldout(showExperimental, "Experimental", EditorStyles.foldout);
+ if (showExperimental)
+ {
+ EditorGUILayout.PropertyField(ftraceEncoding, new GUIContent("Encoding"));
+ EditorGUILayout.PropertyField(ftraceShadowmaskEncoding, new GUIContent("Shadowmask Encoding"));
+
+ bool wasSet = ftraceRotation.boolValue;
+ EditorGUILayout.PropertyField(ftraceRotation, new GUIContent("Support rotation after bake", "Normally volumes can only be repositioned or rescaled at runtime. With this checkbox volume's rotation matrix will also be sent to shaders. Shaders must have a similar checkbox enabled."));
+ if (wasSet != ftraceRotation.boolValue)
+ {
+ (target as BakeryVolume).SetGlobalParams();
+ }
+ }
+
+ EditorGUILayout.Space();
+
+ if (vol.bakedTexture0 == null)
+ {
+ EditorGUILayout.LabelField("Baked texture: none");
+ }
+ else
+ {
+ EditorGUILayout.LabelField("Baked texture: " + vol.bakedTexture0.name);
+ }
+
+ EditorGUILayout.Space();
+
+ var wrapObj = EditorGUILayout.ObjectField("Wrap to object", null, typeof(GameObject), true) as GameObject;
+ if (wrapObj != null)
+ {
+ var mrs = wrapObj.GetComponentsInChildren<MeshRenderer>() as MeshRenderer[];
+ if (mrs.Length > 0)
+ {
+ var b = mrs[0].bounds;
+ for(int i=1; i<mrs.Length; i++)
+ {
+ b.Encapsulate(mrs[i].bounds);
+ }
+ Undo.RecordObject(vol, "Change Bounds");
+ vol.transform.position = b.center;
+ vol.bounds = b;
+ Debug.Log("Bounds set");
+ }
+ else
+ {
+ Debug.LogError("No mesh renderers to wrap to");
+ }
+ }
+
+ var boxCol = vol.GetComponent<BoxCollider>();
+ if (boxCol != null)
+ {
+ if (GUILayout.Button("Set from box collider"))
+ {
+ Undo.RecordObject(vol, "Change Bounds");
+ vol.bounds = boxCol.bounds;
+ }
+ if (GUILayout.Button("Set to box collider"))
+ {
+ boxCol.center = Vector3.zero;
+ boxCol.size = vol.bounds.size;
+ }
+ }
+
+ var bmin = vol.bounds.min;
+ var bmax = vol.bounds.max;
+ var bsize = vol.bounds.size;
+ EditorGUILayout.LabelField("Min: " + bmin.x+", "+bmin.y+", "+bmin.z);
+ EditorGUILayout.LabelField("Max: " + bmax.x+", "+bmax.y+", "+bmax.z);
+
+ if (GUILayout.Button("Copy bounds to clipboard"))
+ {
+ GUIUtility.systemCopyBuffer = "float3 bmin = float3(" + F(bmin.x)+", "+F(bmin.y)+", "+F(bmin.z) + "); float3 bmax = float3(" + F(bmax.x)+", "+F(bmax.y)+", "+F(bmax.z) + "); float3 binvsize = float3(" + F(1.0f/bsize.x)+", "+F(1.0f/bsize.y)+", "+F(1.0f/bsize.z) + ");";
+ }
+
+ serializedObject.ApplyModifiedProperties();
+ }
+
+ protected virtual void OnSceneGUI()
+ {
+ var vol = (BakeryVolume)target;
+
+ boundsHandle.center = vol.transform.position;
+ boundsHandle.size = vol.bounds.size;
+ Handles.zTest = UnityEngine.Rendering.CompareFunction.Less;
+
+ EditorGUI.BeginChangeCheck();
+ boundsHandle.DrawHandle();
+ if (EditorGUI.EndChangeCheck())
+ {
+ Undo.RecordObject(vol, "Change Bounds");
+
+ Bounds newBounds = new Bounds();
+ newBounds.center = boundsHandle.center;
+ newBounds.size = boundsHandle.size;
+ vol.bounds = newBounds;
+ vol.transform.position = boundsHandle.center;
+ }
+ else if ((vol.bounds.center - boundsHandle.center).sqrMagnitude > 0.0001f)
+ {
+ Bounds newBounds = new Bounds();
+ newBounds.center = boundsHandle.center;
+ newBounds.size = boundsHandle.size;
+ vol.bounds = newBounds;
+ }
+ }
+}
+#endif
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftVolumeInspector.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftVolumeInspector.cs.meta
new file mode 100644
index 00000000..f001d744
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/ftVolumeInspector.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 96725c7b01d15304c92894c9b78b76d4
+timeCreated: 1608652614
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas.meta
new file mode 100644
index 00000000..5cbbe7f0
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: cdeee0ee874e6f047a1e4aa6e2ba4692
+folderAsset: yes
+timeCreated: 1622807249
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas-license.txt b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas-license.txt
new file mode 100644
index 00000000..01d0b542
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas-license.txt
@@ -0,0 +1,23 @@
+xatlas
+https://github.com/jpcy/xatlas
+Copyright (c) 2018 Jonathan Young
+
+thekla_atlas
+https://github.com/Thekla/thekla_atlas
+Copyright (c) 2013 Thekla, Inc
+Copyright NVIDIA Corporation 2006 -- Ignacio Castano <icastano@nvidia.com>
+
+Fast-BVH
+https://github.com/brandonpelfrey/Fast-BVH
+Copyright (c) 2012 Brandon Pelfrey
+
+px_sched
+https://github.com/pplux/px
+Copyright (c) 2017-2018 Jose L. Hidalgo (PpluX)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+© 2019 GitHub, Inc. \ No newline at end of file
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas-license.txt.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas-license.txt.meta
new file mode 100644
index 00000000..e3437ce5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas-license.txt.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 157fce07d9e165f4ea73f754793d6c48
+timeCreated: 1553351391
+licenseType: Store
+TextScriptImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas.cs
new file mode 100644
index 00000000..f27f9c32
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas.cs
@@ -0,0 +1,289 @@
+using UnityEngine;
+using UnityEditor;
+using UnityEditor.SceneManagement;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+
+public class xatlas
+{
+ //#define UV_HINT
+
+ public static List<Vector2> newUVBuffer;
+ public static List<int> newXrefBuffer;
+
+ [DllImport ("xatlasLib", CallingConvention=CallingConvention.Cdecl)]
+ public static extern System.IntPtr xatlasCreateAtlas();
+
+ [DllImport ("xatlasLib", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int xatlasAddMesh(System.IntPtr atlas, int vertexCount, System.IntPtr positions, System.IntPtr normals, System.IntPtr uv, int indexCount, int[] indices32);
+
+ [DllImport ("xatlasLib", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int xatlasAddUVMesh(System.IntPtr atlas, int vertexCount, System.IntPtr uv, int indexCount, int[] indices32, bool allowRotate);
+
+ [DllImport ("xatlasLib", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void xatlasParametrize(System.IntPtr atlas);
+
+ [DllImport ("xatlasLib", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void xatlasPack(System.IntPtr atlas, int attempts, float texelsPerUnit, int resolution, int maxChartSize, int padding, bool bruteForce, bool blockAlign);//, bool allowRotate);
+
+ [DllImport ("xatlasLib", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void xatlasNormalize(System.IntPtr atlas, int[] atlasSizes);
+
+ [DllImport ("xatlasLib", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int xatlasGetAtlasCount(System.IntPtr atlas);
+
+ [DllImport ("xatlasLib", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int xatlasGetAtlasIndex(System.IntPtr atlas, int meshIndex, int chartIndex);
+
+ [DllImport ("xatlasLib", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int xatlasGetVertexCount(System.IntPtr atlas, int meshIndex);
+
+ [DllImport ("xatlasLib", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int xatlasGetIndexCount(System.IntPtr atlas, int meshIndex);
+
+ [DllImport ("xatlasLib", CallingConvention=CallingConvention.Cdecl)]
+ public static extern void xatlasGetData(System.IntPtr atlas, int meshIndex, System.IntPtr outUV, System.IntPtr outRef, System.IntPtr outIndices);
+
+ [DllImport ("xatlasLib", CallingConvention=CallingConvention.Cdecl)]
+ public static extern int xatlasClear(System.IntPtr atlas);
+
+ static T[] FillAtrribute<T>(List<int> xrefArray, T[] origArray)
+ {
+ if (origArray == null || origArray.Length == 0) return origArray;
+
+ var arr = new T[xrefArray.Count];
+ for(int i=0; i<xrefArray.Count; i++)
+ {
+ int xref = xrefArray[i];
+ arr[i] = origArray[xref];
+ }
+ return arr;
+
+ /*
+ var finalAttr = new T[vertCount + xrefCount];
+ for(int i=0; i<vertCount; i++) finalAttr[i] = origArray[i];
+ for(int i=0; i<xrefCount; i++) finalAttr[i + vertCount] = origArray[ xrefArray[i] ];
+ return finalAttr;
+ */
+ }
+
+ public static double GetTime()
+ {
+ return (System.DateTime.Now.Ticks / System.TimeSpan.TicksPerMillisecond) / 1000.0;
+ }
+
+ public static void Unwrap(Mesh m, UnwrapParam uparams)
+ {
+ //EditorUtility.DisplayDialog("Bakery", "xatlas start", "OK");
+ int padding = (int)(uparams.packMargin*1024);
+ //Debug.Log("xatlas! " + padding);
+
+ newUVBuffer = null;
+ newXrefBuffer = null;
+
+ var t = GetTime();
+
+ var positions = m.vertices;
+ var normals = m.normals;
+ var existingUV = m.uv;
+ var handlePos = GCHandle.Alloc(positions, GCHandleType.Pinned);
+ var handleNorm = GCHandle.Alloc(normals, GCHandleType.Pinned);
+ var handleUV = GCHandle.Alloc(existingUV, GCHandleType.Pinned);
+ int err = 0;
+
+ var atlas = xatlasCreateAtlas();
+
+ //EditorUtility.DisplayDialog("Bakery", "xatlas created", "OK");
+
+ try
+ {
+ var pointerPos = handlePos.AddrOfPinnedObject();
+ var pointerNorm = handleNorm.AddrOfPinnedObject();
+
+#if UV_HINT
+ var pointerUV = handleUV.AddrOfPinnedObject();
+#else
+ var pointerUV = (System.IntPtr)0;
+#endif
+
+ for(int i=0; i<m.subMeshCount; i++)
+ {
+ err = xatlasAddMesh(atlas, m.vertexCount, pointerPos, pointerNorm, pointerUV, (int)m.GetIndexCount(i), m.GetIndices(i));
+ if (err == 1)
+ {
+ Debug.LogError("xatlas::AddMesh: indices are out of range");
+ }
+ else if (err == 2)
+ {
+ Debug.LogError("xatlas::AddMesh: index count is incorrect");
+ }
+ else if (err != 0)
+ {
+ Debug.LogError("xatlas::AddMesh: unknown error");
+ }
+ if (err != 0) break;
+ }
+ //EditorUtility.DisplayDialog("Bakery", "xatlas added", "OK");
+ if (err == 0)
+ {
+ xatlasParametrize(atlas);
+ //EditorUtility.DisplayDialog("Bakery", "xatlas param done", "OK");
+
+ xatlasPack(atlas, 4096, 0, 0, 1024, padding, false, true);//, true);
+ //EditorUtility.DisplayDialog("Bakery", "xatlas pack done", "OK");
+ }
+ }
+ finally
+ {
+ if (handlePos.IsAllocated) handlePos.Free();
+ if (handleNorm.IsAllocated) handleNorm.Free();
+ if (handleUV.IsAllocated) handleUV.Free();
+ }
+ if (err != 0)
+ {
+ //EditorUtility.DisplayDialog("Bakery", "xatlas cancel", "OK");
+ xatlasClear(atlas);
+ return;
+ }
+
+ Debug.Log("xatlas time: " + (GetTime() - t));
+ t = GetTime();
+
+ //EditorUtility.DisplayDialog("Bakery", "xatlas unwrap start", "OK");
+ //var uv2 = new Vector2[m.vertexCount];
+ //int vertexOffset = m.vertexCount;
+ //var newUV2 = new List<Vector2>();
+ //var newXref = new List<int>();
+ var indexBuffers = new List<int[]>();
+
+ newUVBuffer = new List<Vector2>();
+ newXrefBuffer = new List<int>();
+ while(newUVBuffer.Count < m.vertexCount)
+ {
+ newUVBuffer.Add(new Vector2(-100, -100));
+ newXrefBuffer.Add(0);
+ }
+
+ xatlasNormalize(atlas, null);
+
+ // Collect UVs/xrefs/indices
+ for(int i=0; i<m.subMeshCount; i++)
+ {
+ // Get data from xatlas
+ int newVertCount = xatlasGetVertexCount(atlas, i);
+ int indexCount = xatlasGetIndexCount(atlas, i); // should be unchanged
+
+ var uvBuffer = new Vector2[newVertCount];
+ var xrefBuffer = new int[newVertCount];
+ var indexBuffer = new int[indexCount];
+
+ var handleT = GCHandle.Alloc(uvBuffer, GCHandleType.Pinned);
+ var handleX = GCHandle.Alloc(xrefBuffer, GCHandleType.Pinned);
+ var handleI = GCHandle.Alloc(indexBuffer, GCHandleType.Pinned);
+
+ try
+ {
+ var pointerT = handleT.AddrOfPinnedObject();
+ var pointerX = handleX.AddrOfPinnedObject();
+ var pointerI = handleI.AddrOfPinnedObject();
+
+ xatlasGetData(atlas, i, pointerT, pointerX, pointerI);
+ }
+ finally
+ {
+ if (handleT.IsAllocated) handleT.Free();
+ if (handleX.IsAllocated) handleX.Free();
+ if (handleI.IsAllocated) handleI.Free();
+ }
+
+ // Generate new UV buffer and xatlas->final index mappings
+ var xatlasIndexToNewIndex = new int[newVertCount];
+ for(int j=0; j<newVertCount; j++)
+ {
+ int xref = xrefBuffer[j];
+ Vector2 uv = uvBuffer[j];
+
+ if (newUVBuffer[xref].x < 0)
+ {
+ // first xref encounter gets UV
+ xatlasIndexToNewIndex[j] = xref;
+ newUVBuffer[xref] = uv;
+ newXrefBuffer[xref] = xref;
+ }
+ else if (newUVBuffer[xref].x == uv.x && newUVBuffer[xref].y == uv.y)
+ {
+ // vertex already added
+ xatlasIndexToNewIndex[j] = xref;
+ }
+ else
+ {
+ // duplicate vertex
+ xatlasIndexToNewIndex[j] = newUVBuffer.Count;
+ newUVBuffer.Add(uv);
+ newXrefBuffer.Add(xref);
+ }
+ }
+
+ // Generate final index buffer
+ for(int j=0; j<indexCount; j++)
+ {
+ indexBuffer[j] = xatlasIndexToNewIndex[ indexBuffer[j] ];
+ }
+ indexBuffers.Add(indexBuffer);
+ }
+
+ //EditorUtility.DisplayDialog("Bakery", "xatlas unwrap end", "OK");
+
+ int vertCount = m.vertexCount;
+
+ bool origIs16bit = true;
+#if UNITY_2017_3_OR_NEWER
+ origIs16bit = m.indexFormat == UnityEngine.Rendering.IndexFormat.UInt16;
+#endif
+ bool is32bit = newUVBuffer.Count >= 65000;//0xFFFF;
+ if (is32bit && origIs16bit)
+ {
+ Debug.LogError("Unwrap failed: original mesh (" + m.name + ") has 16 bit indices, but unwrapped requires 32 bit.");
+ return;
+ }
+
+ // Duplicate attributes
+ //if (newXrefBuffer.Count > m.vertexCount) // commented because can be also swapped around
+ {
+ m.vertices = FillAtrribute<Vector3>(newXrefBuffer, positions);
+ m.normals = FillAtrribute<Vector3>(newXrefBuffer, normals);
+ m.boneWeights = FillAtrribute<BoneWeight>(newXrefBuffer, m.boneWeights);
+ m.colors32 = FillAtrribute<Color32>(newXrefBuffer, m.colors32);
+ m.tangents = FillAtrribute<Vector4>(newXrefBuffer, m.tangents);
+ m.uv = FillAtrribute<Vector2>(newXrefBuffer, m.uv);
+ m.uv3 = FillAtrribute<Vector2>(newXrefBuffer, m.uv3);
+ m.uv4 = FillAtrribute<Vector2>(newXrefBuffer, m.uv4);
+#if UNITY_2018_2_OR_NEWER
+ m.uv5 = FillAtrribute<Vector2>(newXrefBuffer, m.uv5);
+ m.uv6 = FillAtrribute<Vector2>(newXrefBuffer, m.uv6);
+ m.uv7 = FillAtrribute<Vector2>(newXrefBuffer, m.uv7);
+ m.uv8 = FillAtrribute<Vector2>(newXrefBuffer, m.uv8);
+#endif
+ }
+
+ m.uv2 = newUVBuffer.ToArray();
+
+/*
+
+ // Set new UV2
+ var finalUV2 = new Vector2[vertCount + newUV2.Count];
+ for(int i=0; i<vertCount; i++) finalUV2[i] = uv2[i];
+ for(int i=0; i<newUV2.Count; i++) finalUV2[i + vertCount] = newUV2[i];
+ m.uv2 = finalUV2;
+*/
+ // Set indices
+ for(int i=0; i<m.subMeshCount; i++)
+ {
+ m.SetTriangles(indexBuffers[i], i);
+ }
+
+ //Debug.Log("post-xatlas mesh building time: " + GetTime() - t));
+
+ xatlasClear(atlas);
+ }
+}
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas.cs.meta
new file mode 100644
index 00000000..ba1cb5bf
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlas.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 144aa3fbdb8360b4aaa4051032c25680
+timeCreated: 1557759843
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasEnable.cs b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasEnable.cs
new file mode 100644
index 00000000..40b47ade
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasEnable.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using UnityEditor;
+using UnityEditor.SceneManagement;
+using System.Collections.Generic;
+
+public partial class ftModelPostProcessor : ftModelPostProcessorInternal
+{
+ public override void UnwrapXatlas(Mesh m, UnwrapParam param)
+ {
+ xatlas.Unwrap(m, uparams);
+ }
+}
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasEnable.cs.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasEnable.cs.meta
new file mode 100644
index 00000000..2a87e7fc
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasEnable.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: deadc446e4efea944b443c59b6aed3f8
+timeCreated: 1559601034
+licenseType: Store
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasLib.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasLib.dll
new file mode 100644
index 00000000..d0491338
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasLib.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasLib.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasLib.dll.meta
new file mode 100644
index 00000000..4ebc077a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/scripts/xatlas/xatlasLib.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: b8be677e296fbf94092b02ac72dab402
+timeCreated: 1582151152
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfix.vso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfix.vso
new file mode 100644
index 00000000..cdefaf90
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfix.vso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfix.vso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfix.vso.meta
new file mode 100644
index 00000000..287e8885
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfix.vso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2acc01a02083e7b42a7faee4ea6706b6
+timeCreated: 1526332154
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfixer.exe b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfixer.exe
new file mode 100644
index 00000000..3ec93c14
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfixer.exe
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfixer.exe.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfixer.exe.meta
new file mode 100644
index 00000000..936157b2
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/seamfixer.exe.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1a97a07a987b63c4fa1eb5031a205270
+timeCreated: 1526331764
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc.meta
new file mode 100644
index 00000000..184a85b7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 32167c699d9680c4795834cf8697a14f
+folderAsset: yes
+timeCreated: 1622807247
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftCullFarSphere.compute b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftCullFarSphere.compute
new file mode 100644
index 00000000..598f714c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftCullFarSphere.compute
@@ -0,0 +1,79 @@
+#pragma kernel CSMain
+
+StructuredBuffer<float3> verts;
+StructuredBuffer<uint3> indices;
+StructuredBuffer<float2> uvs;
+AppendStructuredBuffer<uint3> newIndices;
+Texture2D alphaTex;
+float cubeSize;
+uint triCount;
+//float3 localCamPos;
+
+float3 trinormal(float3 v0, float3 v1, float3 v2)
+{
+ float3 p = v0-v1;
+ float3 q = v1-v2;
+ float3 norm = cross(p,q);
+ return normalize(norm);
+}
+
+[numthreads(256,1,1)]
+void CSMain (uint3 id : SV_DispatchThreadID)
+{
+ if (id.x >= triCount) return;
+
+ uint3 ind = indices[id.x];
+ float3 a = verts[ind.x];
+ float3 b = verts[ind.y];
+ float3 c = verts[ind.z];
+
+ float ab = distance(a,b);
+ float bc = distance(b,c);
+ float ca = distance(c,a);
+
+ //if (max(max(ab, bc), ca) > 0.9) return;
+
+ float3 n = trinormal(a,b,c);
+
+ float3 dir = normalize(a);// - localCamPos);
+ //if (dot(-dir, n) > 0.2f)
+ float elimit = 10;
+ float dlimit = 900;
+ //if (distance(localCamPos, a) < dlimit && distance(localCamPos, b) < dlimit && distance(localCamPos, c) < dlimit)
+ if (length(a) < dlimit && length(b) < dlimit && length(c) < dlimit)
+ {
+ if (dot(-dir, n) > 0.0f)
+ {
+
+ float degenerateThreshold = 0.1f;
+ bool deg = false;
+ if (((bc + ca) - ab) / ab < degenerateThreshold)
+ {
+ deg = true;
+ }
+ else if (((ab + ca) - bc) / bc < degenerateThreshold)
+ {
+ deg = true;
+ }
+ else if (((ab + bc) - ca) / ca < degenerateThreshold)
+ {
+ deg = true;
+ }
+ if (!deg)
+ {
+ float2 uv0 = uvs[ind.x] * cubeSize;
+ float2 uv1 = uvs[ind.y] * cubeSize;
+ float2 uv2 = uvs[ind.z] * cubeSize;
+ float a0 = alphaTex.Load(int3(uv0.x, uv0.y, 0)).a;
+ float a1 = alphaTex.Load(int3(uv1.x, uv1.y, 0)).a;
+ float a2 = alphaTex.Load(int3(uv2.x, uv2.y, 0)).a;
+ //float a = a0 + a1 + a2;
+ float a = a0 * a1 * a2;
+ if (a > 1.0f / 255)
+ {
+ newIndices.Append(ind);
+ }
+ }
+ }
+ }
+}
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftCullFarSphere.compute.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftCullFarSphere.compute.meta
new file mode 100644
index 00000000..4b521761
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftCullFarSphere.compute.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 0a45c2cb58f63f2498cf418d09aaefd1
+timeCreated: 1617749862
+licenseType: Store
+ComputeShaderImporter:
+ currentAPIMask: 4
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftTransformFarSphere.compute b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftTransformFarSphere.compute
new file mode 100644
index 00000000..163416f7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftTransformFarSphere.compute
@@ -0,0 +1,64 @@
+#pragma kernel CSMain
+
+RWStructuredBuffer<float3> verts;
+Texture2D<float> _DepthTex;
+SamplerState sampler_DepthTex;
+float3 objectCenter;
+float4 _InvProj0, _InvProj1, _InvProj2, _InvProj3;
+float3 wnormal;
+uint vertWidth;
+
+float4 ComputeClipSpacePosition(float2 positionNDC, float deviceDepth)
+{
+ float4 positionCS = float4(positionNDC * 2.0 - 1.0, deviceDepth, 1.0);
+ positionCS.y = -positionCS.y;
+ return positionCS;
+}
+
+float3 ComputeViewSpacePosition(float2 positionNDC, float deviceDepth, float4x4 invProjMatrix)
+{
+ float4 positionCS = ComputeClipSpacePosition(positionNDC, deviceDepth);
+ float4 hpositionVS = mul(invProjMatrix, positionCS);
+ return hpositionVS.xyz / hpositionVS.w;
+}
+
+float planeIntersect(float3 ro, float3 rd, float4 p)
+{
+ return -(dot(ro,p.xyz)+p.w)/dot(rd,p.xyz);
+}
+
+[numthreads(16,16,1)]
+void CSMain (uint3 id : SV_DispatchThreadID)
+{
+ if (id.x >= vertWidth) return;
+ if (id.y >= vertWidth) return;
+
+ int vertID = id.y * vertWidth + id.x;
+ float3 lpos = verts[vertID];
+
+ float4x4 invProjMatrix = float4x4(_InvProj0, _InvProj1, _InvProj2, _InvProj3);
+
+ float2 uv = (id.xy) / (float)(vertWidth-1);
+ uv.y = 1 - uv.y;
+
+ float texelSize = 1.0f / vertWidth;
+
+ uv = lerp(uv-texelSize*0.5, uv+texelSize*0.5, uv);
+
+ float2 centerUV = uv;//floor(uv * (vertWidth-1)) / (vertWidth-1);
+
+ float2 leftUV = centerUV - float2(texelSize, 0);
+ float2 rightUV = centerUV + float2(texelSize, 0);
+ float2 bottomUV = centerUV - float2(0, texelSize);
+ float2 topUV = centerUV + float2(0, texelSize);
+
+ float depth = _DepthTex.SampleLevel(sampler_DepthTex, centerUV, 0).r;
+
+ //depth = -ComputeViewSpacePosition(uv * 2 - 1, depth, invProjMatrix).z;
+ //float3 dir = normalize(lpos);
+ //float3 worldPos = dir * planeIntersect(0, dir, float4(-wnormal.xyz, depth));
+
+ float3 worldPos = ComputeViewSpacePosition(uv, depth, invProjMatrix) - objectCenter;
+
+ verts[vertID] = worldPos;
+}
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftTransformFarSphere.compute.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftTransformFarSphere.compute.meta
new file mode 100644
index 00000000..a594f9c4
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftTransformFarSphere.compute.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 84e158810fe530a499c974bba77a220a
+timeCreated: 1617749862
+licenseType: Store
+ComputeShaderImporter:
+ currentAPIMask: 4
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftrace.cginc b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftrace.cginc
new file mode 100644
index 00000000..15e26290
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftrace.cginc
@@ -0,0 +1,163 @@
+#ifdef LIGHTMAP_RGBM_SCALE
+
+#ifndef FTRACE_INCLUDED
+#define FTRACE_INCLUDED
+
+// Bicubic interpolation
+
+float ftBicubic_w0(float a)
+{
+ return (1.0f/6.0f)*(a*(a*(-a + 3.0f) - 3.0f) + 1.0f);
+}
+
+float ftBicubic_w1(float a)
+{
+ return (1.0f/6.0f)*(a*a*(3.0f*a - 6.0f) + 4.0f);
+}
+
+float ftBicubic_w2(float a)
+{
+ return (1.0f/6.0f)*(a*(a*(-3.0f*a + 3.0f) + 3.0f) + 1.0f);
+}
+
+float ftBicubic_w3(float a)
+{
+ return (1.0f/6.0f)*(a*a*a);
+}
+
+float ftBicubic_g0(float a)
+{
+ return ftBicubic_w0(a) + ftBicubic_w1(a);
+}
+
+float ftBicubic_g1(float a)
+{
+ return ftBicubic_w2(a) + ftBicubic_w3(a);
+}
+
+float ftBicubic_h0(float a)
+{
+ return -1.0f + ftBicubic_w1(a) / (ftBicubic_w0(a) + ftBicubic_w1(a)) + 0.5f;
+}
+
+float ftBicubic_h1(float a)
+{
+ return 1.0f + ftBicubic_w3(a) / (ftBicubic_w2(a) + ftBicubic_w3(a)) + 0.5f;
+}
+
+#ifdef SHADER_API_D3D11
+#if defined (SHADOWS_SHADOWMASK)
+
+float4 ftBicubicSampleShadow3( Texture2D tex, SamplerState ftShadowSampler, float2 uv )
+{
+ float width, height;
+ tex.GetDimensions(width, height);
+
+ float x = uv.x * width;
+ float y = uv.y * height;
+
+ x -= 0.5f;
+ y -= 0.5f;
+
+ float px = floor(x);
+ float py = floor(y);
+
+ float fx = x - px;
+ float fy = y - py;
+
+ float g0x = ftBicubic_g0(fx);
+ float g1x = ftBicubic_g1(fx);
+ float h0x = ftBicubic_h0(fx);
+ float h1x = ftBicubic_h1(fx);
+ float h0y = ftBicubic_h0(fy);
+ float h1y = ftBicubic_h1(fy);
+
+ float4 r = ftBicubic_g0(fy) * ( g0x * tex.Sample(ftShadowSampler, (float2(px + h0x, py + h0y) * 1.0f/width)) +
+ g1x * tex.Sample(ftShadowSampler, (float2(px + h1x, py + h0y) * 1.0f/width))) +
+
+ ftBicubic_g1(fy) * ( g0x * tex.Sample(ftShadowSampler, (float2(px + h0x, py + h1y) * 1.0f/width)) +
+ g1x * tex.Sample(ftShadowSampler, (float2(px + h1x, py + h1y) * 1.0f/width)));
+ return r;
+}
+
+float4 ftBicubicSampleShadow( Texture2D tex, float2 uv )
+{
+ #if defined(LIGHTMAP_ON)
+ SamplerState samplerMask = samplerunity_Lightmap;
+ #else
+ SamplerState samplerMask = samplerunity_ShadowMask;
+ #endif
+
+ return ftBicubicSampleShadow3(tex, samplerMask, uv);
+}
+
+#define ftBicubicSampleShadow2(t,s,u) ftBicubicSampleShadow3(t, sampler##s, u)
+
+#else
+#define ftBicubicSampleShadow UNITY_SAMPLE_TEX2D
+#define ftBicubicSampleShadow2 UNITY_SAMPLE_TEX2D_SAMPLER
+#endif
+#else
+#define ftBicubicSampleShadow UNITY_SAMPLE_TEX2D
+#define ftBicubicSampleShadow2 UNITY_SAMPLE_TEX2D_SAMPLER
+#endif
+
+float3 ftLightmapBicubic( float2 uv )
+{
+ #ifdef SHADER_API_D3D11
+ float width, height;
+ unity_Lightmap.GetDimensions(width, height);
+
+ float x = uv.x * width;
+ float y = uv.y * height;
+
+ x -= 0.5f;
+ y -= 0.5f;
+
+ float px = floor(x);
+ float py = floor(y);
+
+ float fx = x - px;
+ float fy = y - py;
+
+ // note: we could store these functions in a lookup table texture, but maths is cheap
+ float g0x = ftBicubic_g0(fx);
+ float g1x = ftBicubic_g1(fx);
+ float h0x = ftBicubic_h0(fx);
+ float h1x = ftBicubic_h1(fx);
+ float h0y = ftBicubic_h0(fy);
+ float h1y = ftBicubic_h1(fy);
+
+ float4 r = ftBicubic_g0(fy) * ( g0x * UNITY_SAMPLE_TEX2D(unity_Lightmap, (float2(px + h0x, py + h0y) * 1.0f/width)) +
+ g1x * UNITY_SAMPLE_TEX2D(unity_Lightmap, (float2(px + h1x, py + h0y) * 1.0f/width))) +
+
+ ftBicubic_g1(fy) * ( g0x * UNITY_SAMPLE_TEX2D(unity_Lightmap, (float2(px + h0x, py + h1y) * 1.0f/width)) +
+ g1x * UNITY_SAMPLE_TEX2D(unity_Lightmap, (float2(px + h1x, py + h1y) * 1.0f/width)));
+ return DecodeLightmap(r);
+ #else
+ return DecodeLightmap(UNITY_SAMPLE_TEX2D(unity_Lightmap, uv));
+ #endif
+}
+
+
+// Light falloff
+
+float ftLightFalloff(float4x4 ftUnityLightMatrix, float3 worldPos)
+{
+ float3 lightCoord = mul(ftUnityLightMatrix, float4(worldPos, 1)).xyz / ftUnityLightMatrix._11;
+ float distSq = dot(lightCoord, lightCoord);
+ float falloff = saturate(1.0f - pow(sqrt(distSq) * ftUnityLightMatrix._11, 4.0f)) / (distSq + 1.0f);
+ return falloff;
+}
+
+float ftLightFalloff(float4 lightPosRadius, float3 worldPos)
+{
+ float3 lightCoord = worldPos - lightPosRadius.xyz;
+ float distSq = dot(lightCoord, lightCoord);
+ float falloff = saturate(1.0f - pow(sqrt(distSq * lightPosRadius.w), 4.0f)) / (distSq + 1.0f);
+ return falloff;
+}
+
+#endif
+
+#endif
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftrace.cginc.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftrace.cginc.meta
new file mode 100644
index 00000000..9788a5c2
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shaderSrc/ftrace.cginc.meta
@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: f1386c908e92ef64287e16194552143d
+timeCreated: 1527275740
+licenseType: Store
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow.ptx
new file mode 100644
index 00000000..d87305f2
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow.ptx
@@ -0,0 +1,109 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 4 .b8 payload[4];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7payloadE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename7payloadE[8] = {82, 97, 121, 68, 97, 116, 97, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7payloadE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic7payloadE[10] = {114, 116, 80, 97, 121, 108, 111, 97, 100, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7payloadE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .b32 %r<2>;
+
+
+ mov.u32 %r1, 0;
+ st.global.u32 [payload], %r1;
+ // inline asm
+ call _rt_terminate_ray, ();
+ // inline asm
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow.ptx.meta
new file mode 100644
index 00000000..78f2ac0d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c8b4799bb5c5f91498d53296a462c8ab
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3.ptx
new file mode 100644
index 00000000..db6c836f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3.ptx
@@ -0,0 +1,111 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 4 .b8 payload[12];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7payloadE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename7payloadE[9] = {82, 97, 121, 68, 97, 116, 97, 51, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7payloadE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic7payloadE[10] = {114, 116, 80, 97, 121, 108, 111, 97, 100, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7payloadE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .b32 %r<2>;
+
+
+ mov.u32 %r1, 0;
+ st.global.u32 [payload+8], %r1;
+ st.global.u32 [payload+4], %r1;
+ st.global.u32 [payload], %r1;
+ // inline asm
+ call _rt_terminate_ray, ();
+ // inline asm
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3.ptx.meta
new file mode 100644
index 00000000..213d9e16
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a67cb9941159e3a4a864ce0617a8cd3d
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3_rtx.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3_rtx.ptx
new file mode 100644
index 00000000..98cdcb30
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3_rtx.ptx
@@ -0,0 +1,133 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 4 .b8 payload[12];
+.global .align 4 .f32 triAlpha;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7payloadE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8triAlphaE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename7payloadE[9] = {82, 97, 121, 68, 97, 116, 97, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8triAlphaE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7payloadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8triAlphaE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic7payloadE[10] = {114, 116, 80, 97, 121, 108, 111, 97, 100, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic8triAlphaE[19] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 114, 105, 65, 108, 112, 104, 97, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7payloadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8triAlphaE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<2>;
+ .reg .f32 %f<2>;
+ .reg .b32 %r<2>;
+
+
+ ld.global.f32 %f1, [triAlpha];
+ setp.eq.f32 %p1, %f1, 0f00000000;
+ @%p1 bra BB0_2;
+ bra.uni BB0_1;
+
+BB0_2:
+ // inline asm
+ call _rt_ignore_intersection, ();
+ // inline asm
+ bra.uni BB0_3;
+
+BB0_1:
+ mov.u32 %r1, 0;
+ st.global.u32 [payload+8], %r1;
+ st.global.u32 [payload+4], %r1;
+ st.global.u32 [payload], %r1;
+ // inline asm
+ call _rt_terminate_ray, ();
+ // inline asm
+
+BB0_3:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3_rtx.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3_rtx.ptx.meta
new file mode 100644
index 00000000..ec76415a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow3_rtx.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5ea753d9b43b62d448129159d4f26b7f
+timeCreated: 1549921201
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow_rtx.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow_rtx.ptx
new file mode 100644
index 00000000..1fdefda5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow_rtx.ptx
@@ -0,0 +1,131 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z6oxMainv
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 4 .b8 payload[4];
+.global .align 4 .f32 triAlpha;
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7payloadE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8triAlphaE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename7payloadE[8] = {82, 97, 121, 68, 97, 116, 97, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8triAlphaE[6] = {102, 108, 111, 97, 116, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum7payloadE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8triAlphaE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic7payloadE[10] = {114, 116, 80, 97, 121, 108, 111, 97, 100, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic8triAlphaE[19] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 114, 105, 65, 108, 112, 104, 97, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation7payloadE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8triAlphaE[1];
+
+.visible .entry _Z6oxMainv(
+
+)
+{
+ .reg .pred %p<2>;
+ .reg .f32 %f<2>;
+ .reg .b32 %r<2>;
+
+
+ ld.global.f32 %f1, [triAlpha];
+ setp.eq.f32 %p1, %f1, 0f00000000;
+ @%p1 bra BB0_2;
+ bra.uni BB0_1;
+
+BB0_2:
+ // inline asm
+ call _rt_ignore_intersection, ();
+ // inline asm
+ bra.uni BB0_3;
+
+BB0_1:
+ mov.u32 %r1, 0;
+ st.global.u32 [payload], %r1;
+ // inline asm
+ call _rt_terminate_ray, ();
+ // inline asm
+
+BB0_3:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow_rtx.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow_rtx.ptx.meta
new file mode 100644
index 00000000..75f1039a
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/shadow_rtx.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 321fea1747a3fe149a58d62cd6431210
+timeCreated: 1549921201
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/simpleProgressBar.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/simpleProgressBar.dll
new file mode 100644
index 00000000..420cb7b3
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/simpleProgressBar.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/simpleProgressBar.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/simpleProgressBar.dll.meta
new file mode 100644
index 00000000..6ff2ffb5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/simpleProgressBar.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: 1ad435458792fd9488c6e46fd780fd2c
+timeCreated: 1527425979
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/skyOutput.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/skyOutput.pso
new file mode 100644
index 00000000..b78bd97f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/skyOutput.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/skyOutput.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/skyOutput.pso.meta
new file mode 100644
index 00000000..7b92104d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/skyOutput.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ea9bd7b5c431ba1418d96da4eba35ae5
+timeCreated: 1543055475
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbb.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbb.dll
new file mode 100644
index 00000000..10b929bc
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbb.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbb.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbb.dll.meta
new file mode 100644
index 00000000..9c6326c9
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbb.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: f5fd3a49080f0174c968a417b775d414
+timeCreated: 1589355275
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbbmalloc.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbbmalloc.dll
new file mode 100644
index 00000000..98406eb7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbbmalloc.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbbmalloc.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbbmalloc.dll.meta
new file mode 100644
index 00000000..4f47ccaa
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/tbbmalloc.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: df42451810275fc4bb1b2de22fbdca6f
+timeCreated: 1589355275
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimesh.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimesh.ptx
new file mode 100644
index 00000000..bdda083c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimesh.ptx
@@ -0,0 +1,459 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z9intersecti
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 1 .b8 vertex_buffer[1];
+.global .align 1 .b8 index_buffer[1];
+.global .align 4 .u32 firstAlphaTriangle;
+.global .align 1 .b8 vertex_buffer_uv[1];
+.global .align 1 .b8 triangleAlphaIDs[1];
+.global .align 1 .b8 alphaTextures[1];
+.global .align 4 .b8 ray[36];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo18firstAlphaTriangleE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename18firstAlphaTriangleE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum18firstAlphaTriangleE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic18firstAlphaTriangleE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation18firstAlphaTriangleE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+
+.visible .entry _Z9intersecti(
+ .param .u32 _Z9intersecti_param_0
+)
+{
+ .reg .pred %p<13>;
+ .reg .f32 %f<123>;
+ .reg .b32 %r<45>;
+ .reg .b64 %rd<98>;
+
+
+ ld.param.u32 %r2, [_Z9intersecti_param_0];
+ cvt.s64.s32 %rd6, %r2;
+ mov.u64 %rd28, index_buffer;
+ cvta.global.u64 %rd5, %rd28;
+ mov.u32 %r9, 1;
+ mov.u32 %r4, 12;
+ mov.u64 %rd27, 0;
+ // inline asm
+ call (%rd4), _rt_buffer_get_64, (%rd5, %r9, %r4, %rd6, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.s32 %rd12, [%rd4];
+ mov.u64 %rd29, vertex_buffer;
+ cvta.global.u64 %rd11, %rd29;
+ ld.s32 %rd18, [%rd4+4];
+ ld.s32 %rd24, [%rd4+8];
+ mov.u32 %r10, 24;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r9, %r10, %rd12, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f4, [%rd10+8];
+ ld.f32 %f5, [%rd10+4];
+ ld.f32 %f6, [%rd10];
+ // inline asm
+ call (%rd16), _rt_buffer_get_64, (%rd11, %r9, %r10, %rd18, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f7, [%rd16+8];
+ ld.f32 %f8, [%rd16+4];
+ ld.f32 %f9, [%rd16];
+ // inline asm
+ call (%rd22), _rt_buffer_get_64, (%rd11, %r9, %r10, %rd24, %rd27, %rd27, %rd27);
+ // inline asm
+ sub.f32 %f10, %f9, %f6;
+ sub.f32 %f11, %f8, %f5;
+ sub.f32 %f12, %f7, %f4;
+ ld.f32 %f13, [%rd22+8];
+ ld.f32 %f14, [%rd22+4];
+ ld.f32 %f15, [%rd22];
+ sub.f32 %f16, %f6, %f15;
+ sub.f32 %f17, %f5, %f14;
+ sub.f32 %f18, %f4, %f13;
+ mul.f32 %f19, %f12, %f17;
+ mul.f32 %f20, %f11, %f18;
+ sub.f32 %f21, %f19, %f20;
+ mul.f32 %f22, %f10, %f18;
+ mul.f32 %f23, %f12, %f16;
+ sub.f32 %f24, %f22, %f23;
+ mul.f32 %f25, %f11, %f16;
+ mul.f32 %f26, %f10, %f17;
+ sub.f32 %f27, %f25, %f26;
+ ld.global.f32 %f28, [ray+12];
+ ld.global.f32 %f29, [ray+16];
+ mul.f32 %f30, %f29, %f24;
+ fma.rn.f32 %f31, %f28, %f21, %f30;
+ ld.global.f32 %f32, [ray+20];
+ fma.rn.f32 %f33, %f32, %f27, %f31;
+ rcp.rn.f32 %f34, %f33;
+ ld.global.f32 %f35, [ray];
+ sub.f32 %f36, %f6, %f35;
+ ld.global.f32 %f37, [ray+4];
+ sub.f32 %f38, %f5, %f37;
+ ld.global.f32 %f39, [ray+8];
+ sub.f32 %f40, %f4, %f39;
+ mul.f32 %f41, %f34, %f36;
+ mul.f32 %f42, %f34, %f38;
+ mul.f32 %f43, %f34, %f40;
+ mul.f32 %f44, %f29, %f43;
+ mul.f32 %f45, %f42, %f32;
+ sub.f32 %f46, %f44, %f45;
+ mul.f32 %f47, %f41, %f32;
+ mul.f32 %f48, %f43, %f28;
+ sub.f32 %f49, %f47, %f48;
+ mul.f32 %f50, %f42, %f28;
+ mul.f32 %f51, %f41, %f29;
+ sub.f32 %f52, %f50, %f51;
+ mul.f32 %f53, %f17, %f49;
+ fma.rn.f32 %f54, %f16, %f46, %f53;
+ fma.rn.f32 %f1, %f18, %f52, %f54;
+ mul.f32 %f55, %f11, %f49;
+ fma.rn.f32 %f56, %f10, %f46, %f55;
+ fma.rn.f32 %f2, %f12, %f52, %f56;
+ mul.f32 %f57, %f24, %f42;
+ fma.rn.f32 %f58, %f21, %f41, %f57;
+ fma.rn.f32 %f3, %f27, %f43, %f58;
+ ld.global.f32 %f59, [ray+32];
+ setp.lt.f32 %p1, %f3, %f59;
+ ld.global.f32 %f60, [ray+28];
+ setp.gt.f32 %p2, %f3, %f60;
+ and.pred %p3, %p1, %p2;
+ setp.ge.f32 %p4, %f1, 0f00000000;
+ and.pred %p5, %p3, %p4;
+ setp.ge.f32 %p6, %f2, 0f00000000;
+ and.pred %p7, %p5, %p6;
+ add.f32 %f61, %f1, %f2;
+ setp.le.f32 %p8, %f61, 0f3F800000;
+ and.pred %p9, %p7, %p8;
+ @!%p9 bra BB0_5;
+ bra.uni BB0_1;
+
+BB0_1:
+ ld.global.u32 %r1, [firstAlphaTriangle];
+ setp.gt.s32 %p10, %r1, %r2;
+ @%p10 bra BB0_3;
+
+ sub.s32 %r29, %r2, %r1;
+ cvt.s64.s32 %rd32, %r29;
+ mov.u64 %rd75, triangleAlphaIDs;
+ cvta.global.u64 %rd31, %rd75;
+ mov.u32 %r25, 4;
+ // inline asm
+ call (%rd30), _rt_buffer_get_64, (%rd31, %r9, %r25, %rd32, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.u32 %rd76, [%rd30];
+ cvt.u32.u64 %r30, %rd76;
+ shr.u32 %r31, %r30, 16;
+ mov.u64 %rd77, vertex_buffer_uv;
+ cvta.global.u64 %rd37, %rd77;
+ mov.u32 %r18, 8;
+ // inline asm
+ call (%rd36), _rt_buffer_get_64, (%rd37, %r9, %r18, %rd12, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.v2.f32 {%f62, %f63}, [%rd36];
+ // inline asm
+ call (%rd42), _rt_buffer_get_64, (%rd37, %r9, %r18, %rd18, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.v2.f32 {%f66, %f67}, [%rd42];
+ // inline asm
+ call (%rd48), _rt_buffer_get_64, (%rd37, %r9, %r18, %rd24, %rd27, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f70, 0f3F800000;
+ sub.f32 %f71, %f70, %f1;
+ sub.f32 %f72, %f71, %f2;
+ mul.f32 %f73, %f1, %f66;
+ mul.f32 %f74, %f1, %f67;
+ fma.rn.f32 %f75, %f72, %f62, %f73;
+ fma.rn.f32 %f76, %f72, %f63, %f74;
+ ld.v2.f32 {%f77, %f78}, [%rd48];
+ fma.rn.f32 %f81, %f2, %f77, %f75;
+ fma.rn.f32 %f82, %f2, %f78, %f76;
+ abs.f32 %f83, %f81;
+ cvt.rmi.f32.f32 %f84, %f83;
+ sub.f32 %f85, %f83, %f84;
+ abs.f32 %f86, %f82;
+ cvt.rmi.f32.f32 %f87, %f86;
+ sub.f32 %f88, %f86, %f87;
+ and.b64 %rd56, %rd76, 65535;
+ mov.u64 %rd78, alphaTextures;
+ cvta.global.u64 %rd55, %rd78;
+ // inline asm
+ call (%rd54), _rt_buffer_get_64, (%rd55, %r9, %r25, %rd56, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r21, [%rd54];
+ mov.u32 %r27, 2;
+ // inline asm
+ call (%rd60, %rd61, %rd62, %rd63), _rt_buffer_get_id_size_64, (%r21, %r27, %r9);
+ // inline asm
+ cvt.rn.f32.u64 %f89, %rd60;
+ mul.f32 %f90, %f85, %f89;
+ cvt.rzi.u32.f32 %r32, %f90;
+ cvt.rn.f32.u64 %f91, %rd61;
+ mul.f32 %f92, %f88, %f91;
+ cvt.rzi.u32.f32 %r33, %f92;
+ // inline asm
+ call (%rd64), _rt_buffer_get_64, (%rd55, %r9, %r25, %rd56, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r26, [%rd64];
+ cvt.u64.u32 %rd71, %r32;
+ cvt.u64.u32 %rd72, %r33;
+ // inline asm
+ call (%rd70), _rt_buffer_get_id_64, (%r26, %r27, %r9, %rd71, %rd72, %rd27, %rd27);
+ // inline asm
+ ld.u8 %r34, [%rd70];
+ and.b32 %r35, %r34, %r31;
+ setp.eq.s32 %p11, %r35, 0;
+ @%p11 bra BB0_5;
+
+BB0_3:
+ // inline asm
+ call (%r36), _rt_potential_intersection, (%f3);
+ // inline asm
+ setp.eq.s32 %p12, %r36, 0;
+ @%p12 bra BB0_5;
+
+ // inline asm
+ call (%rd79), _rt_buffer_get_64, (%rd11, %r9, %r10, %rd12, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f94, [%rd79+20];
+ ld.f32 %f95, [%rd79+16];
+ ld.f32 %f96, [%rd79+12];
+ // inline asm
+ call (%rd85), _rt_buffer_get_64, (%rd11, %r9, %r10, %rd18, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f97, [%rd85+20];
+ ld.f32 %f98, [%rd85+16];
+ ld.f32 %f99, [%rd85+12];
+ // inline asm
+ call (%rd91), _rt_buffer_get_64, (%rd11, %r9, %r10, %rd24, %rd27, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f100, 0f3F800000;
+ sub.f32 %f101, %f100, %f1;
+ sub.f32 %f102, %f101, %f2;
+ mul.f32 %f103, %f1, %f99;
+ mul.f32 %f104, %f1, %f98;
+ mul.f32 %f105, %f1, %f97;
+ fma.rn.f32 %f106, %f102, %f96, %f103;
+ fma.rn.f32 %f107, %f102, %f95, %f104;
+ fma.rn.f32 %f108, %f102, %f94, %f105;
+ ld.f32 %f109, [%rd91+20];
+ ld.f32 %f110, [%rd91+16];
+ ld.f32 %f111, [%rd91+12];
+ fma.rn.f32 %f112, %f2, %f111, %f106;
+ fma.rn.f32 %f113, %f2, %f110, %f107;
+ fma.rn.f32 %f114, %f2, %f109, %f108;
+ mul.f32 %f115, %f113, %f113;
+ fma.rn.f32 %f116, %f112, %f112, %f115;
+ fma.rn.f32 %f117, %f114, %f114, %f116;
+ sqrt.rn.f32 %f118, %f117;
+ rcp.rn.f32 %f119, %f118;
+ mul.f32 %f120, %f119, %f112;
+ mul.f32 %f121, %f119, %f113;
+ mul.f32 %f122, %f119, %f114;
+ st.global.f32 [normal], %f120;
+ st.global.f32 [normal+4], %f121;
+ st.global.f32 [normal+8], %f122;
+ mov.u32 %r44, 0;
+ // inline asm
+ call (%r43), _rt_report_intersection, (%r44);
+ // inline asm
+
+BB0_5:
+ ret;
+}
+
+ // .globl _Z4bboxiPN5optix4AabbE
+.visible .entry _Z4bboxiPN5optix4AabbE(
+ .param .u32 _Z4bboxiPN5optix4AabbE_param_0,
+ .param .u64 _Z4bboxiPN5optix4AabbE_param_1
+)
+{
+ .reg .pred %p<6>;
+ .reg .f32 %f<42>;
+ .reg .b32 %r<11>;
+ .reg .b64 %rd<29>;
+
+
+ ld.param.u64 %rd2, [_Z4bboxiPN5optix4AabbE_param_1];
+ ld.param.s32 %rd5, [_Z4bboxiPN5optix4AabbE_param_0];
+ mov.u64 %rd27, index_buffer;
+ cvta.global.u64 %rd4, %rd27;
+ mov.u32 %r7, 1;
+ mov.u32 %r2, 12;
+ mov.u64 %rd26, 0;
+ // inline asm
+ call (%rd3), _rt_buffer_get_64, (%rd4, %r7, %r2, %rd5, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.s32 %rd11, [%rd3];
+ mov.u64 %rd28, vertex_buffer;
+ cvta.global.u64 %rd10, %rd28;
+ ld.s32 %rd17, [%rd3+4];
+ ld.s32 %rd23, [%rd3+8];
+ mov.u32 %r8, 24;
+ // inline asm
+ call (%rd9), _rt_buffer_get_64, (%rd10, %r7, %r8, %rd11, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f3, [%rd9+8];
+ ld.f32 %f2, [%rd9+4];
+ ld.f32 %f1, [%rd9];
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd10, %r7, %r8, %rd17, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f6, [%rd15+8];
+ ld.f32 %f5, [%rd15+4];
+ ld.f32 %f4, [%rd15];
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd10, %r7, %r8, %rd23, %rd26, %rd26, %rd26);
+ // inline asm
+ sub.f32 %f11, %f4, %f1;
+ sub.f32 %f12, %f5, %f2;
+ sub.f32 %f13, %f6, %f3;
+ ld.f32 %f9, [%rd21+8];
+ ld.f32 %f8, [%rd21+4];
+ ld.f32 %f7, [%rd21];
+ sub.f32 %f14, %f7, %f1;
+ sub.f32 %f15, %f8, %f2;
+ sub.f32 %f16, %f9, %f3;
+ mul.f32 %f17, %f12, %f16;
+ mul.f32 %f18, %f13, %f15;
+ sub.f32 %f19, %f17, %f18;
+ mul.f32 %f20, %f13, %f14;
+ mul.f32 %f21, %f11, %f16;
+ sub.f32 %f22, %f20, %f21;
+ mul.f32 %f23, %f11, %f15;
+ mul.f32 %f24, %f12, %f14;
+ sub.f32 %f25, %f23, %f24;
+ mul.f32 %f26, %f22, %f22;
+ fma.rn.f32 %f27, %f19, %f19, %f26;
+ fma.rn.f32 %f28, %f25, %f25, %f27;
+ sqrt.rn.f32 %f10, %f28;
+ mov.pred %p5, 0;
+ setp.leu.f32 %p4, %f10, 0f00000000;
+ @%p4 bra BB1_2;
+
+ abs.f32 %f29, %f10;
+ setp.neu.f32 %p5, %f29, 0f7F800000;
+
+BB1_2:
+ cvta.to.global.u64 %rd1, %rd2;
+ @%p5 bra BB1_4;
+ bra.uni BB1_3;
+
+BB1_4:
+ min.f32 %f30, %f1, %f4;
+ min.f32 %f31, %f30, %f7;
+ min.f32 %f32, %f2, %f5;
+ min.f32 %f33, %f32, %f8;
+ min.f32 %f34, %f3, %f6;
+ min.f32 %f35, %f34, %f9;
+ st.global.f32 [%rd1], %f31;
+ st.global.f32 [%rd1+4], %f33;
+ st.global.f32 [%rd1+8], %f35;
+ max.f32 %f36, %f1, %f4;
+ max.f32 %f37, %f36, %f7;
+ max.f32 %f38, %f2, %f5;
+ max.f32 %f39, %f38, %f8;
+ max.f32 %f40, %f3, %f6;
+ max.f32 %f41, %f40, %f9;
+ st.global.f32 [%rd1+12], %f37;
+ st.global.f32 [%rd1+16], %f39;
+ st.global.f32 [%rd1+20], %f41;
+ bra.uni BB1_5;
+
+BB1_3:
+ mov.u32 %r9, 2096152002;
+ st.global.u32 [%rd1], %r9;
+ st.global.u32 [%rd1+8], %r9;
+ st.global.u32 [%rd1+4], %r9;
+ mov.u32 %r10, -51331646;
+ st.global.u32 [%rd1+12], %r10;
+ st.global.u32 [%rd1+16], %r10;
+ st.global.u32 [%rd1+20], %r10;
+
+BB1_5:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimesh.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimesh.ptx.meta
new file mode 100644
index 00000000..6a2a1a7d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimesh.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d4461bc99675399499da2bf13cb84e54
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTex.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTex.ptx
new file mode 100644
index 00000000..68139ca5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTex.ptx
@@ -0,0 +1,490 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z9intersecti
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 8 .b8 texCoords[8];
+.global .align 1 .b8 vertex_buffer[1];
+.global .align 1 .b8 index_buffer[1];
+.global .align 4 .u32 firstAlphaTriangle;
+.global .align 1 .b8 vertex_buffer_uv[1];
+.global .align 1 .b8 triangleAlphaIDs[1];
+.global .align 1 .b8 alphaTextures[1];
+.global .align 4 .b8 ray[36];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo18firstAlphaTriangleE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename18firstAlphaTriangleE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum18firstAlphaTriangleE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic18firstAlphaTriangleE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation18firstAlphaTriangleE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+
+.visible .entry _Z9intersecti(
+ .param .u32 _Z9intersecti_param_0
+)
+{
+ .reg .pred %p<14>;
+ .reg .f32 %f<152>;
+ .reg .b32 %r<51>;
+ .reg .b64 %rd<117>;
+
+
+ ld.param.u32 %r2, [_Z9intersecti_param_0];
+ cvt.s64.s32 %rd7, %r2;
+ mov.u64 %rd29, index_buffer;
+ cvta.global.u64 %rd6, %rd29;
+ mov.u32 %r9, 1;
+ mov.u32 %r4, 12;
+ mov.u64 %rd28, 0;
+ // inline asm
+ call (%rd5), _rt_buffer_get_64, (%rd6, %r9, %r4, %rd7, %rd28, %rd28, %rd28);
+ // inline asm
+ ld.s32 %rd13, [%rd5];
+ mov.u64 %rd30, vertex_buffer;
+ cvta.global.u64 %rd12, %rd30;
+ ld.s32 %rd19, [%rd5+4];
+ ld.s32 %rd25, [%rd5+8];
+ mov.u32 %r10, 32;
+ // inline asm
+ call (%rd11), _rt_buffer_get_64, (%rd12, %r9, %r10, %rd13, %rd28, %rd28, %rd28);
+ // inline asm
+ ld.f32 %f14, [%rd11+8];
+ ld.v2.f32 {%f15, %f16}, [%rd11];
+ // inline asm
+ call (%rd17), _rt_buffer_get_64, (%rd12, %r9, %r10, %rd19, %rd28, %rd28, %rd28);
+ // inline asm
+ ld.f32 %f19, [%rd17+8];
+ ld.v2.f32 {%f20, %f21}, [%rd17];
+ // inline asm
+ call (%rd23), _rt_buffer_get_64, (%rd12, %r9, %r10, %rd25, %rd28, %rd28, %rd28);
+ // inline asm
+ sub.f32 %f24, %f20, %f15;
+ sub.f32 %f25, %f21, %f16;
+ sub.f32 %f26, %f19, %f14;
+ ld.f32 %f27, [%rd23+8];
+ ld.v2.f32 {%f28, %f29}, [%rd23];
+ sub.f32 %f32, %f15, %f28;
+ sub.f32 %f33, %f16, %f29;
+ sub.f32 %f34, %f14, %f27;
+ mul.f32 %f35, %f26, %f33;
+ mul.f32 %f36, %f25, %f34;
+ sub.f32 %f37, %f35, %f36;
+ mul.f32 %f38, %f24, %f34;
+ mul.f32 %f39, %f26, %f32;
+ sub.f32 %f40, %f38, %f39;
+ mul.f32 %f41, %f25, %f32;
+ mul.f32 %f42, %f24, %f33;
+ sub.f32 %f43, %f41, %f42;
+ ld.global.f32 %f44, [ray+12];
+ ld.global.f32 %f45, [ray+16];
+ mul.f32 %f46, %f45, %f40;
+ fma.rn.f32 %f47, %f44, %f37, %f46;
+ ld.global.f32 %f48, [ray+20];
+ fma.rn.f32 %f49, %f48, %f43, %f47;
+ rcp.rn.f32 %f50, %f49;
+ ld.global.f32 %f51, [ray];
+ sub.f32 %f52, %f15, %f51;
+ ld.global.f32 %f53, [ray+4];
+ sub.f32 %f54, %f16, %f53;
+ ld.global.f32 %f55, [ray+8];
+ sub.f32 %f56, %f14, %f55;
+ mul.f32 %f57, %f50, %f52;
+ mul.f32 %f58, %f50, %f54;
+ mul.f32 %f59, %f50, %f56;
+ mul.f32 %f60, %f45, %f59;
+ mul.f32 %f61, %f58, %f48;
+ sub.f32 %f62, %f60, %f61;
+ mul.f32 %f63, %f57, %f48;
+ mul.f32 %f64, %f59, %f44;
+ sub.f32 %f65, %f63, %f64;
+ mul.f32 %f66, %f58, %f44;
+ mul.f32 %f67, %f57, %f45;
+ sub.f32 %f68, %f66, %f67;
+ mul.f32 %f69, %f33, %f65;
+ fma.rn.f32 %f70, %f32, %f62, %f69;
+ fma.rn.f32 %f1, %f34, %f68, %f70;
+ mul.f32 %f71, %f25, %f65;
+ fma.rn.f32 %f72, %f24, %f62, %f71;
+ fma.rn.f32 %f2, %f26, %f68, %f72;
+ mul.f32 %f73, %f40, %f58;
+ fma.rn.f32 %f74, %f37, %f57, %f73;
+ fma.rn.f32 %f3, %f43, %f59, %f74;
+ ld.global.f32 %f75, [ray+32];
+ setp.geu.f32 %p1, %f3, %f75;
+ ld.global.f32 %f76, [ray+28];
+ setp.leu.f32 %p2, %f3, %f76;
+ or.pred %p3, %p1, %p2;
+ setp.ltu.f32 %p4, %f1, 0f00000000;
+ or.pred %p5, %p3, %p4;
+ setp.ltu.f32 %p6, %f2, 0f00000000;
+ or.pred %p7, %p5, %p6;
+ add.f32 %f77, %f1, %f2;
+ setp.gtu.f32 %p8, %f77, 0f3F800000;
+ or.pred %p9, %p7, %p8;
+ @%p9 bra BB0_8;
+
+ ld.global.u32 %r1, [firstAlphaTriangle];
+ setp.gt.s32 %p10, %r1, %r2;
+ @%p10 bra BB0_3;
+
+ sub.s32 %r29, %r2, %r1;
+ cvt.s64.s32 %rd33, %r29;
+ mov.u64 %rd76, triangleAlphaIDs;
+ cvta.global.u64 %rd32, %rd76;
+ mov.u32 %r25, 4;
+ // inline asm
+ call (%rd31), _rt_buffer_get_64, (%rd32, %r9, %r25, %rd33, %rd28, %rd28, %rd28);
+ // inline asm
+ ld.u32 %rd77, [%rd31];
+ cvt.u32.u64 %r30, %rd77;
+ shr.u32 %r31, %r30, 16;
+ mov.u64 %rd78, vertex_buffer_uv;
+ cvta.global.u64 %rd38, %rd78;
+ mov.u32 %r18, 8;
+ // inline asm
+ call (%rd37), _rt_buffer_get_64, (%rd38, %r9, %r18, %rd13, %rd28, %rd28, %rd28);
+ // inline asm
+ ld.v2.f32 {%f78, %f79}, [%rd37];
+ // inline asm
+ call (%rd43), _rt_buffer_get_64, (%rd38, %r9, %r18, %rd19, %rd28, %rd28, %rd28);
+ // inline asm
+ ld.v2.f32 {%f82, %f83}, [%rd43];
+ // inline asm
+ call (%rd49), _rt_buffer_get_64, (%rd38, %r9, %r18, %rd25, %rd28, %rd28, %rd28);
+ // inline asm
+ mov.f32 %f86, 0f3F800000;
+ sub.f32 %f87, %f86, %f1;
+ sub.f32 %f88, %f87, %f2;
+ mul.f32 %f89, %f1, %f82;
+ mul.f32 %f90, %f1, %f83;
+ fma.rn.f32 %f91, %f88, %f78, %f89;
+ fma.rn.f32 %f92, %f88, %f79, %f90;
+ ld.v2.f32 {%f93, %f94}, [%rd49];
+ fma.rn.f32 %f97, %f2, %f93, %f91;
+ fma.rn.f32 %f98, %f2, %f94, %f92;
+ abs.f32 %f99, %f97;
+ cvt.rmi.f32.f32 %f100, %f99;
+ sub.f32 %f101, %f99, %f100;
+ abs.f32 %f102, %f98;
+ cvt.rmi.f32.f32 %f103, %f102;
+ sub.f32 %f104, %f102, %f103;
+ and.b64 %rd57, %rd77, 65535;
+ mov.u64 %rd79, alphaTextures;
+ cvta.global.u64 %rd56, %rd79;
+ // inline asm
+ call (%rd55), _rt_buffer_get_64, (%rd56, %r9, %r25, %rd57, %rd28, %rd28, %rd28);
+ // inline asm
+ ld.u32 %r21, [%rd55];
+ mov.u32 %r27, 2;
+ // inline asm
+ call (%rd61, %rd62, %rd63, %rd64), _rt_buffer_get_id_size_64, (%r21, %r27, %r9);
+ // inline asm
+ cvt.rn.f32.u64 %f105, %rd61;
+ mul.f32 %f106, %f101, %f105;
+ cvt.rzi.u32.f32 %r32, %f106;
+ cvt.rn.f32.u64 %f107, %rd62;
+ mul.f32 %f108, %f104, %f107;
+ cvt.rzi.u32.f32 %r33, %f108;
+ // inline asm
+ call (%rd65), _rt_buffer_get_64, (%rd56, %r9, %r25, %rd57, %rd28, %rd28, %rd28);
+ // inline asm
+ ld.u32 %r26, [%rd65];
+ cvt.u64.u32 %rd72, %r32;
+ cvt.u64.u32 %rd73, %r33;
+ // inline asm
+ call (%rd71), _rt_buffer_get_id_64, (%r26, %r27, %r9, %rd72, %rd73, %rd28, %rd28);
+ // inline asm
+ ld.u8 %r34, [%rd71];
+ and.b32 %r35, %r34, %r31;
+ setp.eq.s32 %p11, %r35, 0;
+ @%p11 bra BB0_8;
+
+BB0_3:
+ // inline asm
+ call (%r36), _rt_potential_intersection, (%f3);
+ // inline asm
+ setp.eq.s32 %p12, %r36, 0;
+ @%p12 bra BB0_8;
+
+ // inline asm
+ call (%rd80), _rt_buffer_get_64, (%rd12, %r9, %r10, %rd13, %rd28, %rd28, %rd28);
+ // inline asm
+ ld.f32 %f110, [%rd80+20];
+ ld.f32 %f111, [%rd80+16];
+ ld.f32 %f112, [%rd80+12];
+ // inline asm
+ call (%rd86), _rt_buffer_get_64, (%rd12, %r9, %r10, %rd19, %rd28, %rd28, %rd28);
+ // inline asm
+ ld.f32 %f113, [%rd86+20];
+ ld.f32 %f114, [%rd86+16];
+ ld.f32 %f115, [%rd86+12];
+ // inline asm
+ call (%rd92), _rt_buffer_get_64, (%rd12, %r9, %r10, %rd25, %rd28, %rd28, %rd28);
+ // inline asm
+ mov.f32 %f116, 0f3F800000;
+ sub.f32 %f117, %f116, %f1;
+ sub.f32 %f4, %f117, %f2;
+ mul.f32 %f118, %f1, %f115;
+ mul.f32 %f119, %f1, %f114;
+ mul.f32 %f120, %f1, %f113;
+ fma.rn.f32 %f121, %f4, %f112, %f118;
+ fma.rn.f32 %f122, %f4, %f111, %f119;
+ fma.rn.f32 %f123, %f4, %f110, %f120;
+ ld.f32 %f124, [%rd92+20];
+ ld.f32 %f125, [%rd92+16];
+ ld.f32 %f126, [%rd92+12];
+ fma.rn.f32 %f127, %f2, %f126, %f121;
+ fma.rn.f32 %f128, %f2, %f125, %f122;
+ fma.rn.f32 %f129, %f2, %f124, %f123;
+ mul.f32 %f130, %f128, %f128;
+ fma.rn.f32 %f131, %f127, %f127, %f130;
+ fma.rn.f32 %f132, %f129, %f129, %f131;
+ sqrt.rn.f32 %f133, %f132;
+ rcp.rn.f32 %f134, %f133;
+ mul.f32 %f135, %f134, %f127;
+ mul.f32 %f136, %f134, %f128;
+ mul.f32 %f137, %f134, %f129;
+ st.global.f32 [normal], %f135;
+ st.global.f32 [normal+4], %f136;
+ st.global.f32 [normal+8], %f137;
+ // inline asm
+ call (%rd98), _rt_buffer_get_64, (%rd12, %r9, %r10, %rd13, %rd28, %rd28, %rd28);
+ // inline asm
+ ld.v2.f32 {%f150, %f139}, [%rd98+24];
+ // inline asm
+ call (%rd104), _rt_buffer_get_64, (%rd12, %r9, %r10, %rd19, %rd28, %rd28, %rd28);
+ // inline asm
+ ld.v2.f32 {%f140, %f141}, [%rd104+24];
+ // inline asm
+ call (%rd110), _rt_buffer_get_64, (%rd12, %r9, %r10, %rd25, %rd28, %rd28, %rd28);
+ // inline asm
+ setp.lt.f32 %p13, %f139, 0f00000000;
+ @%p13 bra BB0_6;
+ bra.uni BB0_5;
+
+BB0_6:
+ add.f32 %f151, %f139, 0f3F800000;
+ bra.uni BB0_7;
+
+BB0_5:
+ ld.v2.f32 {%f142, %f143}, [%rd110+24];
+ mul.f32 %f146, %f1, %f140;
+ mul.f32 %f147, %f1, %f141;
+ fma.rn.f32 %f148, %f4, %f150, %f146;
+ fma.rn.f32 %f149, %f4, %f139, %f147;
+ fma.rn.f32 %f150, %f2, %f142, %f148;
+ fma.rn.f32 %f151, %f2, %f143, %f149;
+
+BB0_7:
+ st.global.v2.f32 [texCoords], {%f150, %f151};
+ mov.u32 %r50, 0;
+ // inline asm
+ call (%r49), _rt_report_intersection, (%r50);
+ // inline asm
+
+BB0_8:
+ ret;
+}
+
+ // .globl _Z4bboxiPN5optix4AabbE
+.visible .entry _Z4bboxiPN5optix4AabbE(
+ .param .u32 _Z4bboxiPN5optix4AabbE_param_0,
+ .param .u64 _Z4bboxiPN5optix4AabbE_param_1
+)
+{
+ .reg .pred %p<6>;
+ .reg .f32 %f<42>;
+ .reg .b32 %r<11>;
+ .reg .b64 %rd<29>;
+
+
+ ld.param.u64 %rd2, [_Z4bboxiPN5optix4AabbE_param_1];
+ ld.param.s32 %rd5, [_Z4bboxiPN5optix4AabbE_param_0];
+ mov.u64 %rd27, index_buffer;
+ cvta.global.u64 %rd4, %rd27;
+ mov.u32 %r7, 1;
+ mov.u32 %r2, 12;
+ mov.u64 %rd26, 0;
+ // inline asm
+ call (%rd3), _rt_buffer_get_64, (%rd4, %r7, %r2, %rd5, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.s32 %rd11, [%rd3];
+ mov.u64 %rd28, vertex_buffer;
+ cvta.global.u64 %rd10, %rd28;
+ ld.s32 %rd17, [%rd3+4];
+ ld.s32 %rd23, [%rd3+8];
+ mov.u32 %r8, 32;
+ // inline asm
+ call (%rd9), _rt_buffer_get_64, (%rd10, %r7, %r8, %rd11, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f3, [%rd9+8];
+ ld.f32 %f2, [%rd9+4];
+ ld.f32 %f1, [%rd9];
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd10, %r7, %r8, %rd17, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f6, [%rd15+8];
+ ld.f32 %f5, [%rd15+4];
+ ld.f32 %f4, [%rd15];
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd10, %r7, %r8, %rd23, %rd26, %rd26, %rd26);
+ // inline asm
+ sub.f32 %f11, %f4, %f1;
+ sub.f32 %f12, %f5, %f2;
+ sub.f32 %f13, %f6, %f3;
+ ld.f32 %f9, [%rd21+8];
+ ld.f32 %f8, [%rd21+4];
+ ld.f32 %f7, [%rd21];
+ sub.f32 %f14, %f7, %f1;
+ sub.f32 %f15, %f8, %f2;
+ sub.f32 %f16, %f9, %f3;
+ mul.f32 %f17, %f12, %f16;
+ mul.f32 %f18, %f13, %f15;
+ sub.f32 %f19, %f17, %f18;
+ mul.f32 %f20, %f13, %f14;
+ mul.f32 %f21, %f11, %f16;
+ sub.f32 %f22, %f20, %f21;
+ mul.f32 %f23, %f11, %f15;
+ mul.f32 %f24, %f12, %f14;
+ sub.f32 %f25, %f23, %f24;
+ mul.f32 %f26, %f22, %f22;
+ fma.rn.f32 %f27, %f19, %f19, %f26;
+ fma.rn.f32 %f28, %f25, %f25, %f27;
+ sqrt.rn.f32 %f10, %f28;
+ mov.pred %p5, 0;
+ setp.leu.f32 %p4, %f10, 0f00000000;
+ @%p4 bra BB1_2;
+
+ abs.f32 %f29, %f10;
+ setp.neu.f32 %p5, %f29, 0f7F800000;
+
+BB1_2:
+ cvta.to.global.u64 %rd1, %rd2;
+ @%p5 bra BB1_4;
+ bra.uni BB1_3;
+
+BB1_4:
+ min.f32 %f30, %f1, %f4;
+ min.f32 %f31, %f30, %f7;
+ min.f32 %f32, %f2, %f5;
+ min.f32 %f33, %f32, %f8;
+ min.f32 %f34, %f3, %f6;
+ min.f32 %f35, %f34, %f9;
+ st.global.f32 [%rd1], %f31;
+ st.global.f32 [%rd1+4], %f33;
+ st.global.f32 [%rd1+8], %f35;
+ max.f32 %f36, %f1, %f4;
+ max.f32 %f37, %f36, %f7;
+ max.f32 %f38, %f2, %f5;
+ max.f32 %f39, %f38, %f8;
+ max.f32 %f40, %f3, %f6;
+ max.f32 %f41, %f40, %f9;
+ st.global.f32 [%rd1+12], %f37;
+ st.global.f32 [%rd1+16], %f39;
+ st.global.f32 [%rd1+20], %f41;
+ bra.uni BB1_5;
+
+BB1_3:
+ mov.u32 %r9, 2096152002;
+ st.global.u32 [%rd1], %r9;
+ st.global.u32 [%rd1+8], %r9;
+ st.global.u32 [%rd1+4], %r9;
+ mov.u32 %r10, -51331646;
+ st.global.u32 [%rd1+12], %r10;
+ st.global.u32 [%rd1+16], %r10;
+ st.global.u32 [%rd1+20], %r10;
+
+BB1_5:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTex.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTex.ptx.meta
new file mode 100644
index 00000000..dc4af7fd
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTex.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: df4459d40f1189949ac01d6293872ec5
+timeCreated: 1526161016
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTexLODSelect.ptx b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTexLODSelect.ptx
new file mode 100644
index 00000000..68315dbf
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTexLODSelect.ptx
@@ -0,0 +1,513 @@
+//
+// Generated by NVIDIA NVVM Compiler
+//
+// Compiler Build ID: CL-23083092
+// Cuda compilation tools, release 9.1, V9.1.85
+// Based on LLVM 3.4svn
+//
+
+.version 6.1
+.target sm_30
+.address_size 64
+
+ // .globl _Z9intersecti
+.global .align 8 .b8 pixelID[8];
+.global .align 8 .b8 resolution[8];
+.global .align 4 .b8 normal[12];
+.global .align 4 .b8 camPos[12];
+.global .align 4 .b8 root[4];
+.global .align 4 .u32 imageEnabled;
+.global .texref lightmap;
+.global .align 16 .b8 tileInfo[16];
+.global .align 4 .u32 additive;
+.global .align 8 .b8 texCoords[8];
+.global .align 1 .b8 vertex_buffer[1];
+.global .align 1 .b8 index_buffer[1];
+.global .align 4 .u32 firstAlphaTriangle;
+.global .align 1 .b8 vertex_buffer_uv[1];
+.global .align 1 .b8 triangleAlphaIDs[1];
+.global .align 1 .b8 alphaTextures[1];
+.global .align 4 .b8 ray[36];
+.global .align 4 .b8 _ZN21rti_internal_typeinfo7pixelIDE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo10resolutionE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6normalE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo6camPosE[8] = {82, 97, 121, 0, 12, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo4rootE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo12imageEnabledE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8tileInfoE[8] = {82, 97, 121, 0, 16, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo8additiveE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo9texCoordsE[8] = {82, 97, 121, 0, 8, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo18firstAlphaTriangleE[8] = {82, 97, 121, 0, 4, 0, 0, 0};
+.global .align 4 .b8 _ZN21rti_internal_typeinfo3rayE[8] = {82, 97, 121, 0, 36, 0, 0, 0};
+.global .align 8 .u64 _ZN21rti_internal_register20reg_bitness_detectorE;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail0E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail1E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail2E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail3E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail4E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail5E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail6E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail7E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail8E;
+.global .align 8 .u64 _ZN21rti_internal_register24reg_exception_64_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail0E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail1E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail2E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail3E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail4E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail5E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail6E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail7E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail8E;
+.global .align 4 .u32 _ZN21rti_internal_register21reg_exception_detail9E;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_xE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_yE;
+.global .align 4 .u32 _ZN21rti_internal_register14reg_rayIndex_zE;
+.global .align 8 .b8 _ZN21rti_internal_typename7pixelIDE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename10resolutionE[6] = {117, 105, 110, 116, 50, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6normalE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename6camPosE[7] = {102, 108, 111, 97, 116, 51, 0};
+.global .align 16 .b8 _ZN21rti_internal_typename4rootE[9] = {114, 116, 79, 98, 106, 101, 99, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename12imageEnabledE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename8tileInfoE[6] = {117, 105, 110, 116, 52, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename8additiveE[4] = {105, 110, 116, 0};
+.global .align 8 .b8 _ZN21rti_internal_typename9texCoordsE[7] = {102, 108, 111, 97, 116, 50, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename18firstAlphaTriangleE[4] = {105, 110, 116, 0};
+.global .align 4 .b8 _ZN21rti_internal_typename3rayE[4] = {82, 97, 121, 0};
+.global .align 4 .u32 _ZN21rti_internal_typeenum7pixelIDE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum10resolutionE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6normalE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum6camPosE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum4rootE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum12imageEnabledE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8tileInfoE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum8additiveE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum9texCoordsE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum18firstAlphaTriangleE = 4919;
+.global .align 4 .u32 _ZN21rti_internal_typeenum3rayE = 4919;
+.global .align 16 .b8 _ZN21rti_internal_semantic7pixelIDE[14] = {114, 116, 76, 97, 117, 110, 99, 104, 73, 110, 100, 101, 120, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic10resolutionE[12] = {114, 116, 76, 97, 117, 110, 99, 104, 68, 105, 109, 0};
+.global .align 16 .b8 _ZN21rti_internal_semantic6normalE[17] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 110, 111, 114, 109, 97, 108, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic6camPosE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic4rootE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic12imageEnabledE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8tileInfoE[1];
+.global .align 1 .b8 _ZN21rti_internal_semantic8additiveE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic9texCoordsE[20] = {97, 116, 116, 114, 105, 98, 117, 116, 101, 32, 116, 101, 120, 67, 111, 111, 114, 100, 115, 0};
+.global .align 1 .b8 _ZN21rti_internal_semantic18firstAlphaTriangleE[1];
+.global .align 16 .b8 _ZN21rti_internal_semantic3rayE[13] = {114, 116, 67, 117, 114, 114, 101, 110, 116, 82, 97, 121, 0};
+.global .align 1 .b8 _ZN23rti_internal_annotation7pixelIDE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation10resolutionE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6normalE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation6camPosE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation4rootE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation12imageEnabledE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8tileInfoE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation8additiveE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation9texCoordsE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation18firstAlphaTriangleE[1];
+.global .align 1 .b8 _ZN23rti_internal_annotation3rayE[1];
+
+.visible .entry _Z9intersecti(
+ .param .u32 _Z9intersecti_param_0
+)
+{
+ .reg .pred %p<13>;
+ .reg .f32 %f<180>;
+ .reg .b32 %r<52>;
+ .reg .b64 %rd<116>;
+
+
+ ld.param.u32 %r2, [_Z9intersecti_param_0];
+ cvt.s64.s32 %rd6, %r2;
+ mov.u64 %rd28, index_buffer;
+ cvta.global.u64 %rd5, %rd28;
+ mov.u32 %r9, 1;
+ mov.u32 %r4, 12;
+ mov.u64 %rd27, 0;
+ // inline asm
+ call (%rd4), _rt_buffer_get_64, (%rd5, %r9, %r4, %rd6, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.s32 %rd12, [%rd4];
+ mov.u64 %rd29, vertex_buffer;
+ cvta.global.u64 %rd11, %rd29;
+ ld.s32 %rd18, [%rd4+4];
+ ld.s32 %rd24, [%rd4+8];
+ mov.u32 %r10, 32;
+ // inline asm
+ call (%rd10), _rt_buffer_get_64, (%rd11, %r9, %r10, %rd12, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f3, [%rd10+8];
+ ld.v2.f32 {%f13, %f14}, [%rd10];
+ // inline asm
+ call (%rd16), _rt_buffer_get_64, (%rd11, %r9, %r10, %rd18, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f15, [%rd16+8];
+ ld.v2.f32 {%f16, %f17}, [%rd16];
+ // inline asm
+ call (%rd22), _rt_buffer_get_64, (%rd11, %r9, %r10, %rd24, %rd27, %rd27, %rd27);
+ // inline asm
+ sub.f32 %f4, %f16, %f13;
+ sub.f32 %f5, %f17, %f14;
+ sub.f32 %f6, %f15, %f3;
+ ld.f32 %f9, [%rd22+8];
+ ld.v2.f32 {%f20, %f21}, [%rd22];
+ sub.f32 %f22, %f13, %f20;
+ sub.f32 %f23, %f14, %f21;
+ sub.f32 %f24, %f3, %f9;
+ mul.f32 %f25, %f6, %f23;
+ mul.f32 %f26, %f5, %f24;
+ sub.f32 %f27, %f25, %f26;
+ mul.f32 %f28, %f4, %f24;
+ mul.f32 %f29, %f6, %f22;
+ sub.f32 %f30, %f28, %f29;
+ mul.f32 %f31, %f5, %f22;
+ mul.f32 %f32, %f4, %f23;
+ sub.f32 %f33, %f31, %f32;
+ ld.global.f32 %f34, [ray+12];
+ ld.global.f32 %f35, [ray+16];
+ mul.f32 %f36, %f35, %f30;
+ fma.rn.f32 %f37, %f34, %f27, %f36;
+ ld.global.f32 %f38, [ray+20];
+ fma.rn.f32 %f39, %f38, %f33, %f37;
+ rcp.rn.f32 %f40, %f39;
+ ld.global.f32 %f41, [ray];
+ sub.f32 %f42, %f13, %f41;
+ ld.global.f32 %f43, [ray+4];
+ sub.f32 %f44, %f14, %f43;
+ ld.global.f32 %f45, [ray+8];
+ sub.f32 %f46, %f3, %f45;
+ mul.f32 %f47, %f40, %f42;
+ mul.f32 %f48, %f40, %f44;
+ mul.f32 %f49, %f40, %f46;
+ mul.f32 %f50, %f35, %f49;
+ mul.f32 %f51, %f48, %f38;
+ sub.f32 %f52, %f50, %f51;
+ mul.f32 %f53, %f47, %f38;
+ mul.f32 %f54, %f49, %f34;
+ sub.f32 %f55, %f53, %f54;
+ mul.f32 %f56, %f48, %f34;
+ mul.f32 %f57, %f47, %f35;
+ sub.f32 %f58, %f56, %f57;
+ mul.f32 %f59, %f23, %f55;
+ fma.rn.f32 %f60, %f22, %f52, %f59;
+ fma.rn.f32 %f10, %f24, %f58, %f60;
+ mul.f32 %f61, %f5, %f55;
+ fma.rn.f32 %f62, %f4, %f52, %f61;
+ fma.rn.f32 %f11, %f6, %f58, %f62;
+ mul.f32 %f63, %f30, %f48;
+ fma.rn.f32 %f64, %f27, %f47, %f63;
+ fma.rn.f32 %f12, %f33, %f49, %f64;
+ ld.global.f32 %f65, [ray+32];
+ setp.geu.f32 %p1, %f12, %f65;
+ ld.global.f32 %f66, [ray+28];
+ setp.leu.f32 %p2, %f12, %f66;
+ or.pred %p3, %p1, %p2;
+ setp.ltu.f32 %p4, %f10, 0f00000000;
+ or.pred %p5, %p3, %p4;
+ setp.ltu.f32 %p6, %f11, 0f00000000;
+ or.pred %p7, %p5, %p6;
+ add.f32 %f67, %f10, %f11;
+ setp.gtu.f32 %p8, %f67, 0f3F800000;
+ or.pred %p9, %p7, %p8;
+ @%p9 bra BB0_5;
+
+ ld.global.u32 %r1, [firstAlphaTriangle];
+ setp.gt.s32 %p10, %r1, %r2;
+ @%p10 bra BB0_3;
+
+ sub.s32 %r29, %r2, %r1;
+ cvt.s64.s32 %rd32, %r29;
+ mov.u64 %rd75, triangleAlphaIDs;
+ cvta.global.u64 %rd31, %rd75;
+ mov.u32 %r25, 4;
+ // inline asm
+ call (%rd30), _rt_buffer_get_64, (%rd31, %r9, %r25, %rd32, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.u32 %rd76, [%rd30];
+ cvt.u32.u64 %r30, %rd76;
+ shr.u32 %r31, %r30, 16;
+ mov.u64 %rd77, vertex_buffer_uv;
+ cvta.global.u64 %rd37, %rd77;
+ mov.u32 %r18, 8;
+ // inline asm
+ call (%rd36), _rt_buffer_get_64, (%rd37, %r9, %r18, %rd12, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.v2.f32 {%f68, %f69}, [%rd36];
+ // inline asm
+ call (%rd42), _rt_buffer_get_64, (%rd37, %r9, %r18, %rd18, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.v2.f32 {%f72, %f73}, [%rd42];
+ // inline asm
+ call (%rd48), _rt_buffer_get_64, (%rd37, %r9, %r18, %rd24, %rd27, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f76, 0f3F800000;
+ sub.f32 %f77, %f76, %f10;
+ sub.f32 %f78, %f77, %f11;
+ mul.f32 %f79, %f10, %f72;
+ mul.f32 %f80, %f10, %f73;
+ fma.rn.f32 %f81, %f78, %f68, %f79;
+ fma.rn.f32 %f82, %f78, %f69, %f80;
+ ld.v2.f32 {%f83, %f84}, [%rd48];
+ fma.rn.f32 %f87, %f11, %f83, %f81;
+ fma.rn.f32 %f88, %f11, %f84, %f82;
+ abs.f32 %f89, %f87;
+ cvt.rmi.f32.f32 %f90, %f89;
+ sub.f32 %f91, %f89, %f90;
+ abs.f32 %f92, %f88;
+ cvt.rmi.f32.f32 %f93, %f92;
+ sub.f32 %f94, %f92, %f93;
+ and.b64 %rd56, %rd76, 65535;
+ mov.u64 %rd78, alphaTextures;
+ cvta.global.u64 %rd55, %rd78;
+ // inline asm
+ call (%rd54), _rt_buffer_get_64, (%rd55, %r9, %r25, %rd56, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r21, [%rd54];
+ mov.u32 %r27, 2;
+ // inline asm
+ call (%rd60, %rd61, %rd62, %rd63), _rt_buffer_get_id_size_64, (%r21, %r27, %r9);
+ // inline asm
+ cvt.rn.f32.u64 %f95, %rd60;
+ mul.f32 %f96, %f91, %f95;
+ cvt.rzi.u32.f32 %r32, %f96;
+ cvt.rn.f32.u64 %f97, %rd61;
+ mul.f32 %f98, %f94, %f97;
+ cvt.rzi.u32.f32 %r33, %f98;
+ // inline asm
+ call (%rd64), _rt_buffer_get_64, (%rd55, %r9, %r25, %rd56, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.u32 %r26, [%rd64];
+ cvt.u64.u32 %rd71, %r32;
+ cvt.u64.u32 %rd72, %r33;
+ // inline asm
+ call (%rd70), _rt_buffer_get_id_64, (%r26, %r27, %r9, %rd71, %rd72, %rd27, %rd27);
+ // inline asm
+ ld.u8 %r34, [%rd70];
+ and.b32 %r35, %r34, %r31;
+ setp.eq.s32 %p11, %r35, 0;
+ @%p11 bra BB0_5;
+
+BB0_3:
+ // inline asm
+ call (%r36), _rt_potential_intersection, (%f12);
+ // inline asm
+ setp.eq.s32 %p12, %r36, 0;
+ @%p12 bra BB0_5;
+
+ mov.u32 %r51, 32;
+ // inline asm
+ call (%rd79), _rt_buffer_get_64, (%rd11, %r9, %r51, %rd12, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f100, [%rd79+20];
+ ld.f32 %f101, [%rd79+16];
+ ld.f32 %f102, [%rd79+12];
+ // inline asm
+ call (%rd85), _rt_buffer_get_64, (%rd11, %r9, %r51, %rd18, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.f32 %f103, [%rd85+20];
+ ld.f32 %f104, [%rd85+16];
+ ld.f32 %f105, [%rd85+12];
+ // inline asm
+ call (%rd91), _rt_buffer_get_64, (%rd11, %r9, %r51, %rd24, %rd27, %rd27, %rd27);
+ // inline asm
+ mov.f32 %f106, 0f3F800000;
+ sub.f32 %f107, %f106, %f10;
+ sub.f32 %f108, %f107, %f11;
+ mul.f32 %f109, %f10, %f105;
+ mul.f32 %f110, %f10, %f104;
+ mul.f32 %f111, %f10, %f103;
+ fma.rn.f32 %f112, %f108, %f102, %f109;
+ fma.rn.f32 %f113, %f108, %f101, %f110;
+ fma.rn.f32 %f114, %f108, %f100, %f111;
+ ld.f32 %f115, [%rd91+20];
+ ld.f32 %f116, [%rd91+16];
+ ld.f32 %f117, [%rd91+12];
+ fma.rn.f32 %f118, %f11, %f117, %f112;
+ fma.rn.f32 %f119, %f11, %f116, %f113;
+ fma.rn.f32 %f120, %f11, %f115, %f114;
+ mul.f32 %f121, %f119, %f119;
+ fma.rn.f32 %f122, %f118, %f118, %f121;
+ fma.rn.f32 %f123, %f120, %f120, %f122;
+ sqrt.rn.f32 %f124, %f123;
+ rcp.rn.f32 %f125, %f124;
+ mul.f32 %f126, %f125, %f118;
+ mul.f32 %f127, %f125, %f119;
+ mul.f32 %f128, %f125, %f120;
+ st.global.f32 [normal], %f126;
+ st.global.f32 [normal+4], %f127;
+ st.global.f32 [normal+8], %f128;
+ // inline asm
+ call (%rd97), _rt_buffer_get_64, (%rd11, %r9, %r51, %rd12, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.v2.f32 {%f129, %f130}, [%rd97+24];
+ // inline asm
+ call (%rd103), _rt_buffer_get_64, (%rd11, %r9, %r51, %rd18, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.v2.f32 {%f133, %f134}, [%rd103+24];
+ // inline asm
+ call (%rd109), _rt_buffer_get_64, (%rd11, %r9, %r51, %rd24, %rd27, %rd27, %rd27);
+ // inline asm
+ ld.v2.f32 {%f137, %f138}, [%rd109+24];
+ mul.f32 %f141, %f10, %f133;
+ fma.rn.f32 %f142, %f108, %f129, %f141;
+ sub.f32 %f143, %f9, %f3;
+ mul.f32 %f144, %f5, %f143;
+ sub.f32 %f145, %f21, %f14;
+ mul.f32 %f146, %f6, %f145;
+ sub.f32 %f147, %f144, %f146;
+ sub.f32 %f148, %f20, %f13;
+ mul.f32 %f149, %f6, %f148;
+ mul.f32 %f150, %f4, %f143;
+ sub.f32 %f151, %f149, %f150;
+ mul.f32 %f152, %f4, %f145;
+ mul.f32 %f153, %f5, %f148;
+ sub.f32 %f154, %f152, %f153;
+ mul.f32 %f155, %f151, %f151;
+ fma.rn.f32 %f156, %f147, %f147, %f155;
+ fma.rn.f32 %f157, %f154, %f154, %f156;
+ sqrt.rn.f32 %f158, %f157;
+ mul.f32 %f159, %f158, 0f3F000000;
+ sub.f32 %f160, %f133, %f129;
+ sub.f32 %f161, %f134, %f130;
+ sub.f32 %f162, %f137, %f129;
+ sub.f32 %f163, %f138, %f130;
+ mul.f32 %f164, %f161, 0f00000000;
+ mul.f32 %f165, %f163, 0f00000000;
+ sub.f32 %f166, %f164, %f165;
+ mul.f32 %f167, %f162, 0f00000000;
+ mul.f32 %f168, %f160, 0f00000000;
+ sub.f32 %f169, %f167, %f168;
+ mul.f32 %f170, %f160, %f163;
+ mul.f32 %f171, %f161, %f162;
+ sub.f32 %f172, %f170, %f171;
+ mul.f32 %f173, %f169, %f169;
+ fma.rn.f32 %f174, %f166, %f166, %f173;
+ fma.rn.f32 %f175, %f172, %f172, %f174;
+ sqrt.rn.f32 %f176, %f175;
+ mul.f32 %f177, %f176, 0f3F000000;
+ div.rn.f32 %f178, %f159, %f177;
+ fma.rn.f32 %f179, %f11, %f137, %f142;
+ st.global.v2.f32 [texCoords], {%f179, %f178};
+ mov.u32 %r50, 0;
+ // inline asm
+ call (%r49), _rt_report_intersection, (%r50);
+ // inline asm
+
+BB0_5:
+ ret;
+}
+
+ // .globl _Z4bboxiPN5optix4AabbE
+.visible .entry _Z4bboxiPN5optix4AabbE(
+ .param .u32 _Z4bboxiPN5optix4AabbE_param_0,
+ .param .u64 _Z4bboxiPN5optix4AabbE_param_1
+)
+{
+ .reg .pred %p<6>;
+ .reg .f32 %f<42>;
+ .reg .b32 %r<11>;
+ .reg .b64 %rd<29>;
+
+
+ ld.param.u64 %rd2, [_Z4bboxiPN5optix4AabbE_param_1];
+ ld.param.s32 %rd5, [_Z4bboxiPN5optix4AabbE_param_0];
+ mov.u64 %rd27, index_buffer;
+ cvta.global.u64 %rd4, %rd27;
+ mov.u32 %r7, 1;
+ mov.u32 %r2, 12;
+ mov.u64 %rd26, 0;
+ // inline asm
+ call (%rd3), _rt_buffer_get_64, (%rd4, %r7, %r2, %rd5, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.s32 %rd11, [%rd3];
+ mov.u64 %rd28, vertex_buffer;
+ cvta.global.u64 %rd10, %rd28;
+ ld.s32 %rd17, [%rd3+4];
+ ld.s32 %rd23, [%rd3+8];
+ mov.u32 %r8, 32;
+ // inline asm
+ call (%rd9), _rt_buffer_get_64, (%rd10, %r7, %r8, %rd11, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f3, [%rd9+8];
+ ld.f32 %f2, [%rd9+4];
+ ld.f32 %f1, [%rd9];
+ // inline asm
+ call (%rd15), _rt_buffer_get_64, (%rd10, %r7, %r8, %rd17, %rd26, %rd26, %rd26);
+ // inline asm
+ ld.f32 %f6, [%rd15+8];
+ ld.f32 %f5, [%rd15+4];
+ ld.f32 %f4, [%rd15];
+ // inline asm
+ call (%rd21), _rt_buffer_get_64, (%rd10, %r7, %r8, %rd23, %rd26, %rd26, %rd26);
+ // inline asm
+ sub.f32 %f11, %f4, %f1;
+ sub.f32 %f12, %f5, %f2;
+ sub.f32 %f13, %f6, %f3;
+ ld.f32 %f9, [%rd21+8];
+ ld.f32 %f8, [%rd21+4];
+ ld.f32 %f7, [%rd21];
+ sub.f32 %f14, %f7, %f1;
+ sub.f32 %f15, %f8, %f2;
+ sub.f32 %f16, %f9, %f3;
+ mul.f32 %f17, %f12, %f16;
+ mul.f32 %f18, %f13, %f15;
+ sub.f32 %f19, %f17, %f18;
+ mul.f32 %f20, %f13, %f14;
+ mul.f32 %f21, %f11, %f16;
+ sub.f32 %f22, %f20, %f21;
+ mul.f32 %f23, %f11, %f15;
+ mul.f32 %f24, %f12, %f14;
+ sub.f32 %f25, %f23, %f24;
+ mul.f32 %f26, %f22, %f22;
+ fma.rn.f32 %f27, %f19, %f19, %f26;
+ fma.rn.f32 %f28, %f25, %f25, %f27;
+ sqrt.rn.f32 %f10, %f28;
+ mov.pred %p5, 0;
+ setp.leu.f32 %p4, %f10, 0f00000000;
+ @%p4 bra BB1_2;
+
+ abs.f32 %f29, %f10;
+ setp.neu.f32 %p5, %f29, 0f7F800000;
+
+BB1_2:
+ cvta.to.global.u64 %rd1, %rd2;
+ @%p5 bra BB1_4;
+ bra.uni BB1_3;
+
+BB1_4:
+ min.f32 %f30, %f1, %f4;
+ min.f32 %f31, %f30, %f7;
+ min.f32 %f32, %f2, %f5;
+ min.f32 %f33, %f32, %f8;
+ min.f32 %f34, %f3, %f6;
+ min.f32 %f35, %f34, %f9;
+ st.global.f32 [%rd1], %f31;
+ st.global.f32 [%rd1+4], %f33;
+ st.global.f32 [%rd1+8], %f35;
+ max.f32 %f36, %f1, %f4;
+ max.f32 %f37, %f36, %f7;
+ max.f32 %f38, %f2, %f5;
+ max.f32 %f39, %f38, %f8;
+ max.f32 %f40, %f3, %f6;
+ max.f32 %f41, %f40, %f9;
+ st.global.f32 [%rd1+12], %f37;
+ st.global.f32 [%rd1+16], %f39;
+ st.global.f32 [%rd1+20], %f41;
+ bra.uni BB1_5;
+
+BB1_3:
+ mov.u32 %r9, 2096152002;
+ st.global.u32 [%rd1], %r9;
+ st.global.u32 [%rd1+8], %r9;
+ st.global.u32 [%rd1+4], %r9;
+ mov.u32 %r10, -51331646;
+ st.global.u32 [%rd1+12], %r10;
+ st.global.u32 [%rd1+16], %r10;
+ st.global.u32 [%rd1+20], %r10;
+
+BB1_5:
+ ret;
+}
+
+
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTexLODSelect.ptx.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTexLODSelect.ptx.meta
new file mode 100644
index 00000000..d99e4d21
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/trimeshTexLODSelect.ptx.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 949d1061e0fcbbb4a88c5d02009b9fc1
+timeCreated: 1530260521
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uv.vso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uv.vso
new file mode 100644
index 00000000..33b22929
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uv.vso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uv.vso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uv.vso.meta
new file mode 100644
index 00000000..a4838cf1
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uv.vso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d72c81e180568be4da202eb8b02e9ee6
+timeCreated: 1526160278
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainFaceNormal.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainFaceNormal.pso
new file mode 100644
index 00000000..42cb81a1
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainFaceNormal.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainFaceNormal.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainFaceNormal.pso.meta
new file mode 100644
index 00000000..766d5ac5
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainFaceNormal.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6b9cf8e9582d4164da6853815e912961
+timeCreated: 1547582998
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainNormal.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainNormal.pso
new file mode 100644
index 00000000..cd68cc69
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainNormal.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainNormal.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainNormal.pso.meta
new file mode 100644
index 00000000..04c706a7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainNormal.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 47c1aa0408a8c48469a9dea95b2be32f
+timeCreated: 1547505793
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainPos.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainPos.pso
new file mode 100644
index 00000000..93ede466
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainPos.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainPos.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainPos.pso.meta
new file mode 100644
index 00000000..2db7d39f
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainPos.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: afc905c7ad3054f44be840236e2f7861
+timeCreated: 1547588146
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainSmoothPos.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainSmoothPos.pso
new file mode 100644
index 00000000..4bf62ef7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainSmoothPos.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainSmoothPos.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainSmoothPos.pso.meta
new file mode 100644
index 00000000..dd50cc52
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvTerrainSmoothPos.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 50dad8e5c6c394b48b0fd448d27993cf
+timeCreated: 1547668316
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvalbedo.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvalbedo.pso
new file mode 100644
index 00000000..65fc4703
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvalbedo.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvalbedo.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvalbedo.pso.meta
new file mode 100644
index 00000000..37da1e71
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvalbedo.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 093c1707bbb241d4f9d4c405104ffeea
+timeCreated: 1528729528
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvemissive.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvemissive.pso
new file mode 100644
index 00000000..d7b39c8c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvemissive.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvemissive.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvemissive.pso.meta
new file mode 100644
index 00000000..e908549c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvemissive.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d66f389713f22044886f1c6f9b41a0dc
+timeCreated: 1528482721
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal.gso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal.gso
new file mode 100644
index 00000000..2110b7e7
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal.gso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal.gso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal.gso.meta
new file mode 100644
index 00000000..91baab1b
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal.gso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e11d0acf1230ff843b930da5bdd8d318
+timeCreated: 1526160278
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal_point.gso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal_point.gso
new file mode 100644
index 00000000..ada84c63
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal_point.gso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal_point.gso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal_point.gso.meta
new file mode 100644
index 00000000..b49e8593
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvfacenormal_point.gso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cf90142aabdb60f44bee0dc36653ce83
+timeCreated: 1532179904
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvgbuffergen.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvgbuffergen.dll
new file mode 100644
index 00000000..a90d611c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvgbuffergen.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvgbuffergen.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvgbuffergen.dll.meta
new file mode 100644
index 00000000..ab29b0d4
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvgbuffergen.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: 4f43553a851bba149b8ab4806d42cc33
+timeCreated: 1526154090
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvnormal.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvnormal.pso
new file mode 100644
index 00000000..2b5a11ec
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvnormal.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvnormal.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvnormal.pso.meta
new file mode 100644
index 00000000..0842db25
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvnormal.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3d59ccae59201de44933767a99edbefb
+timeCreated: 1526244101
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvpos.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvpos.pso
new file mode 100644
index 00000000..c84f8bce
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvpos.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvpos.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvpos.pso.meta
new file mode 100644
index 00000000..fb4bdb15
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvpos.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f8cec8a3e29484447aa90a9aaa0abda1
+timeCreated: 1526160278
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvrepack.dll b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvrepack.dll
new file mode 100644
index 00000000..37f6b01c
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvrepack.dll
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvrepack.dll.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvrepack.dll.meta
new file mode 100644
index 00000000..4a94144d
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvrepack.dll.meta
@@ -0,0 +1,28 @@
+fileFormatVersion: 2
+guid: 84a608d243ef13c439f2d53bca47f899
+timeCreated: 1529951507
+licenseType: Store
+PluginImporter:
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ isPreloaded: 0
+ isOverridable: 0
+ platformData:
+ data:
+ first:
+ Any:
+ second:
+ enabled: 0
+ settings: {}
+ data:
+ first:
+ Editor: Editor
+ second:
+ enabled: 1
+ settings:
+ CPU: x86_64
+ DefaultValueInitialized: true
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.gso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.gso
new file mode 100644
index 00000000..c3cf62f4
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.gso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.gso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.gso.meta
new file mode 100644
index 00000000..6eca9188
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.gso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 67027c4092e55f640b1bee3b5f4d1cf2
+timeCreated: 1526160278
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.pso
new file mode 100644
index 00000000..0ee89f23
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.pso.meta
new file mode 100644
index 00000000..6a846fed
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvsmoothpos.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cd4999b2b2c754c498d15bee1ab7a05f
+timeCreated: 1535451522
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvtangent.pso b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvtangent.pso
new file mode 100644
index 00000000..1cdabc12
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvtangent.pso
Binary files differ
diff --git a/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvtangent.pso.meta b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvtangent.pso.meta
new file mode 100644
index 00000000..1c277ece
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Editor/x64/Bakery/uvtangent.pso.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9a6154b9813b7fc498be837d830c55de
+timeCreated: 1537355888
+licenseType: Store
+DefaultImporter:
+ userData:
+ assetBundleName:
+ assetBundleVariant: