Lines Matching refs:ish
52 .prefix.program_string_id = ish->program_id, \
65 struct iris_uncompiled_shader *ish; member
1118 struct iris_uncompiled_shader *ish, in iris_debug_recompile() argument
1121 if (!ish || list_is_empty(&ish->variants) in iris_debug_recompile()
1122 || list_is_singular(&ish->variants)) in iris_debug_recompile()
1126 const struct shader_info *info = &ish->nir->info; in iris_debug_recompile()
1134 list_first_entry(&ish->variants, struct iris_compiled_shader, link); in iris_debug_recompile()
1208 struct iris_uncompiled_shader *ish, in find_or_add_variant() argument
1213 struct list_head *start = ish->variants.next; in find_or_add_variant()
1224 list_first_entry(&ish->variants, struct iris_compiled_shader, link); in find_or_add_variant()
1240 simple_mtx_lock(&ish->lock); in find_or_add_variant()
1243 &ish->variants, link) { in find_or_add_variant()
1255 list_addtail(&variant->link, &ish->variants); in find_or_add_variant()
1258 simple_mtx_unlock(&ish->lock); in find_or_add_variant()
1260 simple_mtx_unlock(&ish->lock); in find_or_add_variant()
1309 struct iris_uncompiled_shader *ish, in iris_compile_vs() argument
1323 nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir); in iris_compile_vs()
1373 iris_debug_recompile(screen, dbg, ish, &brw_key.base); in iris_compile_vs()
1376 screen->vtbl.create_so_decl_list(&ish->stream_output, in iris_compile_vs()
1382 iris_upload_shader(screen, ish, shader, NULL, uploader, IRIS_CACHE_VS, in iris_compile_vs()
1385 iris_disk_cache_store(screen->disk_cache, ish, shader, key, sizeof(*key)); in iris_compile_vs()
1401 struct iris_uncompiled_shader *ish = in iris_update_compiled_vs() local
1405 screen->vtbl.populate_vs_key(ice, &ish->nir->info, last_vue_stage(ice), &key); in iris_update_compiled_vs()
1410 find_or_add_variant(screen, ish, IRIS_CACHE_VS, &key, sizeof(key), &added); in iris_update_compiled_vs()
1412 if (added && !iris_disk_cache_retrieve(screen, uploader, ish, shader, in iris_update_compiled_vs()
1414 iris_compile_vs(screen, uploader, &ice->dbg, ish, shader); in iris_update_compiled_vs()
1441 const struct iris_uncompiled_shader *ish = ice->shaders.uncompiled[stage]; in iris_get_shader_info() local
1443 if (!ish) in iris_get_shader_info()
1446 const nir_shader *nir = ish->nir; in iris_get_shader_info()
1489 struct iris_uncompiled_shader *ish, in iris_compile_tcs() argument
1512 if (ish) { in iris_compile_tcs()
1513 nir = nir_shader_clone(mem_ctx, ish->nir); in iris_compile_tcs()
1578 iris_debug_recompile(screen, dbg, ish, &brw_key.base); in iris_compile_tcs()
1583 iris_upload_shader(screen, ish, shader, passthrough_ht, uploader, in iris_compile_tcs()
1586 if (ish) in iris_compile_tcs()
1587 iris_disk_cache_store(screen->disk_cache, ish, shader, key, sizeof(*key)); in iris_compile_tcs()
1678 struct iris_uncompiled_shader *ish, in iris_compile_tes() argument
1692 nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir); in iris_compile_tes()
1741 iris_debug_recompile(screen, dbg, ish, &brw_key.base); in iris_compile_tes()
1744 screen->vtbl.create_so_decl_list(&ish->stream_output, in iris_compile_tes()
1750 iris_upload_shader(screen, ish, shader, NULL, uploader, IRIS_CACHE_TES, in iris_compile_tes()
1753 iris_disk_cache_store(screen->disk_cache, ish, shader, key, sizeof(*key)); in iris_compile_tes()
1769 struct iris_uncompiled_shader *ish = in iris_update_compiled_tes() local
1774 screen->vtbl.populate_tes_key(ice, &ish->nir->info, last_vue_stage(ice), &key); in iris_update_compiled_tes()
1779 find_or_add_variant(screen, ish, IRIS_CACHE_TES, &key, sizeof(key), &added); in iris_update_compiled_tes()
1781 if (added && !iris_disk_cache_retrieve(screen, uploader, ish, shader, in iris_update_compiled_tes()
1783 iris_compile_tes(screen, uploader, &ice->dbg, ish, shader); in iris_update_compiled_tes()
1803 const struct shader_info *tes_info = &ish->nir->info; in iris_update_compiled_tes()
1817 struct iris_uncompiled_shader *ish, in iris_compile_gs() argument
1831 nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir); in iris_compile_gs()
1879 iris_debug_recompile(screen, dbg, ish, &brw_key.base); in iris_compile_gs()
1882 screen->vtbl.create_so_decl_list(&ish->stream_output, in iris_compile_gs()
1888 iris_upload_shader(screen, ish, shader, NULL, uploader, IRIS_CACHE_GS, in iris_compile_gs()
1891 iris_disk_cache_store(screen->disk_cache, ish, shader, key, sizeof(*key)); in iris_compile_gs()
1906 struct iris_uncompiled_shader *ish = in iris_update_compiled_gs() local
1912 if (ish) { in iris_update_compiled_gs()
1914 screen->vtbl.populate_gs_key(ice, &ish->nir->info, last_vue_stage(ice), &key); in iris_update_compiled_gs()
1918 shader = find_or_add_variant(screen, ish, IRIS_CACHE_GS, &key, in iris_update_compiled_gs()
1921 if (added && !iris_disk_cache_retrieve(screen, uploader, ish, shader, in iris_update_compiled_gs()
1923 iris_compile_gs(screen, uploader, &ice->dbg, ish, shader); in iris_update_compiled_gs()
1951 struct iris_uncompiled_shader *ish, in iris_compile_fs() argument
1965 nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir); in iris_compile_fs()
2019 iris_debug_recompile(screen, dbg, ish, &brw_key.base); in iris_compile_fs()
2024 iris_upload_shader(screen, ish, shader, NULL, uploader, IRIS_CACHE_FS, in iris_compile_fs()
2027 iris_disk_cache_store(screen->disk_cache, ish, shader, key, sizeof(*key)); in iris_compile_fs()
2042 struct iris_uncompiled_shader *ish = in iris_update_compiled_fs() local
2046 screen->vtbl.populate_fs_key(ice, &ish->nir->info, &key); in iris_update_compiled_fs()
2051 if (ish->nos & (1ull << IRIS_NOS_LAST_VUE_MAP)) in iris_update_compiled_fs()
2057 find_or_add_variant(screen, ish, IRIS_CACHE_FS, &key, in iris_update_compiled_fs()
2060 if (added && !iris_disk_cache_retrieve(screen, uploader, ish, shader, in iris_update_compiled_fs()
2062 iris_compile_fs(screen, uploader, &ice->dbg, ish, shader, last_vue_map); in iris_update_compiled_fs()
2215 struct iris_uncompiled_shader *ish = ice->shaders.uncompiled[last_stage]; in iris_update_compiled_shaders() local
2227 so->stride = ish->stream_output.stride[i] * sizeof(uint32_t); in iris_update_compiled_shaders()
2244 struct iris_uncompiled_shader *ish, in iris_compile_cs() argument
2257 nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir); in iris_compile_cs()
2263 ish->kernel_input_size, in iris_compile_cs()
2291 iris_debug_recompile(screen, dbg, ish, &brw_key.base); in iris_compile_cs()
2294 num_system_values, ish->kernel_input_size, num_cbufs, in iris_compile_cs()
2297 iris_upload_shader(screen, ish, shader, NULL, uploader, IRIS_CACHE_CS, in iris_compile_cs()
2300 iris_disk_cache_store(screen->disk_cache, ish, shader, key, sizeof(*key)); in iris_compile_cs()
2310 struct iris_uncompiled_shader *ish = in iris_update_compiled_cs() local
2319 find_or_add_variant(screen, ish, IRIS_CACHE_CS, &key, in iris_update_compiled_cs()
2322 if (added && !iris_disk_cache_retrieve(screen, uploader, ish, shader, in iris_update_compiled_cs()
2324 iris_compile_cs(screen, uploader, &ice->dbg, ish, shader); in iris_update_compiled_cs()
2450 struct iris_uncompiled_shader *ish = in iris_create_uncompiled_shader() local
2452 if (!ish) in iris_create_uncompiled_shader()
2455 pipe_reference_init(&ish->ref, 1); in iris_create_uncompiled_shader()
2456 list_inithead(&ish->variants); in iris_create_uncompiled_shader()
2457 simple_mtx_init(&ish->lock, mtx_plain); in iris_create_uncompiled_shader()
2458 util_queue_fence_init(&ish->ready); in iris_create_uncompiled_shader()
2460 ish->uses_atomic_load_store = iris_uses_image_atomic(nir); in iris_create_uncompiled_shader()
2462 ish->program_id = get_new_program_id(screen); in iris_create_uncompiled_shader()
2463 ish->nir = nir; in iris_create_uncompiled_shader()
2465 memcpy(&ish->stream_output, so_info, sizeof(*so_info)); in iris_create_uncompiled_shader()
2466 update_so_info(&ish->stream_output, nir->info.outputs_written); in iris_create_uncompiled_shader()
2478 _mesa_sha1_compute(blob.data, blob.size, ish->nir_sha1); in iris_create_uncompiled_shader()
2482 return ish; in iris_create_uncompiled_shader()
2521 struct iris_uncompiled_shader *ish = in iris_create_compute_state() local
2523 ish->kernel_input_size = state->req_input_mem; in iris_create_compute_state()
2524 ish->kernel_shared_size = state->req_local_mem; in iris_create_compute_state()
2536 list_addtail(&shader->link, &ish->variants); in iris_create_compute_state()
2538 if (!iris_disk_cache_retrieve(screen, uploader, ish, shader, in iris_create_compute_state()
2540 iris_compile_cs(screen, uploader, &ice->dbg, ish, shader); in iris_create_compute_state()
2544 return ish; in iris_create_compute_state()
2556 struct iris_uncompiled_shader *ish = job->ish; in iris_compile_shader() local
2559 switch (ish->nir->info.stage) { in iris_compile_shader()
2561 iris_compile_vs(screen, uploader, dbg, ish, shader); in iris_compile_shader()
2564 iris_compile_tcs(screen, NULL, uploader, dbg, ish, shader); in iris_compile_shader()
2567 iris_compile_tes(screen, uploader, dbg, ish, shader); in iris_compile_shader()
2570 iris_compile_gs(screen, uploader, dbg, ish, shader); in iris_compile_shader()
2573 iris_compile_fs(screen, uploader, dbg, ish, shader, NULL); in iris_compile_shader()
2595 struct iris_uncompiled_shader *ish = in iris_create_shader_state() local
2607 ish->nos |= (1ull << IRIS_NOS_RASTERIZER); in iris_create_shader_state()
2639 ish->nos |= (1ull << IRIS_NOS_RASTERIZER); in iris_create_shader_state()
2654 ish->nos |= (1ull << IRIS_NOS_RASTERIZER); in iris_create_shader_state()
2661 ish->nos |= (1ull << IRIS_NOS_FRAMEBUFFER) | in iris_create_shader_state()
2668 ish->nos |= (1ull << IRIS_NOS_LAST_VUE_MAP); in iris_create_shader_state()
2705 list_addtail(&shader->link, &ish->variants); in iris_create_shader_state()
2707 if (!iris_disk_cache_retrieve(screen, uploader, ish, shader, in iris_create_shader_state()
2715 job->ish = ish; in iris_create_shader_state()
2718 iris_schedule_compile(screen, &ish->ready, &ice->dbg, job, in iris_create_shader_state()
2723 return ish; in iris_create_shader_state()
2736 struct iris_uncompiled_shader *ish = state; in iris_destroy_shader_state() local
2740 &ish->variants, link) { in iris_destroy_shader_state()
2746 simple_mtx_destroy(&ish->lock); in iris_destroy_shader_state()
2747 util_queue_fence_destroy(&ish->ready); in iris_destroy_shader_state()
2749 ralloc_free(ish->nir); in iris_destroy_shader_state()
2750 free(ish); in iris_destroy_shader_state()
2761 struct iris_uncompiled_shader *ish = state; in iris_delete_shader_state() local
2764 const gl_shader_stage stage = ish->nir->info.stage; in iris_delete_shader_state()
2766 if (ice->shaders.uncompiled[stage] == ish) { in iris_delete_shader_state()
2771 if (pipe_reference(&ish->ref, NULL)) in iris_delete_shader_state()
2783 struct iris_uncompiled_shader *ish, in bind_shader_state() argument
2787 const uint64_t nos = ish ? ish->nos : 0; in bind_shader_state()
2790 const struct shader_info *new_info = ish ? &ish->nir->info : NULL; in bind_shader_state()
2797 ice->shaders.uncompiled[stage] = ish; in bind_shader_state()
2815 struct iris_uncompiled_shader *ish = state; in iris_bind_vs_state() local
2817 if (ish) { in iris_bind_vs_state()
2818 const struct shader_info *info = &ish->nir->info; in iris_bind_vs_state()
2960 struct iris_uncompiled_shader *ish = v_shader; in iris_is_parallel_shader_compilation_finished() local
2966 list_first_entry(&ish->variants, struct iris_compiled_shader, link); in iris_is_parallel_shader_compilation_finished()