Nsight shader list is empty

Guys I’m having difficulties debugging an OpenGL 4.3 Application with 2 shader programs
The shader programs just worked out seemingly fine
BUT when I tried to debug those shader programs line by line I found out that I was unable to, for the shader list was empty.
My debugging environment:
Visual Studio Ultimate 2013 with Nsight 4.6 installed, using a portable notebook GPU GeForce GTX760M
I tried to switch the power management state to maxinum power, with GTX760M GPU forced on, but nothing worked, the shader list window is still empty while debugging with Nsight 4.6

Ehh, BTW I’m using the driver 350.12

Hi Grillnov,

I’m guessing your OGL sample may still running on your Laptop’s iGPU, but not NV’s dGPU. Please try to add some codes to identify your renderer:

const GLubyte* glvendro = glGetString(GL_VENDOR);
const GLubyte* glrenderer = glGetString(GL_RENDERER);

Make sure it’s NV’s GPU.

If it shows non NV’s GPU, that means driver pick some other GPU, please try to force disable that GPU and make sure driver only find NV’s GPU.

I know your meaning about ‘switch the power management state to maxinum power, with GTX760M GPU forced on’, but that may not work, you have to disable the non-NV GPU in hardware way, go into your BIOS and disable the iGPU.

If you can’t find that option in BIOS, just find another monitor, connect it to NV’s dGPU output [HDMI, or DP], force your sample run on that monitor will make it use dGPU.


Thanks for your solution
I’ve tried to read the output of GL_VERSION, GL_VENDOR and GL_RENDERER, and here are the output strings:
OpenGL version: 4.3.0 NVIDIA 349.90
Current GPU Vendor: NVIDIA Corporation
Current Renderer: GeForce GTX 760M/PCIe/SSE2
So I’m 100% sure that my application was run by the dGPU

Currently I am able to use Nsight to view the OpenGL API calls but I still cannot debug shaders caz it’s empty
Furthermore I am still unable to check the buffer storage using Nsight, for all the buffers displayed show that their memory location’s 0x0000000000, which makes no sense.

As for disabling non-NV GPU using BIOS, tragically my laptop doesn’t support this function to disable Optimus once and for all. However I do have an HDMI output port, so anyway are you sure that connecting another monitor to it will really work?

Thanks anyway.


At least in my own Lenovo T420S, I connect extra monitor to the DP port, and Optimus will pick dGPU as main renderer on that monitor. Please note, this trick don’t disable iGPU, but force dGPU to do the main job.

Seems Nsight don’t support Shader Debug/Shader List on Optimus system after do some research, but the buffers display 0x00000000 should not be expected, any chance you can try another machine without iGPU?


Okay, I’ll try.