Driver 591.44: some programs run incorrectly with debuggable PTX/Optix-IR

Hello,

I recently updated the driver to 591.44 and tested sample programs of my OptiX wrapper. Then I noticed some programs run weirdly with debug build, specifically with debuggable (-G) ptx/OptiX-IR.

For example, a sample program demonstrating deformation blur looks like with the issue:


It should look like:

I have been able to get the second image with older drivers or release build (ptx/OptiX-IR without -G).

Another example is a sample program demonstrating denoisers, where base image is doing path tracing.
Now the sample looks like the following with -G:


It should look like:

This example is also fine with older drivers or release build.

A common point between two examples here is they are using RNG.
For example, the first program loads a RNG like the following:

PCG32RNG rng;
if (plp.usePerPixelRNGs)
    rng = plp.rngBuffer[launchIndex];
else
    rng = plp.globalRNG;

RNG buffer is initialized with random seeds on the host, but I observe that the RNG’s state is constantly zero when I put printf just after this code. The program is also able to use a globally same RNG over image space (else part), the program looks fine with that path. Therefore it looks that something weird happens with loading from RNG buffer.

You can test this sample program from

with CMake.
git clone --recursive git@github.com:shocker-0x15/OptiX_Utility.git
09. deformation_blur is this sample.

Thanks,

My environment:
OptiX 9.0
CUDA 13.0, 13.1
Driver: 591.44
Geforce RTX 4080
Visuals Studio 2022 17.14.21
Windows 11 Pro 25H2 26200.7309

Hi @shocker.0x15 , I’m looking into this. I do have many errors like:

2>------ Build started: Project: 09.deformation_blur, Configuration: Release x64 ------
2>Build started 09/12/2025 17:35:11.
2>Target ResolveProjectReferences:
2>Target PrepareForBuild:
2> Structured output is enabled. The formatting of compiler diagnostics will reflect the error hierarchy. See Problem Details Window - Visual Studio (Windows) | Microsoft Learn for more details.
2>Target InitializeBuildStatus:
2> Touching “deformation_blur.dir\Release\09.defor.ED0E162F.tlog\unsuccessfulbuild”.
2>Target CustomBuild:
2> All outputs are up-to-date.
2>Target GetReferencedVCProjectsInfo:
2>Target ClCompile:
2> common.cpp
2> gui_common.cpp
2> obj_loader.cpp
2> deformation_blur_main.cpp
2> C:\src\github\OptiX_Utility\samples\common\common.h(275,19): error C2011: ‘int2’: ‘struct’ type redefinition
2> (compiling source file ‘../../../samples/deformation_blur/deformation_blur_main.cpp’)
2> C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.1\include\vector_types.h(259,1):
2> see declaration of ‘int2’

I just did cmake .. to configure. Have your same environment (CUDA 13.1, MSVS 17.14.20). Do you already know the fix to this? That would speed up my investigation.

Hi, thanks for taking a look at this issue.

I just did cmake .. to configure.

Weird.
I cloned my repository (main branch) again
git clone --recursive git@github.com:shocker-0x15/OptiX_Utility.git optixu
to make sure, then did Cmake without changing any values. All the samples compile without any issues.

My environment again:
OptiX 9.0.0
CUDA 13.1
Driver 591.44
Geforce RTX 4080
Visual Studio Community 2022 17.14.21
Windows 11 Pro 25H2 26200.7309

I used CMake (cmake-3.31.8-windows-x86_64).

C:\src\github\OptiX_Utility\samples\common\common.h(275,19): error C2011: ‘int2’: ‘struct’ type redefinition

As a sanity check, int2 does not occur at that line in my local environment:

To compile:

  • added include <cuda_runtime.h> in common.h
  • commented out the definition of struct int2 and other vector types in the same file

Have now these results, buggy in a different way:


Thanks for the effort to reproduce!

Not sure why you need cuda_runtime.h to compile (I have intentionally avoided to include CUDA Runtime API to make sure the library works based on driver API), but getting different results between Debug and Release should still be weird and you seem to get a wrong result even with release.
Something goes wrong.

[edited 15Dec25 debug PTX is failing for me too] The release build output is now correct, the random partial-spheres aren’t flat anymore (I’ve replaced calls to float3(x) to make_float3(x), because I commented out all the re-definitions of vector types (int2,float2,...) in common.h, so float3(x) is now a cast, not a constructor).

The debug output when using optix-ir or PTX remain wrong, they need more investigation.

PTX also produces the wrong result for me (RTX 4080, 5070 Ti).
(Release PTX is fine, debug PTX is corrupted)

Attach here your PTX file(s) please.

ptxes.zip (586.9 KB)
Attached the ptx and the OptiX-IR files of deformation_blur sample.

Tnx. I was compiling in release, now debug PTX fails for me too. We are investigating.

Hey thanks for the repro material! A fix is on the way. It’ll take a little time to propagate to a driver release.

1 Like

Has the fix been released in the 595 driver?
(It seems the issue has been actually fixed.)