Merge branch 'mesa_7_5_branch' into mesa_7_6_branch
This commit is contained in:
commit
5d526ed21a
|
@ -23,6 +23,7 @@ HOST_CC = $(CC)
|
|||
CFLAGS = -O
|
||||
CXXFLAGS = -O
|
||||
LDFLAGS =
|
||||
HOST_CFLAGS = $(CFLAGS)
|
||||
GLU_CFLAGS =
|
||||
|
||||
# Compiler for building demos/tests/etc
|
||||
|
|
|
@ -1202,7 +1202,7 @@ if test "x$enable_gallium_radeon" = xyes; then
|
|||
fi
|
||||
|
||||
dnl
|
||||
dnl Gallium Radeon configuration
|
||||
dnl Gallium Nouveau configuration
|
||||
dnl
|
||||
AC_ARG_ENABLE([gallium-nouveau],
|
||||
[AS_HELP_STRING([--enable-gallium-nouveau],
|
||||
|
|
|
@ -45,6 +45,8 @@ tbd
|
|||
<ul>
|
||||
<li>Assorted bug fixes for i965/i945 drivers
|
||||
<li>Fixed Gallium glDrawPixels(GL_STENCIL_INDEX) failure.
|
||||
<li>Fixed GLSL linker/preprocessor version directive issue seen in Wine
|
||||
(such as bug 23946)
|
||||
</ul>
|
||||
|
||||
|
||||
|
|
|
@ -119,6 +119,12 @@ static void Init( void )
|
|||
glBindProgramARB(GL_VERTEX_PROGRAM_ARB, prognum);
|
||||
glProgramStringARB(GL_VERTEX_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
||||
sz, (const GLubyte *) buf);
|
||||
if (glGetError()) {
|
||||
printf("Program failed to compile:\n%s\n", buf);
|
||||
printf("Error: %s\n",
|
||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
||||
exit(1);
|
||||
}
|
||||
assert(glIsProgramARB(prognum));
|
||||
}
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ validate_texture_wrap_mode(GLcontext * ctx, GLenum target, GLenum wrap)
|
|||
return GL_TRUE;
|
||||
}
|
||||
|
||||
_mesa_error( ctx, GL_INVALID_VALUE, "glTexParameter(param=0x%x)", wrap );
|
||||
_mesa_error( ctx, GL_INVALID_ENUM, "glTexParameter(param=0x%x)", wrap );
|
||||
return GL_FALSE;
|
||||
}
|
||||
|
||||
|
@ -210,7 +210,7 @@ set_tex_parameteri(GLcontext *ctx,
|
|||
}
|
||||
/* fall-through */
|
||||
default:
|
||||
_mesa_error( ctx, GL_INVALID_VALUE, "glTexParameter(param=0x%x)",
|
||||
_mesa_error( ctx, GL_INVALID_ENUM, "glTexParameter(param=0x%x)",
|
||||
params[0] );
|
||||
}
|
||||
return GL_FALSE;
|
||||
|
@ -225,7 +225,7 @@ set_tex_parameteri(GLcontext *ctx,
|
|||
texObj->MagFilter = params[0];
|
||||
return GL_TRUE;
|
||||
default:
|
||||
_mesa_error( ctx, GL_INVALID_VALUE, "glTexParameter(param=0x%x)",
|
||||
_mesa_error( ctx, GL_INVALID_ENUM, "glTexParameter(param=0x%x)",
|
||||
params[0]);
|
||||
}
|
||||
return GL_FALSE;
|
||||
|
|
|
@ -1474,6 +1474,21 @@ _mesa_link_program(GLcontext *ctx, GLuint program)
|
|||
FLUSH_VERTICES(ctx, _NEW_PROGRAM);
|
||||
|
||||
_slang_link(ctx, program, shProg);
|
||||
|
||||
/* debug code */
|
||||
if (0) {
|
||||
GLuint i;
|
||||
|
||||
_mesa_printf("Link %u shaders in program %u: %s\n",
|
||||
shProg->NumShaders, shProg->Name,
|
||||
shProg->LinkStatus ? "Success" : "Failed");
|
||||
|
||||
for (i = 0; i < shProg->NumShaders; i++) {
|
||||
_mesa_printf(" shader %u, type 0x%x\n",
|
||||
shProg->Shaders[i]->Name,
|
||||
shProg->Shaders[i]->Type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -546,6 +546,32 @@ _slang_update_inputs_outputs(struct gl_program *prog)
|
|||
|
||||
|
||||
|
||||
/**
|
||||
* Remove extra #version directives from the concatenated source string.
|
||||
* Disable the extra ones by converting first two chars to //, a comment.
|
||||
* This is a bit of hack to work around a preprocessor bug that only
|
||||
* allows one #version directive per source.
|
||||
*/
|
||||
static void
|
||||
remove_extra_version_directives(GLchar *source)
|
||||
{
|
||||
GLuint verCount = 0;
|
||||
while (1) {
|
||||
char *ver = _mesa_strstr(source, "#version");
|
||||
if (ver) {
|
||||
verCount++;
|
||||
if (verCount > 1) {
|
||||
ver[0] = '/';
|
||||
ver[1] = '/';
|
||||
}
|
||||
source += 8;
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
|
@ -593,6 +619,8 @@ concat_shaders(struct gl_shader_program *shProg, GLenum shaderType)
|
|||
_mesa_printf("---NEW CONCATENATED SHADER---:\n%s\n------------\n", source);
|
||||
*/
|
||||
|
||||
remove_extra_version_directives(source);
|
||||
|
||||
newShader = CALLOC_STRUCT(gl_shader);
|
||||
newShader->Type = shaderType;
|
||||
newShader->Source = source;
|
||||
|
|
Loading…
Reference in New Issue