It was using REQUEST_SIZE_MATCH (client request length must equal request size)
rather than REQUEST_AT_LEAST_SIZE (client request length must be at least
big enough for request size), and this request has data following the request
structure.
This was caught by distributions upgrading damageproto to 1.1, before the
server they had supported it. The server then advertised the new version
without supporting the protocol.
Our modes typically come from EDID or default modes, and when the monitor
asks for a specific mode, deciding to tweak it usually results in incorrect
display. And if the user is specifying a mode by hand, tweaking it then is
still pretty rude.
Reviewed by: ajax
Currently, the call to linuxPciOpenFile() is always made for read
only access which causes the subsequent mmap call to fail when the
memory is mapped read/write.
Xorg #9692
This is a new behavior for version 2.1 of EXA, and only takes effect if the
driver has requested that. Otherwise, the previous behavior remains the same.
This keeps us from having to define _POSIX_C_SOURCE, _BSD_SOURCE, and
_XOPEN_SORUCE to get the C environment we want in different places. It also
fixes the build on linux due to RTLD_DEFAULT having not been defined.
It builds against 1.4.7 as well, but it hardcodes the GLX_EXT_tfp tokens that
were finalized in 1.4.8, so GLX_EXT_tfp breaks if the client side was built
against an older glproto. This will hopefully alert people to rebuild other
components (in particular Mesa) against the new glproto as well.
Move the byte-order related wrappers out of the individual source
files into a dedicated header file. Modify the single hand-coded
source file that uses the byte-order wrappers to use the new header
file.
- Use autoconf tests instead of platform-specific #ifdef's to decide
which macros to use.
- Provide fallbacks for platforms like Solaris that don't provide any
of the existing known forms.
Events and internal data structures need to be updated whenever the physical
or pixel size of the screen changes. The code was ignoring the physical
size, so changing only that would not be registered anywhere.
(cherry picked from f42e3cea23 commit)
The RRScreenSizeSetRange function is used externally for 1.2 API drivers,
but can also be used in the 1.0 compatibility code. This also ensures that
the right changed bits are set so that clients are correctly notified when
the range changes.
RRGetInfo can return an error, use that to return BadAlloc to clients
instead of blindly going on with various requests.
(cherry picked from f05dd384d3 commit)
The fbdev API doesn't allow setting the pitch explicitly, so we have to set
the virtual width to the pitch we're using for drawing. This fixes corruption
after changing the virtual width with RandR.