Lines Matching refs:blob
87 struct blob blob; in v3dv_pipeline_cache_upload_nir() local
88 blob_init(&blob); in v3dv_pipeline_cache_upload_nir()
90 nir_serialize(&blob, nir, false); in v3dv_pipeline_cache_upload_nir()
91 if (blob.out_of_memory) { in v3dv_pipeline_cache_upload_nir()
92 blob_finish(&blob); in v3dv_pipeline_cache_upload_nir()
103 blob_finish(&blob); in v3dv_pipeline_cache_upload_nir()
109 ralloc_size(cache->nir_cache, sizeof(*snir) + blob.size); in v3dv_pipeline_cache_upload_nir()
111 snir->size = blob.size; in v3dv_pipeline_cache_upload_nir()
112 memcpy(snir->data, blob.data, blob.size); in v3dv_pipeline_cache_upload_nir()
114 blob_finish(&blob); in v3dv_pipeline_cache_upload_nir()
155 struct blob_reader blob; in v3dv_pipeline_cache_search_for_nir() local
156 blob_reader_init(&blob, snir->data, snir->size); in v3dv_pipeline_cache_search_for_nir()
162 nir_shader *nir = nir_deserialize(NULL, nir_options, &blob); in v3dv_pipeline_cache_search_for_nir()
163 if (blob.overrun) { in v3dv_pipeline_cache_search_for_nir()
291 struct blob_reader *blob) in serialized_nir_create_from_blob() argument
293 const unsigned char *sha1_key = blob_read_bytes(blob, 20); in serialized_nir_create_from_blob()
294 uint32_t snir_size = blob_read_uint32(blob); in serialized_nir_create_from_blob()
295 const char* snir_data = blob_read_bytes(blob, snir_size); in serialized_nir_create_from_blob()
296 if (blob->overrun) in serialized_nir_create_from_blob()
310 struct blob_reader *blob) in shader_variant_create_from_blob() argument
314 gl_shader_stage stage = blob_read_uint32(blob); in shader_variant_create_from_blob()
315 bool is_coord = blob_read_uint8(blob); in shader_variant_create_from_blob()
317 uint32_t v3d_key_size = blob_read_uint32(blob); in shader_variant_create_from_blob()
318 const struct v3d_key *v3d_key = blob_read_bytes(blob, v3d_key_size); in shader_variant_create_from_blob()
320 const unsigned char *variant_sha1 = blob_read_bytes(blob, 20); in shader_variant_create_from_blob()
322 uint32_t prog_data_size = blob_read_uint32(blob); in shader_variant_create_from_blob()
326 const void *prog_data = blob_read_bytes(blob, prog_data_size); in shader_variant_create_from_blob()
327 if (blob->overrun) in shader_variant_create_from_blob()
330 uint32_t ulist_count = blob_read_uint32(blob); in shader_variant_create_from_blob()
332 const void *contents_data = blob_read_bytes(blob, contents_size); in shader_variant_create_from_blob()
333 if (blob->overrun) in shader_variant_create_from_blob()
337 const void *ulist_data_data = blob_read_bytes(blob, ulist_data_size); in shader_variant_create_from_blob()
338 if (blob->overrun) in shader_variant_create_from_blob()
341 uint32_t qpu_insts_size = blob_read_uint32(blob); in shader_variant_create_from_blob()
342 const uint64_t *qpu_insts = blob_read_bytes(blob, qpu_insts_size); in shader_variant_create_from_blob()
343 if (blob->overrun) in shader_variant_create_from_blob()
380 struct blob_reader blob; in pipeline_cache_load() local
381 blob_reader_init(&blob, data, size); in pipeline_cache_load()
383 blob_copy_bytes(&blob, &header, sizeof(header)); in pipeline_cache_load()
398 uint32_t nir_count = blob_read_uint32(&blob); in pipeline_cache_load()
399 if (blob.overrun) in pipeline_cache_load()
404 serialized_nir_create_from_blob(cache, &blob); in pipeline_cache_load()
413 uint32_t count = blob_read_uint32(&blob); in pipeline_cache_load()
414 if (blob.overrun) in pipeline_cache_load()
419 shader_variant_create_from_blob(device, &blob); in pipeline_cache_load()
582 struct blob *blob) in shader_variant_write_to_blob() argument
584 blob_write_uint32(blob, variant->stage); in shader_variant_write_to_blob()
585 blob_write_uint8(blob, variant->is_coord); in shader_variant_write_to_blob()
587 blob_write_uint32(blob, variant->v3d_key_size); in shader_variant_write_to_blob()
588 blob_write_bytes(blob, &variant->key, variant->v3d_key_size); in shader_variant_write_to_blob()
590 blob_write_bytes(blob, variant->variant_sha1, sizeof(variant->variant_sha1)); in shader_variant_write_to_blob()
592 blob_write_uint32(blob, variant->prog_data_size); in shader_variant_write_to_blob()
593 blob_write_bytes(blob, variant->prog_data.base, variant->prog_data_size); in shader_variant_write_to_blob()
596 blob_write_uint32(blob, ulist->count); in shader_variant_write_to_blob()
597 blob_write_bytes(blob, ulist->contents, sizeof(enum quniform_contents) * ulist->count); in shader_variant_write_to_blob()
598 blob_write_bytes(blob, ulist->data, sizeof(uint32_t) * ulist->count); in shader_variant_write_to_blob()
600 blob_write_uint32(blob, variant->qpu_insts_size); in shader_variant_write_to_blob()
602 blob_write_bytes(blob, variant->assembly_bo->map, variant->qpu_insts_size); in shader_variant_write_to_blob()
604 return !blob->out_of_memory; in shader_variant_write_to_blob()
616 struct blob blob; in v3dv_GetPipelineCacheData() local
618 blob_init_fixed(&blob, pData, *pDataSize); in v3dv_GetPipelineCacheData()
620 blob_init_fixed(&blob, NULL, SIZE_MAX); in v3dv_GetPipelineCacheData()
635 blob_write_bytes(&blob, &header, sizeof(header)); in v3dv_GetPipelineCacheData()
638 intptr_t nir_count_offset = blob_reserve_uint32(&blob); in v3dv_GetPipelineCacheData()
641 blob_finish(&blob); in v3dv_GetPipelineCacheData()
650 size_t save_size = blob.size; in v3dv_GetPipelineCacheData()
652 blob_write_bytes(&blob, snir->sha1_key, 20); in v3dv_GetPipelineCacheData()
653 blob_write_uint32(&blob, snir->size); in v3dv_GetPipelineCacheData()
654 blob_write_bytes(&blob, snir->data, snir->size); in v3dv_GetPipelineCacheData()
656 if (blob.out_of_memory) { in v3dv_GetPipelineCacheData()
657 blob.size = save_size; in v3dv_GetPipelineCacheData()
666 blob_overwrite_uint32(&blob, nir_count_offset, nir_count); in v3dv_GetPipelineCacheData()
669 intptr_t count_offset = blob_reserve_uint32(&blob); in v3dv_GetPipelineCacheData()
672 blob_finish(&blob); in v3dv_GetPipelineCacheData()
681 size_t save_size = blob.size; in v3dv_GetPipelineCacheData()
682 if (!shader_variant_write_to_blob(variant, &blob)) { in v3dv_GetPipelineCacheData()
684 blob.size = save_size; in v3dv_GetPipelineCacheData()
694 blob_overwrite_uint32(&blob, count_offset, count); in v3dv_GetPipelineCacheData()
696 *pDataSize = blob.size; in v3dv_GetPipelineCacheData()
698 blob_finish(&blob); in v3dv_GetPipelineCacheData()