mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-18 06:10:36 +01:00
mesa: meaningless whitespace change to see if git's working (ignore)
This commit is contained in:
parent
da795ff0a8
commit
b2e779988e
8 changed files with 102 additions and 20 deletions
1
Makefile
1
Makefile
|
|
@ -16,6 +16,7 @@ default: $(TOP)/configs/current
|
|||
doxygen:
|
||||
cd doxygen && $(MAKE)
|
||||
|
||||
|
||||
clean:
|
||||
-@touch $(TOP)/configs/current
|
||||
-@for dir in $(SUBDIRS) ; do \
|
||||
|
|
|
|||
|
|
@ -164,9 +164,7 @@ static void add_debug_flags( const char *debug )
|
|||
{ "api", VERBOSE_API },
|
||||
{ "list", VERBOSE_DISPLAY_LIST },
|
||||
{ "lighting", VERBOSE_LIGHTING },
|
||||
{ "disassem", VERBOSE_DISASSEM },
|
||||
{ "glsl", VERBOSE_GLSL }, /* report GLSL compile/link errors */
|
||||
{ "glsl_dump", VERBOSE_GLSL_DUMP } /* print shader GPU instructions */
|
||||
{ "disassem", VERBOSE_DISASSEM }
|
||||
};
|
||||
GLuint i;
|
||||
|
||||
|
|
|
|||
|
|
@ -2162,6 +2162,13 @@ struct gl_shader_program
|
|||
};
|
||||
|
||||
|
||||
#define GLSL_DUMP 0x1 /**< Dump shaders to stdout */
|
||||
#define GLSL_LOG 0x2 /**< Write shaders to files */
|
||||
#define GLSL_OPT 0x4 /**< Force optimizations (override pragmas) */
|
||||
#define GLSL_NO_OPT 0x8 /**< Force no optimizations (override pragmas) */
|
||||
#define GLSL_UNIFORMS 0x10 /**< Print glUniform calls */
|
||||
|
||||
|
||||
/**
|
||||
* Context state for GLSL vertex/fragment shaders.
|
||||
*/
|
||||
|
|
@ -2173,6 +2180,7 @@ struct gl_shader_state
|
|||
GLboolean EmitCondCodes; /**< Use condition codes? */
|
||||
GLboolean EmitComments; /**< Annotated instructions */
|
||||
void *MemPool;
|
||||
GLbitfield Flags; /**< Mask of GLSL_x flags */
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -3163,8 +3171,6 @@ enum _verbose
|
|||
VERBOSE_PRIMS = 0x0400,
|
||||
VERBOSE_VERTS = 0x0800,
|
||||
VERBOSE_DISASSEM = 0x1000,
|
||||
VERBOSE_GLSL = 0x2000,
|
||||
VERBOSE_GLSL_DUMP = 0x4000
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -370,6 +370,31 @@ _mesa_lookup_shader_err(GLcontext *ctx, GLuint name, const char *caller)
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return mask of GLSL_x flags by examining the MESA_GLSL env var.
|
||||
*/
|
||||
static GLbitfield
|
||||
get_shader_flags(void)
|
||||
{
|
||||
GLbitfield flags = 0x0;
|
||||
const char *env = _mesa_getenv("MESA_GLSL");
|
||||
|
||||
if (env) {
|
||||
if (_mesa_strstr(env, "dump"))
|
||||
flags |= GLSL_DUMP;
|
||||
if (_mesa_strstr(env, "log"))
|
||||
flags |= GLSL_LOG;
|
||||
if (_mesa_strstr(env, "nopt"))
|
||||
flags |= GLSL_NO_OPT;
|
||||
else if (_mesa_strstr(env, "opt"))
|
||||
flags |= GLSL_OPT;
|
||||
if (_mesa_strstr(env, "uniform"))
|
||||
flags |= GLSL_UNIFORMS;
|
||||
}
|
||||
|
||||
return flags;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Initialize context's shader state.
|
||||
|
|
@ -383,6 +408,7 @@ _mesa_init_shader_state(GLcontext * ctx)
|
|||
ctx->Shader.EmitHighLevelInstructions = GL_TRUE;
|
||||
ctx->Shader.EmitCondCodes = GL_TRUE; /* XXX probably want GL_FALSE... */
|
||||
ctx->Shader.EmitComments = GL_FALSE;
|
||||
ctx->Shader.Flags = get_shader_flags();
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1613,6 +1639,7 @@ _mesa_uniform(GLcontext *ctx, GLint location, GLsizei count,
|
|||
struct gl_shader_program *shProg = ctx->Shader.CurrentProgram;
|
||||
struct gl_uniform *uniform;
|
||||
GLint elems, offset;
|
||||
GLenum basicType;
|
||||
|
||||
if (!shProg || !shProg->LinkStatus) {
|
||||
_mesa_error(ctx, GL_INVALID_OPERATION, "glUniform(program not linked)");
|
||||
|
|
@ -1636,19 +1663,35 @@ _mesa_uniform(GLcontext *ctx, GLint location, GLsizei count,
|
|||
|
||||
switch (type) {
|
||||
case GL_FLOAT:
|
||||
basicType = GL_FLOAT;
|
||||
elems = 1;
|
||||
break;
|
||||
case GL_INT:
|
||||
basicType = GL_INT;
|
||||
elems = 1;
|
||||
break;
|
||||
case GL_FLOAT_VEC2:
|
||||
basicType = GL_FLOAT;
|
||||
elems = 2;
|
||||
break;
|
||||
case GL_INT_VEC2:
|
||||
basicType = GL_INT;
|
||||
elems = 2;
|
||||
break;
|
||||
case GL_FLOAT_VEC3:
|
||||
basicType = GL_FLOAT;
|
||||
elems = 3;
|
||||
break;
|
||||
case GL_INT_VEC3:
|
||||
basicType = GL_INT;
|
||||
elems = 3;
|
||||
break;
|
||||
case GL_FLOAT_VEC4:
|
||||
basicType = GL_FLOAT;
|
||||
elems = 4;
|
||||
break;
|
||||
case GL_INT_VEC4:
|
||||
basicType = GL_INT;
|
||||
elems = 4;
|
||||
break;
|
||||
default:
|
||||
|
|
@ -1660,6 +1703,25 @@ _mesa_uniform(GLcontext *ctx, GLint location, GLsizei count,
|
|||
|
||||
uniform = &shProg->Uniforms->Uniforms[location];
|
||||
|
||||
if (ctx->Shader.Flags & GLSL_UNIFORMS) {
|
||||
GLint i;
|
||||
_mesa_printf("Mesa: set program %u uniform %s (loc %d) to: ",
|
||||
shProg->Name, uniform->Name, location);
|
||||
if (basicType == GL_INT) {
|
||||
const GLint *v = (const GLint *) values;
|
||||
for (i = 0; i < count * elems; i++) {
|
||||
_mesa_printf("%d ", v[i]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
const GLfloat *v = (const GLfloat *) values;
|
||||
for (i = 0; i < count * elems; i++) {
|
||||
_mesa_printf("%g ", v[i]);
|
||||
}
|
||||
}
|
||||
_mesa_printf("\n");
|
||||
}
|
||||
|
||||
/* A uniform var may be used by both a vertex shader and a fragment
|
||||
* shader. We may need to update one or both shader's uniform here:
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
#include "main/context.h"
|
||||
#include "shader/program.h"
|
||||
#include "shader/programopt.h"
|
||||
#include "shader/prog_optimize.h"
|
||||
#include "shader/prog_print.h"
|
||||
#include "shader/prog_parameter.h"
|
||||
#include "shader/grammar/grammar_mesa.h"
|
||||
|
|
@ -2794,11 +2795,22 @@ _slang_compile(GLcontext *ctx, struct gl_shader *shader)
|
|||
_mesa_print_program(shader->Program);
|
||||
#endif
|
||||
|
||||
if (success) {
|
||||
if ((ctx->Shader.Flags & GLSL_NO_OPT) == 0) {
|
||||
if ((ctx->Shader.Flags & GLSL_OPT) || shader->Pragmas.Optimize) {
|
||||
/* apply program optimizations */
|
||||
_mesa_remove_extra_moves(shader->Program);
|
||||
_mesa_remove_dead_code(shader->Program);
|
||||
_mesa_consolidate_registers(shader->Program);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
shader->CompileStatus = success;
|
||||
|
||||
#if 0
|
||||
_mesa_write_shader_to_file(shader);
|
||||
#endif
|
||||
if (ctx->Shader.Flags & GLSL_LOG) {
|
||||
_mesa_write_shader_to_file(shader);
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -675,12 +675,12 @@ _slang_link(GLcontext *ctx,
|
|||
/* notify driver that a new fragment program has been compiled/linked */
|
||||
ctx->Driver.ProgramStringNotify(ctx, GL_FRAGMENT_PROGRAM_ARB,
|
||||
&shProg->FragmentProgram->Base);
|
||||
if (MESA_VERBOSE & VERBOSE_GLSL_DUMP) {
|
||||
printf("Mesa original fragment program:\n");
|
||||
if (ctx->Shader.Flags & GLSL_DUMP) {
|
||||
_mesa_printf("Mesa original fragment program:\n");
|
||||
_mesa_print_program(&fragProg->Base);
|
||||
_mesa_print_program_parameters(ctx, &fragProg->Base);
|
||||
|
||||
printf("Mesa post-link fragment program:\n");
|
||||
_mesa_printf("Mesa post-link fragment program:\n");
|
||||
_mesa_print_program(&shProg->FragmentProgram->Base);
|
||||
_mesa_print_program_parameters(ctx, &shProg->FragmentProgram->Base);
|
||||
}
|
||||
|
|
@ -693,22 +693,26 @@ _slang_link(GLcontext *ctx,
|
|||
/* notify driver that a new vertex program has been compiled/linked */
|
||||
ctx->Driver.ProgramStringNotify(ctx, GL_VERTEX_PROGRAM_ARB,
|
||||
&shProg->VertexProgram->Base);
|
||||
if (MESA_VERBOSE & VERBOSE_GLSL_DUMP) {
|
||||
printf("Mesa original vertex program:\n");
|
||||
if (ctx->Shader.Flags & GLSL_DUMP) {
|
||||
_mesa_printf("Mesa original vertex program:\n");
|
||||
_mesa_print_program(&vertProg->Base);
|
||||
_mesa_print_program_parameters(ctx, &vertProg->Base);
|
||||
|
||||
printf("Mesa post-link vertex program:\n");
|
||||
_mesa_printf("Mesa post-link vertex program:\n");
|
||||
_mesa_print_program(&shProg->VertexProgram->Base);
|
||||
_mesa_print_program_parameters(ctx, &shProg->VertexProgram->Base);
|
||||
}
|
||||
}
|
||||
|
||||
if (MESA_VERBOSE & VERBOSE_GLSL_DUMP) {
|
||||
printf("Varying vars:\n");
|
||||
if (ctx->Shader.Flags & GLSL_DUMP) {
|
||||
_mesa_printf("Varying vars:\n");
|
||||
_mesa_print_parameter_list(shProg->Varying);
|
||||
if (shProg->InfoLog) {
|
||||
_mesa_printf("Info Log: %s\n", shProg->InfoLog);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
shProg->LinkStatus = (shProg->VertexProgram || shProg->FragmentProgram);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -77,13 +77,11 @@ slang_info_log_message(slang_info_log * log, const char *prefix,
|
|||
slang_string_concat(log->text, msg);
|
||||
slang_string_concat(log->text, "\n");
|
||||
|
||||
if (MESA_VERBOSE & VERBOSE_GLSL) {
|
||||
_mesa_printf("Mesa: GLSL %s", log->text);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
#define EXIT_SUCCESS 13
|
||||
|
||||
int
|
||||
slang_info_log_print(slang_info_log * log, const char *msg, ...)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -177,6 +177,7 @@ SHADER_SOURCES = \
|
|||
shader/prog_execute.c \
|
||||
shader/prog_instruction.c \
|
||||
shader/prog_noise.c \
|
||||
shader/prog_optimize.c \
|
||||
shader/prog_parameter.c \
|
||||
shader/prog_print.c \
|
||||
shader/prog_statevars.c \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue