Ejemplo n.º 1
0
static void
nouveau_disk_cache_create(struct nouveau_screen *screen)
{
   struct mesa_sha1 ctx;
   unsigned char sha1[20];
   char cache_id[20 * 2 + 1];
   uint64_t driver_flags = 0;

   _mesa_sha1_init(&ctx);
   if (!disk_cache_get_function_identifier(nouveau_disk_cache_create,
                                           &ctx))
      return;

   _mesa_sha1_final(&ctx, sha1);
   disk_cache_format_hex_id(cache_id, sha1, 20 * 2);

   if (screen->prefer_nir)
      driver_flags |= NOUVEAU_SHADER_CACHE_FLAGS_IR_NIR;
   else
      driver_flags |= NOUVEAU_SHADER_CACHE_FLAGS_IR_TGSI;

   screen->disk_shader_cache =
      disk_cache_create(nouveau_screen_get_name(&screen->base),
                        cache_id, driver_flags);
}
Ejemplo n.º 2
0
static void
nouveau_disk_cache_create(struct nouveau_screen *screen)
{
   uint32_t mesa_id;
   char *mesa_id_str;
   int res;

   if (disk_cache_get_function_identifier(nouveau_disk_cache_create,
                                          &mesa_id)) {
      res = asprintf(&mesa_id_str, "%u", mesa_id);
      if (res != -1) {
         screen->disk_shader_cache =
            disk_cache_create(nouveau_screen_get_name(&screen->base),
                              mesa_id_str, 0);
         free(mesa_id_str);
      }
   }
}