Hello,

In src/gallium/drivers/r600/r600_pipe.c I saw this :
        
/* Render targets. */
case PIPE_CAP_MAX_RENDER_TARGETS:
        /* FIXME some r6xx are buggy and can only do 4 */
                return 8;

The last line of R6xx_R7xx_3D.pdf says :
4 MRT + 8-Sample Restriction
On RV610, there is a maximum of 4 enabled render targets for 8-sample
surfaces.

Is this related ?
I don't know what is 8-sample surfaces... so I don't know if the
attached fix is as simple as this.

Regards.

Benjamin Bellec
diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
index 48b0fe9..a82f9bb 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -398,8 +398,8 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
 
 	/* Render targets. */
 	case PIPE_CAP_MAX_RENDER_TARGETS:
-		/* FIXME some r6xx are buggy and can only do 4 */
-		return 8;
+		/* On RV610, there is a maximum of 4 enabled render targets for 8-sample surfaces */
+		return family == CHIP_RV610 ? 4 : 8;
 
 	/* Timer queries, present when the clock frequency is non zero. */
 	case PIPE_CAP_TIMER_QUERY:
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to