amdgpu: move asic id table to a separate file
v2: fix an off by one error and leading white spaces v3: use thread safe strtok_r(); initialize len before calling getline(); change printf() to drmMsg(); add initial amdgpu.ids v4: integrate some recent internal changes, including format changes v5: fix line number for empty/commented lines; realloc to save memory; indentation changes v6: remove a line error v7: [Michel Dänzer] * Move amdgpu.ids to new data directory * Remove placeholder entries from amdgpu.ids * Set libdrmdatadir variable in configure.ac instead of Makefile.am [Emil Velikov] * Use isblank() instead of open-coding it [Emil Velikov] * Don't leak asic_id_table memory if realloc fails [Emil Velikov] * Check and bump table_max_size at the beginning of the while loop [Emil Velikov] * Initialize table_max_size to the number of entries in data/amdgpu.ids v8: [Michel Dänzer] * Make sure amdgpu_asic_id.c gets rebuilt when amdgpu.ids changes Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Samuel Li <Samuel.Li@amd.com>main
parent
87dac00db3
commit
7e6bf88cac
|
@ -109,6 +109,7 @@ SUBDIRS = \
|
||||||
$(TEGRA_SUBDIR) \
|
$(TEGRA_SUBDIR) \
|
||||||
$(VC4_SUBDIR) \
|
$(VC4_SUBDIR) \
|
||||||
$(ETNAVIV_SUBDIR) \
|
$(ETNAVIV_SUBDIR) \
|
||||||
|
data \
|
||||||
tests \
|
tests \
|
||||||
$(MAN_SUBDIR)
|
$(MAN_SUBDIR)
|
||||||
|
|
||||||
|
|
|
@ -30,12 +30,19 @@ AM_CFLAGS = \
|
||||||
$(PTHREADSTUBS_CFLAGS) \
|
$(PTHREADSTUBS_CFLAGS) \
|
||||||
-I$(top_srcdir)/include/drm
|
-I$(top_srcdir)/include/drm
|
||||||
|
|
||||||
|
libdrmdatadir = @libdrmdatadir@
|
||||||
|
ASIC_ID_TABLE_NUM_ENTRIES := $(shell egrep -ci '^[0-9a-f]{4},.*[0-9a-f]+,' \
|
||||||
|
$(top_srcdir)/data/amdgpu.ids)
|
||||||
|
AM_CPPFLAGS = -DAMDGPU_ASIC_ID_TABLE=\"${libdrmdatadir}/amdgpu.ids\" \
|
||||||
|
-DAMDGPU_ASIC_ID_TABLE_NUM_ENTRIES=$(ASIC_ID_TABLE_NUM_ENTRIES)
|
||||||
|
|
||||||
libdrm_amdgpu_la_LTLIBRARIES = libdrm_amdgpu.la
|
libdrm_amdgpu_la_LTLIBRARIES = libdrm_amdgpu.la
|
||||||
libdrm_amdgpu_ladir = $(libdir)
|
libdrm_amdgpu_ladir = $(libdir)
|
||||||
libdrm_amdgpu_la_LDFLAGS = -version-number 1:0:0 -no-undefined
|
libdrm_amdgpu_la_LDFLAGS = -version-number 1:0:0 -no-undefined
|
||||||
libdrm_amdgpu_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
|
libdrm_amdgpu_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
|
||||||
|
|
||||||
libdrm_amdgpu_la_SOURCES = $(LIBDRM_AMDGPU_FILES)
|
libdrm_amdgpu_la_SOURCES = $(LIBDRM_AMDGPU_FILES)
|
||||||
|
amdgpu_asic_id.lo: $(top_srcdir)/data/amdgpu.ids
|
||||||
|
|
||||||
libdrm_amdgpuincludedir = ${includedir}/libdrm
|
libdrm_amdgpuincludedir = ${includedir}/libdrm
|
||||||
libdrm_amdgpuinclude_HEADERS = $(LIBDRM_AMDGPU_H_FILES)
|
libdrm_amdgpuinclude_HEADERS = $(LIBDRM_AMDGPU_H_FILES)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
LIBDRM_AMDGPU_FILES := \
|
LIBDRM_AMDGPU_FILES := \
|
||||||
amdgpu_asic_id.h \
|
amdgpu_asic_id.c \
|
||||||
amdgpu_bo.c \
|
amdgpu_bo.c \
|
||||||
amdgpu_cs.c \
|
amdgpu_cs.c \
|
||||||
amdgpu_device.c \
|
amdgpu_device.c \
|
||||||
|
|
|
@ -0,0 +1,219 @@
|
||||||
|
/*
|
||||||
|
* Copyright © 2017 Advanced Micro Devices, Inc.
|
||||||
|
* All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
* to deal in the Software without restriction, including without limitation
|
||||||
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
* OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_CONFIG_H
|
||||||
|
#include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <ctype.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include "xf86drm.h"
|
||||||
|
#include "amdgpu_drm.h"
|
||||||
|
#include "amdgpu_internal.h"
|
||||||
|
|
||||||
|
static int parse_one_line(const char *line, struct amdgpu_asic_id *id)
|
||||||
|
{
|
||||||
|
char *buf, *saveptr;
|
||||||
|
char *s_did;
|
||||||
|
char *s_rid;
|
||||||
|
char *s_name;
|
||||||
|
char *endptr;
|
||||||
|
int r = 0;
|
||||||
|
|
||||||
|
buf = strdup(line);
|
||||||
|
if (!buf)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
/* ignore empty line and commented line */
|
||||||
|
if (strlen(line) == 0 || line[0] == '#') {
|
||||||
|
r = -EAGAIN;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* device id */
|
||||||
|
s_did = strtok_r(buf, ",", &saveptr);
|
||||||
|
if (!s_did) {
|
||||||
|
r = -EINVAL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
id->did = strtol(s_did, &endptr, 16);
|
||||||
|
if (*endptr) {
|
||||||
|
r = -EINVAL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* revision id */
|
||||||
|
s_rid = strtok_r(NULL, ",", &saveptr);
|
||||||
|
if (!s_rid) {
|
||||||
|
r = -EINVAL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
id->rid = strtol(s_rid, &endptr, 16);
|
||||||
|
if (*endptr) {
|
||||||
|
r = -EINVAL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* marketing name */
|
||||||
|
s_name = strtok_r(NULL, ",", &saveptr);
|
||||||
|
if (!s_name) {
|
||||||
|
r = -EINVAL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
/* trim leading whitespaces or tabs */
|
||||||
|
while (isblank(*s_name))
|
||||||
|
s_name++;
|
||||||
|
if (strlen(s_name) == 0) {
|
||||||
|
r = -EINVAL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
id->marketing_name = strdup(s_name);
|
||||||
|
if (id->marketing_name == NULL) {
|
||||||
|
r = -EINVAL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
out:
|
||||||
|
free(buf);
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
int amdgpu_parse_asic_ids(struct amdgpu_asic_id **p_asic_id_table)
|
||||||
|
{
|
||||||
|
struct amdgpu_asic_id *asic_id_table;
|
||||||
|
struct amdgpu_asic_id *id;
|
||||||
|
FILE *fp;
|
||||||
|
char *line = NULL;
|
||||||
|
size_t len = 0;
|
||||||
|
ssize_t n;
|
||||||
|
int line_num = 1;
|
||||||
|
size_t table_size = 0;
|
||||||
|
size_t table_max_size = AMDGPU_ASIC_ID_TABLE_NUM_ENTRIES;
|
||||||
|
int r = 0;
|
||||||
|
|
||||||
|
fp = fopen(AMDGPU_ASIC_ID_TABLE, "r");
|
||||||
|
if (!fp) {
|
||||||
|
fprintf(stderr, "%s: %s\n", AMDGPU_ASIC_ID_TABLE,
|
||||||
|
strerror(errno));
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
asic_id_table = calloc(table_max_size + 1,
|
||||||
|
sizeof(struct amdgpu_asic_id));
|
||||||
|
if (!asic_id_table) {
|
||||||
|
r = -ENOMEM;
|
||||||
|
goto close;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 1st valid line is file version */
|
||||||
|
while ((n = getline(&line, &len, fp)) != -1) {
|
||||||
|
/* trim trailing newline */
|
||||||
|
if (line[n - 1] == '\n')
|
||||||
|
line[n - 1] = '\0';
|
||||||
|
|
||||||
|
/* ignore empty line and commented line */
|
||||||
|
if (strlen(line) == 0 || line[0] == '#') {
|
||||||
|
line_num++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
drmMsg("%s version: %s\n", AMDGPU_ASIC_ID_TABLE, line);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
while ((n = getline(&line, &len, fp)) != -1) {
|
||||||
|
if (table_size > table_max_size) {
|
||||||
|
/* double table size */
|
||||||
|
table_max_size *= 2;
|
||||||
|
id = realloc(asic_id_table, (table_max_size + 1) *
|
||||||
|
sizeof(struct amdgpu_asic_id));
|
||||||
|
if (!id) {
|
||||||
|
r = -ENOMEM;
|
||||||
|
goto free;
|
||||||
|
}
|
||||||
|
asic_id_table = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
id = asic_id_table + table_size;
|
||||||
|
|
||||||
|
/* trim trailing newline */
|
||||||
|
if (line[n - 1] == '\n')
|
||||||
|
line[n - 1] = '\0';
|
||||||
|
|
||||||
|
r = parse_one_line(line, id);
|
||||||
|
if (r) {
|
||||||
|
if (r == -EAGAIN) {
|
||||||
|
line_num++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
fprintf(stderr, "Invalid format: %s: line %d: %s\n",
|
||||||
|
AMDGPU_ASIC_ID_TABLE, line_num, line);
|
||||||
|
goto free;
|
||||||
|
}
|
||||||
|
|
||||||
|
line_num++;
|
||||||
|
table_size++;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* end of table */
|
||||||
|
id = asic_id_table + table_size;
|
||||||
|
memset(id, 0, sizeof(struct amdgpu_asic_id));
|
||||||
|
|
||||||
|
if (table_size != table_max_size) {
|
||||||
|
id = realloc(asic_id_table, (table_size + 1) *
|
||||||
|
sizeof(struct amdgpu_asic_id));
|
||||||
|
if (!id)
|
||||||
|
r = -ENOMEM;
|
||||||
|
else
|
||||||
|
asic_id_table = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
free:
|
||||||
|
free(line);
|
||||||
|
|
||||||
|
if (r && asic_id_table) {
|
||||||
|
while (table_size--) {
|
||||||
|
id = asic_id_table + table_size;
|
||||||
|
free(id->marketing_name);
|
||||||
|
}
|
||||||
|
free(asic_id_table);
|
||||||
|
asic_id_table = NULL;
|
||||||
|
}
|
||||||
|
close:
|
||||||
|
fclose(fp);
|
||||||
|
|
||||||
|
*p_asic_id_table = asic_id_table;
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
|
@ -1,165 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright © 2016 Advanced Micro Devices, Inc.
|
|
||||||
* All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
* copy of this software and associated documentation files (the "Software"),
|
|
||||||
* to deal in the Software without restriction, including without limitation
|
|
||||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
* and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
* Software is furnished to do so, subject to the following conditions:
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice shall be included in
|
|
||||||
* all copies or substantial portions of the Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
||||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
||||||
* OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __AMDGPU_ASIC_ID_H__
|
|
||||||
#define __AMDGPU_ASIC_ID_H__
|
|
||||||
|
|
||||||
static struct amdgpu_asic_id_table_t {
|
|
||||||
uint32_t did;
|
|
||||||
uint32_t rid;
|
|
||||||
const char *marketing_name;
|
|
||||||
} const amdgpu_asic_id_table [] = {
|
|
||||||
{0x6600, 0x0, "AMD Radeon HD 8600/8700M"},
|
|
||||||
{0x6600, 0x81, "AMD Radeon R7 M370"},
|
|
||||||
{0x6601, 0x0, "AMD Radeon HD 8500M/8700M"},
|
|
||||||
{0x6604, 0x0, "AMD Radeon R7 M265 Series"},
|
|
||||||
{0x6604, 0x81, "AMD Radeon R7 M350"},
|
|
||||||
{0x6605, 0x0, "AMD Radeon R7 M260 Series"},
|
|
||||||
{0x6605, 0x81, "AMD Radeon R7 M340"},
|
|
||||||
{0x6606, 0x0, "AMD Radeon HD 8790M"},
|
|
||||||
{0x6607, 0x0, "AMD Radeon HD8530M"},
|
|
||||||
{0x6608, 0x0, "AMD FirePro W2100"},
|
|
||||||
{0x6610, 0x0, "AMD Radeon HD 8600 Series"},
|
|
||||||
{0x6610, 0x81, "AMD Radeon R7 350"},
|
|
||||||
{0x6610, 0x83, "AMD Radeon R5 340"},
|
|
||||||
{0x6611, 0x0, "AMD Radeon HD 8500 Series"},
|
|
||||||
{0x6613, 0x0, "AMD Radeon HD 8500 series"},
|
|
||||||
{0x6617, 0xC7, "AMD Radeon R7 240 Series"},
|
|
||||||
{0x6640, 0x0, "AMD Radeon HD 8950"},
|
|
||||||
{0x6640, 0x80, "AMD Radeon R9 M380"},
|
|
||||||
{0x6646, 0x0, "AMD Radeon R9 M280X"},
|
|
||||||
{0x6646, 0x80, "AMD Radeon R9 M470X"},
|
|
||||||
{0x6647, 0x0, "AMD Radeon R9 M270X"},
|
|
||||||
{0x6647, 0x80, "AMD Radeon R9 M380"},
|
|
||||||
{0x6649, 0x0, "AMD FirePro W5100"},
|
|
||||||
{0x6658, 0x0, "AMD Radeon R7 200 Series"},
|
|
||||||
{0x665C, 0x0, "AMD Radeon HD 7700 Series"},
|
|
||||||
{0x665D, 0x0, "AMD Radeon R7 200 Series"},
|
|
||||||
{0x665F, 0x81, "AMD Radeon R7 300 Series"},
|
|
||||||
{0x6660, 0x0, "AMD Radeon HD 8600M Series"},
|
|
||||||
{0x6660, 0x81, "AMD Radeon R5 M335"},
|
|
||||||
{0x6660, 0x83, "AMD Radeon R5 M330"},
|
|
||||||
{0x6663, 0x0, "AMD Radeon HD 8500M Series"},
|
|
||||||
{0x6663, 0x83, "AMD Radeon R5 M320"},
|
|
||||||
{0x6664, 0x0, "AMD Radeon R5 M200 Series"},
|
|
||||||
{0x6665, 0x0, "AMD Radeon R5 M200 Series"},
|
|
||||||
{0x6665, 0x83, "AMD Radeon R5 M320"},
|
|
||||||
{0x6667, 0x0, "AMD Radeon R5 M200 Series"},
|
|
||||||
{0x666F, 0x0, "AMD Radeon HD 8500M"},
|
|
||||||
{0x6780, 0x0, "ATI FirePro V (FireGL V) Graphics Adapter"},
|
|
||||||
{0x678A, 0x0, "ATI FirePro V (FireGL V) Graphics Adapter"},
|
|
||||||
{0x6798, 0x0, "AMD Radeon HD 7900 Series"},
|
|
||||||
{0x679A, 0x0, "AMD Radeon HD 7900 Series"},
|
|
||||||
{0x679B, 0x0, "AMD Radeon HD 7900 Series"},
|
|
||||||
{0x679E, 0x0, "AMD Radeon HD 7800 Series"},
|
|
||||||
{0x67A0, 0x0, "HAWAII XTGL (67A0)"},
|
|
||||||
{0x67A1, 0x0, "HAWAII GL40 (67A1)"},
|
|
||||||
{0x67B0, 0x0, "AMD Radeon R9 200 Series"},
|
|
||||||
{0x67B0, 0x80, "AMD Radeon R9 390 Series"},
|
|
||||||
{0x67B1, 0x0, "AMD Radeon R9 200 Series"},
|
|
||||||
{0x67B1, 0x80, "AMD Radeon R9 390 Series"},
|
|
||||||
{0x67B9, 0x0, "AMD Radeon R9 200 Series"},
|
|
||||||
{0x67DF, 0xC4, "AMD Radeon RX 480 Graphics"},
|
|
||||||
{0x67DF, 0xC5, "AMD Radeon RX 470 Graphics"},
|
|
||||||
{0x67DF, 0xC7, "AMD Radeon RX 480 Graphics"},
|
|
||||||
{0x67DF, 0xCF, "AMD Radeon RX 470 Graphics"},
|
|
||||||
{0x67C4, 0x00, "AMD Radeon Pro WX 7100 Graphics"},
|
|
||||||
{0x67C7, 0x00, "AMD Radeon Pro WX 5100 Graphics"},
|
|
||||||
{0x67C0, 0x00, "AMD Radeon Pro WX 7100 Graphics"},
|
|
||||||
{0x67E0, 0x00, "AMD Radeon Pro WX Series Graphics"},
|
|
||||||
{0x67E3, 0x00, "AMD Radeon Pro WX 4100 Graphics"},
|
|
||||||
{0x67E8, 0x00, "AMD Radeon Pro WX Series Graphics"},
|
|
||||||
{0x67E8, 0x01, "AMD Radeon Pro WX Series Graphics"},
|
|
||||||
{0x67E8, 0x80, "AMD Radeon E9260 Graphics"},
|
|
||||||
{0x67EB, 0x00, "AMD Radeon Pro WX Series Graphics"},
|
|
||||||
{0x67EF, 0xC0, "AMD Radeon RX Graphics"},
|
|
||||||
{0x67EF, 0xC1, "AMD Radeon RX 460 Graphics"},
|
|
||||||
{0x67EF, 0xC5, "AMD Radeon RX 460 Graphics"},
|
|
||||||
{0x67EF, 0xC7, "AMD Radeon RX Graphics"},
|
|
||||||
{0x67EF, 0xCF, "AMD Radeon RX 460 Graphics"},
|
|
||||||
{0x67EF, 0xEF, "AMD Radeon RX Graphics"},
|
|
||||||
{0x67FF, 0xC0, "AMD Radeon RX Graphics"},
|
|
||||||
{0x67FF, 0xC1, "AMD Radeon RX Graphics"},
|
|
||||||
{0x6800, 0x0, "AMD Radeon HD 7970M"},
|
|
||||||
{0x6801, 0x0, "AMD Radeon(TM) HD8970M"},
|
|
||||||
{0x6808, 0x0, "ATI FirePro V(FireGL V) Graphics Adapter"},
|
|
||||||
{0x6809, 0x0, "ATI FirePro V(FireGL V) Graphics Adapter"},
|
|
||||||
{0x6810, 0x0, "AMD Radeon(TM) HD 8800 Series"},
|
|
||||||
{0x6810, 0x81, "AMD Radeon R7 370 Series"},
|
|
||||||
{0x6811, 0x0, "AMD Radeon(TM) HD8800 Series"},
|
|
||||||
{0x6811, 0x81, "AMD Radeon R7 300 Series"},
|
|
||||||
{0x6818, 0x0, "AMD Radeon HD 7800 Series"},
|
|
||||||
{0x6819, 0x0, "AMD Radeon HD 7800 Series"},
|
|
||||||
{0x6820, 0x0, "AMD Radeon HD 8800M Series"},
|
|
||||||
{0x6820, 0x81, "AMD Radeon R9 M375"},
|
|
||||||
{0x6820, 0x83, "AMD Radeon R9 M375X"},
|
|
||||||
{0x6821, 0x0, "AMD Radeon HD 8800M Series"},
|
|
||||||
{0x6821, 0x87, "AMD Radeon R7 M380"},
|
|
||||||
{0x6821, 0x83, "AMD Radeon R9 M370X"},
|
|
||||||
{0x6822, 0x0, "AMD Radeon E8860"},
|
|
||||||
{0x6823, 0x0, "AMD Radeon HD 8800M Series"},
|
|
||||||
{0x6825, 0x0, "AMD Radeon HD 7800M Series"},
|
|
||||||
{0x6827, 0x0, "AMD Radeon HD 7800M Series"},
|
|
||||||
{0x6828, 0x0, "ATI FirePro V(FireGL V) Graphics Adapter"},
|
|
||||||
{0x682B, 0x0, "AMD Radeon HD 8800M Series"},
|
|
||||||
{0x682B, 0x87, "AMD Radeon R9 M360"},
|
|
||||||
{0x682C, 0x0, "AMD FirePro W4100"},
|
|
||||||
{0x682D, 0x0, "AMD Radeon HD 7700M Series"},
|
|
||||||
{0x682F, 0x0, "AMD Radeon HD 7700M Series"},
|
|
||||||
{0x6835, 0x0, "AMD Radeon R7 Series / HD 9000 Series"},
|
|
||||||
{0x6837, 0x0, "AMD Radeon HD7700 Series"},
|
|
||||||
{0x683D, 0x0, "AMD Radeon HD 7700 Series"},
|
|
||||||
{0x683F, 0x0, "AMD Radeon HD 7700 Series"},
|
|
||||||
{0x6900, 0x0, "AMD Radeon R7 M260"},
|
|
||||||
{0x6900, 0x81, "AMD Radeon R7 M360"},
|
|
||||||
{0x6900, 0x83, "AMD Radeon R7 M340"},
|
|
||||||
{0x6901, 0x0, "AMD Radeon R5 M255"},
|
|
||||||
{0x6907, 0x0, "AMD Radeon R5 M255"},
|
|
||||||
{0x6907, 0x87, "AMD Radeon R5 M315"},
|
|
||||||
{0x6920, 0x0, "AMD Radeon R9 M395X"},
|
|
||||||
{0x6920, 0x1, "AMD Radeon R9 M390X"},
|
|
||||||
{0x6921, 0x0, "AMD Radeon R9 M295X"},
|
|
||||||
{0x6929, 0x0, "AMD FirePro S7150"},
|
|
||||||
{0x692B, 0x0, "AMD FirePro W7100"},
|
|
||||||
{0x6938, 0x0, "AMD Radeon R9 200 Series"},
|
|
||||||
{0x6938, 0xF0, "AMD Radeon R9 200 Series"},
|
|
||||||
{0x6938, 0xF1, "AMD Radeon R9 380 Series"},
|
|
||||||
{0x6939, 0xF0, "AMD Radeon R9 200 Series"},
|
|
||||||
{0x6939, 0x0, "AMD Radeon R9 200 Series"},
|
|
||||||
{0x6939, 0xF1, "AMD Radeon R9 380 Series"},
|
|
||||||
{0x7300, 0xC8, "AMD Radeon R9 Fury Series"},
|
|
||||||
{0x7300, 0xCB, "AMD Radeon R9 Fury Series"},
|
|
||||||
{0x7300, 0xCA, "AMD Radeon R9 Fury Series"},
|
|
||||||
{0x9874, 0xC4, "AMD Radeon R7 Graphics"},
|
|
||||||
{0x9874, 0xC5, "AMD Radeon R6 Graphics"},
|
|
||||||
{0x9874, 0xC6, "AMD Radeon R6 Graphics"},
|
|
||||||
{0x9874, 0xC7, "AMD Radeon R5 Graphics"},
|
|
||||||
{0x9874, 0x81, "AMD Radeon R6 Graphics"},
|
|
||||||
{0x9874, 0x87, "AMD Radeon R5 Graphics"},
|
|
||||||
{0x9874, 0x85, "AMD Radeon R6 Graphics"},
|
|
||||||
{0x9874, 0x84, "AMD Radeon R7 Graphics"},
|
|
||||||
|
|
||||||
{0x0000, 0x0, "\0"},
|
|
||||||
};
|
|
||||||
#endif
|
|
|
@ -44,7 +44,6 @@
|
||||||
#include "amdgpu_internal.h"
|
#include "amdgpu_internal.h"
|
||||||
#include "util_hash_table.h"
|
#include "util_hash_table.h"
|
||||||
#include "util_math.h"
|
#include "util_math.h"
|
||||||
#include "amdgpu_asic_id.h"
|
|
||||||
|
|
||||||
#define PTR_TO_UINT(x) ((unsigned)((intptr_t)(x)))
|
#define PTR_TO_UINT(x) ((unsigned)((intptr_t)(x)))
|
||||||
#define UINT_TO_PTR(x) ((void *)((intptr_t)(x)))
|
#define UINT_TO_PTR(x) ((void *)((intptr_t)(x)))
|
||||||
|
@ -131,6 +130,7 @@ static int amdgpu_get_auth(int fd, int *auth)
|
||||||
|
|
||||||
static void amdgpu_device_free_internal(amdgpu_device_handle dev)
|
static void amdgpu_device_free_internal(amdgpu_device_handle dev)
|
||||||
{
|
{
|
||||||
|
const struct amdgpu_asic_id *id;
|
||||||
amdgpu_vamgr_deinit(&dev->vamgr_32);
|
amdgpu_vamgr_deinit(&dev->vamgr_32);
|
||||||
amdgpu_vamgr_deinit(&dev->vamgr);
|
amdgpu_vamgr_deinit(&dev->vamgr);
|
||||||
util_hash_table_destroy(dev->bo_flink_names);
|
util_hash_table_destroy(dev->bo_flink_names);
|
||||||
|
@ -140,6 +140,12 @@ static void amdgpu_device_free_internal(amdgpu_device_handle dev)
|
||||||
close(dev->fd);
|
close(dev->fd);
|
||||||
if ((dev->flink_fd >= 0) && (dev->fd != dev->flink_fd))
|
if ((dev->flink_fd >= 0) && (dev->fd != dev->flink_fd))
|
||||||
close(dev->flink_fd);
|
close(dev->flink_fd);
|
||||||
|
if (dev->asic_ids) {
|
||||||
|
for (id = dev->asic_ids; id->did; id++)
|
||||||
|
free(id->marketing_name);
|
||||||
|
|
||||||
|
free(dev->asic_ids);
|
||||||
|
}
|
||||||
free(dev);
|
free(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,6 +273,12 @@ int amdgpu_device_initialize(int fd,
|
||||||
amdgpu_vamgr_init(&dev->vamgr_32, start, max,
|
amdgpu_vamgr_init(&dev->vamgr_32, start, max,
|
||||||
dev->dev_info.virtual_address_alignment);
|
dev->dev_info.virtual_address_alignment);
|
||||||
|
|
||||||
|
r = amdgpu_parse_asic_ids(&dev->asic_ids);
|
||||||
|
if (r) {
|
||||||
|
fprintf(stderr, "%s: Cannot parse ASIC IDs, 0x%x.",
|
||||||
|
__func__, r);
|
||||||
|
}
|
||||||
|
|
||||||
*major_version = dev->major_version;
|
*major_version = dev->major_version;
|
||||||
*minor_version = dev->minor_version;
|
*minor_version = dev->minor_version;
|
||||||
*device_handle = dev;
|
*device_handle = dev;
|
||||||
|
@ -297,13 +309,15 @@ int amdgpu_device_deinitialize(amdgpu_device_handle dev)
|
||||||
|
|
||||||
const char *amdgpu_get_marketing_name(amdgpu_device_handle dev)
|
const char *amdgpu_get_marketing_name(amdgpu_device_handle dev)
|
||||||
{
|
{
|
||||||
const struct amdgpu_asic_id_table_t *t = amdgpu_asic_id_table;
|
const struct amdgpu_asic_id *id;
|
||||||
|
|
||||||
while (t->did) {
|
if (!dev->asic_ids)
|
||||||
if ((t->did == dev->info.asic_id) &&
|
return NULL;
|
||||||
(t->rid == dev->info.pci_rev_id))
|
|
||||||
return t->marketing_name;
|
for (id = dev->asic_ids; id->did; id++) {
|
||||||
t++;
|
if ((id->did == dev->info.asic_id) &&
|
||||||
|
(id->rid == dev->info.pci_rev_id))
|
||||||
|
return id->marketing_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -69,6 +69,12 @@ struct amdgpu_va {
|
||||||
struct amdgpu_bo_va_mgr *vamgr;
|
struct amdgpu_bo_va_mgr *vamgr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct amdgpu_asic_id {
|
||||||
|
uint32_t did;
|
||||||
|
uint32_t rid;
|
||||||
|
char *marketing_name;
|
||||||
|
};
|
||||||
|
|
||||||
struct amdgpu_device {
|
struct amdgpu_device {
|
||||||
atomic_t refcount;
|
atomic_t refcount;
|
||||||
int fd;
|
int fd;
|
||||||
|
@ -76,6 +82,8 @@ struct amdgpu_device {
|
||||||
unsigned major_version;
|
unsigned major_version;
|
||||||
unsigned minor_version;
|
unsigned minor_version;
|
||||||
|
|
||||||
|
/** Lookup table of asic device id, revision id and marketing name */
|
||||||
|
struct amdgpu_asic_id *asic_ids;
|
||||||
/** List of buffer handles. Protected by bo_table_mutex. */
|
/** List of buffer handles. Protected by bo_table_mutex. */
|
||||||
struct util_hash_table *bo_handles;
|
struct util_hash_table *bo_handles;
|
||||||
/** List of buffer GEM flink names. Protected by bo_table_mutex. */
|
/** List of buffer GEM flink names. Protected by bo_table_mutex. */
|
||||||
|
@ -149,6 +157,8 @@ amdgpu_vamgr_find_va(struct amdgpu_bo_va_mgr *mgr, uint64_t size,
|
||||||
drm_private void
|
drm_private void
|
||||||
amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size);
|
amdgpu_vamgr_free_va(struct amdgpu_bo_va_mgr *mgr, uint64_t va, uint64_t size);
|
||||||
|
|
||||||
|
drm_private int amdgpu_parse_asic_ids(struct amdgpu_asic_id **asic_ids);
|
||||||
|
|
||||||
drm_private int amdgpu_query_gpu_info_init(amdgpu_device_handle dev);
|
drm_private int amdgpu_query_gpu_info_init(amdgpu_device_handle dev);
|
||||||
|
|
||||||
drm_private uint64_t amdgpu_cs_calculate_timeout(uint64_t timeout);
|
drm_private uint64_t amdgpu_cs_calculate_timeout(uint64_t timeout);
|
||||||
|
|
|
@ -84,6 +84,9 @@ fi
|
||||||
|
|
||||||
pkgconfigdir=${libdir}/pkgconfig
|
pkgconfigdir=${libdir}/pkgconfig
|
||||||
AC_SUBST(pkgconfigdir)
|
AC_SUBST(pkgconfigdir)
|
||||||
|
libdrmdatadir=${datadir}/libdrm
|
||||||
|
AC_SUBST(libdrmdatadir)
|
||||||
|
|
||||||
AC_ARG_ENABLE([udev],
|
AC_ARG_ENABLE([udev],
|
||||||
[AS_HELP_STRING([--enable-udev],
|
[AS_HELP_STRING([--enable-udev],
|
||||||
[Enable support for using udev instead of mknod (default: disabled)])],
|
[Enable support for using udev instead of mknod (default: disabled)])],
|
||||||
|
@ -527,6 +530,7 @@ fi
|
||||||
AC_SUBST(WARN_CFLAGS)
|
AC_SUBST(WARN_CFLAGS)
|
||||||
AC_CONFIG_FILES([
|
AC_CONFIG_FILES([
|
||||||
Makefile
|
Makefile
|
||||||
|
data/Makefile
|
||||||
libkms/Makefile
|
libkms/Makefile
|
||||||
libkms/libkms.pc
|
libkms/libkms.pc
|
||||||
intel/Makefile
|
intel/Makefile
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Copyright © 2017 Advanced Micro Devices, Inc.
|
||||||
|
# All Rights Reserved.
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
# copy of this software and associated documentation files (the "Software"),
|
||||||
|
# to deal in the Software without restriction, including without limitation
|
||||||
|
# on the rights to use, copy, modify, merge, publish, distribute, sub
|
||||||
|
# license, and/or sell copies of the Software, and to permit persons to whom
|
||||||
|
# the Software is furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice (including the next
|
||||||
|
# paragraph) shall be included in all copies or substantial portions of the
|
||||||
|
# Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
# ADAM JACKSON BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
libdrmdatadir = @libdrmdatadir@
|
||||||
|
dist_libdrmdata_DATA = amdgpu.ids
|
|
@ -0,0 +1,159 @@
|
||||||
|
# List of AMDGPU IDs
|
||||||
|
#
|
||||||
|
# Syntax:
|
||||||
|
# device_id, revision_id, product_name <-- single tab after comma
|
||||||
|
|
||||||
|
1.0.0
|
||||||
|
6600, 0, AMD Radeon HD 8600/8700M
|
||||||
|
6600, 81, AMD Radeon (TM) R7 M370
|
||||||
|
6601, 0, AMD Radeon (TM) HD 8500M/8700M
|
||||||
|
6604, 0, AMD Radeon R7 M265 Series
|
||||||
|
6604, 81, AMD Radeon (TM) R7 M350
|
||||||
|
6605, 0, AMD Radeon R7 M260 Series
|
||||||
|
6605, 81, AMD Radeon (TM) R7 M340
|
||||||
|
6606, 0, AMD Radeon HD 8790M
|
||||||
|
6607, 0, AMD Radeon (TM) HD8530M
|
||||||
|
6608, 0, AMD FirePro W2100
|
||||||
|
6610, 0, AMD Radeon HD 8600 Series
|
||||||
|
6610, 81, AMD Radeon (TM) R7 350
|
||||||
|
6610, 83, AMD Radeon (TM) R5 340
|
||||||
|
6611, 0, AMD Radeon HD 8500 Series
|
||||||
|
6613, 0, AMD Radeon HD 8500 series
|
||||||
|
6617, C7, AMD Radeon R7 240 Series
|
||||||
|
6640, 0, AMD Radeon HD 8950
|
||||||
|
6640, 80, AMD Radeon (TM) R9 M380
|
||||||
|
6646, 0, AMD Radeon R9 M280X
|
||||||
|
6646, 80, AMD Radeon (TM) R9 M470X
|
||||||
|
6647, 0, AMD Radeon R9 M270X
|
||||||
|
6647, 80, AMD Radeon (TM) R9 M380
|
||||||
|
6649, 0, AMD FirePro W5100
|
||||||
|
6658, 0, AMD Radeon R7 200 Series
|
||||||
|
665C, 0, AMD Radeon HD 7700 Series
|
||||||
|
665D, 0, AMD Radeon R7 200 Series
|
||||||
|
665F, 81, AMD Radeon (TM) R7 300 Series
|
||||||
|
6660, 0, AMD Radeon HD 8600M Series
|
||||||
|
6660, 81, AMD Radeon (TM) R5 M335
|
||||||
|
6660, 83, AMD Radeon (TM) R5 M330
|
||||||
|
6663, 0, AMD Radeon HD 8500M Series
|
||||||
|
6663, 83, AMD Radeon (TM) R5 M320
|
||||||
|
6664, 0, AMD Radeon R5 M200 Series
|
||||||
|
6665, 0, AMD Radeon R5 M200 Series
|
||||||
|
6665, 83, AMD Radeon (TM) R5 M320
|
||||||
|
6667, 0, AMD Radeon R5 M200 Series
|
||||||
|
666F, 0, AMD Radeon HD 8500M
|
||||||
|
6780, 0, ATI FirePro V (FireGL V) Graphics Adapter
|
||||||
|
678A, 0, ATI FirePro V (FireGL V) Graphics Adapter
|
||||||
|
6798, 0, AMD Radeon HD 7900 Series
|
||||||
|
679A, 0, AMD Radeon HD 7900 Series
|
||||||
|
679B, 0, AMD Radeon HD 7900 Series
|
||||||
|
679E, 0, AMD Radeon HD 7800 Series
|
||||||
|
67A0, 0, AMD Radeon FirePro W9100
|
||||||
|
67A1, 0, AMD Radeon FirePro W8100
|
||||||
|
67B0, 0, AMD Radeon R9 200 Series
|
||||||
|
67B0, 80, AMD Radeon (TM) R9 390 Series
|
||||||
|
67B1, 0, AMD Radeon R9 200 Series
|
||||||
|
67B1, 80, AMD Radeon (TM) R9 390 Series
|
||||||
|
67B9, 0, AMD Radeon R9 200 Series
|
||||||
|
67DF, C1, Radeon RX 580 Series
|
||||||
|
67DF, C2, Radeon RX 570 Series
|
||||||
|
67DF, C3, Radeon RX 580 Series
|
||||||
|
67DF, C4, AMD Radeon (TM) RX 480 Graphics
|
||||||
|
67DF, C5, AMD Radeon (TM) RX 470 Graphics
|
||||||
|
67DF, C6, Radeon RX 570 Series
|
||||||
|
67DF, C7, AMD Radeon (TM) RX 480 Graphics
|
||||||
|
67DF, CF, AMD Radeon (TM) RX 470 Graphics
|
||||||
|
67DF, E3, Radeon RX Series
|
||||||
|
67DF, E7, Radeon RX 580 Series
|
||||||
|
67DF, EF, Radeon RX 570 Series
|
||||||
|
67C2, 01, AMD Radeon (TM) Pro V7350x2
|
||||||
|
67C2, 02, AMD Radeon (TM) Pro V7300X
|
||||||
|
67C4, 00, AMD Radeon (TM) Pro WX 7100 Graphics
|
||||||
|
67C7, 00, AMD Radeon (TM) Pro WX 5100 Graphics
|
||||||
|
67C0, 00, AMD Radeon (TM) Pro WX 7100 Graphics
|
||||||
|
67D0, 01, AMD Radeon (TM) Pro V7350x2
|
||||||
|
67D0, 02, AMD Radeon (TM) Pro V7300X
|
||||||
|
67E0, 00, AMD Radeon (TM) Pro WX Series
|
||||||
|
67E3, 00, AMD Radeon (TM) Pro WX 4100
|
||||||
|
67E8, 00, AMD Radeon (TM) Pro WX Series
|
||||||
|
67E8, 01, AMD Radeon (TM) Pro WX Series
|
||||||
|
67E8, 80, AMD Radeon (TM) E9260 Graphics
|
||||||
|
67EB, 00, AMD Radeon (TM) Pro V5300X
|
||||||
|
67EF, C0, AMD Radeon (TM) RX Graphics
|
||||||
|
67EF, C1, AMD Radeon (TM) RX 460 Graphics
|
||||||
|
67EF, C3, Radeon RX Series
|
||||||
|
67EF, C5, AMD Radeon (TM) RX 460 Graphics
|
||||||
|
67EF, C7, AMD Radeon (TM) RX Graphics
|
||||||
|
67EF, CF, AMD Radeon (TM) RX 460 Graphics
|
||||||
|
67EF, E1, Radeon RX Series
|
||||||
|
67EF, E3, Radeon RX Series
|
||||||
|
67EF, E7, Radeon RX Series
|
||||||
|
67EF, EF, AMD Radeon (TM) RX Graphics
|
||||||
|
67EF, FF, Radeon RX Series
|
||||||
|
67FF, C0, AMD Radeon (TM) RX Graphics
|
||||||
|
67FF, C1, AMD Radeon (TM) RX Graphics
|
||||||
|
67FF, FF, Radeon RX 550 Series
|
||||||
|
6800, 0, AMD Radeon HD 7970M
|
||||||
|
6801, 0, AMD Radeon(TM) HD8970M
|
||||||
|
6808, 0, ATI FirePro V(FireGL V) Graphics Adapter
|
||||||
|
6809, 0, ATI FirePro V(FireGL V) Graphics Adapter
|
||||||
|
6810, 0, AMD Radeon(TM) HD 8800 Series
|
||||||
|
6810, 81, AMD Radeon (TM) R7 370 Series
|
||||||
|
6811, 0, AMD Radeon(TM) HD8800 Series
|
||||||
|
6811, 81, AMD Radeon (TM) R7 300 Series
|
||||||
|
6818, 0, AMD Radeon HD 7800 Series
|
||||||
|
6819, 0, AMD Radeon HD 7800 Series
|
||||||
|
6820, 0, AMD Radeon HD 8800M Series
|
||||||
|
6820, 81, AMD Radeon (TM) R9 M375
|
||||||
|
6820, 83, AMD Radeon (TM) R9 M375X
|
||||||
|
6821, 0, AMD Radeon HD 8800M Series
|
||||||
|
6821, 87, AMD Radeon (TM) R7 M380
|
||||||
|
6821, 83, AMD Radeon R9 (TM) M370X
|
||||||
|
6822, 0, AMD Radeon E8860
|
||||||
|
6823, 0, AMD Radeon HD 8800M Series
|
||||||
|
6825, 0, AMD Radeon HD 7800M Series
|
||||||
|
6827, 0, AMD Radeon HD 7800M Series
|
||||||
|
6828, 0, ATI FirePro V(FireGL V) Graphics Adapter
|
||||||
|
682B, 0, AMD Radeon HD 8800M Series
|
||||||
|
682B, 87, AMD Radeon (TM) R9 M360
|
||||||
|
682C, 0, AMD FirePro W4100
|
||||||
|
682D, 0, AMD Radeon HD 7700M Series
|
||||||
|
682F, 0, AMD Radeon HD 7700M Series
|
||||||
|
6835, 0, AMD Radeon R7 Series / HD 9000 Series
|
||||||
|
6837, 0, AMD Radeon HD7700 Series
|
||||||
|
683D, 0, AMD Radeon HD 7700 Series
|
||||||
|
683F, 0, AMD Radeon HD 7700 Series
|
||||||
|
6900, 0, AMD Radeon R7 M260
|
||||||
|
6900, 81, AMD Radeon (TM) R7 M360
|
||||||
|
6900, 83, AMD Radeon (TM) R7 M340
|
||||||
|
6901, 0, AMD Radeon R5 M255
|
||||||
|
6907, 0, AMD Radeon R5 M255
|
||||||
|
6907, 87, AMD Radeon (TM) R5 M315
|
||||||
|
6920, 0, AMD RADEON R9 M395X
|
||||||
|
6920, 1, AMD RADEON R9 M390X
|
||||||
|
6921, 0, AMD Radeon R9 M295X
|
||||||
|
6929, 0, AMD FirePro S7150
|
||||||
|
692B, 0, AMD FirePro W7100
|
||||||
|
6938, 0, AMD Radeon R9 200 Series
|
||||||
|
6938, F0, AMD Radeon R9 200 Series
|
||||||
|
6938, F1, AMD Radeon (TM) R9 380 Series
|
||||||
|
6939, F0, AMD Radeon R9 200 Series
|
||||||
|
6939, 0, AMD Radeon R9 200 Series
|
||||||
|
6939, F1, AMD Radeon (TM) R9 380 Series
|
||||||
|
6985, 00, AMD Radeon Pro WX3100
|
||||||
|
6995, 00, AMD Radeon Pro WX2100
|
||||||
|
699F, C0, Radeon 500 Series
|
||||||
|
699F, C3, Radeon 500 Series
|
||||||
|
699F, C7, Radeon RX 550 Series
|
||||||
|
7300, C1, AMD FirePro (TM) S9300 x2
|
||||||
|
7300, C8, AMD Radeon (TM) R9 Fury Series
|
||||||
|
7300, C9, Radeon (TM) Pro Duo
|
||||||
|
7300, CB, AMD Radeon (TM) R9 Fury Series
|
||||||
|
7300, CA, AMD Radeon (TM) R9 Fury Series
|
||||||
|
9874, C4, AMD Radeon R7 Graphics
|
||||||
|
9874, C5, AMD Radeon R6 Graphics
|
||||||
|
9874, C6, AMD Radeon R6 Graphics
|
||||||
|
9874, C7, AMD Radeon R5 Graphics
|
||||||
|
9874, 81, AMD Radeon R6 Graphics
|
||||||
|
9874, 87, AMD Radeon R5 Graphics
|
||||||
|
9874, 85, AMD Radeon R6 Graphics
|
||||||
|
9874, 84, AMD Radeon R7 Graphics
|
Loading…
Reference in New Issue