[Mesa-dev] [PATCH v2 7/7] i965: add __DRI2_BLOB support and set cache functions

Tapani Pälli tapani.palli at intel.com
Wed Jan 31 12:20:23 UTC 2018



On 31.01.2018 11:27, Jordan Justen wrote:
> On 2018-01-30 23:17:06, Tapani Pälli wrote:
>> v2: adjust to change that moved cache from ctx to screen
>>
>> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
>> ---
>>   src/mesa/drivers/dri/i965/intel_screen.c | 21 +++++++++++++++++++++
>>   1 file changed, 21 insertions(+)
>>
>> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c
>> index e1e520bc89..2c445af1e4 100644
>> --- a/src/mesa/drivers/dri/i965/intel_screen.c
>> +++ b/src/mesa/drivers/dri/i965/intel_screen.c
>> @@ -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;
> 
> Could this cause us to fail tests if the disk cache is not enabled?
> For example, if they test setting the functions to NULL, or set
> multiple times?

No because those are handled already at EGL level. My Piglit API level 
test passes even if disk cache is not created.

> -Jordan
> 
>> +
>> +   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
>>   };
>>   
>> -- 
>> 2.13.6
>>


More information about the mesa-dev mailing list