Colorspace adjustment
David Harks
dave at dwink.net
Mon Oct 20 12:01:44 PDT 2014
> On Oct 20, 2014, at 1:09 PM, Alex Deucher <alexdeucher at gmail.com> wrote:
>
> On Fri, Oct 17, 2014 at 7:36 PM, David Harks <dave at dwink.net <mailto:dave at dwink.net>> wrote:
>> All,
>>
>> In the proprietary driver, it’s possible to set the colorspace used for
>> output, with 4 possible options on my hardware: YCbCr 4:4:4, YCbCr 2:2:2,
>> RGB Limited, and RGB Full. For a system I’m working on, we have been using
>> the YCbCr 4:4:4 color space for compatibility reasons with some of the
>> devices we output to, and I’d like to get the same feature going on the
>> radeon driver.
>>
>> From what I’ve read
>> (http://lists.freedesktop.org/archives/xorg/2014-March/056478.html), this
>> feature isn’t yet part of the radeon driver, but since it seems to be a
>> register setting it may be possible to add. So I took a look at the code in
>> dce5_crtc_load_lut() and modified it to use NI_OUTPUT_CSC_YCBCR_709,
>> compiled, and tried it.
>>
>> It didn’t seem to change the output at all.
>>
>> So I grabbed a copy of radeontool, and tried to see if I could inspect the
>> registers to see if my changes were taking effect, but I think I’m missing
>> something because the values I get don’t seem to be what I’d expect:
>>
>> avivotool regmatch 0x68f0 # NI_OUTPUT_CSC_CONTROL +
>> radeon_crtc->crtc_offset
>> 0x68f0 0x01000020 (16777248)
>>
>> I would expect the output to be something with 0x33, since
>> (NI_OUTPUT_CSC_GRPH_MODE(NI_OUTPUT_CSC_YCBCR_709) |
>> NI_OUTPUT_CSC_OVL_MODE(NI_OUTPUT_CSC_YCBCR_709)) should be 0x33.
>>
>> Is there some other register I might need to touch in order to make these
>> changes take effect? Any pointers to what else I should be looking for?
>
> What asic are you using? Note that register bar moved on Sea Islands
> and newer asics and I'm not sure if the version of avivotool you are
> using handles that correctly yet. Also note that these registers are
> instanced (hence the radeon_crtc->crtc_offset being added to the
> register offset), so make sure you are reading the appropriate
> instance for the display controller you are using.
>
it’s an AMD E2-1800 APU, AKA a Radeon HD 7340 (Wrestler), which I think gets classified as a PALM. So I suppose it actually falls under the “Evergreen” moniker, which branches to the dce4_crtc_load_lut() code, which in turn looks to have a completely different machinery for this purpose, if any.
Under reg_srcs/evergreen, I see a CB_COLOR_CONTROL entry, but that’s just a wild guess. Any pointers to where else I should be looking?
Thanks much!
David W. Harks
dave at dwink.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg-driver-ati/attachments/20141020/3d915cd2/attachment.html>
More information about the xorg-driver-ati
mailing list