i965: add __DRI2_BLOB support and set cache functions

v2: adjust to change that moved cache from ctx to screen

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
Tapani Pälli 2018-01-17 11:43:59 +02:00
parent ae00ef2702
commit 9d322fde97

View file

@ -36,6 +36,7 @@
#include "main/version.h"
#include "swrast/s_renderbuffer.h"
#include "util/ralloc.h"
#include "util/disk_cache.h"
#include "brw_defines.h"
#include "brw_state.h"
#include "compiler/nir/nir.h"
@ -1494,6 +1495,19 @@ brw_query_renderer_string(__DRIscreen *dri_screen,
return -1;
}
static void
brw_set_cache_funcs(__DRIscreen *dri_screen,
__DRIblobCacheSet set, __DRIblobCacheGet get)
{
const struct intel_screen *const screen =
(struct intel_screen *) dri_screen->driverPrivate;
if (!screen->disk_cache)
return;
disk_cache_set_callbacks(screen->disk_cache, set, get);
}
static const __DRI2rendererQueryExtension intelRendererQueryExtension = {
.base = { __DRI2_RENDERER_QUERY, 1 },
@ -1505,6 +1519,11 @@ static const __DRIrobustnessExtension dri2Robustness = {
.base = { __DRI2_ROBUSTNESS, 1 }
};
static const __DRI2blobExtension intelBlobExtension = {
.base = { __DRI2_BLOB, 1 },
.set_cache_funcs = brw_set_cache_funcs
};
static const __DRIextension *screenExtensions[] = {
&intelTexBufferExtension.base,
&intelFenceExtension.base,
@ -1513,6 +1532,7 @@ static const __DRIextension *screenExtensions[] = {
&intelRendererQueryExtension.base,
&dri2ConfigQueryExtension.base,
&dri2NoErrorExtension.base,
&intelBlobExtension.base,
NULL
};
@ -1525,6 +1545,7 @@ static const __DRIextension *intelRobustScreenExtensions[] = {
&dri2ConfigQueryExtension.base,
&dri2Robustness.base,
&dri2NoErrorExtension.base,
&intelBlobExtension.base,
NULL
};