+ bool (*generate_mipmap)(struct pipe_context *ctx,
+ struct pipe_resource *resource,
+ enum pipe_format format,
+ unsigned base_level,
+ unsigned last_level,
+ unsigned first_layer,
+ unsigned last_layer);
+
+ /**
+ * Create a 64-bit texture handle.
+ *
+ * \param ctx pipe context
+ * \param view pipe sampler view object
+ * \param state pipe sampler state template
+ * \return a 64-bit texture handle if success, 0 otherwise
+ */
+ uint64_t (*create_texture_handle)(struct pipe_context *ctx,
+ struct pipe_sampler_view *view,
+ const struct pipe_sampler_state *state);
+
+ /**
+ * Delete a texture handle.
+ *
+ * \param ctx pipe context
+ * \param handle 64-bit texture handle
+ */
+ void (*delete_texture_handle)(struct pipe_context *ctx, uint64_t handle);
+
+ /**
+ * Make a texture handle resident.
+ *
+ * \param ctx pipe context
+ * \param handle 64-bit texture handle
+ * \param resident TRUE for resident, FALSE otherwise
+ */
+ void (*make_texture_handle_resident)(struct pipe_context *ctx,
+ uint64_t handle, bool resident);
+
+ /**
+ * Create a 64-bit image handle.
+ *
+ * \param ctx pipe context
+ * \param image pipe image view template
+ * \return a 64-bit image handle if success, 0 otherwise
+ */
+ uint64_t (*create_image_handle)(struct pipe_context *ctx,
+ const struct pipe_image_view *image);
+
+ /**
+ * Delete an image handle.
+ *
+ * \param ctx pipe context
+ * \param handle 64-bit image handle
+ */
+ void (*delete_image_handle)(struct pipe_context *ctx, uint64_t handle);
+
+ /**
+ * Make an image handle resident.
+ *
+ * \param ctx pipe context
+ * \param handle 64-bit image handle
+ * \param access GL_READ_ONLY, GL_WRITE_ONLY or GL_READ_WRITE
+ * \param resident TRUE for resident, FALSE otherwise
+ */
+ void (*make_image_handle_resident)(struct pipe_context *ctx, uint64_t handle,
+ unsigned access, bool resident);
+
+ /**
+ * Call the given function from the driver thread.
+ *
+ * This is set by threaded contexts for use by debugging wrappers.
+ *
+ * \param asap if true, run the callback immediately if there are no pending
+ * commands to be processed by the driver thread
+ */
+ void (*callback)(struct pipe_context *ctx, void (*fn)(void *), void *data,
+ bool asap);
+
+ /**
+ * Set a context parameter See enum pipe_context_param for more details.
+ */
+ void (*set_context_param)(struct pipe_context *ctx,
+ enum pipe_context_param param,
+ unsigned value);