mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-18 22:28:06 +02:00
venus: add vn_extension_get_spec_version
It is a wraper for vn_info_extension_get Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15498>
This commit is contained in:
parent
0819869ca8
commit
5d188274ee
4 changed files with 22 additions and 13 deletions
|
|
@ -15,6 +15,7 @@
|
|||
#include "util/debug.h"
|
||||
#include "util/log.h"
|
||||
#include "util/os_misc.h"
|
||||
#include "venus-protocol/vn_protocol_driver_info.h"
|
||||
#include "vk_enum_to_str.h"
|
||||
|
||||
static const struct debug_control vn_debug_options[] = {
|
||||
|
|
@ -70,6 +71,13 @@ vn_log_result(struct vn_instance *instance,
|
|||
return result;
|
||||
}
|
||||
|
||||
uint32_t
|
||||
vn_extension_get_spec_version(const char *name)
|
||||
{
|
||||
const struct vn_info_extension *ext = vn_info_extension_get(name);
|
||||
return ext ? ext->spec_version : 0;
|
||||
}
|
||||
|
||||
void
|
||||
vn_relax(uint32_t *iter, const char *reason)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -236,6 +236,9 @@ vn_refcount_dec(struct vn_refcount *ref)
|
|||
return old == 1;
|
||||
}
|
||||
|
||||
uint32_t
|
||||
vn_extension_get_spec_version(const char *name);
|
||||
|
||||
void
|
||||
vn_relax(uint32_t *iter, const char *reason);
|
||||
|
||||
|
|
|
|||
|
|
@ -266,17 +266,16 @@ vn_instance_init_renderer(struct vn_instance *instance)
|
|||
return VK_ERROR_INITIALIZATION_FAILED;
|
||||
}
|
||||
|
||||
const struct vn_info_extension *ext =
|
||||
vn_info_extension_get("VK_EXT_command_serialization");
|
||||
uint32_t spec_version =
|
||||
vn_extension_get_spec_version("VK_EXT_command_serialization");
|
||||
if (renderer_info->vk_ext_command_serialization_spec_version >
|
||||
ext->spec_version) {
|
||||
renderer_info->vk_ext_command_serialization_spec_version =
|
||||
ext->spec_version;
|
||||
spec_version) {
|
||||
renderer_info->vk_ext_command_serialization_spec_version = spec_version;
|
||||
}
|
||||
|
||||
ext = vn_info_extension_get("VK_MESA_venus_protocol");
|
||||
if (renderer_info->vk_mesa_venus_protocol_spec_version > ext->spec_version)
|
||||
renderer_info->vk_mesa_venus_protocol_spec_version = ext->spec_version;
|
||||
spec_version = vn_extension_get_spec_version("VK_MESA_venus_protocol");
|
||||
if (renderer_info->vk_mesa_venus_protocol_spec_version > spec_version)
|
||||
renderer_info->vk_mesa_venus_protocol_spec_version = spec_version;
|
||||
|
||||
if (VN_DEBUG(INIT)) {
|
||||
vn_log(instance, "connected to renderer");
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@
|
|||
#include "git_sha1.h"
|
||||
#include "util/mesa-sha1.h"
|
||||
#include "venus-protocol/vn_protocol_driver_device.h"
|
||||
#include "venus-protocol/vn_protocol_driver_info.h"
|
||||
|
||||
#include "vn_android.h"
|
||||
#include "vn_instance.h"
|
||||
|
|
@ -1046,14 +1045,14 @@ vn_physical_device_init_renderer_extensions(
|
|||
continue;
|
||||
|
||||
/* check encoder support */
|
||||
const struct vn_info_extension *enc_ext =
|
||||
vn_info_extension_get(props->extensionName);
|
||||
if (!enc_ext)
|
||||
const uint32_t enc_ext_spec_version =
|
||||
vn_extension_get_spec_version(props->extensionName);
|
||||
if (!enc_ext_spec_version)
|
||||
continue;
|
||||
|
||||
physical_dev->renderer_extensions.extensions[i] = true;
|
||||
physical_dev->extension_spec_versions[i] =
|
||||
MIN2(exts[j].specVersion, enc_ext->spec_version);
|
||||
MIN2(exts[j].specVersion, enc_ext_spec_version);
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue