[Libva] [LIBVA_INTEL_DRIVER][PATCH 1/4] Query the kernel API to check the EU counts of GPU device
Zhao Yakui
yakui.zhao at intel.com
Thu Nov 17 02:06:48 UTC 2016
This info can be used to configure the max EU threads of GPU device.
>eu_total * 6
Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
---
src/intel_driver.c | 13 +++++++++++++
src/intel_driver.h | 3 +++
2 files changed, 16 insertions(+)
diff --git a/src/intel_driver.c b/src/intel_driver.c
index bb19401..a2c8c71 100644
--- a/src/intel_driver.c
+++ b/src/intel_driver.c
@@ -50,6 +50,12 @@ uint32_t g_intel_debug_option_flags = 0;
#define LOCAL_I915_PARAM_HAS_HUC 42
#endif
+#ifdef I915_PARAM_EU_TOTAL
+#define LOCAL_I915_PARAM_EU_TOTAL I915_PARAM_EU_TOTAL
+#else
+#define LOCAL_I915_PARAM_EU_TOTAL 34
+#endif
+
static Bool
intel_driver_get_param(struct intel_driver_data *intel, int param, int *value)
{
@@ -142,6 +148,13 @@ intel_driver_init(VADriverContextP ctx)
if (intel_driver_get_param(intel, LOCAL_I915_PARAM_HAS_HUC, &ret_value))
intel->has_huc = !!ret_value;
+ intel->has_eu_flag = 0;
+ intel->eu_total = 0;
+ if (intel_driver_get_param(intel, LOCAL_I915_PARAM_EU_TOTAL, &ret_value)) {
+ intel->has_eu_flag = !!ret_value;
+ intel->eu_total = ret_value;
+ }
+
intel_driver_get_revid(intel, &intel->revision);
return true;
}
diff --git a/src/intel_driver.h b/src/intel_driver.h
index dcdc03b..a02bfa8 100644
--- a/src/intel_driver.h
+++ b/src/intel_driver.h
@@ -182,6 +182,9 @@ struct intel_driver_data
unsigned int has_vebox : 1; /* Flag: has VEBOX unit */
unsigned int has_bsd2 : 1; /* Flag: has the second BSD video ring unit */
unsigned int has_huc : 1; /* Flag: has a fully loaded HuC firmware? */
+ unsigned int has_eu_flag : 1; /* Flag: Kernel will return EU counts */
+
+ int eu_total;
const struct intel_device_info *device_info;
};
--
2.8.3
More information about the Libva
mailing list