diff --git a/src/vrend_renderer.c b/src/vrend_renderer.c index b1ceaed..75a297d 100644 --- a/src/vrend_renderer.c +++ b/src/vrend_renderer.c @@ -117,6 +117,7 @@ enum features_id feat_ssbo, feat_stencil_texturing, feat_tessellation, + feat_texture_array, feat_texture_buffer_range, feat_texture_storage, feat_texture_view, @@ -163,6 +164,7 @@ static const struct { [feat_ssbo] = { 43, 31, { "GL_ARB_shader_storage_buffer_object" } }, [feat_stencil_texturing] = { 43, UNAVAIL, { "GL_ARB_stencil_texturing" } }, [feat_tessellation] = { 40, UNAVAIL, { "GL_ARB_tessellation_shader" } }, + [feat_texture_array] = { 30, 30, { "GL_EXT_texture_array" } }, [feat_texture_buffer_range] = { 43, UNAVAIL, { "GL_ARB_texture_buffer_range" } }, [feat_texture_storage] = { 42, UNAVAIL, { "GL_ARB_texture_storage" } }, [feat_texture_view] = { 43, UNAVAIL, { "GL_ARB_texture_view" } }, @@ -5001,6 +5003,9 @@ static int check_resource_valid(struct vrend_renderer_resource_create_args *args if (args->target != PIPE_TEXTURE_2D_ARRAY && args->target != PIPE_TEXTURE_1D_ARRAY) return -1; + + if (!has_feature(feat_texture_array)) + return -1; } if (args->bind == 0 || @@ -7713,7 +7718,7 @@ void vrend_renderer_fill_caps(uint32_t set, uint32_t version, caps->v1.bset.mirror_clamp = true; } - if (epoxy_has_gl_extension("GL_EXT_texture_array")) { + if (has_feature(feat_texture_array)) { glGetIntegerv(GL_MAX_ARRAY_TEXTURE_LAYERS, &max); caps->v1.max_texture_array_layers = max; }