Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into pci-rework
This commit is contained in:
commit
65dc25d8f8
64
Xext/xres.c
64
Xext/xres.c
|
@ -19,6 +19,8 @@
|
|||
#include "swaprep.h"
|
||||
#include <X11/extensions/XResproto.h>
|
||||
#include "pixmapstr.h"
|
||||
#include "windowstr.h"
|
||||
#include "gcstruct.h"
|
||||
#include "modinit.h"
|
||||
|
||||
static int
|
||||
|
@ -154,6 +156,7 @@ ProcXResQueryClientResources (ClientPtr client)
|
|||
swapl (&rep.length, n);
|
||||
swapl (&rep.num_types, n);
|
||||
}
|
||||
|
||||
WriteToClient (client,sizeof(xXResQueryClientResourcesReply),(char*)&rep);
|
||||
|
||||
if(num_types) {
|
||||
|
@ -185,13 +188,54 @@ ProcXResQueryClientResources (ClientPtr client)
|
|||
return (client->noClientException);
|
||||
}
|
||||
|
||||
static unsigned long
|
||||
ResGetApproxPixmapBytes (PixmapPtr pix)
|
||||
{
|
||||
unsigned long nPixels;
|
||||
int bytesPerPixel;
|
||||
|
||||
bytesPerPixel = pix->drawable.bitsPerPixel>>3;
|
||||
nPixels = pix->drawable.width * pix->drawable.height;
|
||||
|
||||
/* Divide by refcnt as pixmap could be shared between clients,
|
||||
* so total pixmap mem is shared between these.
|
||||
*/
|
||||
return ( nPixels * bytesPerPixel ) / pix->refcnt;
|
||||
}
|
||||
|
||||
static void
|
||||
ResFindPixmaps (pointer value, XID id, pointer cdata)
|
||||
{
|
||||
unsigned long *bytes = (unsigned long *)cdata;
|
||||
PixmapPtr pix = (PixmapPtr)value;
|
||||
|
||||
*bytes += (pix->devKind * pix->drawable.height);
|
||||
*bytes += ResGetApproxPixmapBytes(pix);
|
||||
}
|
||||
|
||||
static void
|
||||
ResFindWindowPixmaps (pointer value, XID id, pointer cdata)
|
||||
{
|
||||
unsigned long *bytes = (unsigned long *)cdata;
|
||||
WindowPtr pWin = (WindowPtr)value;
|
||||
|
||||
if (pWin->backgroundState == BackgroundPixmap)
|
||||
*bytes += ResGetApproxPixmapBytes(pWin->background.pixmap);
|
||||
|
||||
if (pWin->border.pixmap != NULL && !pWin->borderIsPixel)
|
||||
*bytes += ResGetApproxPixmapBytes(pWin->border.pixmap);
|
||||
}
|
||||
|
||||
static void
|
||||
ResFindGCPixmaps (pointer value, XID id, pointer cdata)
|
||||
{
|
||||
unsigned long *bytes = (unsigned long *)cdata;
|
||||
GCPtr pGC = (GCPtr)value;
|
||||
|
||||
if (pGC->stipple != NULL)
|
||||
*bytes += ResGetApproxPixmapBytes(pGC->stipple);
|
||||
|
||||
if (pGC->tile.pixmap != NULL && !pGC->tileIsPixel)
|
||||
*bytes += ResGetApproxPixmapBytes(pGC->tile.pixmap);
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -218,6 +262,24 @@ ProcXResQueryClientPixmapBytes (ClientPtr client)
|
|||
FindClientResourcesByType(clients[clientID], RT_PIXMAP, ResFindPixmaps,
|
||||
(pointer)(&bytes));
|
||||
|
||||
/*
|
||||
* Make sure win background pixmaps also held to account.
|
||||
*/
|
||||
FindClientResourcesByType(clients[clientID], RT_WINDOW,
|
||||
ResFindWindowPixmaps,
|
||||
(pointer)(&bytes));
|
||||
|
||||
/*
|
||||
* GC Tile & Stipple pixmaps too.
|
||||
*/
|
||||
FindClientResourcesByType(clients[clientID], RT_GC,
|
||||
ResFindGCPixmaps,
|
||||
(pointer)(&bytes));
|
||||
|
||||
#ifdef COMPOSITE
|
||||
/* FIXME: include composite pixmaps too */
|
||||
#endif
|
||||
|
||||
rep.type = X_Reply;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
rep.length = 0;
|
||||
|
|
|
@ -40,7 +40,6 @@ XORG_LIBS = \
|
|||
libosandcommon.la \
|
||||
rac/librac.a \
|
||||
parser/libxf86config.a \
|
||||
dummylib/libdummy.a \
|
||||
dixmods/libdixmods.la \
|
||||
@XORG_LIBS@
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# libdummy-nonserver.a contains additional routines normally found in the
|
||||
# server for use in building the utilities like scanpci & the config tools
|
||||
|
||||
noinst_LIBRARIES = libdummy.a libdummy-nonserver.a
|
||||
noinst_LIBRARIES = libdummy-nonserver.a
|
||||
|
||||
INCLUDES = $(XORG_INCS)
|
||||
|
||||
|
@ -12,15 +12,6 @@ if NEED_STRLCAT
|
|||
STRL_SRCS = $(top_srcdir)/os/strlcat.c $(top_srcdir)/os/strlcpy.c
|
||||
endif
|
||||
|
||||
libdummy_a_SOURCES = getvalidbios.c getemptypci.c \
|
||||
pcitestmulti.c xf86allocscripi.c \
|
||||
xf86addrestolist.c xf86drvmsg.c xf86drvmsgverb.c \
|
||||
xf86getverb.c \
|
||||
xf86opt.c xf86screens.c xf86servisinit.c xf86verbose.c \
|
||||
#xf86errorf.c xf86errorfverb.c xf86msg.c xf86msgverb.c \
|
||||
#logvwrite.c verrorf.c xf86info.c xalloc.c fatalerror.c \
|
||||
#$(srcdir)/../os-support/shared/sigiostubs.c
|
||||
|
||||
libdummy_nonserver_a_SOURCES = \
|
||||
fatalerror.c \
|
||||
getvalidbios.c \
|
||||
|
|
Loading…
Reference in New Issue