diff options
Diffstat (limited to 'mesalib/src/mesa')
-rw-r--r-- | mesalib/src/mesa/drivers/common/meta.c | 23 | ||||
-rw-r--r-- | mesalib/src/mesa/main/context.c | 2 | ||||
-rw-r--r-- | mesalib/src/mesa/main/errors.c | 15 | ||||
-rw-r--r-- | mesalib/src/mesa/main/get.c | 2 | ||||
-rw-r--r-- | mesalib/src/mesa/main/mtypes.h | 8 | ||||
-rw-r--r-- | mesalib/src/mesa/main/queryobj.c | 1 | ||||
-rw-r--r-- | mesalib/src/mesa/main/shaderapi.c | 1 | ||||
-rw-r--r-- | mesalib/src/mesa/main/texcompress.c | 22 | ||||
-rw-r--r-- | mesalib/src/mesa/program/prog_instruction.h | 8 | ||||
-rw-r--r-- | mesalib/src/mesa/program/program.h | 8 |
10 files changed, 62 insertions, 28 deletions
diff --git a/mesalib/src/mesa/drivers/common/meta.c b/mesalib/src/mesa/drivers/common/meta.c index 60157af98..798efa680 100644 --- a/mesalib/src/mesa/drivers/common/meta.c +++ b/mesalib/src/mesa/drivers/common/meta.c @@ -1537,6 +1537,9 @@ setup_glsl_blit_framebuffer(struct gl_context *ctx, "}\n"; fs_source = ralloc_asprintf(mem_ctx, + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" "uniform %s texSampler;\n" "varying vec2 texCoords;\n" "void main()\n" @@ -1561,6 +1564,9 @@ setup_glsl_blit_framebuffer(struct gl_context *ctx, _mesa_is_desktop_gl(ctx) ? "130" : "300 es"); fs_source = ralloc_asprintf(mem_ctx, "#version %s\n" + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" "uniform %s texSampler;\n" "in vec2 texCoords;\n" "out vec4 out_color;\n" @@ -2139,6 +2145,9 @@ meta_glsl_clear_init(struct gl_context *ctx, struct clear_state *clear) " gl_Position = position;\n" "}\n"; const char *fs_source = + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" "uniform vec4 color;\n" "void main()\n" "{\n" @@ -2198,6 +2207,9 @@ meta_glsl_clear_init(struct gl_context *ctx, struct clear_state *clear) const char *fs_int_source = ralloc_asprintf(shader_source_mem_ctx, "#version %s\n" + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" "uniform ivec4 color;\n" "out ivec4 out_color;\n" "\n" @@ -3426,6 +3438,9 @@ setup_glsl_generate_mipmap(struct gl_context *ctx, fs_source = ralloc_asprintf(mem_ctx, "#extension GL_EXT_texture_array : enable\n" + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" "uniform %s texSampler;\n" "varying vec3 texCoords;\n" "void main()\n" @@ -3449,6 +3464,9 @@ setup_glsl_generate_mipmap(struct gl_context *ctx, _mesa_is_desktop_gl(ctx) ? "130" : "300 es"); fs_source = ralloc_asprintf(mem_ctx, "#version %s\n" + "#ifdef GL_ES\n" + "precision highp float;\n" + "#endif\n" "uniform %s texSampler;\n" "in vec3 texCoords;\n" "out vec4 out_color;\n" @@ -4004,6 +4022,11 @@ decompress_texture_image(struct gl_context *ctx, verts[3].x = 0.0F; verts[3].y = height; + _mesa_MatrixMode(GL_PROJECTION); + _mesa_LoadIdentity(); + _mesa_Ortho(0.0, width, 0.0, height, -1.0, 1.0); + _mesa_set_viewport(ctx, 0, 0, width, height); + /* upload new vertex data */ _mesa_BufferSubData(GL_ARRAY_BUFFER_ARB, 0, sizeof(verts), verts); diff --git a/mesalib/src/mesa/main/context.c b/mesalib/src/mesa/main/context.c index d687fb7c0..d726d117b 100644 --- a/mesalib/src/mesa/main/context.c +++ b/mesalib/src/mesa/main/context.c @@ -622,7 +622,7 @@ _mesa_init_constants(struct gl_context *ctx) ctx->Const.MaxSamples = 0; /* GL_ARB_sync */ - ctx->Const.MaxServerWaitTimeout = (GLuint64) ~0; + ctx->Const.MaxServerWaitTimeout = 0x1fff7fffffffULL; /* GL_ATI_envmap_bumpmap */ ctx->Const.SupportedBumpUnits = SUPPORTED_ATI_BUMP_UNITS; diff --git a/mesalib/src/mesa/main/errors.c b/mesalib/src/mesa/main/errors.c index 5a0758d0b..cc93d3bd6 100644 --- a/mesalib/src/mesa/main/errors.c +++ b/mesalib/src/mesa/main/errors.c @@ -609,11 +609,6 @@ control_app_messages(struct gl_context *ctx, GLenum esource, GLenum etype, enum mesa_debug_type type = gl_enum_to_debug_type(etype); enum mesa_debug_severity severity = gl_enum_to_debug_severity(eseverity); - if (count) - assert(severity == MESA_DEBUG_SEVERITY_COUNT - && type != MESA_DEBUG_TYPE_COUNT - && source != MESA_DEBUG_SOURCE_COUNT); - for (i = 0; i < count; i++) set_message_state(ctx, source, type, ids[i], enabled); @@ -629,9 +624,6 @@ _mesa_DebugMessageControlARB(GLenum gl_source, GLenum gl_type, GLsizei count, const GLuint *ids, GLboolean enabled) { - enum mesa_debug_source source; - enum mesa_debug_type type; - enum mesa_debug_severity severity; GET_CURRENT_CONTEXT(ctx); if (count < 0) { @@ -651,11 +643,8 @@ _mesa_DebugMessageControlARB(GLenum gl_source, GLenum gl_type, return; } - source = gl_enum_to_debug_source(gl_source); - type = gl_enum_to_debug_type(gl_type); - severity = gl_enum_to_debug_severity(gl_severity); - - control_app_messages(ctx, source, type, severity, count, ids, enabled); + control_app_messages(ctx, gl_source, gl_type, gl_severity, + count, ids, enabled); } void GLAPIENTRY diff --git a/mesalib/src/mesa/main/get.c b/mesalib/src/mesa/main/get.c index 09b008a07..4f6f59ae6 100644 --- a/mesalib/src/mesa/main/get.c +++ b/mesalib/src/mesa/main/get.c @@ -709,7 +709,7 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu case GL_COMPRESSED_TEXTURE_FORMATS_ARB: v->value_int_n.n = _mesa_get_compressed_formats(ctx, v->value_int_n.ints); - ASSERT(v->value_int_n.n <= 100); + ASSERT(v->value_int_n.n <= ARRAY_SIZE(v->value_int_n.ints)); break; case GL_MAX_VARYING_FLOATS_ARB: diff --git a/mesalib/src/mesa/main/mtypes.h b/mesalib/src/mesa/main/mtypes.h index 5f9b7f983..22bb58c5f 100644 --- a/mesalib/src/mesa/main/mtypes.h +++ b/mesalib/src/mesa/main/mtypes.h @@ -1924,6 +1924,7 @@ struct gl_geometry_program GLenum InputType; /**< GL_POINTS, GL_LINES, GL_LINES_ADJACENCY_ARB, GL_TRIANGLES, or GL_TRIANGLES_ADJACENCY_ARB */ GLenum OutputType; /**< GL_POINTS, GL_LINE_STRIP or GL_TRIANGLE_STRIP */ + GLboolean UsesClipDistance; }; @@ -2348,6 +2349,13 @@ struct gl_shader_program GLenum InputType; /**< GL_POINTS, GL_LINES, GL_LINES_ADJACENCY_ARB, GL_TRIANGLES, or GL_TRIANGLES_ADJACENCY_ARB */ GLenum OutputType; /**< GL_POINTS, GL_LINE_STRIP or GL_TRIANGLE_STRIP */ + /** + * True if gl_ClipDistance is written to. Copied into + * gl_geometry_program by _mesa_copy_linked_program_data(). + */ + GLboolean UsesClipDistance; + GLuint ClipDistanceArraySize; /**< Size of the gl_ClipDistance array, or + 0 if not present. */ } Geom; /** Vertex shader state */ diff --git a/mesalib/src/mesa/main/queryobj.c b/mesalib/src/mesa/main/queryobj.c index ca3a8549e..ccd5b0179 100644 --- a/mesalib/src/mesa/main/queryobj.c +++ b/mesalib/src/mesa/main/queryobj.c @@ -485,6 +485,7 @@ _mesa_QueryCounter(GLuint id, GLenum target) q->Target = target; q->Result = 0; q->Ready = GL_FALSE; + q->EverBound = GL_TRUE; if (ctx->Driver.QueryCounter) { ctx->Driver.QueryCounter(ctx, q); diff --git a/mesalib/src/mesa/main/shaderapi.c b/mesalib/src/mesa/main/shaderapi.c index d184b114c..4fe9d9ca2 100644 --- a/mesalib/src/mesa/main/shaderapi.c +++ b/mesalib/src/mesa/main/shaderapi.c @@ -1871,6 +1871,7 @@ _mesa_copy_linked_program_data(gl_shader_type type, dst_gp->VerticesOut = src->Geom.VerticesOut; dst_gp->InputType = src->Geom.InputType; dst_gp->OutputType = src->Geom.OutputType; + dst_gp->UsesClipDistance = src->Geom.UsesClipDistance; } break; default: diff --git a/mesalib/src/mesa/main/texcompress.c b/mesalib/src/mesa/main/texcompress.c index 58859440c..e71d0c411 100644 --- a/mesalib/src/mesa/main/texcompress.c +++ b/mesalib/src/mesa/main/texcompress.c @@ -264,20 +264,16 @@ _mesa_get_compressed_formats(struct gl_context *ctx, GLint *formats) n += 3; } } - if (_mesa_is_desktop_gl(ctx) - && ctx->Extensions.ANGLE_texture_compression_dxt) { - if (formats) { - formats[n++] = GL_RGB_S3TC; - formats[n++] = GL_RGB4_S3TC; - formats[n++] = GL_RGBA_S3TC; - formats[n++] = GL_RGBA4_S3TC; - } - else { - n += 4; - } - } - if (ctx->Extensions.OES_compressed_ETC1_RGB8_texture) { + /* The GL_OES_compressed_ETC1_RGB8_texture spec says: + * + * "New State + * + * The queries for NUM_COMPRESSED_TEXTURE_FORMATS and + * COMPRESSED_TEXTURE_FORMATS include ETC1_RGB8_OES." + */ + if (_mesa_is_gles(ctx) + && ctx->Extensions.OES_compressed_ETC1_RGB8_texture) { if (formats) { formats[n++] = GL_ETC1_RGB8_OES; } diff --git a/mesalib/src/mesa/program/prog_instruction.h b/mesalib/src/mesa/program/prog_instruction.h index be221819f..b9604e50d 100644 --- a/mesalib/src/mesa/program/prog_instruction.h +++ b/mesalib/src/mesa/program/prog_instruction.h @@ -386,6 +386,10 @@ struct prog_instruction }; +#ifdef __cplusplus +extern "C" { +#endif + extern void _mesa_init_instructions(struct prog_instruction *inst, GLuint count); @@ -419,4 +423,8 @@ extern const char * _mesa_opcode_string(gl_inst_opcode opcode); +#ifdef __cplusplus +} /* extern "C" */ +#endif + #endif /* PROG_INSTRUCTION_H */ diff --git a/mesalib/src/mesa/program/program.h b/mesalib/src/mesa/program/program.h index f28983894..34965ab99 100644 --- a/mesalib/src/mesa/program/program.h +++ b/mesalib/src/mesa/program/program.h @@ -44,6 +44,10 @@ #include "main/mtypes.h" +#ifdef __cplusplus +extern "C" { +#endif + extern struct gl_program _mesa_DummyProgram; @@ -256,4 +260,8 @@ gl_geometry_program_const(const struct gl_program *prog) } +#ifdef __cplusplus +} /* extern "C" */ +#endif + #endif /* PROGRAM_H */ |