Merge branch 'mesa_7_7_branch'

Conflicts:
	docs/relnotes.html
	src/gallium/drivers/llvmpipe/lp_tex_sample_c.c
	src/gallium/drivers/r300/r300_cs.h
	src/mesa/drivers/dri/i965/brw_wm_surface_state.c
	src/mesa/main/enums.c
This commit is contained in:
Brian Paul 2010-01-04 19:16:24 -07:00
commit 5ac16495a2
62 changed files with 711 additions and 499 deletions

48
docs/relnotes-7.7.1.html Normal file
View file

@ -0,0 +1,48 @@
<HTML>
<TITLE>Mesa Release Notes</TITLE>
<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
<BODY>
<body bgcolor="#eeeeee">
<H1>Mesa 7.7.1 Release Notes / date tbd</H1>
<p>
Mesa 7.7.1 is a bug-fix release.
</p>
<p>
Mesa 7.7.1 implements the OpenGL 2.1 API, but the version reported by
glGetString(GL_VERSION) depends on the particular driver being used.
Some drivers don't support all the features required in OpenGL 2.1.
</p>
<p>
See the <a href="install.html">Compiling/Installing page</a> for prerequisites
for DRI hardware acceleration.
</p>
<h2>MD5 checksums</h2>
<pre>
tbd
</pre>
<h2>New features</h2>
<ul>
<li>tbd
</ul>
<h2>Bug fixes</h2>
<ul>
<li>Assorted fixes to VMware SVGA gallium driver.
<li>Fixed broken blending to multiple color buffers in swrast driver.
<li>Allocate constants more tightly in GL_ARB_vertex/fragment parser.
</ul>
</body>
</html>

View file

@ -13,7 +13,9 @@ The release notes summarize what's new or changed in each Mesa release.
</p>
<UL>
<<<<<<< HEAD:docs/relnotes.html
<LI><A HREF="relnotes-7.8.html">7.8 release notes</A>
<LI><A HREF="relnotes-7.7.1.html">7.7.1 release notes</A>
<LI><A HREF="relnotes-7.7.html">7.7 release notes</A>
<LI><A HREF="relnotes-7.6.1.html">7.6.1 release notes</A>
<LI><A HREF="relnotes-7.6.html">7.6 release notes</A>

View file

@ -374,7 +374,8 @@ main(int argc, char *argv[])
EGLint screenAttribs[10];
EGLModeMESA mode[MAX_MODES];
EGLScreenMESA screen;
EGLint count, chosenMode;
EGLint count;
EGLint chosenMode = 0;
GLboolean printInfo = GL_FALSE;
EGLint width = 0, height = 0;

View file

@ -52,7 +52,8 @@ main(int argc, char *argv[])
EGLint screenAttribs[10];
EGLModeMESA mode[MAX_MODES];
EGLScreenMESA screen;
EGLint count, chosenMode;
EGLint count;
EGLint chosenMode = 0;
EGLint width = 0, height = 0;
d = eglGetDisplay(EGL_DEFAULT_DISPLAY);

View file

@ -29,7 +29,7 @@
#include "rbug/rbug.h"
static void wait()
static void rbug_wait()
{
int s = u_socket_listen_on_port(13370);
int c = u_socket_accept(s);
@ -57,6 +57,6 @@ static void wait()
int main(int argc, char** argv)
{
wait();
rbug_wait();
return 0;
}

View file

@ -74,7 +74,7 @@ int iters[RINGS];
GLuint theTorus;
void FillTorus(float rc, int numc, float rt, int numt)
static void FillTorus(float rc, int numc, float rt, int numt)
{
int i, j, k;
double s, t;
@ -106,7 +106,7 @@ void FillTorus(float rc, int numc, float rt, int numt)
}
}
float Clamp(int iters_left, float t)
static float Clamp(int iters_left, float t)
{
if (iters_left < 3) {
return 0.0;
@ -114,7 +114,7 @@ float Clamp(int iters_left, float t)
return (iters_left-2)*t/iters_left;
}
void DrawScene(void)
static void DrawScene(void)
{
int i, j;
GLboolean goIdle;
@ -172,7 +172,7 @@ void DrawScene(void)
}
}
float MyRand(void)
static float MyRand(void)
{
return 10.0 * ( (float) rand() / (float) RAND_MAX - 0.5 );
}
@ -181,12 +181,12 @@ float MyRand(void)
#define GLUTCALLBACK
#endif
void GLUTCALLBACK glut_post_redisplay_p(void)
static void GLUTCALLBACK glut_post_redisplay_p(void)
{
glutPostRedisplay();
}
void ReInit(void)
static void ReInit(void)
{
int i;
float deviation;
@ -206,7 +206,7 @@ void ReInit(void)
glutIdleFunc(glut_post_redisplay_p);
}
void Init(void)
static void Init(void)
{
float base, height;
float aspect, x, y;
@ -312,13 +312,13 @@ void Init(void)
glMatrixMode(GL_MODELVIEW);
}
void Reshape(int width, int height)
static void Reshape(int width, int height)
{
glViewport(0, 0, width, height);
}
void Key(unsigned char key, int x, int y)
static void Key(unsigned char key, int x, int y)
{
switch (key) {
@ -330,7 +330,7 @@ void Key(unsigned char key, int x, int y)
}
}
GLenum Args(int argc, char **argv)
static GLenum Args(int argc, char **argv)
{
GLint i;

View file

@ -69,19 +69,19 @@ starRec stars[MAXSTARS];
float sinTable[MAXANGLES];
float Sin(float angle)
static float Sin(float angle)
{
return (sinTable[(GLint)angle]);
}
float Cos(float angle)
static float Cos(float angle)
{
return (sinTable[((GLint)angle+(MAXANGLES/4))%MAXANGLES]);
}
void NewStar(GLint n, GLint d)
static void NewStar(GLint n, GLint d)
{
if (rand()%4 == 0) {
@ -103,7 +103,7 @@ void NewStar(GLint n, GLint d)
}
}
void RotatePoint(float *x, float *y, float rotation)
static void RotatePoint(float *x, float *y, float rotation)
{
float tmpX, tmpY;
@ -113,7 +113,7 @@ void RotatePoint(float *x, float *y, float rotation)
*y = tmpY;
}
void MoveStars(void)
static void MoveStars(void)
{
float offset;
GLint n;
@ -134,7 +134,7 @@ void MoveStars(void)
}
}
GLenum StarPoint(GLint n)
static GLenum StarPoint(GLint n)
{
float x0, y0, x1, y1, width;
GLint i;
@ -182,7 +182,7 @@ GLenum StarPoint(GLint n)
}
}
void ShowStars(void)
static void ShowStars(void)
{
GLint n;
@ -221,7 +221,7 @@ static void Init(void)
glDisable(GL_DITHER);
}
void Reshape(int width, int height)
static void Reshape(int width, int height)
{
windW = (GLint)width;
@ -262,7 +262,7 @@ static void Key(unsigned char key, int x, int y)
}
}
void Idle(void)
static void Idle(void)
{
if (overlayInit == GL_FALSE) {

View file

@ -3,6 +3,7 @@
/* texload is a simplistic routine for reading an SGI .rgb image file. */
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -25,7 +26,7 @@ typedef struct _ImageRec {
int *rowSize;
} ImageRec;
void
static void
rgbtorgb(unsigned char *r,unsigned char *g,unsigned char *b,unsigned char *l,int n) {
while(n--) {
l[0] = r[0];
@ -72,6 +73,7 @@ static ImageRec *ImageOpen(char *fileName)
ImageRec *image;
int swapFlag;
int x;
int result;
endianTest.testWord = 1;
if (endianTest.testByte[0] == 1) {
@ -90,7 +92,8 @@ static ImageRec *ImageOpen(char *fileName)
return NULL;
}
fread(image, 1, 12, image->file);
result = fread(image, 1, 12, image->file);
assert(result == 12);
if (swapFlag) {
ConvertShort(&image->imagic, 1);
@ -117,8 +120,10 @@ static ImageRec *ImageOpen(char *fileName)
}
image->rleEnd = 512 + (2 * x);
fseek(image->file, 512, SEEK_SET);
fread(image->rowStart, 1, x, image->file);
fread(image->rowSize, 1, x, image->file);
result = fread(image->rowStart, 1, x, image->file);
assert(result == x);
result = fread(image->rowSize, 1, x, image->file);
assert(result == x);
if (swapFlag) {
ConvertUint(image->rowStart, x/(int) sizeof(unsigned));
ConvertUint((unsigned *)image->rowSize, x/(int) sizeof(int));
@ -138,11 +143,13 @@ static void
ImageGetRow(ImageRec *image, unsigned char *buf, int y, int z) {
unsigned char *iPtr, *oPtr, pixel;
int count;
int result;
if ((image->type & 0xFF00) == 0x0100) {
fseek(image->file, (long) image->rowStart[y+z*image->ysize], SEEK_SET);
fread(image->tmp, 1, (unsigned int)image->rowSize[y+z*image->ysize],
image->file);
result = fread(image->tmp, 1, (unsigned int)image->rowSize[y+z*image->ysize],
image->file);
assert(result == (unsigned int)image->rowSize[y+z*image->ysize]);
iPtr = image->tmp;
oPtr = buf;
@ -166,11 +173,13 @@ ImageGetRow(ImageRec *image, unsigned char *buf, int y, int z) {
} else {
fseek(image->file, 512+(y*image->xsize)+(z*image->xsize*image->ysize),
SEEK_SET);
fread(buf, 1, image->xsize, image->file);
result = fread(buf, 1, image->xsize, image->file);
assert(result == image->xsize);
}
}
GLubyte *
#if 0
static GLubyte *
read_alpha_texture(char *name, int *width, int *height)
{
unsigned char *base, *lptr;
@ -199,8 +208,9 @@ read_alpha_texture(char *name, int *width, int *height)
return (unsigned char *) base;
}
#endif
GLubyte *
static GLubyte *
read_rgb_texture(char *name, int *width, int *height)
{
unsigned char *base, *ptr;
@ -261,7 +271,8 @@ read_rgb_texture(char *name, int *width, int *height)
int main(int argc, char **argv)
{
int width, height;
int width = 0;
int height = 0;
GLubyte *data;
char buff[32];
int n;

View file

@ -445,7 +445,7 @@ GLfloat identity[16] = {
};
void BuildCylinder(int numEdges)
static void BuildCylinder(int numEdges)
{
int i, top = 1.0, bottom = -1.0;
float x[100], y[100], angle;
@ -481,7 +481,7 @@ void BuildCylinder(int numEdges)
glEndList();
}
void BuildTorus(float rc, int numc, float rt, int numt)
static void BuildTorus(float rc, int numc, float rt, int numt)
{
int i, j, k;
double s, t;
@ -515,7 +515,7 @@ void BuildTorus(float rc, int numc, float rt, int numt)
glEndList();
}
void BuildCage(void)
static void BuildCage(void)
{
int i;
float inc;
@ -609,7 +609,7 @@ void BuildCage(void)
glEndList();
}
void BuildCube(void)
static void BuildCube(void)
{
int i, j;
@ -628,7 +628,7 @@ void BuildCube(void)
glEndList();
}
void BuildLists(void)
static void BuildLists(void)
{
cube = glGenLists(1);
@ -646,7 +646,7 @@ void BuildLists(void)
genericObject = torus;
}
void SetDefaultSettings(void)
static void SetDefaultSettings(void)
{
magFilter = nnearest;
@ -657,7 +657,7 @@ void SetDefaultSettings(void)
autoRotate = GL_TRUE;
}
unsigned char *AlphaPadImage(int bufSize, unsigned char *inData, int alpha)
static unsigned char *AlphaPadImage(int bufSize, unsigned char *inData, int alpha)
{
unsigned char *outData, *out_ptr, *in_ptr;
int i;
@ -677,7 +677,7 @@ unsigned char *AlphaPadImage(int bufSize, unsigned char *inData, int alpha)
return outData;
}
void Init(void)
static void Init(void)
{
float ambient[] = {0.0, 0.0, 0.0, 1.0};
float diffuse[] = {1.0, 1.0, 1.0, 1.0};
@ -753,7 +753,7 @@ void Init(void)
BuildLists();
}
void ReInit(void)
static void ReInit(void)
{
if (genericObject == torus) {
glEnable(GL_DEPTH_TEST);
@ -773,7 +773,7 @@ void ReInit(void)
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, textureEnvironment);
}
void Draw(void)
static void Draw(void)
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
@ -806,7 +806,7 @@ void Draw(void)
glutSwapBuffers();
}
void Reshape(int width, int height)
static void Reshape(int width, int height)
{
W = width;
H = height;
@ -818,7 +818,7 @@ void Reshape(int width, int height)
glMatrixMode(GL_MODELVIEW);
}
void Idle(void)
static void Idle(void)
{
static double t0 = -1.;
double t, dt;
@ -833,7 +833,7 @@ void Idle(void)
glutPostRedisplay();
}
void Key2(int key, int x, int y)
static void Key2(int key, int x, int y)
{
switch (key) {
@ -863,7 +863,7 @@ void Key2(int key, int x, int y)
glutPostRedisplay();
}
void Key(unsigned char key, int x, int y)
static void Key(unsigned char key, int x, int y)
{
switch (key) {
@ -950,7 +950,7 @@ void Key(unsigned char key, int x, int y)
glutPostRedisplay();
}
GLenum Args(int argc, char **argv)
static GLenum Args(int argc, char **argv)
{
GLint i;

View file

@ -67,19 +67,19 @@ starRec stars[MAXSTARS];
float sinTable[MAXANGLES];
float Sin(float angle)
static float Sin(float angle)
{
return (sinTable[(GLint)angle]);
}
float Cos(float angle)
static float Cos(float angle)
{
return (sinTable[((GLint)angle+(MAXANGLES/4))%MAXANGLES]);
}
void NewStar(GLint n, GLint d)
static void NewStar(GLint n, GLint d)
{
if (rand()%4 == 0) {
@ -101,7 +101,7 @@ void NewStar(GLint n, GLint d)
}
}
void RotatePoint(float *x, float *y, float rotation)
static void RotatePoint(float *x, float *y, float rotation)
{
float tmpX, tmpY;
@ -111,7 +111,7 @@ void RotatePoint(float *x, float *y, float rotation)
*y = tmpY;
}
void MoveStars(void)
static void MoveStars(void)
{
float offset;
GLint n;
@ -142,7 +142,7 @@ void MoveStars(void)
}
}
GLenum StarPoint(GLint n)
static GLenum StarPoint(GLint n)
{
float x0, y0, x1, y1, width;
GLint i;
@ -190,7 +190,7 @@ GLenum StarPoint(GLint n)
}
}
void ShowStars(void)
static void ShowStars(void)
{
GLint n;
@ -229,7 +229,7 @@ static void Init(void)
glDisable(GL_DITHER);
}
void Reshape(int width, int height)
static void Reshape(int width, int height)
{
windW = (GLint)width;
@ -260,7 +260,7 @@ static void Key(unsigned char key, int x, int y)
}
}
void Draw(void)
static void Draw(void)
{
MoveStars();
@ -307,7 +307,7 @@ static GLenum Args(int argc, char **argv)
#define GLUTCALLBACK
#endif
void GLUTCALLBACK glut_post_redisplay_p(void)
static void GLUTCALLBACK glut_post_redisplay_p(void)
{
glutPostRedisplay();
}

View file

@ -67,7 +67,7 @@ int cCount, cIndex[2], cStep;
GLenum op = OP_NOOP;
void DrawImage(void)
static void DrawImage(void)
{
glRasterPos2i(0, 0);
@ -84,7 +84,7 @@ void DrawImage(void)
image->data);
}
void DrawPoint(void)
static void DrawPoint(void)
{
int i;
@ -102,7 +102,7 @@ void DrawPoint(void)
}
}
void InitVList(void)
static void InitVList(void)
{
vList[0].x = 0.0;
@ -141,7 +141,7 @@ void InitVList(void)
vList[4].tY = cList[0].y / (float)imageSizeY;
}
void ScaleImage(int sizeX, int sizeY)
static void ScaleImage(int sizeX, int sizeY)
{
GLubyte *buf;
@ -154,7 +154,7 @@ void ScaleImage(int sizeX, int sizeY)
image->sizeY = sizeY;
}
void SetPoint(int x, int y)
static void SetPoint(int x, int y)
{
cList[cCount].x = (float)x;
@ -162,7 +162,7 @@ void SetPoint(int x, int y)
cCount++;
}
void Stretch(void)
static void Stretch(void)
{
glBegin(GL_TRIANGLES);
@ -221,7 +221,7 @@ void Stretch(void)
}
}
void Key(unsigned char key, int x, int y)
static void Key(unsigned char key, int x, int y)
{
switch (key) {
@ -245,7 +245,7 @@ void Key(unsigned char key, int x, int y)
glutPostRedisplay();
}
void Mouse(int button, int state, int mouseX, int mouseY)
static void Mouse(int button, int state, int mouseX, int mouseY)
{
if (state != GLUT_DOWN)
@ -263,7 +263,7 @@ void Mouse(int button, int state, int mouseX, int mouseY)
glutPostRedisplay();
}
void Animate(void)
static void Animate(void)
{
static double t0 = -1.;
double t, dt;
@ -322,7 +322,7 @@ static GLenum Args(int argc, char **argv)
#define GLUTCALLBACK
#endif
void GLUTCALLBACK glut_post_redisplay_p(void)
static void GLUTCALLBACK glut_post_redisplay_p(void)
{
glutPostRedisplay();
}

View file

@ -92,7 +92,7 @@ GLubyte contourTexture2[] = {
#endif
void GLUTCALLBACK glut_post_redisplay_p(void)
static void GLUTCALLBACK glut_post_redisplay_p(void)
{
static double t0 = -1.;
double t, dt;

View file

@ -1188,7 +1188,7 @@ exercise_buffer_objects(enum Map_Buffer_Usage usage)
GLuint bufferID;
GLint bufferMapped;
static GLubyte data[BUFFER_DATA_SIZE] = {0};
float *dataPtr;
float *dataPtr = NULL;
/* Get the function pointers we need. These are from
* GL_ARB_vertex_buffer_object and are required in all

View file

@ -37,13 +37,16 @@ static void read_surface( char *filename )
}
numverts = 0;
while (!feof(f) && numverts < MAXVERTS) {
fscanf( f, "%f %f %f %f %f %f",
&data[numverts][0], &data[numverts][1], &data[numverts][2],
&data[numverts][3], &data[numverts][4], &data[numverts][5] );
while (numverts < MAXVERTS) {
int result;
result = fscanf( f, "%f %f %f %f %f %f",
&data[numverts][0], &data[numverts][1], &data[numverts][2],
&data[numverts][3], &data[numverts][4], &data[numverts][5] );
if (result == EOF) {
break;
}
numverts++;
}
numverts--;
printf("%d vertices, %d triangles\n", numverts, numverts-2);
printf("data = %p\n", (void *) data);

View file

@ -96,7 +96,8 @@ static void Init( void )
exit(1);
}
sz = (GLuint) fread(buf, 1, sizeof(buf), f);
sz = (GLuint) fread(buf, 1, sizeof(buf) - 1, f);
buf[sizeof(buf) - 1] = '\0';
if (!feof(f)) {
fprintf(stderr, "file too long\n");
fclose(f);

View file

@ -41,6 +41,12 @@
#define MAP_ANONYMOUS MAP_ANON
#endif
#if defined(PIPE_OS_WINDOWS)
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN 1
#endif
#include <windows.h>
#endif
#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS)
@ -118,7 +124,29 @@ rtasm_exec_free(void *addr)
}
#else /* PIPE_OS_LINUX || PIPE_OS_BSD || PIPE_OS_SOLARIS */
#elif defined(PIPE_OS_WINDOWS)
/*
* Avoid Data Execution Prevention.
*/
void *
rtasm_exec_malloc(size_t size)
{
return VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
}
void
rtasm_exec_free(void *addr)
{
VirtualFree(addr, 0, MEM_RELEASE);
}
#else
/*
* Just use regular memory.
@ -138,4 +166,4 @@ rtasm_exec_free(void *addr)
}
#endif /* PIPE_OS_LINUX || PIPE_OS_BSD || PIPE_OS_SOLARIS */
#endif

View file

@ -97,12 +97,12 @@ util_bitmask_resize(struct util_bitmask *bm,
if(!minimum_size)
return FALSE;
if(bm->size > minimum_size)
if(bm->size >= minimum_size)
return TRUE;
assert(bm->size % UTIL_BITMASK_BITS_PER_WORD == 0);
new_size = bm->size;
while(!(new_size > minimum_size)) {
while(new_size < minimum_size) {
new_size *= 2;
/* Check integer overflow */
if(new_size < bm->size)
@ -136,7 +136,7 @@ util_bitmask_filled_set(struct util_bitmask *bm,
unsigned index)
{
assert(bm->filled <= bm->size);
assert(index <= bm->size);
assert(index < bm->size);
if(index == bm->filled) {
++bm->filled;
@ -149,7 +149,7 @@ util_bitmask_filled_unset(struct util_bitmask *bm,
unsigned index)
{
assert(bm->filled <= bm->size);
assert(index <= bm->size);
assert(index < bm->size);
if(index < bm->filled)
bm->filled = index;
@ -182,7 +182,7 @@ util_bitmask_add(struct util_bitmask *bm)
mask = 1;
}
found:
/* grow the bitmask if necessary */
if(!util_bitmask_resize(bm, bm->filled))
return UTIL_BITMASK_INVALID_INDEX;
@ -198,9 +198,9 @@ unsigned
util_bitmask_set(struct util_bitmask *bm,
unsigned index)
{
unsigned word = index / UTIL_BITMASK_BITS_PER_WORD;
unsigned bit = index % UTIL_BITMASK_BITS_PER_WORD;
util_bitmask_word mask = 1 << bit;
unsigned word;
unsigned bit;
util_bitmask_word mask;
assert(bm);
@ -208,6 +208,10 @@ util_bitmask_set(struct util_bitmask *bm,
if(!util_bitmask_resize(bm, index))
return UTIL_BITMASK_INVALID_INDEX;
word = index / UTIL_BITMASK_BITS_PER_WORD;
bit = index % UTIL_BITMASK_BITS_PER_WORD;
mask = 1 << bit;
bm->words[word] |= mask;
util_bitmask_filled_set(bm, index);
@ -220,15 +224,19 @@ void
util_bitmask_clear(struct util_bitmask *bm,
unsigned index)
{
unsigned word = index / UTIL_BITMASK_BITS_PER_WORD;
unsigned bit = index % UTIL_BITMASK_BITS_PER_WORD;
util_bitmask_word mask = 1 << bit;
unsigned word;
unsigned bit;
util_bitmask_word mask;
assert(bm);
if(index >= bm->size)
return;
word = index / UTIL_BITMASK_BITS_PER_WORD;
bit = index % UTIL_BITMASK_BITS_PER_WORD;
mask = 1 << bit;
bm->words[word] &= ~mask;
util_bitmask_filled_unset(bm, index);
@ -250,7 +258,7 @@ util_bitmask_get(struct util_bitmask *bm,
return TRUE;
}
if(index > bm->size)
if(index >= bm->size)
return FALSE;
if(bm->words[word] & mask) {

View file

@ -297,9 +297,9 @@ debug_memory_end(unsigned long start_no)
if((start_no <= hdr->no && hdr->no < last_no) ||
(last_no < start_no && (hdr->no < last_no || start_no <= hdr->no))) {
debug_printf("%s:%u:%s: %u bytes at %p not freed\n",
debug_printf("%s:%u:%s: %lu bytes at %p not freed\n",
hdr->file, hdr->line, hdr->function,
hdr->size, ptr);
(unsigned long) hdr->size, ptr);
#if DEBUG_MEMORY_STACK
debug_backtrace_dump(hdr->backtrace, DEBUG_MEMORY_STACK);
#endif
@ -315,8 +315,8 @@ debug_memory_end(unsigned long start_no)
}
if(total_size) {
debug_printf("Total of %u KB of system memory apparently leaked\n",
(total_size + 1023)/1024);
debug_printf("Total of %lu KB of system memory apparently leaked\n",
(unsigned long) (total_size + 1023)/1024);
}
else {
debug_printf("No memory leaks detected.\n");

View file

@ -117,7 +117,7 @@ u_socket_connect(const char *hostname, uint16_t port)
if (!host)
return -1;
memcpy((char *)&sa.sin_addr,host->h_addr,host->h_length);
memcpy((char *)&sa.sin_addr,host->h_addr_list[0],host->h_length);
sa.sin_family= host->h_addrtype;
sa.sin_port = htons(port);

View file

@ -142,7 +142,7 @@ lp_build_blend_factor_unswizzled(struct lp_build_blend_aos_context *bld,
enum lp_build_blend_swizzle {
LP_BUILD_BLEND_SWIZZLE_RGBA = 0,
LP_BUILD_BLEND_SWIZZLE_AAAA = 1,
LP_BUILD_BLEND_SWIZZLE_AAAA = 1
};

View file

@ -47,7 +47,7 @@
*/
enum lp_build_flow_construct_kind {
lP_BUILD_FLOW_SCOPE,
LP_BUILD_FLOW_SKIP,
LP_BUILD_FLOW_SKIP
};

View file

@ -330,7 +330,7 @@ test_one(unsigned verbose,
fprintf(stderr, "conv.bc written\n");
fprintf(stderr, "Invoke as \"llc -o - conv.bc\"\n");
firsttime = FALSE;
//abort();
/* abort(); */
}
}

View file

@ -997,7 +997,7 @@ validate:
goto validate;
}
} else {
// debug_printf("No VBO while emitting dirty state!\n");
/* debug_printf("No VBO while emitting dirty state!\n"); */
}
if (!r300->winsys->validate(r300->winsys)) {
r300->context.flush(&r300->context, 0, NULL);
@ -1129,7 +1129,7 @@ validate:
*/
/* Finally, emit the VBO. */
//r300_emit_vertex_buffer(r300);
/* r300_emit_vertex_buffer(r300); */
r300->dirty_hw++;
}

View file

@ -2638,7 +2638,7 @@ enum {
VE_COND_MUX_GTE = 25,
VE_SET_GREATER_THAN = 26,
VE_SET_EQUAL = 27,
VE_SET_NOT_EQUAL = 28,
VE_SET_NOT_EQUAL = 28
};
enum {
@ -2672,20 +2672,20 @@ enum {
ME_PRED_SET_CLR = 25,
ME_PRED_SET_INV = 26,
ME_PRED_SET_POP = 27,
ME_PRED_SET_RESTORE = 28,
ME_PRED_SET_RESTORE = 28
};
enum {
/* R3XX */
PVS_MACRO_OP_2CLK_MADD = 0,
PVS_MACRO_OP_2CLK_M2X_ADD = 1,
PVS_MACRO_OP_2CLK_M2X_ADD = 1
};
enum {
PVS_SRC_REG_TEMPORARY = 0, /* Intermediate Storage */
PVS_SRC_REG_INPUT = 1, /* Input Vertex Storage */
PVS_SRC_REG_CONSTANT = 2, /* Constant State Storage */
PVS_SRC_REG_ALT_TEMPORARY = 3, /* Alternate Intermediate Storage */
PVS_SRC_REG_ALT_TEMPORARY = 3 /* Alternate Intermediate Storage */
};
enum {
@ -2694,7 +2694,7 @@ enum {
PVS_DST_REG_OUT = 2, /* Output Memory. Used for all outputs */
PVS_DST_REG_OUT_REPL_X = 3, /* Output Memory & Replicate X to all channels */
PVS_DST_REG_ALT_TEMPORARY = 4, /* Alternate Intermediate Storage */
PVS_DST_REG_INPUT = 5, /* Output Memory & Replicate X to all channels */
PVS_DST_REG_INPUT = 5 /* Output Memory & Replicate X to all channels */
};
enum {
@ -2703,7 +2703,7 @@ enum {
PVS_SRC_SELECT_Z = 2, /* Select Z Component */
PVS_SRC_SELECT_W = 3, /* Select W Component */
PVS_SRC_SELECT_FORCE_0 = 4, /* Force Component to 0.0 */
PVS_SRC_SELECT_FORCE_1 = 5, /* Force Component to 1.0 */
PVS_SRC_SELECT_FORCE_1 = 5 /* Force Component to 1.0 */
};
/* PVS Opcode & Destination Operand Description */
@ -2742,7 +2742,7 @@ enum {
PVS_DST_ADDR_SEL_MASK = 0x3,
PVS_DST_ADDR_SEL_SHIFT = 29,
PVS_DST_ADDR_MODE_0_MASK = 0x1,
PVS_DST_ADDR_MODE_0_SHIFT = 31,
PVS_DST_ADDR_MODE_0_SHIFT = 31
};
/* PVS Source Operand Description */
@ -2777,7 +2777,7 @@ enum {
PVS_SRC_ADDR_SEL_MASK = 0x3,
PVS_SRC_ADDR_SEL_SHIFT = 29,
PVS_SRC_ADDR_MODE_1_MASK = 0x0,
PVS_SRC_ADDR_MODE_1_SHIFT = 32,
PVS_SRC_ADDR_MODE_1_SHIFT = 32
};
/*\}*/

View file

@ -29,6 +29,7 @@
#include "pipe/p_inlines.h"
#include "pipe/p_screen.h"
#include "util/u_memory.h"
#include "util/u_bitmask.h"
#include "util/u_upload_mgr.h"
#include "svga_context.h"
@ -61,6 +62,9 @@ static void svga_destroy( struct pipe_context *pipe )
u_upload_destroy( svga->upload_vb );
u_upload_destroy( svga->upload_ib );
util_bitmask_destroy( svga->vs_bm );
util_bitmask_destroy( svga->fs_bm );
for(shader = 0; shader < PIPE_SHADER_TYPES; ++shader)
pipe_buffer_reference( &svga->curr.cb[shader], NULL );
@ -130,7 +134,7 @@ struct pipe_context *svga_context_create( struct pipe_screen *screen )
svga = CALLOC_STRUCT(svga_context);
if (svga == NULL)
goto error1;
goto no_svga;
svga->pipe.winsys = screen->winsys;
svga->pipe.screen = screen;
@ -142,7 +146,7 @@ struct pipe_context *svga_context_create( struct pipe_screen *screen )
svga->swc = svgascreen->sws->context_create(svgascreen->sws);
if(!svga->swc)
goto error2;
goto no_swc;
svga_init_blend_functions(svga);
svga_init_blit_functions(svga);
@ -165,32 +169,40 @@ struct pipe_context *svga_context_create( struct pipe_screen *screen )
svga->debug.disable_shader = debug_get_num_option("SVGA_DISABLE_SHADER", ~0);
if (!svga_init_swtnl(svga))
goto error3;
goto no_swtnl;
svga->fs_bm = util_bitmask_create();
if (svga->fs_bm == NULL)
goto no_fs_bm;
svga->vs_bm = util_bitmask_create();
if (svga->vs_bm == NULL)
goto no_vs_bm;
svga->upload_ib = u_upload_create( svga->pipe.screen,
32 * 1024,
16,
PIPE_BUFFER_USAGE_INDEX );
if (svga->upload_ib == NULL)
goto error4;
goto no_upload_ib;
svga->upload_vb = u_upload_create( svga->pipe.screen,
128 * 1024,
16,
PIPE_BUFFER_USAGE_VERTEX );
if (svga->upload_vb == NULL)
goto error5;
goto no_upload_vb;
svga->hwtnl = svga_hwtnl_create( svga,
svga->upload_ib,
svga->swc );
if (svga->hwtnl == NULL)
goto error6;
goto no_hwtnl;
ret = svga_emit_initial_state( svga );
if (ret)
goto error7;
goto no_state;
/* Avoid shortcircuiting state with initial value of zero.
*/
@ -209,19 +221,23 @@ struct pipe_context *svga_context_create( struct pipe_screen *screen )
return &svga->pipe;
error7:
no_state:
svga_hwtnl_destroy( svga->hwtnl );
error6:
no_hwtnl:
u_upload_destroy( svga->upload_vb );
error5:
no_upload_vb:
u_upload_destroy( svga->upload_ib );
error4:
no_upload_ib:
util_bitmask_destroy( svga->vs_bm );
no_vs_bm:
util_bitmask_destroy( svga->fs_bm );
no_fs_bm:
svga_destroy_swtnl(svga);
error3:
no_swtnl:
svga->swc->destroy(svga->swc);
error2:
no_swc:
FREE(svga);
error1:
no_svga:
return NULL;
}

View file

@ -41,6 +41,7 @@
struct draw_vertex_shader;
struct svga_shader_result;
struct SVGACmdMemory;
struct util_bitmask;
struct u_upload_mgr;
@ -319,12 +320,14 @@ struct svga_context
boolean new_vdecl;
} swtnl;
/* Bitmask of used shader IDs */
struct util_bitmask *fs_bm;
struct util_bitmask *vs_bm;
struct {
unsigned dirty[4];
unsigned texture_timestamp;
unsigned next_fs_id;
unsigned next_vs_id;
/* Internally generated shaders:
*/

View file

@ -164,7 +164,8 @@ svga_hwtnl_flush( struct svga_hwtnl *hwtnl )
}
SVGA_DBG(DEBUG_DMA, "draw to sid %p, %d prims\n",
svga_surface(svga->curr.framebuffer.cbufs[0])->handle,
svga->curr.framebuffer.cbufs[0] ?
svga_surface(svga->curr.framebuffer.cbufs[0])->handle : NULL,
hwtnl->cmd.prim_count);
ret = SVGA3D_BeginDrawPrimitives(swc,

View file

@ -26,6 +26,7 @@
#include "pipe/p_inlines.h"
#include "util/u_math.h"
#include "util/u_memory.h"
#include "util/u_bitmask.h"
#include "tgsi/tgsi_parse.h"
#include "tgsi/tgsi_text.h"
@ -107,6 +108,8 @@ void svga_delete_fs_state(struct pipe_context *pipe, void *shader)
assert(ret == PIPE_OK);
}
util_bitmask_clear( svga->fs_bm, result->id );
svga_destroy_shader_result( result );
}

View file

@ -27,6 +27,7 @@
#include "pipe/p_inlines.h"
#include "util/u_math.h"
#include "util/u_memory.h"
#include "util/u_bitmask.h"
#include "tgsi/tgsi_parse.h"
#include "tgsi/tgsi_text.h"
@ -172,6 +173,8 @@ static void svga_delete_vs_state(struct pipe_context *pipe, void *shader)
assert(ret == PIPE_OK);
}
util_bitmask_clear( svga->vs_bm, result->id );
svga_destroy_shader_result( result );
}

View file

@ -26,6 +26,7 @@
#include "pipe/p_inlines.h"
#include "pipe/p_defines.h"
#include "util/u_math.h"
#include "util/u_bitmask.h"
#include "svga_context.h"
#include "svga_state.h"
@ -74,9 +75,12 @@ static enum pipe_error compile_fs( struct svga_context *svga,
goto fail;
}
result->id = util_bitmask_add(svga->fs_bm);
if(result->id == UTIL_BITMASK_INVALID_INDEX)
goto fail;
ret = SVGA3D_DefineShader(svga->swc,
svga->state.next_fs_id,
result->id,
SVGA3D_SHADERTYPE_PS,
result->tokens,
result->nr_tokens * sizeof result->tokens[0]);
@ -84,14 +88,16 @@ static enum pipe_error compile_fs( struct svga_context *svga,
goto fail;
*out_result = result;
result->id = svga->state.next_fs_id++;
result->next = fs->base.results;
fs->base.results = result;
return PIPE_OK;
fail:
if (result)
if (result) {
if (result->id != UTIL_BITMASK_INVALID_INDEX)
util_bitmask_clear( svga->fs_bm, result->id );
svga_destroy_shader_result( result );
}
return ret;
}
@ -116,7 +122,7 @@ fail:
*/
static int emit_white_fs( struct svga_context *svga )
{
int ret;
int ret = PIPE_ERROR;
/* ps_3_0
* def c0, 1.000000, 0.000000, 0.000000, 1.000000
@ -137,16 +143,26 @@ static int emit_white_fs( struct svga_context *svga )
0x0000ffff,
};
assert(SVGA3D_INVALID_ID == UTIL_BITMASK_INVALID_INDEX);
svga->state.white_fs_id = util_bitmask_add(svga->fs_bm);
if(svga->state.white_fs_id == SVGA3D_INVALID_ID)
goto no_fs_id;
ret = SVGA3D_DefineShader(svga->swc,
svga->state.next_fs_id,
svga->state.white_fs_id,
SVGA3D_SHADERTYPE_PS,
white_tokens,
sizeof(white_tokens));
if (ret)
return ret;
goto no_definition;
svga->state.white_fs_id = svga->state.next_fs_id++;
return 0;
no_definition:
util_bitmask_clear(svga->fs_bm, svga->state.white_fs_id);
svga->state.white_fs_id = SVGA3D_INVALID_ID;
no_fs_id:
return ret;
}
@ -251,12 +267,14 @@ static int emit_hw_fs( struct svga_context *svga,
assert(id != SVGA3D_INVALID_ID);
if (id != svga->state.hw_draw.shader_id[PIPE_SHADER_FRAGMENT]) {
ret = SVGA3D_SetShader(svga->swc,
SVGA3D_SHADERTYPE_PS,
id );
if (ret)
return ret;
if (result != svga->state.hw_draw.fs) {
if (id != svga->state.hw_draw.shader_id[PIPE_SHADER_FRAGMENT]) {
ret = SVGA3D_SetShader(svga->swc,
SVGA3D_SHADERTYPE_PS,
id );
if (ret)
return ret;
}
svga->dirty |= SVGA_NEW_FS_RESULT;
svga->state.hw_draw.shader_id[PIPE_SHADER_FRAGMENT] = id;

View file

@ -27,6 +27,7 @@
#include "pipe/p_defines.h"
#include "util/u_format.h"
#include "util/u_math.h"
#include "util/u_bitmask.h"
#include "translate/translate.h"
#include "svga_context.h"
@ -78,8 +79,12 @@ static enum pipe_error compile_vs( struct svga_context *svga,
goto fail;
}
result->id = util_bitmask_add(svga->vs_bm);
if(result->id == UTIL_BITMASK_INVALID_INDEX)
goto fail;
ret = SVGA3D_DefineShader(svga->swc,
svga->state.next_vs_id,
result->id,
SVGA3D_SHADERTYPE_VS,
result->tokens,
result->nr_tokens * sizeof result->tokens[0]);
@ -87,14 +92,16 @@ static enum pipe_error compile_vs( struct svga_context *svga,
goto fail;
*out_result = result;
result->id = svga->state.next_vs_id++;
result->next = vs->base.results;
vs->base.results = result;
return PIPE_OK;
fail:
if (result)
if (result) {
if (result->id != UTIL_BITMASK_INVALID_INDEX)
util_bitmask_clear( svga->vs_bm, result->id );
svga_destroy_shader_result( result );
}
return ret;
}
@ -142,12 +149,14 @@ static int emit_hw_vs( struct svga_context *svga,
id = result->id;
}
if (id != svga->state.hw_draw.shader_id[PIPE_SHADER_VERTEX]) {
ret = SVGA3D_SetShader(svga->swc,
SVGA3D_SHADERTYPE_VS,
id );
if (ret)
return ret;
if (result != svga->state.hw_draw.vs) {
if (id != svga->state.hw_draw.shader_id[PIPE_SHADER_VERTEX]) {
ret = SVGA3D_SetShader(svga->swc,
SVGA3D_SHADERTYPE_VS,
id );
if (ret)
return ret;
}
svga->dirty |= SVGA_NEW_VS_RESULT;
svga->state.hw_draw.shader_id[PIPE_SHADER_VERTEX] = id;

View file

@ -31,6 +31,7 @@
#include "tgsi/tgsi_dump.h"
#include "tgsi/tgsi_scan.h"
#include "util/u_memory.h"
#include "util/u_bitmask.h"
#include "svgadump/svga_shader_dump.h"
@ -221,6 +222,7 @@ svga_tgsi_translate( const struct svga_shader *shader,
result->tokens = (const unsigned *)emit.buf;
result->nr_tokens = (emit.ptr - emit.buf) / sizeof(unsigned);
memcpy(&result->key, &key, sizeof key);
result->id = UTIL_BITMASK_INVALID_INDEX;
if (SVGA_DEBUG & DEBUG_TGSI)
{

View file

@ -32,7 +32,7 @@ struct tgsi_token;
enum trace_shader_type {
TRACE_SHADER_FRAGMENT = 0,
TRACE_SHADER_VERTEX = 1,
TRACE_SHADER_GEOMETRY = 2,
TRACE_SHADER_GEOMETRY = 2
};
struct trace_shader

View file

@ -123,7 +123,8 @@ crtc_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
drm_mode.vrefresh = mode->VRefresh;
if (!mode->name)
xf86SetModeDefaultName(mode);
strncpy(drm_mode.name, mode->name, DRM_DISPLAY_MODE_LEN);
strncpy(drm_mode.name, mode->name, DRM_DISPLAY_MODE_LEN - 1);
drm_mode.name[DRM_DISPLAY_MODE_LEN - 1] = '\0';
ret = drmModeSetCrtc(ms->fd, drm_crtc->crtc_id, ms->fb_id, x, y,
&drm_connector->connector_id, 1, &drm_mode);

View file

@ -181,8 +181,7 @@ drv_crtc_resize(ScrnInfoPtr pScrn, int width, int height)
if (!pScreen->ModifyPixmapHeader(rootPixmap, width, height, -1, -1, -1, NULL))
return FALSE;
/* HW dependent - FIXME */
pScrn->displayWidth = pScrn->virtualX;
pScrn->displayWidth = rootPixmap->devKind / (rootPixmap->drawable.bitsPerPixel / 8);
/* now create new frontbuffer */
return ms->create_front_buffer(pScrn) && ms->bind_front_buffer(pScrn);

View file

@ -44,6 +44,7 @@ if env['platform'] == 'linux':
sources = [
'vmw_ioctl.c',
'vmw_screen.c',
'vmw_video.c',
'vmw_xorg.c',
]

View file

@ -59,6 +59,7 @@ Dlnode::Dlnode( PFVS _work, void *_arg, PFVS _cleanup )
work = _work;
arg = _arg;
cleanup = _cleanup;
next = 0;
}
class DisplayList {

View file

@ -61,6 +61,9 @@ void Knotvector::init( long _knotcount, long _stride, long _order, INREAL *_knot
Knotvector::Knotvector( void )
{
knotcount = 0;
stride = 0;
order = 0;
knotlist = 0;
}

View file

@ -64,7 +64,7 @@ struct O_curve : public PooledObj {
int save; /* 1 if in display list */
long nuid;
O_curve() { next = 0; used = 0; owner = 0;
curve.o_pwlcurve = 0; }
curve.o_pwlcurve = 0; curvetype = ct_none; save = 0; nuid = 0; }
};
struct O_nurbscurve : public PooledObj {
@ -77,7 +77,7 @@ struct O_nurbscurve : public PooledObj {
int save; /* 1 if in display list */
O_curve * owner; /* owning curve */
O_nurbscurve( long _type )
{ type = _type; owner = 0; next = 0; used = 0; }
{ bezier_curves = 0; type = _type; tesselation = 0; method = 0; next = 0; used = 0; save = 0; owner = 0; }
};
class O_pwlcurve : public PooledObj {
@ -95,7 +95,7 @@ struct O_trim : public PooledObj {
O_curve *o_curve; /* closed trim loop */
O_trim * next; /* next loop along trim */
int save; /* 1 if in display list */
O_trim() { next = 0; o_curve = 0; }
O_trim() { next = 0; o_curve = 0; save = 0; }
};
struct O_nurbssurface : public PooledObj {
@ -114,7 +114,7 @@ struct O_surface : public PooledObj {
O_trim * o_trim; /* list of trim loops */
int save; /* 1 if in display list */
long nuid;
O_surface() { o_trim = 0; o_nurbssurface = 0; }
O_surface() { o_trim = 0; o_nurbssurface = 0; save = 0; nuid = 0; }
};
struct Property : public PooledObj {
@ -123,9 +123,9 @@ struct Property : public PooledObj {
REAL value;
int save; /* 1 if in display list */
Property( long _type, long _tag, INREAL _value )
{ type = _type; tag = _tag; value = (REAL) _value; }
{ type = _type; tag = _tag; value = (REAL) _value; save = 0; }
Property( long _tag, INREAL _value )
{ type = 0; tag = _tag; value = (REAL) _value; }
{ type = 0; tag = _tag; value = (REAL) _value; save = 0; }
};
class NurbsTessellator;

View file

@ -280,8 +280,6 @@ static const __DRIextension *loader_extensions[] = {
NULL
};
#ifndef GLX_USE_APPLEGL
/**
* Perform the required libGL-side initialization and call the client-side
* driver's \c __driCreateNewScreen function.
@ -475,17 +473,6 @@ CallCreateNewScreen(Display * dpy, int scrn, __GLXscreenConfigs * psc,
return NULL;
}
#else /* !GLX_USE_APPLEGL */
static void *
CallCreateNewScreen(Display * dpy, int scrn, __GLXscreenConfigs * psc,
__GLXDRIdisplayPrivate * driDpy)
{
return NULL;
}
#endif /* !GLX_USE_APPLEGL */
static void
driDestroyContext(__GLXDRIcontext * context,
__GLXscreenConfigs * psc, Display * dpy)

View file

@ -2575,7 +2575,7 @@ glXAllocateMemoryMESA(Display * dpy, int scrn,
(void) readFreq;
(void) writeFreq;
(void) priority;
#endif /* GLX_DIRECT_RENDERING */
#endif /* __DRI_ALLOCATE */
return NULL;
}
@ -2594,7 +2594,7 @@ glXFreeMemoryMESA(Display * dpy, int scrn, void *pointer)
(void) dpy;
(void) scrn;
(void) pointer;
#endif /* GLX_DIRECT_RENDERING */
#endif /* __DRI_ALLOCATE */
}

View file

@ -475,13 +475,6 @@ MakeContextCurrent(Display * dpy, GLXDrawable draw,
IndirectAPI = __glXNewIndirectAPI();
_glapi_set_dispatch(IndirectAPI);
#ifdef GLX_USE_APPLEGL
do {
extern void XAppleDRIUseIndirectDispatch(void);
XAppleDRIUseIndirectDispatch();
} while (0);
#endif
state = (__GLXattribute *) (gc->client_state_private);
gc->currentContextTag = reply.contextTag;

View file

@ -29,7 +29,6 @@
#include "main/mtypes.h"
#include "main/mm.h"
#include "i810context.h"
#include "i810_3d_reg.h"
#include "texmem.h"

View file

@ -197,10 +197,11 @@ i915_update_tex_unit(struct intel_context *intel, GLuint unit, GLuint ss3)
state[I915_TEXREG_MS3] |= MS3_TILE_WALK;
}
/* We get one field with fraction bits to cover the maximum addressable (smallest
* resolution) LOD. Use it to cover both MAX_LEVEL and MAX_LOD.
/* We get one field with fraction bits for the maximum addressable
* (lowest resolution) LOD. Use it to cover both MAX_LEVEL and
* MAX_LOD.
*/
maxlod = MIN2(tObj->MaxLod, tObj->MaxLevel - tObj->BaseLevel);
maxlod = MIN2(tObj->MaxLod, tObj->_MaxLevel - tObj->BaseLevel);
state[I915_TEXREG_MS4] =
((((pitch / 4) - 1) << MS4_PITCH_SHIFT) |
MS4_CUBE_FACE_ENA_MASK |

View file

@ -522,7 +522,8 @@ brw_update_renderbuffer_surface(struct brw_context *brw,
GLubyte color_mask[4];
GLboolean color_blend;
uint32_t tiling;
uint32_t draw_offset;
uint32_t draw_x;
uint32_t draw_y;
} key;
memset(&key, 0, sizeof(key));
@ -564,7 +565,8 @@ brw_update_renderbuffer_surface(struct brw_context *brw,
}
key.pitch = region->pitch;
key.cpp = region->cpp;
key.draw_offset = region->draw_offset; /* cur 3d or cube face offset */
key.draw_x = region->draw_x;
key.draw_y = region->draw_y;
} else {
key.surface_type = BRW_SURFACE_NULL;
key.surface_format = BRW_SURFACEFORMAT_B8G8R8A8_UNORM;
@ -572,7 +574,8 @@ brw_update_renderbuffer_surface(struct brw_context *brw,
key.width = 1;
key.height = 1;
key.cpp = 4;
key.draw_offset = 0;
key.draw_x = 0;
key.draw_y = 0;
}
/* _NEW_COLOR */
memcpy(key.color_mask, ctx->Color.ColorMask[0],
@ -602,26 +605,32 @@ brw_update_renderbuffer_surface(struct brw_context *brw,
surf.ss0.surface_format = key.surface_format;
surf.ss0.surface_type = key.surface_type;
if (key.tiling == I915_TILING_NONE) {
surf.ss1.base_addr = key.draw_offset;
surf.ss1.base_addr = (key.draw_x + key.draw_y * key.pitch) * key.cpp;
} else {
uint32_t tile_offset = key.draw_offset % 4096;
uint32_t tile_base, tile_x, tile_y;
uint32_t pitch = key.pitch * key.cpp;
surf.ss1.base_addr = key.draw_offset - tile_offset;
if (brw->has_surface_tile_offset) {
if (key.tiling == I915_TILING_X) {
/* Note that the low bits of these fields are missing, so
* there's the possibility of getting in trouble.
*/
surf.ss5.x_offset = (tile_offset % 512) / key.cpp / 4;
surf.ss5.y_offset = tile_offset / 512 / 2;
} else {
surf.ss5.x_offset = (tile_offset % 128) / key.cpp / 4;
surf.ss5.y_offset = tile_offset / 128 / 2;
}
if (key.tiling == I915_TILING_X) {
tile_x = key.draw_x % (512 / key.cpp);
tile_y = key.draw_y % 8;
tile_base = ((key.draw_y / 8) * (8 * pitch));
tile_base += (key.draw_x - tile_x) / (512 / key.cpp) * 4096;
} else {
assert(tile_offset == 0);
/* Y */
tile_x = key.draw_x % (128 / key.cpp);
tile_y = key.draw_y % 32;
tile_base = ((key.draw_y / 32) * (32 * pitch));
tile_base += (key.draw_x - tile_x) / (128 / key.cpp) * 4096;
}
assert(BRW_IS_G4X(brw) || (tile_x == 0 && tile_y == 0));
assert(tile_x % 4 == 0);
assert(tile_y % 2 == 0);
/* Note that the low bits of these fields are missing, so
* there's the possibility of getting in trouble.
*/
surf.ss1.base_addr = tile_base;
surf.ss5.x_offset = tile_x / 4;
surf.ss5.y_offset = tile_y / 2;
}
if (region_bo != NULL)
surf.ss1.base_addr += region_bo->offset; /* reloc */

View file

@ -160,13 +160,14 @@ do_copy_texsubimage(struct intel_context *intel,
intelImage->mt->cpp,
src_pitch,
src->buffer,
src->draw_offset,
0,
src->tiling,
intelImage->mt->pitch,
dst_bo,
0,
intelImage->mt->region->tiling,
x, y, image_x + dstx, image_y + dsty,
src->draw_x + x, src->draw_y + y,
image_x + dstx, image_y + dsty,
width, height,
GL_COPY)) {
UNLOCK_HARDWARE(intel);

View file

@ -71,12 +71,14 @@ static void refill_pool(struct memory_pool * pool)
void * memory_pool_malloc(struct memory_pool * pool, unsigned int bytes)
{
if (bytes < POOL_LARGE_ALLOC) {
void * ptr;
if (pool->head + bytes > pool->end)
refill_pool(pool);
assert(pool->head + bytes <= pool->end);
void * ptr = pool->head;
ptr = pool->head;
pool->head += bytes;
pool->head = (unsigned char*)(((unsigned long)pool->head + POOL_ALIGN - 1) & ~(POOL_ALIGN - 1));

View file

@ -143,7 +143,8 @@ unsigned rc_constants_add_immediate_scalar(struct rc_constant_list * c, float da
for(index = 0; index < c->Count; ++index) {
if (c->Constants[index].Type == RC_CONSTANT_IMMEDIATE) {
for(unsigned comp = 0; comp < c->Constants[index].Size; ++comp) {
unsigned comp;
for(comp = 0; comp < c->Constants[index].Size; ++comp) {
if (c->Constants[index].u.Immediate[comp] == data) {
*swizzle = RC_MAKE_SWIZZLE(comp, comp, comp, comp);
return index;

View file

@ -232,12 +232,16 @@ void rc_copy_output(struct radeon_compiler * c, unsigned output, unsigned dup_ou
void rc_transform_fragment_wpos(struct radeon_compiler * c, unsigned wpos, unsigned new_input)
{
unsigned tempregi = rc_find_free_temporary(c);
struct rc_instruction * inst_rcp;
struct rc_instruction * inst_mul;
struct rc_instruction * inst_mad;
struct rc_instruction * inst;
c->Program.InputsRead &= ~(1 << wpos);
c->Program.InputsRead |= 1 << new_input;
/* perspective divide */
struct rc_instruction * inst_rcp = rc_insert_new_instruction(c, &c->Program.Instructions);
inst_rcp = rc_insert_new_instruction(c, &c->Program.Instructions);
inst_rcp->U.I.Opcode = RC_OPCODE_RCP;
inst_rcp->U.I.DstReg.File = RC_FILE_TEMPORARY;
@ -248,7 +252,7 @@ void rc_transform_fragment_wpos(struct radeon_compiler * c, unsigned wpos, unsig
inst_rcp->U.I.SrcReg[0].Index = new_input;
inst_rcp->U.I.SrcReg[0].Swizzle = RC_SWIZZLE_WWWW;
struct rc_instruction * inst_mul = rc_insert_new_instruction(c, inst_rcp);
inst_mul = rc_insert_new_instruction(c, inst_rcp);
inst_mul->U.I.Opcode = RC_OPCODE_MUL;
inst_mul->U.I.DstReg.File = RC_FILE_TEMPORARY;
@ -263,7 +267,7 @@ void rc_transform_fragment_wpos(struct radeon_compiler * c, unsigned wpos, unsig
inst_mul->U.I.SrcReg[1].Swizzle = RC_SWIZZLE_WWWW;
/* viewport transformation */
struct rc_instruction * inst_mad = rc_insert_new_instruction(c, inst_mul);
inst_mad = rc_insert_new_instruction(c, inst_mul);
inst_mad->U.I.Opcode = RC_OPCODE_MAD;
inst_mad->U.I.DstReg.File = RC_FILE_TEMPORARY;
@ -282,7 +286,6 @@ void rc_transform_fragment_wpos(struct radeon_compiler * c, unsigned wpos, unsig
inst_mad->U.I.SrcReg[2].Index = inst_mad->U.I.SrcReg[1].Index;
inst_mad->U.I.SrcReg[2].Swizzle = RC_MAKE_SWIZZLE(RC_SWIZZLE_X, RC_SWIZZLE_Y, RC_SWIZZLE_Z, RC_SWIZZLE_ZERO);
struct rc_instruction * inst;
for (inst = inst_mad->Next; inst != &c->Program.Instructions; inst = inst->Next) {
const struct rc_opcode_info * opcode = rc_get_opcode_info(inst->U.I.Opcode);
unsigned i;

View file

@ -267,9 +267,9 @@ static void transform_LIT(struct radeon_compiler* c,
temp = inst->U.I.DstReg.Index;
srctemp = srcreg(RC_FILE_TEMPORARY, temp);
// tmp.x = max(0.0, Src.x);
// tmp.y = max(0.0, Src.y);
// tmp.w = clamp(Src.z, -128+eps, 128-eps);
/* tmp.x = max(0.0, Src.x); */
/* tmp.y = max(0.0, Src.y); */
/* tmp.w = clamp(Src.z, -128+eps, 128-eps); */
emit2(c, inst->Prev, RC_OPCODE_MAX, 0,
dstregtmpmask(temp, RC_MASK_XYW),
inst->U.I.SrcReg[0],
@ -280,7 +280,7 @@ static void transform_LIT(struct radeon_compiler* c,
swizzle(srctemp, RC_SWIZZLE_W, RC_SWIZZLE_W, RC_SWIZZLE_W, RC_SWIZZLE_W),
negate(srcregswz(RC_FILE_CONSTANT, constant, constant_swizzle)));
// tmp.w = Pow(tmp.y, tmp.w)
/* tmp.w = Pow(tmp.y, tmp.w) */
emit1(c, inst->Prev, RC_OPCODE_LG2, 0,
dstregtmpmask(temp, RC_MASK_W),
swizzle(srctemp, RC_SWIZZLE_Y, RC_SWIZZLE_Y, RC_SWIZZLE_Y, RC_SWIZZLE_Y));
@ -292,14 +292,14 @@ static void transform_LIT(struct radeon_compiler* c,
dstregtmpmask(temp, RC_MASK_W),
swizzle(srctemp, RC_SWIZZLE_W, RC_SWIZZLE_W, RC_SWIZZLE_W, RC_SWIZZLE_W));
// tmp.z = (tmp.x > 0) ? tmp.w : 0.0
/* tmp.z = (tmp.x > 0) ? tmp.w : 0.0 */
emit3(c, inst->Prev, RC_OPCODE_CMP, inst->U.I.SaturateMode,
dstregtmpmask(temp, RC_MASK_Z),
negate(swizzle(srctemp, RC_SWIZZLE_X, RC_SWIZZLE_X, RC_SWIZZLE_X, RC_SWIZZLE_X)),
swizzle(srctemp, RC_SWIZZLE_W, RC_SWIZZLE_W, RC_SWIZZLE_W, RC_SWIZZLE_W),
builtin_zero);
// tmp.x, tmp.y, tmp.w = 1.0, tmp.x, 1.0
/* tmp.x, tmp.y, tmp.w = 1.0, tmp.x, 1.0 */
emit1(c, inst->Prev, RC_OPCODE_MOV, inst->U.I.SaturateMode,
dstregtmpmask(temp, RC_MASK_XYW),
swizzle(srctemp, RC_SWIZZLE_ONE, RC_SWIZZLE_X, RC_SWIZZLE_ONE, RC_SWIZZLE_ONE));
@ -533,16 +533,16 @@ static void sincos_constants(struct radeon_compiler* c, unsigned int *constants)
{
static const float SinCosConsts[2][4] = {
{
1.273239545, // 4/PI
-0.405284735, // -4/(PI*PI)
3.141592654, // PI
0.2225 // weight
1.273239545, /* 4/PI */
-0.405284735, /* -4/(PI*PI) */
3.141592654, /* PI */
0.2225 /* weight */
},
{
0.75,
0.5,
0.159154943, // 1/(2*PI)
6.283185307 // 2*PI
0.159154943, /* 1/(2*PI) */
6.283185307 /* 2*PI */
}
};
int i;
@ -602,9 +602,9 @@ int radeonTransformTrigSimple(struct radeon_compiler* c,
sincos_constants(c, constants);
if (inst->U.I.Opcode == RC_OPCODE_COS) {
// MAD tmp.x, src, 1/(2*PI), 0.75
// FRC tmp.x, tmp.x
// MAD tmp.z, tmp.x, 2*PI, -PI
/* MAD tmp.x, src, 1/(2*PI), 0.75 */
/* FRC tmp.x, tmp.x */
/* MAD tmp.z, tmp.x, 2*PI, -PI */
emit3(c, inst->Prev, RC_OPCODE_MAD, 0, dstregtmpmask(tempreg, RC_MASK_W),
swizzle(inst->U.I.SrcReg[0], RC_SWIZZLE_X, RC_SWIZZLE_X, RC_SWIZZLE_X, RC_SWIZZLE_X),
swizzle(srcreg(RC_FILE_CONSTANT, constants[1]), RC_SWIZZLE_Z, RC_SWIZZLE_Z, RC_SWIZZLE_Z, RC_SWIZZLE_Z),

View file

@ -83,6 +83,7 @@ static struct dri_extension card_extensions[] =
{ NULL, NULL }
};
#if 0
static struct dri_extension card_extensions_6326[] =
{
/*{ "GL_ARB_texture_border_clamp", NULL },*/
@ -90,6 +91,7 @@ static struct dri_extension card_extensions_6326[] =
/*{ "GL_MESA_ycbcr_texture", NULL },*/
{ NULL, NULL }
};
#endif
static const struct dri_debug_control debug_control[] =
{

View file

@ -33,8 +33,10 @@
<enum name="WAIT_FAILED" value="0x911D"/>
<enum name="SYNC_FLUSH_COMMANDS_BIT" value="0x00000001"/>
<enum name="TIMEOUT_IGNORED" value="0xFFFFFFFFFFFFFFFF"/>
<!-- Not really an enum:
<enum name="TIMEOUT_IGNORED" value="0xFFFFFFFFFFFFFFFF"/>
-->
<function name="FenceSync" offset="assign">

View file

@ -1077,22 +1077,39 @@ _mesa_PopAttrib(void)
_math_matrix_analyse( ctx->ModelviewMatrixStack.Top );
for (i = 0; i < ctx->Const.MaxLights; i++) {
const struct gl_light *l = &light->Light[i];
const struct gl_light *l = &light->Light[i];
_mesa_set_enable(ctx, GL_LIGHT0 + i, l->Enabled);
_mesa_light(ctx, i, GL_AMBIENT, l->Ambient);
_mesa_light(ctx, i, GL_DIFFUSE, l->Diffuse);
_mesa_light(ctx, i, GL_SPECULAR, l->Specular );
_mesa_light(ctx, i, GL_POSITION, l->EyePosition);
_mesa_light(ctx, i, GL_SPOT_DIRECTION, l->SpotDirection);
_mesa_light(ctx, i, GL_SPOT_EXPONENT, &l->SpotExponent);
_mesa_light(ctx, i, GL_SPOT_CUTOFF, &l->SpotCutoff);
_mesa_light(ctx, i, GL_CONSTANT_ATTENUATION,
&l->ConstantAttenuation);
_mesa_light(ctx, i, GL_LINEAR_ATTENUATION,
&l->LinearAttenuation);
_mesa_light(ctx, i, GL_QUADRATIC_ATTENUATION,
&l->QuadraticAttenuation);
}
_mesa_light(ctx, i, GL_AMBIENT, l->Ambient);
_mesa_light(ctx, i, GL_DIFFUSE, l->Diffuse);
_mesa_light(ctx, i, GL_SPECULAR, l->Specular );
_mesa_light(ctx, i, GL_POSITION, l->EyePosition);
_mesa_light(ctx, i, GL_SPOT_DIRECTION, l->SpotDirection);
{
GLfloat p[4] = { 0 };
p[0] = l->SpotExponent;
_mesa_light(ctx, i, GL_SPOT_EXPONENT, p);
}
{
GLfloat p[4] = { 0 };
p[0] = l->SpotCutoff;
_mesa_light(ctx, i, GL_SPOT_CUTOFF, p);
}
{
GLfloat p[4] = { 0 };
p[0] = l->ConstantAttenuation;
_mesa_light(ctx, i, GL_CONSTANT_ATTENUATION, p);
}
{
GLfloat p[4] = { 0 };
p[0] = l->LinearAttenuation;
_mesa_light(ctx, i, GL_LINEAR_ATTENUATION, p);
}
{
GLfloat p[4] = { 0 };
p[0] = l->QuadraticAttenuation;
_mesa_light(ctx, i, GL_QUADRATIC_ATTENUATION, p);
}
}
/* light model */
_mesa_LightModelfv(GL_LIGHT_MODEL_AMBIENT,
light->Model.Ambient);

View file

@ -37,8 +37,6 @@
* \author Brian Paul <brian@precisioninsight.com>
*/
#ifndef GLX_USE_APPLEGL
#include "main/glheader.h"
#include "main/compiler.h"
#include "glapi/glapi.h"
@ -92,5 +90,3 @@
#include "glapi/glapitemp.h"
#endif /* USE_X86_ASM */
#endif /* !GLX_USE_APPLEGL */

View file

@ -1791,7 +1791,6 @@ LONGSTRING static const char enum_string_table[] =
"GL_TEXTURE_WRAP_S\0"
"GL_TEXTURE_WRAP_T\0"
"GL_TIMEOUT_EXPIRED\0"
"GL_TIMEOUT_IGNORED\0"
"GL_TIME_ELAPSED_EXT\0"
"GL_TRACK_MATRIX_NV\0"
"GL_TRACK_MATRIX_TRANSFORM_NV\0"
@ -1923,7 +1922,7 @@ LONGSTRING static const char enum_string_table[] =
"GL_ZOOM_Y\0"
;
static const enum_elt all_enums[1885] =
static const enum_elt all_enums[1884] =
{
{ 0, 0x00000600 }, /* GL_2D */
{ 6, 0x00001407 }, /* GL_2_BYTES */
@ -3680,147 +3679,146 @@ static const enum_elt all_enums[1885] =
{ 37780, 0x00002802 }, /* GL_TEXTURE_WRAP_S */
{ 37798, 0x00002803 }, /* GL_TEXTURE_WRAP_T */
{ 37816, 0x0000911B }, /* GL_TIMEOUT_EXPIRED */
{ 37835, 0xFFFFFFFF }, /* GL_TIMEOUT_IGNORED */
{ 37854, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
{ 37874, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
{ 37893, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
{ 37922, 0x00001000 }, /* GL_TRANSFORM_BIT */
{ 37939, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
{ 37965, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
{ 37995, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
{ 38027, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
{ 38057, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
{ 38091, 0x0000862C }, /* GL_TRANSPOSE_NV */
{ 38107, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
{ 38138, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
{ 38173, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
{ 38201, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
{ 38233, 0x00000004 }, /* GL_TRIANGLES */
{ 38246, 0x00000006 }, /* GL_TRIANGLE_FAN */
{ 38262, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
{ 38283, 0x00000005 }, /* GL_TRIANGLE_STRIP */
{ 38301, 0x00000001 }, /* GL_TRUE */
{ 38309, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
{ 38329, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
{ 38352, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
{ 38372, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
{ 38393, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
{ 38415, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
{ 38437, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
{ 38457, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
{ 38478, 0x00009118 }, /* GL_UNSIGNALED */
{ 38492, 0x00001401 }, /* GL_UNSIGNED_BYTE */
{ 38509, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
{ 38536, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
{ 38559, 0x00001405 }, /* GL_UNSIGNED_INT */
{ 38575, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
{ 38602, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */
{ 38623, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */
{ 38648, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
{ 38672, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
{ 38703, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
{ 38727, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
{ 38755, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */
{ 38778, 0x00001403 }, /* GL_UNSIGNED_SHORT */
{ 38796, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
{ 38826, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
{ 38852, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
{ 38882, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
{ 38908, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
{ 38932, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
{ 38960, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
{ 38988, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
{ 39015, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
{ 39047, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
{ 39078, 0x00008CA2 }, /* GL_UPPER_LEFT */
{ 39092, 0x00002A20 }, /* GL_V2F */
{ 39099, 0x00002A21 }, /* GL_V3F */
{ 39106, 0x00008B83 }, /* GL_VALIDATE_STATUS */
{ 39125, 0x00001F00 }, /* GL_VENDOR */
{ 39135, 0x00001F02 }, /* GL_VERSION */
{ 39146, 0x00008074 }, /* GL_VERTEX_ARRAY */
{ 39162, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */
{ 39186, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
{ 39216, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
{ 39247, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
{ 39282, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
{ 39306, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
{ 39327, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
{ 39350, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
{ 39371, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
{ 39398, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
{ 39426, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
{ 39454, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
{ 39482, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
{ 39510, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
{ 39538, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
{ 39566, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
{ 39593, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
{ 39620, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
{ 39647, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
{ 39674, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
{ 39701, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
{ 39728, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
{ 39755, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
{ 39782, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
{ 39809, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
{ 39847, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
{ 39889, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
{ 39920, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
{ 39955, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
{ 39989, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
{ 40027, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
{ 40058, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
{ 40093, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
{ 40121, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
{ 40153, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
{ 40183, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
{ 40217, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
{ 40245, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
{ 40277, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
{ 40297, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
{ 40319, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
{ 40348, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
{ 40369, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
{ 40398, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
{ 40431, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
{ 40463, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
{ 40490, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
{ 40521, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
{ 40551, 0x00008B31 }, /* GL_VERTEX_SHADER */
{ 40568, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
{ 40589, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
{ 40616, 0x00000BA2 }, /* GL_VIEWPORT */
{ 40628, 0x00000800 }, /* GL_VIEWPORT_BIT */
{ 40644, 0x0000911D }, /* GL_WAIT_FAILED */
{ 40659, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
{ 40679, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
{ 40710, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
{ 40745, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
{ 40773, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
{ 40798, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
{ 40825, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
{ 40850, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
{ 40874, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
{ 40893, 0x000088B9 }, /* GL_WRITE_ONLY */
{ 40907, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
{ 40925, 0x00001506 }, /* GL_XOR */
{ 40932, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
{ 40951, 0x00008757 }, /* GL_YCBCR_MESA */
{ 40965, 0x00000000 }, /* GL_ZERO */
{ 40973, 0x00000D16 }, /* GL_ZOOM_X */
{ 40983, 0x00000D17 }, /* GL_ZOOM_Y */
{ 37835, 0x000088BF }, /* GL_TIME_ELAPSED_EXT */
{ 37855, 0x00008648 }, /* GL_TRACK_MATRIX_NV */
{ 37874, 0x00008649 }, /* GL_TRACK_MATRIX_TRANSFORM_NV */
{ 37903, 0x00001000 }, /* GL_TRANSFORM_BIT */
{ 37920, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX */
{ 37946, 0x000084E6 }, /* GL_TRANSPOSE_COLOR_MATRIX_ARB */
{ 37976, 0x000088B7 }, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
{ 38008, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
{ 38038, 0x000084E3 }, /* GL_TRANSPOSE_MODELVIEW_MATRIX_ARB */
{ 38072, 0x0000862C }, /* GL_TRANSPOSE_NV */
{ 38088, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX */
{ 38119, 0x000084E4 }, /* GL_TRANSPOSE_PROJECTION_MATRIX_ARB */
{ 38154, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX */
{ 38182, 0x000084E5 }, /* GL_TRANSPOSE_TEXTURE_MATRIX_ARB */
{ 38214, 0x00000004 }, /* GL_TRIANGLES */
{ 38227, 0x00000006 }, /* GL_TRIANGLE_FAN */
{ 38243, 0x00008615 }, /* GL_TRIANGLE_MESH_SUN */
{ 38264, 0x00000005 }, /* GL_TRIANGLE_STRIP */
{ 38282, 0x00000001 }, /* GL_TRUE */
{ 38290, 0x00000CF5 }, /* GL_UNPACK_ALIGNMENT */
{ 38310, 0x0000806E }, /* GL_UNPACK_IMAGE_HEIGHT */
{ 38333, 0x00000CF1 }, /* GL_UNPACK_LSB_FIRST */
{ 38353, 0x00000CF2 }, /* GL_UNPACK_ROW_LENGTH */
{ 38374, 0x0000806D }, /* GL_UNPACK_SKIP_IMAGES */
{ 38396, 0x00000CF4 }, /* GL_UNPACK_SKIP_PIXELS */
{ 38418, 0x00000CF3 }, /* GL_UNPACK_SKIP_ROWS */
{ 38438, 0x00000CF0 }, /* GL_UNPACK_SWAP_BYTES */
{ 38459, 0x00009118 }, /* GL_UNSIGNALED */
{ 38473, 0x00001401 }, /* GL_UNSIGNED_BYTE */
{ 38490, 0x00008362 }, /* GL_UNSIGNED_BYTE_2_3_3_REV */
{ 38517, 0x00008032 }, /* GL_UNSIGNED_BYTE_3_3_2 */
{ 38540, 0x00001405 }, /* GL_UNSIGNED_INT */
{ 38556, 0x00008036 }, /* GL_UNSIGNED_INT_10_10_10_2 */
{ 38583, 0x000084FA }, /* GL_UNSIGNED_INT_24_8 */
{ 38604, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_EXT */
{ 38629, 0x000084FA }, /* GL_UNSIGNED_INT_24_8_NV */
{ 38653, 0x00008368 }, /* GL_UNSIGNED_INT_2_10_10_10_REV */
{ 38684, 0x00008035 }, /* GL_UNSIGNED_INT_8_8_8_8 */
{ 38708, 0x00008367 }, /* GL_UNSIGNED_INT_8_8_8_8_REV */
{ 38736, 0x00008C17 }, /* GL_UNSIGNED_NORMALIZED */
{ 38759, 0x00001403 }, /* GL_UNSIGNED_SHORT */
{ 38777, 0x00008366 }, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
{ 38807, 0x00008033 }, /* GL_UNSIGNED_SHORT_4_4_4_4 */
{ 38833, 0x00008365 }, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
{ 38863, 0x00008034 }, /* GL_UNSIGNED_SHORT_5_5_5_1 */
{ 38889, 0x00008363 }, /* GL_UNSIGNED_SHORT_5_6_5 */
{ 38913, 0x00008364 }, /* GL_UNSIGNED_SHORT_5_6_5_REV */
{ 38941, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_APPLE */
{ 38969, 0x000085BA }, /* GL_UNSIGNED_SHORT_8_8_MESA */
{ 38996, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
{ 39028, 0x000085BB }, /* GL_UNSIGNED_SHORT_8_8_REV_MESA */
{ 39059, 0x00008CA2 }, /* GL_UPPER_LEFT */
{ 39073, 0x00002A20 }, /* GL_V2F */
{ 39080, 0x00002A21 }, /* GL_V3F */
{ 39087, 0x00008B83 }, /* GL_VALIDATE_STATUS */
{ 39106, 0x00001F00 }, /* GL_VENDOR */
{ 39116, 0x00001F02 }, /* GL_VERSION */
{ 39127, 0x00008074 }, /* GL_VERTEX_ARRAY */
{ 39143, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING */
{ 39167, 0x000085B5 }, /* GL_VERTEX_ARRAY_BINDING_APPLE */
{ 39197, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
{ 39228, 0x00008896 }, /* GL_VERTEX_ARRAY_BUFFER_BINDING_ARB */
{ 39263, 0x0000808E }, /* GL_VERTEX_ARRAY_POINTER */
{ 39287, 0x0000807A }, /* GL_VERTEX_ARRAY_SIZE */
{ 39308, 0x0000807C }, /* GL_VERTEX_ARRAY_STRIDE */
{ 39331, 0x0000807B }, /* GL_VERTEX_ARRAY_TYPE */
{ 39352, 0x00008650 }, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
{ 39379, 0x0000865A }, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
{ 39407, 0x0000865B }, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
{ 39435, 0x0000865C }, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
{ 39463, 0x0000865D }, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
{ 39491, 0x0000865E }, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
{ 39519, 0x0000865F }, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
{ 39547, 0x00008651 }, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
{ 39574, 0x00008652 }, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
{ 39601, 0x00008653 }, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
{ 39628, 0x00008654 }, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
{ 39655, 0x00008655 }, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
{ 39682, 0x00008656 }, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
{ 39709, 0x00008657 }, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
{ 39736, 0x00008658 }, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
{ 39763, 0x00008659 }, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
{ 39790, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
{ 39828, 0x0000889F }, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB */
{ 39870, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
{ 39901, 0x00008622 }, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB */
{ 39936, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
{ 39970, 0x0000886A }, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB */
{ 40008, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
{ 40039, 0x00008645 }, /* GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB */
{ 40074, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
{ 40102, 0x00008623 }, /* GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB */
{ 40134, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
{ 40164, 0x00008624 }, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB */
{ 40198, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
{ 40226, 0x00008625 }, /* GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB */
{ 40258, 0x000086A7 }, /* GL_VERTEX_BLEND_ARB */
{ 40278, 0x00008620 }, /* GL_VERTEX_PROGRAM_ARB */
{ 40300, 0x0000864A }, /* GL_VERTEX_PROGRAM_BINDING_NV */
{ 40329, 0x00008620 }, /* GL_VERTEX_PROGRAM_NV */
{ 40350, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE */
{ 40379, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_ARB */
{ 40412, 0x00008642 }, /* GL_VERTEX_PROGRAM_POINT_SIZE_NV */
{ 40444, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE */
{ 40471, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_ARB */
{ 40502, 0x00008643 }, /* GL_VERTEX_PROGRAM_TWO_SIDE_NV */
{ 40532, 0x00008B31 }, /* GL_VERTEX_SHADER */
{ 40549, 0x00008B31 }, /* GL_VERTEX_SHADER_ARB */
{ 40570, 0x00008621 }, /* GL_VERTEX_STATE_PROGRAM_NV */
{ 40597, 0x00000BA2 }, /* GL_VIEWPORT */
{ 40609, 0x00000800 }, /* GL_VIEWPORT_BIT */
{ 40625, 0x0000911D }, /* GL_WAIT_FAILED */
{ 40640, 0x000086AD }, /* GL_WEIGHT_ARRAY_ARB */
{ 40660, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
{ 40691, 0x0000889E }, /* GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB */
{ 40726, 0x000086AC }, /* GL_WEIGHT_ARRAY_POINTER_ARB */
{ 40754, 0x000086AB }, /* GL_WEIGHT_ARRAY_SIZE_ARB */
{ 40779, 0x000086AA }, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
{ 40806, 0x000086A9 }, /* GL_WEIGHT_ARRAY_TYPE_ARB */
{ 40831, 0x000086A6 }, /* GL_WEIGHT_SUM_UNITY_ARB */
{ 40855, 0x000081D4 }, /* GL_WRAP_BORDER_SUN */
{ 40874, 0x000088B9 }, /* GL_WRITE_ONLY */
{ 40888, 0x000088B9 }, /* GL_WRITE_ONLY_ARB */
{ 40906, 0x00001506 }, /* GL_XOR */
{ 40913, 0x000085B9 }, /* GL_YCBCR_422_APPLE */
{ 40932, 0x00008757 }, /* GL_YCBCR_MESA */
{ 40946, 0x00000000 }, /* GL_ZERO */
{ 40954, 0x00000D16 }, /* GL_ZOOM_X */
{ 40964, 0x00000D17 }, /* GL_ZOOM_Y */
};
static const unsigned reduced_enums[1351] =
static const unsigned reduced_enums[1350] =
{
479, /* GL_FALSE */
701, /* GL_LINES */
703, /* GL_LINE_LOOP */
710, /* GL_LINE_STRIP */
1770, /* GL_TRIANGLES */
1773, /* GL_TRIANGLE_STRIP */
1771, /* GL_TRIANGLE_FAN */
1769, /* GL_TRIANGLES */
1772, /* GL_TRIANGLE_STRIP */
1770, /* GL_TRIANGLE_FAN */
1285, /* GL_QUADS */
1289, /* GL_QUAD_STRIP */
1171, /* GL_POLYGON */
@ -3954,7 +3952,7 @@ static const unsigned reduced_enums[1351] =
1537, /* GL_STENCIL_WRITEMASK */
853, /* GL_MATRIX_MODE */
1025, /* GL_NORMALIZE */
1865, /* GL_VIEWPORT */
1864, /* GL_VIEWPORT */
999, /* GL_MODELVIEW_STACK_DEPTH */
1263, /* GL_PROJECTION_STACK_DEPTH */
1744, /* GL_TEXTURE_STACK_DEPTH */
@ -4016,12 +4014,12 @@ static const unsigned reduced_enums[1351] =
1117, /* GL_PIXEL_MAP_G_TO_G_SIZE */
1115, /* GL_PIXEL_MAP_B_TO_B_SIZE */
1113, /* GL_PIXEL_MAP_A_TO_A_SIZE */
1782, /* GL_UNPACK_SWAP_BYTES */
1777, /* GL_UNPACK_LSB_FIRST */
1778, /* GL_UNPACK_ROW_LENGTH */
1781, /* GL_UNPACK_SKIP_ROWS */
1780, /* GL_UNPACK_SKIP_PIXELS */
1775, /* GL_UNPACK_ALIGNMENT */
1781, /* GL_UNPACK_SWAP_BYTES */
1776, /* GL_UNPACK_LSB_FIRST */
1777, /* GL_UNPACK_ROW_LENGTH */
1780, /* GL_UNPACK_SKIP_ROWS */
1779, /* GL_UNPACK_SKIP_PIXELS */
1774, /* GL_UNPACK_ALIGNMENT */
1099, /* GL_PACK_SWAP_BYTES */
1094, /* GL_PACK_LSB_FIRST */
1095, /* GL_PACK_ROW_LENGTH */
@ -4034,8 +4032,8 @@ static const unsigned reduced_enums[1351] =
641, /* GL_INDEX_OFFSET */
1317, /* GL_RED_SCALE */
1315, /* GL_RED_BIAS */
1883, /* GL_ZOOM_X */
1884, /* GL_ZOOM_Y */
1882, /* GL_ZOOM_X */
1883, /* GL_ZOOM_Y */
603, /* GL_GREEN_SCALE */
601, /* GL_GREEN_BIAS */
93, /* GL_BLUE_SCALE */
@ -4120,11 +4118,11 @@ static const unsigned reduced_enums[1351] =
244, /* GL_COMPILE */
245, /* GL_COMPILE_AND_EXECUTE */
120, /* GL_BYTE */
1784, /* GL_UNSIGNED_BYTE */
1783, /* GL_UNSIGNED_BYTE */
1441, /* GL_SHORT */
1796, /* GL_UNSIGNED_SHORT */
1795, /* GL_UNSIGNED_SHORT */
645, /* GL_INT */
1787, /* GL_UNSIGNED_INT */
1786, /* GL_UNSIGNED_INT */
489, /* GL_FLOAT */
1, /* GL_2_BYTES */
5, /* GL_3_BYTES */
@ -4136,7 +4134,7 @@ static const unsigned reduced_enums[1351] =
299, /* GL_COPY */
51, /* GL_AND_INVERTED */
1023, /* GL_NOOP */
1879, /* GL_XOR */
1878, /* GL_XOR */
1086, /* GL_OR */
1024, /* GL_NOR */
470, /* GL_EQUIV */
@ -4180,9 +4178,9 @@ static const unsigned reduced_enums[1351] =
1343, /* GL_REPLACE */
627, /* GL_INCR */
342, /* GL_DECR */
1811, /* GL_VENDOR */
1810, /* GL_VENDOR */
1340, /* GL_RENDERER */
1812, /* GL_VERSION */
1811, /* GL_VERSION */
474, /* GL_EXTENSIONS */
1391, /* GL_S */
1557, /* GL_T */
@ -4215,8 +4213,8 @@ static const unsigned reduced_enums[1351] =
1178, /* GL_POLYGON_OFFSET_POINT */
1177, /* GL_POLYGON_OFFSET_LINE */
1301, /* GL_R3_G3_B2 */
1808, /* GL_V2F */
1809, /* GL_V3F */
1807, /* GL_V2F */
1808, /* GL_V3F */
123, /* GL_C4UB_V2F */
124, /* GL_C4UB_V3F */
121, /* GL_C3F_V3F */
@ -4289,11 +4287,11 @@ static const unsigned reduced_enums[1351] =
951, /* GL_MINMAX_FORMAT */
953, /* GL_MINMAX_SINK */
1565, /* GL_TABLE_TOO_LARGE_EXT */
1786, /* GL_UNSIGNED_BYTE_3_3_2 */
1798, /* GL_UNSIGNED_SHORT_4_4_4_4 */
1800, /* GL_UNSIGNED_SHORT_5_5_5_1 */
1793, /* GL_UNSIGNED_INT_8_8_8_8 */
1788, /* GL_UNSIGNED_INT_10_10_10_2 */
1785, /* GL_UNSIGNED_BYTE_3_3_2 */
1797, /* GL_UNSIGNED_SHORT_4_4_4_4 */
1799, /* GL_UNSIGNED_SHORT_5_5_5_1 */
1792, /* GL_UNSIGNED_INT_8_8_8_8 */
1787, /* GL_UNSIGNED_INT_10_10_10_2 */
1176, /* GL_POLYGON_OFFSET_FILL */
1175, /* GL_POLYGON_OFFSET_FACTOR */
1174, /* GL_POLYGON_OFFSET_BIAS */
@ -4348,22 +4346,22 @@ static const unsigned reduced_enums[1351] =
1643, /* GL_TEXTURE_BINDING_3D */
1096, /* GL_PACK_SKIP_IMAGES */
1092, /* GL_PACK_IMAGE_HEIGHT */
1779, /* GL_UNPACK_SKIP_IMAGES */
1776, /* GL_UNPACK_IMAGE_HEIGHT */
1778, /* GL_UNPACK_SKIP_IMAGES */
1775, /* GL_UNPACK_IMAGE_HEIGHT */
1635, /* GL_TEXTURE_3D */
1277, /* GL_PROXY_TEXTURE_3D */
1698, /* GL_TEXTURE_DEPTH */
1751, /* GL_TEXTURE_WRAP_R */
856, /* GL_MAX_3D_TEXTURE_SIZE */
1813, /* GL_VERTEX_ARRAY */
1812, /* GL_VERTEX_ARRAY */
1026, /* GL_NORMAL_ARRAY */
148, /* GL_COLOR_ARRAY */
631, /* GL_INDEX_ARRAY */
1676, /* GL_TEXTURE_COORD_ARRAY */
459, /* GL_EDGE_FLAG_ARRAY */
1819, /* GL_VERTEX_ARRAY_SIZE */
1821, /* GL_VERTEX_ARRAY_TYPE */
1820, /* GL_VERTEX_ARRAY_STRIDE */
1818, /* GL_VERTEX_ARRAY_SIZE */
1820, /* GL_VERTEX_ARRAY_TYPE */
1819, /* GL_VERTEX_ARRAY_STRIDE */
1031, /* GL_NORMAL_ARRAY_TYPE */
1030, /* GL_NORMAL_ARRAY_STRIDE */
152, /* GL_COLOR_ARRAY_SIZE */
@ -4375,7 +4373,7 @@ static const unsigned reduced_enums[1351] =
1682, /* GL_TEXTURE_COORD_ARRAY_TYPE */
1681, /* GL_TEXTURE_COORD_ARRAY_STRIDE */
463, /* GL_EDGE_FLAG_ARRAY_STRIDE */
1818, /* GL_VERTEX_ARRAY_POINTER */
1817, /* GL_VERTEX_ARRAY_POINTER */
1029, /* GL_NORMAL_ARRAY_POINTER */
151, /* GL_COLOR_ARRAY_POINTER */
634, /* GL_INDEX_ARRAY_POINTER */
@ -4475,7 +4473,7 @@ static const unsigned reduced_enums[1351] =
306, /* GL_CULL_VERTEX_EXT */
308, /* GL_CULL_VERTEX_OBJECT_POSITION_EXT */
307, /* GL_CULL_VERTEX_EYE_POSITION_EXT */
1876, /* GL_WRAP_BORDER_SUN */
1875, /* GL_WRAP_BORDER_SUN */
1660, /* GL_TEXTURE_COLOR_WRITEMASK_SGIS */
690, /* GL_LIGHT_MODEL_COLOR_CONTROL */
1444, /* GL_SINGLE_COLOR */
@ -4493,13 +4491,13 @@ static const unsigned reduced_enums[1351] =
580, /* GL_FRAMEBUFFER_UNDEFINED */
373, /* GL_DEPTH_STENCIL_ATTACHMENT */
630, /* GL_INDEX */
1785, /* GL_UNSIGNED_BYTE_2_3_3_REV */
1801, /* GL_UNSIGNED_SHORT_5_6_5 */
1802, /* GL_UNSIGNED_SHORT_5_6_5_REV */
1799, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
1797, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
1794, /* GL_UNSIGNED_INT_8_8_8_8_REV */
1792, /* GL_UNSIGNED_INT_2_10_10_10_REV */
1784, /* GL_UNSIGNED_BYTE_2_3_3_REV */
1800, /* GL_UNSIGNED_SHORT_5_6_5 */
1801, /* GL_UNSIGNED_SHORT_5_6_5_REV */
1798, /* GL_UNSIGNED_SHORT_4_4_4_4_REV */
1796, /* GL_UNSIGNED_SHORT_1_5_5_5_REV */
1793, /* GL_UNSIGNED_INT_8_8_8_8_REV */
1791, /* GL_UNSIGNED_INT_2_10_10_10_REV */
1730, /* GL_TEXTURE_MAX_CLAMP_S_SGIX */
1731, /* GL_TEXTURE_MAX_CLAMP_T_SGIX */
1729, /* GL_TEXTURE_MAX_CLAMP_R_SGIX */
@ -4570,10 +4568,10 @@ static const unsigned reduced_enums[1351] =
18, /* GL_ACTIVE_TEXTURE */
133, /* GL_CLIENT_ACTIVE_TEXTURE */
934, /* GL_MAX_TEXTURE_UNITS */
1763, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
1766, /* GL_TRANSPOSE_PROJECTION_MATRIX */
1768, /* GL_TRANSPOSE_TEXTURE_MATRIX */
1760, /* GL_TRANSPOSE_COLOR_MATRIX */
1762, /* GL_TRANSPOSE_MODELVIEW_MATRIX */
1765, /* GL_TRANSPOSE_PROJECTION_MATRIX */
1767, /* GL_TRANSPOSE_TEXTURE_MATRIX */
1759, /* GL_TRANSPOSE_COLOR_MATRIX */
1549, /* GL_SUBTRACT */
919, /* GL_MAX_RENDERBUFFER_SIZE */
247, /* GL_COMPRESSED_ALPHA */
@ -4588,7 +4586,7 @@ static const unsigned reduced_enums[1351] =
1281, /* GL_PROXY_TEXTURE_RECTANGLE_ARB */
917, /* GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB */
372, /* GL_DEPTH_STENCIL */
1789, /* GL_UNSIGNED_INT_24_8 */
1788, /* GL_UNSIGNED_INT_24_8 */
930, /* GL_MAX_TEXTURE_LOD_BIAS */
1728, /* GL_TEXTURE_MAX_ANISOTROPY_EXT */
931, /* GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT */
@ -4641,32 +4639,32 @@ static const unsigned reduced_enums[1351] =
1072, /* GL_OPERAND1_ALPHA */
1078, /* GL_OPERAND2_ALPHA */
1084, /* GL_OPERAND3_ALPHA_NV */
1814, /* GL_VERTEX_ARRAY_BINDING */
1813, /* GL_VERTEX_ARRAY_BINDING */
1737, /* GL_TEXTURE_RANGE_LENGTH_APPLE */
1738, /* GL_TEXTURE_RANGE_POINTER_APPLE */
1880, /* GL_YCBCR_422_APPLE */
1803, /* GL_UNSIGNED_SHORT_8_8_APPLE */
1805, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
1879, /* GL_YCBCR_422_APPLE */
1802, /* GL_UNSIGNED_SHORT_8_8_APPLE */
1804, /* GL_UNSIGNED_SHORT_8_8_REV_APPLE */
1747, /* GL_TEXTURE_STORAGE_HINT_APPLE */
1540, /* GL_STORAGE_PRIVATE_APPLE */
1539, /* GL_STORAGE_CACHED_APPLE */
1541, /* GL_STORAGE_SHARED_APPLE */
1446, /* GL_SLICE_ACCUM_SUN */
1288, /* GL_QUAD_MESH_SUN */
1772, /* GL_TRIANGLE_MESH_SUN */
1853, /* GL_VERTEX_PROGRAM_ARB */
1864, /* GL_VERTEX_STATE_PROGRAM_NV */
1840, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
1846, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
1848, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
1850, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
1771, /* GL_TRIANGLE_MESH_SUN */
1852, /* GL_VERTEX_PROGRAM_ARB */
1863, /* GL_VERTEX_STATE_PROGRAM_NV */
1839, /* GL_VERTEX_ATTRIB_ARRAY_ENABLED */
1845, /* GL_VERTEX_ATTRIB_ARRAY_SIZE */
1847, /* GL_VERTEX_ATTRIB_ARRAY_STRIDE */
1849, /* GL_VERTEX_ATTRIB_ARRAY_TYPE */
334, /* GL_CURRENT_VERTEX_ATTRIB */
1240, /* GL_PROGRAM_LENGTH_ARB */
1254, /* GL_PROGRAM_STRING_ARB */
998, /* GL_MODELVIEW_PROJECTION_NV */
623, /* GL_IDENTITY_NV */
670, /* GL_INVERSE_NV */
1765, /* GL_TRANSPOSE_NV */
1764, /* GL_TRANSPOSE_NV */
671, /* GL_INVERSE_TRANSPOSE_NV */
903, /* GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB */
902, /* GL_MAX_PROGRAM_MATRICES_ARB */
@ -4680,33 +4678,33 @@ static const unsigned reduced_enums[1351] =
845, /* GL_MATRIX7_NV */
318, /* GL_CURRENT_MATRIX_STACK_DEPTH_ARB */
315, /* GL_CURRENT_MATRIX_ARB */
1856, /* GL_VERTEX_PROGRAM_POINT_SIZE */
1859, /* GL_VERTEX_PROGRAM_TWO_SIDE */
1855, /* GL_VERTEX_PROGRAM_POINT_SIZE */
1858, /* GL_VERTEX_PROGRAM_TWO_SIDE */
1252, /* GL_PROGRAM_PARAMETER_NV */
1844, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
1843, /* GL_VERTEX_ATTRIB_ARRAY_POINTER */
1256, /* GL_PROGRAM_TARGET_NV */
1253, /* GL_PROGRAM_RESIDENT_NV */
1757, /* GL_TRACK_MATRIX_NV */
1758, /* GL_TRACK_MATRIX_TRANSFORM_NV */
1854, /* GL_VERTEX_PROGRAM_BINDING_NV */
1756, /* GL_TRACK_MATRIX_NV */
1757, /* GL_TRACK_MATRIX_TRANSFORM_NV */
1853, /* GL_VERTEX_PROGRAM_BINDING_NV */
1234, /* GL_PROGRAM_ERROR_POSITION_ARB */
356, /* GL_DEPTH_CLAMP */
1822, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
1829, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
1830, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
1831, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
1832, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
1833, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
1834, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
1835, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
1836, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
1837, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
1823, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
1824, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
1825, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
1826, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
1827, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
1828, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
1821, /* GL_VERTEX_ATTRIB_ARRAY0_NV */
1828, /* GL_VERTEX_ATTRIB_ARRAY1_NV */
1829, /* GL_VERTEX_ATTRIB_ARRAY2_NV */
1830, /* GL_VERTEX_ATTRIB_ARRAY3_NV */
1831, /* GL_VERTEX_ATTRIB_ARRAY4_NV */
1832, /* GL_VERTEX_ATTRIB_ARRAY5_NV */
1833, /* GL_VERTEX_ATTRIB_ARRAY6_NV */
1834, /* GL_VERTEX_ATTRIB_ARRAY7_NV */
1835, /* GL_VERTEX_ATTRIB_ARRAY8_NV */
1836, /* GL_VERTEX_ATTRIB_ARRAY9_NV */
1822, /* GL_VERTEX_ATTRIB_ARRAY10_NV */
1823, /* GL_VERTEX_ATTRIB_ARRAY11_NV */
1824, /* GL_VERTEX_ATTRIB_ARRAY12_NV */
1825, /* GL_VERTEX_ATTRIB_ARRAY13_NV */
1826, /* GL_VERTEX_ATTRIB_ARRAY14_NV */
1827, /* GL_VERTEX_ATTRIB_ARRAY15_NV */
757, /* GL_MAP1_VERTEX_ATTRIB0_4_NV */
764, /* GL_MAP1_VERTEX_ATTRIB1_4_NV */
765, /* GL_MAP1_VERTEX_ATTRIB2_4_NV */
@ -4745,14 +4743,14 @@ static const unsigned reduced_enums[1351] =
269, /* GL_COMPRESSED_TEXTURE_FORMATS */
946, /* GL_MAX_VERTEX_UNITS_ARB */
22, /* GL_ACTIVE_VERTEX_UNITS_ARB */
1875, /* GL_WEIGHT_SUM_UNITY_ARB */
1852, /* GL_VERTEX_BLEND_ARB */
1874, /* GL_WEIGHT_SUM_UNITY_ARB */
1851, /* GL_VERTEX_BLEND_ARB */
336, /* GL_CURRENT_WEIGHT_ARB */
1874, /* GL_WEIGHT_ARRAY_TYPE_ARB */
1873, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
1872, /* GL_WEIGHT_ARRAY_SIZE_ARB */
1871, /* GL_WEIGHT_ARRAY_POINTER_ARB */
1868, /* GL_WEIGHT_ARRAY_ARB */
1873, /* GL_WEIGHT_ARRAY_TYPE_ARB */
1872, /* GL_WEIGHT_ARRAY_STRIDE_ARB */
1871, /* GL_WEIGHT_ARRAY_SIZE_ARB */
1870, /* GL_WEIGHT_ARRAY_POINTER_ARB */
1867, /* GL_WEIGHT_ARRAY_ARB */
386, /* GL_DOT3_RGB */
387, /* GL_DOT3_RGBA */
263, /* GL_COMPRESSED_RGB_FXT1_3DFX */
@ -4797,7 +4795,7 @@ static const unsigned reduced_enums[1351] =
1001, /* GL_MODULATE_ADD_ATI */
1002, /* GL_MODULATE_SIGNED_ADD_ATI */
1003, /* GL_MODULATE_SUBTRACT_ATI */
1881, /* GL_YCBCR_MESA */
1880, /* GL_YCBCR_MESA */
1093, /* GL_PACK_INVERT_MESA */
339, /* GL_DEBUG_OBJECT_MESA */
340, /* GL_DEBUG_PRINT_MESA */
@ -4870,7 +4868,7 @@ static const unsigned reduced_enums[1351] =
1295, /* GL_QUERY_RESULT */
1297, /* GL_QUERY_RESULT_AVAILABLE */
940, /* GL_MAX_VERTEX_ATTRIBS */
1842, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
1841, /* GL_VERTEX_ATTRIB_ARRAY_NORMALIZED */
377, /* GL_DEPTH_STENCIL_TO_RGBA_NV */
376, /* GL_DEPTH_STENCIL_TO_BGRA_NV */
926, /* GL_MAX_TEXTURE_COORDS */
@ -4885,7 +4883,7 @@ static const unsigned reduced_enums[1351] =
464, /* GL_ELEMENT_ARRAY_BUFFER */
54, /* GL_ARRAY_BUFFER_BINDING */
465, /* GL_ELEMENT_ARRAY_BUFFER_BINDING */
1816, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
1815, /* GL_VERTEX_ARRAY_BUFFER_BINDING */
1027, /* GL_NORMAL_ARRAY_BUFFER_BINDING */
149, /* GL_COLOR_ARRAY_BUFFER_BINDING */
632, /* GL_INDEX_ARRAY_BUFFER_BINDING */
@ -4893,8 +4891,8 @@ static const unsigned reduced_enums[1351] =
460, /* GL_EDGE_FLAG_ARRAY_BUFFER_BINDING */
1420, /* GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING */
514, /* GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING */
1869, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
1838, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
1868, /* GL_WEIGHT_ARRAY_BUFFER_BINDING */
1837, /* GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING */
1239, /* GL_PROGRAM_INSTRUCTIONS_ARB */
898, /* GL_MAX_PROGRAM_INSTRUCTIONS_ARB */
1245, /* GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB */
@ -4918,14 +4916,14 @@ static const unsigned reduced_enums[1351] =
899, /* GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB */
895, /* GL_MAX_PROGRAM_ENV_PARAMETERS_ARB */
1260, /* GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB */
1762, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
1761, /* GL_TRANSPOSE_CURRENT_MATRIX_ARB */
1308, /* GL_READ_ONLY */
1877, /* GL_WRITE_ONLY */
1876, /* GL_WRITE_ONLY */
1310, /* GL_READ_WRITE */
102, /* GL_BUFFER_ACCESS */
105, /* GL_BUFFER_MAPPED */
107, /* GL_BUFFER_MAP_POINTER */
1756, /* GL_TIME_ELAPSED_EXT */
1755, /* GL_TIME_ELAPSED_EXT */
808, /* GL_MATRIX0_ARB */
820, /* GL_MATRIX1_ARB */
832, /* GL_MATRIX2_ARB */
@ -4986,7 +4984,7 @@ static const unsigned reduced_enums[1351] =
109, /* GL_BUFFER_SERIALIZED_MODIFY_APPLE */
104, /* GL_BUFFER_FLUSHING_UNMAP_APPLE */
537, /* GL_FRAGMENT_SHADER */
1862, /* GL_VERTEX_SHADER */
1861, /* GL_VERTEX_SHADER */
1250, /* GL_PROGRAM_OBJECT_ARB */
1433, /* GL_SHADER_OBJECT_ARB */
882, /* GL_MAX_FRAGMENT_UNIFORM_COMPONENTS */
@ -5024,7 +5022,7 @@ static const unsigned reduced_enums[1351] =
345, /* GL_DELETE_STATUS */
246, /* GL_COMPILE_STATUS */
715, /* GL_LINK_STATUS */
1810, /* GL_VALIDATE_STATUS */
1809, /* GL_VALIDATE_STATUS */
644, /* GL_INFO_LOG_LENGTH */
56, /* GL_ATTACHED_SHADERS */
20, /* GL_ACTIVE_UNIFORMS */
@ -5047,7 +5045,7 @@ static const unsigned reduced_enums[1351] =
1106, /* GL_PALETTE8_RGB5_A1_OES */
626, /* GL_IMPLEMENTATION_COLOR_READ_TYPE_OES */
625, /* GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES */
1795, /* GL_UNSIGNED_NORMALIZED */
1794, /* GL_UNSIGNED_NORMALIZED */
1632, /* GL_TEXTURE_1D_ARRAY_EXT */
1272, /* GL_PROXY_TEXTURE_1D_ARRAY_EXT */
1634, /* GL_TEXTURE_2D_ARRAY_EXT */
@ -5068,7 +5066,7 @@ static const unsigned reduced_enums[1351] =
266, /* GL_COMPRESSED_SLUMINANCE_ALPHA */
1167, /* GL_POINT_SPRITE_COORD_ORIGIN */
723, /* GL_LOWER_LEFT */
1807, /* GL_UPPER_LEFT */
1806, /* GL_UPPER_LEFT */
1513, /* GL_STENCIL_BACK_REF */
1514, /* GL_STENCIL_BACK_VALUE_MASK */
1515, /* GL_STENCIL_BACK_WRITEMASK */
@ -5150,12 +5148,12 @@ static const unsigned reduced_enums[1351] =
1553, /* GL_SYNC_FLAGS */
1552, /* GL_SYNC_FENCE */
1555, /* GL_SYNC_GPU_COMMANDS_COMPLETE */
1783, /* GL_UNSIGNALED */
1782, /* GL_UNSIGNALED */
1442, /* GL_SIGNALED */
46, /* GL_ALREADY_SIGNALED */
1754, /* GL_TIMEOUT_EXPIRED */
270, /* GL_CONDITION_SATISFIED */
1867, /* GL_WAIT_FAILED */
1866, /* GL_WAIT_FAILED */
471, /* GL_EVAL_BIT */
1302, /* GL_RASTER_POSITION_UNCLIPPED_IBM */
717, /* GL_LIST_BIT */
@ -5164,7 +5162,6 @@ static const unsigned reduced_enums[1351] =
29, /* GL_ALL_ATTRIB_BITS */
1008, /* GL_MULTISAMPLE_BIT */
30, /* GL_ALL_CLIENT_ATTRIB_BITS */
1755, /* GL_TIMEOUT_IGNORED */
};
typedef int (*cfunc)(const void *, const void *);

View file

@ -3229,6 +3229,7 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
srcFormat == GL_RGBA ||
srcFormat == GL_BGRA ||
srcFormat == GL_ABGR_EXT ||
srcFormat == GL_DU8DV8_ATI ||
srcFormat == GL_DUDV_ATI);
ASSERT(srcType == GL_UNSIGNED_BYTE ||
@ -3344,6 +3345,7 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
aComp = 0;
stride = 4;
break;
case GL_DU8DV8_ATI:
case GL_DUDV_ATI:
redIndex = 0;
greenIndex = 1;

View file

@ -1165,6 +1165,7 @@ _mesa_GetTexParameteriv( GLenum target, GLenum pname, GLint *params )
return;
}
_mesa_lock_texture(ctx, obj);
switch (pname) {
case GL_TEXTURE_MAG_FILTER:
*params = (GLint) obj->MagFilter;

View file

@ -2297,7 +2297,9 @@ set_dst_reg(struct prog_dst_register *r, gl_register_file file, GLint index)
const GLint maxIndex = 1 << INST_INDEX_BITS;
const GLint minIndex = 0;
ASSERT(index >= minIndex);
(void) minIndex;
ASSERT(index <= maxIndex);
(void) maxIndex;
ASSERT(file == PROGRAM_TEMPORARY ||
file == PROGRAM_ADDRESS ||
file == PROGRAM_OUTPUT);
@ -2338,7 +2340,9 @@ set_src_reg_swz(struct asm_src_register *r, gl_register_file file, GLint index,
const GLint minIndex = -(1 << INST_INDEX_BITS);
ASSERT(file < PROGRAM_FILE_MAX);
ASSERT(index >= minIndex);
(void) minIndex;
ASSERT(index <= maxIndex);
(void) maxIndex;
memset(r, 0, sizeof(*r));
r->Base.File = file;
r->Base.Index = index;

View file

@ -4249,14 +4249,15 @@ _slang_gen_assignment(slang_assemble_ctx * A, slang_operation *oper)
if (oper->children[0].type == SLANG_OPER_IDENTIFIER) {
/* Check that var is writeable */
const char *varName = (char *) oper->children[0].a_id;
slang_variable *var
= _slang_variable_locate(oper->children[0].locals,
oper->children[0].a_id, GL_TRUE);
if (!var) {
slang_info_log_error(A->log, "undefined variable '%s'",
(char *) oper->children[0].a_id);
slang_info_log_error(A->log, "undefined variable '%s'", varName);
return NULL;
}
if (var->type.qualifier == SLANG_QUAL_CONST ||
var->type.qualifier == SLANG_QUAL_ATTRIBUTE ||
var->type.qualifier == SLANG_QUAL_UNIFORM ||
@ -4264,7 +4265,7 @@ _slang_gen_assignment(slang_assemble_ctx * A, slang_operation *oper)
A->program->Target == GL_FRAGMENT_PROGRAM_ARB)) {
slang_info_log_error(A->log,
"illegal assignment to read-only variable '%s'",
(char *) oper->children[0].a_id);
varName);
return NULL;
}

View file

@ -103,6 +103,17 @@ st_bufferobj_subdata(GLcontext *ctx,
ASSERT(size >= 0);
ASSERT(offset + size <= obj->Size);
if (!size)
return;
/*
* According to ARB_vertex_buffer_object specification, if data is null,
* then the contents of the buffer object's data store is undefined. We just
* ignore, and leave it unchanged.
*/
if (!data)
return;
st_cond_flush_pipe_buffer_write(st_context(ctx), st_obj->buffer,
offset, size, data);
}
@ -125,6 +136,9 @@ st_bufferobj_get_subdata(GLcontext *ctx,
ASSERT(size >= 0);
ASSERT(offset + size <= obj->Size);
if (!size)
return;
st_cond_flush_pipe_buffer_read(st_context(ctx), st_obj->buffer,
offset, size, data);
}
@ -222,6 +236,13 @@ st_bufferobj_map(GLcontext *ctx, GLenum target, GLenum access,
}
/**
* Dummy data whose's pointer is used for zero length ranges.
*/
static long
st_bufferobj_zero_length_range = 0;
/**
* Called via glMapBufferRange().
*/
@ -257,14 +278,26 @@ st_bufferobj_map_range(GLcontext *ctx, GLenum target,
assert(offset < obj->Size);
assert(offset + length <= obj->Size);
obj->Pointer = pipe_buffer_map_range(pipe->screen, st_obj->buffer, offset, length, flags);
/*
* We go out of way here to hide the degenerate yet valid case of zero
* length range from the pipe driver.
*/
if (!length) {
obj->Pointer = &st_bufferobj_zero_length_range;
}
else {
obj->Pointer = pipe_buffer_map_range(pipe->screen, st_obj->buffer, offset, length, flags);
if (obj->Pointer) {
obj->Pointer = (ubyte *) obj->Pointer + offset;
}
}
if (obj->Pointer) {
obj->Pointer = (ubyte *) obj->Pointer + offset;
obj->Offset = offset;
obj->Length = length;
obj->AccessFlags = access;
}
return obj->Pointer;
}
@ -282,6 +315,9 @@ st_bufferobj_flush_mapped_range(GLcontext *ctx, GLenum target,
assert(length >= 0);
assert(offset + length <= obj->Length);
if (!length)
return;
pipe_buffer_flush_mapped_range(pipe->screen, st_obj->buffer,
obj->Offset + offset, length);
}
@ -296,7 +332,9 @@ st_bufferobj_unmap(GLcontext *ctx, GLenum target, struct gl_buffer_object *obj)
struct pipe_context *pipe = st_context(ctx)->pipe;
struct st_buffer_object *st_obj = st_buffer_object(obj);
pipe_buffer_unmap(pipe->screen, st_obj->buffer);
if(obj->Length)
pipe_buffer_unmap(pipe->screen, st_obj->buffer);
obj->Pointer = NULL;
obj->Offset = 0;
obj->Length = 0;
@ -319,6 +357,9 @@ st_copy_buffer_subdata(GLcontext *ctx,
struct st_buffer_object *dstObj = st_buffer_object(dst);
ubyte *srcPtr, *dstPtr;
if(!size)
return;
/* buffer should not already be mapped */
assert(!src->Pointer);
assert(!dst->Pointer);

View file

@ -1090,7 +1090,7 @@ st_TexSubimage(GLcontext *ctx, GLint dims, GLenum target, GLint level,
done:
_mesa_unmap_teximage_pbo(ctx, packing);
if (stImage->pt) {
if (stImage->pt && texImage->Data) {
st_texture_image_unmap(ctx->st, stImage);
texImage->Data = NULL;
}

View file

@ -61,21 +61,11 @@ do { \
printf( "\n" ); \
} while (0)
#if defined(__BEOS__) || defined(__HAIKU__) || defined(_LP64)
#define OFFSET( s, t, m ) \
printf( "#define %s\t%ld\n", s, offsetof( t, m ) );
#else
#define OFFSET( s, t, m ) \
printf( "#define %s\t%d\n", s, offsetof( t, m ) );
#endif
printf( "#define %s\t%lu\n", s, (unsigned long) offsetof( t, m ) );
#if defined(__BEOS__) || defined(__HAIKU__) || defined(_LP64)
#define SIZEOF( s, t ) \
printf( "#define %s\t%ld\n", s, sizeof(t) );
#else
#define SIZEOF( s, t ) \
printf( "#define %s\t%d\n", s, sizeof(t) );
#endif
printf( "#define %s\t%lu\n", s, (unsigned long) sizeof(t) );
#define DEFINE( s, d ) \
printf( "#define %s\t0x%x\n", s, d );