blob: 87e8e0e10cf8ca9dfe7aed24daa6ad97e605290f [file] [log] [blame]
/*
* Copyright (C) 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
syntax = "proto2";
package gfxstream.proto;
message EglAvailability {
optional string vendor = 1;
optional string version = 2;
optional string extensions = 3;
optional string client_extensions = 4;
message GlesContextAvailability {
optional string vendor = 1;
optional string version = 2;
optional string renderer = 3;
optional string extensions = 4;
}
// Loading GLES functions via EGL's eglGetProcAddress().
optional GlesContextAvailability gles2_availability = 5;
optional GlesContextAvailability gles3_availability = 6;
// Loading GLES functions via GLESv2 library directly.
optional GlesContextAvailability gles2_direct_availability = 7;
optional GlesContextAvailability gles3_direct_availability = 8;
repeated string errors = 9;
}
message VulkanExternalMemoryHostQuirks {
repeated string errors = 1;
optional bool can_import_shm = 2;
}
message VulkanQuirks {
// See b/264575911.
optional bool has_issue_with_precision_qualifiers_on_yuv_samplers = 1;
optional VulkanExternalMemoryHostQuirks external_memory_host_quirks = 2;
}
message VulkanPhysicalDevice {
optional string name = 1;
repeated string extensions = 2;
enum Type {
TYPE_OTHER = 0;
TYPE_DISCRETE_GPU = 1;
}
optional Type type = 3;
optional VulkanQuirks quirks = 4;
}
message VulkanAvailability {
repeated string instance_extensions = 1;
repeated VulkanPhysicalDevice physical_devices = 2;
}
message GraphicsAvailability {
optional EglAvailability egl = 1;
optional VulkanAvailability vulkan = 2;
repeated string errors = 3;
}