[Mesa-dev] [PATCH 1/2] softpipe: handle more PIPE_CAP_x queries

Marek Olšák maraeo at gmail.com
Tue Jun 26 13:25:31 PDT 2012


On Tue, Jun 26, 2012 at 10:11 PM, Brian Paul <brianp at vmware.com> wrote:
> These all return zero.  Add a debug_printf() to catch the default case so
> we don't accidently mishandle something important in the future.

FWIW, it's better to remove the default statement and move the default
code after the switch, so that you also get the warning "unhandled
enum XXX in switch". The idea is not to have the default statement in
the switch to get the warning.

Marek

> ---
>  src/gallium/drivers/softpipe/sp_screen.c |   20 ++++++++++++++++++++
>  1 files changed, 20 insertions(+), 0 deletions(-)
>
> diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c
> index cdc7867..808cf4c 100644
> --- a/src/gallium/drivers/softpipe/sp_screen.c
> +++ b/src/gallium/drivers/softpipe/sp_screen.c
> @@ -108,6 +108,8 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
>    case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
>    case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER:
>       return 1;
> +   case PIPE_CAP_DEPTH_CLIP_DISABLE:
> +      return 0;
>    case PIPE_CAP_MAX_STREAM_OUTPUT_BUFFERS:
>       return PIPE_MAX_SO_BUFFERS;
>    case PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS:
> @@ -122,6 +124,9 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
>    case PIPE_CAP_TGSI_INSTANCEID:
>    case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR:
>       return 1;
> +   case PIPE_CAP_SEAMLESS_CUBE_MAP:
> +   case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE:
> +      return 0;
>    case PIPE_CAP_MAX_TEXTURE_ARRAY_LAYERS:
>       return 256; /* for GL3 */
>    case PIPE_CAP_MIN_TEXEL_OFFSET:
> @@ -130,10 +135,14 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
>       return 7;
>    case PIPE_CAP_CONDITIONAL_RENDER:
>       return 1;
> +   case PIPE_CAP_TEXTURE_BARRIER:
> +      return 0;
>    case PIPE_CAP_FRAGMENT_COLOR_CLAMPED:
>    case PIPE_CAP_VERTEX_COLOR_UNCLAMPED: /* draw module */
>    case PIPE_CAP_VERTEX_COLOR_CLAMPED: /* draw module */
>       return 1;
> +   case PIPE_CAP_MIXED_COLORBUFFER_FORMATS:
> +      return 0;
>    case PIPE_CAP_GLSL_FEATURE_LEVEL:
>       return 130;
>    case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
> @@ -144,7 +153,17 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
>       return 1;
>    case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
>       return 16;
> +   case PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME:
> +   case PIPE_CAP_TGSI_CAN_COMPACT_VARYINGS:
> +   case PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS:
> +   case PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY:
> +   case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY:
> +   case PIPE_CAP_VERTEX_ELEMENT_SRC_OFFSET_4BYTE_ALIGNED_ONLY:
> +   case PIPE_CAP_START_INSTANCE:
> +      return 0;
> +
>    default:
> +      debug_printf("Unexpected PIPE_CAP %d query\n", param);
>       return 0;
>    }
>  }
> @@ -200,6 +219,7 @@ softpipe_get_paramf(struct pipe_screen *screen, enum pipe_capf param)
>    case PIPE_CAPF_MAX_TEXTURE_LOD_BIAS:
>       return 16.0; /* arbitrary */
>    default:
> +      debug_printf("Unexpected PIPE_CAPF %d query\n", param);
>       return 0;
>    }
>  }
> --
> 1.7.3.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list