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