All versions subsequent to 2.28 are incompatible with AMD driver 24.5.1.
The Event Viewer error is as follows EventData
Application: FanControl.exe CoreCLR Version: 8.0.2025.41914 .NET Version: 8.0.20 Description: The process was terminated due to an unhandled exception. Exception Info: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. Stack: at ADLXWrapper.Bindings.ADLXPINVOKE.ADLXExt_GetCurrentMetrics1StructFromTracking(System.Runtime.InteropServices.HandleRef, System.Runtime.InteropServices.HandleRef, System.Runtime.InteropServices.HandleRef, ADLXWrapper.GPUMetricsStruct1 ByRef) at ADLXWrapper.Bindings.ADLXPINVOKE.ADLXExt_GetCurrentMetrics1StructFromTracking(System.Runtime.InteropServices.HandleRef, System.Runtime.InteropServices.HandleRef, System.Runtime.InteropServices.HandleRef, ADLXWrapper.GPUMetricsStruct1 ByRef) at ADLXWrapper.Bindings.ADLXExt.GetCurrentMetrics1StructFromTracking(ADLXWrapper.Bindings.IADLXPerformanceMonitoringServices, ADLXWrapper.Bindings.IADLXGPU, ADLXWrapper.GPUMetricsStruct1 ByRef) at ADLXWrapper.PerformanceMonitor.GetGPUMetricsStruct1FromTracking(ADLXWrapper.GPU) at FanControl.Domain.BackendProviders.ADLX.GPUMetrics1Provider.UpdateMetrics() at FanControl.Domain.BackendProviders.ADLX.GPUMetrics1Provider..ctor(ADLXWrapper.PerformanceMonitor, ADLXWrapper.GPU, Boolean) at FanControl.Domain.BackendProviders.ADLX.ADLXWrapperBackendProvider.CreateGPUMetricsProvider(System.ValueTuple2<ADLXWrapper.GPU,Int32>) at System.Linq.Enumerable+SelectArrayIterator2[[System.ValueTuple2[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Fill(System.ReadOnlySpan1<System.ValueTuple2<System.__Canon,Int32>>, System.Span1<System.__Canon>, System.Func2<System.ValueTuple2<System.__Canon,Int32>,System.__Canon>) at System.Linq.Enumerable+SelectArrayIterator2[[System.ValueTuple2[[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ToArray() at FanControl.Domain.BackendProviders.ADLX.ADLXWrapperBackendProvider.Open() at FanControl.Domain.ComputerAccessLayer.Initialize() at FanControl.Bootstrap+<Startup>d__16.MoveNext() at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[FanControl.Bootstrap+<Startup>d__16, FanControl, Version=229.0.0.0, Culture=neutral, PublicKeyToken=null]](<Startup>d__16 ByRef) at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[[FanControl.Bootstrap+<Startup>d__16, FanControl, Version=229.0.0.0, Culture=neutral, PublicKeyToken=null]](<Startup>d__16 ByRef) at FanControl.Bootstrap.Startup(System.Windows.StartupEventArgs) at FanControl.App+<OnStartup>d__3.MoveNext() at System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[[FanControl.App+<OnStartup>d__3, FanControl, Version=229.0.0.0, Culture=neutral, PublicKeyToken=null]](<OnStartup>d__3 ByRef) at System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[[FanControl.App+<OnStartup>d__3, FanControl, Version=229.0.0.0, Culture=neutral, PublicKeyToken=null]](<OnStartup>d__3 ByRef) at FanControl.App.OnStartup(System.Windows.StartupEventArgs) at System.Windows.Application.<.ctor>b__1_0(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object) at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) at System.Windows.Application.RunDispatcher(System.Object) at System.Windows.Application.RunInternal(System.Windows.Window) at FanControl.App.Main()
Any reason to not be on the latest version? Both driver and FanControl wise.
+1. I'm using AMD driver 24.3.1 on Radeon VII and this still happen.
I can't support old bugged drivers + the current new one.
some gpus architecture stopped getting new feature update at 24.3.1. Updates after it are security update only.
Any reason to not be on the latest version? Both driver and FanControl wise.
The main gpu i use doesn't necessarily need fancontrol since it can be tuned in Adrenaline, but the 2nd gpu that i'm using altogether is an Nvidia one that doesn't have a fan curve. On newer fancontrol version I've tried changing the graphical settings for the Fancontrol app to the secondary Nvidia gpu, but it still crash as it attempt to check value on my main AMD gpu.
@TheVietboi if you only need Nvidia, only keep the NviAPIWrapper ticked in sensor source.
Source for AMD driver interface btw is here: https://github.com/Rem0o/ADLXWrapper/