|
|
@ -6407,7 +6407,7 @@ static int vrend_renderer_resource_allocate_texture(struct vrend_resource *gr, |
|
|
|
format_can_texture_storage = has_feature(feat_texture_storage) && |
|
|
|
format_can_texture_storage = has_feature(feat_texture_storage) && |
|
|
|
(tex_conv_table[format].flags & VIRGL_TEXTURE_CAN_TEXTURE_STORAGE); |
|
|
|
(tex_conv_table[format].flags & VIRGL_TEXTURE_CAN_TEXTURE_STORAGE); |
|
|
|
if (format_can_texture_storage) |
|
|
|
if (format_can_texture_storage) |
|
|
|
gr->base.bind |= VIRGL_BIND_IMMUTABLE_STORAGE; |
|
|
|
gr->storage_bits |= VREND_STORAGE_GL_IMMUTABLE; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
gr->target = tgsitargettogltarget(pr->target, pr->nr_samples); |
|
|
|
gr->target = tgsitargettogltarget(pr->target, pr->nr_samples); |
|
|
@ -8250,7 +8250,7 @@ static GLuint vrend_make_view(struct vrend_resource *res, enum virgl_formats for |
|
|
|
GLenum fmt = tex_conv_table[dst_fmt].internalformat; |
|
|
|
GLenum fmt = tex_conv_table[dst_fmt].internalformat; |
|
|
|
|
|
|
|
|
|
|
|
/* If the format doesn't support TextureStorage it is not immutable, so no TextureView*/ |
|
|
|
/* If the format doesn't support TextureStorage it is not immutable, so no TextureView*/ |
|
|
|
if (!(res->base.bind & VIRGL_BIND_IMMUTABLE_STORAGE)) |
|
|
|
if (!has_bit(res->storage_bits, VREND_STORAGE_GL_IMMUTABLE)) |
|
|
|
return res->id; |
|
|
|
return res->id; |
|
|
|
|
|
|
|
|
|
|
|
VREND_DEBUG(dbg_blit, NULL, "Create texture view from %s%s as %s%s\n", |
|
|
|
VREND_DEBUG(dbg_blit, NULL, "Create texture view from %s%s as %s%s\n", |
|
|
|