goto invalid_pname;
case GL_TEXTURE_TILING_EXT:
- if (ctx->Extensions.EXT_memory_object) {
- texObj->TextureTiling = params[0];
+ if (ctx->Extensions.EXT_memory_object && !texObj->Immutable) {
+ texObj->TextureTiling = params[0];
return GL_TRUE;
}
{
struct gl_memory_object Base;
struct pipe_memory_object *memory;
+
+ /* TEXTURE_TILING_EXT param from gl_texture_object */
+ GLuint TextureTiling;
};
static inline struct st_memory_object *
pt.bind = bind;
/* only set this for OpenGL textures, not renderbuffers */
pt.flags = PIPE_RESOURCE_FLAG_TEXTURING_MORE_LIKELY;
+ if (memObj->TextureTiling == GL_LINEAR_TILING_EXT)
+ pt.bind |= PIPE_BIND_LINEAR;
+
pt.nr_samples = nr_samples;
pt.nr_storage_samples = nr_samples;
bindings = default_bindings(st, fmt);
+ if (smObj) {
+ smObj->TextureTiling = texObj->TextureTiling;
+ bindings |= PIPE_BIND_SHARED;
+ }
+
if (num_samples > 0) {
/* Find msaa sample count which is actually supported. For example,
* if the user requests 1x but only 4x or 8x msaa is supported, we'll