Publish LumaOps source
This commit is contained in:
@@ -0,0 +1,186 @@
|
||||
/*---------------------------------------------------------*\
|
||||
| GigabyteRGBFusion2GPUController.cpp |
|
||||
| |
|
||||
| Driver for Gigabyte Aorus RGB Fusion 2 GPU |
|
||||
| |
|
||||
| This file is part of the OpenRGB project |
|
||||
| SPDX-License-Identifier: GPL-2.0-or-later |
|
||||
\*---------------------------------------------------------*/
|
||||
|
||||
#include <chrono>
|
||||
#include <thread>
|
||||
#include "GigabyteRGBFusion2GPUController.h"
|
||||
#include "LogManager.h"
|
||||
|
||||
using namespace std::chrono_literals;
|
||||
|
||||
RGBFusion2GPUController::RGBFusion2GPUController(i2c_smbus_interface* bus, rgb_fusion_dev_id dev, std::string dev_name)
|
||||
{
|
||||
this->bus = bus;
|
||||
this->dev = dev;
|
||||
this->name = dev_name;
|
||||
}
|
||||
|
||||
RGBFusion2GPUController::~RGBFusion2GPUController()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
std::string RGBFusion2GPUController::GetDeviceLocation()
|
||||
{
|
||||
std::string return_string(bus->device_name);
|
||||
char addr[5];
|
||||
snprintf(addr, 5, "0x%02X", dev);
|
||||
return_string.append(", address ");
|
||||
return_string.append(addr);
|
||||
return("I2C: " + return_string);
|
||||
}
|
||||
|
||||
std::string RGBFusion2GPUController::GetDeviceName()
|
||||
{
|
||||
return(name);
|
||||
}
|
||||
|
||||
void RGBFusion2GPUController::SaveConfig()
|
||||
{
|
||||
uint8_t data_pkt[8] = { 0xAA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
bus->i2c_write_block(dev, sizeof(data_pkt), data_pkt);
|
||||
}
|
||||
|
||||
void RGBFusion2GPUController::SetMode(uint8_t zone, uint8_t mode, fusion2_config zone_config, uint8_t mystery_flag)
|
||||
{
|
||||
if(zone < 4)
|
||||
{
|
||||
this->zone_color[zone] = zone_config.colors[0];
|
||||
}
|
||||
|
||||
uint8_t zone_pkt[8] = { RGB_FUSION2_GPU_REG_MODE, mode, zone_config.speed, zone_config.brightness, mystery_flag, (uint8_t)(zone + 1), 0x00, 0x00 };
|
||||
bus->i2c_write_block(dev, sizeof(zone_pkt), zone_pkt);
|
||||
|
||||
uint8_t zone_pkt2[8] = { 0 };
|
||||
switch(zone)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
zone_pkt2[0] = RGB_FUSION2_GPU_REG_COLOR_LEFT_MID;
|
||||
zone_pkt2[1] = mode;
|
||||
zone_pkt2[2] = (uint8_t)RGBGetRValue(this->zone_color[0]);
|
||||
zone_pkt2[3] = (uint8_t)RGBGetGValue(this->zone_color[0]);
|
||||
zone_pkt2[4] = (uint8_t)RGBGetBValue(this->zone_color[0]);
|
||||
zone_pkt2[5] = (uint8_t)RGBGetRValue(this->zone_color[1]);
|
||||
zone_pkt2[6] = (uint8_t)RGBGetGValue(this->zone_color[1]);
|
||||
zone_pkt2[7] = (uint8_t)RGBGetBValue(this->zone_color[1]);
|
||||
break;
|
||||
case 2:
|
||||
zone_pkt2[0] = RGB_FUSION2_GPU_REG_COLOR_RIGHT;
|
||||
zone_pkt2[1] = mode;
|
||||
zone_pkt2[2] = (uint8_t)RGBGetRValue(this->zone_color[2]);
|
||||
zone_pkt2[3] = (uint8_t)RGBGetGValue(this->zone_color[2]);
|
||||
zone_pkt2[4] = (uint8_t)RGBGetBValue(this->zone_color[2]);
|
||||
break;
|
||||
default:
|
||||
zone_pkt2[0] = RGB_FUSION2_GPU_REG_COLOR;
|
||||
zone_pkt2[1] = (uint8_t)RGBGetRValue(zone_config.colors[0]);
|
||||
zone_pkt2[2] = (uint8_t)RGBGetGValue(zone_config.colors[0]);
|
||||
zone_pkt2[3] = (uint8_t)RGBGetBValue(zone_config.colors[0]);
|
||||
zone_pkt2[4] = (uint8_t)(zone + 1);
|
||||
break;
|
||||
}
|
||||
bus->i2c_write_block(dev, sizeof(zone_pkt2), zone_pkt2);
|
||||
}
|
||||
|
||||
void RGBFusion2GPUController::SetZone(uint8_t zone, uint8_t mode, fusion2_config zone_config)
|
||||
{
|
||||
std::string mode_name;
|
||||
uint8_t mystery_flag = 0x00;
|
||||
|
||||
switch(mode)
|
||||
{
|
||||
case RGB_FUSION2_GPU_MODE_STATIC:
|
||||
{
|
||||
SetMode(zone, mode, zone_config, mystery_flag);
|
||||
}
|
||||
break;
|
||||
|
||||
case RGB_FUSION2_GPU_MODE_BREATHING:
|
||||
{
|
||||
zone_config.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
SetMode(zone, mode, zone_config, mystery_flag);
|
||||
}
|
||||
break;
|
||||
|
||||
case RGB_FUSION2_GPU_MODE_COLOR_CYCLE:
|
||||
{
|
||||
uint8_t zone_pkt[8] = { RGB_FUSION2_GPU_REG_MODE, mode, zone_config.speed, zone_config.brightness, mystery_flag, (uint8_t)(zone + 1), 0x00, 0x00 };
|
||||
bus->i2c_write_block(dev, sizeof(zone_pkt), zone_pkt);
|
||||
}
|
||||
break;
|
||||
|
||||
case RGB_FUSION2_GPU_MODE_GRADIENT:
|
||||
{
|
||||
mystery_flag = 0x08;
|
||||
SetMode(zone, mode, zone_config, mystery_flag);
|
||||
}
|
||||
break;
|
||||
|
||||
case RGB_FUSION2_GPU_MODE_FLASHING:
|
||||
{
|
||||
SetMode(zone, mode, zone_config, mystery_flag);
|
||||
}
|
||||
break;
|
||||
|
||||
case RGB_FUSION2_GPU_MODE_DUAL_FLASHING:
|
||||
{
|
||||
SetMode(zone, mode, zone_config, mystery_flag);
|
||||
}
|
||||
break;
|
||||
|
||||
case RGB_FUSION2_GPU_MODE_WAVE:
|
||||
{
|
||||
SetMode(zone, mode, zone_config, mystery_flag);
|
||||
}
|
||||
break;
|
||||
|
||||
case RGB_FUSION2_GPU_MODE_COLOR_SHIFT:
|
||||
{
|
||||
mystery_flag = zone_config.numberOfColors;
|
||||
uint8_t zone_pkt[8] = { RGB_FUSION2_GPU_REG_MODE, mode, zone_config.speed, zone_config.brightness, mystery_flag, (uint8_t)(zone + 1), 0x00, 0x00 };
|
||||
bus->i2c_write_block(dev, sizeof(zone_pkt), zone_pkt);
|
||||
|
||||
uint8_t bank = (0xB0 + (zone * 4));
|
||||
uint8_t zone_pktA[8] = { (uint8_t)bank, mode, (uint8_t)RGBGetRValue(zone_config.colors[0]), (uint8_t)RGBGetGValue(zone_config.colors[0]), (uint8_t)RGBGetBValue(zone_config.colors[0]), (uint8_t)RGBGetRValue(zone_config.colors[1]), (uint8_t)RGBGetGValue(zone_config.colors[1]), (uint8_t)RGBGetBValue(zone_config.colors[1]) };
|
||||
bus->i2c_write_block(dev, sizeof(zone_pktA), zone_pktA);
|
||||
uint8_t zone_pktB[8] = { (uint8_t)(bank + 1), mode, (uint8_t)RGBGetRValue(zone_config.colors[2]), (uint8_t)RGBGetGValue(zone_config.colors[2]), (uint8_t)RGBGetBValue(zone_config.colors[2]), (uint8_t)RGBGetRValue(zone_config.colors[3]), (uint8_t)RGBGetGValue(zone_config.colors[3]), (uint8_t)RGBGetBValue(zone_config.colors[3]) };
|
||||
bus->i2c_write_block(dev, sizeof(zone_pktB), zone_pktB);
|
||||
uint8_t zone_pktC[8] = { (uint8_t)(bank + 2), mode, (uint8_t)RGBGetRValue(zone_config.colors[4]), (uint8_t)RGBGetGValue(zone_config.colors[4]), (uint8_t)RGBGetBValue(zone_config.colors[4]), (uint8_t)RGBGetRValue(zone_config.colors[5]), (uint8_t)RGBGetGValue(zone_config.colors[5]), (uint8_t)RGBGetBValue(zone_config.colors[5]) };
|
||||
bus->i2c_write_block(dev, sizeof(zone_pktC), zone_pktC);
|
||||
uint8_t zone_pktD[8] = { (uint8_t)(bank + 3), mode, (uint8_t)RGBGetRValue(zone_config.colors[6]), (uint8_t)RGBGetGValue(zone_config.colors[6]), (uint8_t)RGBGetBValue(zone_config.colors[6]), (uint8_t)RGBGetRValue(zone_config.colors[7]), (uint8_t)RGBGetGValue(zone_config.colors[7]), (uint8_t)RGBGetBValue(zone_config.colors[7]) };
|
||||
bus->i2c_write_block(dev, sizeof(zone_pktD), zone_pktD);
|
||||
}
|
||||
break;
|
||||
|
||||
case RGB_FUSION2_GPU_MODE_TRICOLOR:
|
||||
{
|
||||
mystery_flag = 0x08;
|
||||
uint8_t zone_pkt[8] = { RGB_FUSION2_GPU_REG_MODE, mode, zone_config.speed, zone_config.brightness, mystery_flag, (uint8_t)(zone + 1), 0x00, 0x00 };
|
||||
bus->i2c_write_block(dev, sizeof(zone_pkt), zone_pkt);
|
||||
|
||||
uint8_t bank = (0xB0 + (zone * 4));
|
||||
uint8_t zone_pktA[8] = { (uint8_t)bank, mode, (uint8_t)RGBGetRValue(zone_config.colors[0]), (uint8_t)RGBGetGValue(zone_config.colors[0]), (uint8_t)RGBGetBValue(zone_config.colors[0]), (uint8_t)RGBGetRValue(zone_config.colors[1]), (uint8_t)RGBGetGValue(zone_config.colors[1]), (uint8_t)RGBGetBValue(zone_config.colors[1]) };
|
||||
bus->i2c_write_block(dev, sizeof(zone_pktA), zone_pktA);
|
||||
uint8_t zone_pktB[8] = { (uint8_t)(bank + 1), mode, (uint8_t)RGBGetRValue(zone_config.colors[2]), (uint8_t)RGBGetGValue(zone_config.colors[2]), (uint8_t)RGBGetBValue(zone_config.colors[2]), (uint8_t)RGBGetRValue(zone_config.colors[3]), (uint8_t)RGBGetGValue(zone_config.colors[3]), (uint8_t)RGBGetBValue(zone_config.colors[3]) };
|
||||
bus->i2c_write_block(dev, sizeof(zone_pktB), zone_pktB);
|
||||
uint8_t zone_pktC[8] = { (uint8_t)(bank + 2), mode, (uint8_t)RGBGetRValue(zone_config.colors[4]), (uint8_t)RGBGetGValue(zone_config.colors[4]), (uint8_t)RGBGetBValue(zone_config.colors[4]), (uint8_t)RGBGetRValue(zone_config.colors[5]), (uint8_t)RGBGetGValue(zone_config.colors[5]), (uint8_t)RGBGetBValue(zone_config.colors[5]) };
|
||||
bus->i2c_write_block(dev, sizeof(zone_pktC), zone_pktC);
|
||||
uint8_t zone_pktD[8] = { (uint8_t)(bank + 3), mode, (uint8_t)RGBGetRValue(zone_config.colors[6]), (uint8_t)RGBGetGValue(zone_config.colors[6]), (uint8_t)RGBGetBValue(zone_config.colors[6]), (uint8_t)RGBGetRValue(zone_config.colors[7]), (uint8_t)RGBGetGValue(zone_config.colors[7]), (uint8_t)RGBGetBValue(zone_config.colors[7]) };
|
||||
bus->i2c_write_block(dev, sizeof(zone_pktD), zone_pktD);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
{
|
||||
LOG_TRACE("[%s] Mode %02d not found", "fusion2 gpu", mode);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
/*---------------------------------------------------------*\
|
||||
| GigabyteRGBFusion2GPUController.h |
|
||||
| |
|
||||
| Driver for Gigabyte Aorus RGB Fusion 2 GPU |
|
||||
| |
|
||||
| This file is part of the OpenRGB project |
|
||||
| SPDX-License-Identifier: GPL-2.0-or-later |
|
||||
\*---------------------------------------------------------*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include "i2c_smbus.h"
|
||||
#include "RGBController.h"
|
||||
|
||||
typedef unsigned char rgb_fusion_dev_id;
|
||||
|
||||
struct fusion2_config
|
||||
{
|
||||
uint8_t brightness;
|
||||
RGBColor colors[8];
|
||||
uint8_t numberOfColors;
|
||||
uint8_t speed;
|
||||
uint8_t direction;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
RGB_FUSION2_GPU_REG_COLOR = 0x40,
|
||||
RGB_FUSION2_GPU_REG_MODE = 0x88,
|
||||
RGB_FUSION2_GPU_REG_COLOR_LEFT_MID = 0xB0,
|
||||
RGB_FUSION2_GPU_REG_COLOR_RIGHT = 0xB1
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
RGB_FUSION2_GPU_MODE_STATIC = 0x01,
|
||||
RGB_FUSION2_GPU_MODE_BREATHING = 0x02,
|
||||
RGB_FUSION2_GPU_MODE_COLOR_CYCLE = 0x03,
|
||||
RGB_FUSION2_GPU_MODE_FLASHING = 0x04,
|
||||
RGB_FUSION2_GPU_MODE_GRADIENT = 0x05,
|
||||
RGB_FUSION2_GPU_MODE_COLOR_SHIFT = 0x06,
|
||||
RGB_FUSION2_GPU_MODE_WAVE = 0x07,
|
||||
RGB_FUSION2_GPU_MODE_DUAL_FLASHING = 0x08,
|
||||
RGB_FUSION2_GPU_MODE_TRICOLOR = 0x0B
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
RGB_FUSION2_GPU_SPEED_SLOWEST = 0x00,
|
||||
RGB_FUSION2_GPU_SPEED_NORMAL = 0x02,
|
||||
RGB_FUSION2_GPU_SPEED_FASTEST = 0x05
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
RGB_FUSION2_GPU_BRIGHTNESS_MIN = 0x00,
|
||||
RGB_FUSION2_GPU_BRIGHTNESS_MAX = 0x63
|
||||
};
|
||||
|
||||
class RGBFusion2GPUController
|
||||
{
|
||||
public:
|
||||
RGBFusion2GPUController(i2c_smbus_interface* bus, rgb_fusion_dev_id dev, std::string dev_name);
|
||||
~RGBFusion2GPUController();
|
||||
|
||||
RGBColor zone_color[4];
|
||||
|
||||
std::string GetDeviceLocation();
|
||||
std::string GetDeviceName();
|
||||
|
||||
void SaveConfig();
|
||||
|
||||
void SetZone(uint8_t zone, uint8_t mode, fusion2_config zone_config);
|
||||
void SetMode(uint8_t zone, uint8_t mode, fusion2_config zone_config, uint8_t mystery_flag);
|
||||
|
||||
private:
|
||||
i2c_smbus_interface* bus;
|
||||
rgb_fusion_dev_id dev;
|
||||
std::string name;
|
||||
};
|
||||
+205
@@ -0,0 +1,205 @@
|
||||
/*---------------------------------------------------------*\
|
||||
| GigabyteRGBFusion2GPUControllerDetect.cpp |
|
||||
| |
|
||||
| Detector for Gigabyte Aorus RGB Fusion 2 GPU |
|
||||
| |
|
||||
| This file is part of the OpenRGB project |
|
||||
| SPDX-License-Identifier: GPL-2.0-or-later |
|
||||
\*---------------------------------------------------------*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "Detector.h"
|
||||
#include "GigabyteRGBFusion2GPUController.h"
|
||||
#include "LogManager.h"
|
||||
#include "RGBController_GigabyteRGBFusion2GPU.h"
|
||||
#include "i2c_amd_gpu.h"
|
||||
#include "i2c_smbus.h"
|
||||
#include "pci_ids.h"
|
||||
|
||||
#define GIGABYTEGPU_CONTROLLER_NAME2 "Gigabyte RGB Fusion2 GPU"
|
||||
|
||||
/******************************************************************************************\
|
||||
* *
|
||||
* TestForGigabyteRGBFusion2GPUController *
|
||||
* *
|
||||
* Tests the given address to see if an RGB Fusion2 controller exists there. First *
|
||||
* does a quick write to test for a response *
|
||||
* *
|
||||
\******************************************************************************************/
|
||||
|
||||
bool TestForGigabyteRGBFusion2GPUController(i2c_smbus_interface* bus, unsigned char address)
|
||||
{
|
||||
if(bus->pci_vendor == AMD_GPU_VEN && !is_amd_gpu_i2c_bus(bus))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool pass = false;
|
||||
int res, pktsz;
|
||||
const int read_sz = 4;
|
||||
const int write_sz = 8;
|
||||
uint8_t data_pkt[write_sz] = { 0xAB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
|
||||
uint8_t data_readpkt[read_sz] = {};
|
||||
|
||||
res = bus->i2c_write_block(address, write_sz, data_pkt);
|
||||
|
||||
pass = true;
|
||||
|
||||
pktsz = read_sz;
|
||||
res = bus->i2c_read_block(address, &pktsz, data_readpkt);
|
||||
|
||||
//What we have seen returned so far...
|
||||
//GeForce RTX 3070 AORUS MASTER 8G 0xAB 0x11 0x52 0x03
|
||||
//GeForce RTX 3060 Ti GAMING OC PRO 8G 0xAB 0x10 0x01 0x02
|
||||
//GeForce RTX 3070 AORUS ELITE 12G 0xAB 0x11 0x52 0x03
|
||||
//GeForce RTX 3080 Ti AORUS XTREME WATERFORCE 12G 0xAB 0x11 0x01 0x00
|
||||
//GeForce RTX 3080 Ti AORUS XTREME WATERFORCE 12G LHS 0xAB 0x11 0x52 0x00
|
||||
//GeForce RTX 3080 AORUS XTREME WATERFORCE WB 10G 0xAB 0x10 0x01 0x00
|
||||
//GeForce RTX 4080 Gigabyte AORUS MASTER 16G 0xAB 0x10 0x52 0x07
|
||||
//Note that GeForce RTX 3080 Ti AORUS XTREME WATERFORCE 12G LHS exposes three i2c buses but only one returns a 0xAB
|
||||
//response and controls the RGB lighting. The other buses return 0x00 0x00 0x00 0x00.
|
||||
//Note that GeForce RTX 4080 Gigabyte AORUS MASTER 16G exposes two i2c bus with writable address 0x71 but one respond
|
||||
//0x00 0x00 0x00 0x00 so it should be the one controlling the LCD screen. So we skip this bus
|
||||
|
||||
//All seen responses start with 0xAB, so we check for this.
|
||||
if(res < 0 || data_readpkt[0] != 0xAB)
|
||||
{
|
||||
// Assemble C-string with respons for debugging
|
||||
std::string text = "";
|
||||
|
||||
for(int idx = 0; idx < read_sz; ++idx)
|
||||
{
|
||||
char str[6];
|
||||
snprintf(str, 6, " 0x%02X", data_readpkt[idx]);
|
||||
text.append(str);
|
||||
}
|
||||
|
||||
LOG_DEBUG("[%s] at address 0x%02X invalid. Expected 0xAB [0x*] but received:%s", GIGABYTEGPU_CONTROLLER_NAME2, address, text.c_str());
|
||||
pass = false;
|
||||
}
|
||||
|
||||
return(pass);
|
||||
} /* TestForRGBFusion2GPUController() */
|
||||
|
||||
/*******************************************************************************************\
|
||||
* *
|
||||
* DetectRGBFusion2GPUControllers *
|
||||
* *
|
||||
* Detect GigabyteRGB Fusion2 controllers on the enumerated I2C busses at address 0x70.*
|
||||
* *
|
||||
* bus - pointer to i2c_smbus_interface where RGB Fusion2 device is connected *
|
||||
* dev - I2C address of RGB Fusion2 device *
|
||||
* *
|
||||
\*******************************************************************************************/
|
||||
|
||||
void DetectGigabyteRGBFusion2GPUControllers(i2c_smbus_interface* bus, uint8_t i2c_addr, const std::string& name)
|
||||
{
|
||||
// Check for RGB Fusion2 controller
|
||||
if(TestForGigabyteRGBFusion2GPUController(bus, i2c_addr))
|
||||
{
|
||||
RGBFusion2GPUController* controller = new RGBFusion2GPUController(bus, i2c_addr, name);
|
||||
RGBController_RGBFusion2GPU* rgb_controller = new RGBController_RGBFusion2GPU(controller);
|
||||
|
||||
ResourceManager::get()->RegisterRGBController(rgb_controller);
|
||||
}
|
||||
} /* DetectGigabyteRGBFusion2GPUControllers() */
|
||||
|
||||
/*-----------------------------------------*\
|
||||
| Nvidia GPUs |
|
||||
\*-----------------------------------------*/
|
||||
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2060 SUPER", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2060S_OC_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2060S_V1_SUB_DEV_H, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2060 SUPER", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2060S_OC_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2060S_V1_SUB_DEV_P, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2070", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2070_OC_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2070_SUB_DEV, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2070 XTREME", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2070_OC_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2070_XTREME_SUB_DEV_H, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2070 XTREME", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2070_OC_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2070_XTREME_SUB_DEV_P, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2070 SUPER", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2070S_OC_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2070S_8G_SUB_DEV_H, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2070 SUPER", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2070S_OC_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2070S_8G_SUB_DEV_P, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2080", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080_A_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080_SUB_DEV_H, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2080", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080_A_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080_SUB_DEV_P, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2080 XTREME", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080_A_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080_XTREME_SUB_DEV_H, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2080 XTREME", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080_A_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080_XTREME_SUB_DEV_P, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2080 SUPER", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080S_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080S_SUB_DEV_H, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2080 SUPER", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080S_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080S_SUB_DEV_P, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2080 SUPER Waterforce WB", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080S_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080S_WATERFORCE_WB_SUB_DEV_H,0x51);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2080 SUPER Waterforce WB", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080S_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080S_WATERFORCE_WB_SUB_DEV_P,0x51);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2080 SUPER Waterforce", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080S_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080S_WATERFORCE_SUB_DEV_H, 0x08);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2080 SUPER Waterforce", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080S_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080S_WATERFORCE_SUB_DEV_P, 0x08);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2080 Ti XTREME", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080TI_A_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080TI_EXTREME_SUB_DEV_H, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 2080 Ti XTREME", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX2080TI_A_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX2080TI_EXTREME_SUB_DEV_P, 0x50);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 3060 ELITE", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_GA104_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060_ELITE_12GB_SUB_DEV, 0x70);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 3060 ELITE Rev A1", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_GA106_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060_ELITE_12GB_SUB_DEV, 0x70);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 3060 ELITE LHR", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060_LHR_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060_ELITE_12GB_SUB_DEV, 0x70);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 3060 Ti ELITE LHR", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060TI_ELITE_8GB_SUB_DEV, 0x70);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 3060 Ti GAMING OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_GDDR6X_DEV,GIGABYTE_SUB_VEN, GIGABYTE_RTX3060TI_GAMING_OC_8G_SUB_DEV, 0x62);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 3060 Ti GAMING OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060TI_GAMING_OC_SUB_DEV, 0x62);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 3060 Ti GAMING OC LHR Rev 2", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060TI_GAMING_OC_SUB_DEV, 0x32);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 3060 Ti GAMING OC LHR", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060TI_GAMING_OC_SUB_DEV, 0x62);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 3060 Ti GAMING OC PRO", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060TI_GAMING_OC_PRO_SUB_DEV, 0x62);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 3060 Ti Gaming OC PRO LHR", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3060TI_LHR_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3060TI_GAMING_OC_PRO_SUB_DEV, 0x62);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 3070 MASTER", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3070_MASTER_OC_SUB_DEV, 0x66);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 3070 MASTER LHR", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3070_LHR_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3070_MASTER_OC_SUB_DEV, 0x66);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 3070 Ti MASTER", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3070TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX3070TI_MASTER_8G_SUB_DEV, 0x70);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 3080 XTREME WATERFORCE WB", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3080_XTREME_WATERFORCE_SUB_DEV, 0x64);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 3080 XTREME WATERFORCE WB", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_LHR_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3080_XTREME_WATERFORCE_SUB_DEV, 0x64);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 3080 XTREME WATERFORCE V2", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_LHR_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3080_XTREME_WATERFORCE_V2_SUB_DEV, 0x65);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 3080 12G XTREME WATERFORCE WB", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3080_12G_LHR_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3080_XTREME_WATERFORCE_12G_SUB_DEV, 0x64);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 3080 Ti Vision OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3080TI_VISION_OC_SUB_DEV, 0x63);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 3080 Ti XTREME WATERFORCE", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3080TI_XTREME_WATERFORCE_SUB_DEV, 0x65);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 3080 Ti XTREME WATERFORCE", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3080TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3080TI_XTREME_WATERFORCE_SUB_DEV2, 0x64);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 3090 VISION OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3090_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3090_VISION_OC_24G_SUB_DEV, 0x63);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 3090 XTREME WATERFORCE", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3090_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3090_XTREME_WATERFORCE_SUB_DEV, 0x65);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 3090 XTREME WATERFORCE WB", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX3090_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX3090_XTREME_WATERFORCE_WB_SUB_DEV, 0x64);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 GAMING OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070_GAMING_OC_12G, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 GAMING OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070_GAMING_OC_12G_V2, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 GAMING OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070_AD103_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070_GAMING_OC_12G_V2, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Geforce RTX 4070 Aero OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070_AERO_OC_12G_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 SUPER GAMING OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070S_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070S_GAMING_OC_12G, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 SUPER Aero OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070S_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070S_AERO_OC_12G, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 SUPER Eagle OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070S_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070S_EAGLE_OC_ICE_12G, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 Ti GAMING", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070TI_GAMING_12G, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 Ti GAMING OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070TI_GAMING_OC_12G, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 Ti GAMING OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070TI_GAMING_OC_12G_SUB_DEV2, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 Ti Eagle", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070TI_EAGLE_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 Ti Eagle OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070TI_EAGLE_OC_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 Eagle OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070_EAGLE_OC_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 Ti Eagle OC Rev 2", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070TI_EAGLE_OC_V2_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 Ti Master", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070TI_MASTER_12G, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 4070 Ti ELITE", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TI_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070TI_ELITE_12G, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4070 Ti SUPER GAMING OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4070TIS_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4070TIS_GAMING_OC_16G_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4080 AERO OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4080_AERO_OC_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4080 Eagle OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4080_EAGLE_OC_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4080 SUPER GAMING OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4080S_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4080S_GAMING_OC_16GB_SUB_DEV, 0x72);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4080 SUPER AERO OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4080S_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4080S_AERO_OC_16GB_SUB_DEV, 0x72);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4080 GAMING OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4080_GAMING_OC_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 4080 MASTER", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4080_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX4080_MASTER_16G_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4090 AERO OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4090_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4090_AERO_OC_24G_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 4090 GAMING OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4090_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX4090_GAMING_OC_24G_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 4090 MASTER", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX4090_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX4090_MASTER_24G_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 5090 D MASTER", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX5090D_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX5090D_MASTER_32G_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte GeForce RTX 5090 GAMING OC", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX5090D_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RTX5090_GAMING_OC_32G_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 5090 MASTER", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX5090_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX5090_MASTER_32G_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS GeForce RTX 5090 MASTER ICE", DetectGigabyteRGBFusion2GPUControllers, NVIDIA_VEN, NVIDIA_RTX5090_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RTX5090_MASTER_ICE_32G_SUB_DEV, 0x71);
|
||||
|
||||
/*-----------------------------------------*\
|
||||
| AMD GPUs |
|
||||
\*-----------------------------------------*/
|
||||
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 7600 GAMING OC 8G", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI33_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RX7600_GAMING_OC_8G_SUB_DEV, 0x55);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 7600 GAMING OC 8G", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI33_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RX7600_GAMING_OC_8G_SUB_DEV2, 0x55);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 7600 XT GAMING OC 16G", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI33_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RX7600XT_GAMING_OC_16G_SUB_DEV, 0x55);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 6700 XT GAMING OC 12G", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI22_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RX6700XT_GAMING_OC_12G_SUB_DEV, 0x62);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 6800 XT GAMING OC", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI21_DEV1, GIGABYTE_SUB_VEN, GIGABYTE_RX6800XT_GAMING_OC_SUB_DEV, 0x62);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 6900 XT GAMING OC", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI21_DEV1, GIGABYTE_SUB_VEN, GIGABYTE_RX6900XT_GAMING_OC_SUB_DEV, 0x62);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 7700 XT GAMING OC", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI32_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RX7700XT_GAMING_OC_SUB_DEV, 0x62);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 7800 XT GAMING OC", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI32_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RX7800XT_GAMING_OC_16G_SUB_DEV, 0x62);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 7900 GRE GAMING OC", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI31_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RX7900GRE_GAMING_OC_16G_SUB_DEV, 0x62);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 7900 XT GAMING OC", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI31_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RX7900XT_GAMING_OC_20G_SUB_DEV, 0x62);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 7900 XTX GAMING OC", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI31_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RX7900XTX_GAMING_OC_24G_SUB_DEV, 0x62);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS Radeon RX 7900 XTX ELITE 24G", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI31_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RX7900XTX_ELITE_24G_SUB_DEV, 0x71);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS RX 6750 XT ELITE 12G", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI22_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RX_6750_XT_ELITE_12G_SUB_DEV, 0x70);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS RX 6900 XT EXTREME WATERFORCE WB", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI21_DEV2, GIGABYTE_SUB_VEN, GIGABYTE_RX6900XT_XTREME_WATERFORCE_WB_SUB_DEV, 0x70);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte AORUS Radeon RX 9070 XT Elite", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI48_DEV, GIGABYTE_SUB_VEN, GIGABYTE_AORUS_RX9070XT_ELITE_16G_SUB_DEV, 0x73);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 9070 XT GAMING OC", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI48_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RX9070XT_GAMING_OC_16G_SUB_DEV, 0x73);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 9070 XT GAMING OC ICE", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI48_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RX9070XT_GAMING_OC_ICE_16G_SUB_DEV, 0x73);
|
||||
REGISTER_I2C_PCI_DETECTOR("Gigabyte Radeon RX 9070 GAMING OC", DetectGigabyteRGBFusion2GPUControllers, AMD_GPU_VEN, AMD_NAVI48_DEV, GIGABYTE_SUB_VEN, GIGABYTE_RX9070_GAMING_OC_16G_SUB_DEV, 0x73);
|
||||
@@ -0,0 +1,246 @@
|
||||
/*---------------------------------------------------------*\
|
||||
| RGBController_GigabyteRGBFusion2GPU.cpp |
|
||||
| |
|
||||
| RGBController for Gigabyte Aorus RGB Fusion 2 GPU |
|
||||
| |
|
||||
| This file is part of the OpenRGB project |
|
||||
| SPDX-License-Identifier: GPL-2.0-or-later |
|
||||
\*---------------------------------------------------------*/
|
||||
|
||||
#include "RGBController_GigabyteRGBFusion2GPU.h"
|
||||
#include "LogManager.h"
|
||||
|
||||
/**------------------------------------------------------------------*\
|
||||
@name Gigabyte Fusion 2 GPU
|
||||
@category GPU
|
||||
@type I2C
|
||||
@save :white_check_mark:
|
||||
@direct :white_check_mark:
|
||||
@effects :white_check_mark:
|
||||
@detectors DetectGigabyteRGBFusion2GPUControllers
|
||||
@comment
|
||||
\*-------------------------------------------------------------------*/
|
||||
|
||||
RGBController_RGBFusion2GPU::RGBController_RGBFusion2GPU(RGBFusion2GPUController* controller_ptr)
|
||||
{
|
||||
controller = controller_ptr;
|
||||
|
||||
name = controller->GetDeviceName();
|
||||
vendor = "Gigabyte";
|
||||
description = "Gigabyte RGB Fusion 2 GPU Device";
|
||||
location = controller->GetDeviceLocation();
|
||||
type = DEVICE_TYPE_GPU;
|
||||
|
||||
mode Direct;
|
||||
Direct.name = "Direct";
|
||||
Direct.value = RGB_FUSION2_GPU_MODE_STATIC;
|
||||
Direct.flags = MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
|
||||
Direct.color_mode = MODE_COLORS_PER_LED;
|
||||
Direct.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN;
|
||||
Direct.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
Direct.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
modes.push_back(Direct);
|
||||
|
||||
mode Breathing;
|
||||
Breathing.name = "Pulse";
|
||||
Breathing.value = RGB_FUSION2_GPU_MODE_BREATHING;
|
||||
Breathing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_MANUAL_SAVE;
|
||||
Breathing.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST;
|
||||
Breathing.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST;
|
||||
Breathing.speed = RGB_FUSION2_GPU_SPEED_NORMAL;
|
||||
Breathing.color_mode = MODE_COLORS_PER_LED;
|
||||
Breathing.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN;
|
||||
Breathing.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
Breathing.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
modes.push_back(Breathing);
|
||||
|
||||
mode Flashing;
|
||||
Flashing.name = "Flash";
|
||||
Flashing.value = RGB_FUSION2_GPU_MODE_FLASHING;
|
||||
Flashing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
|
||||
Flashing.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST;
|
||||
Flashing.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST;
|
||||
Flashing.speed = RGB_FUSION2_GPU_SPEED_NORMAL;
|
||||
Flashing.color_mode = MODE_COLORS_PER_LED;
|
||||
Flashing.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN;
|
||||
Flashing.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
Flashing.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
modes.push_back(Flashing);
|
||||
|
||||
mode DualFlashing;
|
||||
DualFlashing.name = "Double Flash";
|
||||
DualFlashing.value = RGB_FUSION2_GPU_MODE_DUAL_FLASHING;
|
||||
DualFlashing.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
|
||||
DualFlashing.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST;
|
||||
DualFlashing.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST;
|
||||
DualFlashing.speed = RGB_FUSION2_GPU_SPEED_NORMAL;
|
||||
DualFlashing.color_mode = MODE_COLORS_PER_LED;
|
||||
DualFlashing.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN;
|
||||
DualFlashing.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
DualFlashing.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
modes.push_back(DualFlashing);
|
||||
|
||||
mode SpectrumCycle;
|
||||
SpectrumCycle.name = "Color Cycle";
|
||||
SpectrumCycle.value = RGB_FUSION2_GPU_MODE_COLOR_CYCLE;
|
||||
SpectrumCycle.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS;;
|
||||
SpectrumCycle.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST;
|
||||
SpectrumCycle.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST;
|
||||
SpectrumCycle.speed = RGB_FUSION2_GPU_SPEED_NORMAL;
|
||||
SpectrumCycle.color_mode = MODE_COLORS_NONE;
|
||||
SpectrumCycle.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN;
|
||||
SpectrumCycle.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
SpectrumCycle.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
modes.push_back(SpectrumCycle);
|
||||
|
||||
mode Gradient;
|
||||
Gradient.name = "Gradient";
|
||||
Gradient.value = RGB_FUSION2_GPU_MODE_GRADIENT;
|
||||
Gradient.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_PER_LED_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
|
||||
Gradient.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST;
|
||||
Gradient.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST;
|
||||
Gradient.speed = RGB_FUSION2_GPU_SPEED_NORMAL;
|
||||
Gradient.color_mode = MODE_COLORS_PER_LED;
|
||||
Gradient.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN;
|
||||
Gradient.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
Gradient.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
modes.push_back(Gradient);
|
||||
|
||||
mode Wave;
|
||||
Wave.name = "Wave";
|
||||
Wave.value = RGB_FUSION2_GPU_MODE_WAVE;
|
||||
Wave.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
|
||||
Wave.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST;
|
||||
Wave.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST;
|
||||
Wave.speed = RGB_FUSION2_GPU_SPEED_NORMAL;
|
||||
Wave.color_mode = MODE_COLORS_NONE;
|
||||
Wave.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN;
|
||||
Wave.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
Wave.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
modes.push_back(Wave);
|
||||
|
||||
mode Shift;
|
||||
Shift.name = "Color Shift";
|
||||
Shift.value = RGB_FUSION2_GPU_MODE_COLOR_SHIFT;
|
||||
Shift.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
|
||||
Shift.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST;
|
||||
Shift.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST;
|
||||
Shift.speed = RGB_FUSION2_GPU_SPEED_NORMAL;
|
||||
Shift.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
Shift.colors_min = 1;
|
||||
Shift.colors_max = 8;
|
||||
Shift.colors.resize(8);
|
||||
Shift.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN;
|
||||
Shift.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
Shift.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
modes.push_back(Shift);
|
||||
|
||||
mode Tricolor;
|
||||
Tricolor.name = "Tricolor";
|
||||
Tricolor.value = RGB_FUSION2_GPU_MODE_TRICOLOR;
|
||||
Tricolor.flags = MODE_FLAG_HAS_SPEED | MODE_FLAG_HAS_MODE_SPECIFIC_COLOR | MODE_FLAG_HAS_BRIGHTNESS | MODE_FLAG_MANUAL_SAVE;
|
||||
Tricolor.speed_min = RGB_FUSION2_GPU_SPEED_SLOWEST;
|
||||
Tricolor.speed_max = RGB_FUSION2_GPU_SPEED_FASTEST;
|
||||
Tricolor.speed = RGB_FUSION2_GPU_SPEED_NORMAL;
|
||||
Tricolor.color_mode = MODE_COLORS_MODE_SPECIFIC;
|
||||
Tricolor.colors_min = 1;
|
||||
Tricolor.colors_max = 3;
|
||||
Tricolor.colors.resize(3);
|
||||
Tricolor.brightness_min = RGB_FUSION2_GPU_BRIGHTNESS_MIN;
|
||||
Tricolor.brightness_max = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
Tricolor.brightness = RGB_FUSION2_GPU_BRIGHTNESS_MAX;
|
||||
modes.push_back(Tricolor);
|
||||
|
||||
SetupZones();
|
||||
}
|
||||
|
||||
RGBController_RGBFusion2GPU::~RGBController_RGBFusion2GPU()
|
||||
{
|
||||
delete controller;
|
||||
}
|
||||
|
||||
void RGBController_RGBFusion2GPU::SetupZones()
|
||||
{
|
||||
/*---------------------------------------------------------*\
|
||||
| This device only allows setting the entire zone for all |
|
||||
| LED's in the zone and does not allow per LED control. |
|
||||
\*---------------------------------------------------------*/
|
||||
|
||||
for(uint8_t zone_idx = 0; zone_idx < RGB_FUSION_2_GPU_NUMBER_OF_ZONES; zone_idx++)
|
||||
{
|
||||
zone new_zone;
|
||||
led new_led;
|
||||
|
||||
new_zone.name = "GPU zone " + std::to_string(zone_idx + 1);
|
||||
new_zone.type = ZONE_TYPE_SINGLE;
|
||||
new_zone.leds_min = 1;
|
||||
new_zone.leds_max = 1;
|
||||
new_zone.leds_count = 1;
|
||||
new_zone.matrix_map = NULL;
|
||||
|
||||
new_led.name = new_zone.name;
|
||||
|
||||
/*---------------------------------------------------------*\
|
||||
| Push the zone and LED on to device vectors |
|
||||
\*---------------------------------------------------------*/
|
||||
leds.push_back(new_led);
|
||||
zones.push_back(new_zone);
|
||||
}
|
||||
|
||||
SetupColors();
|
||||
}
|
||||
|
||||
void RGBController_RGBFusion2GPU::ResizeZone(int /*zone*/, int /*new_size*/)
|
||||
{
|
||||
/*---------------------------------------------------------*\
|
||||
| This device does not support resizing zones |
|
||||
\*---------------------------------------------------------*/
|
||||
}
|
||||
|
||||
void RGBController_RGBFusion2GPU::DeviceUpdateLEDs()
|
||||
{
|
||||
fusion2_config zone_config;
|
||||
|
||||
zone_config.brightness = modes[active_mode].brightness;
|
||||
zone_config.speed = modes[active_mode].speed;
|
||||
zone_config.direction = modes[active_mode].direction;
|
||||
zone_config.numberOfColors = (uint8_t)modes[active_mode].colors.size();
|
||||
|
||||
for(uint8_t zone_idx = 0; zone_idx < RGB_FUSION_2_GPU_NUMBER_OF_ZONES; zone_idx++)
|
||||
{
|
||||
zone_config.colors[0] = colors[zone_idx];
|
||||
|
||||
if (modes[active_mode].color_mode == MODE_COLORS_MODE_SPECIFIC)
|
||||
{
|
||||
for (uint8_t i = 0; i < zone_config.numberOfColors; i++)
|
||||
{
|
||||
zone_config.colors[i] = modes[active_mode].colors[i];
|
||||
}
|
||||
}
|
||||
|
||||
controller->SetZone(zone_idx, modes[active_mode].value, zone_config);
|
||||
}
|
||||
}
|
||||
|
||||
void RGBController_RGBFusion2GPU::UpdateZoneLEDs(int zone)
|
||||
{
|
||||
LOG_TRACE("[%s] Update zone #%d", name.c_str(), zone);
|
||||
DeviceUpdateLEDs();
|
||||
}
|
||||
|
||||
void RGBController_RGBFusion2GPU::UpdateSingleLED(int led)
|
||||
{
|
||||
LOG_TRACE("[%s] Update single led : %d", name.c_str(), led);
|
||||
DeviceUpdateLEDs();
|
||||
}
|
||||
|
||||
void RGBController_RGBFusion2GPU::DeviceUpdateMode()
|
||||
{
|
||||
LOG_TRACE("[%s] Switching to mode %s @ brightness %d and speed %d", name.c_str(), modes[active_mode].name.c_str(), modes[active_mode].brightness, modes[active_mode].speed);
|
||||
DeviceUpdateLEDs();
|
||||
}
|
||||
|
||||
void RGBController_RGBFusion2GPU::DeviceSaveMode()
|
||||
{
|
||||
controller->SaveConfig();
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
/*---------------------------------------------------------*\
|
||||
| RGBController_GigabyteRGBFusion2GPU.h |
|
||||
| |
|
||||
| RGBController for Gigabyte Aorus RGB Fusion 2 GPU |
|
||||
| |
|
||||
| This file is part of the OpenRGB project |
|
||||
| SPDX-License-Identifier: GPL-2.0-or-later |
|
||||
\*---------------------------------------------------------*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "RGBController.h"
|
||||
#include "GigabyteRGBFusion2GPUController.h"
|
||||
|
||||
#define RGB_FUSION_2_GPU_NUMBER_OF_ZONES 5
|
||||
|
||||
class RGBController_RGBFusion2GPU : public RGBController
|
||||
{
|
||||
public:
|
||||
RGBController_RGBFusion2GPU(RGBFusion2GPUController* controller_ptr);
|
||||
~RGBController_RGBFusion2GPU();
|
||||
|
||||
void SetupZones();
|
||||
|
||||
void ResizeZone(int zone, int new_size);
|
||||
|
||||
void DeviceUpdateLEDs();
|
||||
void UpdateZoneLEDs(int zone);
|
||||
void UpdateSingleLED(int led);
|
||||
|
||||
void DeviceUpdateMode();
|
||||
void DeviceSaveMode();
|
||||
|
||||
private:
|
||||
RGBFusion2GPUController* controller;
|
||||
};
|
||||
Reference in New Issue
Block a user