[Mesa-dev] [RFC PATCH 46/65] st/mesa: disable per-context seamless cubemap when using texture handles
Marek Olšák
maraeo at gmail.com
Tue May 23 20:21:10 UTC 2017
What if a texture is used both as bindless and non-bindless? Wouldn't
HandleAllocated be true all the time? Instead perhaps
st_convert_sampler needs to know whether the current use is bindless,
not whether there is an existing handle somewhere in the context.
Marek
On Fri, May 19, 2017 at 6:52 PM, Samuel Pitoiset
<samuel.pitoiset at gmail.com> 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."
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
> src/mesa/state_tracker/st_atom_sampler.c | 18 ++++++++++++++++--
> 1 file changed, 16 insertions(+), 2 deletions(-)
>
> diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c
> index c6d992fbb0..116c5380cf 100644
> --- a/src/mesa/state_tracker/st_atom_sampler.c
> +++ b/src/mesa/state_tracker/st_atom_sampler.c
> @@ -226,8 +226,22 @@ 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;
> + if (msamp->HandleAllocated) {
> + /* The ARB_bindless_texture spec says:
> + *
> + * "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."
> + */
> + sampler->seamless_cube_map = msamp->CubeMapSeamless;
> + } else {
> + sampler->seamless_cube_map =
> + ctx->Texture.CubeMapSeamless || msamp->CubeMapSeamless;
> + }
> }
>
> /**
> --
> 2.13.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list