[PATCH] Only align screen / scanout pixmap height where necessary

Michel Dänzer michel at daenzer.net
Wed Oct 7 00:04:54 PDT 2015


On 02.10.2015 23:46, Alex Deucher wrote:
> On Fri, Oct 2, 2015 at 5:11 AM, Michel Dänzer <michel at daenzer.net> wrote:
>> From: Michel Dänzer <michel.daenzer at amd.com>
>>
>> When using glamor acceleration, the pixmap's header has to have a height
>> that matches exactly what the actual height is minus the GPU memory
>> alignment. Otherwise CRTCs scanning out from the main scanout buffer
>> (e.g. every CRTC that isn't rotated or transformed in some way) won't
>> always work. This results in a bug where rotating one monitor in a
>> multi-monitor setup won't always work properly. Easiest way to reproduce
>> this:
>>
>> - Have two monitors (I've gotten this working with a 1920x1080 and
>>   1280x1024, along with two 1920x1080s)
>> - Rotate one of them from 0° to 90°, then rotate the same monitor from
>>   90° to 180°. The monitor that hasn't been rotated won't properly
>>   update, and will stay on a blank screen
>>
>> This doesn't seem to make any difference when using EXA for
>> acceleration.
>>
>> Compared to Stephen Chandler's patch, this drops the height alignment
>> in most places and only keeps it where it's really necessary.
>>
>> Reported-by: Stephen Chandler Paul <cpaul at redhat.com>
>> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
> 
> Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

Thanks, pushed.


> Anyone want to port this to amdgpu?

I took a look at that, but the amdgpu driver doesn't have the spurious
alignment in the first place.


-- 
Earthling Michel Dänzer               |               http://www.amd.com
Libre software enthusiast             |             Mesa and X developer


More information about the xorg-devel mailing list