[RFC] drm/amd/display: add SI support to AMD DC

Mauro Rossi issor.oruam at gmail.com
Mon Oct 8 11:22:48 UTC 2018


Hi Mike,
On Mon, Oct 8, 2018 at 1:00 PM Mike Lothian <mike at fireburn.co.uk> wrote:

> Hi Mauro
>
> Do you know if there are any plans to add in UVD support on SI too?
>
> Thanks
>
> Mike
>

At the moment my focus is on getting a conformant, working and stable
implementation of Atomic Display Framework, with the objective to have it
upstreamed to amd-gfx branch, then staging (drm-next) and maybe merged in
linux kernel.

To be honest my attempt is based on code paths inspection and mimicking,
so in this moment I do not even know the state of UVD and what changes are
needed,
but, based on what I saw for DCE6 support addition on top of DCE8,
covering all compatible HW modules makes a lot of sense and it is an
opportunity to exploit,
if feasible.

For this to happen in most complete and reliable way the feedback of staff
who worked on DAL/DC
will be essential, because what I did now was to adapt code for DCE8 to
work for DCE6,
but it was like an "optimistic monkey with a keyboard" approach, with all
due respect for monkeys with keyboards,
:-) I may have missed dozen of changes.

Mauro


>
> On Mon, 8 Oct 2018 at 03:24 Mauro Rossi <issor.oruam at gmail.com> wrote:
>
>> [PATCH 01/10] drm/amd/display: add asics info for SI parts
>> [PATCH 02/10] drm/amd/display: dc/dce: add DCE6 support
>> [PATCH 03/10] drm/amd/display: dc/core: add DCE6 support
>> [PATCH 04/10] drm/amd/display: dc/bios: add support for DCE6
>> [PATCH 05/10] drm/amd/display: dc/gpio: add support for DCE6
>> [PATCH 06/10] drm/amd/display: dc/i2caux: add support for DCE6
>> [PATCH 07/10] drm/amd/display: dc/irq: add support for DCE6
>> [PATCH 08/10] drm/amd/display: amdgpu_dm: add SI support
>> [PATCH 09/10] drm/amdgpu: enable DC support for SI parts
>> [PATCH 10/10] drm/amd/display: enable SI support in the Kconfig
>>
>> The series adds preliminar SI support as a Proof Of Concept,
>> based on the idea that DCE6 is similar to DCE8, to be reviewed and refined
>>
>> Android-x86 need/motivation lies in the following chain of dependencies:
>> Vulkan radv requires gbm gralloc prime_fd support,
>> gbm gralloc requires drm hwcomposer,
>> drm hwcomposer requires Atomic Display Framework,
>> Atomic Display Framework requires AMD DC, currently not supporting SI.
>>
>> So the goals are:
>> 1) to get Vulkan radv working on SI parts for android-x86.
>> 2) to remove the gap in SI (GCN 1st gen) not having atomic support.
>>
>> DCE6 specific code was implemented as a replica of existing DCE8 support
>> and based on how DCE8 specific code was added on top of DCE10,11 support
>> by adding dce60* sources, functions, macros for each existing in dce80*
>>
>> CONFIG_DRM_AMD_DC_SI parameter has been added to control SI support in DC
>>
>> During this first iteration of review, there are aspects to verify:
>> - dce60 code has been added mechanically, so there may be redundancies
>> and space for refactoring part of the code
>> - dce60_resources was having too many building errors due to missing DCE6
>> macros
>> in order to temporarily overcome the problem dce_8_0_{d,sh_mask}.h headers
>> were used for the PoC
>> - dc/irq suffered the same problem dce_8_0_{d,sh_mask}.h headers
>> were used for the PoC
>> - gfx6 may require some ad hoc initialization, skipped for the moment
>> - Hainan specific code requires review, as some documentation and code
>> paths
>> seem to point that famility may not have DCE6, please confirm
>> - video decoding blocks code have not been touched
>> - dc/dce/dce_clock_source.{c,h} may be missing some SI/DCE6 specifics
>> - dc/dce/dce_dmcu.{c,h} may be missing some SI/DCE6 specifics
>> - dc/dce/dce_hwseq.h may be missing some SI/DCE6 specifics
>> - dc/dce/dce_link_encoder.h may be missing some SI/DCE6 specifics
>> - dc/dce/dce_stream_encoder.h may be missing some SI/DCE6 specifics
>> - dc/amdgpu_dm/* changes may be incomplete
>> - Any other omissis to be reviewed
>> - Feedback on best testing strategy required
>>
>> Review from an expert of the DC impacted modules is recommended
>>
>>     SW Layer
>> /===============================================================\
>> | DC        Display     Timing          Mode        Asic        |
>> | Interface Service     Service         Manager     Capability* |
>> |                                                               |
>> | Display   Topology    Display         Link        Adapter     |
>> | Path      Manager     Capability      Service     Service     |
>> |                       Service                                 |
>> |---------------------------------------------------------------|
>> | GPIO*     IRQ         I2cAux          HW          BIOS        |
>> |           Service**   Manager*        Sequencer*  Parser*     |
>> |                                                               |
>> | Connector Encoder     Audio           GPU         Controller  |
>> |                                                               |
>> \===============================================================/
>>     HW Layer
>>
>> Legend:
>> *dce60 support was added cleanly with dce_6_0_{d,sh_mask}.h headers
>> **dce60 support was added using dce_8_0_{d,sh_mask}.h headers
>>
>> Android-x86 preliminary tests results:
>>
>> [Boots with drm gralloc]
>> 3DMark Slingshot
>> GFXbench OpenGLES benchmarks OK
>> V1 GPU benchmark (OpenGLES) OK
>> Regression in Google Chrome, Youtube (app does not show up)
>> Regression in Olympus Rising,  Chicken Invaders (app does not show up)
>>
>> [Boots with drm hwcomposer + gbm gralloc]
>> Google Chrome, Youtube are OK
>> Vulkan radv HAL API becomes available with hwc+gbm gralloc
>> V1 GPU benchmark (Vulkan API) OK
>> Sacha Willems examples OK
>> Some glitch/freeze in 3DMark Slingshot Extreeme and API overhead
>>
>> Kind regards
>>
>> Mauro Rossi
>> android-x86 team
>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20181008/05c45e10/attachment-0001.html>


More information about the amd-gfx mailing list