All of lore.kernel.org
 help / color / mirror / Atom feed
From: Harry Wentland <harry.wentland-5C7GfCeVMHo@public.gmane.org>
To: Mauro Rossi <issor.oruam-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Sylvain Bertrand
	<sylvain.bertrand-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
Cc: alexander.deucher-5C7GfCeVMHo@public.gmane.org,
	"Mike Lothian" <mike-4+n8WJKc9ve9FHfhHBbuYA@public.gmane.org>,
	"Christian König"
	<ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: Re: [RFC] drm/amd/display: add SI support to AMD DC
Date: Mon, 15 Oct 2018 17:06:37 -0400	[thread overview]
Message-ID: <bef5787e-cc8d-df35-dc55-353ed4443a8c@amd.com> (raw)
In-Reply-To: <CAEQFVGaErupy3y+sKA+uqQPn7x0oL1T9BKWj6y8EC12Ap2-YDw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

On 2018-10-14 5:47 p.m., Mauro Rossi wrote:
> Hi,
> 
> reporting about some progress made during the weekend,
> thanks to Sylvain feedback & suggestions.
> 
> I have rebased and updated the series on top of
> https://cgit.freedesktop.org/~agd5f/linux/?h=amd-staging-drm-next
> 
> Here is the amd_dc_si branch:
> https://github.com/maurossi/linux/tree/amd_dc_si (uploading)
> NOTE: arch/x86/kernel/tsc.c changes for 4K display modes are not
> there, as they are not strictly needed for amd-gfx
> 
> Copying also Harry, Alex, Christian and Mike in order to get some
> objective and infallible
> clues/feedbacks about blocking points and about "no care" items.
> 
> Please, also big things I may have missed.
> M.
> 
>> On Mon, Oct 8, 2018 at 11:23 PM <sylvain.bertrand@gmail.com> wrote:
>>
>> Sylvain - I did hack a bit your patch set on amd-staging-drm-next to make it go through the
>> asic init and I managed to get a x11 display with lines kind of garbled, but
>> you can still understand easily what's on the screen.
> 
> I forgot to mention that since I'm gorgeously trying AMD DC also on Mullins
> I have reverted d9fda24 (""drm/amdgpu: Don't default to DC support for
> Kaveri and older")
> because on Mullins I can boot with HDMI and HDMI-to-VGA converter
> 
> I was hoping for AMD DC being re-enabled for Kaveri and older,
> but I'm available to submit new version of specific patch if required.
> 

I still need to find time to get through your patchset properly. Just a quick note on this. There are Kabini/Kaveri ASICs with VGA connectors in the market, which the DC code doesn't support. If someone writes it we can re-enable it by default.

Either way, you can revert that patch for your tree or use amdgpu.dc=0 as long as you're aware that VGA won't work with amdgpu on such a kernel.

Harry

>> Sylvain - ... The lines may be garbled in your driver code because,
>> if I recall properly, "line buffer" programing in dce8 is not
>> the same than in dce6 (look for registers with the "LB" abbreviation). Or some
>> slight differences in frame buffer tiling.
> 
> So the problem could be related to some kind of scan line or tiling
> buffer issue,
> at the moment the dce_resouces model is grabbed "AS IS" from DCE8
> registers/masks
> 
>>
>> Sylvain - I checked the kernel log, and like you said, I got errors in DM_PPLIB due to an
>> invalid powerlevel and atombios/vbios table parsing regarding connectors.
>> general dpm is in amdgpu(no DC) for SI, it means the DCE related dpm part in
>> current SI amdgpu code path should be "copied" in DC. It is related very
>> probably to the parsing of VBIOS/ATOMBIOS tables.
> 
> 10-09 21:10:14.427     0     0 E         :
> [drm:dm_pp_get_static_clocks [amdgpu]] *ERROR* DM_PPLIB: invalid
> powerlevel state: 0!
> 
> NOTE: the error is the result of Powerplay dependency introduced by
> using AMD DC for SI
> it's not fatal and it does not seem to affect performance in the Benchmarks
> 
> DOUBT: I think that it would make sense to set "power level 0" i.e.
> the "lower state" as safe default,
> considering that powerplay smu6/hwmgr are not implemented for SI and
> smu7 CIK functions do not work,
> the AS-IS dpm is the only available option. (and it seams to be
> working, looking at the framerates 250-280 in the V1 Vulkan benchmark)
> 
> 
> 
>> 10-09 21:10:14.427     0     0 W [drm] dce110_link_encoder_construct: Failed to get encoder_cap_info from VBIOS with error code 4!
>> 10-09 21:10:14.427     0     0 W [drm] dce110_link_encoder_construct: Failed to get encoder_cap_info from VBIOS with error code 4!
> 
> NOTE: the warning also appears with Tonga and Vega, it is a Warning
> and does not seem to cause issues, so I would assume there is a
> default treatment in place,
> is this related to missing encoder for drm crtc or to other kind of encoder?
> 
>> Sylvain - Did add SI handling in some raven firmware loader function.
>> In drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c, "load_dmcu_fw"
>> function augmented with SI chip asic_type.
> 
> I've merged the change in the (v2) branch
> https://github.com/maurossi/linux/tree/amd_dc_si
> 
>> Sylvain - AFAIK, the real thing that you additionally get with DC is freesync. But
>> freesync is actually going to be interesting only if displays are able to
>> get their sync range lower bound to 0, and get significant power saving
>> thanks to this. For the use case of very low display refresh rate I don't even
>> think displayport or hdmi can do that, and be power friendly (you would have
>> to retrain the link probably each time you send a framebuffer to the display).
> 
> 
> If freesync is about reducing the framerate rate for power saving,
> provided that I've seen it be mentioned the first time for GCN 2nd generation,
> I'm not expecting freesync as a mandatory capability for the series.
> 
>> Mauro -- 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
> 
> Still to many building errors due to quite different registers naming,
> pointers to GPU register info (either in GPUopen or by means of
> listing the DCE6 vs DC8 differences),
> or keeping the DCE6 is exactly like DCE8 as register changes are
> apparently not mission critical.
> 
>> Mauro - dc/irq suffered the same problem dce_8_0_{d,sh_mask}.h headers
>> were used for the PoC
> 
> I could not update dc/irq VBI Vertical Blank Interrupt, because i
> cannot find the corresponding IRQ register in amdgpu/dce6 registers
> headers/mask
> 
> -CRTC_VERTICAL_INTERRUPT0_CONTROL__CRTC_VERTICAL_INTERRUPT0_INT_ENABLE_MASK
> +?seems trivial but who knows what is the corresponding in DCE6?
> 
> -CRTC_VERTICAL_INTERRUPT0_CONTROL__CRTC_VERTICAL_INTERRUPT0_CLEAR_MASK
> +?seems trivial but who knows what is the corresponding in DCE6?
> 
> NOTE: If this is the very basic VBI Vertical Blank Interrupt signal
> handling, there should be dce6 registers/masks,
> but some hint/documentation is necessary for me to find them.
> 
> 
>> Mauro - gfx6 may require some ad hoc initialization, skipped for the moment
> 
> Are there ad hoc tiling settings which are necessary?
> 
> The OpenGLES and Vulkan radv apps I've tested:
> 
> Android CTS dEQP-VK only 85 tests failed over 220'000
> Toy Zombies Lite
> Sky Force Reloaded
> V1 Benchmark Pro
> GFXbench
> Antutu 3D
> Various OpenGLES demos
> 
> Here I'm planning to perform also dEQP-EGL, dEQP-GLES2, dEQP-GLES3 soon,
> but feedbacks from developers are very welcome and appreciated
> 
>> Mauro - Hainan specific code requires review, as some documentation and code paths
>> seem to point that famility may not have DCE6, please confirm
> 
> Hainan specifics were removed and are unsupported in the new serie
> as DCE6 physical module not available in Hainan parts.
> Unless the virtual_dce modules supports atomit, but I don't think so.
> 
>> Mauro - video decoding blocks code have not been touched
> 
> UVD and VCE firmwares and code changes for SI were necessary before the series
> and they are unrelated to AMD DC for SI patches.
> 
>> Mauro - dc/dce/dce_clock_source.{c,h} may be missing some SI/DCE6 specifics
> 
> In amd-staging-drm-next dce_clock_source is generic, SI specifics are
> not necessary anymore.
> 
>> Sylvain - It _seems_ there is not that much additional work to do in order to make it
>> properly work.
>>
> 
> Ok, let's keep the momentum and continue tackle with x11 display problem
> and after that I'm runnign piglit no regression with x11 and with wayland too.
> 
>> Testing on x11,wayland or other ways
> 
> Any other testing tools worth a run?
> In case there is some AMD/GPUopen testing tool with unit tests, please
> let me know
> Kind regards
> 
> Mauro
> 
_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  parent reply	other threads:[~2018-10-15 21:06 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-08  2:23 [RFC] drm/amd/display: add SI support to AMD DC Mauro Rossi
     [not found] ` <20181008022344.10247-1-issor.oruam-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-10-08  2:23   ` [PATCH 01/10] drm/amd/display: add asics info for SI parts Mauro Rossi
2018-10-08  2:23   ` [PATCH 02/10] drm/amd/display: dc/dce: add DCE6 support Mauro Rossi
2018-10-08  2:23   ` [PATCH 03/10] drm/amd/display: dc/core: " Mauro Rossi
2018-10-08  2:23   ` [PATCH 04/10] drm/amd/display: dc/bios: add support for DCE6 Mauro Rossi
2018-10-08  2:23   ` [PATCH 05/10] drm/amd/display: dc/gpio: " Mauro Rossi
2018-10-08  2:23   ` [PATCH 06/10] drm/amd/display: dc/i2caux: " Mauro Rossi
2018-10-08  2:23   ` [PATCH 07/10] drm/amd/display: dc/irq: " Mauro Rossi
2018-10-08  2:23   ` [PATCH 08/10] drm/amd/display: amdgpu_dm: add SI support Mauro Rossi
2018-10-08  2:23   ` [PATCH 09/10] drm/amdgpu: enable DC support for SI parts Mauro Rossi
2018-10-08  2:23   ` [PATCH 10/10] drm/amd/display: enable SI support in the Kconfig Mauro Rossi
2018-10-08 11:00   ` [RFC] drm/amd/display: add SI support to AMD DC Mike Lothian
     [not found]     ` <CAHbf0-HK4W4xE-hOJPiwr8zhzuuG2GobCTyHHik3mwe1-9_BmQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-10-08 11:22       ` Mauro Rossi
     [not found]         ` <CAEQFVGbWWy7jmcaserbMwANNHei90WX+1AvOfDAY8J=BcsyCrg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-10-08 11:29           ` Christian König
     [not found]             ` <7a8b5d6d-82c2-2b98-b2b2-098baf095aef-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2018-10-08 12:16               ` Mike Lothian
     [not found]                 ` <CAHbf0-FB2GV18igVo-8MHcVGL89KZoXn+O2B4asoe5R4RbgCVw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-10-08 15:47                   ` Deucher, Alexander
2018-10-08 12:04   ` sylvain.bertrand-Re5JQEeQqe8AvxtiuMwx3w
2018-10-08 12:32     ` sylvain.bertrand-Re5JQEeQqe8AvxtiuMwx3w
2018-10-08 17:02     ` Mauro Rossi
     [not found]       ` <CAEQFVGahx4U+52uKu20_q0iCPrdzeW8G+viS7p2LJtgF61bf6Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-10-08 20:17         ` sylvain.bertrand-Re5JQEeQqe8AvxtiuMwx3w
2018-10-08 21:22           ` sylvain.bertrand-Re5JQEeQqe8AvxtiuMwx3w
2018-10-14 21:47             ` Mauro Rossi
     [not found]               ` <CAEQFVGaErupy3y+sKA+uqQPn7x0oL1T9BKWj6y8EC12Ap2-YDw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-10-15  1:25                 ` sylvain.bertrand-Re5JQEeQqe8AvxtiuMwx3w
2018-10-15  5:28                   ` Mauro Rossi
     [not found]                     ` <CAEQFVGbB_ezGSGwPu2Ka-4rY9RjB_rJvPL8ZCEG-_rfXxOEN-A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2018-10-15 12:45                       ` sylvain.bertrand-Re5JQEeQqe8AvxtiuMwx3w
2018-10-15 17:53                         ` Deucher, Alexander
2018-10-15 21:06                 ` Harry Wentland [this message]
     [not found]                   ` <bef5787e-cc8d-df35-dc55-353ed4443a8c-5C7GfCeVMHo@public.gmane.org>
2018-10-15 21:19                     ` Harry Wentland
     [not found]                       ` <70b01042-3210-dcce-2b9a-a16754db9f10-5C7GfCeVMHo@public.gmane.org>
2018-10-16 12:20                         ` Mauro Rossi
2018-10-16 14:48                     ` Mauro Rossi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bef5787e-cc8d-df35-dc55-353ed4443a8c@amd.com \
    --to=harry.wentland-5c7gfcevmho@public.gmane.org \
    --cc=alexander.deucher-5C7GfCeVMHo@public.gmane.org \
    --cc=amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org \
    --cc=ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=issor.oruam-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=mike-4+n8WJKc9ve9FHfhHBbuYA@public.gmane.org \
    --cc=sylvain.bertrand-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.