[Mesa-dev] [PATCH 34/37] i965: Consider only the scissor rectangle for viewport 0 for clears

Kenneth Graunke kenneth at whitecape.org
Fri Jan 17 17:52:05 PST 2014


On 01/17/2014 05:03 PM, Ian Romanick wrote:
> From: Ian Romanick <ian.d.romanick at intel.com>
> 
> noop_scissor (correctly) only examines the scissor rectangle for
> viewport 0.  Therefore, it should only be called when that scissor
> rectangle is enabled.
> 
> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
> ---
>  src/mesa/drivers/dri/i965/brw_clear.c       | 2 +-
>  src/mesa/drivers/dri/radeon/radeon_common.c | 3 +--
>  2 files changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_clear.c b/src/mesa/drivers/dri/i965/brw_clear.c
> index 72950cb..659d339 100644
> --- a/src/mesa/drivers/dri/i965/brw_clear.c
> +++ b/src/mesa/drivers/dri/i965/brw_clear.c
> @@ -121,7 +121,7 @@ brw_fast_clear_depth(struct gl_context *ctx)
>      * a previous clear had happened at a different clear value and resolve it
>      * first.
>      */
> -   if (ctx->Scissor.EnableFlags && !noop_scissor(ctx, fb)) {
> +   if ((ctx->Scissor.EnableFlags & 1) && !noop_scissor(ctx, fb)) {
>        perf_debug("Failed to fast clear depth due to scissor being enabled.  "
>                   "Possible 5%% performance win if avoided.\n");
>        return false;

This hunk is:
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

But:

> diff --git a/src/mesa/drivers/dri/radeon/radeon_common.c b/src/mesa/drivers/dri/radeon/radeon_common.c
> index e900bc5..d8839d1 100644
> --- a/src/mesa/drivers/dri/radeon/radeon_common.c
> +++ b/src/mesa/drivers/dri/radeon/radeon_common.c
> @@ -400,8 +400,7 @@ void radeon_viewport(struct gl_context *ctx)
>  {
>  	radeonContextPtr radeon = RADEON_CONTEXT(ctx);
>  	__DRIcontext *driContext = radeon->dri.context;
> -	void (*old_viewport)(struct gl_context *ctx, GLint x, GLint y,
> -			     GLsizei w, GLsizei h);
> +	void (*old_viewport)(struct gl_context *ctx);
>  
>  	if (_mesa_is_winsys_fbo(ctx->DrawBuffer)) {
>  		if (radeon->is_front_buffer_rendering) {
> 

This hunk clearly goes somewhere else.


More information about the mesa-dev mailing list