[Mesa-dev] [PATCH 1/3] i965: Add a safety check for brw_set_saturate().

Kenneth Graunke kenneth at whitecape.org
Wed Aug 8 15:23:25 PDT 2012


On 08/08/2012 03:08 PM, Eric Anholt wrote:
> There is an easy chance for bugs in brw_wm_emit.c, where you would pass 1 << 5
> instead of 1, which would get truncated to 0.
> ---
>  src/mesa/drivers/dri/i965/brw_eu.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_eu.c b/src/mesa/drivers/dri/i965/brw_eu.c
> index 2c432a9..7697d08 100644
> --- a/src/mesa/drivers/dri/i965/brw_eu.c
> +++ b/src/mesa/drivers/dri/i965/brw_eu.c
> @@ -143,6 +143,7 @@ void brw_set_mask_control( struct brw_compile *p, GLuint value )
>  
>  void brw_set_saturate( struct brw_compile *p, GLuint value )
>  {
> +   assert(value == 0 || value == 1);
>     p->current->header.saturate = value;
>  }

Eesh.  It sounds like what you really want is:

#include <stdbool.h>

void
brw_set_saturate(struct brw_compile *p, bool value)
{
   p->current->header.saturate = value;
}

Then zero/non-zero would work as expected.


More information about the mesa-dev mailing list