st/mesa: disable per-context seamless cubemap when using texture handles
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.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user