Soliciting DRM feedback on latest DC rework

Harry Wentland harry.wentland at
Wed May 3 19:12:14 UTC 2017

On 2017-05-03 11:02 AM, Daniel Vetter wrote:
> On Wed, May 03, 2017 at 04:26:51PM +0200, Christian K├Ânig wrote:
>> Hi Harry,
>> while this looks more and more like it could work something which would
>> really help would be to have a set of patches squashed together and rebased
>> on drm-next.
>> The dc-drm-next-atomic-wip looks like a start, but we need more something
>> like:
>> drm/amdgpu: add base DC components
>> drm/amdgpu: add DCE8 support for DC
>> drm/amdgpu: add DCE9 support for DC
>> drm/amdgpu: add DCE10 support for DC
>> ...
>> drm/amdgpu: enable DC globally
>> drm/amdgpu: remove old display infrastructure
>> Otherwise I fear that people will just be lost in the mass amount of patches
>> we have in the branch.
> I think for a quick first feedback round simply something that's based on
> top of recent drm-next is good enough, since I'll probably only look at
> the aggregate diff anyway (or resulting tree).

This was basically what I figured which is why I didn't invest more time 
to squash changes. I agree with Christian that eventually we probably 
want something like his suggested split but for now I'd rather focus on 
tying a dc_surface to a drm_plane (and same for other objects). Starting 
to tie our objects to drm objects has been very eye-opening, to say the 

Daniel, do you think you'll find time to take a look at this this week 
or next?


> -Daniel
>> Regards,
>> Christian.
>> Am 03.05.2017 um 16:13 schrieb Harry Wentland:
>>> Hi all,
>>> Over the last few months we (mostly Andrey and myself) have taken and
>>> addressed some of the feedback received from December's DC RFC. A lot of
>>> our work so far centers around atomic. We were able to take a whole
>>> bunch of the areas where we rolled our own solution and use DRM atomic
>>> helpers instead.
>>> You can find our most recent drm-next based tree at
>>> An outline of the changes with commit hashes from that tree are listed
>>> below. They aren't necessarily in order but are grouped by
>>> functionality.
>>> I would like to solicit input on the changes and the current state of
>>> amd/display in general.
>>> I'm on IRC every weekday from 9-5 eastern time, sometimes at other
>>> hours. Feel free to ask questions, discuss, leave comments. Let me know
>>> if there's anything else I can do to facilitate review.
>>> We know there's more work to be done but would much rather prioritize
>>> that work based on community feedback than merely our own impressions.
>>> We haven't finished plumbing drm types to the dc types yet, and there
>>> are still a bunch of other things in progress.  We are not looking to
>>> re-hash the previous discussion, but rather we'd like some feedback on
>>> our work so far.
>>> The list of changes (trimmed commit tags):
>>> == Use common helpers for pageflip ==
>>> 144da239b047 Use pflip prepare and submit parts (v2)
>>> ff7ac264a9a1 Fix page flip after daniel's acquire_ctx change
>>> == implement atomic_get_properties ==
>>> cf4a84df7189 Fallback on legacy properties in atomic_get_properties
>>> 01f96706b6ca get_atomic_property missing for drm_connector_funcs
>>> == Use common helpers for gamma ==
>>> 3f547d7098de Use atomic helpers for gamma
>>> == Use atomic helpers for commit ==
>>> 41831f55bd58 Refactor atomic commit implementation. (v2)
>>> 6c67dd3c5cd5 Refactor headless to use atomic commit.
>>> eb22ef1ecb16 Remove page_fleep_needed function.
>>> == Use atomic helpers for S3 ==
>>> 5a6ae6f76249 Switch to DRM helpers in s3.
>>> == Simmplify mapping between DRM and DC objects ==
>>> 84a3ee023b9b Remove get_connector_for_link.
>>> 6d8978a98b40 Remove get_connector_for_sink.
>>> == Use DRM EDID read instead of DC ==
>>> 566969dacfad Fix i2c write flag.
>>> 527c3699ff3c Refactor edid read.
>>> 5ac51023d275 Fix missing irq refactor causing potential i2c race
>>> == Save DC validate_ctx in atomic_check and use in commit ==
>>> 8c194d8e4ee9 pull commit_surfaces out of atomic_commit into helper
>>> function
>>> 27eef98b38c8 Return context from validate_context
>>> ca3ee10e915b Add DM global atomic state
>>> 8ba1ca856532 Hook dm private state into atomic_check
>>> 10160455ac6d Add correct retain/release for objs in dm_atomic_state
>>> 0f1b2e2aecbb Commit validation set from state
>>> 258e6a91fc61 Add validate_context to atomic_state
>>> 64f569b5df20 Use validate_context from atomic_check in commit
>>> == Start multi-plane implementation ==
>>> 601ff4e70b7c decouple per-crtc-plane model
>>> a0b859a0b114 Fix cleanup in amdgpu_dm_initialize_drm_device
>>> ee02010d7a82 update plane functionalities
>>> 3b7345fd1abb Allow planes on all crtcs
>>> d9cf37462156 initialize YUV plane capabilities
>>> 248f06b2613e Universal cursor plane hook-up.
>>> == Minor cleanups ==
>>> d99bf02cb8fc Rename atomic_commit parameter.
>>> f15fb9726502 Use amdgpu mode funcs statically
>>> d3e37fa70643 Remove unused define from amdgpu_dm_types
>>> 80a38ad58125 Add lock around updating freesync property
>>> 8c7f16853824 Use new drm_dp_find_vcpi_slots to compute slots
>>> Regards,
>>> Harry
>>> _______________________________________________
>>> amd-gfx mailing list
>>> amd-gfx at

More information about the amd-gfx mailing list