[Mesa-dev] [PATCH 1/2] st-api: Rework how drawables are invalidated

Thomas Hellstrom thellstrom at vmware.com
Wed Jun 29 05:37:06 PDT 2011


Jon,
Thanks for pointing this out. I apparently missed at least one case.
I'll fix ASAP.

/Thomas


On 06/29/2011 02:20 PM, Jon TURNEY wrote:
> On 28/06/2011 13:19, Thomas Hellstrom wrote:
>    
>> The api and the state tracker manager code as well as the state tracker code
>> assumed that only a single context could be bound to a drawable. That is not
>> a valid assumption, since multiple contexts can bind to the same drawable.
>>
>> Fix this by making it the state tracker's responsibility to update all
>> contexts binding to a drawable.
>>
>> Signed-off-by: Thomas Hellstrom<thellstrom at vmware.com>
>> ---
>>   src/gallium/include/state_tracker/st_api.h         |   26 ++-----
>>   .../state_trackers/dri/common/dri_drawable.c       |    3 +
>>   src/gallium/state_trackers/dri/drm/dri2.c          |    4 +-
>>   src/gallium/state_trackers/dri/sw/drisw.c          |    4 +-
>>   src/gallium/state_trackers/egl/common/egl_g3d.c    |   12 +--
>>   .../state_trackers/egl/common/egl_g3d_api.c        |    7 --
>>   src/gallium/state_trackers/egl/common/egl_g3d_st.c |    8 ++
>>   src/gallium/state_trackers/vega/vg_context.h       |    4 +-
>>   src/gallium/state_trackers/vega/vg_manager.c       |   40 ++++------
>>   src/gallium/state_trackers/wgl/stw_context.c       |    6 +-
>>   src/gallium/state_trackers/wgl/stw_st.c            |    3 +
>>   src/mesa/state_tracker/st_cb_viewport.c            |   15 +++-
>>   src/mesa/state_tracker/st_context.h                |    5 +-
>>   src/mesa/state_tracker/st_manager.c                |   85 +++++++++++---------
>>   14 files changed, 109 insertions(+), 113 deletions(-)
>>      
> It looks like state_trackers/glx/xlib (built when ./configured
> --with-driver=xlib) hasn't been updated for this change:
>
> make[5]: Entering directory
> `/opt/wip/mesa-cygwin-dri-driver/mesa/src/gallium/state_trackers/glx/xlib'
> ccache gcc -c -I. -I../../../../../src/gallium/include
> -I../../../../../src/gallium/auxiliary -I../../../../../src/gallium/drivers
> -I../../../../../include -I../../../../../src/mapi -I../../../../../src/mesa
> -I/opt/wip/jhbuild/install/include   -g -O0 -Wall -Wmissing-prototypes
> -std=c99 -ffast-math -fno-strict-aliasing     -DPTHREADS -DHAVE_POSIX_MEMALIGN
> -DUSE_XSHM -DGALLIUM_LLVMPIPE -D__STDC_CONSTANT_MACROS -DHAVE_LLVM=0x0208
> -I/usr/include  -DNDEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS
> -D__STDC_CONSTANT_MACROS xm_api.c -o xm_api.o
> xm_api.c: In function ‘xmesa_notify_invalid_buffer’:
> xm_api.c:1119:16: error: ‘struct st_context_iface’ has no member named
> ‘notify_invalid_framebuffer’
> make[5]: *** [xm_api.o] Error 1
> make[5]: Leaving directory
> `/opt/wip/mesa-cygwin-dri-driver/mesa/src/gallium/state_trackers/glx/xlib'
>    



More information about the mesa-dev mailing list