Vixen
dd8b0a81
csharp
public readonly record struct GpuDenyRule

One adapter a backend must not be used on, and why.

Read the guide page for this →

Remarks

A substring rather than an exact name, because a driver's name for itself is not a stable identifier. The same GPU reports Mali-G78 on one device and Mali-G78 MC14 on another, and Adreno adds and drops the vendor prefix between driver branches. A rule keyed on equality is a rule that stops matching after an OTA update, which is worse than no rule because it looks like coverage.

⚠ The driver version is a substring too, and that is a deliberate blunt instrument. DriverVersion is a string each backend formats for humans; there is no ordering to compare against and pretending there is one would mean parsing a different scheme per vendor. A range is expressed as several rules, which is verbose and honest.

Fields and properties (3)

  • public string Adapter

    Part of the adapter's name, matched case-insensitively. * matches every adapter, which is only meaningful together with a that does not.

  • public string? DriverVersion

    The driver version this applies to, matched case-insensitively as a substring, or * for every version of that adapter's driver.

  • public string Reason

    What goes wrong, in words a log reader can act on. Not optional — a rule nobody can review is not a deny-list, it is a device that stopped working for no stated cause.

Methods (2)

  • public GpuDenyRule(string Adapter, string? DriverVersion, string Reason)

    One adapter a backend must not be used on, and why.

  • public bool Matches(string name, string driverVersion)

    Whether this rule refuses a given adapter.

Used by (2)

  • GpuDenyListVixen.Graphics
  • GpuDenyListTestsVixen.Graphics.Tests