[Mesa-dev] Initial amdgpu driver release

Marek Olšák maraeo at gmail.com
Fri Apr 24 03:15:50 PDT 2015


On Fri, Apr 24, 2015 at 9:43 AM, Zhou, Jammy <Jammy.Zhou at amd.com> 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_startup        setup 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_MACRO                            0x1
> +#define AMDGPU_TILING_MICRO                            0x2
> +#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_MASK                    0xf
> +#define AMDGPU_TILING_EG_BANKH_SHIFT                   12
> +#define AMDGPU_TILING_EG_BANKH_MASK                    0xf
> +#define AMDGPU_TILING_EG_MACRO_TILE_ASPECT_SHIFT       16
> +#define AMDGPU_TILING_EG_MACRO_TILE_ASPECT_MASK        0xf
> +#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_16BPP            15
> +#define SI_TILE_MODE_COLOR_2D_32BPP            16
> +#define SI_TILE_MODE_COLOR_2D_64BPP            17
> +#define SI_TILE_MODE_COLOR_2D_SCANOUT_16BPP    11
> +#define SI_TILE_MODE_COLOR_2D_SCANOUT_32BPP    12
> +#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


More information about the mesa-dev mailing list