[Mesa-dev] [PATCH v2 4/8] gallium/drivers: Handle PIPE_CAP_CONDITIONAL_RENDER_INVERTED

Ilia Mirkin imirkin at alum.mit.edu
Sun Aug 17 14:23:50 PDT 2014


On Sun, Aug 17, 2014 at 5:15 PM, Tobias Klausmann
<tobias.johannes.klausmann at mni.thm.de> wrote:
> Signed-off-by: Tobias Klausmann <tobias.johannes.klausmann at mni.thm.de>
> ---
>  src/gallium/drivers/freedreno/freedreno_screen.c | 1 +
>  src/gallium/drivers/i915/i915_screen.c           | 1 +
>  src/gallium/drivers/ilo/ilo_screen.c             | 1 +
>  src/gallium/drivers/llvmpipe/lp_screen.c         | 1 +
>  src/gallium/drivers/nouveau/nv30/nv30_screen.c   | 1 +
>  src/gallium/drivers/nouveau/nv50/nv50_screen.c   | 1 +
>  src/gallium/drivers/nouveau/nvc0/nvc0_screen.c   | 2 ++
>  src/gallium/drivers/r300/r300_screen.c           | 1 +
>  src/gallium/drivers/r600/r600_pipe.c             | 1 +
>  src/gallium/drivers/radeonsi/si_pipe.c           | 1 +
>  src/gallium/drivers/softpipe/sp_screen.c         | 2 ++
>  src/gallium/drivers/svga/svga_screen.c           | 1 +
>  src/gallium/drivers/vc4/vc4_screen.c             | 1 +
>  13 files changed, 15 insertions(+)
>
> diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c
> index d797bb4..ab1a740 100644
> --- a/src/gallium/drivers/freedreno/freedreno_screen.c
> +++ b/src/gallium/drivers/freedreno/freedreno_screen.c
> @@ -217,6 +217,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
>         case PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION:
>         case PIPE_CAP_DRAW_INDIRECT:
>         case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE:
> +       case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
>                 return 0;
>
>         /* Stream output. */
> diff --git a/src/gallium/drivers/i915/i915_screen.c b/src/gallium/drivers/i915/i915_screen.c
> index 0dfd3bb..40976b3 100644
> --- a/src/gallium/drivers/i915/i915_screen.c
> +++ b/src/gallium/drivers/i915/i915_screen.c
> @@ -222,6 +222,7 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap cap)
>     case PIPE_CAP_SAMPLE_SHADING:
>     case PIPE_CAP_TEXTURE_GATHER_OFFSETS:
>     case PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION:
> +   case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
>        return 0;
>
>     case PIPE_CAP_MAX_DUAL_SOURCE_RENDER_TARGETS:
> diff --git a/src/gallium/drivers/ilo/ilo_screen.c b/src/gallium/drivers/ilo/ilo_screen.c
> index ad59d6d..4884421 100644
> --- a/src/gallium/drivers/ilo/ilo_screen.c
> +++ b/src/gallium/drivers/ilo/ilo_screen.c
> @@ -435,6 +435,7 @@ ilo_get_param(struct pipe_screen *screen, enum pipe_cap param)
>     case PIPE_CAP_MAX_VERTEX_STREAMS:
>     case PIPE_CAP_DRAW_INDIRECT:
>     case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE:
> +   case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
>        return 0;
>
>     case PIPE_CAP_VENDOR_ID:
> diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
> index fe52a41..08597fa 100644
> --- a/src/gallium/drivers/llvmpipe/lp_screen.c
> +++ b/src/gallium/drivers/llvmpipe/lp_screen.c
> @@ -250,6 +250,7 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
>     case PIPE_CAP_TEXTURE_GATHER_OFFSETS:
>     case PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION:
>     case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE:
> +   case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
>        return 0;
>     case PIPE_CAP_FAKE_SW_MSAA:
>        return 1;
> diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
> index aad242a..80d6943 100644
> --- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c
> +++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
> @@ -152,6 +152,7 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
>     case PIPE_CAP_COMPUTE:
>     case PIPE_CAP_DRAW_INDIRECT:
>     case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE:
> +   case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
>        return 0;
>
>     case PIPE_CAP_VENDOR_ID:
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
> index 2b75e3e..99dcdc5 100644
> --- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c
> +++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
> @@ -200,6 +200,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
>     case PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION:
>     case PIPE_CAP_COMPUTE:
>     case PIPE_CAP_DRAW_INDIRECT:
> +   case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
>        return 0;
>
>     case PIPE_CAP_VENDOR_ID:
> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
> index 0a8ca39..7c2f11a 100644
> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
> @@ -172,6 +172,8 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
>        return (class_3d >= NVE4_3D_CLASS) ? 1 : 0;
>     case PIPE_CAP_COMPUTE:
>        return (class_3d == NVE4_3D_CLASS) ? 1 : 0;
> +   case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
> +     return 0;

Normally this should go into the unsupported list further above.
However in this case you remove it later in the series, and fixing it
will cause you annoying conflicts. But be mindful of that in the
future.

>
>     /* unsupported caps */
>     case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT:
> diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c
> index 3d489e1..cce1c14 100644
> --- a/src/gallium/drivers/r300/r300_screen.c
> +++ b/src/gallium/drivers/r300/r300_screen.c
> @@ -179,6 +179,7 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
>          case PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION:
>          case PIPE_CAP_DRAW_INDIRECT:
>          case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE:
> +       case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:

This file doesn't use tabs... your line has a tab, but all the other
lines don't. (But you got the rest of the files correctly -- good
job.)

>              return 0;
>
>          /* SWTCL-only features. */
> diff --git a/src/gallium/drivers/r600/r600_pipe.c b/src/gallium/drivers/r600/r600_pipe.c
> index 4543347..64575df 100644
> --- a/src/gallium/drivers/r600/r600_pipe.c
> +++ b/src/gallium/drivers/r600/r600_pipe.c
> @@ -320,6 +320,7 @@ static int r600_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
>         case PIPE_CAP_SAMPLE_SHADING:
>         case PIPE_CAP_TEXTURE_GATHER_OFFSETS:
>         case PIPE_CAP_DRAW_INDIRECT:
> +       case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
>                 return 0;
>
>         /* Stream output. */
> diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
> index 3c3d642..9eea068 100644
> --- a/src/gallium/drivers/radeonsi/si_pipe.c
> +++ b/src/gallium/drivers/radeonsi/si_pipe.c
> @@ -255,6 +255,7 @@ static int si_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
>         case PIPE_CAP_TEXTURE_GATHER_OFFSETS:
>         case PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION:
>         case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE:
> +       case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
>                 return 0;
>
>         case PIPE_CAP_TEXTURE_BORDER_COLOR_QUIRK:
> diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c
> index ade68a8..8fd4a0d 100644
> --- a/src/gallium/drivers/softpipe/sp_screen.c
> +++ b/src/gallium/drivers/softpipe/sp_screen.c
> @@ -222,6 +222,8 @@ softpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
>     }
>     case PIPE_CAP_UMA:
>        return 0;
> +   case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
> +      return 0;
>     }
>     /* should only get here on unhandled cases */
>     debug_printf("Unexpected PIPE_CAP %d query\n", param);
> diff --git a/src/gallium/drivers/svga/svga_screen.c b/src/gallium/drivers/svga/svga_screen.c
> index 0fc9619..544d929 100644
> --- a/src/gallium/drivers/svga/svga_screen.c
> +++ b/src/gallium/drivers/svga/svga_screen.c
> @@ -279,6 +279,7 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap param)
>     case PIPE_CAP_TGSI_VS_WINDOW_SPACE_POSITION:
>     case PIPE_CAP_DRAW_INDIRECT:
>     case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE:
> +   case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
>        return 0;
>     case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT:
>        return 64;
> diff --git a/src/gallium/drivers/vc4/vc4_screen.c b/src/gallium/drivers/vc4/vc4_screen.c
> index 852ff87..1ef75af 100644
> --- a/src/gallium/drivers/vc4/vc4_screen.c
> +++ b/src/gallium/drivers/vc4/vc4_screen.c
> @@ -159,6 +159,7 @@ vc4_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
>          case PIPE_CAP_MAX_VERTEX_STREAMS:
>          case PIPE_CAP_DRAW_INDIRECT:
>          case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE:
> +       case PIPE_CAP_CONDITIONAL_RENDER_INVERTED:
>                  return 0;
>
>                  /* Stream output. */
> --
> 1.8.4.5
>
> _______________________________________________
> 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