@@ -22,6 +22,8 @@ LIBDRM_REQUIRED=2.4.15 | |||
LIBDRM_RADEON_REQUIRED=2.4.17 | |||
DRI2PROTO_REQUIRED=2.1 | |||
GLPROTO_REQUIRED=1.4.11 | |||
LIBDRM_XORG_REQUIRED=2.4.17 | |||
LIBKMS_XORG_REQUIRED=1.0.0 | |||
dnl Check for progs | |||
AC_PROG_CPP | |||
@@ -1203,7 +1205,7 @@ yes) | |||
GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS egl" | |||
fi | |||
# Have only tested st/xorg on 1.6.0 servers | |||
PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0], | |||
PKG_CHECK_MODULES(XORG, [xorg-server >= 1.6.0 libdrm >= $LIBDRM_XORG_REQUIRED libkms >= $LIBKMS_XORG_REQUIRED], | |||
HAVE_XORG="yes"; GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS xorg", | |||
HAVE_XORG="no") | |||
;; | |||
@@ -1223,9 +1225,9 @@ yes) | |||
fi | |||
;; | |||
xorg) | |||
PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1], | |||
HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71", | |||
HAVE_XEXTPROTO_71="no") | |||
PKG_CHECK_MODULES([LIBDRM_XORG], [libdrm >= $LIBDRM_XORG_REQUIRED]) | |||
PKG_CHECK_MODULES([LIBKMS_XORG], [libkms >= $LIBKMS_XORG_REQUIRED]) | |||
HAVE_XORG="yes" | |||
;; | |||
es) | |||
# mesa/es is required to build es state tracker | |||
@@ -1237,6 +1239,12 @@ yes) | |||
;; | |||
esac | |||
if test "x$HAVE_XORG" = xyes; then | |||
PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1], | |||
HAVE_XEXTPROTO_71="yes"; DEFINES="$DEFINES -DHAVE_XEXTPROTO_71", | |||
HAVE_XEXTPROTO_71="no") | |||
fi | |||
AC_ARG_WITH([egl-displays], | |||
[AS_HELP_STRING([--with-egl-displays@<:@=DIRS...@:>@], | |||
[comma delimited native displays libEGL supports, e.g. |
@@ -644,7 +644,7 @@ Hints and Special Features: | |||
- The Voodoo driver supports the GL_EXT_paletted_texture. it works | |||
only with GL_COLOR_INDEX8_EXT, GL_RGBA palettes and the alpha value | |||
is ignored because this is a limitation of the the current Glide | |||
is ignored because this is a limitation of the current Glide | |||
version and of the Voodoo hardware. See Mesa-3.1/3Dfx/demos/paltex.c for | |||
a demo of this extension. | |||
@@ -28,7 +28,7 @@ cards.</p> | |||
<ol> | |||
<li> | |||
<p>Run <code>configure</code> with the desired state trackers and and enable | |||
<p>Run <code>configure</code> with the desired state trackers and enable | |||
the Gallium driver for your hardware. For example</p> | |||
<pre> |
@@ -57,13 +57,13 @@ peglgears: peglgears.o $(HEADERS) $(LIB_DEP) | |||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(LIBDRM_LIB) -lm | |||
xeglgears: xeglgears.o $(HEADERS) $(LIB_DEP) | |||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lX11 -lm | |||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lm -L$(libdir) -lX11 | |||
xeglthreads: xeglthreads.o $(HEADERS) $(LIB_DEP) | |||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lX11 -lm | |||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lm -L$(libdir) -lX11 | |||
xegl_tri: xegl_tri.o $(HEADERS) $(LIB_DEP) | |||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lX11 | |||
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -lm -L$(libdir) -lX11 | |||
clean: | |||
-rm -f *.o *~ |
@@ -1041,7 +1041,7 @@ glmFacetNormals(GLMmodel* model) | |||
/* glmVertexNormals: Generates smooth vertex normals for a model. | |||
* First builds a list of all the triangles each vertex is in. Then | |||
* loops through each vertex in the the list averaging all the facet | |||
* loops through each vertex in the list averaging all the facet | |||
* normals of the triangles each vertex is in. Finally, sets the | |||
* normal index in the triangle for the vertex to the generated smooth | |||
* normal. If the dot product of a facet normal and the facet normal |
@@ -153,7 +153,7 @@ glmFacetNormals(GLMmodel* model); | |||
/* glmVertexNormals: Generates smooth vertex normals for a model. | |||
* First builds a list of all the triangles each vertex is in. Then | |||
* loops through each vertex in the the list averaging all the facet | |||
* loops through each vertex in the list averaging all the facet | |||
* normals of the triangles each vertex is in. Finally, sets the | |||
* normal index in the triangle for the vertex to the generated smooth | |||
* normal. If the dot product of a facet normal and the facet normal |
@@ -12,29 +12,39 @@ bezmesh | |||
checker | |||
clip | |||
colormat | |||
combiner | |||
convolution | |||
cube | |||
cubemap | |||
depthcue | |||
dof | |||
double | |||
drawf | |||
feedback | |||
fog | |||
fogcoord | |||
fogindex | |||
font | |||
hello | |||
histogram | |||
image | |||
light | |||
lines | |||
list | |||
material | |||
minmax | |||
mipmap | |||
model | |||
movelight | |||
multisamp | |||
multitex | |||
mvarray | |||
nurbs | |||
pickdepth | |||
picksquare | |||
plane | |||
planet | |||
pointp | |||
polyoff | |||
polys | |||
quadric | |||
@@ -44,10 +54,12 @@ scene | |||
scenebamb | |||
sceneflat | |||
select | |||
shadowmap | |||
smooth | |||
stencil | |||
stroke | |||
surface | |||
surfpoints | |||
teaambient | |||
teapots | |||
tess | |||
@@ -56,6 +68,7 @@ texbind | |||
texgen | |||
texprox | |||
texsub | |||
texture3d | |||
texturesurf | |||
torus | |||
trim |
@@ -30,7 +30,7 @@ | |||
* it (via \c glPopClientAttrib). After popping, the state of the VAO is | |||
* examined. | |||
* | |||
* According the the APPLE_vertex_array_object spec, the contents of the VAO | |||
* According to the APPLE_vertex_array_object spec, the contents of the VAO | |||
* should be restored to the values that they had when pushed. | |||
* | |||
* \author Ian Romanick <idr@us.ibm.com> |
@@ -30,7 +30,7 @@ | |||
* it (via \c glPopClientAttrib). After popping, the state of the VAO is | |||
* examined. | |||
* | |||
* According the the APPLE_vertex_array_object spec, the contents of the VAO | |||
* According to the APPLE_vertex_array_object spec, the contents of the VAO | |||
* should be restored to the values that they had when pushed. | |||
* | |||
* \author Ian Romanick <idr@us.ibm.com> |
@@ -13,11 +13,14 @@ glxpixmap | |||
glxsnoop | |||
glxswapcontrol | |||
manywin | |||
msctest | |||
multictx | |||
offset | |||
omlsync | |||
overlay | |||
pbdemo | |||
pbinfo | |||
pbdemo | |||
shape | |||
sharedtex | |||
sharedtex_mt | |||
texture_from_pixmap | |||
@@ -26,5 +29,3 @@ xdemo | |||
xfont | |||
xrotfontdemo | |||
yuvrect_client | |||
msctest | |||
omlsync |
@@ -11,7 +11,7 @@ LIB_DEP = $(TOP)/$(LIB_DIR)/$(GL_LIB_NAME) | |||
# Add X11 and pthread libs to satisfy GNU gold. | |||
APP_LIB_DEPS += -lX11 -lpthread | |||
LIBS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) $(APP_LIB_DEPS) | |||
LIBS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -L$(libdir) $(APP_LIB_DEPS) | |||
PROGS = \ | |||
corender \ |
@@ -71,7 +71,7 @@ os_time_sleep(int64_t usecs); | |||
/* | |||
* Helper function for detecting time outs, taking in account overflow. | |||
* | |||
* Returns true the the current time has elapsed beyond the specified interval. | |||
* Returns true if the current time has elapsed beyond the specified interval. | |||
*/ | |||
static INLINE boolean | |||
os_time_timeout(int64_t start, |
@@ -1352,7 +1352,7 @@ gen_stencil_values(struct spe_function *f, | |||
*/ | |||
ASSERT(fbS_reg != newS_reg); | |||
/* The code also assumes the the stencil_max_value is of the form | |||
/* The code also assumes that the stencil_max_value is of the form | |||
* 2^n-1 and can therefore be used as a mask for the valid bits in | |||
* addition to a maximum. Make sure this is the case as well. | |||
* The clever math below exploits the fact that incrementing a |
@@ -135,7 +135,7 @@ cell_thread_function(void *arg) | |||
/** | |||
* Create the SPU threads. This is done once during driver initialization. | |||
* This involves setting the the "init" message which is sent to each SPU. | |||
* This involves setting the "init" message which is sent to each SPU. | |||
* The init message specifies an SPU id, total number of SPUs, location | |||
* and number of batch buffers, etc. | |||
*/ |
@@ -742,7 +742,7 @@ nv40_vertprog_translate(struct nv40_context *nv40, | |||
} | |||
/* Redirect post-transform vertex position to a temp if user clip | |||
* planes are enabled. We need to append code the the vtxprog | |||
* planes are enabled. We need to append code to the vtxprog | |||
* to handle clip planes later. | |||
*/ | |||
if (vp->ucp.nr) { |
@@ -540,7 +540,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
# define R300_PVS_FIRST_INST(x) ((x) << 0) | |||
# define R300_PVS_XYZW_VALID_INST(x) ((x) << 10) | |||
# define R300_PVS_LAST_INST(x) ((x) << 20) | |||
/* Addresses are relative the the vertex program parameters area. */ | |||
/* Addresses are relative to the vertex program parameters area. */ | |||
#define R300_VAP_PVS_CONST_CNTL 0x22D4 | |||
# define R300_PVS_CONST_BASE_OFFSET_SHIFT 0 | |||
# define R300_PVS_MAX_CONST_ADDR_SHIFT 16 | |||
@@ -1857,7 +1857,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
* The destination register index is in FPI1 (color) and FPI3 (alpha) | |||
* together with enable bits. | |||
* There are separate enable bits for writing into temporary registers | |||
* (DSTC_REG_* /DSTA_REG) and and program output registers (DSTC_OUTPUT_* | |||
* (DSTC_REG_* /DSTA_REG) and program output registers (DSTC_OUTPUT_* | |||
* /DSTA_OUTPUT). You can write to both at once, or not write at all (the | |||
* same index must be used for both). | |||
* |
@@ -90,6 +90,9 @@ dri_fill_in_modes(struct dri_screen *screen, | |||
unsigned pixel_bits) | |||
{ | |||
__DRIconfig **configs = NULL; | |||
__DRIconfig **configs_r5g6b5 = NULL; | |||
__DRIconfig **configs_a8r8g8b8 = NULL; | |||
__DRIconfig **configs_x8r8g8b8 = NULL; | |||
unsigned num_modes; | |||
uint8_t depth_bits_array[5]; | |||
uint8_t stencil_bits_array[5]; | |||
@@ -127,25 +130,23 @@ dri_fill_in_modes(struct dri_screen *screen, | |||
pf_x8r8g8b8 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_B8G8R8X8_UNORM, | |||
PIPE_TEXTURE_2D, | |||
PIPE_TEXTURE_USAGE_RENDER_TARGET, 0); | |||
/* we support buffers with different depths only if we can tell the driver | |||
* the actual depth of each of them. */ | |||
if (screen->sPriv->dri2.loader | |||
&& (screen->sPriv->dri2.loader->base.version > 2) | |||
&& (screen->sPriv->dri2.loader->getBuffersWithFormat != NULL)) { | |||
pf_r5g6b5 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_B5G6R5_UNORM, | |||
PIPE_TEXTURE_2D, | |||
PIPE_TEXTURE_USAGE_RENDER_TARGET, 0); | |||
/* We can only get a 16 or 32 bit depth buffer with getBuffersWithFormat */ | |||
if (screen->sPriv->dri2.loader && | |||
(screen->sPriv->dri2.loader->base.version > 2) && | |||
(screen->sPriv->dri2.loader->getBuffersWithFormat != NULL)) { | |||
pf_z16 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z16_UNORM, | |||
PIPE_TEXTURE_2D, | |||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0); | |||
pf_z32 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_Z32_UNORM, | |||
PIPE_TEXTURE_2D, | |||
PIPE_TEXTURE_USAGE_DEPTH_STENCIL, 0); | |||
pf_r5g6b5 = p_screen->is_format_supported(p_screen, PIPE_FORMAT_B5G6R5_UNORM, | |||
PIPE_TEXTURE_2D, | |||
PIPE_TEXTURE_USAGE_RENDER_TARGET, 0); | |||
} else { | |||
pf_z16 = FALSE; | |||
pf_z32 = FALSE; | |||
pf_r5g6b5 = FALSE; | |||
} | |||
if (pf_z16) { | |||
@@ -175,46 +176,48 @@ dri_fill_in_modes(struct dri_screen *screen, | |||
num_modes = | |||
depth_buffer_factor * back_buffer_factor * msaa_samples_factor * 4; | |||
if (pixel_bits == 16 && pf_r5g6b5) { | |||
configs = driCreateConfigs(GL_RGB, GL_UNSIGNED_SHORT_5_6_5, | |||
depth_bits_array, stencil_bits_array, | |||
depth_buffer_factor, back_buffer_modes, | |||
back_buffer_factor, | |||
msaa_samples_array, msaa_samples_factor, | |||
GL_TRUE); | |||
if (pf_r5g6b5) | |||
configs_r5g6b5 = driCreateConfigs(GL_RGB, GL_UNSIGNED_SHORT_5_6_5, | |||
depth_bits_array, stencil_bits_array, | |||
depth_buffer_factor, back_buffer_modes, | |||
back_buffer_factor, | |||
msaa_samples_array, msaa_samples_factor, | |||
GL_TRUE); | |||
if (pf_a8r8g8b8) | |||
configs_a8r8g8b8 = driCreateConfigs(GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, | |||
depth_bits_array, | |||
stencil_bits_array, | |||
depth_buffer_factor, | |||
back_buffer_modes, | |||
back_buffer_factor, | |||
msaa_samples_array, | |||
msaa_samples_factor, | |||
GL_TRUE); | |||
if (pf_x8r8g8b8) | |||
configs_x8r8g8b8 = driCreateConfigs(GL_BGR, GL_UNSIGNED_INT_8_8_8_8_REV, | |||
depth_bits_array, | |||
stencil_bits_array, | |||
depth_buffer_factor, | |||
back_buffer_modes, | |||
back_buffer_factor, | |||
msaa_samples_array, | |||
msaa_samples_factor, | |||
GL_TRUE); | |||
if (pixel_bits == 16) { | |||
configs = configs_r5g6b5; | |||
if (configs_a8r8g8b8) | |||
configs = configs ? driConcatConfigs(configs, configs_a8r8g8b8) : configs_a8r8g8b8; | |||
if (configs_x8r8g8b8) | |||
configs = configs ? driConcatConfigs(configs, configs_x8r8g8b8) : configs_x8r8g8b8; | |||
} else { | |||
__DRIconfig **configs_a8r8g8b8 = NULL; | |||
__DRIconfig **configs_x8r8g8b8 = NULL; | |||
if (pf_a8r8g8b8) | |||
configs_a8r8g8b8 = driCreateConfigs(GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, | |||
depth_bits_array, | |||
stencil_bits_array, | |||
depth_buffer_factor, | |||
back_buffer_modes, | |||
back_buffer_factor, | |||
msaa_samples_array, | |||
msaa_samples_factor, | |||
GL_TRUE); | |||
if (pf_x8r8g8b8) | |||
configs_x8r8g8b8 = driCreateConfigs(GL_BGR, GL_UNSIGNED_INT_8_8_8_8_REV, | |||
depth_bits_array, | |||
stencil_bits_array, | |||
depth_buffer_factor, | |||
back_buffer_modes, | |||
back_buffer_factor, | |||
msaa_samples_array, | |||
msaa_samples_factor, | |||
GL_TRUE); | |||
if (configs_a8r8g8b8 && configs_x8r8g8b8) | |||
configs = driConcatConfigs(configs_x8r8g8b8, configs_a8r8g8b8); | |||
else if (configs_a8r8g8b8) | |||
configs = configs_a8r8g8b8; | |||
else if (configs_x8r8g8b8) | |||
configs = configs_x8r8g8b8; | |||
else | |||
configs = NULL; | |||
configs = configs_a8r8g8b8; | |||
if (configs_x8r8g8b8) | |||
configs = configs ? driConcatConfigs(configs, configs_x8r8g8b8) : configs_x8r8g8b8; | |||
if (configs_r5g6b5) | |||
configs = configs ? driConcatConfigs(configs, configs_r5g6b5) : configs_r5g6b5; | |||
} | |||
if (configs == NULL) { |
@@ -45,7 +45,7 @@ struct stw_framebuffer | |||
/** | |||
* This mutex has two purposes: | |||
* - protect the access to the mutable data members below | |||
* - prevent the the framebuffer from being deleted while being accessed. | |||
* - prevent the framebuffer from being deleted while being accessed. | |||
* | |||
* It is OK to lock this mutex while holding the stw_device::fb_mutex lock, | |||
* but the opposite must never happen. |
@@ -48,6 +48,7 @@ if env['platform'] == 'linux': | |||
svgadrm, | |||
svga, | |||
mesa, | |||
glsl, | |||
gallium, | |||
]) | |||
@@ -39,7 +39,7 @@ | |||
*or both at or below v. In addition, at least one of the ajacent verteces is | |||
*strictly below or above v. | |||
* A vertex is a relex vertex if the internals angle is strictly greater than | |||
*180. In other words, if the the signed area is negative: | |||
*180. In other words, if the signed area is negative: | |||
*(x1, y1), (x2, y2), (x3, y3) are the three vertices along a polygon, the | |||
*order is such that left hand side is inside the polygon. Then (x2,y2) is | |||
*reflex if: |
@@ -142,7 +142,7 @@ static void CheckOrientation( GLUtesselator *tess ) | |||
GLUhalfEdge *e; | |||
/* When we compute the normal automatically, we choose the orientation | |||
* so that the the sum of the signed areas of all contours is non-negative. | |||
* so that the sum of the signed areas of all contours is non-negative. | |||
*/ | |||
area = 0; | |||
for( f = fHead->next; f != fHead; f = f->next ) { |
@@ -698,7 +698,7 @@ setupLoaderExtensions(__DRIscreen *psp, | |||
* \param drm_version Version of the kernel DRM. | |||
* \param frame_buffer Data describing the location and layout of the | |||
* framebuffer. | |||
* \param pSAREA Pointer the the SAREA. | |||
* \param pSAREA Pointer to the SAREA. | |||
* \param fd Device handle for the DRM. | |||
* \param extensions ?? | |||
* \param driver_modes Returns modes suppoted by the driver |
@@ -468,7 +468,7 @@ static void r128TexEnv( GLcontext *ctx, GLenum target, | |||
* certain point. It is better than completely ignoring the LOD | |||
* bias. Unfortunately there isn't much range in the bias, the | |||
* spec mentions strides that vary between 0.5 and 2.0 but these | |||
* numbers don't seem to relate the the GL LOD bias value at all. | |||
* numbers don't seem to relate to the GL LOD bias value at all. | |||
*/ | |||
if ( param[0] >= 1.0 ) { | |||
bias = -128; |
@@ -690,7 +690,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
# define R200_PVS_CNTL_1_PROGRAM_START_SHIFT 0 | |||
# define R200_PVS_CNTL_1_POS_END_SHIFT 10 | |||
# define R200_PVS_CNTL_1_PROGRAM_END_SHIFT 20 | |||
/* Addresses are relative the the vertex program parameters area. */ | |||
/* Addresses are relative to the vertex program parameters area. */ | |||
#define R200_VAP_PVS_CNTL_2 0x22d4 | |||
# define R200_PVS_CNTL_2_PARAM_OFFSET_SHIFT 0 | |||
# define R200_PVS_CNTL_2_PARAM_COUNT_SHIFT 16 |
@@ -482,7 +482,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
# define R300_PVS_FIRST_INST_SHIFT 0 | |||
# define R300_PVS_XYZW_VALID_INST_SHIFT 10 | |||
# define R300_PVS_LAST_INST_SHIFT 20 | |||
/* Addresses are relative the the vertex program parameters area. */ | |||
/* Addresses are relative to the vertex program parameters area. */ | |||
#define R300_VAP_PVS_CONST_CNTL 0x22D4 | |||
# define R300_PVS_CONST_BASE_OFFSET_SHIFT 0 | |||
# define R300_PVS_MAX_CONST_ADDR_SHIFT 16 | |||
@@ -1760,7 +1760,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
* The destination register index is in FPI1 (color) and FPI3 (alpha) | |||
* together with enable bits. | |||
* There are separate enable bits for writing into temporary registers | |||
* (DSTC_REG_* /DSTA_REG) and and program output registers (DSTC_OUTPUT_* | |||
* (DSTC_REG_* /DSTA_REG) and program output registers (DSTC_OUTPUT_* | |||
* /DSTA_OUTPUT). You can write to both at once, or not write at all (the | |||
* same index must be used for both). | |||
* |
@@ -42,7 +42,7 @@ | |||
#include "radeon_debug.h" | |||
#include "r600_context.h" | |||
#include "r600_cmdbuf.h" | |||
#include "shader/programopt.c" | |||
#include "shader/programopt.h" | |||
#include "r700_debug.h" | |||
#include "r700_vertprog.h" |
@@ -553,6 +553,8 @@ static radeon_mipmap_tree * get_biggest_matching_miptree(radeonTexObj *texObj, | |||
} | |||
if (mtCount == 0) { | |||
free(mtSizes); | |||
free(mts); | |||
return NULL; | |||
} | |||
@@ -1901,7 +1901,7 @@ void radeonUploadTexMatrix( r100ContextPtr rmesa, | |||
So: if we need the q coord in the end (solely determined by the texture | |||
target, i.e. 2d / 1d / texrect targets) we swap the third and 4th row. | |||
Additionally, if we don't have texgen but 4 tex coords submitted, we swap | |||
column 3 and 4 (for the 2d / 1d / texrect targets) since the the q coord | |||
column 3 and 4 (for the 2d / 1d / texrect targets) since the q coord | |||
will get submitted in the "wrong", i.e. 3rd, slot. | |||
If an app submits 3 coords for 2d targets, we assume it is saving on vertex | |||
size and using the texture matrix to swap the r and q coords around (ut2k3 |
@@ -287,7 +287,7 @@ extern void XMesaCopySubBuffer( XMesaBuffer b, | |||
/* | |||
* Return a pointer to the the Pixmap or XImage being used as the back | |||
* Return a pointer to the Pixmap or XImage being used as the back | |||
* color buffer of an XMesaBuffer. This function is a way to get "under | |||
* the hood" of X/Mesa so one can manipulate the back buffer directly. | |||
* Input: b - the XMesaBuffer |
@@ -431,7 +431,7 @@ extern const int xmesa_kernel8[DITH_DY * DITH_DX]; | |||
* If pixelformat==PF_HPCR: | |||
* | |||
* HP Color Recovery dithering (ad@lms.be 30/08/95) | |||
* HP has on it's 8-bit 700-series computers, a feature called | |||
* HP has on its 8-bit 700-series computers, a feature called | |||
* 'Color Recovery'. This allows near 24-bit output (so they say). | |||
* It is enabled by selecting the 8-bit TrueColor visual AND | |||
* corresponding colormap (see tkInitWindow) AND doing some special |
@@ -1072,7 +1072,7 @@ struct dd_function_table { | |||
* These are the initial values to be installed into dispatch by | |||
* mesa. If the T&L driver wants to modify the dispatch table | |||
* while installed, it must do so itself. It would be possible for | |||
* the vertexformat to install it's own initial values for these | |||
* the vertexformat to install its own initial values for these | |||
* functions, but this way there is an obvious list of what is | |||
* expected of the driver. | |||
* |
@@ -476,7 +476,7 @@ fxt1_lloyd (GLfloat vec[][MAX_COMP], GLint nv, | |||
* for each sample color | |||
* sort to nearest vector. | |||
* | |||
* replace each vector with the centroid of it's matching colors. | |||
* replace each vector with the centroid of its matching colors. | |||
* | |||
* repeat until RMS doesn't improve. | |||
* |
@@ -61,7 +61,7 @@ extern long counter_overhead; | |||
*/ | |||
extern char *mesa_profile; | |||
/* Modify the the number of tests if you like. | |||
/* Modify the number of tests if you like. | |||
* We take the minimum of all results, because every error should be | |||
* positive (time used by other processes, task switches etc). | |||
* It is assumed that all calculations are done in the cache. |
@@ -889,7 +889,7 @@ _math_matrix_rotate( GLmatrix *mat, | |||
* Y-axis to bring the axis vector parallel with the X-axis. The | |||
* rotation about the X-axis is then performed. Ry and Rz are | |||
* simply the respective inverse transforms to bring the arbitrary | |||
* axis back to it's original orientation. The first transforms | |||
* axis back to its original orientation. The first transforms | |||
* Rz' and Ry' are considered inverses, since the data from the | |||
* arbitrary axis gives you info on how to get to it, not how | |||
* to get away from it, and an inverse must be applied. |
@@ -53,6 +53,7 @@ typedef int flex_int32_t; | |||
typedef unsigned char flex_uint8_t; | |||
typedef unsigned short int flex_uint16_t; | |||
typedef unsigned int flex_uint32_t; | |||
#endif /* ! C99 */ | |||
/* Limits of integral types. */ | |||
#ifndef INT8_MIN | |||
@@ -83,8 +84,6 @@ typedef unsigned int flex_uint32_t; | |||
#define UINT32_MAX (4294967295U) | |||
#endif | |||
#endif /* ! C99 */ | |||
#endif /* ! FLEXINT_H */ | |||
#ifdef __cplusplus | |||
@@ -158,15 +157,7 @@ typedef void* yyscan_t; | |||
/* Size of default input buffer. */ | |||
#ifndef YY_BUF_SIZE | |||
#ifdef __ia64__ | |||
/* On IA-64, the buffer size is 16k, not 8k. | |||
* Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. | |||
* Ditto for the __ia64__ case accordingly. | |||
*/ | |||
#define YY_BUF_SIZE 32768 | |||
#else | |||
#define YY_BUF_SIZE 16384 | |||
#endif /* __ia64__ */ | |||
#endif | |||
/* The state buf must be large enough to hold one state per character in the main buffer. | |||
@@ -1161,7 +1152,7 @@ handle_ident(struct asm_parser_state *state, const char *text, YYSTYPE *lval) | |||
} while(0); | |||
#define YY_EXTRA_TYPE struct asm_parser_state * | |||
#line 1165 "lex.yy.c" | |||
#line 1156 "lex.yy.c" | |||
#define INITIAL 0 | |||
@@ -1298,12 +1289,7 @@ static int input (yyscan_t yyscanner ); | |||
/* Amount of stuff to slurp up with each read. */ | |||
#ifndef YY_READ_BUF_SIZE | |||
#ifdef __ia64__ | |||
/* On IA-64, the buffer size is 16k, not 8k */ | |||
#define YY_READ_BUF_SIZE 16384 | |||
#else | |||
#define YY_READ_BUF_SIZE 8192 | |||
#endif /* __ia64__ */ | |||
#endif | |||
/* Copy whatever the last rule matched to the standard output. */ | |||
@@ -1311,7 +1297,7 @@ static int input (yyscan_t yyscanner ); | |||
/* This used to be an fputs(), but since the string might contain NUL's, | |||
* we now use fwrite(). | |||
*/ | |||
#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) | |||
#define ECHO fwrite( yytext, yyleng, 1, yyout ) | |||
#endif | |||
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, | |||
@@ -1322,7 +1308,7 @@ static int input (yyscan_t yyscanner ); | |||
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ | |||
{ \ | |||
int c = '*'; \ | |||
size_t n; \ | |||
unsigned n; \ | |||
for ( n = 0; n < max_size && \ | |||
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \ | |||
buf[n] = (char) c; \ | |||
@@ -1410,7 +1396,7 @@ YY_DECL | |||
#line 157 "program_lexer.l" | |||
#line 1414 "lex.yy.c" | |||
#line 1400 "lex.yy.c" | |||
yylval = yylval_param; | |||
@@ -2212,7 +2198,7 @@ case 142: | |||
YY_RULE_SETUP | |||
#line 326 "program_lexer.l" | |||
{ | |||
yylval->real = _mesa_strtod(yytext, NULL); | |||
yylval->real = (float) _mesa_strtod(yytext, NULL); | |||
return REAL; | |||
} | |||
YY_BREAK | |||
@@ -2224,7 +2210,7 @@ YY_DO_BEFORE_ACTION; /* set up yytext again */ | |||
YY_RULE_SETUP | |||
#line 330 "program_lexer.l" | |||
{ | |||
yylval->real = _mesa_strtod(yytext, NULL); | |||
yylval->real = (float) _mesa_strtod(yytext, NULL); | |||
return REAL; | |||
} | |||
YY_BREAK | |||
@@ -2232,7 +2218,7 @@ case 144: | |||
YY_RULE_SETUP | |||
#line 334 "program_lexer.l" | |||
{ | |||
yylval->real = _mesa_strtod(yytext, NULL); | |||
yylval->real = (float) _mesa_strtod(yytext, NULL); | |||
return REAL; | |||
} | |||
YY_BREAK | |||
@@ -2240,7 +2226,7 @@ case 145: | |||
YY_RULE_SETUP | |||
#line 338 "program_lexer.l" | |||
{ | |||
yylval->real = _mesa_strtod(yytext, NULL); | |||
yylval->real = (float) _mesa_strtod(yytext, NULL); | |||
return REAL; | |||
} | |||
YY_BREAK | |||
@@ -2474,7 +2460,7 @@ YY_RULE_SETUP | |||
#line 481 "program_lexer.l" | |||
ECHO; | |||
YY_BREAK | |||
#line 2478 "lex.yy.c" | |||
#line 2464 "lex.yy.c" | |||
case YY_STATE_EOF(INITIAL): | |||
yyterminate(); | |||
@@ -3242,8 +3228,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr , yyscan_t yyscanner) | |||
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will | |||
* scan from a @e copy of @a bytes. | |||
* @param yybytes the byte buffer to scan | |||
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. | |||
* @param bytes the byte buffer to scan | |||
* @param len the number of bytes in the buffer pointed to by @a bytes. | |||
* @param yyscanner The scanner object. | |||
* @return the newly allocated buffer state object. | |||
*/ |
@@ -97,8 +97,8 @@ | |||
#define COND_EQ 2 /**< equal to zero */ | |||
#define COND_LT 3 /**< less than zero */ | |||
#define COND_UN 4 /**< unordered (NaN) */ | |||
#define COND_GE 5 /**< greater then or equal to zero */ | |||
#define COND_LE 6 /**< less then or equal to zero */ | |||
#define COND_GE 5 /**< greater than or equal to zero */ | |||
#define COND_LE 6 /**< less than or equal to zero */ | |||
#define COND_NE 7 /**< not equal to zero */ | |||
#define COND_TR 8 /**< always true */ | |||
#define COND_FL 9 /**< always false */ |
@@ -324,19 +324,19 @@ ARRAYSHADOW2D { return_token_or_IDENTIFIER(require_ARB_fp && require | |||
return INTEGER; | |||
} | |||
{num}?{frac}{exp}? { | |||
yylval->real = _mesa_strtod(yytext, NULL); | |||
yylval->real = (float) _mesa_strtod(yytext, NULL); | |||
return REAL; | |||
} | |||
{num}"."/[^.] { | |||
yylval->real = _mesa_strtod(yytext, NULL); | |||
yylval->real = (float) _mesa_strtod(yytext, NULL); | |||
return REAL; | |||
} | |||
{num}{exp} { | |||
yylval->real = _mesa_strtod(yytext, NULL); | |||
yylval->real = (float) _mesa_strtod(yytext, NULL); | |||
return REAL; | |||
} | |||
{num}"."{exp} { | |||
yylval->real = _mesa_strtod(yytext, NULL); | |||
yylval->real = (float) _mesa_strtod(yytext, NULL); | |||
return REAL; | |||
} | |||
@@ -62,7 +62,7 @@ struct asm_symbol { | |||
*/ | |||
unsigned param_binding_swizzle; | |||
/* This is how many entries in the the program_parameter_list we take up | |||
/* This is how many entries in the program_parameter_list we take up | |||
* with our state tokens or constants. Note that this is _not_ the same as | |||
* the number of param registers we eventually use. | |||
*/ |
@@ -695,7 +695,7 @@ vec3 normalize(const vec3 v) | |||
{ | |||
// const float s = inversesqrt(dot(v, v)); | |||
// __retVal = v * s; | |||
// XXX note, we _could_ use __retVal.w instead of tmp and and save a | |||
// XXX note, we _could_ use __retVal.w instead of tmp and save a | |||
// register, but that's actually a compilation error because v is a vec3 | |||
// and the .w suffix is illegal. Oh well. | |||
float tmp; |
@@ -167,9 +167,7 @@ st_set_framebuffer_surface(struct st_framebuffer *stfb, | |||
uint surfIndex, struct pipe_surface *surf) | |||
{ | |||
GET_CURRENT_CONTEXT(ctx); | |||
static const GLuint invalid_size = 9999999; | |||
struct st_renderbuffer *strb; | |||
GLuint width, height, i; | |||
/* sanity checks */ | |||
assert(ST_SURFACE_FRONT_LEFT == BUFFER_FRONT_LEFT); | |||
@@ -183,18 +181,17 @@ st_set_framebuffer_surface(struct st_framebuffer *stfb, | |||
strb = st_renderbuffer(stfb->Base.Attachment[surfIndex].Renderbuffer); | |||
if (!strb) { | |||
if (surfIndex == ST_SURFACE_FRONT_LEFT) { | |||
/* Delayed creation when the window system supplies a fake front buffer */ | |||
struct st_renderbuffer *strb_back | |||
= st_renderbuffer(stfb->Base.Attachment[ST_SURFACE_BACK_LEFT].Renderbuffer); | |||
struct gl_renderbuffer *rb | |||
= st_new_renderbuffer_fb(surf->format, strb_back->Base.NumSamples, FALSE); | |||
_mesa_add_renderbuffer(&stfb->Base, BUFFER_FRONT_LEFT, rb); | |||
strb = st_renderbuffer(rb); | |||
} else { | |||
/* fail */ | |||
/* create new renderbuffer for this surface now */ | |||
const GLuint numSamples = stfb->Base.Visual.samples; | |||
struct gl_renderbuffer *rb = | |||
st_new_renderbuffer_fb(surf->format, numSamples, FALSE); | |||
if (!rb) { | |||
/* out of memory */ | |||
_mesa_warning(ctx, "Out of memory allocating renderbuffer"); | |||
return; | |||
} | |||
_mesa_add_renderbuffer(&stfb->Base, surfIndex, rb); | |||
strb = st_renderbuffer(rb); | |||
} | |||
/* replace the renderbuffer's surface/texture pointers */ | |||
@@ -206,39 +203,16 @@ st_set_framebuffer_surface(struct st_framebuffer *stfb, | |||
* But when we do, we need to start setting this dirty bit | |||
* to ensure the renderbuffer attachements are up-to-date | |||
* via update_framebuffer. | |||
* Core Mesa's state validation will update the parent framebuffer's | |||
* size info, etc. | |||
*/ | |||
ctx->st->dirty.st |= ST_NEW_FRAMEBUFFER; | |||
ctx->NewState |= _NEW_BUFFERS; | |||
} | |||
/* update renderbuffer's width/height */ | |||
strb->Base.Width = surf->width; | |||
strb->Base.Height = surf->height; | |||
/* Try to update the framebuffer's width/height from the renderbuffer | |||
* sizes. Before we start drawing, all the rbs _should_ be the same size. | |||
*/ | |||
width = height = invalid_size; | |||
for (i = 0; i < BUFFER_COUNT; i++) { | |||
if (stfb->Base.Attachment[i].Renderbuffer) { | |||
if (width == invalid_size) { | |||
width = stfb->Base.Attachment[i].Renderbuffer->Width; | |||
height = stfb->Base.Attachment[i].Renderbuffer->Height; | |||
} | |||
else if (width != stfb->Base.Attachment[i].Renderbuffer->Width || | |||
height != stfb->Base.Attachment[i].Renderbuffer->Height) { | |||
/* inconsistant renderbuffer sizes, bail out */ | |||
return; | |||
} | |||
} | |||
} | |||
if (width != invalid_size) { | |||
/* OK, the renderbuffers are of a consistant size, so update the | |||
* parent framebuffer's size. | |||
*/ | |||
stfb->Base.Width = width; | |||
stfb->Base.Height = height; | |||
} | |||
} | |||
@@ -526,7 +526,7 @@ _swrast_depth_clamp_span( GLcontext *ctx, SWspan *span ) | |||
/* Convert floating point values in [0,1] to device Z coordinates in | |||
* [0, DepthMax]. | |||
* ex: If the the Z buffer has 24 bits, DepthMax = 0xffffff. | |||
* ex: If the Z buffer has 24 bits, DepthMax = 0xffffff. | |||
* | |||
* XXX this all falls apart if we have 31 or more bits of Z because | |||
* the triangle rasterization code produces unsigned Z values. Negative |
@@ -78,7 +78,7 @@ struct loopback_attr { | |||
}; | |||
/* Don't emit ends and begins on wrapped primitives. Don't replay | |||
* wrapped vertices. If we get here, it's probably because the the | |||
* wrapped vertices. If we get here, it's probably because the | |||
* precalculated wrapping is wrong. | |||
*/ | |||
static void loopback_prim( GLcontext *ctx, |