XRandR causes errors with color tiling. This can most easily be seen when
pageflip is enabled and a fullscreen app (for instance torcs) uses XRandR (not
vidmode like most apps do) to change the resolution (heavy flickering can be
seen, one of the two buffers is wrong).
I'll try to investigate this, though I need to figure out first how XRandR
I think xrandr just indirectly calls switchmode() and clamps the viewport.
Apparently, what happens (at least with torcs) is that when RADEONDoAdjustFrame
is called when XRandr causes the resolution switch, info->have3DWindows is 0 and
thus the workaround to fix the horrible flickering when scrolling in a virtual
screen gets applied (i.e. the RADEON_CRTC_OFFSET_FLIP_CNTL bit gets unset). I
don't know why info->have3DWindows is 0 but the drm apparently thinks the 3d
client is already active (otherwise it would reinit the flip_cntl bit). But the
workaround is ugly anyway and should be replaced with a proper solution.
However, I got somewhat stuck with properly implementing that before, it's not
fixed, at the cost of getting the flickering back when scrolling vertically in a
virtual screen (if both color tiling and page flip are enabled). IMHO the
workaround causes more harm than good, especially since it's unclear why exactly
it fails (might not be related to xrandr at all). And the workaround didn't do
anything when some 3d window was active anyway.