Merge branch 'master' of ssh+git://idr@git.freedesktop.org/git/xorg/xserver into pci-rework
This commit is contained in:
commit
16eb7254f8
|
@ -2,8 +2,6 @@ X/drivers
|
||||||
X/glxheader.h
|
X/glxheader.h
|
||||||
X/xmesaP.h
|
X/xmesaP.h
|
||||||
X/xm*.c
|
X/xm*.c
|
||||||
array_cache/*.c
|
|
||||||
array_cache/*.h
|
|
||||||
mesa/drivers
|
mesa/drivers
|
||||||
mesa/glxheader.h
|
mesa/glxheader.h
|
||||||
mesa/xm*.c
|
mesa/xm*.c
|
||||||
|
@ -30,3 +28,5 @@ tnl/*.c
|
||||||
tnl/*.h
|
tnl/*.h
|
||||||
x86
|
x86
|
||||||
x86-64
|
x86-64
|
||||||
|
vbo/*.c
|
||||||
|
vbo/*.h
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
SUBDIRS = main math array_cache swrast swrast_setup tnl shader X glapi
|
SUBDIRS = main math swrast swrast_setup tnl shader X glapi vbo
|
||||||
|
|
||||||
noinst_LTLIBRARIES = libGLcore.la
|
noinst_LTLIBRARIES = libGLcore.la
|
||||||
|
|
||||||
libGLcore_la_SOURCES = dummy.c
|
libGLcore_la_SOURCES = dummy.c
|
||||||
libGLcore_la_LIBADD = main/libmain.la \
|
libGLcore_la_LIBADD = main/libmain.la \
|
||||||
math/libmath.la \
|
math/libmath.la \
|
||||||
array_cache/libac.la \
|
|
||||||
swrast/libswrast.la \
|
swrast/libswrast.la \
|
||||||
swrast_setup/libss.la \
|
swrast_setup/libss.la \
|
||||||
tnl/libtnl.la \
|
tnl/libtnl.la \
|
||||||
shader/libshader.la \
|
shader/libshader.la \
|
||||||
shader/grammar/libgrammar.la \
|
shader/grammar/libgrammar.la \
|
||||||
shader/slang/libslang.la \
|
shader/slang/libslang.la \
|
||||||
|
vbo/libvbo.la \
|
||||||
X/libX.la
|
X/libX.la
|
||||||
|
|
|
@ -2,7 +2,6 @@ noinst_LTLIBRARIES = libX.la
|
||||||
|
|
||||||
INCLUDES = -I@MESA_SOURCE@/include \
|
INCLUDES = -I@MESA_SOURCE@/include \
|
||||||
-I../X \
|
-I../X \
|
||||||
-I../array_cache \
|
|
||||||
-I../glapi \
|
-I../glapi \
|
||||||
-I../main \
|
-I../main \
|
||||||
-I../math \
|
-I../math \
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
noinst_LTLIBRARIES = libac.la
|
|
||||||
|
|
||||||
AM_CFLAGS = \
|
|
||||||
$(DIX_CFLAGS) \
|
|
||||||
-DXFree86Server \
|
|
||||||
@GLX_DEFINES@
|
|
||||||
|
|
||||||
INCLUDES = -I@MESA_SOURCE@/include \
|
|
||||||
-I../X \
|
|
||||||
-I../array_cache \
|
|
||||||
-I../glapi \
|
|
||||||
-I../main \
|
|
||||||
-I../math \
|
|
||||||
-I../shader \
|
|
||||||
-I../swrast \
|
|
||||||
-I../swrast_setup \
|
|
||||||
-I../tnl \
|
|
||||||
-I.. \
|
|
||||||
-I$(top_srcdir)/hw/xfree86/os-support
|
|
||||||
|
|
||||||
nodist_libac_la_SOURCES = ac_context.c ac_import.c
|
|
|
@ -7,7 +7,6 @@ AM_CFLAGS = \
|
||||||
|
|
||||||
INCLUDES = -I@MESA_SOURCE@/include \
|
INCLUDES = -I@MESA_SOURCE@/include \
|
||||||
-I../X \
|
-I../X \
|
||||||
-I../array_cache \
|
|
||||||
-I../glapi \
|
-I../glapi \
|
||||||
-I../main \
|
-I../main \
|
||||||
-I../math \
|
-I../math \
|
||||||
|
|
|
@ -7,7 +7,6 @@ AM_CFLAGS = \
|
||||||
|
|
||||||
INCLUDES = -I@MESA_SOURCE@/include \
|
INCLUDES = -I@MESA_SOURCE@/include \
|
||||||
-I../X \
|
-I../X \
|
||||||
-I../array_cache \
|
|
||||||
-I../glapi \
|
-I../glapi \
|
||||||
-I../main \
|
-I../main \
|
||||||
-I../math \
|
-I../math \
|
||||||
|
|
|
@ -7,7 +7,6 @@ AM_CFLAGS = \
|
||||||
|
|
||||||
INCLUDES = -I@MESA_SOURCE@/include \
|
INCLUDES = -I@MESA_SOURCE@/include \
|
||||||
-I../X \
|
-I../X \
|
||||||
-I../array_cache \
|
|
||||||
-I../glapi \
|
-I../glapi \
|
||||||
-I../main \
|
-I../main \
|
||||||
-I../math \
|
-I../math \
|
||||||
|
|
|
@ -9,7 +9,6 @@ AM_CFLAGS = \
|
||||||
|
|
||||||
INCLUDES = -I@MESA_SOURCE@/include \
|
INCLUDES = -I@MESA_SOURCE@/include \
|
||||||
-I../X \
|
-I../X \
|
||||||
-I../array_cache \
|
|
||||||
-I../glapi \
|
-I../glapi \
|
||||||
-I../main \
|
-I../main \
|
||||||
-I../math \
|
-I../math \
|
||||||
|
|
|
@ -7,7 +7,6 @@ AM_CFLAGS = \
|
||||||
|
|
||||||
INCLUDES = -I@MESA_SOURCE@/include \
|
INCLUDES = -I@MESA_SOURCE@/include \
|
||||||
-I../../X \
|
-I../../X \
|
||||||
-I../../array_cache \
|
|
||||||
-I../../glapi \
|
-I../../glapi \
|
||||||
-I../../main \
|
-I../../main \
|
||||||
-I../../math \
|
-I../../math \
|
||||||
|
|
|
@ -8,7 +8,6 @@ AM_CFLAGS = \
|
||||||
INCLUDES = -I@MESA_SOURCE@/include \
|
INCLUDES = -I@MESA_SOURCE@/include \
|
||||||
-I../grammar \
|
-I../grammar \
|
||||||
-I../../X \
|
-I../../X \
|
||||||
-I../../array_cache \
|
|
||||||
-I../../glapi \
|
-I../../glapi \
|
||||||
-I../../main \
|
-I../../main \
|
||||||
-I../../math \
|
-I../../math \
|
||||||
|
|
|
@ -7,7 +7,6 @@ AM_CFLAGS = \
|
||||||
|
|
||||||
INCLUDES = -I@MESA_SOURCE@/include \
|
INCLUDES = -I@MESA_SOURCE@/include \
|
||||||
-I../X \
|
-I../X \
|
||||||
-I../array_cache \
|
|
||||||
-I../glapi \
|
-I../glapi \
|
||||||
-I../main \
|
-I../main \
|
||||||
-I../math \
|
-I../math \
|
||||||
|
|
|
@ -7,7 +7,6 @@ AM_CFLAGS = \
|
||||||
|
|
||||||
INCLUDES = -I@MESA_SOURCE@/include \
|
INCLUDES = -I@MESA_SOURCE@/include \
|
||||||
-I../X \
|
-I../X \
|
||||||
-I../array_cache \
|
|
||||||
-I../glapi \
|
-I../glapi \
|
||||||
-I../main \
|
-I../main \
|
||||||
-I../math \
|
-I../math \
|
||||||
|
|
|
@ -7,7 +7,6 @@ AM_CFLAGS = \
|
||||||
|
|
||||||
INCLUDES = -I@MESA_SOURCE@/include \
|
INCLUDES = -I@MESA_SOURCE@/include \
|
||||||
-I../X \
|
-I../X \
|
||||||
-I../array_cache \
|
|
||||||
-I../glapi \
|
-I../glapi \
|
||||||
-I../main \
|
-I../main \
|
||||||
-I../math \
|
-I../math \
|
||||||
|
@ -19,13 +18,9 @@ INCLUDES = -I@MESA_SOURCE@/include \
|
||||||
-I.. \
|
-I.. \
|
||||||
-I$(top_srcdir)/hw/xfree86/os-support
|
-I$(top_srcdir)/hw/xfree86/os-support
|
||||||
|
|
||||||
nodist_libtnl_la_SOURCES = t_array_api.c \
|
nodist_libtnl_la_SOURCES = t_context.c \
|
||||||
t_array_import.c \
|
t_draw.c \
|
||||||
t_context.c \
|
|
||||||
t_pipeline.c \
|
t_pipeline.c \
|
||||||
t_save_api.c \
|
|
||||||
t_save_loopback.c \
|
|
||||||
t_save_playback.c \
|
|
||||||
t_vb_arbprogram.c \
|
t_vb_arbprogram.c \
|
||||||
t_vb_arbprogram_sse.c \
|
t_vb_arbprogram_sse.c \
|
||||||
t_vb_arbshader.c \
|
t_vb_arbshader.c \
|
||||||
|
@ -42,9 +37,4 @@ nodist_libtnl_la_SOURCES = t_array_api.c \
|
||||||
t_vertex.c \
|
t_vertex.c \
|
||||||
t_vertex_generic.c \
|
t_vertex_generic.c \
|
||||||
t_vertex_sse.c \
|
t_vertex_sse.c \
|
||||||
t_vp_build.c \
|
t_vp_build.c
|
||||||
t_vtx_api.c \
|
|
||||||
t_vtx_eval.c \
|
|
||||||
t_vtx_exec.c \
|
|
||||||
t_vtx_generic.c \
|
|
||||||
t_vtx_x86.c
|
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
noinst_LTLIBRARIES = libvbo.la
|
||||||
|
|
||||||
|
AM_CFLAGS = \
|
||||||
|
$(DIX_CFLAGS) \
|
||||||
|
-DXFree86Server \
|
||||||
|
@GLX_DEFINES@
|
||||||
|
|
||||||
|
INCLUDES = -I@MESA_SOURCE@/include \
|
||||||
|
-I../X \
|
||||||
|
-I../glapi \
|
||||||
|
-I../main \
|
||||||
|
-I../math \
|
||||||
|
-I../shader \
|
||||||
|
-I../shader/slang \
|
||||||
|
-I../shader/slang \
|
||||||
|
-I../swrast \
|
||||||
|
-I../swrast_setup \
|
||||||
|
-I../tnl \
|
||||||
|
-I.. \
|
||||||
|
-I$(top_srcdir)/hw/xfree86/os-support
|
||||||
|
|
||||||
|
nodist_libvbo_la_SOURCES = vbo_context.c \
|
||||||
|
vbo_exec_api.c \
|
||||||
|
vbo_exec_array.c \
|
||||||
|
vbo_exec.c \
|
||||||
|
vbo_exec_draw.c \
|
||||||
|
vbo_exec_eval.c \
|
||||||
|
vbo_rebase.c \
|
||||||
|
vbo_save_api.c \
|
||||||
|
vbo_save.c \
|
||||||
|
vbo_save_draw.c \
|
||||||
|
vbo_save_loopback.c \
|
||||||
|
vbo_split.c \
|
||||||
|
vbo_split_copy.c \
|
||||||
|
vbo_split_inplace.c
|
|
@ -85,15 +85,6 @@ symlink_mesa_math() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
symlink_mesa_ac() {
|
|
||||||
src_dir src/mesa/array_cache
|
|
||||||
dst_dir mesa/array_cache
|
|
||||||
|
|
||||||
for src in $REAL_SRC_DIR/*.c $REAL_SRC_DIR/*.h; do
|
|
||||||
action `basename $src`
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
symlink_mesa_swrast() {
|
symlink_mesa_swrast() {
|
||||||
src_dir src/mesa/swrast
|
src_dir src/mesa/swrast
|
||||||
dst_dir mesa/swrast
|
dst_dir mesa/swrast
|
||||||
|
@ -157,6 +148,15 @@ symlink_mesa_shader_slang_library() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
symlink_mesa_vbo() {
|
||||||
|
src_dir src/mesa/vbo
|
||||||
|
dst_dir mesa/vbo
|
||||||
|
|
||||||
|
for src in $REAL_SRC_DIR/*.c $REAL_SRC_DIR/*.h; do
|
||||||
|
action `basename $src`
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
symlink_mesa_x() {
|
symlink_mesa_x() {
|
||||||
src_dir src/mesa/drivers/x11
|
src_dir src/mesa/drivers/x11
|
||||||
dst_dir mesa/X
|
dst_dir mesa/X
|
||||||
|
@ -203,7 +203,6 @@ symlink_mesa_x8664() {
|
||||||
symlink_mesa() {
|
symlink_mesa() {
|
||||||
symlink_mesa_main
|
symlink_mesa_main
|
||||||
symlink_mesa_math
|
symlink_mesa_math
|
||||||
symlink_mesa_ac
|
|
||||||
symlink_mesa_swrast
|
symlink_mesa_swrast
|
||||||
symlink_mesa_ss
|
symlink_mesa_ss
|
||||||
symlink_mesa_tnl
|
symlink_mesa_tnl
|
||||||
|
@ -215,6 +214,7 @@ symlink_mesa() {
|
||||||
symlink_mesa_glapi
|
symlink_mesa_glapi
|
||||||
symlink_mesa_ppc
|
symlink_mesa_ppc
|
||||||
symlink_mesa_sparc
|
symlink_mesa_sparc
|
||||||
|
symlink_mesa_vbo
|
||||||
symlink_mesa_x86
|
symlink_mesa_x86
|
||||||
symlink_mesa_x8664
|
symlink_mesa_x8664
|
||||||
}
|
}
|
||||||
|
|
|
@ -1841,7 +1841,6 @@ Makefile
|
||||||
GL/Makefile
|
GL/Makefile
|
||||||
GL/glx/Makefile
|
GL/glx/Makefile
|
||||||
GL/mesa/Makefile
|
GL/mesa/Makefile
|
||||||
GL/mesa/array_cache/Makefile
|
|
||||||
GL/mesa/glapi/Makefile
|
GL/mesa/glapi/Makefile
|
||||||
GL/mesa/main/Makefile
|
GL/mesa/main/Makefile
|
||||||
GL/mesa/math/Makefile
|
GL/mesa/math/Makefile
|
||||||
|
@ -1851,6 +1850,7 @@ GL/mesa/shader/slang/Makefile
|
||||||
GL/mesa/swrast/Makefile
|
GL/mesa/swrast/Makefile
|
||||||
GL/mesa/swrast_setup/Makefile
|
GL/mesa/swrast_setup/Makefile
|
||||||
GL/mesa/tnl/Makefile
|
GL/mesa/tnl/Makefile
|
||||||
|
GL/mesa/vbo/Makefile
|
||||||
GL/mesa/X/Makefile
|
GL/mesa/X/Makefile
|
||||||
include/Makefile
|
include/Makefile
|
||||||
afb/Makefile
|
afb/Makefile
|
||||||
|
|
|
@ -35,6 +35,13 @@ int DamageClientPrivateIndex;
|
||||||
RESTYPE DamageExtType;
|
RESTYPE DamageExtType;
|
||||||
RESTYPE DamageExtWinType;
|
RESTYPE DamageExtWinType;
|
||||||
|
|
||||||
|
/* Version of the damage extension supported by the server, as opposed to the
|
||||||
|
* DAMAGE_* defines from damageproto for what version the proto header
|
||||||
|
* supports.
|
||||||
|
*/
|
||||||
|
#define SERVER_DAMAGE_MAJOR 1
|
||||||
|
#define SERVER_DAMAGE_MINOR 1
|
||||||
|
|
||||||
#define prScreen screenInfo.screens[0]
|
#define prScreen screenInfo.screens[0]
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -143,16 +150,16 @@ ProcDamageQueryVersion(ClientPtr client)
|
||||||
rep.type = X_Reply;
|
rep.type = X_Reply;
|
||||||
rep.length = 0;
|
rep.length = 0;
|
||||||
rep.sequenceNumber = client->sequence;
|
rep.sequenceNumber = client->sequence;
|
||||||
if (stuff->majorVersion < DAMAGE_MAJOR) {
|
if (stuff->majorVersion < SERVER_DAMAGE_MAJOR) {
|
||||||
rep.majorVersion = stuff->majorVersion;
|
rep.majorVersion = stuff->majorVersion;
|
||||||
rep.minorVersion = stuff->minorVersion;
|
rep.minorVersion = stuff->minorVersion;
|
||||||
} else {
|
} else {
|
||||||
rep.majorVersion = DAMAGE_MAJOR;
|
rep.majorVersion = SERVER_DAMAGE_MAJOR;
|
||||||
if (stuff->majorVersion == DAMAGE_MAJOR &&
|
if (stuff->majorVersion == SERVER_DAMAGE_MAJOR &&
|
||||||
stuff->minorVersion < DAMAGE_MINOR)
|
stuff->minorVersion < SERVER_DAMAGE_MINOR)
|
||||||
rep.minorVersion = stuff->minorVersion;
|
rep.minorVersion = stuff->minorVersion;
|
||||||
else
|
else
|
||||||
rep.minorVersion = DAMAGE_MINOR;
|
rep.minorVersion = SERVER_DAMAGE_MINOR;
|
||||||
}
|
}
|
||||||
pDamageClient->major_version = rep.majorVersion;
|
pDamageClient->major_version = rep.majorVersion;
|
||||||
pDamageClient->minor_version = rep.minorVersion;
|
pDamageClient->minor_version = rep.minorVersion;
|
||||||
|
|
98
fb/fbmmx.c
98
fb/fbmmx.c
|
@ -1338,6 +1338,104 @@ fbCompositeSrc_8888x8888mmx (CARD8 op,
|
||||||
_mm_empty();
|
_mm_empty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
fbCompositeSrc_8888x0565mmx (CARD8 op,
|
||||||
|
PicturePtr pSrc,
|
||||||
|
PicturePtr pMask,
|
||||||
|
PicturePtr pDst,
|
||||||
|
INT16 xSrc,
|
||||||
|
INT16 ySrc,
|
||||||
|
INT16 xMask,
|
||||||
|
INT16 yMask,
|
||||||
|
INT16 xDst,
|
||||||
|
INT16 yDst,
|
||||||
|
CARD16 width,
|
||||||
|
CARD16 height)
|
||||||
|
{
|
||||||
|
CARD16 *dstLine, *dst;
|
||||||
|
CARD32 *srcLine, *src;
|
||||||
|
FbStride dstStride, srcStride;
|
||||||
|
CARD16 w;
|
||||||
|
|
||||||
|
CHECKPOINT();
|
||||||
|
|
||||||
|
fbComposeGetStart (pDst, xDst, yDst, CARD16, dstStride, dstLine, 1);
|
||||||
|
fbComposeGetStart (pSrc, xSrc, ySrc, CARD32, srcStride, srcLine, 1);
|
||||||
|
|
||||||
|
assert (pSrc->pDrawable == pMask->pDrawable);
|
||||||
|
|
||||||
|
while (height--)
|
||||||
|
{
|
||||||
|
dst = dstLine;
|
||||||
|
dstLine += dstStride;
|
||||||
|
src = srcLine;
|
||||||
|
srcLine += srcStride;
|
||||||
|
w = width;
|
||||||
|
|
||||||
|
CHECKPOINT();
|
||||||
|
|
||||||
|
while (w && (unsigned long)dst & 7)
|
||||||
|
{
|
||||||
|
__m64 vsrc = load8888 (*src);
|
||||||
|
ullong d = *dst;
|
||||||
|
__m64 vdest = expand565 ((__m64)d, 0);
|
||||||
|
|
||||||
|
vdest = pack565(over(vsrc, expand_alpha(vsrc), vdest), vdest, 0);
|
||||||
|
|
||||||
|
*dst = (ullong)vdest;
|
||||||
|
|
||||||
|
w--;
|
||||||
|
dst++;
|
||||||
|
src++;
|
||||||
|
}
|
||||||
|
|
||||||
|
CHECKPOINT();
|
||||||
|
|
||||||
|
while (w >= 4)
|
||||||
|
{
|
||||||
|
__m64 vsrc0, vsrc1, vsrc2, vsrc3;
|
||||||
|
__m64 vdest;
|
||||||
|
|
||||||
|
vsrc0 = load8888(*(src + 0));
|
||||||
|
vsrc1 = load8888(*(src + 1));
|
||||||
|
vsrc2 = load8888(*(src + 2));
|
||||||
|
vsrc3 = load8888(*(src + 3));
|
||||||
|
|
||||||
|
vdest = *(__m64 *)dst;
|
||||||
|
|
||||||
|
vdest = pack565(over(vsrc0, expand_alpha(vsrc0), expand565(vdest, 0)), vdest, 0);
|
||||||
|
vdest = pack565(over(vsrc1, expand_alpha(vsrc1), expand565(vdest, 1)), vdest, 1);
|
||||||
|
vdest = pack565(over(vsrc2, expand_alpha(vsrc2), expand565(vdest, 2)), vdest, 2);
|
||||||
|
vdest = pack565(over(vsrc3, expand_alpha(vsrc3), expand565(vdest, 3)), vdest, 3);
|
||||||
|
|
||||||
|
*(__m64 *)dst = vdest;
|
||||||
|
|
||||||
|
w -= 4;
|
||||||
|
dst += 4;
|
||||||
|
src += 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
CHECKPOINT();
|
||||||
|
|
||||||
|
while (w)
|
||||||
|
{
|
||||||
|
__m64 vsrc = load8888 (*src);
|
||||||
|
ullong d = *dst;
|
||||||
|
__m64 vdest = expand565 ((__m64)d, 0);
|
||||||
|
|
||||||
|
vdest = pack565(over(vsrc, expand_alpha(vsrc), vdest), vdest, 0);
|
||||||
|
|
||||||
|
*dst = (ullong)vdest;
|
||||||
|
|
||||||
|
w--;
|
||||||
|
dst++;
|
||||||
|
src++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_mm_empty();
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
fbCompositeSolidMask_nx8x8888mmx (CARD8 op,
|
fbCompositeSolidMask_nx8x8888mmx (CARD8 op,
|
||||||
PicturePtr pSrc,
|
PicturePtr pSrc,
|
||||||
|
|
12
fb/fbmmx.h
12
fb/fbmmx.h
|
@ -130,6 +130,18 @@ void fbCompositeSrc_8888RevNPx8888mmx (CARD8 op,
|
||||||
INT16 yDst,
|
INT16 yDst,
|
||||||
CARD16 width,
|
CARD16 width,
|
||||||
CARD16 height);
|
CARD16 height);
|
||||||
|
void fbCompositeSrc_8888x0565mmx (CARD8 op,
|
||||||
|
PicturePtr pSrc,
|
||||||
|
PicturePtr pMask,
|
||||||
|
PicturePtr pDst,
|
||||||
|
INT16 xSrc,
|
||||||
|
INT16 ySrc,
|
||||||
|
INT16 xMask,
|
||||||
|
INT16 yMask,
|
||||||
|
INT16 xDst,
|
||||||
|
INT16 yDst,
|
||||||
|
CARD16 width,
|
||||||
|
CARD16 height);
|
||||||
void fbCompositeSrc_8888RevNPx0565mmx (CARD8 op,
|
void fbCompositeSrc_8888RevNPx0565mmx (CARD8 op,
|
||||||
PicturePtr pSrc,
|
PicturePtr pSrc,
|
||||||
PicturePtr pMask,
|
PicturePtr pMask,
|
||||||
|
|
14
fb/fbpict.c
14
fb/fbpict.c
|
@ -1175,6 +1175,11 @@ fbComposite (CARD8 op,
|
||||||
func = fbCompositeSrc_8888x0888;
|
func = fbCompositeSrc_8888x0888;
|
||||||
break;
|
break;
|
||||||
case PICT_r5g6b5:
|
case PICT_r5g6b5:
|
||||||
|
#ifdef USE_MMX
|
||||||
|
if (fbHaveMMX())
|
||||||
|
func = fbCompositeSrc_8888x0565mmx;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
func = fbCompositeSrc_8888x0565;
|
func = fbCompositeSrc_8888x0565;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1221,6 +1226,11 @@ fbComposite (CARD8 op,
|
||||||
func = fbCompositeSrc_8888x0888;
|
func = fbCompositeSrc_8888x0888;
|
||||||
break;
|
break;
|
||||||
case PICT_b5g6r5:
|
case PICT_b5g6r5:
|
||||||
|
#ifdef USE_MMX
|
||||||
|
if (fbHaveMMX())
|
||||||
|
func = fbCompositeSrc_8888x0565mmx;
|
||||||
|
else
|
||||||
|
#endif
|
||||||
func = fbCompositeSrc_8888x0565;
|
func = fbCompositeSrc_8888x0565;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -1516,7 +1526,9 @@ static unsigned int detectCPUFeatures(void) {
|
||||||
features |= SSE;
|
features |= SSE;
|
||||||
if (result & (1 << 26))
|
if (result & (1 << 26))
|
||||||
features |= SSE2;
|
features |= SSE2;
|
||||||
if ((result & MMX) && !(result & SSE) && (strcmp(vendor, "AuthenticAMD") == 0)) {
|
if ((features & MMX) && !(features & SSE) &&
|
||||||
|
(strcmp(vendor, "AuthenticAMD") == 0 ||
|
||||||
|
strcmp(vendor, "Geode by NSC") == 0)) {
|
||||||
/* check for AMD MMX extensions */
|
/* check for AMD MMX extensions */
|
||||||
|
|
||||||
unsigned int result;
|
unsigned int result;
|
||||||
|
|
|
@ -2,6 +2,7 @@ DIST_SUBDIRS = input config glxProxy examples doc
|
||||||
|
|
||||||
SUBDIRS = input config examples
|
SUBDIRS = input config examples
|
||||||
bin_PROGRAMS = Xdmx
|
bin_PROGRAMS = Xdmx
|
||||||
|
noinst_LIBRARIES = libfbcmap.a
|
||||||
|
|
||||||
if XINERAMA
|
if XINERAMA
|
||||||
PANORAMIX_SRCS = $(top_srcdir)/Xext/panoramiX.c
|
PANORAMIX_SRCS = $(top_srcdir)/Xext/panoramiX.c
|
||||||
|
@ -16,13 +17,20 @@ GLX_INCS = -I$(top_srcdir)/hw/xfree86/dixmods/extmod \
|
||||||
GLX_DEFS = @GL_CFLAGS@
|
GLX_DEFS = @GL_CFLAGS@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# It's essential that fbcmap.c be compiled with this flag for DMX to work!!
|
|
||||||
DMX_CFLAGS = -DXFree86Server=1
|
|
||||||
|
|
||||||
if BUILDDOCS
|
if BUILDDOCS
|
||||||
SUBDIRS += doc
|
SUBDIRS += doc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
AM_CFLAGS = \
|
||||||
|
-DHAVE_DMX_CONFIG_H \
|
||||||
|
$(DIX_CFLAGS) \
|
||||||
|
$(GLX_INCS) \
|
||||||
|
$(GLX_DEFS) \
|
||||||
|
@DMXMODULES_CFLAGS@
|
||||||
|
|
||||||
|
libfbcmap_a_SOURCES = libfbcmap.a
|
||||||
|
libfbcmap_a_CFLAGS = $(AM_CFLAGS) -DXFree86Server
|
||||||
|
|
||||||
Xdmx_SOURCES = dmx.c \
|
Xdmx_SOURCES = dmx.c \
|
||||||
dmxcb.c \
|
dmxcb.c \
|
||||||
dmxcb.h \
|
dmxcb.h \
|
||||||
|
@ -67,7 +75,6 @@ Xdmx_SOURCES = dmx.c \
|
||||||
dmxvisual.h \
|
dmxvisual.h \
|
||||||
dmxwindow.c \
|
dmxwindow.c \
|
||||||
dmxwindow.h \
|
dmxwindow.h \
|
||||||
$(top_srcdir)/fb/fbcmap.c \
|
|
||||||
$(top_srcdir)/mi/miinitext.c \
|
$(top_srcdir)/mi/miinitext.c \
|
||||||
$(GLX_SRCS)
|
$(GLX_SRCS)
|
||||||
|
|
||||||
|
@ -82,16 +89,9 @@ Xdmx_LDADD = $(XORG_CORE_LIBS) \
|
||||||
$(GLX_LIBS) \
|
$(GLX_LIBS) \
|
||||||
input/libdmxinput.a \
|
input/libdmxinput.a \
|
||||||
config/libdmxconfig.a \
|
config/libdmxconfig.a \
|
||||||
|
libfbcmap.a \
|
||||||
@DMXMODULES_LIBS@
|
@DMXMODULES_LIBS@
|
||||||
|
|
||||||
Xdmx_CFLAGS = \
|
|
||||||
-DHAVE_DMX_CONFIG_H \
|
|
||||||
$(DIX_CFLAGS) \
|
|
||||||
$(GLX_INCS) \
|
|
||||||
$(GLX_DEFS) \
|
|
||||||
$(DMX_CFLAGS) \
|
|
||||||
@DMXMODULES_CFLAGS@
|
|
||||||
|
|
||||||
# Man page
|
# Man page
|
||||||
appmandir = $(APP_MAN_DIR)
|
appmandir = $(APP_MAN_DIR)
|
||||||
|
|
||||||
|
|
|
@ -49,58 +49,6 @@ typedef struct {
|
||||||
|
|
||||||
} __GLXpixmap;
|
} __GLXpixmap;
|
||||||
|
|
||||||
struct __GLXdrawablePrivateRec {
|
|
||||||
/*
|
|
||||||
** list of drawable private structs
|
|
||||||
*/
|
|
||||||
struct __GLXdrawablePrivateRec *last;
|
|
||||||
struct __GLXdrawablePrivateRec *next;
|
|
||||||
|
|
||||||
DrawablePtr pDraw;
|
|
||||||
XID drawId;
|
|
||||||
__GLXpixmap *pGlxPixmap;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Either DRAWABLE_PIXMAP or DRAWABLE_WINDOW, copied from pDraw above.
|
|
||||||
** Needed by the resource freer because pDraw might already have been
|
|
||||||
** freed.
|
|
||||||
*/
|
|
||||||
int type;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Configuration of the visual to which this drawable was created.
|
|
||||||
*/
|
|
||||||
__GLXvisualConfig *pGlxVisual;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** cached drawable size and origin
|
|
||||||
*/
|
|
||||||
GLint xorigin, yorigin;
|
|
||||||
GLint width, height;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** list of contexts bound to this drawable
|
|
||||||
*/
|
|
||||||
struct __GLXcontextRec *glxc;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** "methods" that the drawble should be able to respond to.
|
|
||||||
*/
|
|
||||||
void (*freeBuffers)(struct __GLXdrawablePrivateRec *);
|
|
||||||
void (*updatePalette)(struct __GLXdrawablePrivateRec *);
|
|
||||||
GLboolean (*swapBuffers)(struct __GLXdrawablePrivateRec *);
|
|
||||||
|
|
||||||
/*
|
|
||||||
** The GL drawable (information shared between GLX and the GL core)
|
|
||||||
*/
|
|
||||||
__GLdrawablePrivate glPriv;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** reference count
|
|
||||||
*/
|
|
||||||
int refCount;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
DrawablePtr pDraw;
|
DrawablePtr pDraw;
|
||||||
int type;
|
int type;
|
||||||
|
|
|
@ -58,9 +58,6 @@
|
||||||
#include <GL/glxproto.h>
|
#include <GL/glxproto.h>
|
||||||
#include <GL/glxint.h>
|
#include <GL/glxint.h>
|
||||||
|
|
||||||
/* For glxscreens.h */
|
|
||||||
typedef struct __GLXdrawablePrivateRec __GLXdrawablePrivate;
|
|
||||||
|
|
||||||
#include "glxscreens.h"
|
#include "glxscreens.h"
|
||||||
#include "glxdrawable.h"
|
#include "glxdrawable.h"
|
||||||
#include "glxcontext.h"
|
#include "glxcontext.h"
|
||||||
|
|
|
@ -81,6 +81,7 @@ Bool
|
||||||
ephyrScreenInitialize (KdScreenInfo *screen, EphyrScrPriv *scrpriv)
|
ephyrScreenInitialize (KdScreenInfo *screen, EphyrScrPriv *scrpriv)
|
||||||
{
|
{
|
||||||
int width = 640, height = 480;
|
int width = 640, height = 480;
|
||||||
|
unsigned long redMask, greenMask, blueMask;
|
||||||
|
|
||||||
if (hostx_want_screen_size(&width, &height)
|
if (hostx_want_screen_size(&width, &height)
|
||||||
|| !screen->width || !screen->height)
|
|| !screen->width || !screen->height)
|
||||||
|
@ -133,30 +134,24 @@ ephyrScreenInitialize (KdScreenInfo *screen, EphyrScrPriv *scrpriv)
|
||||||
{
|
{
|
||||||
screen->fb[0].depth = 15;
|
screen->fb[0].depth = 15;
|
||||||
screen->fb[0].bitsPerPixel = 16;
|
screen->fb[0].bitsPerPixel = 16;
|
||||||
|
|
||||||
hostx_get_visual_masks (&screen->fb[0].redMask,
|
|
||||||
&screen->fb[0].greenMask,
|
|
||||||
&screen->fb[0].blueMask);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else if (screen->fb[0].depth <= 16)
|
else if (screen->fb[0].depth <= 16)
|
||||||
{
|
{
|
||||||
screen->fb[0].depth = 16;
|
screen->fb[0].depth = 16;
|
||||||
screen->fb[0].bitsPerPixel = 16;
|
screen->fb[0].bitsPerPixel = 16;
|
||||||
|
|
||||||
hostx_get_visual_masks (&screen->fb[0].redMask,
|
|
||||||
&screen->fb[0].greenMask,
|
|
||||||
&screen->fb[0].blueMask);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
screen->fb[0].depth = 24;
|
screen->fb[0].depth = 24;
|
||||||
screen->fb[0].bitsPerPixel = 32;
|
screen->fb[0].bitsPerPixel = 32;
|
||||||
|
|
||||||
hostx_get_visual_masks (&screen->fb[0].redMask,
|
|
||||||
&screen->fb[0].greenMask,
|
|
||||||
&screen->fb[0].blueMask);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hostx_get_visual_masks (&redMask, &greenMask, &blueMask);
|
||||||
|
|
||||||
|
screen->fb[0].redMask = (Pixel) redMask;
|
||||||
|
screen->fb[0].greenMask = (Pixel) greenMask;
|
||||||
|
screen->fb[0].blueMask = (Pixel) blueMask;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
scrpriv->randr = screen->randr;
|
scrpriv->randr = screen->randr;
|
||||||
|
|
|
@ -1,12 +1,21 @@
|
||||||
bin_PROGRAMS = Xvfb
|
bin_PROGRAMS = Xvfb
|
||||||
|
noinst_LIBRARIES = libfbcmap.a
|
||||||
|
|
||||||
|
AM_CFLAGS = -DHAVE_DIX_CONFIG_H \
|
||||||
|
-DNO_HW_ONLY_EXTS \
|
||||||
|
-DNO_MODULE_EXTS \
|
||||||
|
$(XVFBMODULES_CFLAGS) \
|
||||||
|
$(DIX_CFLAGS)
|
||||||
|
|
||||||
SRCS = InitInput.c \
|
SRCS = InitInput.c \
|
||||||
InitOutput.c \
|
InitOutput.c \
|
||||||
lk201kbd.h \
|
lk201kbd.h \
|
||||||
$(top_srcdir)/Xext/dpmsstubs.c \
|
$(top_srcdir)/Xext/dpmsstubs.c \
|
||||||
$(top_srcdir)/Xi/stubs.c \
|
$(top_srcdir)/Xi/stubs.c \
|
||||||
$(top_srcdir)/mi/miinitext.c \
|
$(top_srcdir)/mi/miinitext.c
|
||||||
$(top_srcdir)/fb/fbcmap.c
|
|
||||||
|
libfbcmap_a_CFLAGS = $(AM_CFLAGS) -DXFree86Server
|
||||||
|
libfbcmap_a_SOURCES = $(top_srcdir)/fb/fbcmap.c
|
||||||
|
|
||||||
Xvfb_SOURCES = $(SRCS)
|
Xvfb_SOURCES = $(SRCS)
|
||||||
|
|
||||||
|
@ -14,16 +23,8 @@ Xvfb_LDADD = $(XORG_CORE_LIBS) \
|
||||||
$(XVFB_LIBS) \
|
$(XVFB_LIBS) \
|
||||||
$(XSERVER_LIBS) \
|
$(XSERVER_LIBS) \
|
||||||
$(EXTENSION_LIBS) \
|
$(EXTENSION_LIBS) \
|
||||||
$(XVFBMODULES_LIBS)
|
$(XVFBMODULES_LIBS) \
|
||||||
|
libfbcmap.a
|
||||||
Xvfb_LDFLAGS =
|
|
||||||
|
|
||||||
AM_CFLAGS = -DHAVE_DIX_CONFIG_H \
|
|
||||||
-DNO_HW_ONLY_EXTS \
|
|
||||||
-DNO_MODULE_EXTS \
|
|
||||||
-DXFree86Server \
|
|
||||||
$(XVFBMODULES_CFLAGS) \
|
|
||||||
$(DIX_CFLAGS)
|
|
||||||
|
|
||||||
# Man page
|
# Man page
|
||||||
include $(top_srcdir)/cpprules.in
|
include $(top_srcdir)/cpprules.in
|
||||||
|
|
|
@ -725,6 +725,11 @@ xf86SetModeCrtc(DisplayModePtr p, int adjustFlags)
|
||||||
p->CrtcVSyncEnd *= p->VScan;
|
p->CrtcVSyncEnd *= p->VScan;
|
||||||
p->CrtcVTotal *= p->VScan;
|
p->CrtcVTotal *= p->VScan;
|
||||||
}
|
}
|
||||||
|
p->CrtcVBlankStart = min(p->CrtcVSyncStart, p->CrtcVDisplay);
|
||||||
|
p->CrtcVBlankEnd = max(p->CrtcVSyncEnd, p->CrtcVTotal);
|
||||||
|
p->CrtcHBlankStart = min(p->CrtcHSyncStart, p->CrtcHDisplay);
|
||||||
|
p->CrtcHBlankEnd = max(p->CrtcHSyncEnd, p->CrtcHTotal);
|
||||||
|
|
||||||
p->CrtcHAdjusted = FALSE;
|
p->CrtcHAdjusted = FALSE;
|
||||||
p->CrtcVAdjusted = FALSE;
|
p->CrtcVAdjusted = FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,6 +63,40 @@ static void x86emuOp2_illegal_op(
|
||||||
|
|
||||||
#define xorl(a,b) ((a) && !(b)) || (!(a) && (b))
|
#define xorl(a,b) ((a) && !(b)) || (!(a) && (b))
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
REMARKS:
|
||||||
|
Handles opcode 0x0f,0x31
|
||||||
|
****************************************************************************/
|
||||||
|
static void x86emuOp2_rdtsc(u8 X86EMU_UNUSED(op2))
|
||||||
|
{
|
||||||
|
#ifdef __HAS_LONG_LONG__
|
||||||
|
static u64 counter = 0;
|
||||||
|
#else
|
||||||
|
static u32 counter = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
counter += 0x10000;
|
||||||
|
|
||||||
|
/* read timestamp counter */
|
||||||
|
/*
|
||||||
|
* Note that instead of actually trying to accurately measure this, we just
|
||||||
|
* increase the counter by a fixed amount every time we hit one of these
|
||||||
|
* instructions. Feel free to come up with a better method.
|
||||||
|
*/
|
||||||
|
START_OF_INSTR();
|
||||||
|
DECODE_PRINTF("RDTSC\n");
|
||||||
|
TRACE_AND_STEP();
|
||||||
|
#ifdef __HAS_LONG_LONG__
|
||||||
|
M.x86.R_EAX = counter & 0xffffffff;
|
||||||
|
M.x86.R_EDX = counter >> 32;
|
||||||
|
#else
|
||||||
|
M.x86.R_EAX = counter;
|
||||||
|
M.x86.R_EDX = 0;
|
||||||
|
#endif
|
||||||
|
DECODE_CLEAR_SEGOVR();
|
||||||
|
END_OF_INSTR();
|
||||||
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
REMARKS:
|
REMARKS:
|
||||||
Handles opcode 0x0f,0x80-0x8F
|
Handles opcode 0x0f,0x80-0x8F
|
||||||
|
@ -2580,7 +2614,7 @@ void (*x86emu_optab2[256])(u8) =
|
||||||
/* 0x2f */ x86emuOp2_illegal_op,
|
/* 0x2f */ x86emuOp2_illegal_op,
|
||||||
|
|
||||||
/* 0x30 */ x86emuOp2_illegal_op,
|
/* 0x30 */ x86emuOp2_illegal_op,
|
||||||
/* 0x31 */ x86emuOp2_illegal_op,
|
/* 0x31 */ x86emuOp2_rdtsc,
|
||||||
/* 0x32 */ x86emuOp2_illegal_op,
|
/* 0x32 */ x86emuOp2_illegal_op,
|
||||||
/* 0x33 */ x86emuOp2_illegal_op,
|
/* 0x33 */ x86emuOp2_illegal_op,
|
||||||
/* 0x34 */ x86emuOp2_illegal_op,
|
/* 0x34 */ x86emuOp2_illegal_op,
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
bin_PROGRAMS = Xnest
|
bin_PROGRAMS = Xnest
|
||||||
|
noinst_LIBRARIES = libfbcmap.a
|
||||||
|
|
||||||
|
AM_CFLAGS = -DHAVE_XNEST_CONFIG_H \
|
||||||
|
-DNO_HW_ONLY_EXTS \
|
||||||
|
$(DIX_CFLAGS) \
|
||||||
|
$(XNESTMODULES_CFLAGS)
|
||||||
|
|
||||||
SRCS = Args.c \
|
SRCS = Args.c \
|
||||||
Args.h \
|
Args.h \
|
||||||
|
@ -37,23 +43,17 @@ SRCS = Args.c \
|
||||||
xnest-config.h \
|
xnest-config.h \
|
||||||
$(top_srcdir)/Xext/dpmsstubs.c \
|
$(top_srcdir)/Xext/dpmsstubs.c \
|
||||||
$(top_srcdir)/Xi/stubs.c \
|
$(top_srcdir)/Xi/stubs.c \
|
||||||
$(top_srcdir)/mi/miinitext.c \
|
$(top_srcdir)/mi/miinitext.c
|
||||||
$(top_srcdir)/fb/fbcmap.c
|
|
||||||
|
|
||||||
|
libfbcmap_a_SOURCES = $(top_srcdir)/fb/fbcmap.c
|
||||||
|
libfbcmap_a_CFLAGS = $(AM_CFLAGS) -DXFree86Server
|
||||||
|
|
||||||
Xnest_SOURCES = $(SRCS)
|
Xnest_SOURCES = $(SRCS)
|
||||||
|
|
||||||
Xnest_LDADD = $(XORG_CORE_LIBS) \
|
Xnest_LDADD = $(XORG_CORE_LIBS) \
|
||||||
$(XNEST_LIBS) \
|
$(XNEST_LIBS) \
|
||||||
$(XNESTMODULES_LIBS)
|
$(XNESTMODULES_LIBS) \
|
||||||
|
libfbcmap.a
|
||||||
Xnest_LDFLAGS =
|
|
||||||
|
|
||||||
AM_CFLAGS = -DHAVE_XNEST_CONFIG_H \
|
|
||||||
-DNO_HW_ONLY_EXTS \
|
|
||||||
-DXFree86Server \
|
|
||||||
$(DIX_CFLAGS) \
|
|
||||||
$(XNESTMODULES_CFLAGS)
|
|
||||||
|
|
||||||
EXTRA_DIST = os2Stub.c \
|
EXTRA_DIST = os2Stub.c \
|
||||||
icon \
|
icon \
|
||||||
|
|
|
@ -870,7 +870,7 @@ ProcRRSetCrtcGamma (ClientPtr client)
|
||||||
unsigned long len;
|
unsigned long len;
|
||||||
CARD16 *red, *green, *blue;
|
CARD16 *red, *green, *blue;
|
||||||
|
|
||||||
REQUEST_SIZE_MATCH(xRRSetCrtcGammaReq);
|
REQUEST_AT_LEAST_SIZE(xRRSetCrtcGammaReq);
|
||||||
crtc = LookupCrtc (client, stuff->crtc, DixWriteAccess);
|
crtc = LookupCrtc (client, stuff->crtc, DixWriteAccess);
|
||||||
if (!crtc)
|
if (!crtc)
|
||||||
return RRErrorBase + BadRRCrtc;
|
return RRErrorBase + BadRRCrtc;
|
||||||
|
|
|
@ -1220,7 +1220,7 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies)
|
||||||
tmp = xalloc(src->max_key_code + 1);
|
tmp = xalloc(src->max_key_code + 1);
|
||||||
if (!tmp)
|
if (!tmp)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
dst->map->syms = tmp;
|
dst->map->modmap = tmp;
|
||||||
}
|
}
|
||||||
memcpy(dst->map->modmap, src->map->modmap, src->max_key_code + 1);
|
memcpy(dst->map->modmap, src->map->modmap, src->max_key_code + 1);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue