Bug 55856

Summary: kwin with gles window content is not updating (gen4)
Product: Mesa Reporter: wojtek <wojtask9>
Component: Mesa coreAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: iam, me, robert, russianneuromancer, weigert.stefan
Version: 9.0   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Xorg.log
egl_dri2/x11: Fix eglPostSubBufferNV()

Description wojtek 2012-10-10 21:50:42 UTC
Created attachment 68425 [details]
Xorg.log

Using kwin-4.9.2 KWin on OpenGL ES with mesa-9.0 window content is not updating (for example progressBar).

We must move window to see changes.

This error not occurs with 9.0_pre20120918 (gentoo package)


kernel-3.6.1
xorg-server-1.13.0
libdrm-2.4.39
xf86-video-intel-2.20.9
pixman-0.27.2


lspci-v

00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (primary) (rev 0c) (prog-if 00 [VGA controller])
        Subsystem: Lenovo T61
        Flags: bus master, fast devsel, latency 0, IRQ 45
        Memory at f8100000 (64-bit, non-prefetchable) [size=1M]
        Memory at e0000000 (64-bit, prefetchable) [size=256M]
        I/O ports at 1800 [size=8]
        Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
        Capabilities: [d0] Power Management version 3
        Kernel driver in use: i915
Comment 1 wojtek 2012-10-18 14:44:35 UTC

*** This bug has been marked as a duplicate of bug 55998 ***
Comment 2 wojtek 2012-11-06 01:38:46 UTC
according to 
https://bugs.freedesktop.org/show_bug.cgi?id=55998#c29

git bisect bad
e1cb50b15dbb75d1ba0fe184d05be7d302b058ee is the first bad commit
commit e1cb50b15dbb75d1ba0fe184d05be7d302b058ee
Author: Robert Bragg <robert@linux.intel.com>
Date:   Tue Sep 18 16:10:03 2012 +0100

    SwapBuffersRegionNOK: invert rectangles on y axis
    
    The EGL_NOK_swap_region2 spec states that the rectangles are specified
    with a bottom-left origin within a surface coordinate space also with a
    bottom left origin, so this patch ensures the rectangles are flipped
    before passing them on to dri2_copy_region.
    
    Fixes piglit's egl-nok-swap-region test.
    
    Tested-by: Matt Turner <mattst88@gmail.com>
    (cherry picked from commit 0a523a8820e8a2549ac1c7887eb1892b228af44b)

this commit introduced regression.
Comment 3 Fredrik Höglund 2012-11-06 18:28:17 UTC
KWin uses EGL_NV_post_sub_buffer to do partial updates. But it looks like dri2_swap_buffers_region(), which this commit changed, is called by both eglSwapBuffersRegionNOK() and eglPostSubBufferNV(). So this commit fixed one entry point and broke the other.
Comment 4 Fredrik Höglund 2012-11-06 18:37:38 UTC
Created attachment 69634 [details] [review]
egl_dri2/x11: Fix eglPostSubBufferNV()

This patch should fix the problem.
Comment 5 Ian Romanick 2012-11-06 20:08:35 UTC
Comment on attachment 69634 [details] [review]
egl_dri2/x11: Fix eglPostSubBufferNV()

Review of attachment 69634 [details] [review]:
-----------------------------------------------------------------

This looks good to me.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Comment 6 wojtek 2012-11-06 21:16:15 UTC
it works too :)

thanks for fix
Comment 7 Fredrik Höglund 2012-11-06 23:55:53 UTC
Fixed by commit f42518962a08ce927e4ddd233d19d2661e135834.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.