Compare commits
24 Commits
mesa_7_0_2
...
mesa_7_0_2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8a40b670c3 | ||
|
|
d9fa5cbfc9 | ||
|
|
1c21564292 | ||
|
|
6cc96bf156 | ||
|
|
29afd4bbc4 | ||
|
|
4e3db063ec | ||
|
|
6560744c38 | ||
|
|
572ad87881 | ||
|
|
2ab75d6cfa | ||
|
|
041a8eb5ec | ||
|
|
c1c13bdcfa | ||
|
|
403edd34dd | ||
|
|
f279e48416 | ||
|
|
bf854d8d27 | ||
|
|
f334121679 | ||
|
|
b88e2be609 | ||
|
|
08229c8bb8 | ||
|
|
c984017f71 | ||
|
|
00e7dd8a13 | ||
|
|
d11b375b16 | ||
|
|
d1afa8146f | ||
|
|
31d4ba8a93 | ||
|
|
1a7640958c | ||
|
|
2e2a5a450b |
8
Makefile
8
Makefile
@@ -166,10 +166,10 @@ ultrix-gcc:
|
||||
|
||||
# Rules for making release tarballs
|
||||
|
||||
DIRECTORY = Mesa-7.0.2-rc1
|
||||
LIB_NAME = MesaLib-7.0.2-rc1
|
||||
DEMO_NAME = MesaDemos-7.0.2-rc1
|
||||
GLUT_NAME = MesaGLUT-7.0.2-rc1
|
||||
DIRECTORY = Mesa-7.0.2
|
||||
LIB_NAME = MesaLib-7.0.2
|
||||
DEMO_NAME = MesaDemos-7.0.2
|
||||
GLUT_NAME = MesaGLUT-7.0.2
|
||||
|
||||
MAIN_FILES = \
|
||||
$(DIRECTORY)/Makefile* \
|
||||
|
||||
@@ -11,6 +11,10 @@ CXX = g++
|
||||
CFLAGS = -O2 -DAIXV3
|
||||
CXXFLAGS = -O2 -DAIXV3
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
MKLIB_OPTIONS = -arch aix-gcc
|
||||
GL_LIB_DEPS = -lX11 -lXext -lm
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
|
||||
@@ -39,6 +39,10 @@ ifeq ($(CPU), x86)
|
||||
|
||||
CXXFLAGS = $(CFLAGS)
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
LDFLAGS += -Xlinker
|
||||
|
||||
ifdef DEBUG
|
||||
|
||||
@@ -13,6 +13,10 @@ CXX = /bgl/BlueLight/ppcfloor/blrts-gnu/bin/powerpc-bgl-blrts-gnu-g++
|
||||
CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURC
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
MKLIB_OPTIONS = -static
|
||||
|
||||
OSMESA_LIB_NAME = libOSMesa.a
|
||||
|
||||
@@ -10,6 +10,10 @@ CXX = cc
|
||||
CFLAGS = -I/usr/X11R6/include -O3 -fPIC -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin
|
||||
CXXFLAGS = -I/usr/X11R6/include -O3 -fPIC -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.dylib
|
||||
GLU_LIB_NAME = libGLU.dylib
|
||||
|
||||
@@ -9,6 +9,10 @@ CFLAGS = -I/usr/X11R6/include -O3 -fno-common -ffast-math -funroll-loops -fexpen
|
||||
CXXFLAGS = -I/usr/X11R6/include -O3 -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin
|
||||
MKLIB_OPTIONS = -static
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
GLU_LIB_NAME = libGLU.a
|
||||
|
||||
@@ -11,6 +11,10 @@ CXXFLAGS = -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk \
|
||||
-I/usr/X11R6/include -O3 -fno-common -ffast-math -funroll-loops -fexpensive-optimizations -no-cpp-precomp -dynamic -Ddarwin
|
||||
MKLIB_OPTIONS = -static -archopt "-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
GLU_LIB_NAME = libGLU.a
|
||||
|
||||
@@ -14,6 +14,10 @@ CXXFLAGS = -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk \
|
||||
|
||||
MKLIB_OPTIONS = -archopt "-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.dylib
|
||||
GLU_LIB_NAME = libGLU.dylib
|
||||
|
||||
@@ -23,5 +23,9 @@ CXXFLAGS += $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(DEFINES) $(X11_INCLUDES)
|
||||
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
EXTRA_LIB_PATH = -L/usr/X11R6/lib
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) $(EXTRA_LIB_PATH) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lXext -lXmu -lXi -lX11 -lm
|
||||
|
||||
@@ -22,6 +22,10 @@ CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) -Wmissing-prototypes -std=c99 -
|
||||
|
||||
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(DEFINES) -Wall -ansi -pedantic $(ASM_FLAGS) $(X11_INCLUDES)
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
ASM_SOURCES =
|
||||
|
||||
# Library/program dependencies
|
||||
|
||||
@@ -12,5 +12,9 @@ CFLAGS = -ansi -O3 -D_HPUX_SOURCE -I/usr/include/X11R6 -I/usr/contrib/X11R6/incl
|
||||
CXXFLAGS = -ansi -O3 -D_HPUX_SOURCE
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/lib/X11R6 -L/usr/contrib/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
|
||||
|
||||
|
||||
@@ -28,6 +28,10 @@ CFLAGS = -Wall -Wmissing-prototypes $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
|
||||
CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
|
||||
$(X11_INCLUDES)
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
EXTRA_LIB_PATH = -L/usr/X11R6/lib
|
||||
|
||||
@@ -11,6 +11,10 @@ CFLAGS = -O3 -mcpu=ev5 -ansi -mieee -pedantic -fPIC -D_XOPEN_SOURCE -DUSE_XSHM
|
||||
CXXFLAGS = -O3 -mcpu=ev5 -ansi -mieee -pedantic -fPIC -D_XOPEN_SOURCE
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L/usr/X11R6/lib -lXt -lX11
|
||||
|
||||
@@ -11,7 +11,11 @@ CFLAGS = -O3 -mcpu=ev5 -ansi -mieee -pedantic -D_XOPEN_SOURCE -DUSE_XSHM
|
||||
CXXFLAGS = -O3 -mcpu=ev5 -ansi -mieee -pedantic -D_XOPEN_SOURCE
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
MKLIB_OPTIONS = -static
|
||||
PIC_FLAGS =
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
|
||||
@@ -13,6 +13,10 @@ CFLAGS = -Wall -O3 -ffast-math -fPIC -std=c99 -D_GNU_SOURCE -D_POSIX_SOURCE -D
|
||||
|
||||
CXXFLAGS = -Wall -O3 -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
HAVE_X86 = $(shell uname -m | grep 'i[3-6]86' >/dev/null && echo yes)
|
||||
ifeq ($(HAVE_X86), yes)
|
||||
CFLAGS += -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
|
||||
|
||||
@@ -32,6 +32,11 @@ CFLAGS = -Wall -Wmissing-prototypes -std=c99 -ffast-math \
|
||||
|
||||
CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
|
||||
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
ASM_SOURCES =
|
||||
|
||||
|
||||
@@ -5,9 +5,6 @@ include $(TOP)/configs/linux-dri
|
||||
|
||||
CONFIG_NAME = linux-dri-x86
|
||||
|
||||
# Unnecessary on x86, generally.
|
||||
PIC_FLAGS =
|
||||
|
||||
# Add -m32 to CFLAGS:
|
||||
ARCH_FLAGS = -m32
|
||||
|
||||
|
||||
@@ -32,6 +32,9 @@ CFLAGS = -Wall -Wmissing-prototypes $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) \
|
||||
|
||||
CXXFLAGS = -Wall $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
ASM_SOURCES =
|
||||
|
||||
|
||||
@@ -6,6 +6,9 @@ CONFIG_NAME = linux-fbdev
|
||||
|
||||
CFLAGS = -O3 -ffast-math -ansi -pedantic -fPIC -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DPTHREADS -DUSE_GLFBDEV_DRIVER
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
|
||||
SRC_DIRS = mesa glu glut/fbdev
|
||||
DRIVER_DIRS = fbdev osmesa
|
||||
PROGRAM_DIRS = fbdev demos redbook samples
|
||||
|
||||
@@ -12,6 +12,9 @@ CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE
|
||||
CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
# Library/program dependencies
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -L/usr/local/glide/lib -lglide3x -lm -lpthread
|
||||
|
||||
@@ -33,6 +33,9 @@ CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
|
||||
|
||||
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
ASM_SOURCES =
|
||||
|
||||
|
||||
@@ -12,6 +12,9 @@ CXX = g++
|
||||
CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DPTHREADS
|
||||
CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
# Directories
|
||||
SRC_DIRS = mesa glu
|
||||
|
||||
@@ -10,6 +10,9 @@ CXX = g++
|
||||
CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include -DCHAN_BITS=16 -DDEFAULT_SOFTWARE_DEPTH_BITS=31
|
||||
CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
# Library names
|
||||
OSMESA_LIB = OSMesa16
|
||||
|
||||
@@ -10,7 +10,11 @@ CXX = g++
|
||||
CFLAGS = -O3 -ansi -pedantic -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include -DCHAN_BITS=16 -DDEFAULT_SOFTWARE_DEPTH_BITS=31
|
||||
CXXFLAGS = -O3 -ansi -pedantic -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
MKLIB_OPTIONS = -static
|
||||
PIC_FLAGS =
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
# Library names
|
||||
OSMESA_LIB = OSMesa16
|
||||
|
||||
@@ -10,6 +10,9 @@ CXX = g++
|
||||
CFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE -DUSE_XSHM -DPTHREADS -I/usr/X11R6/include -DCHAN_BITS=32 -DDEFAULT_SOFTWARE_DEPTH_BITS=31
|
||||
CXXFLAGS = -O3 -ansi -pedantic -fPIC -ffast-math -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199309L -D_SVID_SOURCE -D_BSD_SOURCE
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
# Library names
|
||||
OSMESA_LIB = OSMesa32
|
||||
|
||||
@@ -5,6 +5,7 @@ include $(TOP)/configs/linux-ppc
|
||||
CONFIG_NAME = linux-ppc-static
|
||||
|
||||
MKLIB_OPTIONS = -static
|
||||
PIC_FLAGS =
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
|
||||
@@ -31,6 +31,9 @@ CFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
|
||||
|
||||
CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES)
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
ASM_SOURCES =
|
||||
|
||||
|
||||
@@ -5,9 +5,6 @@ include $(TOP)/configs/linux-solo
|
||||
|
||||
CONFIG_NAME = linux-solo-x86
|
||||
|
||||
# Unnecessary on x86, generally.
|
||||
PIC_FLAGS =
|
||||
|
||||
ASM_FLAGS = -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM
|
||||
ASM_SOURCES = $(X86_SOURCES)
|
||||
ASM_API = $(X86_API)
|
||||
|
||||
@@ -5,6 +5,7 @@ include $(TOP)/configs/linux
|
||||
CONFIG_NAME = linux-static
|
||||
|
||||
MKLIB_OPTIONS = -static
|
||||
PIC_FLAGS =
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
|
||||
@@ -5,6 +5,7 @@ include $(TOP)/configs/linux-x86-64
|
||||
CONFIG_NAME = linux-x86-64-static
|
||||
|
||||
MKLIB_OPTIONS = -static
|
||||
PIC_FLAGS =
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
|
||||
@@ -14,6 +14,9 @@ CXXFLAGS = -Wall -O3 -ansi -pedantic -fPIC -D_POSIX_SOURCE -D_POSIX_C_SOURCE=199
|
||||
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
ASM_SOURCES = $(X86_SOURCES)
|
||||
ASM_API = $(X86_API)
|
||||
|
||||
@@ -5,6 +5,7 @@ include $(TOP)/configs/linux-x86
|
||||
CONFIG_NAME = linux-x86-static
|
||||
|
||||
MKLIB_OPTIONS = -static
|
||||
PIC_FLAGS =
|
||||
|
||||
# Library names (actual file names)
|
||||
GL_LIB_NAME = libGL.a
|
||||
|
||||
@@ -12,3 +12,6 @@ CXXFLAGS = -O2 -fPIC
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/X11R6/lib -lXext -lXmu -lXi -lX11 -lm
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
@@ -10,6 +10,10 @@ CXX = g++
|
||||
CFLAGS = -O2 -fPIC -I/usr/X11R6/include -DUSE_XSHM -DHZ=100
|
||||
CXXFLAGS = -O2 -fPIC -I/usr/X11R6/include -DHZ=100
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
GL_LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm
|
||||
OSMESA_LIB_DEPS = -lm
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
|
||||
|
||||
@@ -11,6 +11,10 @@ CFLAGS = -O3 -march=i486 -fPIC -I/usr/openwin/include -DUSE_XSHM
|
||||
CXXFLAGS = -O3 -march=i486 -fPIC
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
GL_LIB_DEPS = -L/usr/openwin/lib -lX11 -lXext -lm -lpthread
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/openwin/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
|
||||
@@ -12,6 +12,10 @@ CXXFLAGS = -O3 -march=i486 -fPIC
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
MKLIB_OPTIONS = -static
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
GL_LIB_DEPS = -L/usr/openwin/lib -lX11 -lXext -lm -lpthread
|
||||
GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm
|
||||
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/openwin/lib -lX11 -lXmu -lXt -lXi -lm
|
||||
|
||||
@@ -11,5 +11,9 @@ CFLAGS = -fPIC -O3 -I/usr/openwin/include -I/usr/include/X11R5 -I/usr/include/X1
|
||||
CXXFLAGS = -fPIC -O3 -I/usr/openwin/include -DSUNOS4
|
||||
GLUT_CFLAGS = -fexceptions -DSOLARIS_2_4_BUG
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -L/usr/openwin/lib -lX11 -lXext -lXmu -lXi -lm
|
||||
|
||||
|
||||
@@ -28,6 +28,10 @@ CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
|
||||
|
||||
GLUT_CFLAGS = -fexceptions -DSOLARIS_2_4_BUG
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
# Library/program dependencies
|
||||
EXTRA_LIB_PATH=-L/usr/openwin/lib
|
||||
|
||||
|
||||
@@ -21,6 +21,9 @@ CXX_ARCH_FLAGS = -m64
|
||||
CXXFLAGS = $(CXX_WARN_FLAGS) $(CXX_OPT_FLAGS) $(CXX_PIC_FLAGS) $(CXX_ARCH_FLAGS) $(DEFINES) \
|
||||
-I/usr/openwin/include
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
CFLAGS = -xarch=v9 -KPIC -O -I/usr/openwin/include -I/usr/dt/include -DUSE_XSHM -DPTHREADS
|
||||
#CXXFLAGS = -xarch=v9 -KPIC -O -I/usr/openwin/include -I/usr/dt/include -DPTHREADS
|
||||
GLUT_CFLAGS = -DSOLARIS_2_4_BUG
|
||||
|
||||
@@ -12,6 +12,10 @@ CXXFLAGS = -pedantic -O2
|
||||
GLUT_CFLAGS = -fexceptions
|
||||
MKLIB_OPTIONS = -static
|
||||
|
||||
# Work around aliasing bugs - developers should comment this out
|
||||
CFLAGS += -fno-strict-aliasing
|
||||
CXXFLAGS += -fno-strict-aliasing
|
||||
|
||||
GL_LIB_NAME = libGL.a
|
||||
GLU_LIB_NAME = libGLU.a
|
||||
GLUT_LIB_NAME = libglut.a
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
<BODY>
|
||||
|
||||
<H1>Help Wanted</H1>
|
||||
<H1>Help Wanted / To-Do List</H1>
|
||||
|
||||
<p>
|
||||
We can always use more help with the Mesa project.
|
||||
@@ -14,36 +14,13 @@ Here are some specific ideas and areas where help would be appreciated:
|
||||
</p>
|
||||
|
||||
<ol>
|
||||
<li><p>
|
||||
Generate the src/mesa/main/enums.c file with a Python script which
|
||||
uses the gl_API.xml file.
|
||||
</p>
|
||||
<li><p>
|
||||
Try to auto-generate the display list "save" functions seen in dlist.c
|
||||
using a Python script and the gl_API.xml file.
|
||||
The gl_API.xml file will probably need a new tag to indicate whether or
|
||||
not each function gets compiled into display lists.
|
||||
</p>
|
||||
<li><p>
|
||||
Maintenance of assembly language files on Linux, Windows and SPARC systems.
|
||||
</p>
|
||||
<li><p>
|
||||
Help to incorporate the 3Dlabs' shading language compiler for OpenGL 2.0.
|
||||
</p>
|
||||
<li><p>
|
||||
Implement assembly language (SSE/MMX) code generation for
|
||||
vertex/fragment programs.
|
||||
</p>
|
||||
<li><p>
|
||||
Windows 98/NT driver building, maintenance and testing
|
||||
(Karl Schultz has been doing a great job of this lately).
|
||||
</p>
|
||||
<li><p>
|
||||
Maintenance and testing of various drivers, such as DOS/DJGPP, GGI, etc.
|
||||
</p>
|
||||
<li><p>
|
||||
Write new tests for Glean.
|
||||
</p>
|
||||
<li>
|
||||
Enable -Wstrict-aliasing=2 -fstrict-aliasing and track down aliasing
|
||||
issues in the code.
|
||||
<li>
|
||||
Windows 98/NT driver building, maintenance and testing
|
||||
<li>
|
||||
Maintenance and testing of lesser-used drivers, such as DOS/DJGPP, GGI, etc.
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<H1>News</H1>
|
||||
|
||||
|
||||
<h2>September ??, 2007</h2>
|
||||
<h2>November 10, 2007</h2>
|
||||
<p>
|
||||
<a href="relnotes-7.0.2.html">Mesa 7.0.2</a> is released.
|
||||
This is a bug-fix release.
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
<body bgcolor="#eeeeee">
|
||||
|
||||
<H1>Mesa 7.0.2 Release Notes / (TBD) 2007</H1>
|
||||
<H1>Mesa 7.0.2 Release Notes / November 10, 2007</H1>
|
||||
|
||||
<p>
|
||||
Mesa 7.0.2 is a stable release with bug fixes since version 7.0.
|
||||
@@ -17,6 +17,15 @@ Mesa 7.0.2 is a stable release with bug fixes since version 7.0.
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
c9cf607f36e7e50172f5f9c7d552c34e MesaLib-7.0.2.tar.gz
|
||||
93e6ed7924ff069a4f883b4fce5349dc MesaLib-7.0.2.tar.bz2
|
||||
10c324c3613f90f059cb8429f700f300 MesaLib-7.0.2.zip
|
||||
aa8b1244a5de1d23e5814bf9b67f1435 MesaDemos-7.0.2.tar.gz
|
||||
11a10410bae7be85cf25bc7119966468 MesaDemos-7.0.2.tar.bz2
|
||||
1dd0b5fd6d69430a2fd76a6adbfd8fff MesaDemos-7.0.2.zip
|
||||
a7dbf25c025955858bd2d89a6eb6db4c MesaGLUT-7.0.2.tar.gz
|
||||
3a33f8efc8c58a592a854cfc7a643286 MesaGLUT-7.0.2.tar.bz2
|
||||
eba4ef2aa8c362ead81b54357f1903a3 MesaGLUT-7.0.2.zip
|
||||
</pre>
|
||||
|
||||
|
||||
@@ -26,6 +35,7 @@ Mesa 7.0.2 is a stable release with bug fixes since version 7.0.
|
||||
<li>Added DESTDIR variable for 'make install'
|
||||
<li>Added pkg-config files for gl, glu, glut and glw libraries
|
||||
<li>Added bluegene-xlc-osmesa and catamount-osmesa-pgi configs
|
||||
<li>Support for Intel G33/Q33/Q35 graphics chipsets
|
||||
</ul>
|
||||
|
||||
<h2>Bug fixes</h2>
|
||||
@@ -38,7 +48,7 @@ Mesa 7.0.2 is a stable release with bug fixes since version 7.0.
|
||||
<li>Fixed a GLU matrix inversion bug (#6748)
|
||||
<li>Fixed problem with large glDrawArrays calls and indirect rendering (bug 12141)
|
||||
<li>Fixed an assortment of i965 driver bugs
|
||||
<li>Fixed and x86-64 vertex transformation bug (12216)
|
||||
<li>Fixed x86-64 vertex transformation bug (12216)
|
||||
<li>Fixed X server crash caused by multiple indirect rendering clients
|
||||
<li>Parsing of state.texgen in ARB vertex/fragment programs didn't work (bug 12313)
|
||||
<li>Fixed a glCopyPixels/glPixelZoom bug (12417)
|
||||
@@ -47,19 +57,11 @@ Mesa 7.0.2 is a stable release with bug fixes since version 7.0.
|
||||
<li>Fixed Blender crash bug (12164)
|
||||
<li>Fixed some issues preventing cross-compiling
|
||||
<li>Fixed up broken GL_ATI_separate_stencil extension
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Changes</h2>
|
||||
<ul>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>To Do (someday) items</h2>
|
||||
<ul>
|
||||
<li>Switch to freeglut
|
||||
<li>Fix linux-glide target/driver.
|
||||
<li>Improved lambda and derivative calculation for frag progs.
|
||||
<li>glDrawArrays(count=0) led to a crash
|
||||
<li>Fix SSE code gen memory leak, possible crash
|
||||
<li>Fixed MMX 565 rgb conversion problem (bug 12614)
|
||||
<li>Added -fno-strict-aliasing and -fPIC flags for gcc
|
||||
<li>Fixed Blender crash in Unichrome driver (bug 13142)
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
@@ -180,6 +180,7 @@ struct r200_tex_obj {
|
||||
|
||||
drm_radeon_tex_image_t image[6][RADEON_MAX_TEXTURE_LEVELS];
|
||||
/* Six, for the cube faces */
|
||||
GLboolean image_override; /* Image overridden by GLX_EXT_tfp */
|
||||
|
||||
GLuint pp_txfilter; /* hardware register values */
|
||||
GLuint pp_txformat;
|
||||
|
||||
@@ -36,6 +36,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#ifndef __R200_TEX_H__
|
||||
#define __R200_TEX_H__
|
||||
|
||||
extern void r200SetTexOffset(__DRIcontext *pDRICtx, GLint texname,
|
||||
unsigned long long offset, GLint depth,
|
||||
GLuint pitch);
|
||||
|
||||
extern void r200UpdateTextureState( GLcontext *ctx );
|
||||
|
||||
extern int r200UploadTexImages( r200ContextPtr rmesa, r200TexObjPtr t, GLuint face );
|
||||
|
||||
@@ -182,7 +182,8 @@ static void r200UploadRectSubImage( r200ContextPtr rmesa,
|
||||
/* In this case, could also use GART texturing. This is
|
||||
* currently disabled, but has been tested & works.
|
||||
*/
|
||||
t->pp_txoffset = r200GartOffsetFromVirtual( rmesa, texImage->Data );
|
||||
if ( !t->image_override )
|
||||
t->pp_txoffset = r200GartOffsetFromVirtual( rmesa, texImage->Data );
|
||||
t->pp_txpitch = texImage->RowStride * texFormat->TexelBytes - 32;
|
||||
|
||||
if (R200_DEBUG & DEBUG_TEXTURE)
|
||||
@@ -468,7 +469,7 @@ int r200UploadTexImages( r200ContextPtr rmesa, r200TexObjPtr t, GLuint face )
|
||||
t->base.firstLevel, t->base.lastLevel );
|
||||
}
|
||||
|
||||
if ( !t || t->base.totalSize == 0 )
|
||||
if ( !t || t->base.totalSize == 0 || t->image_override )
|
||||
return 0;
|
||||
|
||||
if (R200_DEBUG & DEBUG_SYNC) {
|
||||
|
||||
@@ -38,6 +38,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#include "context.h"
|
||||
#include "macros.h"
|
||||
#include "texformat.h"
|
||||
#include "texobj.h"
|
||||
#include "enums.h"
|
||||
|
||||
#include "r200_context.h"
|
||||
@@ -73,10 +74,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#define VALID_FORMAT(f) ( ((f) <= MESA_FORMAT_RGBA_DXT5) \
|
||||
&& (tx_table_le[f].format != 0xffffffff) )
|
||||
|
||||
static const struct {
|
||||
struct tx_table {
|
||||
GLuint format, filter;
|
||||
}
|
||||
tx_table_be[] =
|
||||
};
|
||||
|
||||
static const struct tx_table tx_table_be[] =
|
||||
{
|
||||
[ MESA_FORMAT_RGBA8888 ] = { R200_TXFORMAT_ABGR8888 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
|
||||
_ALPHA_REV(RGBA8888),
|
||||
@@ -105,16 +107,13 @@ tx_table_be[] =
|
||||
_ALPHA(RGBA_DXT5),
|
||||
};
|
||||
|
||||
static const struct {
|
||||
GLuint format, filter;
|
||||
}
|
||||
tx_table_le[] =
|
||||
static const struct tx_table tx_table_le[] =
|
||||
{
|
||||
_ALPHA(RGBA8888),
|
||||
[ MESA_FORMAT_RGBA8888_REV ] = { R200_TXFORMAT_ABGR8888 | R200_TXFORMAT_ALPHA_IN_MAP, 0 },
|
||||
_ALPHA(ARGB8888),
|
||||
_ALPHA_REV(ARGB8888),
|
||||
_INVALID(RGB888),
|
||||
[ MESA_FORMAT_RGB888 ] = { R200_TXFORMAT_ARGB8888, 0 },
|
||||
_COLOR(RGB565),
|
||||
_COLOR_REV(RGB565),
|
||||
_ALPHA(ARGB4444),
|
||||
@@ -161,30 +160,23 @@ static void r200SetTexImages( r200ContextPtr rmesa,
|
||||
GLint i, texelBytes;
|
||||
GLint numLevels;
|
||||
GLint log2Width, log2Height, log2Depth;
|
||||
const GLuint ui = 1;
|
||||
const GLubyte littleEndian = *((const GLubyte *) &ui);
|
||||
|
||||
/* Set the hardware texture format
|
||||
*/
|
||||
if ( !t->image_override ) {
|
||||
if ( VALID_FORMAT( baseImage->TexFormat->MesaFormat ) ) {
|
||||
t->pp_txformat &= ~(R200_TXFORMAT_FORMAT_MASK |
|
||||
R200_TXFORMAT_ALPHA_IN_MAP);
|
||||
t->pp_txfilter &= ~R200_YUV_TO_RGB;
|
||||
|
||||
t->pp_txformat &= ~(R200_TXFORMAT_FORMAT_MASK |
|
||||
R200_TXFORMAT_ALPHA_IN_MAP);
|
||||
t->pp_txfilter &= ~R200_YUV_TO_RGB;
|
||||
|
||||
if ( VALID_FORMAT( baseImage->TexFormat->MesaFormat ) ) {
|
||||
if (littleEndian) {
|
||||
t->pp_txformat |= tx_table_le[ baseImage->TexFormat->MesaFormat ].format;
|
||||
t->pp_txfilter |= tx_table_le[ baseImage->TexFormat->MesaFormat ].filter;
|
||||
}
|
||||
else {
|
||||
t->pp_txformat |= tx_table_be[ baseImage->TexFormat->MesaFormat ].format;
|
||||
t->pp_txfilter |= tx_table_be[ baseImage->TexFormat->MesaFormat ].filter;
|
||||
_mesa_problem(NULL, "unexpected texture format in %s", __FUNCTION__);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
_mesa_problem(NULL, "unexpected texture format in %s", __FUNCTION__);
|
||||
return;
|
||||
}
|
||||
|
||||
texelBytes = baseImage->TexFormat->TexelBytes;
|
||||
|
||||
@@ -381,11 +373,13 @@ static void r200SetTexImages( r200ContextPtr rmesa,
|
||||
* requires 64-byte aligned pitches, and we may/may not need the
|
||||
* blitter. NPOT only!
|
||||
*/
|
||||
if (baseImage->IsCompressed)
|
||||
t->pp_txpitch = (tObj->Image[0][t->base.firstLevel]->Width + 63) & ~(63);
|
||||
else
|
||||
t->pp_txpitch = ((tObj->Image[0][t->base.firstLevel]->Width * texelBytes) + 63) & ~(63);
|
||||
t->pp_txpitch -= 32;
|
||||
if ( !t->image_override ) {
|
||||
if (baseImage->IsCompressed)
|
||||
t->pp_txpitch = (tObj->Image[0][t->base.firstLevel]->Width + 63) & ~(63);
|
||||
else
|
||||
t->pp_txpitch = ((tObj->Image[0][t->base.firstLevel]->Width * texelBytes) + 63) & ~(63);
|
||||
t->pp_txpitch -= 32;
|
||||
}
|
||||
|
||||
t->dirty_state = TEX_ALL;
|
||||
|
||||
@@ -980,6 +974,46 @@ static GLboolean r200UpdateTextureEnv( GLcontext *ctx, int unit, int slot, GLuin
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
void r200SetTexOffset(__DRIcontext * pDRICtx, GLint texname,
|
||||
unsigned long long offset, GLint depth, GLuint pitch)
|
||||
{
|
||||
r200ContextPtr rmesa =
|
||||
(r200ContextPtr) ((__DRIcontextPrivate *) pDRICtx->private)->
|
||||
driverPrivate;
|
||||
struct gl_texture_object *tObj =
|
||||
_mesa_lookup_texture(rmesa->glCtx, texname);
|
||||
r200TexObjPtr t;
|
||||
|
||||
if (!tObj)
|
||||
return;
|
||||
|
||||
t = (r200TexObjPtr) tObj->DriverData;
|
||||
|
||||
t->image_override = GL_TRUE;
|
||||
|
||||
if (!offset)
|
||||
return;
|
||||
|
||||
t->pp_txoffset = offset;
|
||||
t->pp_txpitch = pitch - 32;
|
||||
|
||||
switch (depth) {
|
||||
case 32:
|
||||
t->pp_txformat = tx_table_le[MESA_FORMAT_ARGB8888].format;
|
||||
t->pp_txfilter |= tx_table_le[MESA_FORMAT_ARGB8888].filter;
|
||||
break;
|
||||
case 24:
|
||||
default:
|
||||
t->pp_txformat = tx_table_le[MESA_FORMAT_RGB888].format;
|
||||
t->pp_txfilter |= tx_table_le[MESA_FORMAT_RGB888].filter;
|
||||
break;
|
||||
case 16:
|
||||
t->pp_txformat = tx_table_le[MESA_FORMAT_RGB565].format;
|
||||
t->pp_txfilter |= tx_table_le[MESA_FORMAT_RGB565].filter;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#define REF_COLOR 1
|
||||
#define REF_ALPHA 2
|
||||
|
||||
@@ -1561,7 +1595,7 @@ static GLboolean enable_tex_2d( GLcontext *ctx, int unit )
|
||||
R200_FIREVERTICES( rmesa );
|
||||
r200SetTexImages( rmesa, tObj );
|
||||
r200UploadTexImages( rmesa, (r200TexObjPtr) tObj->DriverData, 0 );
|
||||
if ( !t->base.memBlock )
|
||||
if ( !t->base.memBlock && !t->image_override )
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
@@ -1669,7 +1703,9 @@ static GLboolean enable_tex_rect( GLcontext *ctx, int unit )
|
||||
R200_FIREVERTICES( rmesa );
|
||||
r200SetTexImages( rmesa, tObj );
|
||||
r200UploadTexImages( rmesa, (r200TexObjPtr) tObj->DriverData, 0 );
|
||||
if ( !t->base.memBlock && !rmesa->prefer_gart_client_texturing )
|
||||
if ( !t->base.memBlock &&
|
||||
!t->image_override &&
|
||||
!rmesa->prefer_gart_client_texturing )
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
|
||||
@@ -53,6 +53,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
#include "r200_context.h"
|
||||
#include "r200_ioctl.h"
|
||||
#include "r200_span.h"
|
||||
#include "r200_tex.h"
|
||||
#elif RADEON_COMMON && defined(RADEON_COMMON_FOR_R300)
|
||||
#include "r300_context.h"
|
||||
#include "r300_fragprog.h"
|
||||
@@ -973,7 +974,8 @@ static const struct __DriverAPIRec r200API = {
|
||||
.WaitForMSC = driWaitForMSC32,
|
||||
.WaitForSBC = NULL,
|
||||
.SwapBuffersMSC = NULL,
|
||||
.CopySubBuffer = r200CopySubBuffer
|
||||
.CopySubBuffer = r200CopySubBuffer,
|
||||
.setTexOffset = r200SetTexOffset
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -625,13 +625,12 @@ static void viaFastRenderClippedPoly(GLcontext *ctx, const GLuint *elts,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
/* Choose render functions */
|
||||
/**********************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
#define _VIA_NEW_VERTEX (_NEW_TEXTURE | \
|
||||
_DD_NEW_SEPARATE_SPECULAR | \
|
||||
_DD_NEW_TRI_UNFILLED | \
|
||||
@@ -665,14 +664,17 @@ static void viaChooseRenderState(GLcontext *ctx)
|
||||
vmesa->drawTri = via_draw_triangle;
|
||||
}
|
||||
|
||||
if (flags & (ANY_FALLBACK_FLAGS|ANY_RASTER_FLAGS)) {
|
||||
if (flags & DD_TRI_LIGHT_TWOSIDE) index |= VIA_TWOSIDE_BIT;
|
||||
if (flags & DD_TRI_OFFSET) index |= VIA_OFFSET_BIT;
|
||||
if (flags & DD_TRI_UNFILLED) index |= VIA_UNFILLED_BIT;
|
||||
if (flags & ANY_FALLBACK_FLAGS) index |= VIA_FALLBACK_BIT;
|
||||
if (flags & (ANY_FALLBACK_FLAGS | ANY_RASTER_FLAGS)) {
|
||||
if (ctx->Light.Enabled && ctx->Light.Model.TwoSide)
|
||||
index |= VIA_TWOSIDE_BIT;
|
||||
if (ctx->Polygon.FrontMode != GL_FILL || ctx->Polygon.BackMode != GL_FILL)
|
||||
index |= VIA_UNFILLED_BIT;
|
||||
if (flags & DD_TRI_OFFSET)
|
||||
index |= VIA_OFFSET_BIT;
|
||||
if (flags & ANY_FALLBACK_FLAGS)
|
||||
index |= VIA_FALLBACK_BIT;
|
||||
|
||||
/* Hook in fallbacks for specific primitives.
|
||||
*/
|
||||
/* Hook in fallbacks for specific primitives. */
|
||||
if (flags & POINT_FALLBACK)
|
||||
vmesa->drawPoint = via_fallback_point;
|
||||
|
||||
@@ -683,11 +685,8 @@ static void viaChooseRenderState(GLcontext *ctx)
|
||||
vmesa->drawTri = via_fallback_tri;
|
||||
}
|
||||
|
||||
|
||||
if ((flags & DD_SEPARATE_SPECULAR) &&
|
||||
ctx->Light.ShadeModel == GL_FLAT) {
|
||||
if ((flags & DD_SEPARATE_SPECULAR) && ctx->Light.ShadeModel == GL_FLAT)
|
||||
index = VIA_MAX_TRIFUNC; /* flat specular */
|
||||
}
|
||||
|
||||
if (vmesa->renderIndex != index) {
|
||||
vmesa->renderIndex = index;
|
||||
|
||||
@@ -247,8 +247,9 @@ _mesa_validate_DrawArrays(GLcontext *ctx,
|
||||
{
|
||||
ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE);
|
||||
|
||||
if (count < 0) {
|
||||
_mesa_error(ctx, GL_INVALID_VALUE, "glDrawArrays(count)" );
|
||||
if (count <= 0) {
|
||||
if (count < 0)
|
||||
_mesa_error(ctx, GL_INVALID_VALUE, "glDrawArrays(count)" );
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
|
||||
@@ -198,14 +198,16 @@ static void TAG(quadfunc)( GLcontext *ctx, GLuint v0,
|
||||
{
|
||||
if (IND & SS_UNFILLED_BIT) {
|
||||
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
|
||||
GLubyte ef1 = VB->EdgeFlag[v1];
|
||||
GLubyte ef3 = VB->EdgeFlag[v3];
|
||||
VB->EdgeFlag[v1] = 0;
|
||||
TAG(triangle)( ctx, v0, v1, v3 );
|
||||
VB->EdgeFlag[v1] = ef1;
|
||||
VB->EdgeFlag[v3] = 0;
|
||||
TAG(triangle)( ctx, v1, v2, v3 );
|
||||
VB->EdgeFlag[v3] = ef3;
|
||||
if (VB->EdgeFlag) { /* XXX this test shouldn't be needed (bug 12614) */
|
||||
GLubyte ef1 = VB->EdgeFlag[v1];
|
||||
GLubyte ef3 = VB->EdgeFlag[v3];
|
||||
VB->EdgeFlag[v1] = 0;
|
||||
TAG(triangle)( ctx, v0, v1, v3 );
|
||||
VB->EdgeFlag[v1] = ef1;
|
||||
VB->EdgeFlag[v3] = 0;
|
||||
TAG(triangle)( ctx, v1, v2, v3 );
|
||||
VB->EdgeFlag[v3] = ef3;
|
||||
}
|
||||
} else {
|
||||
TAG(triangle)( ctx, v0, v1, v3 );
|
||||
TAG(triangle)( ctx, v1, v2, v3 );
|
||||
|
||||
@@ -39,6 +39,12 @@
|
||||
#include "x86/common_x86_asm.h"
|
||||
|
||||
|
||||
/**
|
||||
* Number of bytes to allocate for generated SSE functions
|
||||
*/
|
||||
#define MAX_SSE_CODE_SIZE 1024
|
||||
|
||||
|
||||
#define X 0
|
||||
#define Y 1
|
||||
#define Z 2
|
||||
@@ -348,8 +354,6 @@ static GLboolean build_vertex_emit( struct x86_program *p )
|
||||
struct x86_reg vp1 = x86_make_reg(file_XMM, 2);
|
||||
GLubyte *fixup, *label;
|
||||
|
||||
x86_init_func(&p->func);
|
||||
|
||||
/* Push a few regs?
|
||||
*/
|
||||
x86_push(&p->func, countEBP);
|
||||
@@ -621,7 +625,10 @@ static GLboolean build_vertex_emit( struct x86_program *p )
|
||||
x86_pop(&p->func, countEBP);
|
||||
x86_ret(&p->func);
|
||||
|
||||
assert(!vtx->emit);
|
||||
vtx->emit = (tnl_emit_func)x86_get_func(&p->func);
|
||||
|
||||
assert( (char *) p->func.csr - (char *) p->func.store <= MAX_SSE_CODE_SIZE );
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
@@ -646,7 +653,10 @@ void _tnl_generate_sse_emit( GLcontext *ctx )
|
||||
p.identity = x86_make_reg(file_XMM, 6);
|
||||
p.chan0 = x86_make_reg(file_XMM, 7);
|
||||
|
||||
x86_init_func(&p.func);
|
||||
if (!x86_init_func(&p.func, MAX_SSE_CODE_SIZE)) {
|
||||
vtx->emit = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
if (build_vertex_emit(&p)) {
|
||||
_tnl_register_fastpath( vtx, GL_TRUE );
|
||||
|
||||
@@ -33,20 +33,7 @@
|
||||
.file "read_rgba_span_x86.S"
|
||||
#if !defined(__DJGPP__) && !defined(__MINGW32__) /* this one cries for assyntax.h */
|
||||
/* Kevin F. Quinn 2nd July 2006
|
||||
* Replace data segment constants with text-segment instructions
|
||||
.section .rodata
|
||||
.align 16
|
||||
.type mask, @object
|
||||
.size mask, 32
|
||||
mask:
|
||||
.long 0xff00ff00
|
||||
.long 0xff00ff00
|
||||
.long 0xff00ff00
|
||||
.long 0xff00ff00
|
||||
.long 0x00ff0000
|
||||
.long 0x00ff0000
|
||||
.long 0x00ff0000
|
||||
.long 0x00ff0000
|
||||
* Replaced data segment constants with text-segment instructions.
|
||||
*/
|
||||
#define LOAD_MASK(mvins,m1,m2) \
|
||||
pushl $0xff00ff00 ;\
|
||||
@@ -61,8 +48,7 @@ mask:
|
||||
mvins (%esp), m2 ;\
|
||||
addl $32, %esp
|
||||
|
||||
|
||||
/* I implemented these as macros because the appear in quite a few places,
|
||||
/* I implemented these as macros because they appear in several places,
|
||||
* and I've tweaked them a number of times. I got tired of changing every
|
||||
* place they appear. :)
|
||||
*/
|
||||
@@ -99,11 +85,6 @@ _generic_read_RGBA_span_BGRA8888_REV_MMX:
|
||||
#ifdef USE_INNER_EMMS
|
||||
emms
|
||||
#endif
|
||||
/* Kevin F. Quinn 2nd July 2006
|
||||
* Replace data segment constants with text-segment instructions
|
||||
movq mask, %mm1
|
||||
movq mask+16, %mm2
|
||||
*/
|
||||
LOAD_MASK(movq,%mm1,%mm2)
|
||||
|
||||
movl 8(%esp), %ebx /* source pointer */
|
||||
@@ -201,11 +182,7 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE:
|
||||
#ifdef USE_INNER_EMMS
|
||||
emms
|
||||
#endif
|
||||
/* Kevin F. Quinn 2nd July 2006
|
||||
* Replace data segment constants with text-segment instructions
|
||||
movq mask, %mm1
|
||||
movq mask+16, %mm2
|
||||
*/
|
||||
|
||||
LOAD_MASK(movq,%mm1,%mm2)
|
||||
|
||||
movl 16(%esp), %ebx /* source pointer */
|
||||
@@ -364,11 +341,6 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
|
||||
pushl %esi
|
||||
pushl %ebx
|
||||
|
||||
/* Kevin F. Quinn 2nd July 2006
|
||||
* Replace data segment constants with text-segment instructions
|
||||
movdqa mask, %xmm1
|
||||
movdqa mask+16, %xmm2
|
||||
*/
|
||||
LOAD_MASK(movdqu,%xmm1,%xmm2)
|
||||
|
||||
movl 12(%esp), %ebx /* source pointer */
|
||||
@@ -491,60 +463,12 @@ _generic_read_RGBA_span_BGRA8888_REV_SSE2:
|
||||
|
||||
|
||||
|
||||
/* Kevin F. Quinn 2nd July 2006
|
||||
* Replace data segment constants with text-segment instructions
|
||||
*/
|
||||
#if 0
|
||||
.section .rodata
|
||||
|
||||
.align 16
|
||||
mask_565:
|
||||
.word 0xf800
|
||||
.word 0x07e0
|
||||
.word 0x001f
|
||||
.word 0x0000
|
||||
|
||||
/* Setting SCALE_ADJUST to 5 gives a perfect match with the classic C
|
||||
* implementation in Mesa. Setting SCALE_ADJUST to 0 is slightly faster but
|
||||
* at a small cost to accuracy.
|
||||
*/
|
||||
|
||||
#define SCALE_ADJUST 5
|
||||
#if SCALE_ADJUST == 5
|
||||
prescale:
|
||||
.word 0x0001
|
||||
.word 0x0010
|
||||
.word 0x0200
|
||||
.word 0x0000
|
||||
|
||||
scale:
|
||||
.word 0x20e8 /* (0x00ff0000 / 0x000007c0) + 1 */
|
||||
.word 0x40c5 /* (0x00ff0000 / 0x000003f0) + 1 */
|
||||
.word 0x839d /* (0x00ff0000 / 0x000001f0) + 1 */
|
||||
.word 0x0000
|
||||
#elif SCALE_ADJUST == 0
|
||||
prescale:
|
||||
.word 0x0001
|
||||
.word 0x0020
|
||||
.word 0x0800
|
||||
.word 0x0000
|
||||
|
||||
scale:
|
||||
.word 0x0108 /* (0x00ff0000 / 0x0000f800) + 1 */
|
||||
.word 0x0104 /* (0x00ff0000 / 0x0000fc00) + 1 */
|
||||
.word 0x0108 /* (0x00ff0000 / 0x0000f800) + 1 */
|
||||
.word 0x0000
|
||||
#else
|
||||
#error SCALE_ADJUST must either be 5 or 0.
|
||||
#endif
|
||||
|
||||
|
||||
alpha: .long 0x00000000
|
||||
.long 0x00ff0000
|
||||
#endif
|
||||
|
||||
#define MASK_565_L 0x07e0f800
|
||||
#define MASK_565_H 0x0000001f
|
||||
/* Setting SCALE_ADJUST to 5 gives a perfect match with the
|
||||
* classic C implementation in Mesa. Setting SCALE_ADJUST
|
||||
* to 0 is slightly faster but at a small cost to accuracy.
|
||||
*/
|
||||
#define SCALE_ADJUST 5
|
||||
#if SCALE_ADJUST == 5
|
||||
#define PRESCALE_L 0x00100001
|
||||
@@ -581,23 +505,17 @@ _generic_read_RGBA_span_RGB565_MMX:
|
||||
movl 8(%esp), %edx /* destination pointer */
|
||||
movl 12(%esp), %ecx /* number of pixels to copy */
|
||||
|
||||
/* Kevin F. Quinn 2nd July 2006
|
||||
* Replace data segment constants with text-segment instructions
|
||||
movq mask_565, %mm5
|
||||
movq prescale, %mm6
|
||||
movq scale, %mm7
|
||||
*/
|
||||
pushl MASK_565_H
|
||||
pushl MASK_565_L
|
||||
pushl $MASK_565_H
|
||||
pushl $MASK_565_L
|
||||
movq (%esp), %mm5
|
||||
pushl PRESCALE_H
|
||||
pushl PRESCALE_L
|
||||
pushl $PRESCALE_H
|
||||
pushl $PRESCALE_L
|
||||
movq (%esp), %mm6
|
||||
pushl SCALE_H
|
||||
pushl SCALE_L
|
||||
pushl $SCALE_H
|
||||
pushl $SCALE_L
|
||||
movq (%esp), %mm7
|
||||
pushl ALPHA_H
|
||||
pushl ALPHA_L
|
||||
pushl $ALPHA_H
|
||||
pushl $ALPHA_L
|
||||
movq (%esp), %mm3
|
||||
addl $32,%esp
|
||||
|
||||
@@ -648,11 +566,6 @@ _generic_read_RGBA_span_RGB565_MMX:
|
||||
/* Always set the alpha value to 0xff.
|
||||
*/
|
||||
|
||||
/* Kevin F. Quinn 2nd July 2006
|
||||
* Replace data segment constants with text-segment instructions
|
||||
por alpha, %mm0
|
||||
por alpha, %mm2
|
||||
*/
|
||||
por %mm3, %mm0
|
||||
por %mm3, %mm2
|
||||
|
||||
@@ -665,8 +578,6 @@ _generic_read_RGBA_span_RGB565_MMX:
|
||||
movq %mm0, (%edx)
|
||||
addl $8, %edx
|
||||
|
||||
|
||||
|
||||
pshufw $0xaa, %mm4, %mm0
|
||||
pshufw $0xff, %mm4, %mm2
|
||||
|
||||
@@ -681,11 +592,6 @@ _generic_read_RGBA_span_RGB565_MMX:
|
||||
pmulhuw %mm7, %mm0
|
||||
pmulhuw %mm7, %mm2
|
||||
|
||||
/* Kevin F. Quinn 2nd July 2006
|
||||
* Replace data segment constants with text-segment instructions
|
||||
por alpha, %mm0
|
||||
por alpha, %mm2
|
||||
*/
|
||||
por %mm3, %mm0
|
||||
por %mm3, %mm2
|
||||
|
||||
@@ -724,11 +630,6 @@ _generic_read_RGBA_span_RGB565_MMX:
|
||||
pmulhuw %mm7, %mm0
|
||||
pmulhuw %mm7, %mm2
|
||||
|
||||
/* Kevin F. Quinn 2nd July 2006
|
||||
* Replace data segment constants with text-segment instructions
|
||||
por alpha, %mm0
|
||||
por alpha, %mm2
|
||||
*/
|
||||
por %mm3, %mm0
|
||||
por %mm3, %mm2
|
||||
|
||||
@@ -757,10 +658,6 @@ _generic_read_RGBA_span_RGB565_MMX:
|
||||
#endif
|
||||
pmulhuw %mm7, %mm0
|
||||
|
||||
/* Kevin F. Quinn 2nd July 2006
|
||||
* Replace data segment constants with text-segment instructions
|
||||
por alpha, %mm0
|
||||
*/
|
||||
por %mm3, %mm0
|
||||
|
||||
packuswb %mm0, %mm0
|
||||
|
||||
@@ -1063,20 +1063,29 @@ struct x86_reg x86_fn_arg( struct x86_function *p,
|
||||
}
|
||||
|
||||
|
||||
void x86_init_func( struct x86_function *p )
|
||||
{
|
||||
x86_init_func_size(p, 1024);
|
||||
}
|
||||
|
||||
void x86_init_func_size( struct x86_function *p, GLuint code_size )
|
||||
/**
|
||||
* Initialize an x86_function object, allocating space for up to
|
||||
* 'code_size' bytes of code.
|
||||
*/
|
||||
GLboolean x86_init_func( struct x86_function *p, GLuint code_size )
|
||||
{
|
||||
assert(!p->store);
|
||||
p->store = _mesa_exec_malloc(code_size);
|
||||
p->csr = p->store;
|
||||
if (p->store) {
|
||||
p->csr = p->store;
|
||||
return GL_TRUE;
|
||||
}
|
||||
else {
|
||||
p->csr = NULL;
|
||||
return GL_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void x86_release_func( struct x86_function *p )
|
||||
{
|
||||
_mesa_exec_free(p->store);
|
||||
if (p->store)
|
||||
_mesa_exec_free(p->store);
|
||||
p->store = p->csr = NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -80,8 +80,7 @@ enum sse_cc {
|
||||
*/
|
||||
|
||||
|
||||
void x86_init_func( struct x86_function *p );
|
||||
void x86_init_func_size( struct x86_function *p, GLuint code_size );
|
||||
GLboolean x86_init_func( struct x86_function *p, GLuint code_size );
|
||||
void x86_release_func( struct x86_function *p );
|
||||
void (*x86_get_func( struct x86_function *p ))( void );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user