mesa-8.0.3-git.patch: Sync with 8.0 branch.
This commit is contained in:
parent
570b7c6d25
commit
2aab46f3c9
|
@ -0,0 +1,901 @@
|
|||
git diff-tree -p mesa-8.0.3..d715d3f4a82463a00a64d534747d80792508b97f
|
||||
|
||||
diff --git a/docs/relnotes-8.0.3.html b/docs/relnotes-8.0.3.html
|
||||
index 4e81da4..dd27bef 100644
|
||||
--- a/docs/relnotes-8.0.3.html
|
||||
+++ b/docs/relnotes-8.0.3.html
|
||||
@@ -28,7 +28,9 @@ for DRI hardware acceleration.
|
||||
|
||||
<h2>MD5 checksums</h2>
|
||||
<pre>
|
||||
-TBD.
|
||||
+b7210a6d6e4584bd852ab29294ce717e MesaLib-8.0.3.tar.gz
|
||||
+cc5ee15e306b8c15da6a478923797171 MesaLib-8.0.3.tar.bz2
|
||||
+32773634a0f7e70a680505a81426eccf MesaLib-8.0.3.zip
|
||||
</pre>
|
||||
|
||||
<h2>New features</h2>
|
||||
diff --git a/docs/relnotes.html b/docs/relnotes.html
|
||||
index 23337cf..1bc889a 100644
|
||||
--- a/docs/relnotes.html
|
||||
+++ b/docs/relnotes.html
|
||||
@@ -13,6 +13,7 @@ The release notes summarize what's new or changed in each Mesa release.
|
||||
</p>
|
||||
|
||||
<UL>
|
||||
+<LI><A HREF="relnotes-8.0.3.html">8.0.3 release notes</A>
|
||||
<LI><A HREF="relnotes-8.0.2.html">8.0.2 release notes</A>
|
||||
<LI><A HREF="relnotes-8.0.1.html">8.0.1 release notes</A>
|
||||
<LI><A HREF="relnotes-8.0.html">8.0 release notes</A>
|
||||
diff --git a/src/gallium/auxiliary/draw/draw_pt.c b/src/gallium/auxiliary/draw/draw_pt.c
|
||||
index 080e03d..c098c05 100644
|
||||
--- a/src/gallium/auxiliary/draw/draw_pt.c
|
||||
+++ b/src/gallium/auxiliary/draw/draw_pt.c
|
||||
@@ -329,25 +329,28 @@ draw_pt_arrays_restart(struct draw_context *draw,
|
||||
|
||||
if (draw->pt.user.elts) {
|
||||
/* indexed prims (draw_elements) */
|
||||
+ const char *elts =
|
||||
+ (const char *) draw->pt.user.elts + draw->pt.index_buffer.offset;
|
||||
+
|
||||
cur_start = start;
|
||||
cur_count = 0;
|
||||
|
||||
switch (draw->pt.user.eltSize) {
|
||||
case 1:
|
||||
{
|
||||
- const ubyte *elt_ub = (const ubyte *) draw->pt.user.elts;
|
||||
+ const ubyte *elt_ub = (const ubyte *) elts;
|
||||
PRIM_RESTART_LOOP(elt_ub);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
- const ushort *elt_us = (const ushort *) draw->pt.user.elts;
|
||||
+ const ushort *elt_us = (const ushort *) elts;
|
||||
PRIM_RESTART_LOOP(elt_us);
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
{
|
||||
- const uint *elt_ui = (const uint *) draw->pt.user.elts;
|
||||
+ const uint *elt_ui = (const uint *) elts;
|
||||
PRIM_RESTART_LOOP(elt_ui);
|
||||
}
|
||||
break;
|
||||
diff --git a/src/gallium/drivers/nv50/nv50_pc_emit.c b/src/gallium/drivers/nv50/nv50_pc_emit.c
|
||||
index 2b177c6..30079ba 100644
|
||||
--- a/src/gallium/drivers/nv50/nv50_pc_emit.c
|
||||
+++ b/src/gallium/drivers/nv50/nv50_pc_emit.c
|
||||
@@ -865,8 +865,10 @@ emit_flop(struct nv_pc *pc, struct nv_instruction *i)
|
||||
assert(SFILE(i, 0) == NV_FILE_GPR);
|
||||
|
||||
if (!i->is_long) {
|
||||
+ assert(i->opcode == NV_OP_RCP);
|
||||
emit_form_MUL(pc, i);
|
||||
- assert(i->opcode == NV_OP_RCP && !src0->mod);
|
||||
+ if (src0->mod & NV_MOD_NEG) pc->emit[0] |= 0x00400000;
|
||||
+ if (src0->mod & NV_MOD_ABS) pc->emit[0] |= 0x00008000;
|
||||
return;
|
||||
}
|
||||
|
||||
diff --git a/src/gallium/drivers/svga/svga_surface.c b/src/gallium/drivers/svga/svga_surface.c
|
||||
index 2f9379b..942c0ee 100644
|
||||
--- a/src/gallium/drivers/svga/svga_surface.c
|
||||
+++ b/src/gallium/drivers/svga/svga_surface.c
|
||||
@@ -320,6 +320,11 @@ svga_mark_surface_dirty(struct pipe_surface *surf)
|
||||
else {
|
||||
/* this will happen later in svga_propagate_surface */
|
||||
}
|
||||
+
|
||||
+ /* Increment the view_age and texture age for this surface's slice
|
||||
+ * so that any sampler views into the texture are re-validated too.
|
||||
+ */
|
||||
+ tex->view_age[surf->u.tex.first_layer] = ++(tex->age);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/src/gallium/state_trackers/vega/vg_translate.c b/src/gallium/state_trackers/vega/vg_translate.c
|
||||
index 06cc003..7b3df27 100644
|
||||
--- a/src/gallium/state_trackers/vega/vg_translate.c
|
||||
+++ b/src/gallium/state_trackers/vega/vg_translate.c
|
||||
@@ -526,8 +526,8 @@ void _vega_unpack_float_span_rgba(struct vg_context *ctx,
|
||||
src += offset;
|
||||
for (i = 0; i < n; ++i) {
|
||||
VGfloat clr[4];
|
||||
- clr[0] = ((*src >> 10) & 31)/31.;
|
||||
- clr[1] = ((*src >> 5) & 95)/95.;
|
||||
+ clr[0] = ((*src >> 11) & 31)/31.;
|
||||
+ clr[1] = ((*src >> 5) & 63)/63.;
|
||||
clr[2] = ((*src >> 0) & 31)/31.;
|
||||
clr[3] = 1.f;
|
||||
|
||||
diff --git a/src/mesa/drivers/dri/i965/brw_eu.c b/src/mesa/drivers/dri/i965/brw_eu.c
|
||||
index 2b0593a..75a4205 100644
|
||||
--- a/src/mesa/drivers/dri/i965/brw_eu.c
|
||||
+++ b/src/mesa/drivers/dri/i965/brw_eu.c
|
||||
@@ -47,13 +47,13 @@ brw_swap_cmod(uint32_t cmod)
|
||||
case BRW_CONDITIONAL_NZ:
|
||||
return cmod;
|
||||
case BRW_CONDITIONAL_G:
|
||||
- return BRW_CONDITIONAL_LE;
|
||||
- case BRW_CONDITIONAL_GE:
|
||||
return BRW_CONDITIONAL_L;
|
||||
+ case BRW_CONDITIONAL_GE:
|
||||
+ return BRW_CONDITIONAL_LE;
|
||||
case BRW_CONDITIONAL_L:
|
||||
- return BRW_CONDITIONAL_GE;
|
||||
- case BRW_CONDITIONAL_LE:
|
||||
return BRW_CONDITIONAL_G;
|
||||
+ case BRW_CONDITIONAL_LE:
|
||||
+ return BRW_CONDITIONAL_GE;
|
||||
default:
|
||||
return ~0;
|
||||
}
|
||||
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c
|
||||
index de4820b..32da289 100644
|
||||
--- a/src/mesa/main/bufferobj.c
|
||||
+++ b/src/mesa/main/bufferobj.c
|
||||
@@ -524,7 +524,7 @@ _mesa_copy_buffer_subdata(struct gl_context *ctx,
|
||||
GLintptr readOffset, GLintptr writeOffset,
|
||||
GLsizeiptr size)
|
||||
{
|
||||
- void *srcPtr, *dstPtr;
|
||||
+ GLubyte *srcPtr, *dstPtr;
|
||||
|
||||
/* the buffers should not be mapped */
|
||||
assert(!_mesa_bufferobj_mapped(src));
|
||||
@@ -1311,6 +1311,12 @@ _mesa_CopyBufferSubData(GLenum readTarget, GLenum writeTarget,
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (size < 0) {
|
||||
+ _mesa_error(ctx, GL_INVALID_VALUE,
|
||||
+ "glCopyBufferSubData(writeOffset = %d)", (int) size);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
if (readOffset + size > src->Size) {
|
||||
_mesa_error(ctx, GL_INVALID_VALUE,
|
||||
"glCopyBuffserSubData(readOffset + size = %d)",
|
||||
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
|
||||
index b5b10aa..64f592a 100644
|
||||
--- a/src/mesa/main/fbobject.c
|
||||
+++ b/src/mesa/main/fbobject.c
|
||||
@@ -1245,7 +1245,8 @@ _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat)
|
||||
case GL_RGBA8I_EXT:
|
||||
case GL_RGBA16I_EXT:
|
||||
case GL_RGBA32I_EXT:
|
||||
- return ctx->Extensions.EXT_texture_integer ? GL_RGBA : 0;
|
||||
+ return ctx->VersionMajor >= 3 ||
|
||||
+ ctx->Extensions.EXT_texture_integer ? GL_RGBA : 0;
|
||||
|
||||
case GL_RGB8UI_EXT:
|
||||
case GL_RGB16UI_EXT:
|
||||
@@ -1253,7 +1254,8 @@ _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat)
|
||||
case GL_RGB8I_EXT:
|
||||
case GL_RGB16I_EXT:
|
||||
case GL_RGB32I_EXT:
|
||||
- return ctx->Extensions.EXT_texture_integer ? GL_RGB : 0;
|
||||
+ return ctx->VersionMajor >= 3 ||
|
||||
+ ctx->Extensions.EXT_texture_integer ? GL_RGB : 0;
|
||||
|
||||
case GL_R8UI:
|
||||
case GL_R8I:
|
||||
@@ -1261,8 +1263,9 @@ _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat)
|
||||
case GL_R16I:
|
||||
case GL_R32UI:
|
||||
case GL_R32I:
|
||||
- return ctx->Extensions.ARB_texture_rg &&
|
||||
- ctx->Extensions.EXT_texture_integer ? GL_RED : 0;
|
||||
+ return ctx->VersionMajor >= 3 ||
|
||||
+ (ctx->Extensions.ARB_texture_rg &&
|
||||
+ ctx->Extensions.EXT_texture_integer) ? GL_RED : 0;
|
||||
|
||||
case GL_RG8UI:
|
||||
case GL_RG8I:
|
||||
@@ -1270,8 +1273,9 @@ _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat)
|
||||
case GL_RG16I:
|
||||
case GL_RG32UI:
|
||||
case GL_RG32I:
|
||||
- return ctx->Extensions.ARB_texture_rg &&
|
||||
- ctx->Extensions.EXT_texture_integer ? GL_RG : 0;
|
||||
+ return ctx->VersionMajor >= 3 ||
|
||||
+ (ctx->Extensions.ARB_texture_rg &&
|
||||
+ ctx->Extensions.EXT_texture_integer) ? GL_RG : 0;
|
||||
|
||||
case GL_INTENSITY8I_EXT:
|
||||
case GL_INTENSITY8UI_EXT:
|
||||
diff --git a/src/mesa/main/format_unpack.c b/src/mesa/main/format_unpack.c
|
||||
index a484979..fece8d9 100644
|
||||
--- a/src/mesa/main/format_unpack.c
|
||||
+++ b/src/mesa/main/format_unpack.c
|
||||
@@ -2922,7 +2922,7 @@ unpack_uint_z_Z32_FLOAT(const void *src, GLuint *dst, GLuint n)
|
||||
const float *s = (const float *)src;
|
||||
GLuint i;
|
||||
for (i = 0; i < n; i++) {
|
||||
- dst[i] = FLOAT_TO_UINT(IROUND(CLAMP((s[i]), 0.0F, 1.0F)));
|
||||
+ dst[i] = FLOAT_TO_UINT(CLAMP(s[i], 0.0F, 1.0F));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2938,7 +2938,7 @@ unpack_uint_z_Z32_FLOAT_X24S8(const void *src, GLuint *dst, GLuint n)
|
||||
GLuint i;
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
- dst[i] = FLOAT_TO_UINT(IROUND(CLAMP((s[i].z), 0.0F, 1.0F)));
|
||||
+ dst[i] = FLOAT_TO_UINT(CLAMP(s[i].z, 0.0F, 1.0F));
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c
|
||||
index 8b65cf0..b6c2645 100644
|
||||
--- a/src/mesa/main/image.c
|
||||
+++ b/src/mesa/main/image.c
|
||||
@@ -356,18 +356,92 @@ _mesa_bytes_per_pixel( GLenum format, GLenum type )
|
||||
|
||||
|
||||
/**
|
||||
- * Test for a legal pixel format and type.
|
||||
+ * Do error checking of format/type combinations for glReadPixels,
|
||||
+ * glDrawPixels and glTex[Sub]Image. Note that depending on the format
|
||||
+ * and type values, we may either generate GL_INVALID_OPERATION or
|
||||
+ * GL_INVALID_ENUM.
|
||||
*
|
||||
* \param format pixel format.
|
||||
* \param type pixel type.
|
||||
*
|
||||
- * \return GL_TRUE if the given pixel format and type are legal, or GL_FALSE
|
||||
- * otherwise.
|
||||
+ * \return GL_INVALID_ENUM, GL_INVALID_OPERATION or GL_NO_ERROR
|
||||
*/
|
||||
-GLboolean
|
||||
-_mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
- GLenum format, GLenum type)
|
||||
+GLenum
|
||||
+_mesa_error_check_format_and_type(const struct gl_context *ctx,
|
||||
+ GLenum format, GLenum type)
|
||||
{
|
||||
+ /* special type-based checks (see glReadPixels, glDrawPixels error lists) */
|
||||
+ switch (type) {
|
||||
+ case GL_BITMAP:
|
||||
+ if (format != GL_COLOR_INDEX && format != GL_STENCIL_INDEX) {
|
||||
+ return GL_INVALID_ENUM;
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
+ case GL_UNSIGNED_BYTE_3_3_2:
|
||||
+ case GL_UNSIGNED_BYTE_2_3_3_REV:
|
||||
+ case GL_UNSIGNED_SHORT_5_6_5:
|
||||
+ case GL_UNSIGNED_SHORT_5_6_5_REV:
|
||||
+ if (format == GL_RGB) {
|
||||
+ break; /* OK */
|
||||
+ }
|
||||
+ if (format == GL_RGB_INTEGER_EXT &&
|
||||
+ ctx->Extensions.ARB_texture_rgb10_a2ui) {
|
||||
+ break; /* OK */
|
||||
+ }
|
||||
+ return GL_INVALID_OPERATION;
|
||||
+
|
||||
+ case GL_UNSIGNED_SHORT_4_4_4_4:
|
||||
+ case GL_UNSIGNED_SHORT_4_4_4_4_REV:
|
||||
+ case GL_UNSIGNED_SHORT_5_5_5_1:
|
||||
+ case GL_UNSIGNED_SHORT_1_5_5_5_REV:
|
||||
+ case GL_UNSIGNED_INT_8_8_8_8:
|
||||
+ case GL_UNSIGNED_INT_8_8_8_8_REV:
|
||||
+ case GL_UNSIGNED_INT_10_10_10_2:
|
||||
+ case GL_UNSIGNED_INT_2_10_10_10_REV:
|
||||
+ if (format == GL_RGBA ||
|
||||
+ format == GL_BGRA ||
|
||||
+ format == GL_ABGR_EXT) {
|
||||
+ break; /* OK */
|
||||
+ }
|
||||
+ if ((format == GL_RGBA_INTEGER_EXT || format == GL_BGRA_INTEGER_EXT) &&
|
||||
+ ctx->Extensions.ARB_texture_rgb10_a2ui) {
|
||||
+ break; /* OK */
|
||||
+ }
|
||||
+ return GL_INVALID_OPERATION;
|
||||
+
|
||||
+ case GL_UNSIGNED_INT_24_8:
|
||||
+ if (!ctx->Extensions.EXT_packed_depth_stencil) {
|
||||
+ return GL_INVALID_ENUM;
|
||||
+ }
|
||||
+ if (format != GL_DEPTH_STENCIL) {
|
||||
+ return GL_INVALID_OPERATION;
|
||||
+ }
|
||||
+ return GL_NO_ERROR;
|
||||
+
|
||||
+ case GL_FLOAT_32_UNSIGNED_INT_24_8_REV:
|
||||
+ if (!ctx->Extensions.ARB_depth_buffer_float) {
|
||||
+ return GL_INVALID_ENUM;
|
||||
+ }
|
||||
+ if (format != GL_DEPTH_STENCIL) {
|
||||
+ return GL_INVALID_OPERATION;
|
||||
+ }
|
||||
+ return GL_NO_ERROR;
|
||||
+
|
||||
+ case GL_UNSIGNED_INT_10F_11F_11F_REV:
|
||||
+ if (!ctx->Extensions.EXT_packed_float) {
|
||||
+ return GL_INVALID_ENUM;
|
||||
+ }
|
||||
+ if (format != GL_RGB) {
|
||||
+ return GL_INVALID_OPERATION;
|
||||
+ }
|
||||
+ return GL_NO_ERROR;
|
||||
+
|
||||
+ default:
|
||||
+ ; /* fall-through */
|
||||
+ }
|
||||
+
|
||||
+ /* now, for each format, check the type for compatibility */
|
||||
switch (format) {
|
||||
case GL_COLOR_INDEX:
|
||||
case GL_STENCIL_INDEX:
|
||||
@@ -380,12 +454,14 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
case GL_INT:
|
||||
case GL_UNSIGNED_INT:
|
||||
case GL_FLOAT:
|
||||
- return GL_TRUE;
|
||||
- case GL_HALF_FLOAT_ARB:
|
||||
- return ctx->Extensions.ARB_half_float_pixel;
|
||||
+ return GL_NO_ERROR;
|
||||
+ case GL_HALF_FLOAT:
|
||||
+ return ctx->Extensions.ARB_half_float_pixel
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
default:
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_ENUM;
|
||||
}
|
||||
+
|
||||
case GL_RED:
|
||||
case GL_GREEN:
|
||||
case GL_BLUE:
|
||||
@@ -404,16 +480,17 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
case GL_INT:
|
||||
case GL_UNSIGNED_INT:
|
||||
case GL_FLOAT:
|
||||
- return GL_TRUE;
|
||||
- case GL_HALF_FLOAT_ARB:
|
||||
- return ctx->Extensions.ARB_half_float_pixel;
|
||||
+ return GL_NO_ERROR;
|
||||
+ case GL_HALF_FLOAT:
|
||||
+ return ctx->Extensions.ARB_half_float_pixel
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
default:
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_ENUM;
|
||||
}
|
||||
+
|
||||
case GL_RG:
|
||||
if (!ctx->Extensions.ARB_texture_rg)
|
||||
- return GL_FALSE;
|
||||
-
|
||||
+ return GL_INVALID_ENUM;
|
||||
switch (type) {
|
||||
case GL_BYTE:
|
||||
case GL_UNSIGNED_BYTE:
|
||||
@@ -422,12 +499,14 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
case GL_INT:
|
||||
case GL_UNSIGNED_INT:
|
||||
case GL_FLOAT:
|
||||
- return GL_TRUE;
|
||||
- case GL_HALF_FLOAT_ARB:
|
||||
- return ctx->Extensions.ARB_half_float_pixel;
|
||||
+ return GL_NO_ERROR;
|
||||
+ case GL_HALF_FLOAT:
|
||||
+ return ctx->Extensions.ARB_half_float_pixel
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
default:
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_ENUM;
|
||||
}
|
||||
+
|
||||
case GL_RGB:
|
||||
switch (type) {
|
||||
case GL_BYTE:
|
||||
@@ -441,16 +520,20 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
case GL_UNSIGNED_BYTE_2_3_3_REV:
|
||||
case GL_UNSIGNED_SHORT_5_6_5:
|
||||
case GL_UNSIGNED_SHORT_5_6_5_REV:
|
||||
- return GL_TRUE;
|
||||
- case GL_HALF_FLOAT_ARB:
|
||||
- return ctx->Extensions.ARB_half_float_pixel;
|
||||
+ return GL_NO_ERROR;
|
||||
+ case GL_HALF_FLOAT:
|
||||
+ return ctx->Extensions.ARB_half_float_pixel
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
case GL_UNSIGNED_INT_5_9_9_9_REV:
|
||||
- return ctx->Extensions.EXT_texture_shared_exponent;
|
||||
+ return ctx->Extensions.EXT_texture_shared_exponent
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
case GL_UNSIGNED_INT_10F_11F_11F_REV:
|
||||
- return ctx->Extensions.EXT_packed_float;
|
||||
+ return ctx->Extensions.EXT_packed_float
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
default:
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_ENUM;
|
||||
}
|
||||
+
|
||||
case GL_BGR:
|
||||
switch (type) {
|
||||
/* NOTE: no packed types are supported with BGR. That's
|
||||
@@ -463,12 +546,14 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
case GL_INT:
|
||||
case GL_UNSIGNED_INT:
|
||||
case GL_FLOAT:
|
||||
- return GL_TRUE;
|
||||
- case GL_HALF_FLOAT_ARB:
|
||||
- return ctx->Extensions.ARB_half_float_pixel;
|
||||
+ return GL_NO_ERROR;
|
||||
+ case GL_HALF_FLOAT:
|
||||
+ return ctx->Extensions.ARB_half_float_pixel
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
default:
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_ENUM;
|
||||
}
|
||||
+
|
||||
case GL_RGBA:
|
||||
case GL_BGRA:
|
||||
case GL_ABGR_EXT:
|
||||
@@ -488,28 +573,37 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
case GL_UNSIGNED_INT_8_8_8_8_REV:
|
||||
case GL_UNSIGNED_INT_10_10_10_2:
|
||||
case GL_UNSIGNED_INT_2_10_10_10_REV:
|
||||
- return GL_TRUE;
|
||||
- case GL_HALF_FLOAT_ARB:
|
||||
- return ctx->Extensions.ARB_half_float_pixel;
|
||||
+ return GL_NO_ERROR;
|
||||
+ case GL_HALF_FLOAT:
|
||||
+ return ctx->Extensions.ARB_half_float_pixel
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
default:
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_ENUM;
|
||||
}
|
||||
+
|
||||
case GL_YCBCR_MESA:
|
||||
+ if (!ctx->Extensions.MESA_ycbcr_texture)
|
||||
+ return GL_INVALID_ENUM;
|
||||
if (type == GL_UNSIGNED_SHORT_8_8_MESA ||
|
||||
type == GL_UNSIGNED_SHORT_8_8_REV_MESA)
|
||||
- return GL_TRUE;
|
||||
+ return GL_NO_ERROR;
|
||||
else
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_OPERATION;
|
||||
+
|
||||
case GL_DEPTH_STENCIL_EXT:
|
||||
- if ((ctx->Extensions.EXT_packed_depth_stencil &&
|
||||
- type == GL_UNSIGNED_INT_24_8_EXT) ||
|
||||
- (ctx->Extensions.ARB_depth_buffer_float &&
|
||||
- type == GL_FLOAT_32_UNSIGNED_INT_24_8_REV))
|
||||
- return GL_TRUE;
|
||||
+ if (ctx->Extensions.EXT_packed_depth_stencil &&
|
||||
+ type == GL_UNSIGNED_INT_24_8)
|
||||
+ return GL_NO_ERROR;
|
||||
+ else if (ctx->Extensions.ARB_depth_buffer_float &&
|
||||
+ type == GL_FLOAT_32_UNSIGNED_INT_24_8_REV)
|
||||
+ return GL_NO_ERROR;
|
||||
else
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_ENUM;
|
||||
+
|
||||
case GL_DUDV_ATI:
|
||||
case GL_DU8DV8_ATI:
|
||||
+ if (!ctx->Extensions.ATI_envmap_bumpmap)
|
||||
+ return GL_INVALID_ENUM;
|
||||
switch (type) {
|
||||
case GL_BYTE:
|
||||
case GL_UNSIGNED_BYTE:
|
||||
@@ -518,9 +612,9 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
case GL_INT:
|
||||
case GL_UNSIGNED_INT:
|
||||
case GL_FLOAT:
|
||||
- return GL_TRUE;
|
||||
+ return GL_NO_ERROR;
|
||||
default:
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_ENUM;
|
||||
}
|
||||
|
||||
/* integer-valued formats */
|
||||
@@ -536,9 +630,11 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
case GL_UNSIGNED_SHORT:
|
||||
case GL_INT:
|
||||
case GL_UNSIGNED_INT:
|
||||
- return ctx->Extensions.EXT_texture_integer;
|
||||
+ return (ctx->VersionMajor >= 3 ||
|
||||
+ ctx->Extensions.EXT_texture_integer)
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
default:
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_ENUM;
|
||||
}
|
||||
|
||||
case GL_RGB_INTEGER_EXT:
|
||||
@@ -549,14 +645,17 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
case GL_UNSIGNED_SHORT:
|
||||
case GL_INT:
|
||||
case GL_UNSIGNED_INT:
|
||||
- return ctx->Extensions.EXT_texture_integer;
|
||||
+ return (ctx->VersionMajor >= 3 ||
|
||||
+ ctx->Extensions.EXT_texture_integer)
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
case GL_UNSIGNED_BYTE_3_3_2:
|
||||
case GL_UNSIGNED_BYTE_2_3_3_REV:
|
||||
case GL_UNSIGNED_SHORT_5_6_5:
|
||||
case GL_UNSIGNED_SHORT_5_6_5_REV:
|
||||
- return ctx->Extensions.ARB_texture_rgb10_a2ui;
|
||||
+ return ctx->Extensions.ARB_texture_rgb10_a2ui
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
default:
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_ENUM;
|
||||
}
|
||||
|
||||
case GL_BGR_INTEGER_EXT:
|
||||
@@ -568,9 +667,11 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
case GL_INT:
|
||||
case GL_UNSIGNED_INT:
|
||||
/* NOTE: no packed formats w/ BGR format */
|
||||
- return ctx->Extensions.EXT_texture_integer;
|
||||
+ return (ctx->VersionMajor >= 3 ||
|
||||
+ ctx->Extensions.EXT_texture_integer)
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
default:
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_ENUM;
|
||||
}
|
||||
|
||||
case GL_RGBA_INTEGER_EXT:
|
||||
@@ -582,7 +683,9 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
case GL_UNSIGNED_SHORT:
|
||||
case GL_INT:
|
||||
case GL_UNSIGNED_INT:
|
||||
- return ctx->Extensions.EXT_texture_integer;
|
||||
+ return (ctx->VersionMajor >= 3 ||
|
||||
+ ctx->Extensions.EXT_texture_integer)
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
case GL_UNSIGNED_SHORT_4_4_4_4:
|
||||
case GL_UNSIGNED_SHORT_4_4_4_4_REV:
|
||||
case GL_UNSIGNED_SHORT_5_5_5_1:
|
||||
@@ -591,9 +694,10 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
case GL_UNSIGNED_INT_8_8_8_8_REV:
|
||||
case GL_UNSIGNED_INT_10_10_10_2:
|
||||
case GL_UNSIGNED_INT_2_10_10_10_REV:
|
||||
- return ctx->Extensions.ARB_texture_rgb10_a2ui;
|
||||
+ return ctx->Extensions.ARB_texture_rgb10_a2ui
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
default:
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_ENUM;
|
||||
}
|
||||
|
||||
case GL_LUMINANCE_INTEGER_EXT:
|
||||
@@ -605,15 +709,16 @@ _mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
case GL_UNSIGNED_SHORT:
|
||||
case GL_INT:
|
||||
case GL_UNSIGNED_INT:
|
||||
- return ctx->Extensions.EXT_texture_integer;
|
||||
+ return ctx->Extensions.EXT_texture_integer
|
||||
+ ? GL_NO_ERROR : GL_INVALID_ENUM;
|
||||
default:
|
||||
- return GL_FALSE;
|
||||
+ return GL_INVALID_ENUM;
|
||||
}
|
||||
|
||||
default:
|
||||
- ; /* fall-through */
|
||||
+ return GL_INVALID_ENUM;
|
||||
}
|
||||
- return GL_FALSE;
|
||||
+ return GL_NO_ERROR;
|
||||
}
|
||||
|
||||
|
||||
diff --git a/src/mesa/main/image.h b/src/mesa/main/image.h
|
||||
index e4961ed..f1ed883 100644
|
||||
--- a/src/mesa/main/image.h
|
||||
+++ b/src/mesa/main/image.h
|
||||
@@ -53,9 +53,9 @@ _mesa_components_in_format( GLenum format );
|
||||
extern GLint
|
||||
_mesa_bytes_per_pixel( GLenum format, GLenum type );
|
||||
|
||||
-extern GLboolean
|
||||
-_mesa_is_legal_format_and_type(const struct gl_context *ctx,
|
||||
- GLenum format, GLenum type);
|
||||
+extern GLenum
|
||||
+_mesa_error_check_format_and_type(const struct gl_context *ctx,
|
||||
+ GLenum format, GLenum type);
|
||||
|
||||
extern GLboolean
|
||||
_mesa_is_color_format(GLenum format);
|
||||
diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c
|
||||
index 6c041fa..d0947d6 100644
|
||||
--- a/src/mesa/main/readpix.c
|
||||
+++ b/src/mesa/main/readpix.c
|
||||
@@ -650,6 +650,7 @@ _mesa_error_check_format_type(struct gl_context *ctx, GLenum format,
|
||||
{
|
||||
const char *readDraw = drawing ? "Draw" : "Read";
|
||||
const GLboolean reading = !drawing;
|
||||
+ GLenum err;
|
||||
|
||||
/* state validation should have already been done */
|
||||
ASSERT(ctx->NewState == 0x0);
|
||||
@@ -671,9 +672,9 @@ _mesa_error_check_format_type(struct gl_context *ctx, GLenum format,
|
||||
}
|
||||
|
||||
/* basic combinations test */
|
||||
- if (!_mesa_is_legal_format_and_type(ctx, format, type)) {
|
||||
- _mesa_error(ctx, GL_INVALID_ENUM,
|
||||
- "gl%sPixels(format or type)", readDraw);
|
||||
+ err = _mesa_error_check_format_and_type(ctx, format, type);
|
||||
+ if (err != GL_NO_ERROR) {
|
||||
+ _mesa_error(ctx, err, "gl%sPixels(format or type)", readDraw);
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
@@ -777,7 +778,7 @@ _mesa_error_check_format_type(struct gl_context *ctx, GLenum format,
|
||||
}
|
||||
break;
|
||||
default:
|
||||
- /* this should have been caught in _mesa_is_legal_format_type() */
|
||||
+ /* this should have been caught in _mesa_error_check_format_type() */
|
||||
_mesa_problem(ctx, "unexpected format in _mesa_%sPixels", readDraw);
|
||||
return GL_TRUE;
|
||||
}
|
||||
diff --git a/src/mesa/main/texformat.c b/src/mesa/main/texformat.c
|
||||
index 259eb90..5fdc2ab 100644
|
||||
--- a/src/mesa/main/texformat.c
|
||||
+++ b/src/mesa/main/texformat.c
|
||||
@@ -706,6 +706,12 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_INTENSITY_INT32);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_INT32);
|
||||
break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (ctx->VersionMajor >= 3 ||
|
||||
+ ctx->Extensions.EXT_texture_integer) {
|
||||
+ switch (internalFormat) {
|
||||
case GL_RGB8UI_EXT:
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGB_UINT8);
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_RGBA_UINT8);
|
||||
@@ -822,7 +828,9 @@ _mesa_choose_tex_format( struct gl_context *ctx, GLint internalFormat,
|
||||
}
|
||||
}
|
||||
|
||||
- if (ctx->Extensions.ARB_texture_rg && ctx->Extensions.EXT_texture_integer) {
|
||||
+ if (ctx->VersionMajor >= 3 ||
|
||||
+ (ctx->Extensions.ARB_texture_rg &&
|
||||
+ ctx->Extensions.EXT_texture_integer)) {
|
||||
switch (internalFormat) {
|
||||
case GL_R8UI:
|
||||
RETURN_IF_SUPPORTED(MESA_FORMAT_R_UINT8);
|
||||
diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
|
||||
index 76ac5a2..254199b 100644
|
||||
--- a/src/mesa/main/texgetimage.c
|
||||
+++ b/src/mesa/main/texgetimage.c
|
||||
@@ -691,7 +691,7 @@ getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level,
|
||||
struct gl_texture_image *texImage;
|
||||
const GLint maxLevels = _mesa_max_texture_levels(ctx, target);
|
||||
const GLuint dimensions = (target == GL_TEXTURE_3D) ? 3 : 2;
|
||||
- GLenum baseFormat;
|
||||
+ GLenum baseFormat, err;
|
||||
|
||||
if (maxLevels == 0) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glGetTexImage(target=0x%x)", target);
|
||||
@@ -734,6 +734,12 @@ getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level,
|
||||
if (!ctx->Extensions.ATI_envmap_bumpmap
|
||||
&& _mesa_is_dudv_format(format)) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glGetTexImage(format)");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ err = _mesa_error_check_format_and_type(ctx, format, type);
|
||||
+ if (err != GL_NO_ERROR) {
|
||||
+ _mesa_error(ctx, err, "glGetTexImage(format/type)");
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
@@ -744,14 +750,6 @@ getteximage_error_check(struct gl_context *ctx, GLenum target, GLint level,
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
- if (!_mesa_is_legal_format_and_type(ctx, format, type)) {
|
||||
- /* GL_INVALID_OPERATION is generated by a format/type
|
||||
- * mismatch (see the 1.2 spec page 94, sec 3.6.4.)
|
||||
- */
|
||||
- _mesa_error(ctx, GL_INVALID_OPERATION, "glGetTexImage(target)");
|
||||
- return GL_TRUE;
|
||||
- }
|
||||
-
|
||||
texImage = _mesa_select_tex_image(ctx, texObj, target, level);
|
||||
if (!texImage) {
|
||||
/* non-existant texture image */
|
||||
diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
|
||||
index c347f59..077c196 100644
|
||||
--- a/src/mesa/main/teximage.c
|
||||
+++ b/src/mesa/main/teximage.c
|
||||
@@ -323,7 +323,8 @@ _mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat )
|
||||
}
|
||||
#endif /* FEATURE_EXT_texture_sRGB */
|
||||
|
||||
- if (ctx->Extensions.EXT_texture_integer) {
|
||||
+ if (ctx->VersionMajor >= 3 ||
|
||||
+ ctx->Extensions.EXT_texture_integer) {
|
||||
switch (internalFormat) {
|
||||
case GL_RGBA8UI_EXT:
|
||||
case GL_RGBA16UI_EXT:
|
||||
@@ -340,6 +341,11 @@ _mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat )
|
||||
case GL_RGB16I_EXT:
|
||||
case GL_RGB32I_EXT:
|
||||
return GL_RGB;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (ctx->Extensions.EXT_texture_integer) {
|
||||
+ switch (internalFormat) {
|
||||
case GL_ALPHA8UI_EXT:
|
||||
case GL_ALPHA16UI_EXT:
|
||||
case GL_ALPHA32UI_EXT:
|
||||
@@ -391,7 +397,7 @@ _mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat )
|
||||
case GL_R16UI:
|
||||
case GL_R32I:
|
||||
case GL_R32UI:
|
||||
- if (!ctx->Extensions.EXT_texture_integer)
|
||||
+ if (ctx->VersionMajor < 3 && !ctx->Extensions.EXT_texture_integer)
|
||||
break;
|
||||
/* FALLTHROUGH */
|
||||
case GL_R8:
|
||||
@@ -416,7 +422,7 @@ _mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat )
|
||||
case GL_RG16UI:
|
||||
case GL_RG32I:
|
||||
case GL_RG32UI:
|
||||
- if (!ctx->Extensions.EXT_texture_integer)
|
||||
+ if (ctx->VersionMajor < 3 && !ctx->Extensions.EXT_texture_integer)
|
||||
break;
|
||||
/* FALLTHROUGH */
|
||||
case GL_RG:
|
||||
@@ -1578,6 +1584,7 @@ texture_error_check( struct gl_context *ctx,
|
||||
const GLboolean isProxy = target == proxyTarget;
|
||||
GLboolean sizeOK = GL_TRUE;
|
||||
GLboolean colorFormat;
|
||||
+ GLenum err;
|
||||
|
||||
/* Even though there are no color-index textures, we still have to support
|
||||
* uploading color-index data and remapping it to RGB via the
|
||||
@@ -1646,16 +1653,10 @@ texture_error_check( struct gl_context *ctx,
|
||||
}
|
||||
|
||||
/* Check incoming image format and type */
|
||||
- if (!_mesa_is_legal_format_and_type(ctx, format, type)) {
|
||||
- /* Normally, GL_INVALID_OPERATION is generated by a format/type
|
||||
- * mismatch (see the 1.2 spec page 94, sec 3.6.4.). But with the
|
||||
- * GL_EXT_texture_integer extension, some combinations should generate
|
||||
- * GL_INVALID_ENUM instead (grr!).
|
||||
- */
|
||||
+ err = _mesa_error_check_format_and_type(ctx, format, type);
|
||||
+ if (err != GL_NO_ERROR) {
|
||||
if (!isProxy) {
|
||||
- GLenum error = _mesa_is_integer_format(format)
|
||||
- ? GL_INVALID_ENUM : GL_INVALID_OPERATION;
|
||||
- _mesa_error(ctx, error,
|
||||
+ _mesa_error(ctx, err,
|
||||
"glTexImage%dD(incompatible format 0x%x, type 0x%x)",
|
||||
dimensions, format, type);
|
||||
}
|
||||
@@ -1754,7 +1755,7 @@ texture_error_check( struct gl_context *ctx,
|
||||
}
|
||||
|
||||
/* additional checks for integer textures */
|
||||
- if (ctx->Extensions.EXT_texture_integer &&
|
||||
+ if ((ctx->VersionMajor >= 3 || ctx->Extensions.EXT_texture_integer) &&
|
||||
(_mesa_is_integer_format(format) !=
|
||||
_mesa_is_integer_format(internalFormat))) {
|
||||
if (!isProxy) {
|
||||
@@ -1805,6 +1806,8 @@ subtexture_error_check( struct gl_context *ctx, GLuint dimensions,
|
||||
GLint width, GLint height, GLint depth,
|
||||
GLenum format, GLenum type )
|
||||
{
|
||||
+ GLenum err;
|
||||
+
|
||||
/* Basic level check */
|
||||
if (level < 0 || level >= MAX_TEXTURE_LEVELS) {
|
||||
_mesa_error(ctx, GL_INVALID_ENUM, "glTexSubImage2D(level=%d)", level);
|
||||
@@ -1828,13 +1831,9 @@ subtexture_error_check( struct gl_context *ctx, GLuint dimensions,
|
||||
return GL_TRUE;
|
||||
}
|
||||
|
||||
- if (!_mesa_is_legal_format_and_type(ctx, format, type)) {
|
||||
- /* As with the glTexImage2D check above, the error code here
|
||||
- * depends on texture integer.
|
||||
- */
|
||||
- GLenum error = _mesa_is_integer_format(format)
|
||||
- ? GL_INVALID_OPERATION : GL_INVALID_ENUM;
|
||||
- _mesa_error(ctx, error,
|
||||
+ err = _mesa_error_check_format_and_type(ctx, format, type);
|
||||
+ if (err != GL_NO_ERROR) {
|
||||
+ _mesa_error(ctx, err,
|
||||
"glTexSubImage%dD(incompatible format 0x%x, type 0x%x)",
|
||||
dimensions, format, type);
|
||||
return GL_TRUE;
|
||||
diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
|
||||
index 38ae1ce..fc6e17c 100644
|
||||
--- a/src/mesa/main/version.c
|
||||
+++ b/src/mesa/main/version.c
|
||||
@@ -140,7 +140,6 @@ compute_version(struct gl_context *ctx)
|
||||
ctx->Extensions.EXT_framebuffer_sRGB &&
|
||||
ctx->Extensions.EXT_packed_float &&
|
||||
ctx->Extensions.EXT_texture_array &&
|
||||
- ctx->Extensions.EXT_texture_integer &&
|
||||
ctx->Extensions.EXT_texture_shared_exponent &&
|
||||
ctx->Extensions.EXT_transform_feedback &&
|
||||
ctx->Extensions.NV_conditional_render);
|
||||
diff --git a/src/mesa/state_tracker/st_cb_drawpixels.c b/src/mesa/state_tracker/st_cb_drawpixels.c
|
||||
index 04d451b..d4992a7 100644
|
||||
--- a/src/mesa/state_tracker/st_cb_drawpixels.c
|
||||
+++ b/src/mesa/state_tracker/st_cb_drawpixels.c
|
||||
@@ -215,7 +215,7 @@ st_make_drawpix_z_stencil_program(struct st_context *st,
|
||||
if (!p)
|
||||
return NULL;
|
||||
|
||||
- p->NumInstructions = write_depth ? 2 : 1;
|
||||
+ p->NumInstructions = write_depth ? 3 : 1;
|
||||
p->NumInstructions += write_stencil ? 1 : 0;
|
||||
|
||||
p->Instructions = _mesa_alloc_instructions(p->NumInstructions);
|
||||
@@ -236,6 +236,13 @@ st_make_drawpix_z_stencil_program(struct st_context *st,
|
||||
p->Instructions[ic].TexSrcUnit = 0;
|
||||
p->Instructions[ic].TexSrcTarget = TEXTURE_2D_INDEX;
|
||||
ic++;
|
||||
+ /* MOV result.color, fragment.color; */
|
||||
+ p->Instructions[ic].Opcode = OPCODE_MOV;
|
||||
+ p->Instructions[ic].DstReg.File = PROGRAM_OUTPUT;
|
||||
+ p->Instructions[ic].DstReg.Index = FRAG_RESULT_COLOR;
|
||||
+ p->Instructions[ic].SrcReg[0].File = PROGRAM_INPUT;
|
||||
+ p->Instructions[ic].SrcReg[0].Index = FRAG_ATTRIB_COL0;
|
||||
+ ic++;
|
||||
}
|
||||
|
||||
if (write_stencil) {
|
||||
@@ -258,8 +265,10 @@ st_make_drawpix_z_stencil_program(struct st_context *st,
|
||||
|
||||
p->InputsRead = FRAG_BIT_TEX0 | FRAG_BIT_COL0;
|
||||
p->OutputsWritten = 0;
|
||||
- if (write_depth)
|
||||
+ if (write_depth) {
|
||||
p->OutputsWritten |= BITFIELD64_BIT(FRAG_RESULT_DEPTH);
|
||||
+ p->OutputsWritten |= BITFIELD64_BIT(FRAG_RESULT_COLOR);
|
||||
+ }
|
||||
if (write_stencil)
|
||||
p->OutputsWritten |= BITFIELD64_BIT(FRAG_RESULT_STENCIL);
|
||||
|
||||
diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
|
||||
index ad4f23c..88c5ad7 100644
|
||||
--- a/src/mesa/state_tracker/st_cb_texture.c
|
||||
+++ b/src/mesa/state_tracker/st_cb_texture.c
|
||||
@@ -406,6 +406,8 @@ guess_and_alloc_texture(struct st_context *st,
|
||||
ptLayers,
|
||||
bindings);
|
||||
|
||||
+ stObj->lastLevel = lastLevel;
|
||||
+
|
||||
DBG("%s returning %d\n", __FUNCTION__, (stObj->pt != NULL));
|
||||
|
||||
return stObj->pt != NULL;
|
||||
diff --git a/tests/glx/Makefile.am b/tests/glx/Makefile.am
|
||||
index cdebf5d..5f55a5b 100644
|
||||
--- a/tests/glx/Makefile.am
|
||||
+++ b/tests/glx/Makefile.am
|
||||
@@ -1,6 +1,6 @@
|
||||
-AM_CFLAGS = -I$(top_builddir)/src/glx -I$(top_builddir)/src/mapi \
|
||||
+AM_CFLAGS = -I$(top_builddir)/src/glx -I$(top_builddir)/src/mapi -I$(top_builddir)/include \
|
||||
$(X11_CFLAGS) $(GTEST_CFLAGS)
|
||||
-AM_CXXFLAGS = -I$(top_builddir)/src/glx -I$(top_builddir)/src/mapi \
|
||||
+AM_CXXFLAGS = -I$(top_builddir)/src/glx -I$(top_builddir)/src/mapi -I$(top_builddir)/include \
|
||||
$(X11_CFLAGS) $(GTEST_CFLAGS)
|
||||
|
||||
if HAVE_GTEST
|
|
@ -36,7 +36,7 @@
|
|||
Summary: Mesa graphics libraries
|
||||
Name: mesa
|
||||
Version: 8.0.3
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
License: MIT
|
||||
Group: System Environment/Libraries
|
||||
URL: http://www.mesa3d.org
|
||||
|
@ -54,6 +54,7 @@ Patch9: mesa-8.0-llvmpipe-shmget.patch
|
|||
Patch12: mesa-8.0.1-fix-16bpp.patch
|
||||
Patch13: mesa-8.0-nouveau-vieux-nvfx-lowmem.patch
|
||||
Patch14: mesa-8.0-nouveau-vieux-finish.patch
|
||||
Patch15: mesa-8.0.3-git.patch
|
||||
|
||||
BuildRequires: pkgconfig autoconf automake libtool
|
||||
%if %{with_hardware}
|
||||
|
@ -293,6 +294,7 @@ Mesa shared glapi
|
|||
%patch12 -p1 -b .16bpp
|
||||
%patch13 -p1 -b .nouveau-lowmem
|
||||
%patch14 -p1 -b .nouveau-finish
|
||||
%patch15 -p1 -b .git
|
||||
|
||||
%build
|
||||
|
||||
|
@ -568,6 +570,9 @@ rm -rf $RPM_BUILD_ROOT
|
|||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Jun 25 2012 Adam Jackson <ajax@redhat.com> 8.0.3-3
|
||||
- mesa-8.0.3-git.patch: Sync with 8.0 branch.
|
||||
|
||||
* Thu Jun 07 2012 Adam Jackson <ajax@redhat.com> 8.0.3-2
|
||||
- Disable llvm on non-x86 (#829202)
|
||||
|
||||
|
|
Loading…
Reference in New Issue