# AMDGPU y AMDGPU-PRO

## pcmaster

Hola,

He conseguido hacer funcionar AMDGPU con mi radeon R7 250. Las versiones del kernel posteriores a la serie 4.9 necesitan un parche que puede descargarse desde https://bugzilla.kernel.org/show_bug.cgi?id=194761

Son los que están al principio de la página:

[PATCH] drm/amdgpu: revert tile table update for oland (for kernels v4.10 to v4.12)

[PATCH] drm/amdgpu: revert tile table update for oland (for kernels v4.13 and up)

Como no he conseguido que funcione amdgpu-pro-opencl, que hace funcionar las librerías opencl de amdgpu-pro sobre amdgpu, estoy intentando instalar AMDGPU-PRO siguiendo las instrucciones en https://www2.warwick.ac.uk/fac/cross_fac/complexity/people/staff/delgenio/amdgpuprogentoo

El primer problema que me he encontrado es que hay que aceptar varios paquetes inestables, y libdrm-2.4.83 no compila porque le falta un archivo: https://bugs.gentoo.org/628814. La solución a esto ha sido desinstalar cunit, instalar libdrm y después volver a  instalar cunit (se instala solo al instalar amdgpu).

Entre los paquetes instalados o actualizados están:

llvm-5.0.0, clang-5.0.0, libomp-5.0.0, libclc-0.2.0_pre20170929, mesa-17.2.2

En el último paso, la orden dkms install amdgpu-pro-17.30-465504 -k 4.9.52-gentoo --force

ha dado un mensaje de error:

```
Core2Duo src # dkms install amdgpu-pro-17.30-465504 -k 4.9.52-gentoo --force

Forcing install of amdgpu-pro-17.30-465504

Creating symlink /var/lib/dkms/amdgpu-pro/17.30-465504/source ->

                 /usr/src/amdgpu-pro-17.30-465504

DKMS: add completed.

Kernel preparation unnecessary for this kernel.  Skipping...

Running the pre_build script:

Building module:

cleaning build area....

make KERNELRELEASE=4.9.52-gentoo -j2 -C /lib/modules/4.9.52-gentoo/build M=/var/lib/dkms/amdgpu-pro/17.30-465504/build....(bad exit status: 2)

Error! Bad return status for module build on kernel: 4.9.52-gentoo (x86_64)

Consult /var/lib/dkms/amdgpu-pro/17.30-465504/build/make.log for more information.

Core2Duo src #
```

pero parece que la opción está disponible:

```
Core2Duo src # eselect opencl list

Available OpenCL implementations:

  [1]   amdgpu-pro

  [2]   mesa

  [3]   ocl-icd *

Core2Duo src # eselect opencl set amdgpu-pro

Switching to amdgpu-pro OpenCL interface... done

Core2Duo src # eselect opencl list

Available OpenCL implementations:

  [1]   amdgpu-pro *

  [2]   mesa

  [3]   ocl-icd

Core2Duo src #
```

Al intentar ejecutar glxgerars, usando amdgpu-pro se produce una violación de segmento.

Lo mismo ocurre con opencl,  igual que ocurría con amdgpu-pro-opencl que está en portage.

----------

## pelelademadera

https://forums.gentoo.org/viewtopic-t-1060214-postdays-0-postorder-asc-start-0.html

una larga discusion y guia de como hacer andar amdgpu-pro y vulkan en gentoo.

ya no tengo placas amd, actualmente tengo nvidia, pero logre que funcione al menos.

No se si tenes crossfire, en tal caso no funciona todo, pero funciona perfectamente con una gpu, es algo viejo, pero tendra unos 3 o 4 meses.

Saludos

----------

## pcmaster

Tras una actualización que ha re-compilado más de 200 paquetes, la cosa va mejor.

No he conseguido hacer funcionar amdgpu-pro: se produce un segfault. 

Con respecto al driver amdgpu del kernel, funciona, pero al cabo de un rato (pueden ser 30 minutos u horas) se produce un segfault que congela la imagen y hay que reiniciar entrado por ssh.

Por lo tanto de momento seguiré con el driver radeon+mesa, al que ahora parece que le funciona el opencl, aunque sólo en la versión 1.1, y algunos programas opencl no funcionan porque no encuentran la información de versión.

--- Actualización ---

Pormsegunda vez ha ocurrido un fallo grave en el driver Radeon. DE repente la pantalla se queda en negro y con CTRL-ALT-SUP reinicio. Al iniciarse... BIIIIIP BIP BIP BIP el típico mensaje sonoro de la BIOS de que no hay (o falla la) tarjeta gráfica.

Apagando y volviendo a encender ha resucitado. Si no puedo resolverlo tocará restaurar el sistema antiguo con los antiguos drivers fglrx.

El log del error es:

```
$ tail Xorg.0.log.old -n 20

[    27.553] (II) Loading sub module "ramdac"

[    27.553] (II) LoadModule: "ramdac"

[    27.553] (II) Module "ramdac" already built-in

[    27.553] (--) Depth 24 pixmap format is 32 bpp

[    27.554] (II) RADEON(0): [DRI2] Setup complete

[    27.554] (II) RADEON(0): [DRI2]   DRI driver: radeonsi

[    27.554] (II) RADEON(0): [DRI2]   VDPAU driver: radeonsi

[    27.554] (EE) RADEON(0): failed to initialise surface manager

[    27.554] (EE) RADEON(0): radeon_setup_kernel_mem failed

[    27.554] (EE) 

Fatal server error:

[    27.554] (EE) AddScreen/ScreenInit failed for driver 0

[    27.554] (EE) 

[    27.554] (EE) 

Please consult the The X.Org Foundation support 

    at http://wiki.x.org

 for help. 

[    27.554] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.

[    27.554] (EE) 

[    27.562] (EE) Server terminated with error (1). Closing log file.

```

----------

## pelelademadera

la verdad que amd cada vez que le quita soporte a alguna gpu en linux hace un desastre.

yo vengo con placas amd/ati desde una 4670, y hasta la rx480 llego mi amor, me pase a nvidia y chau problemas, es una maravilla que las cosas funcionen sin renegar, y correctamente

----------

## pcmaster

La R7 250 ha muerto. Con una nueva RX580 funciona.

----------

## papu

 *pcmaster wrote:*   

> La R7 250 ha muerto. Con una nueva RX580 funciona.

 

el año pasado se me murió sin más mi radeon 270(no termino de entender que pasó pero viendo que a ti te peta ya pienso mal), ahora tengo una rx470...si bien amdgpu(xf86-video-amdgpu) me funciona, muchas cosas que requieran 3d fallan, en concreto las demos unigine dan error, el cliente steam fuciona pero literalmente no se ve...

¿como te va tu rx? es dificil encontrar gente y más en español que tengan esta tarjeta podríamos comparar problemas y cosas asi

saludos

----------

## pcmaster

De momento va bien, he conseguido hasta instalar amdgpu-pro-opencl.

El problema de las R7 250 es que al ser GCM 1.0 el soporte es todavía experimenttal y el driver recomendado es todavía el radeon en vez de amdgpu.

Lo que sí he notado es que, tanto si el consumo de pone a 90 w como a 110W, la temperatura se estabiliza en unos 72º, a más consumo más revoluciones del ventilador pero la misma temperatura. De hecho, me mantiene esa temperatura con el ventilador a menos del 50%, supongo que debe estar preprogramada para trabajar a una temperatura determinada independientemente del consumo.

En idle, baja hasta ser inferior a 35 grados. De hecho, incluso más baja que la del procesador Core2Duo.

La mía es una Radeon RX580 Aorus de Gigabyte, con dos ventiladores. La antigua R7 250 murió casi de repente: a veces se colgaba, ahora dudo si por fallo del driver o porque ya estaba en dando sus últimos suspiros, hasta que dejó de verla la BIOS, como si no hubiera ninguna al arrancar. Al día siguiente resucitó, hasta que volvió a fallar y ya no volvió a dar más señales de vida.

En tu caso, prueba a instalar el kernel más nuevo posible y la versión 5.0.0 de llvm (y sus dependencias), así como la última versión estable de mesa.

----------

## papu

ya tengo lo más actual ya que uso ~amd64,  amdgpu es asi  y esto va muy lento, van sacando drivers nuevos sin terminar los anteriores lo de siempre, bueno a ver que pasa, no encuentro gente con RX que use gentoo hasta hoy pero usa otro driver   :Laughing: 

¿como va ese driver? dev-libs/amdgpu-pro-opencl crei estaban todos los amdgpu-pro bloqueados en portage...supongo habra que quitar el amdgpu del kernel hay que tocar algo en VIDEOCARDS="" del make.conf?  o se instala de forma manual como antaño con el binario directametne encima de lo que haya...

make.conf:

https://forums.gentoo.org/viewtopic-p-7687980.html#7687980

----------

## pcmaster

Has de compilar el kernel con soporte amdgpu, NO con soporte radeon.

Aquí tienes la wiki de Gentoo donde explica cómo instalarlo: https://wiki.gentoo.org/wiki/AMDGPU

Has de configurar xorg con el driver amdgpu, y luego instalar amdgpu-pro-opencl que instala solamente la parte opencl del driver amdgpu-pro para que funcione sobre el amdgpu del kernel.

Oficialmente no está soportado por AMD, pero funciona.

Intenta usar la versión más nueva posible del kernel, para tener amdgpu actualizado al máximo, y también necesitarás llvm-5.0.0.

No hace falta que tengas todos los paquetes en ~amd64, sólo los imprescindibles.

En /etc/make.conf has de poner:

VIDEO_CARDS="amdgpu radeonsi"

LLVM_TARGETS="AMDGPU"

También deberías poner en el USE las uses opencl y opengl, para que los programas se compilen con soporte para usarlos.

----------

## papu

 *pcmaster wrote:*   

> Has de compilar el kernel con soporte amdgpu, NO con soporte radeon.
> 
> Aquí tienes la wiki de Gentoo donde explica cómo instalarlo: https://wiki.gentoo.org/wiki/AMDGPU
> 
> Has de configurar xorg con el driver amdgpu, y luego instalar amdgpu-pro-opencl que instala solamente la parte opencl del driver amdgpu-pro para que funcione sobre el amdgpu del kernel.
> ...

 

si todo eso ya lo tengo puesto, ya que estoy usando el amdgpu precisamente desde me compre la rx 470,  

¿entonces solo es instalar el amdgpu-pro y funciona como una capa superior al del xf86-video-amdgpu?

? 

slo me faltaria eso segun lo que dices...  ¿tu lo tienes asi entonces con xf86-video-amdgpu + amdgpu-pro-cl a la vez...

----------

## pelelademadera

 *papu wrote:*   

>  *pcmaster wrote:*   Has de compilar el kernel con soporte amdgpu, NO con soporte radeon.
> 
> Aquí tienes la wiki de Gentoo donde explica cómo instalarlo: https://wiki.gentoo.org/wiki/AMDGPU
> 
> Has de configurar xorg con el driver amdgpu, y luego instalar amdgpu-pro-opencl que instala solamente la parte opencl del driver amdgpu-pro para que funcione sobre el amdgpu del kernel.
> ...

 

hasta donde lo use yo si, es como si fuera algo adicional al driver del kernel

----------

## papu

 *pelelademadera wrote:*   

>  *papu wrote:*    *pcmaster wrote:*   Has de compilar el kernel con soporte amdgpu, NO con soporte radeon.
> 
> Aquí tienes la wiki de Gentoo donde explica cómo instalarlo: https://wiki.gentoo.org/wiki/AMDGPU
> 
> Has de configurar xorg con el driver amdgpu, y luego instalar amdgpu-pro-opencl que instala solamente la parte opencl del driver amdgpu-pro para que funcione sobre el amdgpu del kernel.
> ...

 

mañana lo miro a ver

```
sudo emerge -a amdgpu-pro-opencl 

These are the packages that would be merged, in order:

Calculating dependencies     ... done!           

[ebuild  N     ] dev-util/patchelf-0.9::gentoo  0 KiB

[ebuild  N     ] dev-libs/ocl-icd-2.2.11::gentoo  0 KiB

[ebuild  N F   ] dev-libs/amdgpu-pro-opencl-17.50.511655::gentoo  535035 KiB

Total: 3 packages (3 new), Size of downloads: 535035 KiB

Fetch Restriction: 1 package (1 unsatisfied)

Fetch instructions for dev-libs/amdgpu-pro-opencl-17.50.511655:

 * Please download the Radeon Software for Linux Driver 17.50 for Ubuntu from

 *     https://support.amd.com/en-us/kb-articles/Pages/Radeon-Software-for-Linux-Release-Notes.aspx

 * The archive should then be placed into /mnt/sources/distfiles.

Would you like to merge these packages? [Yes/No]
```

LLVM_TARGETS="AMDGPU"  esto ya se compila usando amdgpu en VIDEO_CARDS  ¿porque lo pones?

lo único que veo es que quita las uses BFP y NVPTX que no entiendo por que se compilan por defecto  :Smile: 

https://i.imgur.com/Wz5zkHf.png

----------

## papu

aja esto en teoria hace funcionar opencl bajo linux usando el amdgpu del nucleo pero no  el opengl ni vulkan del driver privativo...leí mal el post jejeje...de todas formas no se con que testear el opencl con lo que tiene soporte en mi sistema que ahora mismo es:

```
app-emulation/wine-any-2.19: +opencl

media-gfx/imagemagick-7.0.7.21: +opencl

media-libs/mesa-17.3.1: +opencl

media-libs/x264-0.0.20170701: +opencl

glxinfo | egrep -i 'opengl|opencl'

OpenGL vendor string: X.Org

OpenGL renderer string: AMD Radeon (TM) RX 470 Graphics (POLARIS10 / DRM 3.19.0 / 4.14.13-gentoo, LLVM 5.0.1)

OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.3.1

OpenGL core profile shading language version string: 4.50

OpenGL core profile context flags: (none)

OpenGL core profile profile mask: core profile

OpenGL core profile extensions:

OpenGL version string: 3.0 Mesa 17.3.1

OpenGL shading language version string: 1.30

OpenGL context flags: (none)

OpenGL extensions:

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.3.1

OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

OpenGL ES profile extensions:

```

 :Wink: 

por cierto ¿tu tienes problemas con el cliente steam? no se si lo usas

la problematica esta en este foro --> https://forums.gentoo.org/viewtopic-t-994522-postdays-0-postorder-asc-start-25.html

¿has testeado las demos 3d de unigine? si bien se lanza los menus las demos no me funcionan 

https://unigine.com/en/products/benchmarks

```
~/.svn/Unigine_Valley-1.0 $ ./valley 

Loading "/home/papu/.svn/Unigine_Valley-1.0/bin/../data/valley_1.0.cfg"...

Loading "libGPUMonitor_x64.so"...

Unigine fatal error

Engine::init(): can't initialize filesystem                                                                                                                                                                       

Shutdown
```

----------

## pcmaster

No tengo instalado steam

Acabo de probar la demo Valley y ha funcionado:

https://ibb.co/hovggm

Lo único es que no detecta bien del todo el modelo de gráfica, dice que es de 256 mb, supongo que por ser una demo antigua de 2013, porque en la página de la demo dice que necesita 512 MB. Y funciona.

```

$ ./valley

Loading "/home/paco/Documentos/benchmark/Unigine_Valley-1.0/bin/../data/valley_1.0.cfg"...

Loading "libGPUMonitor_x64.so"...

Loading "libGL.so.1"...

Loading "libopenal.so.1"...

Set 1440x900 fullscreen video mode

Set 1.00 gamma value

Unigine engine http://unigine.com/

Binary: Linux 64bit GCC 4.4.5 Release Feb 14 2013 r11294

Features: OpenGL OpenAL XPad360 Joystick Flash Editor

App path:  /home/paco/Documentos/benchmark/Unigine_Valley-1.0/bin/

Data path: /home/paco/Documentos/benchmark/Unigine_Valley-1.0/data/

Save path: /home/paco/.Valley/

---- System ----

System: Linux 4.14.11-gentoo-r2 x86_64

CPU: Intel(R) Core(TM)2 Duo CPU     E6550  @ 2.33GHz 2333MHz MMX SSE SSE2 SSE3 SSSE3 HTT x2

GPU: Unknown GPU x1

System memory: 3955 MB

Video memory:  256 MB

Sync threads:  1

Async threads: 2

...

...

...

---- Render ----

GLRender::GLRender(): Unknown ATI GPU

OpenGL vendor:   X.Org

OpenGL renderer: Radeon RX 580 Series (AMD POLARIS10 / DRM 3.19.0 / 4.14.11-gentoo-r2, LLVM 5.0.0)

OpenGL version:  4.5 (Core Profile) Mesa 17.2.7

OpenGL flags:    Core Profile

Found required GL_ARB_map_buffer_range

Found required GL_ARB_vertex_array_object

Found required GL_ARB_draw_instanced

Found required GL_ARB_draw_elements_base_vertex

...

...

...

```

yo tengo las siguientes librerías instaladas, prueba con las mismas versiones.

 mesa-17.2.7

 llvm-5.0.0

El resultado de la demo Superposition: http://ibb.co/j5oj1m  :Wink: 

----------

## papu

no entiendo que diablos pasa, si eres tan amable  dime la salidas de  

glxinfo | egrep -i opengl 

emerge --info 

equery u libdrm mesa xf86-video-amdgpu llvm

dmesg|egrep -i 'drm|amdgpu'

egrep -i 'drm|agp|amdgpu' /boot/config-`uname -r`

MI emerge --info -->https://paste.pound-python.org/show/GgrBixtBeS2cR0TKRJhC/

quizás creo que tenga que ver con que no me detecta bien la version del opengl las cosas, quizás debido al escritorio plasma ¿que escritorio usas tu?

----------

## pcmaster

Yo uso el escritorio xfce4

Ahora estoy actualizarndo cosas, que por cierto, del paquete llvm se acaba de marcar como estable la versión 5.0.1. Espero que la actualización no rompa nada  :Wink: 

Si tienes problemas con el OpenGL, mira a ver el resultado de la orden eselect opengl list. En mi caso es:

$ eselect opengl list

Available OpenGL implementations:

  [1]   xorg-x11 *

$

Prueba con la última versión estable de mesa, no sea que la más nueva tenga algún bug.

En el caso de Opencl:

$ eselect opencl list

Available OpenCL implementations:

  [1]   mesa

  [2]   ocl-icd *

$ 

El resultado de dmesg|egrep -i 'drm|amdgpu': https://paste.pound-python.org/show/WO9fItPMMEeuu4e8vuUn/

El de egrep -i 'drm|agp|amdgpu' /boot/config-`uname -r`: No existe el archivo.

En /boot tengo los archivos del kernel, System.map y el initramfs, y cuando compilo un nuevo kernel lo instalo con este script instala.sh que tengo también en /boot:

```

#! /bin/bash

KERNEL=`eselect kernel list|grep "*"|cut -d"]" -f 2|cut -d "*" -f 1|sed 's/^[ v]*//'|sed 's/[ v]*$//'`

KERNEL=`echo $KERNEL|sed s/"linux"/"kernel"/g`

MAP=`echo ${KERNEL}|sed s/"kernel"/"System.map"/g`

echo Instalando kernel ${KERNEL}

cp /usr/src/linux/arch/x86_64/boot/bzImage /boot/${KERNEL}

echo Instalando System.map ${MAP}

cp /usr/src/linux/System.map /boot/${MAP}

genkernel --install --no-ramdisk-modules initramfs

#iucode_tool -S --write-earlyfw=/boot/early_ucode.cpio /lib/firmware/intel-ucode/*

grub-mkconfig -o /boot/grub/grub.cfg

```

La línea del iucode es nueva, la he puesto pero comentado porque las última versiones del microcódigo requieren que se actualice pronto el microcódigo por un problema con algunos procesadores, y sólo habrá que ejecutarla si se actualiza el paquete intel-microcode

Cuando acabe la actualización te pongo los otros.

--- Edito ---

equery u libdrm mesa xf86-video-amdgpu llvm ->  https://paste.pound-python.org/show/p6TMElPs9Y89Tof5f25b/

Resultado de glxinfo | egrep -i opengl:

```
Core2Duo ~ # glxinfo | egrep -i opengl

OpenGL vendor string: X.Org

OpenGL renderer string: Radeon RX 580 Series (AMD POLARIS10 / DRM 3.19.0 / 4.14.11-gentoo-r2, LLVM 5.0.0)

OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.2.7

OpenGL core profile shading language version string: 4.50

OpenGL core profile context flags: (none)

OpenGL core profile profile mask: core profile

OpenGL core profile extensions:

OpenGL version string: 3.0 Mesa 17.2.7

OpenGL shading language version string: 1.30

OpenGL context flags: (none)

OpenGL extensions:

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.2.7

OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

OpenGL ES profile extensions:

Core2Duo ~ # 

```

Resultado de emerge --info: -> https://paste.pound-python.org/show/SHnQzVvAjp88L8ki3Dmx/

A ver si te sirve de algo.

----------

## papu

egrep -i 'drm|agp|amdgpu' /boot/config-`uname -r` esta es importante lee del .config del kernel 

egrep -i 'drm|agp|amdgpu' /usr/src/linux/.config   haria lo mismo que la de arriba

también puede estar el .config  en  /proc/config.gz 

veo que usas genkernel yo compilo a mano el kernel , quizás alguna configuración extra de el apartado drivers graficos este la clave...luego miro con más detalle tus salidas que no estoy en gentoo ahora contestando esto   :Wink: 

----------

## pcmaster

Hola,

El kernel lo compilo a mano, el genkernel lo uso solamente para generar el initrd.

Para compilar el kernel hago un make manuconfig, make, make modules_install, y luego con el script que he puesto antes lo instalo.

La orden egrep -i 'drm|agp|amdgpu' /usr/src/linux/.config da:

```

Core2Duo ~ # egrep -i 'drm|agp|amdgpu' /usr/src/linux/.config

# CONFIG_AGP is not set

CONFIG_DRM=m

# CONFIG_DRM_DP_AUX_CHARDEV is not set

# CONFIG_DRM_DEBUG_MM_SELFTEST is not set

CONFIG_DRM_KMS_HELPER=m

CONFIG_DRM_KMS_FB_HELPER=y

CONFIG_DRM_FBDEV_EMULATION=y

CONFIG_DRM_FBDEV_OVERALLOC=100

# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set

CONFIG_DRM_TTM=m

# CONFIG_DRM_I2C_CH7006 is not set

# CONFIG_DRM_I2C_SIL164 is not set

# CONFIG_DRM_I2C_NXP_TDA998X is not set

# CONFIG_DRM_RADEON is not set

CONFIG_DRM_AMDGPU=m

# CONFIG_DRM_AMDGPU_SI is not set

# CONFIG_DRM_AMDGPU_CIK is not set

CONFIG_DRM_AMDGPU_USERPTR=y

# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set

# CONFIG_DRM_AMD_ACP is not set

# CONFIG_DRM_NOUVEAU is not set

# CONFIG_DRM_I915 is not set

# CONFIG_DRM_VGEM is not set

# CONFIG_DRM_VMWGFX is not set

# CONFIG_DRM_GMA500 is not set

# CONFIG_DRM_UDL is not set

# CONFIG_DRM_AST is not set

# CONFIG_DRM_MGAG200 is not set

# CONFIG_DRM_CIRRUS_QEMU is not set

# CONFIG_DRM_QXL is not set

# CONFIG_DRM_BOCHS is not set

CONFIG_DRM_PANEL=y

CONFIG_DRM_BRIDGE=y

CONFIG_DRM_PANEL_BRIDGE=y

# CONFIG_DRM_ANALOGIX_ANX78XX is not set

# CONFIG_DRM_HISI_HIBMC is not set

# CONFIG_DRM_TINYDRM is not set

# CONFIG_DRM_LEGACY is not set

# CONFIG_DRM_LIB_RANDOM is not set

```

Básicamente, está compilado el soporte para amdgpu y vesa, nada más.

En tu caso veo que tienes soporte para otras gráficas, como la Intel, si no las usas yo lo quitaría.

----------

## papu

no entiendo un pijo debería funconarme los unigine tenemos practicametne la misma tarjeta de hecho usan los mismos firmwares POLARIS10 	RX 470, RX 480, RX 570, RX 580 	amdgpu/polaris10_{ce,k_smc,mc,me,mec2,mec,pfp,rlc,sdma1,sdma,smc,smc_sk,uvd,vce}.bin

tenemos la misma configuración lo unico que yo compilo como * y por lo tanto he de escribir los firmware de amd en el nucleo, pero aunque no los ponta ahi que no es necesario si se compila el driver de amd 

como M como tu tienes, en el listado dmesg no te salen por ningun lado lso firmwares y a mi si .  Dejando de banda que tu usas gentoo sources con initrd

```
~ $ dmesg|egrep -i 'drm|amdgpu'

[    0.872815] device class 'drm': registering

[    0.872824] [drm] amdgpu kernel modesetting enabled.

[    0.872826] bus: 'pci': add driver amdgpu

[    0.872828] bus: 'pci': driver_probe_device: matched device 0000:01:00.0 with driver amdgpu

[    0.872829] bus: 'pci': really_probe: probing driver amdgpu with device 0000:01:00.0

[    0.872942] [drm] initializing kernel modesetting (POLARIS10 0x1002:0x67DF 0x1458:0x22D7 0xCF).

[    0.872946] [drm] register mmio base: 0xEFE00000

[    0.872947] [drm] register mmio size: 262144

[    0.872953] [drm] probing gen 2 caps for device 8086:1901 = 261ad03/e

[    0.872954] [drm] probing mlw for device 8086:1901 = 261ad03

[    0.872960] [drm] UVD is enabled in VM mode

[    0.872962] [drm] VCE enabled in VM mode

[    0.873132] amdgpu 0000:01:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff

[    0.873161] [drm] GPU post is not needed

[    0.873218] [drm] vm size is 64 GB, block size is 13-bit, fragment size is 4-bit

[    0.873221] amdgpu 0000:01:00.0: using built-in amdgpu/polaris10_mc.bin

[    0.873225] amdgpu 0000:01:00.0: VRAM: 4096M 0x000000F400000000 - 0x000000F4FFFFFFFF (4096M used)

[    0.873227] amdgpu 0000:01:00.0: GTT: 256M 0x0000000000000000 - 0x000000000FFFFFFF

[    0.873230] [drm] Detected VRAM RAM=4096M, BAR=256M

[    0.873231] [drm] RAM width 256bits GDDR5

[    0.873288] [drm] amdgpu: 4096M of VRAM memory ready

[    0.873289] [drm] amdgpu: 4096M of GTT memory ready.

[    0.873313] [drm] GART: num cpu pages 65536, num gpu pages 65536

[    0.873381] [drm] PCIE GART of 256M enabled (table at 0x000000F400040000).

[    0.873395] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).

[    0.873396] [drm] Driver supports precise vblank timestamp query.

[    0.873425] amdgpu 0000:01:00.0: amdgpu: using MSI.

[    0.873435] [drm] amdgpu: irq initialized.

[    0.986015] amdgpu: [powerplay] amdgpu: powerplay sw initialized

[    0.986087] [drm] AMDGPU Display Connectors

[    0.986088] [drm] Connector 0:

[    0.986089] [drm]   DP-1

[    0.986089] [drm]   HPD6

[    0.986090] [drm]   DDC: 0x4868 0x4868 0x4869 0x4869 0x486a 0x486a 0x486b 0x486b

[    0.986091] [drm]   Encoders:

[    0.986092] [drm]     DFP1: INTERNAL_UNIPHY2

[    0.986093] [drm] Connector 1:

[    0.986093] [drm]   DP-2

[    0.986094] [drm]   HPD4

[    0.986095] [drm]   DDC: 0x4870 0x4870 0x4871 0x4871 0x4872 0x4872 0x4873 0x4873

[    0.986096] [drm]   Encoders:

[    0.986097] [drm]     DFP2: INTERNAL_UNIPHY2

[    0.986097] [drm] Connector 2:

[    0.986098] [drm]   DP-3

[    0.986099] [drm]   HPD1

[    0.986099] [drm]   DDC: 0x486c 0x486c 0x486d 0x486d 0x486e 0x486e 0x486f 0x486f

[    0.986100] [drm]   Encoders:

[    0.986101] [drm]     DFP3: INTERNAL_UNIPHY1

[    0.986102] [drm] Connector 3:

[    0.986102] [drm]   HDMI-A-1

[    0.986103] [drm]   HPD5

[    0.986104] [drm]   DDC: 0x4874 0x4874 0x4875 0x4875 0x4876 0x4876 0x4877 0x4877

[    0.986105] [drm]   Encoders:

[    0.986105] [drm]     DFP4: INTERNAL_UNIPHY1

[    0.986106] [drm] Connector 4:

[    0.986107] [drm]   DVI-D-1

[    0.986107] [drm]   HPD3

[    0.986108] [drm]   DDC: 0x487c 0x487c 0x487d 0x487d 0x487e 0x487e 0x487f 0x487f

[    0.986109] [drm]   Encoders:

[    0.986110] [drm]     DFP5: INTERNAL_UNIPHY

[    0.986114] amdgpu 0000:01:00.0: using built-in amdgpu/polaris10_pfp.bin

[    0.986115] amdgpu 0000:01:00.0: using built-in amdgpu/polaris10_me.bin

[    0.986115] amdgpu 0000:01:00.0: using built-in amdgpu/polaris10_ce.bin

[    0.986116] amdgpu 0000:01:00.0: using built-in amdgpu/polaris10_rlc.bin

[    0.986118] amdgpu 0000:01:00.0: using built-in amdgpu/polaris10_mec.bin

[    0.986119] amdgpu 0000:01:00.0: using built-in amdgpu/polaris10_mec2.bin

[    0.986269] amdgpu 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000000400040, cpu addr 0xffffc900001cc040

[    0.986385] amdgpu 0000:01:00.0: fence driver on ring 1 use gpu addr 0x00000000004000c0, cpu addr 0xffffc900001cc0c0

[    0.986578] amdgpu 0000:01:00.0: fence driver on ring 2 use gpu addr 0x0000000000400140, cpu addr 0xffffc900001cc140

[    0.986623] amdgpu 0000:01:00.0: fence driver on ring 3 use gpu addr 0x00000000004001c0, cpu addr 0xffffc900001cc1c0

[    0.986699] amdgpu 0000:01:00.0: fence driver on ring 4 use gpu addr 0x0000000000400240, cpu addr 0xffffc900001cc240

[    0.986781] amdgpu 0000:01:00.0: fence driver on ring 5 use gpu addr 0x00000000004002c0, cpu addr 0xffffc900001cc2c0

[    0.986878] amdgpu 0000:01:00.0: fence driver on ring 6 use gpu addr 0x0000000000400340, cpu addr 0xffffc900001cc340

[    0.986940] amdgpu 0000:01:00.0: fence driver on ring 7 use gpu addr 0x00000000004003c0, cpu addr 0xffffc900001cc3c0

[    0.986994] amdgpu 0000:01:00.0: fence driver on ring 8 use gpu addr 0x0000000000400440, cpu addr 0xffffc900001cc440

[    0.987008] amdgpu 0000:01:00.0: fence driver on ring 9 use gpu addr 0x00000000004004e0, cpu addr 0xffffc900001cc4e0

[    0.987280] amdgpu 0000:01:00.0: using built-in amdgpu/polaris10_sdma.bin

[    0.987281] amdgpu 0000:01:00.0: using built-in amdgpu/polaris10_sdma1.bin

[    0.987333] amdgpu 0000:01:00.0: fence driver on ring 10 use gpu addr 0x0000000000400560, cpu addr 0xffffc900001cc560

[    0.987392] amdgpu 0000:01:00.0: fence driver on ring 11 use gpu addr 0x00000000004005e0, cpu addr 0xffffc900001cc5e0

[    0.987399] amdgpu 0000:01:00.0: using built-in amdgpu/polaris10_uvd.bin

[    0.987399] [drm] Found UVD firmware Version: 1.79 Family ID: 16

[    0.987647] amdgpu 0000:01:00.0: fence driver on ring 12 use gpu addr 0x000000f4002ad420, cpu addr 0xffffc9000085a420

[    0.987653] amdgpu 0000:01:00.0: using built-in amdgpu/polaris10_vce.bin

[    0.987654] [drm] Found VCE firmware Version: 52.4 Binary ID: 3

[    0.987769] amdgpu 0000:01:00.0: fence driver on ring 13 use gpu addr 0x00000000004006e0, cpu addr 0xffffc900001cc6e0

[    0.987871] amdgpu 0000:01:00.0: fence driver on ring 14 use gpu addr 0x0000000000400760, cpu addr 0xffffc900001cc760

[    0.988015] amdgpu 0000:01:00.0: using built-in amdgpu/polaris10_smc.bin

[    1.041034] [drm] ring test on 0 succeeded in 15 usecs

[    1.041521] [drm] ring test on 9 succeeded in 10 usecs

[    1.041539] [drm] ring test on 1 succeeded in 8 usecs

[    1.041577] [drm] ring test on 2 succeeded in 19 usecs

[    1.041606] [drm] ring test on 3 succeeded in 14 usecs

[    1.041633] [drm] ring test on 4 succeeded in 13 usecs

[    1.041662] [drm] ring test on 5 succeeded in 14 usecs

[    1.041689] [drm] ring test on 6 succeeded in 13 usecs

[    1.041718] [drm] ring test on 7 succeeded in 14 usecs

[    1.041745] [drm] ring test on 8 succeeded in 13 usecs

[    1.041789] [drm] ring test on 10 succeeded in 6 usecs

[    1.041796] [drm] ring test on 11 succeeded in 6 usecs

[    1.068736] [drm] ring test on 12 succeeded in 1 usecs

[    1.068737] [drm] UVD initialized successfully.

[    1.179722] [drm] ring test on 13 succeeded in 7 usecs

[    1.179732] [drm] ring test on 14 succeeded in 3 usecs

[    1.179733] [drm] VCE initialized successfully.

[    1.179928] [drm] ib test on ring 0 succeeded

[    1.180139] [drm] ib test on ring 1 succeeded

[    1.180224] [drm] ib test on ring 2 succeeded

[    1.180308] [drm] ib test on ring 3 succeeded

[    1.180394] [drm] ib test on ring 4 succeeded

[    1.180478] [drm] ib test on ring 5 succeeded

[    1.180530] [drm] ib test on ring 6 succeeded

[    1.180580] [drm] ib test on ring 7 succeeded

[    1.180630] [drm] ib test on ring 8 succeeded

[    1.703655] [drm] ib test on ring 9 succeeded

[    1.703767] [drm] ib test on ring 10 succeeded

[    1.703858] [drm] ib test on ring 11 succeeded

[    1.705595] [drm] ib test on ring 12 succeeded

[    1.705961] [drm] ib test on ring 13 succeeded

[    1.891048] [drm] fb mappable at 0xD04B7000

[    1.891050] [drm] vram apper at 0xD0000000

[    1.891051] [drm] size 8294400

[    1.891052] [drm] fb depth is 24

[    1.891053] [drm]    pitch is 7680

[    1.891180] fbcon: amdgpudrmfb (fb0) is primary device

[    2.253614] amdgpu 0000:01:00.0: fb0: amdgpudrmfb frame buffer device

[    2.253892] [drm] Initialized amdgpu 3.19.0 20150101 for 0000:01:00.0 on minor 0

[    2.253910] driver: 'amdgpu': driver_bound: bound to device '0000:01:00.0'

[    2.253914] bus: 'pci': really_probe: bound device 0000:01:00.0 to driver amdgpu
```

```
~ $ egrep -i 'drm|agp|amdgpu' /usr/src/linux/.config| egrep -v "^#"

CONFIG_EXTRA_FIRMWARE="intel-ucode/06-5e-03 amdgpu/polaris10_ce.bin amdgpu/polaris10_k_smc.bin amdgpu/polaris10_mc.bin amdgpu/polaris10_me.bin amdgpu/polaris10_mec2.bin amdgpu/polaris10_mec.bin amdgpu/polaris10_pfp.bin amdgpu/polaris10_rlc.bin amdgpu/polaris10_sdma1.bin amdgpu/polaris10_sdma.bin amdgpu/polaris10_smc.bin amdgpu/polaris10_smc_sk.bin amdgpu/polaris10_uvd.bin amdgpu/polaris10_vce.bin"

CONFIG_DRM=y

CONFIG_DRM_KMS_HELPER=y

CONFIG_DRM_KMS_FB_HELPER=y

CONFIG_DRM_FBDEV_EMULATION=y

CONFIG_DRM_FBDEV_OVERALLOC=100

CONFIG_DRM_TTM=y

CONFIG_DRM_AMDGPU=y

CONFIG_DRM_AMDGPU_USERPTR=y

CONFIG_DRM_AMDGPU_GART_DEBUGFS=y

CONFIG_DRM_AMD_ACP=y

CONFIG_DRM_PANEL=y

CONFIG_DRM_BRIDGE=y

CONFIG_DRM_PANEL_BRIDGE=y

CONFIG_DRM_VBOXVIDEO=m

```

```
 ~ $ glxinfo | egrep -i opengl

OpenGL vendor string: X.Org

OpenGL renderer string: AMD Radeon (TM) RX 470 Graphics (POLARIS10 / DRM 3.19.0 / 4.14.14-gentoo, LLVM 5.0.1)

OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.3.1

OpenGL core profile shading language version string: 4.50

OpenGL core profile context flags: (none)

OpenGL core profile profile mask: core profile

OpenGL core profile extensions:

OpenGL version string: 3.0 Mesa 17.3.1

OpenGL shading language version string: 1.30

OpenGL context flags: (none)

OpenGL extensions:

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.3.1

OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

OpenGL ES profile extensions:
```

acabo de entrar en antergos y me ocurre exactamente lo mismo con los unigine  y esto ya me mosquea porque no me parece normal.

las salidas en antergos del dmesg son idénticas  las tuyas con la diferencia obvia del modelo

gnu/linux ANTERGOS/xfce:  https://paste.pound-python.org/show/nlx5lDDrKWXTgfEJvXy1/

----------

## papu

¿tienes algo configurado en /etc/X11/xorg.conf.d  al respecto? yo nada ya que se detecta todo ya automatico o deberia pero por preguntar.

de paso pues también   sudo ls -lah /dev/dri/*

```
~ $ sudo ls -lah /dev/dri/*

crw-rw----+ 1 root video 226,   0 19 gen 15:48 /dev/dri/card0

crw-rw----+ 1 root video 226, 128 19 gen 15:48 /dev/dri/renderD128

/dev/dri/by-path:

total 0

drwxr-xr-x 2 root root  80 19 gen 15:48 .

drwxr-xr-x 3 root root 100 19 gen 15:48 ..

lrwxrwxrwx 1 root root   8 19 gen 15:48 pci-0000:01:00.0-card -> ../card0

lrwxrwxrwx 1 root root  13 19 gen 15:48 pci-0000:01:00.0-render -> ../renderD128
```

----------

## pcmaster

Nada de otro mundo:

```
Core2Duo ~ # cat /etc/X11/xorg.conf

Section "ServerLayout"

   Identifier     "aticonfig Layout"

   Screen      0  "aticonfig-Screen[0]-0" 0 0

EndSection

Section "Module"

EndSection

Section "Monitor"

   Identifier   "aticonfig-Monitor[0]-0"

   Option       "VendorName" "ATI Proprietary Driver"

   Option       "ModelName" "Generic Autodetecting Monitor"

   Option       "DPMS" "true"

EndSection

Section "Device"

   Identifier  "aticonfig-Device[0]-0"

#   Driver      "fglrx"

   Driver      "amdgpu"

#   Driver      "radeon"

   BusID       "PCI:1:0:0"

EndSection

Section "Screen"

   Identifier "aticonfig-Screen[0]-0"

   Device     "aticonfig-Device[0]-0"

   Monitor    "aticonfig-Monitor[0]-0"

   DefaultDepth     24

   SubSection "Display"

      Viewport   0 0

      Depth     24

   EndSubSection

EndSection

Core2Duo ~ # 
```

Y los dispositivos están bien:

```

Core2Duo ~ # ls -lahR /dev/dri*

/dev/dri:

total 0

drwxr-xr-x   3 root root       100 ene 19 07:25 .

drwxr-xr-x  20 root root       15K ene 19 07:25 ..

drwxr-xr-x   2 root root        80 ene 19 07:25 by-path

crw-rw----+  1 root video 226,   0 ene 19 07:25 card0

crw-rw----+  1 root video 226, 128 ene 19 07:25 renderD128

/dev/dri/by-path:

total 0

drwxr-xr-x 2 root root  80 ene 19 07:25 .

drwxr-xr-x 3 root root 100 ene 19 07:25 ..

lrwxrwxrwx 1 root root   8 ene 19 07:25 pci-0000:01:00.0-card -> ../card0

lrwxrwxrwx 1 root root  13 ene 19 07:25 pci-0000:01:00.0-render -> ../renderD128

Core2Duo ~ # 
```

Opencl me costó más configurarlo, pero opengl es que se configura solo. Asegúrate por si acaso de tener instaladas las últimas versiones ESTABLES de mesa y xf86-video-amdgpu:

```
Core2Duo ~ # emerge -p mesa xf86-video-amdgpu

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   R    ] media-libs/mesa-17.2.7 

[ebuild   R    ] x11-drivers/xf86-video-amdgpu-1.3.0 

Core2Duo ~ # 

```

y de tenerlo configurado

```

Core2Duo ~ # eselect opengl list

Available OpenGL implementations:

  [1]   xorg-x11 *

Core2Duo ~ # 
```

Si tienes opengl bien instalado debería funcionar la utilidad de test glxgears

Acabo de ver que no tienes el módulo amdgpu como módulo sino metido en el núcleo. Supongo que el fimware lo has puesto correctamente... si no, prueba a ponerlo como modulo, si lo haces así sólo con tener instalado linux-firmware ya debería funcionar.

----------

## papu

ya me funciona resulta que han de estar instaladas las demos en el direcorio raiz del usuario ,he insalado el run por probar desde el navegador de ficheros y se mete por defecto en ~/ 

bueno por el camino he pulido algunas cosas , siempre se aprende algo.

luego pongo o que me da me voy a bajar el ultimo también a ver

esta correcto al mismo nivel, aunque la cosa sería Vulkan  :Smile: 

capturas: 

Valley:

https://i.imgur.com/SvqCgII.jpg

Superposition: 

https://i.imgur.com/0vp8L0Q.jpg

es curioso el superposition no me detecta bien la ram en gentoo:

https://i.imgur.com/SbvS626.jpg

----------

## papu

a ve si alguin dia instalas steam para ver si te pasa el mismo problema que a mi, y parece que tambíen a más personas , es algo de amd (creo), de hecho el cliente steam de gentoo no acepta  amdgpu en sus USE.

pero en antergos(xfce) si me va bien asi que obviamente no sera por el amdgpu...sino más bien por algun defectillo en gentoo o quizás del escritorio plasma

https://forums.gentoo.org/viewtopic-t-994522-postdays-0-postorder-asc-start-25.html

p.d: con el nuevo media-libs/mesa-18.0.0_rc2  parece que al fin se hace visible el steam

 :Wink: 

----------

