Overclock is a major source of instability no matter what any "expert" says.
DDU does a good job on removing the drivers but I'm not sure about cleaning the cache as well. For whatever counts, I prefer to do this my hand, sort off. For that I made a few .bat files to be run every time a new video driver is installed, when the game gets updated or just as maintenance to periodically clean the rubbish from storage drive.
For nvidia card the .bat file looks like this:
@echo off
pushd %temp%
if not exist %userprofile%\AppData\LocalLow\NVIDIA\PerDriverVersion\DXCache\ (goto _step2)
pushd %userprofile%\AppData\LocalLow\NVIDIA\PerDriverVersion\DXCache\
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
popd
:_step2
if not exist %userprofile%\AppData\Local\cache\ (goto _step3)
pushd %userprofile%\AppData\Local\cache\
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
popd
:_step3
if not exist %userprofile%\AppData\Local\D3DSCache\ (goto _step4)
pushd %userprofile%\AppData\Local\D3DSCache\
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
popd
:_step4
if not exist %userprofile%\AppData\Local\NVIDIA\ (goto _step5)
pushd %userprofile%\AppData\Local\NVIDIA\
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
popd
:_step5
if not exist %userprofile%\AppData\Roaming\NVIDIA\ComputeCache\ (goto:EOF)
pushd %userprofile%\AppData\Roaming\NVIDIA\ComputeCache\
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
popd
Separate, I use another one for cleaning the temporary files:
@echo off
if not exist %Temp% (goto:EOF)
pushd %temp%
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
popd
if not exist c:\windows\temp\ (goto:EOF)
pushd c:\windows\temp\
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
popd
In safety side, the worse case scenario is to have nothing happening based on different or missing locations.
Another aspect for nvidia cards, in control panel specify a fixed size for cache storage (not automatically) like 5gb or higher.
If you care about the integrated video card, this bat is for intel cache:
@echo off
pushd %temp%
if not exist %userprofile%\AppData\LocalLow\Intel\ShaderCache\ (goto _step2)
pushd %userprofile%\AppData\LocalLow\Intel\ShaderCache\
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
popd
:step2
if not exist %userprofile%\AppData\Local\cache\ (goto _step3)
pushd %userprofile%\AppData\Local\cache\
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
popd
:step3
if not exist %userprofile%\AppData\Local\D3DSCache\ (goto:EOF)
pushd %userprofile%\AppData\Local\D3DSCache\
for /d %%D in (*) do rd /s /q "%%D"
del /f /q *
popd