dri: Garbage-collect old DRI interfaces

We don't use these in the tree, so declaring them only adds to
misdirection and annoyance.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35856>
This commit is contained in:
Daniel Stone 2025-07-01 14:30:44 +01:00 committed by Marge Bot
parent 82a6f19fdb
commit 4aaf431a11
5 changed files with 0 additions and 447 deletions

View file

@ -239,19 +239,6 @@ dri_server_wait_sync(struct dri_context *_ctx, void *_fence, unsigned flags)
ctx->fence_server_sync(ctx, fence->pipe_fence);
}
const __DRI2fenceExtension dri2FenceExtension = {
.base = { __DRI2_FENCE, 2 },
.create_fence = dri_create_fence,
.get_fence_from_cl_event = dri_get_fence_from_cl_event,
.destroy_fence = dri_destroy_fence,
.client_wait_sync = dri_client_wait_sync,
.server_wait_sync = dri_server_wait_sync,
.get_capabilities = dri_fence_get_caps,
.create_fence_fd = dri_create_fence_fd,
.get_fence_fd = dri_get_fence_fd,
};
struct dri_image *
dri_create_image_from_renderbuffer(struct dri_context *dri_ctx,
int renderbuffer, void *loaderPrivate,

View file

@ -40,8 +40,6 @@ struct dri2_format_mapping {
} planes[3];
};
extern const __DRI2fenceExtension dri2FenceExtension;
const struct dri2_format_mapping *
dri2_get_mapping_by_fourcc(int fourcc);

View file

@ -112,10 +112,6 @@ struct dri_screen
bool swrast_no_present;
/* DRI exts that vary based on gallium pipe_screen caps. */
__DRIimageExtension image_extension;
__DRI2bufferDamageExtension buffer_damage_extension;
/* DRI exts on this screen. Populated at init time based on device caps. */
const __DRIextension *screen_extensions[14];

View file

@ -128,7 +128,6 @@ driGetAPIMask(struct dri_screen *screen);
PUBLIC struct dri_drawable *
dri_create_drawable(struct dri_screen *psp, const struct dri_config *config,
bool isPixmap, void *loaderPrivate);
extern const __DRIimageDriverExtension driImageDriverExtension;
PUBLIC void driDestroyScreen(struct dri_screen *psp);
PUBLIC int
driGetConfigAttrib(const struct dri_config *config, unsigned int attrib, unsigned int *value);

View file

@ -121,14 +121,6 @@ typedef signed long
(*__DRIblobCacheGet) (const void *key, signed long keySize,
void *value, signed long valueSize);
/**
* Extension for fences / synchronization objects.
* *
* Not used by the X server.
*/
#define __DRI2_FENCE "DRI2_Fence"
#define __DRI2_FENCE_FLAG_FLUSH_COMMANDS (1 << 0)
/**
@ -138,126 +130,6 @@ typedef signed long
#define __DRI_FENCE_CAP_NATIVE_FD 1
/*@}*/
typedef struct {
__DRIextension base;
/**
* Create and insert a fence into the command stream of the context.
*/
void *(*create_fence)(struct dri_context *ctx);
/**
* Get a fence associated with the OpenCL event object.
* This can be NULL, meaning that OpenCL interoperability is not supported.
*/
void *(*get_fence_from_cl_event)(struct dri_screen *screen, intptr_t cl_event);
/**
* Destroy a fence.
*/
void (*destroy_fence)(struct dri_screen *screen, void *fence);
/**
* This function waits and doesn't return until the fence is signalled
* or the timeout expires. It returns true if the fence has been signaled.
*
* \param ctx the context where commands are flushed
* \param fence the fence
* \param flags a combination of __DRI2_FENCE_FLAG_xxx flags
* \param timeout the timeout in ns or __DRI2_FENCE_TIMEOUT_INFINITE
*/
unsigned char (*client_wait_sync)(struct dri_context *ctx, void *fence,
unsigned flags, uint64_t timeout);
/**
* This function enqueues a wait command into the command stream of
* the context and then returns. When the execution reaches the wait
* command, no further execution will be done in the context until
* the fence is signaled. This is a no-op if the device doesn't support
* parallel execution of contexts.
*
* \param ctx the context where the waiting is done
* \param fence the fence
* \param flags a combination of __DRI2_FENCE_FLAG_xxx flags that make
* sense with this function (right now there are none)
*/
void (*server_wait_sync)(struct dri_context *ctx, void *fence, unsigned flags);
/**
* Query for general capabilities of the driver that concern fences.
* Returns a bitmask of __DRI_FENCE_CAP_x
*
* \since 2
*/
unsigned (*get_capabilities)(struct dri_screen *screen);
/**
* Create an fd (file descriptor) associated fence. If the fence fd
* is -1, this behaves similarly to create_fence() except that when
* rendering is flushed the driver creates a fence fd. Otherwise,
* the driver wraps an existing fence fd.
*
* This is used to implement the EGL_ANDROID_native_fence_sync extension.
*
* \since 2
*
* \param ctx the context associated with the fence
* \param fd the fence fd or -1
*/
void *(*create_fence_fd)(struct dri_context *ctx, int fd);
/**
* For fences created with create_fence_fd(), after rendering is flushed,
* this retrieves the native fence fd. Caller takes ownership of the
* fd and will close() it when it is no longer needed.
*
* \since 2
*
* \param screen the screen associated with the fence
* \param fence the fence
*/
int (*get_fence_fd)(struct dri_screen *screen, void *fence);
} __DRI2fenceExtension;
/**
* Extension for limiting window system back buffer rendering to user-defined
* scissor region.
*
* Not used by the X server.
*/
typedef struct {
__DRIextension base;
/**
* Provides an array of rectangles representing an overriding scissor region
* for rendering operations performed to the specified drawable. These
* rectangles do not replace client API scissor regions or draw
* co-ordinates, but instead inform the driver of the overall bounds of all
* operations which will be issued before the next flush.
*
* Any rendering operations writing pixels outside this region to the
* drawable will have an undefined effect on the entire drawable.
*
* This entrypoint may only be called after the drawable has either been
* newly created or flushed, and before any rendering operations which write
* pixels to the drawable. Calling this entrypoint at any other time will
* have an undefined effect on the entire drawable.
*
* Calling this entrypoint with @nrects 0 and @rects NULL will reset the
* region to the buffer's full size. This entrypoint may be called once to
* reset the region, followed by a second call with a populated region,
* before a rendering call is made.
*
* Used to implement EGL_KHR_partial_update.
*
* \param drawable affected drawable
* \param nrects number of rectangles provided
* \param rects the array of rectangles, lower-left origin
*/
void (*set_damage_region)(struct dri_drawable *drawable, unsigned int nrects,
int *rects);
} __DRI2bufferDamageExtension;
/*@}*/
/**
@ -894,288 +766,6 @@ enum __DRIFixedRateCompression {
/* Available in version 16 */
#define __DRI_IMAGE_FORMAT_MODIFIER_ATTRIB_PLANE_COUNT 0x0001
typedef struct {
__DRIextension base;
void (*destroyImage)(struct dri_image *image);
unsigned char (*queryImage)(struct dri_image *image, int attrib, int *value);
/**
* The new struct dri_image will share the content with the old one, see dup(2).
*/
struct dri_image *(*dupImage)(struct dri_image *image, void *loaderPrivate);
/**
* Validate that a struct dri_image can be used a certain way.
*
* \since 2
*/
unsigned char (*validateUsage)(struct dri_image *image, unsigned int use);
/**
* Create an image from a series of GEM names; uses FourCC for format
* and byte stride.
*
* \since 5
*/
struct dri_image *(*createImageFromNames)(struct dri_screen *screen,
int width, int height, int fourcc,
int *names, int num_names,
int *strides, int *offsets,
void *loaderPrivate);
/**
* Create an image out of a sub-region of a parent image. This
* entry point lets us create individual dri_image structures for different
* planes in a planar buffer (typically yuv), for example. While a
* sub-image shares the underlying buffer object with the parent
* image and other sibling sub-images, the life times of parent and
* sub-images are not dependent. Destroying the parent or a
* sub-image doesn't affect other images. The underlying buffer
* object is free when no struct dri_image remains that references it.
*
* Sub-images may overlap, but rendering to overlapping sub-images
* is undefined.
*
* \since 5
*/
struct dri_image *(*fromPlanar)(struct dri_image *image, int plane,
void *loaderPrivate);
/**
* Create image from texture.
*
* \since 6
*/
struct dri_image *(*createImageFromTexture)(struct dri_context *context,
int target,
unsigned texture,
int depth,
int level,
unsigned *error,
void *loaderPrivate);
/**
* Blit a part of a struct dri_image to another and flushes
*
* flush_flag:
* 0: no flush
* __BLIT_FLAG_FLUSH: flush after the blit operation
* __BLIT_FLAG_FINISH: flush and wait the blit finished
*
* \since 9
*/
void (*blitImage)(struct dri_context *context, struct dri_image *dst, struct dri_image *src,
int dstx0, int dsty0, int dstwidth, int dstheight,
int srcx0, int srcy0, int srcwidth, int srcheight,
int flush_flag);
/**
* Query for general capabilities of the driver that concern
* buffer sharing and image importing.
*
* \since 10
*/
int (*getCapabilities)(struct dri_screen *screen);
/**
* Returns a map of the specified region of a struct dri_image for the specified usage.
*
* flags may include __DRI_IMAGE_TRANSFER_READ, which will populate the
* mapping with the current buffer content. If __DRI_IMAGE_TRANSFER_READ
* is not included in the flags, the buffer content at map time is
* undefined. Users wanting to modify the mapping must include
* __DRI_IMAGE_TRANSFER_WRITE; if __DRI_IMAGE_TRANSFER_WRITE is not
* included, behaviour when writing the mapping is undefined.
*
* Returns the byte stride in *stride, and an opaque pointer to data
* tracking the mapping in **data, which must be passed to unmapImage().
*
* \since 12
*/
void *(*mapImage)(struct dri_context *context, struct dri_image *image,
int x0, int y0, int width, int height,
unsigned int flags, int *stride, void **data);
/**
* Unmap a previously mapped struct dri_image
*
* \since 12
*/
void (*unmapImage)(struct dri_context *context, struct dri_image *image, void *data);
/*
* dmabuf format query to support EGL_EXT_image_dma_buf_import_modifiers.
*
* \param max Maximum number of formats that can be accomodated into
* \param formats. If zero, no formats are returned -
* instead, the driver returns the total number of
* supported dmabuf formats in \param count.
* \param formats Buffer to fill formats into.
* \param count Count of formats returned, or, total number of
* supported formats in case \param max is zero.
*
* Returns true on success.
*
* \since 15
*/
bool (*queryDmaBufFormats)(struct dri_screen *screen, int max, int *formats,
int *count);
/*
* dmabuf format modifier query for a given format to support
* EGL_EXT_image_dma_buf_import_modifiers.
*
* \param fourcc The format to query modifiers for. If this format
* is not supported by the driver, return false.
* \param max Maximum number of modifiers that can be accomodated in
* \param modifiers. If zero, no modifiers are returned -
* instead, the driver returns the total number of
* modifiers for \param format in \param count.
* \param modifiers Buffer to fill modifiers into.
* \param count Count of the modifiers returned, or, total number of
* supported modifiers for \param fourcc in case
* \param max is zero.
*
* Returns true upon success.
*
* \since 15
*/
bool (*queryDmaBufModifiers)(struct dri_screen *screen, int fourcc, int max,
uint64_t *modifiers,
unsigned int *external_only, int *count);
/**
* dmabuf format modifier attribute query for a given format and modifier.
*
* \param fourcc The format to query. If this format is not supported by
* the driver, return false.
* \param modifier The modifier to query. If this format+modifier is not
* supported by the driver, return false.
* \param attrib The __DRI_IMAGE_FORMAT_MODIFIER_ATTRIB to query.
* \param value A pointer to where to store the result of the query.
*
* Returns true upon success.
*
* \since 16
*/
bool (*queryDmaBufFormatModifierAttribs)(struct dri_screen *screen,
uint32_t fourcc, uint64_t modifier,
int attrib, uint64_t *value);
/**
* Create a DRI image from the given renderbuffer.
*
* \param context the current DRI context
* \param renderbuffer the GL name of the renderbuffer
* \param loaderPrivate for callbacks into the loader related to the image
* \param error will be set to one of __DRI_IMAGE_ERROR_xxx
* \return the newly created image on success, or NULL otherwise
*/
struct dri_image *(*createImageFromRenderbuffer)(struct dri_context *context,
int renderbuffer,
void *loaderPrivate,
unsigned *error);
/**
* Creates a DRI image from an array of dmabuf fds and their modifiers.
*
* See __DRI_IMAGE_*_FLAG for valid definitions of flags.
*/
struct dri_image *(*createImageFromDmaBufs)(struct dri_screen *screen,
int width, int height, int fourcc,
uint64_t modifier,
int *fds, int num_fds,
int *strides, int *offsets,
enum __DRIYUVColorSpace color_space,
enum __DRISampleRange sample_range,
enum __DRIChromaSiting horiz_siting,
enum __DRIChromaSiting vert_siting,
uint32_t flags,
unsigned *error,
void *loaderPrivate);
/**
* Creates an image with implementation's favorite modifiers and the
* provided usage flags.
*
* Passing either zero modifiers, or a modifier list consisting only
* of DRM_FORMAT_MOD_INVALID, allows the implementation to select a
* layout with implicit modifiers.
*
* The created image should be destroyed with destroyImage().
*
* Returns the new DRIimage. The chosen modifier can be obtained later on
* and passed back to things like the kernel's AddFB2 interface.
*
* \since 19
*/
struct dri_image *(*createImage)(struct dri_screen *screen,
int width, int height, int format,
const uint64_t *modifiers,
const unsigned int modifier_count,
unsigned int use,
void *loaderPrivate);
/**
* Set an in-fence-fd on the image. If a fence-fd is already set
* (but not yet consumed), the existing and new fence will be merged
*
* This does *not* take ownership of the fd. The fd does not need
* to be kept alive once the call has returned.
*
* \since 21
*/
void (*setInFenceFd)(struct dri_image *image, int fd);
/*
* Query supported compression rates for a given format for
* EGL_EXT_surface_compression.
*
* \param config Config for which to query the supported compression
* rates.
* \param max Maximum number of rates that can be accomodated into
* \param rates. If zero, no rates are returned -
* instead, the driver returns the total number of
* supported compression rates in \param count.
* \param rates Buffer to fill rates into.
* \param count Count of rates returned, or, total number of
* supported rates in case \param max is zero.
*
* Returns true on success.
*
* \since 22
*/
bool (*queryCompressionRates)(struct dri_screen *screen, const struct dri_config *config,
int max, enum __DRIFixedRateCompression *rates,
int *count);
/*
* Query list of modifiers that are associated with given fixed-rate
* compression bitrate.
*
* \param format The format to query
* \param rate Compression rate to query for
* \param max Maximum number of modifiers that can be accomodated in
* \param modifiers. If zero, no modifiers are returned -
* instead, the driver returns the total number of
* modifiers for \param format in \param count.
* \param modifiers Buffer to fill modifiers into.
* \param count Count of the modifiers returned, or, total number of
* supported modifiers for \param fourcc in case
* \param max is zero.
*
* Returns true on success.
*
* \since 22
*/
bool (*queryCompressionModifiers)(struct dri_screen *screen, uint32_t format,
enum __DRIFixedRateCompression rate,
int max, uint64_t *modifiers, int *count);
} __DRIimageExtension;
/**
* This extension must be implemented by the loader and passed to the
* driver at screen creation time. The EGLImage entry points in the
@ -1397,23 +987,6 @@ typedef struct {
void (*destroyLoaderImageState)(void *loaderPrivate);
} __DRIimageLoaderExtension;
/**
* Main DRI3 interface extension.
*
* Not used by the X server.
*/
typedef struct {
__DRIextension base;
/* Common DRI functions, shared with DRI2 */
__DRIcreateNewScreen2Func createNewScreen2;
__DRIcreateNewDrawableFunc createNewDrawable;
__DRIcreateContextAttribsFunc createContextAttribs;
__DRIgetAPIMaskFunc getAPIMask;
__DRIcreateNewScreen3Func createNewScreen3;
} __DRIimageDriverExtension;
/**
* Background callable loader extension.
*