[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