hwcontext_vaapi: Improve logging around quirk detection
Clarify that the list is the naughty list, and therefore being on it is not desirable. The i965 driver does not need to be on the list after version 2.0 (when the standard parameter buffer rendering behaviour was changed).
This commit is contained in:
parent
c2e2b04df3
commit
852c7ba3f8
@ -279,11 +279,14 @@ static const struct {
|
|||||||
const char *match_string;
|
const char *match_string;
|
||||||
unsigned int quirks;
|
unsigned int quirks;
|
||||||
} vaapi_driver_quirks_table[] = {
|
} vaapi_driver_quirks_table[] = {
|
||||||
|
#if !VA_CHECK_VERSION(1, 0, 0)
|
||||||
|
// The i965 driver did not conform before version 2.0.
|
||||||
{
|
{
|
||||||
"Intel i965 (Quick Sync)",
|
"Intel i965 (Quick Sync)",
|
||||||
"i965",
|
"i965",
|
||||||
AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS,
|
AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS,
|
||||||
},
|
},
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
"Intel iHD",
|
"Intel iHD",
|
||||||
"ubit",
|
"ubit",
|
||||||
@ -344,29 +347,37 @@ static int vaapi_device_init(AVHWDeviceContext *hwdev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vendor_string = vaQueryVendorString(hwctx->display);
|
||||||
|
if (vendor_string)
|
||||||
|
av_log(hwdev, AV_LOG_VERBOSE, "VAAPI driver: %s.\n", vendor_string);
|
||||||
|
|
||||||
if (hwctx->driver_quirks & AV_VAAPI_DRIVER_QUIRK_USER_SET) {
|
if (hwctx->driver_quirks & AV_VAAPI_DRIVER_QUIRK_USER_SET) {
|
||||||
av_log(hwdev, AV_LOG_VERBOSE, "Not detecting driver: "
|
av_log(hwdev, AV_LOG_VERBOSE, "Using quirks set by user (%#x).\n",
|
||||||
"quirks set by user.\n");
|
hwctx->driver_quirks);
|
||||||
} else {
|
} else {
|
||||||
// Detect the driver in use and set quirk flags if necessary.
|
// Detect the driver in use and set quirk flags if necessary.
|
||||||
vendor_string = vaQueryVendorString(hwctx->display);
|
|
||||||
hwctx->driver_quirks = 0;
|
hwctx->driver_quirks = 0;
|
||||||
if (vendor_string) {
|
if (vendor_string) {
|
||||||
for (i = 0; i < FF_ARRAY_ELEMS(vaapi_driver_quirks_table); i++) {
|
for (i = 0; i < FF_ARRAY_ELEMS(vaapi_driver_quirks_table); i++) {
|
||||||
if (strstr(vendor_string,
|
if (strstr(vendor_string,
|
||||||
vaapi_driver_quirks_table[i].match_string)) {
|
vaapi_driver_quirks_table[i].match_string)) {
|
||||||
av_log(hwdev, AV_LOG_VERBOSE, "Matched \"%s\" as known "
|
av_log(hwdev, AV_LOG_VERBOSE, "Matched driver string "
|
||||||
"driver \"%s\".\n", vendor_string,
|
"as known nonstandard driver \"%s\", setting "
|
||||||
vaapi_driver_quirks_table[i].friendly_name);
|
"quirks (%#x).\n",
|
||||||
|
vaapi_driver_quirks_table[i].friendly_name,
|
||||||
|
vaapi_driver_quirks_table[i].quirks);
|
||||||
hwctx->driver_quirks |=
|
hwctx->driver_quirks |=
|
||||||
vaapi_driver_quirks_table[i].quirks;
|
vaapi_driver_quirks_table[i].quirks;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!(i < FF_ARRAY_ELEMS(vaapi_driver_quirks_table))) {
|
if (!(i < FF_ARRAY_ELEMS(vaapi_driver_quirks_table))) {
|
||||||
av_log(hwdev, AV_LOG_VERBOSE, "Unknown driver \"%s\", "
|
av_log(hwdev, AV_LOG_VERBOSE, "Driver not found in known "
|
||||||
"assuming standard behaviour.\n", vendor_string);
|
"nonstandard list, using standard behaviour.\n");
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
av_log(hwdev, AV_LOG_VERBOSE, "Driver has no vendor string, "
|
||||||
|
"assuming standard behaviour.\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user