summaryrefslogtreecommitdiffstats
path: root/src/glsl/link_uniform_blocks.cpp
diff options
context:
space:
mode:
authorMario Kleiner <mario.kleiner.de@gmail.com>2014-12-05 08:42:32 +0100
committerEmil Velikov <emil.l.velikov@gmail.com>2014-12-14 15:09:49 +0000
commit0d7f4c8658e00d30a1b0c3f2d803378eaa0717c7 (patch)
tree45527ad1d50b6e5a5aad912329e770f1bb4212b6 /src/glsl/link_uniform_blocks.cpp
parent455d3036fab2c5da7e589644f12435fb104a69fc (diff)
downloadexternal_mesa3d-0d7f4c8658e00d30a1b0c3f2d803378eaa0717c7.zip
external_mesa3d-0d7f4c8658e00d30a1b0c3f2d803378eaa0717c7.tar.gz
external_mesa3d-0d7f4c8658e00d30a1b0c3f2d803378eaa0717c7.tar.bz2
glx/dri3: Don't fail on glXSwapBuffersMscOML(dpy, window, 0, 0, 0) (v2)
glXSwapBuffersMscOML() with target_msc=divisor=remainder=0 gets translated into target_msc=divisor=0 but remainder=1 by the mesa api. This is done for server DRI2 where there needs to be a way to tell the server-side DRI2ScheduleSwap implementation if a call to glXSwapBuffers() or glXSwapBuffersMscOML(dpy,window,0,0,0) was done. remainder = 1 was (ab)used as a flag to tell the server to select proper semantic. The DRI3/Present backend ignored this signalling, treated any target_msc=0 as glXSwapBuffers() request, and called xcb_present_pixmap with invalid divisor=0, remainder=1 combo. The present extension responded kindly to this with a BadValue error and dropped the request, but mesa's DRI3/Present backend doesn't check for error codes. From there on stuff went downhill quickly for the calling OpenGL client... This patch fixes the problem. v2: Change comments to be more clear, with reference to relevant spec, as suggested by Eric Anholt. Cc: "10.3 10.4" <mesa-stable@lists.freedesktop.org> Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com> Reviewed-by: Axel Davy <axel.davy@ens.fr> Reviewed-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'src/glsl/link_uniform_blocks.cpp')
0 files changed, 0 insertions, 0 deletions