Code Monkey home page Code Monkey logo

Comments (30)

pierremoreau avatar pierremoreau commented on September 17, 2024 1

@povmaniaco I opened a new bug report, #69, regarding the OptiX modules creation failing, as it is a different issue to the ones reported here.

from pbrt-v4.

richardmgoodin avatar richardmgoodin commented on September 17, 2024

This is very strange. The nvcc compile line has the correct include for CUDA 11.1 and include/cuda_fp16.h does have the definition for "__half_as_short" but not "__half_as_ushort". Is this a known change for CUDA 11.1?

from pbrt-v4.

richardmgoodin avatar richardmgoodin commented on September 17, 2024

__half_to_ushort was indeed found in cuda_fp16.h

from pbrt-v4.

jiangwei007 avatar jiangwei007 commented on September 17, 2024

The reason i guessed that PBRT_IS_GPU_CODE macro isn't defined.

from pbrt-v4.

pierremoreau avatar pierremoreau commented on September 17, 2024

None of the macros are actually defined, which is weird cause they definitely were when I tested locally. Which version of Visual Studio and CMake are you using?

Does it help if you replace in CMakeLists.txt (around line 213)

          target_compile_definitions("${lib_name}" PRIVATE ${PBRT_DEFINITIONS})

by

          set (cuda_definitions)
          foreach (arg ${PBRT_DEFINITIONS})
            list (APPEND cuda_definitions "--define-macro=${arg}")
          endforeach ()
          target_compile_options("${lib_name}" PRIVATE ${cuda_definitions})

from pbrt-v4.

richardmgoodin avatar richardmgoodin commented on September 17, 2024

from pbrt-v4.

richardmgoodin avatar richardmgoodin commented on September 17, 2024

from pbrt-v4.

richardmgoodin avatar richardmgoodin commented on September 17, 2024

from pbrt-v4.

richardmgoodin avatar richardmgoodin commented on September 17, 2024

Now I'm seeing a slew of dllimport errors in OpenEXR. My guess is that this is a similar problem to the above where OPENEXR_DLL is set incorrectly or inconsistently. I can resolve this in two ways:

  1. Set OPENEXR_BUILD_SHARED_LIBS in CMake
  2. Modify the following files:
    src/ext/openexr/OpenEXR/IlmImf/ImfExports.h
    //#if defined(OPENEXR_DLL)
    // #if defined(ILMIMF_EXPORTS)
    // #define IMF_EXPORT __declspec(dllexport)
    // #define IMF_EXPORT_CONST extern __declspec(dllexport)
    // #else
    // #define IMF_EXPORT __declspec(dllimport)
    // #define IMF_EXPORT_CONST extern __declspec(dllimport)
    // #endif
    //#else
    #define IMF_EXPORT
    #define IMF_EXPORT_CONST extern const
    //#endif
    src/ext/openexr/OpenEXR/IlmImfUtil/ImfUtilExports.h

This resolves the build. I can then run without --gpu and generate correct images. When I run it with --gpu I get (with the debug version):

$ pbrt --gpu killeroo-gold.pbrt
pbrt version 4 (built Oct 16 2020 at 20:13:53)
Copyright (c)1998-2020 Matt Pharr, Wenzel Jakob, and Greg Humphreys.
The source code to pbrt (but not the book contents) is covered by the Apache 2
.0 License.
See the file LICENSE.txt for the conditions of the license.
Rendering: [ ] (0.1s|?s) [ 12220.000
20201017.020316 C:/cygwin64/home/goodin/pbrt-v4/src/pbrt/gpu/accel.cpp:1058 ] F
ATAL CUDA error: unspecified launch failure
(unknown ) 0x0000000000000001 -
(unknown ) 0x0000000000000001 -
(unknown ) 0x0000000000000001 -
(unknown ) 0x0000000000000001 -
(unknown ) 0x0000000000000001 -
(unknown ) 0x0000000000000001 -
(unknown ) 0x0000000000000001 -
(unknown ) 0x0000000000000001 -
(unknown ) 0x0000000000000001 -
(unknown ) 0x0000000000000001 -
(unknown ) 0x00007FFA7EC17020 - BaseThreadI
nitThunk
(unknown ) 0x00007FFA8077CEA0 - RtlUserThre
adStart

I'm also not seeing debug information either. I suspect this might be the same launch failures others have seen.

from pbrt-v4.

pierremoreau avatar pierremoreau commented on September 17, 2024

When you build locally do you use the ext version of OpenEXR included with PBRT or do you have a preinstalled library and skip building it for PBRT?

I use the included version of OpenEXR and do run into those compile failures of dllimport. The workaround I found, when it happens, is to

  1. open CMakeLists.txt
  2. save it (without making any changes)
  3. start building the project again

and it now builds find for whatever reason.

So it builds fine locally if using the built-in CMake support, but fails if generating a Visual Studio solution using CMake. The former uses the Ninja build system whereas the latter uses MSBuils, but I can see that both build files to include all the defines though they do not appear in the executed command-line when using the Visual Studio solution, for some reason.

from pbrt-v4.

richardmgoodin avatar richardmgoodin commented on September 17, 2024

from pbrt-v4.

povmaniaco avatar povmaniaco commented on September 17, 2024

Hi.. I have too some issues here using CUDA 11.0 / Optix 7.1 under Windows 10 / MSVC 2019. Without CUDA the code runs fine..

from pbrt-v4.

pierremoreau avatar pierremoreau commented on September 17, 2024

Could you please give the code in #65 a try? It is the same workaround as mentioned earlier but restricted to Visual Studio as after some investigation, the issue seems to lie in the Visual Studio CUDA integration.

from pbrt-v4.

povmaniaco avatar povmaniaco commented on September 17, 2024
10>D:\BUILDS\pbrtcuda>"D:/CUDA/v11.0\bin\nvcc.exe" -gencode=arch=compute_61,code=\"sm_61,compute_61\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX64\x64" -x cu   -ID:\CUDA\v11.0\include -ID:\CUDA\OptiXSDK71\include -I"E:\devs\repos\pbrt-v4\src" -ID:\BUILDS\pbrtcuda -I"E:\devs\repos\pbrt-v4\src\ext\openvdb\nanovdb" -ID:/CUDA/v11.0\include     --keep-dir x64\Release -maxrregcount=128  --machine 64 -ptx -cudart static -Xcudafe --diag_suppress=partial_override -Xcudafe --diag_suppress=virtual_function_decl_hidden -Xcudafe --diag_suppress=integer_sign_change -Xcudafe --diag_suppress=declared_but_not_referenced -Xcudafe --diag_suppress=implicit_return_from_non_void_function --expt-relaxed-constexpr --extended-lambda -Xnvlink -suppress-stack-size-warning --forward-unknown-to-host-compiler --std=c++17 -lineinfo -Xcudafe=--display_error_number -Xcudafe=--diag_suppress=3089 --define-macro=NDEBUG --define-macro=PBRT_IS_MSVC --define-macro=_CRT_SECURE_NO_WARNINGS --define-macro=PBRT_IS_WINDOWS --define-macro=NOMINMAX --define-macro=PBRT_BUILD_GPU_RENDERER --define-macro=NVTX --define-macro=PBRT_HAS_INTRIN_H --define-macro=PBRT_NOINLINE=__declspec(noinline) --define-macro=PBRT_HAVE__ALIGNED_MALLOC /wd4244 /wd4267 /wd4305 /wd4334 /wd4018 /wd4996 /wd4309 -Xcompiler="/EHsc -Ob2" -o optix.cu.dir\Release\optix.ptx "E:\devs\repos\pbrt-v4\src\pbrt\gpu\optix.cu"
10>nvcc fatal   : A single input file is required for a non-link phase when an outputfile is specified
10>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.0.targets(772,9): error MSB3721: The command ""D:/CUDA/v11.0\bin\nvcc.exe" -gencode=arch=compute_61,code=\"sm_61,compute_61\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX64\x64" -x cu   -ID:\CUDA\v11.0\include -ID:\CUDA\OptiXSDK71\include -I"E:\devs\repos\pbrt-v4\src" -ID:\BUILDS\pbrtcuda -I"E:\devs\repos\pbrt-v4\src\ext\openvdb\nanovdb" -ID:/CUDA/v11.0\include     --keep-dir x64\Release -maxrregcount=128  --machine 64 -ptx -cudart static -Xcudafe --diag_suppress=partial_override -Xcudafe --diag_suppress=virtual_function_decl_hidden -Xcudafe --diag_suppress=integer_sign_change -Xcudafe --diag_suppress=declared_but_not_referenced -Xcudafe --diag_suppress=implicit_return_from_non_void_function --expt-relaxed-constexpr --extended-lambda -Xnvlink -suppress-stack-size-warning --forward-unknown-to-host-compiler --std=c++17 -lineinfo -Xcudafe=--display_error_number -Xcudafe=--diag_suppress=3089 --define-macro=NDEBUG --define-macro=PBRT_IS_MSVC --define-macro=_CRT_SECURE_NO_WARNINGS --define-macro=PBRT_IS_WINDOWS --define-macro=NOMINMAX --define-macro=PBRT_BUILD_GPU_RENDERER --define-macro=NVTX --define-macro=PBRT_HAS_INTRIN_H --define-macro=PBRT_NOINLINE=__declspec(noinline) --define-macro=PBRT_HAVE__ALIGNED_MALLOC /wd4244 /wd4267 /wd4305 /wd4334 /wd4018 /wd4996 /wd4309 -Xcompiler="/EHsc -Ob2" -o optix.cu.dir\Release\optix.ptx "E:\devs\repos\pbrt-v4\src\pbrt\gpu\optix.cu"" exited with code 1.

No luck..

from pbrt-v4.

pierremoreau avatar pierremoreau commented on September 17, 2024

Why are you getting the warnings flags "/wd4244 /wd4267 /wd4305 /wd4334 /wd4018 /wd4996 /wd4309" in there? 😲 Can you please share your CMakeLists.txt file?

from pbrt-v4.

povmaniaco avatar povmaniaco commented on September 17, 2024

This are an attempt to silent a massive OpenEXR related warnings under Windows

from pbrt-v4.

pierremoreau avatar pierremoreau commented on September 17, 2024

To expand on my previous comment, "/wd4305" and co are only added when CUDA support is disabled in which case optix.cu should not be compiled, so there is already something weird going on there.
Also, "/wd4305" and co are only added to PBRT_CXX_FLAGS which is never used to compile optix.cu.

This are an attempt to silent a massive OpenEXR related warnings under Windows

Ah, I see. Please remove them as those flags are Visual Studio specific and nvcc ends up interpreting them as input files rather than flags, leading to the error message you got. You might be able to keep them if you also add "--forward-unknown-to-host-compiler".

from pbrt-v4.

povmaniaco avatar povmaniaco commented on September 17, 2024

I have cloned the master branch again to other folder to do a clean compilation, then I have added its patch for CMakeLists.txt
but I keep getting the same message and the definitions for /wdxxx keep popping up...

D:\BUILDS\pbrt-v4>"D:/CUDA/v11.0\bin\nvcc.exe" -gencode=arch=compute_61,code=\"sm_61,compute_61\" --use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\HostX64\x64" -x cu   -ID:\CUDA\v11.0\include -ID:\CUDA\OptiXSDK71\include -I"D:\REPOS\pbrt-v4\src" -I"D:\BUILDS\pbrt-v4" -I"D:\REPOS\pbrt-v4\src\ext\openvdb\nanovdb" -ID:/CUDA/v11.0\include     --keep-dir x64\Release -maxrregcount=128  --machine 64 -ptx -cudart static -Xcudafe --diag_suppress=partial_override -Xcudafe --diag_suppress=virtual_function_decl_hidden -Xcudafe --diag_suppress=integer_sign_change -Xcudafe --diag_suppress=declared_but_not_referenced -Xcudafe --diag_suppress=implicit_return_from_non_void_function --expt-relaxed-constexpr --extended-lambda -Xnvlink -suppress-stack-size-warning --forward-unknown-to-host-compiler --std=c++17 -lineinfo -Xcudafe=--display_error_number -Xcudafe=--diag_suppress=3089 --define-macro=NDEBUG --define-macro=PBRT_IS_MSVC --define-macro=_CRT_SECURE_NO_WARNINGS --define-macro=PBRT_IS_WINDOWS --define-macro=NOMINMAX --define-macro=PBRT_BUILD_GPU_RENDERER --define-macro=NVTX --define-macro=PBRT_HAS_INTRIN_H --define-macro=PBRT_NOINLINE=__declspec(noinline) --define-macro=PBRT_HAVE__ALIGNED_MALLOC /wd4244 /wd4267 /wd4305 /wd4334 /wd4018 /wd4996 /wd4309 -Xcompiler="/EHsc -Ob2" -o optix.cu.dir\Release\optix.ptx "D:\REPOS\pbrt-v4\src\pbrt\gpu\optix.cu"
10>nvcc fatal   : A single input file is required for a non-link phase when an outputfile is specified

from pbrt-v4.

povmaniaco avatar povmaniaco commented on September 17, 2024

After a search inside the repo, /wd4244 is added from /src/ext/ptex/CMakeLists.txt , from line 30 to line 41, out of the if (MSVC AND NOT PBRT_CUDA_ENABLED) flags..

from pbrt-v4.

povmaniaco avatar povmaniaco commented on September 17, 2024

I'm sorry. Forget the comment above, I think I have discovered the source of the problem. I need make some test..

from pbrt-v4.

povmaniaco avatar povmaniaco commented on September 17, 2024

Ok. now is build OK here with CUDA support, but fail when try to execute with --gpu flag

[ 14500.000 20201022.103455 D:/REPOS/pbrt-v4/src/pbrt/gpu/accel.cpp:610 ] FATAL OptiX call optixModuleCreateFromPTX(optixContext, &moduleCompileOptions, &pipelineCompileOptions, ptxCode.c_str(), ptxCode.size(), log, &logSize, &optixModule) failed with code 7299: "Internal compiler error"
(unknown                                 )      0x5672656E6961746E - X�
(unknown                                 )      0x5672656E6961746E - X�
(unknown                                 )      0x5672656E6961746E - X�
(unknown                                 )      0x5672656E6961746E - X�
(unknown                                 )      0x5672656E6961746E - X�
(unknown                                 )      0x5672656E6961746E - X�
(unknown                                 )      0x5672656E6961746E - X�
(unknown                                 )      0x5672656E6961746E - X�
(unknown                                 )      0x5672656E6961746E - X�
(unknown                                 )      0x00007FF91E817C10 - BaseThreadInitThunk
(unknown                                 )      0x00007FF91E96CE80 - RtlUserThreadStart

from pbrt-v4.

pierremoreau avatar pierremoreau commented on September 17, 2024

I am getting the same error when trying to run it; from a very quick look at the PTX code passed to optixModuleCreateFromPTX() in gpu/accel.cpp, the PTX looks correct.

For reference, here is the output I get (with the debug symbols, and I modified OPTIX_CHECK() to also print the log retrieved from OptiX for the module creation:

pbrt version 4 (built Oct 22 2020 at 10:47:31)
Copyright (c)1998-2020 Matt Pharr, Wenzel Jakob, and Greg Humphreys.
The source code to pbrt (but *not* the book contents) is covered by the Apache 2.0 License.
See the file LICENSE.txt for the conditions of the license.
[ 3656.000 20201022.131136 D:\Softwares\pbrt-v4\src\pbrt\util\parallel.cpp:113 ] VERBOSE Started execution in worker thread 2
[ 14800.000 20201022.131136 D:\Softwares\pbrt-v4\src\pbrt\util\parallel.cpp:113 ] VERBOSE Started execution in worker thread 1
[ 14276.000 20201022.131136 D:/Softwares/pbrt-v4/src/pbrt/gpu/init.cpp:34 ] VERBOSE GPU CUDA driver 11.1, CUDA runtime 11.1
[ 17896.000 20201022.131136 D:\Softwares\pbrt-v4\src\pbrt\util\parallel.cpp:113 ] VERBOSE Started execution in worker thread 3
[ 3656.002 20201022.131136 D:/Softwares/pbrt-v4/src/pbrt/gpu/init.cpp:93 ] VERBOSE Selecting GPU device 0
[ 14800.001 20201022.131136 D:/Softwares/pbrt-v4/src/pbrt/gpu/init.cpp:93 ] VERBOSE Selecting GPU device 0
[ 14276.000 20201022.131136 D:/Softwares/pbrt-v4/src/pbrt/gpu/init.cpp:53 ] VERBOSE CUDA device 0 (GeForce RTX 2080 Ti) with 11264 MiB, 68 SMs running at 1665 MHz with shader model 7.5
[ 17896.003 20201022.131136 D:/Softwares/pbrt-v4/src/pbrt/gpu/init.cpp:93 ] VERBOSE Selecting GPU device 0
[ 14276.000 20201022.131136 D:/Softwares/pbrt-v4/src/pbrt/gpu/init.cpp:66 ] VERBOSE Selecting GPU device 0
[ 14276.000 20201022.131136 D:/Softwares/pbrt-v4/src/pbrt/gpu/init.cpp:82 ] VERBOSE Reset stack size to 8192
[ 14276.000 20201022.131137 D:\Softwares\pbrt-v4\src\pbrt\parser.cpp:121 ] VERBOSE Creating Tokenizer for D:\3D_scenes\pbrt-v4-scenes\killeroos\killeroo-gold.pbrt
[ 14276.000 20201022.131137 D:\Softwares\pbrt-v4\src\pbrt\parser.cpp:121 ] VERBOSE Creating Tokenizer for D:\3D_scenes\pbrt-v4-scenes\killeroos\geometry\killeroo3.pbrt
[ 14276.000 20201022.131137 D:\Softwares\pbrt-v4\src\pbrt/film.h:189 ] VERBOSE Created film with full resolution [ 1368, 1026 ], pixelBounds [ [ 0, 0 ] - [ 1368, 1026 ] ]
[ 14276.000 20201022.131138 D:/Softwares/pbrt-v4/src/pbrt/cameras.cpp:231 ] VERBOSE Camera min pos differentials: [ 0, 0, -0 ], [ 0, 0, -0 ]
[ 14276.000 20201022.131138 D:/Softwares/pbrt-v4/src/pbrt/cameras.cpp:233 ] VERBOSE Camera min dir differentials: [ 0.00045337528, 0.00028195977, -1.1920929e-7 ], [ 0.00022663176, -0.0005072057, -1.1920929e-7 ]
[ 14276.000 20201022.131138 D:/Softwares/pbrt-v4/src/pbrt/gpu/accel.cpp:583 ] VERBOSE Optix successfully initialized
[ 14276.000 20201022.131211 D:/Softwares/pbrt-v4/src/pbrt/gpu/accel.cpp:622 ] FATAL OptiX call optixModuleCreateFromPTX(optixContext, &moduleCompileOptions, &pipelineCompileOptions, ptxCode.c_str(), ptxCode.size(), log, &logSize, &optixModule) failed with code 7299: "Internal compiler error"
COMPILE ERROR: Module compilation failed
Info: Pipeline parameter "params" size is 80 bytes
Info: Module uses 3 payload values. Pipeline configuration: 3.
Info: Module uses 4 attribute values. Pipeline configuration: 4.
Info: Entry function "__raygen__findClosest" with semantic type RAYGEN has 1 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 10 basic block(s), 692 instruction(s)
Info: Entry function "__miss__noop" with semantic type MISS has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 2 basic block(s), 3 instruction(s)
Info: Entry function "__closesthit__triangle" with semantic type CLOSESTHIT has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 472 basic block(s), 9043 instruction(s)
Info: Entry function "__anyhit__triangle" with semantic type ANYHIT has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 275 basic block(s), 2992 instruction(s)
Info: Entry function "__anyhit__shadowTriangle" with semantic type ANYHIT has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 280 basic block(s), 3015 instruction(s)
Info: Entry function "__raygen__shadow" with semantic type RAYGEN has 1 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 8 basic block(s), 168 instruction(s)
Info: Entry function "__miss__shadow" with semantic type MISS has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 2 basic block(s), 3 instruction(s)
Info: Entry function "__raygen__shadow_Tr" with semantic type RAYGEN has 1 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 1055 basic block(s), 11022 instruction(s)
Info: Entry function "__miss__shadow_Tr" with semantic type MISS has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 2 basic block(s), 3 instruction(s)
Info: Entry function "__closesthit__quadric" with semantic type CLOSESTHIT has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 655 basic block(s), 9671 instruction(s)
Info: Entry function "__anyhit__shadowQuadric" with semantic type ANYHIT has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 7 basic block(s), 27 instruction(s)
Info: Entry function "__intersection__quadric" with semantic type INTERSECTION has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 2318 basic block(s), 20913 instruction(s)
Info: Entry function "__closesthit__bilinearPatch" with semantic type CLOSESTHIT has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 266 basic block(s), 6556 instruction(s)
Info: Entry function "__anyhit__shadowBilinearPatch" with semantic type ANYHIT has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 7 basic block(s), 27 instruction(s)
Info: Entry function "__intersection__bilinearPatch" with semantic type INTERSECTION has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 100 basic block(s), 1427 instruction(s)
Info: Entry function "__raygen__randomHit" with semantic type RAYGEN has 1 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 9 basic block(s), 482 instruction(s)
Info: Entry function "__anyhit__randomHitTriangle" with semantic type ANYHIT has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 244 basic block(s), 3146 instruction(s)
Info: Entry function "__anyhit__randomHitBilinearPatch" with semantic type ANYHIT has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 40 basic block(s), 740 instruction(s)
Info: Entry function "__anyhit__randomHitQuadric" with semantic type ANYHIT has 0 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 427 basic block(s), 3547 instruction(s)
Info: 7 non-entry function(s) have 42 basic block(s), 647 instruction(s)

(D:\Softwares\pbrt-v4\src\pbrt\util\check.cpp)  0x00007FF749EC7EF0 - pbrt::PrintStackTrace + line 120
(D:\Softwares\pbrt-v4\src\pbrt\util\check.cpp)  0x00007FF749EC82B0 - pbrt::CheckCallbackScope::Fail + line 148
(D:\Softwares\pbrt-v4\src\pbrt\util\log.cpp)    0x00007FF749A815F0 - pbrt::LogFatal + line 177
(D:\Softwares\pbrt-v4\src\pbrt\util\log.h)      0x00007FF749A40FF0 - pbrt::LogFatal<int,char const *,char (&)[4096]> + line 112
(D:\Softwares\pbrt-v4\src\pbrt\gpu\accel.cpp)   0x00007FF749FB4D90 - pbrt::GPUAccel::GPUAccel + line 620
(D:\Softwares\pbrt-v4\src\pbrt\gpu\pathintegrator.cpp)  0x00007FF749B37B90 - pbrt::GPUPathIntegrator::GPUPathIntegrator + line 159
(D:\Softwares\pbrt-v4\src\pbrt\gpu\pathintegrator.cpp)  0x00007FF749B375E0 - pbrt::GPURender + line 570
(D:\Softwares\pbrt-v4\src\pbrt\cmd\pbrt.cpp)    0x00007FF749A3F040 - main + line 237
(D:\agent\_work\9\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl)       0x00007FF74A3A9950 - invoke_main + line 79
(D:\agent\_work\9\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl)       0x00007FF74A3A9700 - __scrt_common_main_seh + line 288
(D:\agent\_work\9\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl)       0x00007FF74A3A96E0 - __scrt_common_main + line 331
(D:\agent\_work\9\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp) 0x00007FF74A3A9A10 - mainCRTStartup + line 17
(unknown                                 )      0x00007FF831047020 - BaseThreadInitThunk
(unknown                                 )      0x00007FF8312FCEA0 - RtlUserThreadStart

Playing around with the PTX source a bit, one problem seems to be the Windows-style line endings used in the PTX file as removing those leads to different errors:

[ 15380.000 20201022.132919 D:/Softwares/pbrt-v4/src/pbrt/gpu/accel.cpp:623 ] FATAL OptiX call optixModuleCreateFromPTX(optixContext, &moduleCompileOptions, &pipelineCompileOptions, ptxCode.c_str(), ptxCode.size(), log, &logSize, &optixModule) failed with code 7200: "Invalid PTX input"
COMPILE ERROR: Invalid PTX input: ptx2llvm-module-001: error: Failed to parse input PTX string
ptx2llvm-module-001, line 9; warning : Unsupported .version 7.1; current version is '6.4'
ptx2llvm-module-001, line 83232; fatal   : Parsing error near 'loc': syntax error
Cannot parse input PTX string

I use the following code snippet to get rid of the '\r' though it did not seem to apply to the loc region for some reason.

    std::string ptxCode((const char *)PBRT_EMBEDDED_PTX);
    ptxCode.erase(std::remove(ptxCode.begin(), ptxCode.end(), '\r'));

Edit: the snippet above was making more changes than just removing the line endings, so disregard the striked-through text.

I will spend some more time on it later today.

from pbrt-v4.

richardmgoodin avatar richardmgoodin commented on September 17, 2024

I tried pulling the #65 code. Assuming this is what I need to do to pull the code:
git fetch origin pull/65/head:number65
the build still fails. touching CMakeLists.txt still resolves the build problems. Still getting the same launch failure.

from pbrt-v4.

pierremoreau avatar pierremoreau commented on September 17, 2024

The OpenEXR build issue should not be affected by #65, sadly, so that issue still remains.

Edit: #65 has been merged in, so you can try directly with the latest master.

It is interesting that you do not suffer from the OptiX module creation that @povmaniaco and I are experiencing, but instead have a failure further down the line. Which driver version are you on, and are you still on OptiX 7.1.0?

from pbrt-v4.

richardmgoodin avatar richardmgoodin commented on September 17, 2024

from pbrt-v4.

richardmgoodin avatar richardmgoodin commented on September 17, 2024

I am running sm86, that might be a difference...

from pbrt-v4.

pierremoreau avatar pierremoreau commented on September 17, 2024

Ah, true. I'm on 456.80 and was using OptiX 7.1, tried 7.2 but it did not help.

from pbrt-v4.

pierremoreau avatar pierremoreau commented on September 17, 2024

It seems that #95 took care of the OpenEXR build failure. I believe all other compilation errors had already been taken care of, so this could be closed now?

from pbrt-v4.

richardmgoodin avatar richardmgoodin commented on September 17, 2024

I still have to touch CMakeLists.txt but then the build succeeds. It still doesn't run under Windows but the build works. We can close this.

from pbrt-v4.

mmp avatar mmp commented on September 17, 2024

Unfortunately I don't have the bandwidth to debug Windows GPU support at the moment and am unlikely to be able to for a few months. I have therefore updated the build so that building with GPU support on Windows is prohibited for now. Needless to say, PRs to fix this would be highly welcome. :-)

from pbrt-v4.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.