Unable to attach tegra graphics debugger on SHIELD tablet

hi there,

i seem to be unable to get the graphics to attach to any apps on the SHIELD tablet. whenever it scans processes i just get “No attachable processes found.”. i’ve tried running the debugger on OSX and windows, and with the nvidia sample apps as well as my own. does this require root? typical log output is:

Scanning for attachable processes on SHIELD Tablet …
Waiting for the device to become available.
Making sure adbd has root permissions.
adbd cannot run as root in production builds
Waiting for the device to become available.
Process scan complete.
No attachable processes found.
Mounting device for read/write.
Pulling existing Tegra drivers…
Pulling /system/lib/egl/libEGL_tegra.so to [temporary local location]…
1533 KB/s (9424 bytes in 0.006s)
Pulling /system/lib/egl/libGLESv1_CM_tegra.so to [temporary local location]…
2145 KB/s (17576 bytes in 0.008s)
Pulling /system/lib/egl/libGLESv2_tegra.so to [temporary local location]…
1560 KB/s (17576 bytes in 0.011s)
Pull finished.
Checking for Tegra Graphics Debugger support.
Detected NVIDIA Tegra device driver.
Validating graphics debugger version…
Remote file: /vendor/lib/libTegra_gfx_debugger.so was not found.
Validation failed.
Removing /vendor/lib/libTegra_gfx_debugger.so from device.
Removing /vendor/lib/libNvPmApi.Core.so from device.
Interposer is now disabled.

Hi,
yes, it need root your device.

but there is an rootless way if you compile your application from source, add following to your Android.mk

tgd libs

include $(CLEAR_VARS)
LOCAL_PATH := YOUR_PATH_TO_LIBS
LOCAL_MODULE := libTegra_gfx_debugger
LOCAL_SRC_FILES := libTegra_gfx_debugger.a
include $(PREBUILT_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_PATH := YOUR_PATH_TO_LIBS
LOCAL_MODULE := Stripped_libNvPmApi
LOCAL_SRC_FILES := libNvPmApi.Core.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_PATH := YOUR_PATH_TO_LIBS
LOCAL_MODULE := Stripped_libTegra_gfx_debugger
LOCAL_SRC_FILES := libTegra_gfx_debugger.so
include $(PREBUILT_SHARED_LIBRARY)

end tgd libs

LOCAL_STATIC_LIBRARIES += libTegra_gfx_debugger
LOCAL_SHARED_LIBRARIES += Stripped_libNvPmApi Stripped_libTegra_gfx_debugger

ahh! i’ll give that a try - thanks!

i ended up using the root method, and i can now profile applications which is great. however, the “capture frame” button doesn’t seem to do anything? (the button is enabled, but clicking it does nothing). i’ve tried running the tegra debugger on OSX and windows with the same result - should i be able to capture frames from the shield tablet?

of course you can.
the issue seems your application using unsupported extensions, can you paste here output of “adb logcat | grep -i tegra”?

ahh ok, so this is what i get:

I/TegraGfxDebugger( 3411): [Frame Debugger Alert] Cannot enter frame debugging!
I/TegraGfxDebugger( 3411): The Tegra Graphics Debugger only supports frame debugging for GLES 3.1 and OpenGL 4.2.
I/TegraGfxDebugger( 3411): First seen unsupported operation: glAlphaFuncQCOM

the app i’m profiling is built with unity3d and i can either force it to ES 2.0 or ES 3.0 - i assume that’s the problem?

TGD doesn’t support glAlphaFuncQCOM and its extension QCOM_alpha_test yet, we are still in fixing this issue.

How does nvidia recommend rooting the device? I can’t find it in any documentation. Also I can’t find any documentation about the non-root method.

no recommended rooting method.

for the non-root method, there is no official documentation yet, will update within next release. If you have any problem with non-root method, please send mail to devtools-support devtools-support@nvidia.com

Hi although I am rooted I am still having an issue with permissions? I’m currently developing for the shield tablet using unity, any help would be great

failed to copy ‘C:/Program Files (x86)/NVIDIA Corporation/Tegra Graphics Debugger 1.1/target/android-t124-aarch32/Stripped_libEGL_tgd.so’ to ‘/system/lib/egl/libEGL_tegra.so’: Read-only file system

can you run adb root and adb remount manually?

not sure how you root your device, but you need have adbd run as root on device