Lines Matching defs:ish
55 .base.program_string_id = ish->program_id, \
152 struct crocus_uncompiled_shader *ish,
157 uint32_t mask = ish->nir->info.textures_used[0];
1181 struct crocus_uncompiled_shader *ish,
1196 nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir);
1258 if (ish->compiled_once) {
1261 ish->compiled_once = true;
1266 so_decls = screen->vtbl.create_so_decl_list(&ish->stream_output,
1276 crocus_disk_cache_store(screen->disk_cache, ish, shader,
1293 struct crocus_uncompiled_shader *ish =
1299 if (ish->nos & (1ull << CROCUS_NOS_TEXTURES))
1300 crocus_populate_sampler_prog_key_data(ice, devinfo, MESA_SHADER_VERTEX, ish,
1301 ish->nir->info.uses_texture_gather, &key.base.tex);
1302 screen->vtbl.populate_vs_key(ice, &ish->nir->info, last_vue_stage(ice), &key);
1309 shader = crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key));
1312 shader = crocus_compile_vs(ice, ish, &key);
1335 ice->state.vs_needs_edge_flag != ish->needs_edge_flag ||
1344 ice->state.vs_needs_edge_flag = ish->needs_edge_flag;
1356 const struct crocus_uncompiled_shader *ish = ice->shaders.uncompiled[stage];
1358 if (!ish)
1361 const nir_shader *nir = ish->nir;
1401 struct crocus_uncompiled_shader *ish,
1422 if (ish) {
1423 nir = nir_shader_clone(mem_ctx, ish->nir);
1487 if (ish) {
1488 if (ish->compiled_once) {
1491 ish->compiled_once = true;
1502 if (ish)
1503 crocus_disk_cache_store(screen->disk_cache, ish, shader,
1567 struct crocus_uncompiled_shader *ish,
1582 nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir);
1629 if (ish->compiled_once) {
1632 ish->compiled_once = true;
1637 so_decls = screen->vtbl.create_so_decl_list(&ish->stream_output,
1647 crocus_disk_cache_store(screen->disk_cache, ish, shader,
1664 struct crocus_uncompiled_shader *ish =
1670 if (ish->nos & (1ull << CROCUS_NOS_TEXTURES))
1671 crocus_populate_sampler_prog_key_data(ice, devinfo, MESA_SHADER_TESS_EVAL, ish,
1672 ish->nir->info.uses_texture_gather, &key.base.tex);
1674 screen->vtbl.populate_tes_key(ice, &ish->nir->info, last_vue_stage(ice), &key);
1681 shader = crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key));
1684 shader = crocus_compile_tes(ice, ish, &key);
1695 const struct shader_info *tes_info = &ish->nir->info;
1707 struct crocus_uncompiled_shader *ish,
1722 nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir);
1752 gfx6_gs_xfb_setup(&ish->stream_output, gs_prog_data);
1770 if (ish->compiled_once) {
1773 ish->compiled_once = true;
1778 so_decls = screen->vtbl.create_so_decl_list(&ish->stream_output,
1788 crocus_disk_cache_store(screen->disk_cache, ish, shader,
1805 struct crocus_uncompiled_shader *ish =
1810 if (ish) {
1815 if (ish->nos & (1ull << CROCUS_NOS_TEXTURES))
1816 crocus_populate_sampler_prog_key_data(ice, devinfo, MESA_SHADER_GEOMETRY, ish,
1817 ish->nir->info.uses_texture_gather, &key.base.tex);
1818 screen->vtbl.populate_gs_key(ice, &ish->nir->info, last_vue_stage(ice), &key);
1824 shader = crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key));
1827 shader = crocus_compile_gs(ice, ish, &key);
1844 struct crocus_uncompiled_shader *ish,
1859 nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir);
1907 if (ish->compiled_once) {
1910 ish->compiled_once = true;
1920 crocus_disk_cache_store(screen->disk_cache, ish, shader,
1939 struct crocus_uncompiled_shader *ish =
1943 if (ish->nos & (1ull << CROCUS_NOS_TEXTURES))
1944 crocus_populate_sampler_prog_key_data(ice, devinfo, MESA_SHADER_FRAGMENT, ish,
1945 ish->nir->info.uses_texture_gather, &key.base.tex);
1946 screen->vtbl.populate_fs_key(ice, &ish->nir->info, &key);
1948 if (ish->nos & (1ull << CROCUS_NOS_LAST_VUE_MAP))
1956 shader = crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key));
1959 shader = crocus_compile_fs(ice, ish, &key, ice->shaders.last_vue_map);
2489 struct crocus_uncompiled_shader *ish = ice->shaders.uncompiled[last_stage];
2497 screen->vtbl.update_so_strides(ice, ish->stream_output.stride);
2542 struct crocus_uncompiled_shader *ish,
2556 nir_shader *nir = nir_shader_clone(mem_ctx, ish->nir);
2582 if (ish->compiled_once) {
2585 ish->compiled_once = true;
2595 crocus_disk_cache_store(screen->disk_cache, ish, shader,
2607 struct crocus_uncompiled_shader *ish =
2613 if (ish->nos & (1ull << CROCUS_NOS_TEXTURES))
2614 crocus_populate_sampler_prog_key_data(ice, devinfo, MESA_SHADER_COMPUTE, ish,
2615 ish->nir->info.uses_texture_gather, &key.base.tex);
2623 shader = crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key));
2626 shader = crocus_compile_cs(ice, ish, &key);
2703 struct crocus_uncompiled_shader *ish =
2705 if (!ish)
2709 NIR_PASS(ish->needs_edge_flag, nir, crocus_fix_edge_flags);
2711 ish->needs_edge_flag = false;
2720 ish->program_id = get_new_program_id(screen);
2721 ish->nir = nir;
2723 memcpy(&ish->stream_output, so_info, sizeof(*so_info));
2724 update_so_info(&ish->stream_output, nir->info.outputs_written);
2736 _mesa_sha1_compute(blob.data, blob.size, ish->nir_sha1);
2740 return ish;
2763 struct crocus_uncompiled_shader *ish = crocus_create_shader_state(ctx, state);
2765 ish->nos |= (1ull << CROCUS_NOS_TEXTURES);
2767 if (ish->nir->info.clip_distance_array_size == 0 ||
2769 ish->nos |= (1ull << CROCUS_NOS_RASTERIZER);
2772 ish->nos |= (1ull << CROCUS_NOS_VERTEX_ELEMENTS);
2777 if (!crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key)))
2778 crocus_compile_vs(ice, ish, &key);
2781 return ish;
2790 struct crocus_uncompiled_shader *ish = crocus_create_shader_state(ctx, state);
2791 struct shader_info *info = &ish->nir->info;
2793 ish->nos |= (1ull << CROCUS_NOS_TEXTURES);
2807 if (!crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key)))
2808 crocus_compile_tcs(ice, ish, &key);
2811 return ish;
2820 struct crocus_uncompiled_shader *ish = crocus_create_shader_state(ctx, state);
2821 struct shader_info *info = &ish->nir->info;
2823 ish->nos |= (1ull << CROCUS_NOS_TEXTURES);
2825 if (ish->nir->info.clip_distance_array_size == 0)
2826 ish->nos |= (1ull << CROCUS_NOS_RASTERIZER);
2836 if (!crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key)))
2837 crocus_compile_tes(ice, ish, &key);
2840 return ish;
2849 struct crocus_uncompiled_shader *ish = crocus_create_shader_state(ctx, state);
2851 ish->nos |= (1ull << CROCUS_NOS_TEXTURES);
2853 if (ish->nir->info.clip_distance_array_size == 0)
2854 ish->nos |= (1ull << CROCUS_NOS_RASTERIZER);
2859 if (!crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key)))
2860 crocus_compile_gs(ice, ish, &key);
2863 return ish;
2872 struct crocus_uncompiled_shader *ish = crocus_create_shader_state(ctx, state);
2873 struct shader_info *info = &ish->nir->info;
2875 ish->nos |= (1ull << CROCUS_NOS_FRAMEBUFFER) |
2882 if (screen->devinfo.ver < 6 || util_bitcount64(ish->nir->info.inputs_read &
2884 ish->nos |= (1ull << CROCUS_NOS_LAST_VUE_MAP);
2912 if (!crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key)))
2913 crocus_compile_fs(ice, ish, &key, &vue_map);
2916 return ish;
2927 struct crocus_uncompiled_shader *ish =
2930 ish->nos |= (1ull << CROCUS_NOS_TEXTURES);
2936 if (!crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key)))
2937 crocus_compile_cs(ice, ish, &key);
2940 return ish;
2951 struct crocus_uncompiled_shader *ish = state;
2954 if (ice->shaders.uncompiled[stage] == ish) {
2959 if (ish->const_data) {
2960 pipe_resource_reference(&ish->const_data, NULL);
2961 pipe_resource_reference(&ish->const_data_state.res, NULL);
2964 ralloc_free(ish->nir);
2965 free(ish);
3012 struct crocus_uncompiled_shader *ish,
3016 const uint64_t nos = ish ? ish->nos : 0;
3019 const struct shader_info *new_info = ish ? &ish->nir->info : NULL;
3026 ice->shaders.uncompiled[stage] = ish;