intel: Add intel_gem_create_context_engines
Engines based contexts operate somewhat different for executing batches. Previously, we would specify a bitmask value such as I915_EXEC_RENDER to specify to run the batch on the render ring. With engines contexts, instead this becomes an array of "engines", and when the context is created we specify the class and instance of the engine. Each index in the array has a separate hardware-context. Previously we had to create separate kernel level contexts to create multiple hardware contexts, but now a single kernel context can own multiple hardware contexts. Another forward looking advantage to using the engines based contexts is that the kernel does not plan to add new supported I915_EXEC_FOO masks, whereas they instead plan to add new I915_ENGINE_CLASS_FOO engine classes. Therefore some rings may only be usable with an engine based class. Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12692>
This commit is contained in:
@@ -1365,10 +1365,6 @@ int anv_gem_execbuffer(struct anv_device *device,
|
||||
int anv_gem_set_tiling(struct anv_device *device, uint32_t gem_handle,
|
||||
uint32_t stride, uint32_t tiling);
|
||||
int anv_gem_create_context(struct anv_device *device);
|
||||
int anv_gem_create_context_engines(struct anv_device *device,
|
||||
const struct drm_i915_query_engine_info *info,
|
||||
int num_engines,
|
||||
uint16_t *engine_classes);
|
||||
bool anv_gem_has_context_priority(int fd, int priority);
|
||||
int anv_gem_destroy_context(struct anv_device *device, int context);
|
||||
int anv_gem_set_context_param(int fd, int context, uint32_t param,
|
||||
|
Reference in New Issue
Block a user