Am Donnerstag, 26. März 2015, 11:24:24 schrieb Marc Dietrich: > Am Donnerstag, 26. März 2015, 02:56:50 schrieb Glenn Kennard: > > CF_END could end up emitted in the middle of a shader on cayman > > when there was a loop at the very end. > > > > Fixes glsl-1.50-geometry-end-primitive and > > ext_transform_feedback-geometry-shaders-basic piglit tests. > > yes, I just found out that this test also crashes the rs880 gpu. Turning it > off, make piglit run fine for geometry tests. Is this also supposed to fix > it on my gpu (I don't like to risk another gpu lockup...)?
well, I could not withstand ... Patch also fixes gpu hang for me :-) Thanks! Marc > > Marc > > > Signed-off-by: Glenn Kennard <glenn.kenn...@gmail.com> > > --- > > Bug exposed by [PATCH] r600g/sb: Enable SB for geometry shaders > > > > src/gallium/drivers/r600/sb/sb_bc_finalize.cpp | 8 ++++++++ > > 1 file changed, 8 insertions(+) > > > > diff --git a/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp > > b/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp index 8d0be06..08b7d77 > > 100644 > > --- a/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp > > +++ b/src/gallium/drivers/r600/sb/sb_bc_finalize.cpp > > @@ -127,6 +127,14 @@ void bc_finalizer::finalize_loop(region_node* r) { > > > > cf_node *loop_start = sh.create_cf(CF_OP_LOOP_START_DX10); > > cf_node *loop_end = sh.create_cf(CF_OP_LOOP_END); > > > > + // Update last_cf, but don't overwrite it if it's outside the current > > loop > > > nest since + // it may point to a cf that is later in program order. > > + // The single parent level check is sufficient since finalize_loop() is > > processed in + // reverse order from innermost to outermost loop nest > > level. > > + if (!last_cf || last_cf->get_parent_region() == r) { > > + last_cf = loop_end; > > + } > > + > > > > loop_start->jump_after(loop_end); > > loop_end->jump_after(loop_start);
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev