[Mesa-dev] [PATCH v2 45/64] st/mesa: disable per-context seamless cubemap when using texture handles

Nicolai Hähnle nhaehnle at gmail.com
Fri Jun 9 07:11:12 UTC 2017


On 30.05.2017 22:36, Samuel Pitoiset wrote:
> The ARB_bindless_texture spec say:
> 
>     "If ARB_seamless_cubemap (or OpenGL 4.0, which includes it) is
>      supported, the per-context seamless cubemap enable is ignored
>      and treated as disabled when using texture handles."
> 
>     "If AMD_seamless_cubemap_per_texture is supported, the seamless
>      cube map texture parameter of the underlying texture does apply
>      when texture handles are used."
> 
> The per-context seamless cubemap flag should only be enabled for
> bound textures/samplers.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>


> v2: - do not rely on HandleAllocated
> 
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
>   src/mesa/state_tracker/st_atom_sampler.c | 9 ++++++---
>   1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c
> index c6d992fbb0..8c121d5407 100644
> --- a/src/mesa/state_tracker/st_atom_sampler.c
> +++ b/src/mesa/state_tracker/st_atom_sampler.c
> @@ -135,7 +135,6 @@ st_convert_sampler(const struct st_context *st,
>                      const struct gl_sampler_object *msamp,
>                      struct pipe_sampler_state *sampler)
>   {
> -   struct gl_context *ctx = st->ctx;
>      GLenum texBaseFormat;
>   
>      texBaseFormat = _mesa_texture_base_format(texobj);
> @@ -226,8 +225,11 @@ st_convert_sampler(const struct st_context *st,
>         sampler->compare_func = st_compare_func_to_pipe(msamp->CompareFunc);
>      }
>   
> -   sampler->seamless_cube_map =
> -      ctx->Texture.CubeMapSeamless || msamp->CubeMapSeamless;
> +   /* Only set the seamless cube map texture parameter because the per-context
> +    * enable should be ignored and treated as disabled when using texture
> +    * handles, as specified by ARB_bindless_texture.
> +    */
> +   sampler->seamless_cube_map = msamp->CubeMapSeamless;
>   }
>   
>   /**
> @@ -250,6 +252,7 @@ st_convert_sampler_from_unit(const struct st_context *st,
>      st_convert_sampler(st, texobj, msamp, sampler);
>   
>      sampler->lod_bias += ctx->Texture.Unit[texUnit].LodBias;
> +   sampler->seamless_cube_map |= ctx->Texture.CubeMapSeamless;
>   }
>   
>   
> 


-- 
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.


More information about the mesa-dev mailing list