Initial amdgpu driver release
On Mon, Apr 20, 2015 at 6:33 PM, Alex Deucher wrote: > I'm pleased to announce the initial release of the new amdgpu driver. > This is a partial replacement for the radeon driver for newer AMD > asics. A number of components are still shared. Here is a comparison > of the radeon and amdgpu stacks: > > 1. radeon stack > kernel driver: radeon.ko > libdrm: libdrm_radeon > mesa: radeon, r200, r300, r600, radeonsi > ddx: xf86-video-ati > > 2. amdgpu stack > kernel driver: amdgpu.ko > libdrm: libdrm_amdgpu > mesa: radeonsi > ddx: xf86-video-amdgpu > > Older asics will continue to be supported by the radeon stack; new > asics will be supported by the amdgpu stack. CI (Sea Islands) asics > have support in both driver stacks, but this is purely for testing > purposes. CI parts are officially supported in the radeon stack. > Support for CI on the amdgpu stack is determined by a config option in > the kernel. CI support is not enabled by default for amdgpu. > > Most of our focus has been on Carrizo support, so there are some gaps > in the dGPU support for Tonga and Iceland, notably power management. > Those gaps will be filled in eventually. > > Also included in this code base are full register headers for just > about every block on the asics. > > Barring the gaps mentioned above, the driver stack is functionally on > par with radeon including: > - OpenGL 3.3 support using the radeonsi mesa driver > - Video decode support using UVD > - Video encode support using VCE > > The code can be found in the amdgpu branches of the following git trees. > xf86-video-amdgpu: > http://cgit.freedesktop.org/~agd5f/xf86-video-amdgpu/log/?h=amdgpu > libdrm: > http://cgit.freedesktop.org/~agd5f/drm/log/?h=amdgpu > kernel: > http://cgit.freedesktop.org/~agd5f/linux/log/?h=amdgpu > mesa: > http://cgit.freedesktop.org/~mareko/mesa/log/?h=amdgpu Some updates on the latest source locations: xf86-video-amdgpu: http://cgit.freedesktop.org/xorg/driver/xf86-video-amdgpu libdrm: http://cgit.freedesktop.org/~agd5f/drm/log/?h=amdgpu kernel: http://cgit.freedesktop.org/amd/drm-amd/ mesa: http://cgit.freedesktop.org/mesa/mesa/log/?h=amdgpu Alex > > To test the new driver stack you will need to specify a device section > in your xorg.conf with the driver set to amdgpu rather than radeon. > > Please review! > > Thanks, > > The AMD Linux Driver Team
Initial amdgpu driver release
On Fri, Apr 24, 2015 at 9:43 AM, Zhou, Jammy wrote: > Hi Alex, > > For the core driver patch: > > +config DRM_AMDGPU > + tristate "AMD GPU" > + depends on DRM && PCI > + select FB_CFB_FILLRECT > + select FB_CFB_COPYAREA > + select FB_CFB_IMAGEBLIT > + select FW_LOADER > +select DRM_KMS_HELPER > + select DRM_KMS_FB_HELPER > +select DRM_TTM > + select POWER_SUPPLY > + select HWMON > + select BACKLIGHT_CLASS_DEVICE > + select DRM_AMD_GNB_BUS > + select INTERVAL_TREE > > I think DRM_AMD_GNB_BUS is not used, we can probably remove it now. > > +/* TODO: Here are things that needs to be done : > + * - surface allocator & initializer : (bit like scratch reg) should > + * initialize HDP_ stuff on RS600, R600, R700 hw, well anythings > + * related to surface > + * - WB : write back stuff (do it bit like scratch reg things) > + * - Vblank : look at Jesse's rework and what we should do > + * - r600/r700: gart & cp > + * - cs : clean cs ioctl use bitmap & things like that. > + * - power management stuff > + * - Barrier in gart code > + * - Unmappabled vram ? > + * - TESTING, TESTING, TESTING > + */ > + > +/* Initialization path: > + * We expect that acceleration initialization might fail for various > + * reasons even thought we work hard to make it works on most > + * configurations. In order to still have a working userspace in such > + * situation the init path must succeed up to the memory controller > + * initialization point. Failure before this point are considered as > + * fatal error. Here is the init callchain : > + * amdgpu_device_init perform common structure, mutex initialization > + * asic_init setup the GPU memory layout and perform all > + * one time initialization (failure in this > + * function are considered fatal) > + * asic_startupsetup the GPU acceleration, in order to > + * follow guideline the first thing this > + * function should do is setting the GPU > + * memory controller (only MC setup failure > + * are considered as fatal) > + */ > + > These should be outdated, and I think they can be removed now. > > For the uapi header patch: > > +#define AMDGPU_TILING_MACRO0x1 > +#define AMDGPU_TILING_MICRO0x2 > +#define AMDGPU_TILING_SWAP_16BIT 0x4 > +#define AMDGPU_TILING_R600_NO_SCANOUT > AMDGPU_TILING_SWAP_16BIT > +#define AMDGPU_TILING_SWAP_32BIT 0x8 > +/* this object requires a surface when mapped - i.e. front buffer */ > +#define AMDGPU_TILING_SURFACE 0x10 > +#define AMDGPU_TILING_MICRO_SQUARE 0x20 > +#define AMDGPU_TILING_EG_BANKW_SHIFT 8 > +#define AMDGPU_TILING_EG_BANKW_MASK0xf > +#define AMDGPU_TILING_EG_BANKH_SHIFT 12 > +#define AMDGPU_TILING_EG_BANKH_MASK0xf > +#define AMDGPU_TILING_EG_MACRO_TILE_ASPECT_SHIFT 16 > +#define AMDGPU_TILING_EG_MACRO_TILE_ASPECT_MASK0xf > +#define AMDGPU_TILING_EG_TILE_SPLIT_SHIFT 24 > +#define AMDGPU_TILING_EG_TILE_SPLIT_MASK 0xf > +#define AMDGPU_TILING_EG_STENCIL_TILE_SPLIT_SHIFT 28 > +#define AMDGPU_TILING_EG_STENCIL_TILE_SPLIT_MASK 0xf > .. > +#define SI_TILE_MODE_COLOR_LINEAR_ALIGNED 8 > +#define SI_TILE_MODE_COLOR_1D 13 > +#define SI_TILE_MODE_COLOR_1D_SCANOUT 9 > +#define SI_TILE_MODE_COLOR_2D_8BPP 14 > +#define SI_TILE_MODE_COLOR_2D_16BPP15 > +#define SI_TILE_MODE_COLOR_2D_32BPP16 > +#define SI_TILE_MODE_COLOR_2D_64BPP17 > +#define SI_TILE_MODE_COLOR_2D_SCANOUT_16BPP11 > +#define SI_TILE_MODE_COLOR_2D_SCANOUT_32BPP12 > +#define SI_TILE_MODE_DEPTH_STENCIL_1D 4 > +#define SI_TILE_MODE_DEPTH_STENCIL_2D 0 > +#define SI_TILE_MODE_DEPTH_STENCIL_2D_2AA 3 > +#define SI_TILE_MODE_DEPTH_STENCIL_2D_4AA 3 > +#define SI_TILE_MODE_DEPTH_STENCIL_2D_8AA 2 > + > +#define CIK_TILE_MODE_DEPTH_STENCIL_1D 5 > > It looks these definitions are not used by libdrm_amdgpu anymore (and even by > the kernel driver). Maybe we can remove the unused definitions, and move the > used ones to amdgpu.h instead. Besides, I think we'd better remove > 'R600/EG/SI/CIK' from the naming. The AMDGPU_TILING definitions are used by UMDs to set amdgpu_bo_metadata::tiling_info. I plan to rework them, because they are not sufficient for VI and contain obsolete stuff. The SI/CIK_TILE_MODE definitions can be removed indeed. Marek
Initial amdgpu driver release
Hi Alex, For the core driver patch: +config DRM_AMDGPU + tristate "AMD GPU" + depends on DRM && PCI + select FB_CFB_FILLRECT + select FB_CFB_COPYAREA + select FB_CFB_IMAGEBLIT + select FW_LOADER +select DRM_KMS_HELPER + select DRM_KMS_FB_HELPER +select DRM_TTM + select POWER_SUPPLY + select HWMON + select BACKLIGHT_CLASS_DEVICE + select DRM_AMD_GNB_BUS + select INTERVAL_TREE I think DRM_AMD_GNB_BUS is not used, we can probably remove it now. +/* TODO: Here are things that needs to be done : + * - surface allocator & initializer : (bit like scratch reg) should + * initialize HDP_ stuff on RS600, R600, R700 hw, well anythings + * related to surface + * - WB : write back stuff (do it bit like scratch reg things) + * - Vblank : look at Jesse's rework and what we should do + * - r600/r700: gart & cp + * - cs : clean cs ioctl use bitmap & things like that. + * - power management stuff + * - Barrier in gart code + * - Unmappabled vram ? + * - TESTING, TESTING, TESTING + */ + +/* Initialization path: + * We expect that acceleration initialization might fail for various + * reasons even thought we work hard to make it works on most + * configurations. In order to still have a working userspace in such + * situation the init path must succeed up to the memory controller + * initialization point. Failure before this point are considered as + * fatal error. Here is the init callchain : + * amdgpu_device_init perform common structure, mutex initialization + * asic_init setup the GPU memory layout and perform all + * one time initialization (failure in this + * function are considered fatal) + * asic_startupsetup the GPU acceleration, in order to + * follow guideline the first thing this + * function should do is setting the GPU + * memory controller (only MC setup failure + * are considered as fatal) + */ + These should be outdated, and I think they can be removed now. For the uapi header patch: +#define AMDGPU_TILING_MACRO0x1 +#define AMDGPU_TILING_MICRO0x2 +#define AMDGPU_TILING_SWAP_16BIT 0x4 +#define AMDGPU_TILING_R600_NO_SCANOUT AMDGPU_TILING_SWAP_16BIT +#define AMDGPU_TILING_SWAP_32BIT 0x8 +/* this object requires a surface when mapped - i.e. front buffer */ +#define AMDGPU_TILING_SURFACE 0x10 +#define AMDGPU_TILING_MICRO_SQUARE 0x20 +#define AMDGPU_TILING_EG_BANKW_SHIFT 8 +#define AMDGPU_TILING_EG_BANKW_MASK0xf +#define AMDGPU_TILING_EG_BANKH_SHIFT 12 +#define AMDGPU_TILING_EG_BANKH_MASK0xf +#define AMDGPU_TILING_EG_MACRO_TILE_ASPECT_SHIFT 16 +#define AMDGPU_TILING_EG_MACRO_TILE_ASPECT_MASK0xf +#define AMDGPU_TILING_EG_TILE_SPLIT_SHIFT 24 +#define AMDGPU_TILING_EG_TILE_SPLIT_MASK 0xf +#define AMDGPU_TILING_EG_STENCIL_TILE_SPLIT_SHIFT 28 +#define AMDGPU_TILING_EG_STENCIL_TILE_SPLIT_MASK 0xf .. +#define SI_TILE_MODE_COLOR_LINEAR_ALIGNED 8 +#define SI_TILE_MODE_COLOR_1D 13 +#define SI_TILE_MODE_COLOR_1D_SCANOUT 9 +#define SI_TILE_MODE_COLOR_2D_8BPP 14 +#define SI_TILE_MODE_COLOR_2D_16BPP15 +#define SI_TILE_MODE_COLOR_2D_32BPP16 +#define SI_TILE_MODE_COLOR_2D_64BPP17 +#define SI_TILE_MODE_COLOR_2D_SCANOUT_16BPP11 +#define SI_TILE_MODE_COLOR_2D_SCANOUT_32BPP12 +#define SI_TILE_MODE_DEPTH_STENCIL_1D 4 +#define SI_TILE_MODE_DEPTH_STENCIL_2D 0 +#define SI_TILE_MODE_DEPTH_STENCIL_2D_2AA 3 +#define SI_TILE_MODE_DEPTH_STENCIL_2D_4AA 3 +#define SI_TILE_MODE_DEPTH_STENCIL_2D_8AA 2 + +#define CIK_TILE_MODE_DEPTH_STENCIL_1D 5 It looks these definitions are not used by libdrm_amdgpu anymore (and even by the kernel driver). Maybe we can remove the unused definitions, and move the used ones to amdgpu.h instead. Besides, I think we'd better remove 'R600/EG/SI/CIK' from the naming. Other than the comments above, the kernel series are Acked-by: Jammy Zhou Regards, Jammy -Original Message- From: dri-devel [mailto:dri-devel-boun...@lists.freedesktop.org] On Behalf Of Alex Deucher Sent: Tuesday, April 21, 2015 6:34 AM To: Maling list - DRI developers; mesa-dev at lists.freedesktop.org Cc: Deucher, Alexander Subject: Initial amdgpu driver release I'm pleased to announce the initial release of the new amdgpu driver. This is a partial replacement for the radeon driver for newer AMD asics. A number of components are still shared. Here is a compar
Initial amdgpu driver release
On 21/04/15 16:41, Alex Deucher wrote: > On Tue, Apr 21, 2015 at 11:56 AM, Emil Velikov > wrote: >> Hi Alex, >> >> On 20 April 2015 at 23:33, Alex Deucher wrote: >>> I'm pleased to announce the initial release of the new amdgpu driver. >>> This is a partial replacement for the radeon driver for newer AMD >>> asics. A number of components are still shared. Here is a comparison >>> of the radeon and amdgpu stacks: >>> >>> 1. radeon stack >>> kernel driver: radeon.ko >>> libdrm: libdrm_radeon >>> mesa: radeon, r200, r300, r600, radeonsi >>> ddx: xf86-video-ati >>> >>> 2. amdgpu stack >>> kernel driver: amdgpu.ko >>> libdrm: libdrm_amdgpu >>> mesa: radeonsi >>> ddx: xf86-video-amdgpu >>> >>> Older asics will continue to be supported by the radeon stack; new >>> asics will be supported by the amdgpu stack. CI (Sea Islands) asics >>> have support in both driver stacks, but this is purely for testing >>> purposes. CI parts are officially supported in the radeon stack. >>> Support for CI on the amdgpu stack is determined by a config option in >>> the kernel. CI support is not enabled by default for amdgpu. >>> >>> Most of our focus has been on Carrizo support, so there are some gaps >>> in the dGPU support for Tonga and Iceland, notably power management. >>> Those gaps will be filled in eventually. >>> >>> Also included in this code base are full register headers for just >>> about every block on the asics. >>> >>> Barring the gaps mentioned above, the driver stack is functionally on >>> par with radeon including: >>> - OpenGL 3.3 support using the radeonsi mesa driver >>> - Video decode support using UVD >>> - Video encode support using VCE >>> >>> The code can be found in the amdgpu branches of the following git trees. >>> xf86-video-amdgpu: >>> http://cgit.freedesktop.org/~agd5f/xf86-video-amdgpu/log/?h=amdgpu >>> libdrm: >>> http://cgit.freedesktop.org/~agd5f/drm/log/?h=amdgpu >>> kernel: >>> http://cgit.freedesktop.org/~agd5f/linux/log/?h=amdgpu >>> mesa: >>> http://cgit.freedesktop.org/~mareko/mesa/log/?h=amdgpu >>> >>> To test the new driver stack you will need to specify a device section >>> in your xorg.conf with the driver set to amdgpu rather than radeon. >>> >>> Please review! >>> >> Do you plan to sending out the libdrm patches to the ML ? I have a few >> comments that you might be interested in :-) > > Yeah, just sent them out now. Ran out of time last night. Some of > the patches in the kernel and the ddx patch are really big so probably > too big for the ML. > Fair enough, did not mean to come out as impatient - was the first thing that pope at my email client after a short break. Just a random question on the ddx front - do you see many benefits of supporting old xservers ? If you target xserver 1.16 and later you can drop a fair bit of code/wrappers - Non DRI2 enabled xserver. - HAS_DEVPRIVATEKEYREC (new with 1.10, released 4+ years ago) - xorg-list (new with 1.12, released 3+ years ago) - DRI2_PRIME (new with 1.13, released 2+ years ago) - AMDGPU_PIXMAP_SHARING (XF86_CRTC_VERSION >= 5, new with 1.13) - Support for external the glamor library (new with 1.16) While you're there you might want to drop support for xextproto pre 7.1. 7.1.0 was released 6+ years ago. The README and .gitignore mention xf86-video-ati. Hope you find any of the above useful :) -Emil
Initial amdgpu driver release
Hi Alex, On 20 April 2015 at 23:33, Alex Deucher wrote: > I'm pleased to announce the initial release of the new amdgpu driver. > This is a partial replacement for the radeon driver for newer AMD > asics. A number of components are still shared. Here is a comparison > of the radeon and amdgpu stacks: > > 1. radeon stack > kernel driver: radeon.ko > libdrm: libdrm_radeon > mesa: radeon, r200, r300, r600, radeonsi > ddx: xf86-video-ati > > 2. amdgpu stack > kernel driver: amdgpu.ko > libdrm: libdrm_amdgpu > mesa: radeonsi > ddx: xf86-video-amdgpu > > Older asics will continue to be supported by the radeon stack; new > asics will be supported by the amdgpu stack. CI (Sea Islands) asics > have support in both driver stacks, but this is purely for testing > purposes. CI parts are officially supported in the radeon stack. > Support for CI on the amdgpu stack is determined by a config option in > the kernel. CI support is not enabled by default for amdgpu. > > Most of our focus has been on Carrizo support, so there are some gaps > in the dGPU support for Tonga and Iceland, notably power management. > Those gaps will be filled in eventually. > > Also included in this code base are full register headers for just > about every block on the asics. > > Barring the gaps mentioned above, the driver stack is functionally on > par with radeon including: > - OpenGL 3.3 support using the radeonsi mesa driver > - Video decode support using UVD > - Video encode support using VCE > > The code can be found in the amdgpu branches of the following git trees. > xf86-video-amdgpu: > http://cgit.freedesktop.org/~agd5f/xf86-video-amdgpu/log/?h=amdgpu > libdrm: > http://cgit.freedesktop.org/~agd5f/drm/log/?h=amdgpu > kernel: > http://cgit.freedesktop.org/~agd5f/linux/log/?h=amdgpu > mesa: > http://cgit.freedesktop.org/~mareko/mesa/log/?h=amdgpu > > To test the new driver stack you will need to specify a device section > in your xorg.conf with the driver set to amdgpu rather than radeon. > > Please review! > Do you plan to sending out the libdrm patches to the ML ? I have a few comments that you might be interested in :-) Cheers, Emil
Initial amdgpu driver release
On Tue, Apr 21, 2015 at 11:56 AM, Emil Velikov wrote: > Hi Alex, > > On 20 April 2015 at 23:33, Alex Deucher wrote: >> I'm pleased to announce the initial release of the new amdgpu driver. >> This is a partial replacement for the radeon driver for newer AMD >> asics. A number of components are still shared. Here is a comparison >> of the radeon and amdgpu stacks: >> >> 1. radeon stack >> kernel driver: radeon.ko >> libdrm: libdrm_radeon >> mesa: radeon, r200, r300, r600, radeonsi >> ddx: xf86-video-ati >> >> 2. amdgpu stack >> kernel driver: amdgpu.ko >> libdrm: libdrm_amdgpu >> mesa: radeonsi >> ddx: xf86-video-amdgpu >> >> Older asics will continue to be supported by the radeon stack; new >> asics will be supported by the amdgpu stack. CI (Sea Islands) asics >> have support in both driver stacks, but this is purely for testing >> purposes. CI parts are officially supported in the radeon stack. >> Support for CI on the amdgpu stack is determined by a config option in >> the kernel. CI support is not enabled by default for amdgpu. >> >> Most of our focus has been on Carrizo support, so there are some gaps >> in the dGPU support for Tonga and Iceland, notably power management. >> Those gaps will be filled in eventually. >> >> Also included in this code base are full register headers for just >> about every block on the asics. >> >> Barring the gaps mentioned above, the driver stack is functionally on >> par with radeon including: >> - OpenGL 3.3 support using the radeonsi mesa driver >> - Video decode support using UVD >> - Video encode support using VCE >> >> The code can be found in the amdgpu branches of the following git trees. >> xf86-video-amdgpu: >> http://cgit.freedesktop.org/~agd5f/xf86-video-amdgpu/log/?h=amdgpu >> libdrm: >> http://cgit.freedesktop.org/~agd5f/drm/log/?h=amdgpu >> kernel: >> http://cgit.freedesktop.org/~agd5f/linux/log/?h=amdgpu >> mesa: >> http://cgit.freedesktop.org/~mareko/mesa/log/?h=amdgpu >> >> To test the new driver stack you will need to specify a device section >> in your xorg.conf with the driver set to amdgpu rather than radeon. >> >> Please review! >> > Do you plan to sending out the libdrm patches to the ML ? I have a few > comments that you might be interested in :-) Yeah, just sent them out now. Ran out of time last night. Some of the patches in the kernel and the ddx patch are really big so probably too big for the ML. Alex > > Cheers, > Emil
Initial amdgpu driver release
On Mon, Apr 20, 2015 at 6:33 PM, Alex Deucher wrote: > I'm pleased to announce the initial release of the new amdgpu driver. > This is a partial replacement for the radeon driver for newer AMD > asics. A number of components are still shared. Here is a comparison > of the radeon and amdgpu stacks: > > 1. radeon stack > kernel driver: radeon.ko > libdrm: libdrm_radeon > mesa: radeon, r200, r300, r600, radeonsi > ddx: xf86-video-ati > > 2. amdgpu stack > kernel driver: amdgpu.ko > libdrm: libdrm_amdgpu > mesa: radeonsi > ddx: xf86-video-amdgpu > > Older asics will continue to be supported by the radeon stack; new > asics will be supported by the amdgpu stack. CI (Sea Islands) asics > have support in both driver stacks, but this is purely for testing > purposes. CI parts are officially supported in the radeon stack. > Support for CI on the amdgpu stack is determined by a config option in > the kernel. CI support is not enabled by default for amdgpu. > > Most of our focus has been on Carrizo support, so there are some gaps > in the dGPU support for Tonga and Iceland, notably power management. > Those gaps will be filled in eventually. > > Also included in this code base are full register headers for just > about every block on the asics. > > Barring the gaps mentioned above, the driver stack is functionally on > par with radeon including: > - OpenGL 3.3 support using the radeonsi mesa driver > - Video decode support using UVD > - Video encode support using VCE > > The code can be found in the amdgpu branches of the following git trees. > xf86-video-amdgpu: > http://cgit.freedesktop.org/~agd5f/xf86-video-amdgpu/log/?h=amdgpu > libdrm: > http://cgit.freedesktop.org/~agd5f/drm/log/?h=amdgpu > kernel: > http://cgit.freedesktop.org/~agd5f/linux/log/?h=amdgpu > mesa: > http://cgit.freedesktop.org/~mareko/mesa/log/?h=amdgpu > I forgot to mention, the latest ucode can be found here: http://people.freedesktop.org/~agd5f/radeon_ucode/ Alex > To test the new driver stack you will need to specify a device section > in your xorg.conf with the driver set to amdgpu rather than radeon. > > Please review! > > Thanks, > > The AMD Linux Driver Team
Initial amdgpu driver release
I'm pleased to announce the initial release of the new amdgpu driver. This is a partial replacement for the radeon driver for newer AMD asics. A number of components are still shared. Here is a comparison of the radeon and amdgpu stacks: 1. radeon stack kernel driver: radeon.ko libdrm: libdrm_radeon mesa: radeon, r200, r300, r600, radeonsi ddx: xf86-video-ati 2. amdgpu stack kernel driver: amdgpu.ko libdrm: libdrm_amdgpu mesa: radeonsi ddx: xf86-video-amdgpu Older asics will continue to be supported by the radeon stack; new asics will be supported by the amdgpu stack. CI (Sea Islands) asics have support in both driver stacks, but this is purely for testing purposes. CI parts are officially supported in the radeon stack. Support for CI on the amdgpu stack is determined by a config option in the kernel. CI support is not enabled by default for amdgpu. Most of our focus has been on Carrizo support, so there are some gaps in the dGPU support for Tonga and Iceland, notably power management. Those gaps will be filled in eventually. Also included in this code base are full register headers for just about every block on the asics. Barring the gaps mentioned above, the driver stack is functionally on par with radeon including: - OpenGL 3.3 support using the radeonsi mesa driver - Video decode support using UVD - Video encode support using VCE The code can be found in the amdgpu branches of the following git trees. xf86-video-amdgpu: http://cgit.freedesktop.org/~agd5f/xf86-video-amdgpu/log/?h=amdgpu libdrm: http://cgit.freedesktop.org/~agd5f/drm/log/?h=amdgpu kernel: http://cgit.freedesktop.org/~agd5f/linux/log/?h=amdgpu mesa: http://cgit.freedesktop.org/~mareko/mesa/log/?h=amdgpu To test the new driver stack you will need to specify a device section in your xorg.conf with the driver set to amdgpu rather than radeon. Please review! Thanks, The AMD Linux Driver Team