diff options
author | Dave Airlie <[email protected]> | 2010-04-08 16:48:41 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2010-04-08 16:48:41 +1000 |
commit | dff50ff592da7cb1d784fae794dd1647a5445bca (patch) | |
tree | cd1b29e4001b8afdfff2520a01fcfba6b8b250e9 | |
parent | 968bf9634ec03e61441834603f13f0c914bbb0ce (diff) | |
parent | 4b39a0da89f5b07d4a24bc9ce52693e6c2acfe99 (diff) |
Merge remote branch 'origin/7.8'
Conflicts:
Makefile
configs/default
src/mesa/main/version.h
-rw-r--r-- | docs/news.html | 8 | ||||
-rw-r--r-- | docs/relnotes-7.8.1.html | 62 | ||||
-rw-r--r-- | docs/relnotes.html | 1 | ||||
-rw-r--r-- | src/gallium/drivers/softpipe/sp_quad_blend.c | 6 | ||||
-rw-r--r-- | src/mesa/main/state.c | 5 | ||||
-rw-r--r-- | src/mesa/main/texenvprogram.c | 43 |
6 files changed, 105 insertions, 20 deletions
diff --git a/docs/news.html b/docs/news.html index 4e4b6976a88..b7731cdaf3f 100644 --- a/docs/news.html +++ b/docs/news.html @@ -11,6 +11,14 @@ <H1>News</H1> +<h2>April 5, 2010</h2> + +<p> +<a href="relnotes-7.8.1.html">Mesa 7.8.1</a> is released. This is a bug-fix +release for a few critical issues in the 7.8 release. +</p> + + <h2>March 28, 2010</h2> <p> <a href="relnotes-7.7.1.html">Mesa 7.7.1</a> is released. This is a bug-fix diff --git a/docs/relnotes-7.8.1.html b/docs/relnotes-7.8.1.html new file mode 100644 index 00000000000..1ba68fd41ac --- /dev/null +++ b/docs/relnotes-7.8.1.html @@ -0,0 +1,62 @@ +<HTML> + +<TITLE>Mesa Release Notes</TITLE> + +<head><link rel="stylesheet" type="text/css" href="mesa.css"></head> + +<BODY> + +<body bgcolor="#eeeeee"> + +<H1>Mesa 7.8.1 Release Notes / April, 5, 2010</H1> + +<p> +Mesa 7.8.1 fixes a couple critical bugs in the recent Mesa 7.8 release. Even +though this is a bug fix release, given its proximity to the 7.8 release, a +new development release, it should also be considered new development release. +People who are concerned with stability and reliability should stick +with a previous release, such as 7.7.1, or wait for Mesa 7.8.2. +</p> +<p> +Mesa 7.8.1 implements the OpenGL 2.1 API, but the version reported by +glGetString(GL_VERSION) depends on the particular driver being used. +Some drivers don't support all the features required in OpenGL 2.1. +</p> +<p> +See the <a href="install.html">Compiling/Installing page</a> for prerequisites +for DRI hardware acceleration. +</p> + + +<h2>MD5 checksums</h2> +<pre> +62e8e47cbd63741b4bbe634dcdc8a56a MesaLib-7.8.1.tar.gz +25ec15f8e41fde6d206118cc786dbac4 MesaLib-7.8.1.tar.bz2 +22b1153010ffdf513836ea9931159e80 MesaLib-7.8.1.zip +c9c0a830923d3820807a08c09d521b3e MesaDemos-7.8.1.tar.gz +9ef47f911869657c6bf2f43ebce86b61 MesaDemos-7.8.1.tar.bz2 +93720605eb3f784f9bcc289a4dd2ff52 MesaDemos-7.8.1.zip +ed1d0b1e960afe6a3768eab747cbdbd3 MesaGLUT-7.8.1.tar.gz +6bae516a44c6d26ff3152c960ab648e7 MesaGLUT-7.8.1.tar.bz2 +ba306f603ea73c30ee0e7efa14dc5581 MesaGLUT-7.8.1.zip +</pre> + + +<h2>New features</h2> +<p>None.</p> + + +<h2>Bug fixes</h2> +<ul> +<li>Fix incorrect enums for GLX_INTEL_swap_event by updating glxext.h to + version 27 from OpenGL.org.</li> +<li>Fix compilation errors on non-GLX_DIRECT_RENDERING builds.</li> +<li>Various fixes for building Mesa on OS X.</li> +<li>Pass GLX drawable ID to dri2InvalidateBuffers. Fixes bug #27190.</li> +</ul> + + +<h2>Changes</h2> +<p>None.</p> +</body> +</html> diff --git a/docs/relnotes.html b/docs/relnotes.html index 3e17a1e94ee..f7e2c691f72 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-7.8.1.html">7.8.1 release notes</A> <LI><A HREF="relnotes-7.8.html">7.8 release notes</A> <LI><A HREF="relnotes-7.7.1.html">7.7.1 release notes</A> <LI><A HREF="relnotes-7.7.html">7.7 release notes</A> diff --git a/src/gallium/drivers/softpipe/sp_quad_blend.c b/src/gallium/drivers/softpipe/sp_quad_blend.c index d65307b7f60..ead489393ef 100644 --- a/src/gallium/drivers/softpipe/sp_quad_blend.c +++ b/src/gallium/drivers/softpipe/sp_quad_blend.c @@ -744,6 +744,8 @@ blend_fallback(struct quad_stage *qs, for (cbuf = 0; cbuf < softpipe->framebuffer.nr_cbufs; cbuf++) { + /* which blend/mask state index to use: */ + const uint blend_buf = blend->independent_blend_enable ? cbuf : 0; float dest[4][QUAD_SIZE]; struct softpipe_cached_tile *tile = sp_get_cached_tile(softpipe->cbuf_cache[cbuf], @@ -771,11 +773,11 @@ blend_fallback(struct quad_stage *qs, if (blend->logicop_enable) { logicop_quad( qs, quadColor, dest ); } - else if (blend->rt[cbuf].blend_enable) { + else if (blend->rt[blend_buf].blend_enable) { blend_quad( qs, quadColor, dest, cbuf ); } - if (blend->rt[cbuf].colormask != 0xf) + if (blend->rt[blend_buf].colormask != 0xf) colormask_quad( blend->rt[cbuf].colormask, quadColor, dest); /* Output color values diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c index 589029db58b..b971cc976ee 100644 --- a/src/mesa/main/state.c +++ b/src/mesa/main/state.c @@ -582,9 +582,6 @@ _mesa_update_state_locked( GLcontext *ctx ) if (new_state & _DD_NEW_SEPARATE_SPECULAR) update_separate_specular( ctx ); - if (new_state & (_NEW_ARRAY | _NEW_PROGRAM | _NEW_BUFFER_OBJECT)) - update_arrays( ctx ); - if (new_state & (_NEW_BUFFERS | _NEW_VIEWPORT)) update_viewport_matrix(ctx); @@ -620,6 +617,8 @@ _mesa_update_state_locked( GLcontext *ctx ) new_prog_state |= update_program( ctx ); } + if (new_state & (_NEW_ARRAY | _NEW_PROGRAM | _NEW_BUFFER_OBJECT)) + update_arrays( ctx ); out: new_prog_state |= update_program_constants(ctx); diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 7b8a8b85f22..964ba13c700 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -1415,6 +1415,7 @@ create_new_program(GLcontext *ctx, struct state_key *key, struct texenv_fragment_program p; GLuint unit; struct ureg cf, out; + int i; memset(&p, 0, sizeof(p)); p.state = key; @@ -1436,7 +1437,13 @@ create_new_program(GLcontext *ctx, struct state_key *key, p.program->Base.NumAddressRegs = 0; p.program->Base.Parameters = _mesa_new_parameter_list(); p.program->Base.InputsRead = 0x0; - p.program->Base.OutputsWritten = 1 << FRAG_RESULT_COLOR; + + if (ctx->DrawBuffer->_NumColorDrawBuffers == 1) + p.program->Base.OutputsWritten = 1 << FRAG_RESULT_COLOR; + else { + for (i = 0; i < ctx->DrawBuffer->_NumColorDrawBuffers; i++) + p.program->Base.OutputsWritten |= (1 << (FRAG_RESULT_DATA0 + i)); + } for (unit = 0; unit < ctx->Const.MaxTextureUnits; unit++) { p.src_texture[unit] = undef; @@ -1485,22 +1492,28 @@ create_new_program(GLcontext *ctx, struct state_key *key, } cf = get_source( &p, SRC_PREVIOUS, 0 ); - out = make_ureg( PROGRAM_OUTPUT, FRAG_RESULT_COLOR ); - if (key->separate_specular) { - /* Emit specular add. - */ - struct ureg s = register_input(&p, FRAG_ATTRIB_COL1); - emit_arith( &p, OPCODE_ADD, out, WRITEMASK_XYZ, 0, cf, s, undef ); - emit_arith( &p, OPCODE_MOV, out, WRITEMASK_W, 0, cf, undef, undef ); - } - else if (memcmp(&cf, &out, sizeof(cf)) != 0) { - /* Will wind up in here if no texture enabled or a couple of - * other scenarios (GL_REPLACE for instance). - */ - emit_arith( &p, OPCODE_MOV, out, WRITEMASK_XYZW, 0, cf, undef, undef ); - } + for (i = 0; i < ctx->DrawBuffer->_NumColorDrawBuffers; i++) { + if (ctx->DrawBuffer->_NumColorDrawBuffers == 1) + out = make_ureg( PROGRAM_OUTPUT, FRAG_RESULT_COLOR ); + else { + out = make_ureg( PROGRAM_OUTPUT, FRAG_RESULT_DATA0 + i ); + } + if (key->separate_specular) { + /* Emit specular add. + */ + struct ureg s = register_input(&p, FRAG_ATTRIB_COL1); + emit_arith( &p, OPCODE_ADD, out, WRITEMASK_XYZ, 0, cf, s, undef ); + emit_arith( &p, OPCODE_MOV, out, WRITEMASK_W, 0, cf, undef, undef ); + } + else if (memcmp(&cf, &out, sizeof(cf)) != 0) { + /* Will wind up in here if no texture enabled or a couple of + * other scenarios (GL_REPLACE for instance). + */ + emit_arith( &p, OPCODE_MOV, out, WRITEMASK_XYZW, 0, cf, undef, undef ); + } + } /* Finish up: */ emit_arith( &p, OPCODE_END, undef, WRITEMASK_XYZW, 0, undef, undef, undef); |