[Shield Tablet General] m0nt3s:
[MENTION=7098982]Crayphish[/MENTION]

Try using my modified sysctl, it sounds like you're using the stock one which limits so many different factors that I wouldn't really know where to start troubleshooting, I would start in ADB SHELL change these parameters start by replacing your sysctl,the easiest way to change all the new parameters would be with 3C toolbox .

eglSwapInterval — specifies the minimum number of video frame periods per buffer swap for the window associated with the current context.

The interval takes effect when eglSwapBuffers is first called subsequent to the eglSwapInterval call.

The interval specified by the function applies to the draw surface bound to the context that is current on the calling thread.

If interval is set to a value of 0, buffer swaps are not synchronized to a video frame, and the swap happens as soon as the render is complete. interval is silently clamped to minimum and maximum implementation dependent valuesbefore being stored; these values are defined by EGLConfig attributes EGL_MIN_SWAP_INTERVAL and EGL_MAX_SWAP_INTERVAL respectively.

fs.inotify.max_queued_events = 32768

fs.inotify.max_user_instances = 256

EGL_MIN_SWAP_INTERVAL = 0

EGL_MAX_SWAP_INTERVAL = 10

add these lines to your build prop

ENFORCE_PROCESS_LIMIT=false

MAX_SERVICE_INACTIVITY=false

MIN_HIDDEN_APPS=false

MAX_HIDDEN_APPS=false

CONTENT_APP_IDLE_OFFSET=false

EMPTY_APP_IDLE_OFFSET=false

MAX_ACTIVITIES=false

ACTIVITY_INACTIVITY_RESET_TIME=false

MAX_RECENT_TASKS=false

MIN_RECENT_TASKS=false

APP_SWITCH_DELAY_TIME=false

MAX_PROCESSES=false

PROC_START_TIMEOUT=false

CPU_MIN_CHECK_DURATION=false

GC_TIMEOUT=false

SERVICE_TIMEOUT=false

MIN_CRASH_INTERVAL=false

persist.service.adb.enable=1

persist.service.debuggable=1

persist.sys.usb.config=mtp,adb

ro.zygote.disable_gl_preload=false

windowsmgr.max_events_per_sec=180

debug.sf.hw=1

debug.composition.type=gpu

persist.sys.ui.hw=1

persist.sys.composition.type=gpu

debug.performance.tuning=1

touch.pressure.scale=0.001

view.touch_slop=4

ro.min_pointer_dur=0.001

touch.size.calibration=geometric

touch.size.scale=100

touch.size.bias=70

touch.pressure.calibration=amplitude

ro.max.fling_velocity=12000

ro.min.fling_velocity=8000

ro.ril.disable.power.collapse=0

dalvik.vm.heaptargetutilization=0.75

sys.usb.config=mtp,adb

dalvik.vm.dexopt-flags=m=y,v=n

ro.debuggable=1

ro.kernel.android.checkjni=0

ro.secure=0

profiler.force_disable_ulog=1

profiler.force_disable_err_rpt=1

debug.egl.hw=1

ro.config.disable.hw_accel=false

video.accelerate.hw=1

ADB SHELL This and see is you notice a difference.

I noticed a huge difference after maxing out the emc memory and the 3d.emc

cat /sys/kernel/debug/clock/emc/possible_rates

cat /sys/kernel/debug/clock/3d.emc/possible_rates

cat /sys/kernel/debug/clock/emc/max > /sys/kernel/debug/clock/override.emc/rate

echo 1 > /sys/kernel/debug/clock/override.emc/state

echo "EMC: `cat /sys/kernel/debug/clock/emc/rate`"

cat /sys/kernel/debug/clock/3d.emc/max > /sys/kernel/debug/clock/3d.emc/rate

echo 1 > /sys/kernel/debug/clock/override.3d.emc/state

echo "3d.EMC: `cat /sys/kernel/debug/clock/3d.emc/rate`"

it's going to be a bit of a troubleshooting process but try these tweaks and let me know if anything changes for better or worse. Also I would make a Full TWRP Backup before.