mmp / pbrt-v4

Source code to pbrt, the ray tracer described in the forthcoming 4th edition of the "Physically Based Rendering: From Theory to Implementation" book.
https://pbrt.org
Apache License 2.0
2.75k stars 407 forks source link

Cannot use pbrt-v4 #401

Closed orion160 closed 4 months ago

orion160 commented 8 months ago

Logs on verbose:

Running on Windows 11 (Build 22631.2715) Intel 8265U

PS C:\pbrt-v4\bin> .\pbrt.exe --log-level verbose C:\Users\idbl6\Documents\pbrt-v4-scenes\lte-orb\lte-orb-simple-ball.pbrt
pbrt version 4 (built Nov 15 2023 at 20:08:27)
Copyright (c)1998-2021 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.
[ tid 13384 @     0.000s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 12500 @     0.000s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 10772 @     0.000s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 3604 @     0.000s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 13200 @     0.000s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 10464 @     0.000s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 8840 @     0.000s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 12060 @     0.001s D:\pbrt-v4\src\pbrt\parser.cpp:611 ] Started parsing C:\Users\idbl6\Documents\pbrt-v4-scenes\lte-orb\lte-orb-simple-ball.pbrt
[ tid 12060 @     0.002s D:\pbrt-v4\src\pbrt\cameras.cpp:50 ] World-space position: [ 0.2, 0.4, -0.5 ]
[ tid 12060 @     0.002s D:\pbrt-v4\src\pbrt\scene.cpp:748 ] Starting to create filter and film
[ tid 12060 @     0.003s film.h:196 ] Created film with full resolution [ 1200, 1200 ], pixelBounds [ [ 0, 0 ] - [ 1200, 1200 ] ]
[ tid 12060 @     0.110s D:\pbrt-v4\src\pbrt\scene.cpp:765 ] Finished creating filter and film
[ tid 10772 @     0.110s D:\pbrt-v4\src\pbrt\scene.cpp:769 ] Starting to create sampler
[ tid 12500 @     0.110s D:\pbrt-v4\src\pbrt\scene.cpp:778 ] Starting to create camera
[ tid 12500 @     0.111s D:\pbrt-v4\src\pbrt\cameras.cpp:197 ] Camera min pos differentials: [ 0, 0, 0 ], [ 0, 0, 0 ]
[ tid 12500 @     0.111s D:\pbrt-v4\src\pbrt\cameras.cpp:199 ] Camera min dir differentials: [ -0.00048011536, -0.000016510485, -2.3841858e-7 ], [ 0.00006476044, -0.00047606224, -2.3841858e-7 ]
[ tid 12500 @     0.111s D:\pbrt-v4\src\pbrt\scene.cpp:784 ] Finished creating camera
[ tid 10464 @     0.111s scene.h:290 ] Retrieved Camera from future
[ tid 12060 @     0.111s D:\pbrt-v4\src\pbrt\parser.cpp:767 ] Started parsing C:\Users\idbl6\Documents\pbrt-v4-scenes\lte-orb\geometry\geometry-simple.pbrt
[ tid 12060 @     0.114s D:\pbrt-v4\src\pbrt\parser.cpp:642 ] Finished parsing C:\Users\idbl6\Documents\pbrt-v4-scenes\lte-orb\geometry\geometry-simple.pbrt
[ tid 12060 @     0.114s D:\pbrt-v4\src\pbrt\parser.cpp:642 ] Finished parsing C:\Users\idbl6\Documents\pbrt-v4-scenes\lte-orb\lte-orb-simple-ball.pbrt
[ tid 12060 @     0.114s D:\pbrt-v4\src\pbrt\cpu\render.cpp:32 ] Starting textures
[ tid 12060 @     0.114s D:\pbrt-v4\src\pbrt\scene.cpp:1180 ] Starting to consume texture futures
[ tid 12060 @     0.114s D:\pbrt-v4\src\pbrt\scene.cpp:1192 ] Finished consuming texture futures
[ tid 12060 @     0.114s D:\pbrt-v4\src\pbrt\scene.cpp:1194 ] Starting to create remaining textures
[ tid 12060 @     0.115s D:\pbrt-v4\src\pbrt\scene.cpp:1250 ] Done creating textures
[ tid 12060 @     0.115s D:\pbrt-v4\src\pbrt\cpu\render.cpp:34 ] Finished textures
[ tid 12060 @     0.115s D:\pbrt-v4\src\pbrt\scene.cpp:1289 ] Starting area lights
[ tid 12060 @     0.115s D:\pbrt-v4\src\pbrt\scene.cpp:1341 ] Finished area lights
[ tid 12060 @     0.115s D:\pbrt-v4\src\pbrt\scene.cpp:1343 ] Starting to consume non-area light futures
[ tid 10464 @     0.276s D:\pbrt-v4\src\pbrt\util\image.cpp:1164 ] Read EXR image C:\Users\idbl6\Documents\pbrt-v4-scenes\lte-orb\textures\small_rural_road_equiarea.exr (2048 x 2048)
[ tid 12060 @     0.873s D:\pbrt-v4\src\pbrt\scene.cpp:1347 ] Finished consuming non-area light futures
[ tid 12060 @     0.873s D:\pbrt-v4\src\pbrt\cpu\render.cpp:41 ] Starting materials
[ tid 12060 @     0.873s D:\pbrt-v4\src\pbrt\scene.cpp:1113 ] Starting to consume 0 normal map futures
[ tid 12060 @     0.873s D:\pbrt-v4\src\pbrt\scene.cpp:1120 ] Finished consuming normal map futures
[ tid 12060 @     0.890s D:\pbrt-v4\src\pbrt\cpu\render.cpp:45 ] Finished materials
[ tid 12060 @     0.890s D:\pbrt-v4\src\pbrt\scene.cpp:1444 ] Starting shapes
[ tid 12060 @     3.024s D:\pbrt-v4\src\pbrt\scene.cpp:1519 ] Finished shapes
[ tid 12060 @     3.025s D:\pbrt-v4\src\pbrt\scene.cpp:1522 ] Starting instances
[ tid 12060 @     3.025s D:\pbrt-v4\src\pbrt\scene.cpp:1581 ] Finished instances
[ tid 12060 @     3.025s D:\pbrt-v4\src\pbrt\scene.cpp:1585 ] Starting top-level accelerator
[ tid 12060 @     7.718s D:\pbrt-v4\src\pbrt\cpu\aggregates.cpp:182 ] BVH created with 10210843 nodes for 5237888 primitives (311.61 MB)
[ tid 12060 @     7.718s D:\pbrt-v4\src\pbrt\pbrt.cpp:52 ] ERROR Program generated exception -529697949--terminating execution
mmp commented 8 months ago

Strange! Can you try a debug build and see if it gives any more useful output? Also, a stack trace might be illuminating.

orion160 commented 8 months ago

That took long,

It gave me the same output

PS D:\pbrt-v4\build\VS22_X64\Debug> .\pbrt.exe --log-level verbose C:\Users\idbl6\Documents\pbrt-v4-scenes\lte-orb\lte-orb-simple-ball.pbrt
pbrt version 4 (built Nov 15 2023 at 19:58:35)
*** DEBUG BUILD ***
Copyright (c)1998-2021 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.
[ tid 10880 @     0.000s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 17112 @     0.000s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 10420 @     0.000s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 8700 @     0.001s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 16328 @     0.000s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 15164 @     0.001s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 15604 @     0.001s D:\pbrt-v4\src\pbrt\util\parallel.cpp:53 ] Started execution in worker thread
[ tid 5268 @     0.013s D:\pbrt-v4\src\pbrt\parser.cpp:611 ] Started parsing C:\Users\idbl6\Documents\pbrt-v4-scenes\lte-orb\lte-orb-simple-ball.pbrt
[ tid 5268 @     0.014s D:\pbrt-v4\src\pbrt\cameras.cpp:50 ] World-space position: [ 0.2, 0.4, -0.5 ]
[ tid 5268 @     0.014s D:\pbrt-v4\src\pbrt\scene.cpp:748 ] Starting to create filter and film
[ tid 5268 @     0.017s film.h:196 ] Created film with full resolution [ 1200, 1200 ], pixelBounds [ [ 0, 0 ] - [ 1200, 1200 ] ]
[ tid 5268 @     0.611s D:\pbrt-v4\src\pbrt\scene.cpp:765 ] Finished creating filter and film
[ tid 8700 @     0.611s D:\pbrt-v4\src\pbrt\scene.cpp:769 ] Starting to create sampler
[ tid 15604 @     0.611s D:\pbrt-v4\src\pbrt\scene.cpp:778 ] Starting to create camera
[ tid 5268 @     0.614s D:\pbrt-v4\src\pbrt\parser.cpp:767 ] Started parsing C:\Users\idbl6\Documents\pbrt-v4-scenes\lte-orb\geometry\geometry-simple.pbrt
[ tid 15604 @     0.626s D:\pbrt-v4\src\pbrt\cameras.cpp:197 ] Camera min pos differentials: [ 0, 0, 0 ], [ 0, 0, 0 ]
[ tid 15604 @     0.626s D:\pbrt-v4\src\pbrt\cameras.cpp:199 ] Camera min dir differentials: [ -0.00048011536, -0.000016510485, -2.3841858e-7 ], [ 0.00006476044, -0.00047606224, -2.3841858e-7 ]
[ tid 15604 @     0.626s D:\pbrt-v4\src\pbrt\scene.cpp:784 ] Finished creating camera
[ tid 10880 @     0.627s scene.h:290 ] Retrieved Camera from future
[ tid 5268 @     0.665s D:\pbrt-v4\src\pbrt\parser.cpp:642 ] Finished parsing C:\Users\idbl6\Documents\pbrt-v4-scenes\lte-orb\geometry\geometry-simple.pbrt
[ tid 5268 @     0.665s D:\pbrt-v4\src\pbrt\parser.cpp:642 ] Finished parsing C:\Users\idbl6\Documents\pbrt-v4-scenes\lte-orb\lte-orb-simple-ball.pbrt
[ tid 5268 @     0.665s D:\pbrt-v4\src\pbrt\cpu\render.cpp:32 ] Starting textures
[ tid 5268 @     0.666s D:\pbrt-v4\src\pbrt\scene.cpp:1180 ] Starting to consume texture futures
[ tid 5268 @     0.666s D:\pbrt-v4\src\pbrt\scene.cpp:1192 ] Finished consuming texture futures
[ tid 5268 @     0.666s D:\pbrt-v4\src\pbrt\scene.cpp:1194 ] Starting to create remaining textures
[ tid 5268 @     0.666s D:\pbrt-v4\src\pbrt\scene.cpp:1250 ] Done creating textures
[ tid 5268 @     0.666s D:\pbrt-v4\src\pbrt\cpu\render.cpp:34 ] Finished textures
[ tid 5268 @     0.666s D:\pbrt-v4\src\pbrt\scene.cpp:1289 ] Starting area lights
[ tid 5268 @     0.667s D:\pbrt-v4\src\pbrt\scene.cpp:1341 ] Finished area lights
[ tid 5268 @     0.667s D:\pbrt-v4\src\pbrt\scene.cpp:1343 ] Starting to consume non-area light futures
[ tid 10880 @     1.294s D:\pbrt-v4\src\pbrt\util\image.cpp:1164 ] Read EXR image C:\Users\idbl6\Documents\pbrt-v4-scenes\lte-orb\textures\small_rural_road_equiarea.exr (2048 x 2048)
[ tid 5268 @    20.348s D:\pbrt-v4\src\pbrt\scene.cpp:1347 ] Finished consuming non-area light futures
[ tid 5268 @    20.348s D:\pbrt-v4\src\pbrt\cpu\render.cpp:41 ] Starting materials
[ tid 5268 @    20.348s D:\pbrt-v4\src\pbrt\scene.cpp:1113 ] Starting to consume 0 normal map futures
[ tid 5268 @    20.348s D:\pbrt-v4\src\pbrt\scene.cpp:1120 ] Finished consuming normal map futures
[ tid 5268 @    20.479s D:\pbrt-v4\src\pbrt\cpu\render.cpp:45 ] Finished materials
[ tid 5268 @    20.479s D:\pbrt-v4\src\pbrt\scene.cpp:1444 ] Starting shapes
[ tid 5268 @    35.365s D:\pbrt-v4\src\pbrt\scene.cpp:1519 ] Finished shapes
[ tid 5268 @    35.366s D:\pbrt-v4\src\pbrt\scene.cpp:1522 ] Starting instances
[ tid 5268 @    35.366s D:\pbrt-v4\src\pbrt\scene.cpp:1581 ] Finished instances
[ tid 5268 @    35.366s D:\pbrt-v4\src\pbrt\scene.cpp:1585 ] Starting top-level accelerator
[ tid 5268 @   716.229s D:\pbrt-v4\src\pbrt\cpu\aggregates.cpp:182 ] BVH created with 10210843 nodes for 5237888 primitives (311.61 MB)
[ tid 5268 @   716.232s D:\pbrt-v4\src\pbrt\pbrt.cpp:52 ] ERROR Program generated exception -529697949--terminating execution

I´ll setup a Debugging enviroment to get the stack trace

orion160 commented 8 months ago

Weird enough, it works on VS22 IDE environment. But building from CLI doesn't.

I've tried add the folders to path or to use DevCMD with all set but it does not work.

Commands used

cmake -S . -B .\build\VS22_X64\Release --install-prefix D:\pbrt-v4\install\VS22_X64\Release -DCMAKE_BUILD_TYPE=Release -G Ninja -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl

cmake --build .\build\VS22_X64\Release\ -j6

cd <into-build-dir>

pbrt <file>
orion160 commented 4 months ago

Its somehow fixed.

Tested on 39e01e61f8de07b99859df04b271a02a53d9aeb2