aboutsummaryrefslogtreecommitdiff
path: root/mesalib
diff options
context:
space:
mode:
Diffstat (limited to 'mesalib')
-rw-r--r--mesalib/Makefile4
-rw-r--r--mesalib/docs/GL3.txt2
-rw-r--r--mesalib/src/glsl/ir_validate.cpp2
-rw-r--r--mesalib/src/mesa/main/texobj.c3
-rw-r--r--mesalib/src/mesa/main/uniform_query.cpp4
-rw-r--r--mesalib/src/mesa/state_tracker/st_gen_mipmap.c18
6 files changed, 25 insertions, 8 deletions
diff --git a/mesalib/Makefile b/mesalib/Makefile
index 77c9154ff..1368b44ea 100644
--- a/mesalib/Makefile
+++ b/mesalib/Makefile
@@ -266,4 +266,6 @@ md5: $(ARCHIVES)
@-md5sum $(PACKAGE_NAME).tar.bz2
@-md5sum $(PACKAGE_NAME).zip
-.PHONY: tarballs md5
+am--refresh:
+
+.PHONY: tarballs md5 am--refresh
diff --git a/mesalib/docs/GL3.txt b/mesalib/docs/GL3.txt
index f677b7681..c0bbf80ee 100644
--- a/mesalib/docs/GL3.txt
+++ b/mesalib/docs/GL3.txt
@@ -72,7 +72,7 @@ GLX_ARB_create_context_profile DONE
GL 3.3:
GLSL 3.30 not started
-GL_ARB_blend_func_extended not started
+GL_ARB_blend_func_extended started (airlied/ARB_blend_func_extended)
GL_ARB_explicit_attrib_location DONE (i915, i965, r300, r600, swrast)
GL_ARB_occlusion_query2 DONE (r300, r600, swrast)
GL_ARB_sampler_objects DONE (i965, r300, r600)
diff --git a/mesalib/src/glsl/ir_validate.cpp b/mesalib/src/glsl/ir_validate.cpp
index 20a0377d4..101d9992d 100644
--- a/mesalib/src/glsl/ir_validate.cpp
+++ b/mesalib/src/glsl/ir_validate.cpp
@@ -455,7 +455,7 @@ ir_validate::visit_leave(ir_expression *ir)
ir_visitor_status
ir_validate::visit_leave(ir_swizzle *ir)
{
- int chans[4] = {ir->mask.x, ir->mask.y, ir->mask.z, ir->mask.w};
+ unsigned int chans[4] = {ir->mask.x, ir->mask.y, ir->mask.z, ir->mask.w};
for (unsigned int i = 0; i < ir->type->vector_elements; i++) {
if (chans[i] >= ir->val->type->vector_elements) {
diff --git a/mesalib/src/mesa/main/texobj.c b/mesalib/src/mesa/main/texobj.c
index cfaac64bf..97bef3543 100644
--- a/mesalib/src/mesa/main/texobj.c
+++ b/mesalib/src/mesa/main/texobj.c
@@ -567,7 +567,8 @@ _mesa_test_texobj_completeness( const struct gl_context *ctx,
GLint i;
const GLint minLevel = baseLevel;
const GLint maxLevel = t->_MaxLevel;
- GLuint width, height, depth, face, numFaces = 1;
+ const GLuint numFaces = t->Target == GL_TEXTURE_CUBE_MAP ? 6 : 1;
+ GLuint width, height, depth, face;
if (minLevel > maxLevel) {
incomplete(t, BASE, "minLevel > maxLevel");
diff --git a/mesalib/src/mesa/main/uniform_query.cpp b/mesalib/src/mesa/main/uniform_query.cpp
index 991df7896..da41ee84c 100644
--- a/mesalib/src/mesa/main/uniform_query.cpp
+++ b/mesalib/src/mesa/main/uniform_query.cpp
@@ -905,8 +905,10 @@ _mesa_get_uniform_location(struct gl_context *ctx,
name_copy[i-1] = '\0';
offset = strtol(&name[i], NULL, 10);
- if (offset < 0)
+ if (offset < 0) {
+ free(name_copy);
return -1;
+ }
array_lookup = true;
} else {
diff --git a/mesalib/src/mesa/state_tracker/st_gen_mipmap.c b/mesalib/src/mesa/state_tracker/st_gen_mipmap.c
index d3496642f..889200686 100644
--- a/mesalib/src/mesa/state_tracker/st_gen_mipmap.c
+++ b/mesalib/src/mesa/state_tracker/st_gen_mipmap.c
@@ -233,10 +233,22 @@ st_generate_mipmap(struct gl_context *ctx, GLenum target,
= _mesa_get_tex_image(ctx, texObj, target, srcLevel);
struct gl_texture_image *dstImage;
struct st_texture_image *stImage;
- uint dstWidth = u_minify(pt->width0, dstLevel);
- uint dstHeight = u_minify(pt->height0, dstLevel);
- uint dstDepth = u_minify(pt->depth0, dstLevel);
uint border = srcImage->Border;
+ uint dstWidth, dstHeight, dstDepth;
+
+ dstWidth = u_minify(pt->width0, dstLevel);
+ if (texObj->Target == GL_TEXTURE_1D_ARRAY) {
+ dstHeight = pt->array_size;
+ }
+ else {
+ dstHeight = u_minify(pt->height0, dstLevel);
+ }
+ if (texObj->Target == GL_TEXTURE_2D_ARRAY) {
+ dstDepth = pt->array_size;
+ }
+ else {
+ dstDepth = u_minify(pt->depth0, dstLevel);
+ }
dstImage = _mesa_get_tex_image(ctx, texObj, target, dstLevel);
if (!dstImage) {