Closed hubbardp closed 4 years ago
Another problem is that in Release 1.1, there are two versions of optix_extra_math.cuh: source/gInteractiveOptix/optix_extra_math.cuh source/sample_utils/optix_extra_math.cuh
It appears that the version in glInteractiveOptix was meant to be removed, as it is identical to the other version except that it is missing definitions of mmult() and make_float4() that seem to be related to more compilation errors.
Removing the version in gInteractiveOptix so the other version is found does eliminate a few compilation errors, but more remain.
Hello. I guess my question is what is the purpose of GVDB? Is it just a toy library that really has no usefulness in the real world but is just a silly demonstration that will simply not be supported and within a few months people will be asking if it is a dead? Is this part of a 'throw as much mud at the wall and see what sticks' campaign? I am amazed at the difficulty building and running this. I really want to explore this but if you can't put something up that builds and runs (with a reasonable amount of pain) what am I supposed to do. I have been trying for 2 days now to get this to build and all I get is problem after problem. I hack each one away only to be stopped dead in my tracks. I see what hubbardp sees and other people on other forums who are trying. And there is nary a response from NVIDIA. What is the purpose of putting up stuff that doesn't build (Oh, of course, it builds on your machine)? HEY how about binaries if it is unbuildable. I'm willing to go through pain - I get it - but this is ridiculous. If this is a toy - TELL US SO WE CAN IGNORE IT. No response for hubbardp in almost a month. Sounds like a dead project. Too bad.
Here is one specific problem. I try to build the spattering project. It fails because the prebuilt cudpp libraries have the wrong name. I rename and it builds. I try to run. Now it wants the original cudpp names. WTF.
I try to build interactive opti. Can't find
Sign me FRUSTRATED.
Hi Planet99,
I was the lead engineer for GVDB Voxels, and if you use the verified combination of hardware, driver and compiler indicated with the download, using the cmake instructions provided, you will find that the samples build and run as expected.
The project is both free and open source so that the user community can work together and make any additional changes they need.
(Note: The views expressed here are my own)
Rama Karl
Hi Planet99,
I was the lead engineer for GVDB Voxels, and if you use the verified combination of hardware, driver and compiler indicated with the download, using the cmake instructions provided, you will find that the samples build and run as expected.
The project is both free and open source so that the user community can work together and make any additional changes they need.
(Note: The views expressed here are my own)
Rama Karl
Dear ramakarl,
I have come to the conclusion that what you stated is not true. Your binaries from here (github) are compiled with CUDA 9.0 and OptiX 5.0, while your readme for the sample projects clearly states we need CUDA8.0 and OptiX 3.9 or higher.
As proof, from your optix.1.dll that comes with your binaries:
OptiX API capture: could not create trace directory " Platform: Windows
C:\u\workspace\rel5.0-win64-cuda90-VS2015-build-Release\sw\wsapps\raytracing\rtsdk\rel5.0\src\c-api\ApiCapture.cpp
Driver Version: OptiX Version:[5.0.0] Branch:[rel5.0] Build Number:[23282304] CUDA Version:[9.0] 64-bit 2017-12-15
Furthermore the FindOptix.cmake file is incorrect. It searches for "optix.lib" and "optixu.lib", while optix uses optix.1.lib and optixu.1.lib. Also it does not link the OptiX headers either hence the errors. You also provide cudpp binaries compiled with cuda 9 (hence the filename 1900cu9c), and they are not working with CUDA8 (as requested in your readme file). In this release for the interactiveOptix only the cpp file changed compared to the 1.0 release, which only uses the other optix related files in the project. Therefore it should work with the same OptiX version as 1.0 (which I used with 4.1.1). These problems only show that the cmake files and the readme you provided are not for this version.
Please do not get me wrong, I am really grateful for your work, but please do not waste our time with misleading guides and not working samples. The other samples I checked work for me, only the interactiveOptix does not (gRenderKernel cmake has an add_optix part, that has to be commented out). If you could provide a working version we would really appreciate that. And before posting that everything works with the suggested combination, please at least check what you suggested, and what you actually used. I wasted a lot of time with this.
Also I tried to upgrade my project to GVDB 1.1, and after fixing errors mentioned before, I realized that the main difference is that the raycast function has changed. You have updated this in the gRenderKernel sample, however you forgot to update the gInteractiveOptix cu files - they are the same as in the 1.0 release. Therefore they do not work with the new raycast function. I checked the 1.1 programming guide too, you use the old raycast call in the pdf - that does not work now. After fixing this too my project builds. Now I get this error:
Type mismatch (Details: Function "_rtContextValidate" caught exception: Variable "gvdb" assigned type User data[1248 bytes]. Should be User data[8 bytes].)
Any idea why I get this? I'm using vs2015, cuda9, OptiX 4.1.1
To sum it up: -The readme is not up to date (CUDA version, OptiX version) -the gInteractiveOptix cu files (they are the same as in 1.0) are not up to date -the cmake files for findOptix are not up to date (typo in optix lib file names) (you can see as the first paramter for the raycast function should be gvdb)
Also I have this error, after setting up build and running, any help is appreciated: Type mismatch (Details: Function "_rtContextValidate" caught exception: Variable "gvdb" assigned type User data[1248 bytes]. Should be User data[8 bytes].)
Hi Planet99,
I was the lead engineer for GVDB Voxels, and if you use the verified combination of hardware, driver and compiler indicated with the download, using the cmake instructions provided, you will find that the samples build and run as expected.
The project is both free and open source so that the user community can work together and make any additional changes they need.
(Note: The views expressed here are my own)
Rama Karl
This repo is indeed not ready for Linux users, not even close. If you find a Linux computer with CUDA 9+, follow the steps close as we are told, you will understand how frustrated we are.
Hi Planet99, I was the lead engineer for GVDB Voxels, and if you use the verified combination of hardware, driver and compiler indicated with the download, using the cmake instructions provided, you will find that the samples build and run as expected. The project is both free and open source so that the user community can work together and make any additional changes they need. (Note: The views expressed here are my own) Rama Karl
This repo is indeed not ready for Linux users, not even close. If you find a Linux computer with CUDA 9+, follow the steps close as we are told, you will understand how frustrated we are.
The OS is not the problem. I used Windows. They forgot to release the newer versions for the files, as you can see here too: The optix_vol_intersect.cu did not change in this commit (just an empty line removal) it was still on version 1.0 before. The file is not compatible with 1.1, the rayCast fucntion has different number of parameters now. Please unswer us!
I will look into this.
@Taironn Ah, those support files in gInteractiveOptix were obsolete, and should not be part of the GVDB 1.1 repo. I have removed them now. They are replaced by the files located in /source/sample_utils.
This is because the original GVDB 1.0 had only one sample which used OptiX, but GVDB 1.1 has many samples using OptiX, therefore the shared code for integration with optix is now a part of the common sample_utils. The currently posted CMakeLists for gInteractiveOptiX will use the correct ones. It is highly recommended that you use cmake to build GVDB.
In general, if you see "GVDB Release 1.0" on a file, it does not mean that the correct file was not uploaded. It may mean that the file has not changed between GVDB 1.0 and GVDB 1.1.
I have just re-tested the current repository with a fresh checkout on: OS: Ubuntu 16.04.4 (xenial) Nvidia Card: GeForce GTX 980 Nvidia Driver: 396.18 CUDA Version: 8.0
And the g3DPrint sample works as expected. Have not tested other configurations or samples.
I also built cudpp for Ubuntu and CUDA 8 using the provide CMakeLists and confirm this works still. The cudpp_1900cu9x* files are for VisualStudio ver 19, CUDA 9, so you are correct that they will not work for either Linux or CUDA 8. We had decided to provide one example, along with CMakeLists for cudpp so that users can build cudpp for other platforms, rather than continue to add to the repository all the library combinations for various OS and cuda vers. The general expectation is that users build cudpp for their chosen platform.
Closing as version 1.1.1 removes CUDPP, streamlines the build system, and has been tested on Ubuntu Linux. Please feel free to reopen this issue if there are any problems with it - thanks!
The gInteractiveOptix sample program in Release 1.1 seems to have multiple problems preventing it from building (on Ubuntu Linux, but the problems don't seem to be platform specific).
First, even when OPTIX_ROOT_DIR is specified in the CMake configuration step, the Optix include directory is not passed to nvcc, causing this error:
[ 4%] Building NVCC ptx file cuda_compile_ptx_generated_optix_vol_intersect.cu.ptx In file included from \/gvdb-voxels-1.1/source/gInteractiveOptix/optix_vol_intersect.cu:30:0:
\/gvdb-voxels-1.1/source/gInteractiveOptix/optix_extra_math.cuh:34:19: fatal error: optix.h: No such file or directory
A work-around (probably not the best) is to configure CMake to explicitly set CUDA_NVCC_FLAGS: -I\
With that work-around, additional compilation errors appear. One is the following:
\/gvdb-voxels-1.1/source/gInteractiveOptix/optix_vol_intersect.cu(78): error: identifier "raySurfaceBrick" is undefined
In Release 1.0, the include/cuda_gvdb_raycast.cuh file contained a raySurfaceBrick() function that seems to have been removed for Release 1.1.
There are enough other differences between the Release 1.0 and Release 1.1 versions of cuda_gvdb_raycast.cuh that I have not tried resurrecting the 1.0 version of raySurfaceBrick().
Will there be an update to fix these problems? Thanks.