[Freedreno] [Mesa-dev] [PATCH 1/4] freedreno/a3xx: add support for disabling depth clipping

Bruno Jimenez brunojimen at gmail.com
Sat Apr 25 15:57:27 PDT 2015


On Sat, 2015-04-25 at 15:00 -0400, Ilia Mirkin wrote:
> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
> ---
>  docs/relnotes/10.6.0.html                           | 7 ++++---
>  src/gallium/drivers/freedreno/a3xx/fd3_rasterizer.c | 2 ++
>  src/gallium/drivers/freedreno/freedreno_screen.c    | 2 +-
>  3 files changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/docs/relnotes/10.6.0.html b/docs/relnotes/10.6.0.html
> index 48f76f9..25b3659 100644
> --- a/docs/relnotes/10.6.0.html
> +++ b/docs/relnotes/10.6.0.html
> @@ -45,16 +45,17 @@ Note: some of the new features are only 
> available with certain drivers.
>  
>  <ul>
>  <li>GL_AMD_pinned_memory on r600, radeonsi</li>
> +<li>GL_ARB_clip_control on i965</li>
  ^^
This hunk seems a bit extra, regarding the commit summary. :)

> +<li>GL_ARB_depth_clamp on freedreno</li>
>  <li>GL_ARB_draw_indirect, GL_ARB_multi_draw_indirect on r600</li>
>  <li>GL_ARB_draw_instanced on freedreno</li>
>  <li>GL_ARB_gpu_shader_fp64 on nvc0, softpipe</li>
>  <li>GL_ARB_instanced_arrays on freedreno</li>
>  <li>GL_ARB_pipeline_statistics_query on i965, nv50, nvc0, r600, 
> radeonsi, softpipe</li>
> -<li>GL_ARB_uniform_buffer_object on freedreno</li>
> -<li>GL_EXT_draw_buffers2 on freedreno</li>
> -<li>GL_ARB_clip_control on i965</li>
>  <li>GL_ARB_program_interface_query (all drivers)</li>
>  <li>GL_ARB_texture_stencil8 on nv50, nvc0, r600, radeonsi, 
> softpipe</li>
> +<li>GL_ARB_uniform_buffer_object on freedreno</li>
> +<li>GL_EXT_draw_buffers2 on freedreno</li>
>  </ul>
>  
>  <h2>Bug fixes</h2>
> diff --git a/src/gallium/drivers/freedreno/a3xx/fd3_rasterizer.c 
> b/src/gallium/drivers/freedreno/a3xx/fd3_rasterizer.c
> index 94f6d6e..9c16804 100644
> --- a/src/gallium/drivers/freedreno/a3xx/fd3_rasterizer.c
> +++ b/src/gallium/drivers/freedreno/a3xx/fd3_rasterizer.c
> @@ -97,6 +97,8 @@ fd3_rasterizer_state_create(struct pipe_context 
> *pctx,
>  
>       if (cso->offset_tri)
>               so->gras_su_mode_control |= 
> A3XX_GRAS_SU_MODE_CONTROL_POLY_OFFSET;
> +     if (!cso->depth_clip)
> +             so->gras_cl_clip_cntl |= 
> A3XX_GRAS_CL_CLIP_CNTL_CLIP_DISABLE;
>  
>       return so;
>  }
> diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c 
> b/src/gallium/drivers/freedreno/freedreno_screen.c
> index 15ae287..556c8ab 100644
> --- a/src/gallium/drivers/freedreno/freedreno_screen.c
> +++ b/src/gallium/drivers/freedreno/freedreno_screen.c
> @@ -182,6 +182,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, 
> enum pipe_cap param)
>  
>       case PIPE_CAP_INDEP_BLEND_ENABLE:
>       case PIPE_CAP_INDEP_BLEND_FUNC:
> +     case PIPE_CAP_DEPTH_CLIP_DISABLE:
>               return is_a3xx(screen);
>  
>       case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
> @@ -193,7 +194,6 @@ fd_screen_get_param(struct pipe_screen *pscreen, 
> enum pipe_cap param)
>               return (is_a3xx(screen) || is_a4xx(screen)) ? 130 : 
> 120;
>  
>       /* Unsupported features. */
> -     case PIPE_CAP_DEPTH_CLIP_DISABLE:
>       case PIPE_CAP_SEAMLESS_CUBE_MAP_PER_TEXTURE:
>       case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT:
>       case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:


More information about the Freedreno mailing list