i965: introduce modifier selection.

Nothing special here other than a brief introduction to modifier
selection. Originally this was part of another patch but was split out
from
gbm: Introduce modifiers into surface/bo creation by request of Emil.

Requested-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Ben Widawsky 2017-03-13 18:20:02 -07:00
parent 191ff914a2
commit 5c6e0d1c7d
1 changed files with 19 additions and 0 deletions

View File

@ -41,6 +41,10 @@
#include "utils.h"
#include "xmlpool.h"
#ifndef DRM_FORMAT_MOD_INVALID
#define DRM_FORMAT_MOD_INVALID ((1ULL<<56) - 1)
#endif
static const __DRIconfigOptionsExtension brw_config_options = {
.base = { __DRI_CONFIG_OPTIONS, 1 },
.xml =
@ -505,6 +509,15 @@ intel_destroy_image(__DRIimage *image)
free(image);
}
static uint64_t
select_best_modifier(struct gen_device_info *devinfo,
const uint64_t *modifiers,
const unsigned count)
{
/* Modifiers are not supported by this DRI driver */
return DRM_FORMAT_MOD_INVALID;
}
static __DRIimage *
intel_create_image_common(__DRIscreen *dri_screen,
int width, int height, int format,
@ -525,6 +538,12 @@ intel_create_image_common(__DRIscreen *dri_screen,
*/
assert(!(use && count));
uint64_t modifier = select_best_modifier(&screen->devinfo, modifiers, count);
assert(modifier == DRM_FORMAT_MOD_INVALID);
/* Historically, X-tiled was the default, and so lack of modifier means
* X-tiled.
*/
tiling = I915_TILING_X;
if (use & __DRI_IMAGE_USE_CURSOR) {
if (width != 64 || height != 64)