* fix: skip integrated GPU in IGCL enumeration to prevent duplicate hardware entries IGCL's ctlEnumerateDevices returns all Intel graphics devices including the integrated GPU, but IntelDiscreteGpu was created for every device without filtering. This caused the iGPU to appear twice: once from the IGCL path (as IntelDiscreteGpu) and once from the D3D path (as IntelIntegratedGpu), with overlapping sensors. Check the CTL_ADAPTER_PROPERTIES_FLAG_INTEGRATED flag on each device's graphics_adapter_properties and skip integrated adapters, since they are already handled by IntelIntegratedGpu via D3D enumeration. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: add IGCL-based telemetry sensors for Intel integrated GPUs Use Intel Graphics Control Library (IGCL) to expose temperature, clock frequency, and voltage sensors for the integrated GPU via the safe user-mode ctlPowerTelemetryGet API. Each sensor is only activated if the driver reports it as supported, so this degrades gracefully on hardware/drivers that don't expose specific telemetry items. This mirrors the approach already used by IntelDiscreteGpu, bringing parity between discrete and integrated Intel GPU monitoring. Depends on: fix/intel-igpu-deduplication Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
84 lines
4.1 KiB
XML
84 lines
4.1 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<PropertyGroup>
|
|
<TargetFrameworks>net472;netstandard2.0;net8.0;net9.0;net10.0</TargetFrameworks>
|
|
<Platforms>x64;x86;ARM64</Platforms>
|
|
<RuntimeIdentifiers>win-x64;win-x86;win-arm64</RuntimeIdentifiers>
|
|
<AssemblyName>LibreHardwareMonitorLib</AssemblyName>
|
|
<RootNamespace>LibreHardwareMonitor</RootNamespace>
|
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
|
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
|
|
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
|
<PackageId>$(AssemblyName)</PackageId>
|
|
<Description>Monitor the temperature sensors, fan speeds, voltages, load and clock speeds of your computer.</Description>
|
|
<PackageLicense>https://github.com/LibreHardwareMonitor/LibreHardwareMonitor/blob/master/Licenses/LICENSE</PackageLicense>
|
|
<PackageLicenseExpression>MPL-2.0</PackageLicenseExpression>
|
|
<PackageProjectUrl>https://github.com/LibreHardwareMonitor/LibreHardwareMonitor</PackageProjectUrl>
|
|
<PackageTags>libre open hardware monitor monitoring system logging cpu gpu</PackageTags>
|
|
<PackageVersion>$(Version)</PackageVersion>
|
|
<Pack>true</Pack>
|
|
<RepositoryUrl>https://github.com/LibreHardwareMonitor/LibreHardwareMonitor</RepositoryUrl>
|
|
<LangVersion>latest</LangVersion>
|
|
<PackageIcon>packageicon.png</PackageIcon>
|
|
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
|
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
|
<NoWarn>$(NoWarn);CA1416</NoWarn>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(BuildOnlyRefs)'=='true'">
|
|
<Platform>AnyCPU</Platform>
|
|
<ProduceOnlyReferenceAssembly>true</ProduceOnlyReferenceAssembly>
|
|
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
|
|
<OutputPath>..\bin\Debug\$(Platform)\</OutputPath>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(Configuration)'=='Release'">
|
|
<OutputPath>..\bin\Release\$(Platform)\</OutputPath>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<EmbeddedResource Include="Resources\PawnIo\AMDFamily0F.bin" />
|
|
<EmbeddedResource Include="Resources\PawnIo\AMDFamily10.bin" />
|
|
<EmbeddedResource Include="Resources\PawnIo\AMDFamily17.bin" />
|
|
<EmbeddedResource Include="Resources\PawnIo\IntelMSR.bin" />
|
|
<EmbeddedResource Include="Resources\PawnIo\IsaBridgeEC.bin" />
|
|
<EmbeddedResource Include="Resources\PawnIo\LpcACPIEC.bin" />
|
|
<EmbeddedResource Include="Resources\PawnIo\LpcCrOSEC.bin" />
|
|
<EmbeddedResource Include="Resources\PawnIo\LpcIO.bin" />
|
|
<EmbeddedResource Include="Resources\PawnIo\RyzenSMU.bin" />
|
|
<EmbeddedResource Include="Resources\PawnIo\SmbusI801.bin" />
|
|
<EmbeddedResource Include="Resources\PawnIo\SmbusNCT6793.bin" />
|
|
<EmbeddedResource Include="Resources\PawnIo\SmbusPIIX4.bin" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="'$(TargetFramework)' != 'net472'">
|
|
<PackageReference Include="Microsoft.Win32.Registry" Version="5.0.0" />
|
|
<PackageReference Include="Mono.Posix.NETStandard" Version="1.0.0" />
|
|
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="5.0.0" />
|
|
<PackageReference Include="System.IO.Ports" Version="10.0.3" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="DiskInfoToolkit" Version="1.1.2" />
|
|
<PackageReference Include="HidSharp" Version="2.6.4" />
|
|
<PackageReference Include="Microsoft.Windows.CsWin32" Version="0.3.269">
|
|
<PrivateAssets>all</PrivateAssets>
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
</PackageReference>
|
|
<PackageReference Include="RAMSPDToolkit-NDD" Version="1.4.2" />
|
|
<PackageReference Include="System.Management" Version="10.0.2" />
|
|
<PackageReference Include="System.Memory" Version="4.6.3" Condition="'$(TargetFramework)' == 'net472'" />
|
|
<PackageReference Include="System.Threading.AccessControl" Version="10.0.3" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<None Include="Resources\packageicon.png" PackagePath="">
|
|
<Pack>True</Pack>
|
|
</None>
|
|
</ItemGroup>
|
|
|
|
<Import Project="main.nuget.target" Condition="'$(PackMainNuget)' == 'true'" />
|
|
</Project>
|