• Ben Widawsky's avatar
    drm/i915: context basic create & destroy · 40521054
    Ben Widawsky authored
    Invent an abstraction for a hw context which is passed around through
    the core functions. The main bit a hw context holds is the buffer object
    which backs the context. The rest of the members are just helper
    functions. Specifically the ring member, which could likely go away if
    we decide to never implement whatever other hw context support exists.
    Of note here is the introduction of the 64k alignment constraint for the
    BO. If contexts become heavily used, we should consider tweaking this
    down to 4k. Until the contexts are merged and tested a bit though, I
    think 64k is a nice start (based on docs).
    Since we don't yet switch contexts, there is really not much complexity
    here. Creation/destruction works pretty much as one would expect. An idr
    is used to generate the context id numbers which are unique per file
    v2: add DRM_DEBUG_DRIVERS to distinguish ENOMEM failures (ben)
    convert a BUG_ON to WARN_ON, default destruction is still fatal (ben)
    Signed-off-by: default avatarBen Widawsky <ben@bwidawsk.net>
i915_gem_context.c 9.99 KB