Pipeline Link error, how to debug?

Hey folks. I’ve fiddled around with modifying OptiX examples in various places in the past, but I’m creating my first from-scratch OptiX 7-based renderer.

Going off of the various SDK examples, I’ve pieced together something that tries to do the following:

createContext();
buildAccelStructures();
createModules();
createProgramGroups();
createPipeline();
createShaderBindingTable();

I aggresively check for errors on every OptiX call, and there appear to be no problems leading up to createPipeline, where optixPipelineCreate fails with error 7251 (Pipeline Link Error). I am printing logs associated with all applicable calls as well, and don’t see any actionable feedback.

Here is the sum total of all the logs I get:

[4][ KNOBS]: All knobs on default.

[ 4][ DISK CACHE]: Opened database: “/var/tmp/OptixCache_bbudge/cache7.db”
[ 4][ DISK CACHE]: Cache data size: “865.3 KiB”
[ 4][ DISKCACHE]: Cache hit for key: ptx-3276-keycb2650c8fac8c52f6f29923d9b42165c-sm_75-rtc1-drv450.57
[ 4][ DISKCACHE]: Cache hit for key: ptx-97173-key36914a701f564668683c332351ea2f74-sm_75-rtc1-drv450.57
[ 2][COMPILE FEEDBACK]: COMPILE ERROR: failed to create pipeline
Info: Pipeline has 2 module(s), 4 entry function(s), 2 trace call(s), 0 continuation callable call(s), 0 direct callable call(s), 136 basic block(s) in entry functions, 2577 instruction(s) in entry functions, 14 non-entry function(s), 84 basic block(s) in non-entry functions, 1268 instruction(s) in non-entry functions

F1215 12:02:50.397285 172993024 OptiXRenderer.cpp:222] Check failed: resultCode == OPTIX_SUCCESS (7251 vs. 0) Pipeline link error
*** Check failure stack trace: ***
@ 0x50af38
@ 0x50e8af
@ 0x4d5e5b
@ 0x4d3f5a
@ 0x4d0fe3
@ 0x4d0e85
@ 0x7fe40be041a3
@ 0x4d0d9e
@ (nil)

What would be a good strategy for narrowing down the bug?

In case it is relevant, this is on Fedora Linux 31, with 450.57 drivers

Hi @brian.budge!

Link errors got significantly improved in OptiX 7.2, which requires a 455 driver (and the even newer 460 drivers were released today). In addition, OptiX 7.2 got a new “validation mode” that will do some extra checking for common errors, so I recommend upgrading to the most recent OptiX version and the most recent driver. If you still don’t get proper link error messages after that, sending me a reproducer will be the best way forward and I can report back to you what the error is as well as open a ticket to fix OptiX so the error gets properly reported. I suspect (hope) that upgrading will resolve your errors immediately.

In case you need to plan your upgrade schedule, do be aware that OptiX 7.2 had a small incompatible API change, so depending on which features you use, you might get some compile errors that have to be fixed as soon as you upgrade OptiX. The API removed some cases of needing to provide your own bounding boxes for instancing and motion blur. Now the bounding boxes are computed automatically.

The most common link errors are undefined symbols and/or duplicate symbols, so if you can’t upgrade immediately, you could look around for those.


David.

1 Like

Thanks David. Upgrading did help me find my problem: I’m attempting to use glm and it seems that one of the extension functions isn’t getting inlined, and so it is trying to make a call to a function instead, which isn’t available at link time. I will have to go see if I can massage glm to work in this case :)

1 Like

(00:37:03) Optix error: 7251 (Pipeline link error)
Device : NVIDIA GeForce RTX 2060
(00:37:03) Pipeline create failed: COMPILE ERROR:
Info: Pipeline has 28 module(s), 79 entry function(s), 37 trace call(s), 0 continuation callable call(s), 223 direct callable call(s), 11025 basic block(s) in entry functions, 157852 instruction(s) in entry functions, 0 non-entry function(s), 0 basic block(s) in non-entry functions, 0 instruction(s) in non-entry functions
Error: Symbol ‘__intersection__curve_1_0x257bd17cab68fe72’ was defined multiple times. First seen in: ‘__intersection__curve’
Error: Symbol ‘worley_poisson_table’ was defined multiple times. First seen in: ‘__raygen__pathtrace’

(00:37:03) Pipeline create failed:

Help Me

HI @mayukh259, please see this thread Latest driver causing multiple symbol definition error


David.

(18:07:42) Optix error: 7251 (Pipeline link error)
Device : NVIDIA GeForce RTX 2070
(18:07:42) Pipeline create failed: COMPILE ERROR:
Info: Pipeline has 18 module(s), 38 entry function(s), 37 trace call(s), 0 continuation callable call(s), 209 direct callable call(s), 8542 basic block(s) in entry functions, 123925 instruction(s) in entry functions, 0 non-entry function(s), 0 basic block(s) in non-entry functions, 0 instruction(s) in non-entry functions
Error: Symbol ‘__intersection__curve_ptID_0xa04b824fc7af28c2’ was defined multiple times. First seen in: ‘__intersection__curve’
Error: Symbol ‘worley_poisson_table’ was defined multiple times. First seen in: ‘__raygen__pathtrace’

(18:07:42) Pipeline create failed: ????
(18:07:42) DirectWrite: CreateFontFaceFromHDC() failed (Indicates an error in an input file such as a font file.) for QFontDef(Family=“Fixedsys”, pointsize=8.25, pixelsize=15, styleHint=5, weight=50, stretch=100, hintingPreference=0) LOGFONT(“Fixedsys”, lfWidth=0, lfHeight=-15) dpi=96

Hello Guys, Can help me to fix this bug. I have updated my graphics card to the latest version but unfortunatly no luck

This is the second time almost the same error message was posted without any further explanation how to reproduce this.
Please describe exactly what project you’re trying to build and run with descriptions of the steps to reproduce this to make any progress.

When reporting OptiX issues please always include the exact system configuration:
OS version, installed GPU(s), VRAM amount, display driver versions, OptiX (major.minor.micro) version, CUDA toolkit version (major.minor) used to generate the input PTX, host compiler version.

(I deleted the other thread with your double post.)

Searching the internet, that seems to be an issue with Keyshot 9.3 on newer drivers.
Please read this: https://help.keyshot.com/support/discussions/topics/60000406477

These reports are unrelated to the original thread here, which was resolved about a year ago. I am closing this thread. Please start a new thread with a complete report including system info and how to reproduce, as Detlef suggested.

Please note that this forum is for OptiX developers, and it is not even possible for us to provide third party application support; the application developers need to contact us in the case there is an issue with OptiX. If you are not an OptiX developer, and this error is coming from a rendering application you purchased, please contact your application’s support channel for help.


David.