davidedmundson created this revision.
Restricted Application added projects: Plasma on Wayland, Frameworks.
Restricted Application added subscribers: Frameworks, plasma-devel.

REVISION SUMMARY
  Currently the server treats incoming buffers as not premultiplied.
  
  KWayland::Client sends data that is ARGB32 and ARGB32_Premultiplied as the 
same
  WL_SHM_FORMAT_ARGB8888.
  
  According to a post on wayland-devel by Fredrik Höglund, all RGB data
  should be treated as premultiplied, which matches what Qt is doing.
  
  I've changed client to perform a conversion rather than sending
  mismatched data, but this commit will still breaks a bunch of tests in
  the stable kwin branch as it compares the server output to a fixed
  QImage with a format.

TEST PLAN
  Existing tests pass
  
  Modified surface test to check the pixel data relative to the output QImage 
format
  not the input format (i.e both input from ARGB32 and ARGB32_Premultiplied) 
should 
  both end up in a QImage with format Premultiplied with premultiplied values.
  
  The existing test was confirming that data was corrupted, checking that even 
though
  the output format was not pre-multiplied, the data was.

REPOSITORY
  R127 KWayland

BRANCH
  mart/xdgforeign

REVISION DETAIL
  https://phabricator.kde.org/D7460

AFFECTED FILES
  autotests/client/test_drag_drop.cpp
  autotests/client/test_shadow.cpp
  autotests/client/test_shm_pool.cpp
  autotests/client/test_wayland_seat.cpp
  autotests/client/test_wayland_subsurface.cpp
  autotests/client/test_wayland_surface.cpp
  src/client/buffer.h
  src/client/shm_pool.cpp
  src/server/buffer_interface.cpp

To: davidedmundson, #plasma
Cc: plasma-devel, #frameworks, leezu, ZrenBot, progwolff, lesliezhai, 
ali-mohamed, jensreuterberg, abetts, eliasp, sebas, apol, mart, hein, lukas

Reply via email to