Files
FORT-BO/Assets/Editor/x64/Bakery/optix9/lambert_tex_gi2Translucent.ptx
2026-08-06 18:56:32 +03:00

172 lines
4.2 KiB
Plaintext

//
// Generated by NVIDIA NVVM Compiler
//
// Compiler Build ID: CL-31968024
// Cuda compilation tools, release 12.0, V12.0.76
// Based on NVVM 7.0.1
//
.version 8.0
.target sm_52
.address_size 64
// .globl __closesthit__oxMain
.const .align 16 .b8 params[1184];
.visible .entry __closesthit__oxMain()
{
.reg .pred %p<4>;
.reg .b16 %rs<12>;
.reg .f32 %f<39>;
.reg .b32 %r<37>;
.reg .b64 %rd<7>;
// begin inline asm
call (%r6), _optix_read_primitive_idx, ();
// end inline asm
// begin inline asm
call (%f9, %f10), _optix_get_triangle_barycentrics, ();
// end inline asm
mov.u32 %r9, 0;
// begin inline asm
call (%rd1), _optix_call_direct_callable,(%r9);
// end inline asm
{ // callseq 0, 0
.reg .b32 temp_param_reg;
.param .b32 param0;
st.param.b32 [param0+0], %r6;
.param .align 8 .b8 param1[8];
st.param.v2.f32 [param1+0], {%f9, %f10};
.param .align 8 .b8 retval0[32];
prototype_0 : .callprototype (.param .align 8 .b8 _[32]) _ (.param .b32 _, .param .align 8 .b8 _[8]);
call (retval0),
%rd1,
(
param0,
param1
)
, prototype_0;
ld.param.v2.f32 {%f1, %f2}, [retval0+0];
ld.param.f32 %f3, [retval0+8];
ld.param.v4.b8 {%rs1, %rs2, %rs3, %rs4}, [retval0+12];
ld.param.v2.f32 {%f7, %f5}, [retval0+16];
ld.param.f32 %f6, [retval0+24];
ld.param.v4.b8 {%rs5, %rs6, %rs7, %rs8}, [retval0+28];
} // callseq 0
mov.u32 %r11, 1;
// begin inline asm
call (%f11), _optix_get_world_ray_direction_x, ();
// end inline asm
// begin inline asm
call (%f12), _optix_get_world_ray_direction_y, ();
// end inline asm
// begin inline asm
call (%f13), _optix_get_world_ray_direction_z, ();
// end inline asm
mul.f32 %f14, %f2, %f12;
fma.rn.f32 %f15, %f1, %f11, %f14;
fma.rn.f32 %f8, %f3, %f13, %f15;
// begin inline asm
call (%r8), _optix_get_payload, (%r9);
// end inline asm
// begin inline asm
call (%r10), _optix_get_payload, (%r11);
// end inline asm
mov.u32 %r13, 2;
// begin inline asm
call (%r12), _optix_get_payload, (%r13);
// end inline asm
mov.u32 %r15, 3;
// begin inline asm
call (%r14), _optix_get_payload, (%r15);
// end inline asm
div.rn.f32 %f16, %f7, 0f41200000;
cvt.rzi.s32.f32 %r5, %f16;
setp.lt.s32 %p1, %r5, 0;
@%p1 bra $L__BB0_2;
mov.b32 %f21, %r12;
cvt.rzi.s32.f32 %r24, %f7;
cvt.rn.f32.s32 %f22, %r24;
sub.f32 %f23, %f7, %f22;
ld.const.u64 %rd2, [params+688];
cvta.to.global.u64 %rd3, %rd2;
mul.wide.s32 %rd4, %r5, 8;
add.s64 %rd5, %rd3, %rd4;
ld.global.u64 %rd6, [%rd5];
tex.2d.v4.u32.f32 {%r25, %r26, %r27, %r28}, [%rd6, {%f23, %f5}];
cvt.u16.u32 %rs9, %r25;
cvt.u16.u32 %rs10, %r26;
cvt.u16.u32 %rs11, %r27;
// begin inline asm
{ cvt.f32.f16 %f17, %rs9;}
// end inline asm
// begin inline asm
{ cvt.f32.f16 %f18, %rs10;}
// end inline asm
// begin inline asm
{ cvt.f32.f16 %f19, %rs11;}
// end inline asm
ld.const.f32 %f24, [params+696];
setp.ltu.f32 %p2, %f8, 0f00000000;
selp.f32 %f25, 0f3F800000, %f24, %p2;
mul.f32 %f26, %f17, %f25;
mul.f32 %f27, %f18, %f25;
mul.f32 %f28, %f19, %f25;
// begin inline asm
call (%f20), _optix_get_ray_tmax, ();
// end inline asm
mov.b32 %f29, %r14;
setp.gt.f32 %p3, %f20, %f29;
selp.f32 %f30, %f21, 0f3F800000, %p3;
mov.b32 %f31, %r10;
selp.f32 %f32, %f31, 0f3F800000, %p3;
mov.b32 %f33, %r8;
selp.f32 %f34, %f33, 0f3F800000, %p3;
mul.f32 %f35, %f26, %f34;
mul.f32 %f36, %f27, %f32;
mul.f32 %f37, %f28, %f30;
neg.f32 %f38, %f20;
mov.b32 %r17, %f35;
// begin inline asm
call _optix_set_payload, (%r9, %r17);
// end inline asm
mov.b32 %r19, %f36;
// begin inline asm
call _optix_set_payload, (%r11, %r19);
// end inline asm
mov.b32 %r21, %f37;
// begin inline asm
call _optix_set_payload, (%r13, %r21);
// end inline asm
mov.b32 %r23, %f38;
// begin inline asm
call _optix_set_payload, (%r15, %r23);
// end inline asm
bra.uni $L__BB0_3;
$L__BB0_2:
// begin inline asm
call _optix_set_payload, (%r9, %r9);
// end inline asm
// begin inline asm
call _optix_set_payload, (%r11, %r9);
// end inline asm
// begin inline asm
call _optix_set_payload, (%r13, %r9);
// end inline asm
mov.u32 %r36, 2139095039;
// begin inline asm
call _optix_set_payload, (%r15, %r36);
// end inline asm
$L__BB0_3:
ret;
}