[Libva] [LIBVA_INTEL_DRIVER][PATCH V3 1/4] Query the kernel API to check the EU counts of GPU device

Zhao Yakui yakui.zhao at intel.com
Sun Nov 20 19:41:42 UTC 2016


This info can be used to configure the max EU threads of GPU device.
>eu_total * 6

V2->V3: Refresh the patches again.
V1->V2: Remove the extra bit_field of has_eu_flag. Instead the eu_total > 0
can be used.

Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
Reviewed-by: Charles Daniel <daniel.charles at intel.com>
---
 src/intel_driver.c | 11 +++++++++++
 src/intel_driver.h |  2 ++
 2 files changed, 13 insertions(+)

diff --git a/src/intel_driver.c b/src/intel_driver.c
index bb19401..67d7de1 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,11 @@ intel_driver_init(VADriverContextP ctx)
     if (intel_driver_get_param(intel, LOCAL_I915_PARAM_HAS_HUC, &ret_value))
         intel->has_huc = !!ret_value;
 
+    intel->eu_total = 0;
+    if (intel_driver_get_param(intel, LOCAL_I915_PARAM_EU_TOTAL, &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 4ff707d..036e150 100644
--- a/src/intel_driver.h
+++ b/src/intel_driver.h
@@ -189,6 +189,8 @@ struct intel_driver_data
     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? */
 
+    int eu_total;
+
     const struct intel_device_info *device_info;
 };
 
-- 
2.8.3



More information about the Libva mailing list