Lines Matching refs:ice

70 crocus_get_texture_swizzle(const struct crocus_context *ice,
149 crocus_populate_sampler_prog_key_data(struct crocus_context *ice,
156 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
162 struct crocus_sampler_view *texture = ice->state.shaders[stage].textures[s];
171 key->swizzles[s] = crocus_get_texture_swizzle(ice, texture);
174 screen->vtbl.fill_clamp_mask(ice->state.shaders[stage].samplers[s], s, key->gl_clamp_mask);
1072 crocus_debug_recompile(struct crocus_context *ice,
1076 struct crocus_screen *screen = (struct crocus_screen *) ice->ctx.screen;
1082 brw_shader_perf_log(c, &ice->dbg, "Recompiling %s shader for program %s: %s\n",
1088 crocus_find_previous_compile(ice, info->stage, key->program_string_id);
1090 brw_debug_key_recompile(c, &ice->dbg, info->stage, old_key, key);
1099 last_vue_stage(struct crocus_context *ice)
1101 if (ice->shaders.uncompiled[MESA_SHADER_GEOMETRY])
1104 if (ice->shaders.uncompiled[MESA_SHADER_TESS_EVAL])
1111 crocus_vs_outputs_written(struct crocus_context *ice,
1115 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
1180 crocus_compile_vs(struct crocus_context *ice,
1184 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
1230 crocus_vs_outputs_written(ice, key, nir->info.outputs_written);
1248 .log_data = &ice->dbg,
1259 crocus_debug_recompile(ice, &nir->info, &key->base);
1270 crocus_upload_shader(ice, CROCUS_CACHE_VS, sizeof(*key), key, program,
1277 ice->shaders.cache_bo_map,
1290 crocus_update_compiled_vs(struct crocus_context *ice)
1292 struct crocus_shader_state *shs = &ice->state.shaders[MESA_SHADER_VERTEX];
1294 ice->shaders.uncompiled[MESA_SHADER_VERTEX];
1295 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
1300 crocus_populate_sampler_prog_key_data(ice, devinfo, MESA_SHADER_VERTEX, ish,
1302 screen->vtbl.populate_vs_key(ice, &ish->nir->info, last_vue_stage(ice), &key);
1304 struct crocus_compiled_shader *old = ice->shaders.prog[CROCUS_CACHE_VS];
1306 crocus_find_cached_shader(ice, CROCUS_CACHE_VS, sizeof(key), &key);
1309 shader = crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key));
1312 shader = crocus_compile_vs(ice, ish, &key);
1315 ice->shaders.prog[CROCUS_CACHE_VS] = shader;
1317 ice->state.dirty |= CROCUS_DIRTY_GEN8_VF_SGVS;
1318 ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_VS |
1333 if (ice->state.vs_uses_draw_params != uses_draw_params ||
1334 ice->state.vs_uses_derived_draw_params != uses_derived_draw_params ||
1335 ice->state.vs_needs_edge_flag != ish->needs_edge_flag ||
1336 ice->state.vs_uses_vertexid != vs_prog_data->uses_vertexid ||
1337 ice->state.vs_uses_instanceid != vs_prog_data->uses_instanceid) {
1338 ice->state.dirty |= CROCUS_DIRTY_VERTEX_BUFFERS |
1341 ice->state.vs_uses_draw_params = uses_draw_params;
1342 ice->state.vs_uses_derived_draw_params = uses_derived_draw_params;
1343 ice->state.vs_needs_sgvs_element = needs_sgvs_element;
1344 ice->state.vs_needs_edge_flag = ish->needs_edge_flag;
1345 ice->state.vs_uses_vertexid = vs_prog_data->uses_vertexid;
1346 ice->state.vs_uses_instanceid = vs_prog_data->uses_instanceid;
1354 crocus_get_shader_info(const struct crocus_context *ice, gl_shader_stage stage)
1356 const struct crocus_uncompiled_shader *ish = ice->shaders.uncompiled[stage];
1378 get_unified_tess_slots(const struct crocus_context *ice,
1383 crocus_get_shader_info(ice, MESA_SHADER_TESS_CTRL);
1385 crocus_get_shader_info(ice, MESA_SHADER_TESS_EVAL);
1400 crocus_compile_tcs(struct crocus_context *ice,
1404 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
1477 .log_data = &ice->dbg,
1489 crocus_debug_recompile(ice, &nir->info, &key->base);
1496 crocus_upload_shader(ice, CROCUS_CACHE_TCS, sizeof(*key), key, program,
1504 ice->shaders.cache_bo_map,
1517 crocus_update_compiled_tcs(struct crocus_context *ice)
1519 struct crocus_shader_state *shs = &ice->state.shaders[MESA_SHADER_TESS_CTRL];
1521 ice->shaders.uncompiled[MESA_SHADER_TESS_CTRL];
1522 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
1526 crocus_get_shader_info(ice, MESA_SHADER_TESS_EVAL);
1531 .input_vertices = ice->state.vertices_per_patch,
1537 crocus_populate_sampler_prog_key_data(ice, devinfo, MESA_SHADER_TESS_CTRL, tcs,
1539 get_unified_tess_slots(ice, &key.outputs_written,
1541 screen->vtbl.populate_tcs_key(ice, &key);
1543 struct crocus_compiled_shader *old = ice->shaders.prog[CROCUS_CACHE_TCS];
1545 crocus_find_cached_shader(ice, CROCUS_CACHE_TCS, sizeof(key), &key);
1548 shader = crocus_disk_cache_retrieve(ice, tcs, &key, sizeof(key));
1551 shader = crocus_compile_tcs(ice, tcs, &key);
1554 ice->shaders.prog[CROCUS_CACHE_TCS] = shader;
1555 ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_TCS |
1566 crocus_compile_tes(struct crocus_context *ice,
1570 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
1619 .log_data = &ice->dbg,
1630 crocus_debug_recompile(ice, &nir->info, &key->base);
1641 crocus_upload_shader(ice, CROCUS_CACHE_TES, sizeof(*key), key, program,
1648 ice->shaders.cache_bo_map,
1661 crocus_update_compiled_tes(struct crocus_context *ice)
1663 struct crocus_shader_state *shs = &ice->state.shaders[MESA_SHADER_TESS_EVAL];
1665 ice->shaders.uncompiled[MESA_SHADER_TESS_EVAL];
1666 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
1671 crocus_populate_sampler_prog_key_data(ice, devinfo, MESA_SHADER_TESS_EVAL, ish,
1673 get_unified_tess_slots(ice, &key.inputs_read, &key.patch_inputs_read);
1674 screen->vtbl.populate_tes_key(ice, &ish->nir->info, last_vue_stage(ice), &key);
1676 struct crocus_compiled_shader *old = ice->shaders.prog[CROCUS_CACHE_TES];
1678 crocus_find_cached_shader(ice, CROCUS_CACHE_TES, sizeof(key), &key);
1681 shader = crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key));
1684 shader = crocus_compile_tes(ice, ish, &key);
1687 ice->shaders.prog[CROCUS_CACHE_TES] = shader;
1688 ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_TES |
1697 ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_CONSTANTS_TES;
1698 ice->state.shaders[MESA_SHADER_TESS_EVAL].sysvals_need_upload = true;
1706 crocus_compile_gs(struct crocus_context *ice,
1710 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
1760 .log_data = &ice->dbg,
1771 crocus_debug_recompile(ice, &nir->info, &key->base);
1782 crocus_upload_shader(ice, CROCUS_CACHE_GS, sizeof(*key), key, program,
1789 ice->shaders.cache_bo_map,
1802 crocus_update_compiled_gs(struct crocus_context *ice)
1804 struct crocus_shader_state *shs = &ice->state.shaders[MESA_SHADER_GEOMETRY];
1806 ice->shaders.uncompiled[MESA_SHADER_GEOMETRY];
1807 struct crocus_compiled_shader *old = ice->shaders.prog[CROCUS_CACHE_GS];
1811 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
1816 crocus_populate_sampler_prog_key_data(ice, devinfo, MESA_SHADER_GEOMETRY, ish,
1818 screen->vtbl.populate_gs_key(ice, &ish->nir->info, last_vue_stage(ice), &key);
1821 crocus_find_cached_shader(ice, CROCUS_CACHE_GS, sizeof(key), &key);
1824 shader = crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key));
1827 shader = crocus_compile_gs(ice, ish, &key);
1831 ice->shaders.prog[CROCUS_CACHE_GS] = shader;
1832 ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_GS |
1843 crocus_compile_fs(struct crocus_context *ice,
1848 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
1897 .log_data = &ice->dbg,
1908 crocus_debug_recompile(ice, &nir->info, &key->base);
1914 crocus_upload_shader(ice, CROCUS_CACHE_FS, sizeof(*key), key, program,
1921 ice->shaders.cache_bo_map,
1934 crocus_update_compiled_fs(struct crocus_context *ice)
1936 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
1938 struct crocus_shader_state *shs = &ice->state.shaders[MESA_SHADER_FRAGMENT];
1940 ice->shaders.uncompiled[MESA_SHADER_FRAGMENT];
1944 crocus_populate_sampler_prog_key_data(ice, devinfo, MESA_SHADER_FRAGMENT, ish,
1946 screen->vtbl.populate_fs_key(ice, &ish->nir->info, &key);
1949 key.input_slots_valid = ice->shaders.last_vue_map->slots_valid;
1951 struct crocus_compiled_shader *old = ice->shaders.prog[CROCUS_CACHE_FS];
1953 crocus_find_cached_shader(ice, CROCUS_CACHE_FS, sizeof(key), &key);
1956 shader = crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key));
1959 shader = crocus_compile_fs(ice, ish, &key, ice->shaders.last_vue_map);
1964 ice->shaders.prog[CROCUS_CACHE_FS] = shader;
1965 ice->state.dirty |= CROCUS_DIRTY_WM;
1968 ice->state.dirty |= CROCUS_DIRTY_GEN4_CLIP_PROG | CROCUS_DIRTY_GEN4_SF_PROG;
1970 ice->state.dirty |= CROCUS_DIRTY_CLIP | CROCUS_DIRTY_GEN6_BLEND_STATE;
1972 ice->state.dirty |= CROCUS_DIRTY_RASTER;
1974 ice->state.dirty |= CROCUS_DIRTY_GEN7_SBE;
1975 ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_FS |
1989 update_last_vue_map(struct crocus_context *ice,
1992 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
1996 struct brw_vue_map *old_map = ice->shaders.last_vue_map;
2001 ice->state.num_viewports =
2003 ice->state.dirty |= CROCUS_DIRTY_SF_CL_VIEWPORT |
2006 ice->state.dirty |= CROCUS_DIRTY_GEN4_CLIP_PROG | CROCUS_DIRTY_GEN4_SF_PROG;
2009 ice->state.dirty |= CROCUS_DIRTY_GEN4_FF_GS_PROG;
2012 ice->state.dirty |= CROCUS_DIRTY_CLIP |
2014 ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_UNCOMPILED_FS |
2015 ice->state.stage_dirty_for_nos[CROCUS_NOS_LAST_VUE_MAP];
2019 ice->state.dirty |= CROCUS_DIRTY_GEN7_SBE;
2021 ice->state.dirty |= CROCUS_DIRTY_GEN4_FF_GS_PROG;
2022 ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_UNCOMPILED_FS;
2025 ice->shaders.last_vue_map = &vue_prog_data->vue_map;
2029 crocus_update_pull_constant_descriptors(struct crocus_context *ice,
2032 struct crocus_compiled_shader *shader = ice->shaders.prog[stage];
2037 struct crocus_shader_state *shs = &ice->state.shaders[stage];
2052 ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_BINDINGS_VS << stage;
2059 get_vue_prog_data(struct crocus_context *ice, gl_shader_stage stage)
2061 if (!ice->shaders.prog[stage])
2064 return (void *) ice->shaders.prog[stage]->prog_data;
2068 crocus_compile_clip(struct crocus_context *ice, struct brw_clip_prog_key *key)
2070 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
2080 ice->shaders.last_vue_map, &program_size);
2091 crocus_upload_shader(ice, CROCUS_CACHE_CLIP, sizeof(*key), key, program,
2099 crocus_update_compiled_clip(struct crocus_context *ice)
2101 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
2103 struct crocus_compiled_shader *old = ice->shaders.clip_prog;
2106 const struct brw_wm_prog_data *wm_prog_data = brw_wm_prog_data(ice->shaders.prog[MESA_SHADER_FRAGMENT]->prog_data);
2114 key.primitive = ice->state.reduced_prim_mode;
2115 key.attrs = ice->shaders.last_vue_map->slots_valid;
2117 struct pipe_rasterizer_state *rs_state = crocus_get_rast_state(ice);
2182 if (ice->state.framebuffer.zsbuf)
2183 mrd = util_get_depth_format_mrd(util_format_description(ice->state.framebuffer.zsbuf->format));
2210 crocus_find_cached_shader(ice, CROCUS_CACHE_CLIP, sizeof(key), &key);
2213 shader = crocus_compile_clip(ice, &key);
2216 ice->state.dirty |= CROCUS_DIRTY_CLIP;
2217 ice->shaders.clip_prog = shader;
2222 crocus_compile_sf(struct crocus_context *ice, struct brw_sf_prog_key *key)
2224 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
2234 ice->shaders.last_vue_map, &program_size);
2245 crocus_upload_shader(ice, CROCUS_CACHE_SF, sizeof(*key), key, program,
2254 crocus_update_compiled_sf(struct crocus_context *ice)
2257 struct crocus_compiled_shader *old = ice->shaders.sf_prog;
2260 key.attrs = ice->shaders.last_vue_map->slots_valid;
2262 switch (ice->state.reduced_prim_mode) {
2278 struct pipe_rasterizer_state *rs_state = crocus_get_rast_state(ice);
2280 const struct brw_wm_prog_data *wm_prog_data = brw_wm_prog_data(ice->shaders.prog[MESA_SHADER_FRAGMENT]->prog_data);
2303 crocus_find_cached_shader(ice, CROCUS_CACHE_SF, sizeof(key), &key);
2306 shader = crocus_compile_sf(ice, &key);
2309 ice->state.dirty |= CROCUS_DIRTY_RASTER;
2310 ice->shaders.sf_prog = shader;
2315 crocus_compile_ff_gs(struct crocus_context *ice, struct brw_ff_gs_prog_key *key)
2317 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
2327 ice->shaders.last_vue_map, &program_size);
2346 crocus_upload_shader(ice, CROCUS_CACHE_FF_GS, sizeof(*key), key, program,
2355 crocus_update_compiled_ff_gs(struct crocus_context *ice)
2357 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
2360 struct crocus_compiled_shader *old = ice->shaders.ff_gs_prog;
2365 key.attrs = ice->shaders.last_vue_map->slots_valid;
2367 key.primitive = screen->vtbl.translate_prim_type(ice->state.prim_mode, 0);
2369 struct pipe_rasterizer_state *rs_state = crocus_get_rast_state(ice);
2380 key.need_gs_prog = ice->state.streamout_active;
2383 ice->shaders.uncompiled[MESA_SHADER_VERTEX];
2395 shader = crocus_find_cached_shader(ice, CROCUS_CACHE_FF_GS,
2398 shader = crocus_compile_ff_gs(ice, &key);
2401 ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_GS;
2403 ice->state.dirty |= CROCUS_DIRTY_GEN6_URB;
2404 ice->shaders.ff_gs_prog = shader;
2406 const struct brw_ff_gs_prog_data *gs_prog_data = (struct brw_ff_gs_prog_data *)ice->shaders.ff_gs_prog->prog_data;
2407 ice->state.last_xfb_verts_per_prim = gs_prog_data->svbi_postincrement_value;
2423 crocus_update_compiled_shaders(struct crocus_context *ice)
2425 struct crocus_screen *screen = (void *) ice->ctx.screen;
2426 const uint64_t stage_dirty = ice->state.stage_dirty;
2429 if (!(ice->state.dirty & CROCUS_DIRTY_GEN6_URB)) {
2431 old_prog_datas[i] = get_vue_prog_data(ice, i);
2437 ice->shaders.uncompiled[MESA_SHADER_TESS_EVAL];
2439 crocus_update_compiled_tcs(ice);
2440 crocus_update_compiled_tes(ice);
2442 ice->shaders.prog[CROCUS_CACHE_TCS] = NULL;
2443 ice->shaders.prog[CROCUS_CACHE_TES] = NULL;
2444 ice->state.stage_dirty |=
2452 crocus_update_compiled_vs(ice);
2454 crocus_update_compiled_gs(ice);
2459 ice->shaders.prog[MESA_SHADER_GEOMETRY];
2461 ice->shaders.prog[MESA_SHADER_TESS_EVAL];
2477 if (ice->shaders.output_topology_is_points_or_lines != points_or_lines) {
2479 ice->shaders.output_topology_is_points_or_lines = points_or_lines;
2480 ice->state.dirty |= CROCUS_DIRTY_CLIP;
2484 if (!ice->shaders.prog[MESA_SHADER_VERTEX])
2487 gl_shader_stage last_stage = last_vue_stage(ice);
2488 struct crocus_compiled_shader *shader = ice->shaders.prog[last_stage];
2489 struct crocus_uncompiled_shader *ish = ice->shaders.uncompiled[last_stage];
2490 update_last_vue_map(ice, shader->prog_data);
2491 if (ice->state.streamout != shader->streamout) {
2492 ice->state.streamout = shader->streamout;
2493 ice->state.dirty |= CROCUS_DIRTY_SO_DECL_LIST | CROCUS_DIRTY_STREAMOUT;
2496 if (ice->state.streamout_active) {
2497 screen->vtbl.update_so_strides(ice, ish->stream_output.stride);
2500 /* use ice->state version as last_vue_map can dirty this bit */
2501 if (ice->state.stage_dirty & CROCUS_STAGE_DIRTY_UNCOMPILED_FS)
2502 crocus_update_compiled_fs(ice);
2505 if (ice->state.dirty & CROCUS_DIRTY_GEN4_FF_GS_PROG &&
2506 !ice->shaders.prog[MESA_SHADER_GEOMETRY])
2507 crocus_update_compiled_ff_gs(ice);
2511 if (ice->state.dirty & CROCUS_DIRTY_GEN4_CLIP_PROG)
2512 crocus_update_compiled_clip(ice);
2513 if (ice->state.dirty & CROCUS_DIRTY_GEN4_SF_PROG)
2514 crocus_update_compiled_sf(ice);
2519 if (!(ice->state.dirty & CROCUS_DIRTY_GEN6_URB)) {
2522 struct brw_vue_prog_data *new = get_vue_prog_data(ice, i);
2525 ice->state.dirty |= CROCUS_DIRTY_GEN6_URB;
2531 if (ice->state.stage_dirty & CROCUS_RENDER_STAGE_DIRTY_CONSTANTS) {
2533 if (ice->state.stage_dirty & (CROCUS_STAGE_DIRTY_CONSTANTS_VS << i))
2534 crocus_update_pull_constant_descriptors(ice, i);
2541 crocus_compile_cs(struct crocus_context *ice,
2545 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
2571 .log_data = &ice->dbg,
2583 crocus_debug_recompile(ice, &nir->info, &key->base);
2589 crocus_upload_shader(ice, CROCUS_CACHE_CS, sizeof(*key), key, program,
2596 ice->shaders.cache_bo_map,
2604 crocus_update_compiled_cs(struct crocus_context *ice)
2606 struct crocus_shader_state *shs = &ice->state.shaders[MESA_SHADER_COMPUTE];
2608 ice->shaders.uncompiled[MESA_SHADER_COMPUTE];
2609 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
2614 crocus_populate_sampler_prog_key_data(ice, devinfo, MESA_SHADER_COMPUTE, ish,
2616 screen->vtbl.populate_cs_key(ice, &key);
2618 struct crocus_compiled_shader *old = ice->shaders.prog[CROCUS_CACHE_CS];
2620 crocus_find_cached_shader(ice, CROCUS_CACHE_CS, sizeof(key), &key);
2623 shader = crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key));
2626 shader = crocus_compile_cs(ice, ish, &key);
2629 ice->shaders.prog[CROCUS_CACHE_CS] = shader;
2630 ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_CS |
2638 crocus_update_compiled_compute_shader(struct crocus_context *ice)
2640 if (ice->state.stage_dirty & CROCUS_STAGE_DIRTY_UNCOMPILED_CS)
2641 crocus_update_compiled_cs(ice);
2643 if (ice->state.stage_dirty & CROCUS_STAGE_DIRTY_CONSTANTS_CS)
2644 crocus_update_pull_constant_descriptors(ice, MESA_SHADER_COMPUTE);
2664 crocus_get_scratch_space(struct crocus_context *ice,
2668 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
2675 struct crocus_bo **bop = &ice->shaders.scratch_bos[encoded_size][stage];
2761 struct crocus_context *ice = (void *) ctx;
2777 if (!crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key)))
2778 crocus_compile_vs(ice, ish, &key);
2788 struct crocus_context *ice = (void *) ctx;
2807 if (!crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key)))
2808 crocus_compile_tcs(ice, ish, &key);
2818 struct crocus_context *ice = (void *) ctx;
2836 if (!crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key)))
2837 crocus_compile_tes(ice, ish, &key);
2847 struct crocus_context *ice = (void *) ctx;
2859 if (!crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key)))
2860 crocus_compile_gs(ice, ish, &key);
2870 struct crocus_context *ice = (void *) ctx;
2912 if (!crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key)))
2913 crocus_compile_fs(ice, ish, &key, &vue_map);
2925 struct crocus_context *ice = (void *) ctx;
2936 if (!crocus_disk_cache_retrieve(ice, ish, &key, sizeof(key)))
2937 crocus_compile_cs(ice, ish, &key);
2952 struct crocus_context *ice = (void *) ctx;
2954 if (ice->shaders.uncompiled[stage] == ish) {
2955 ice->shaders.uncompiled[stage] = NULL;
2956 ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_UNCOMPILED_VS << stage;
3011 bind_shader_state(struct crocus_context *ice,
3018 const struct shader_info *old_info = crocus_get_shader_info(ice, stage);
3023 ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_SAMPLER_STATES_VS << stage;
3026 ice->shaders.uncompiled[stage] = ish;
3027 ice->state.stage_dirty |= dirty_bit;
3034 ice->state.stage_dirty_for_nos[i] |= dirty_bit;
3036 ice->state.stage_dirty_for_nos[i] &= ~dirty_bit;
3043 struct crocus_context *ice = (struct crocus_context *)ctx;
3045 struct crocus_screen *screen = (struct crocus_screen *)ice->ctx.screen;
3049 ice->state.window_space_position !=
3051 ice->state.window_space_position =
3054 ice->state.dirty |= CROCUS_DIRTY_CLIP |
3060 ice->state.stage_dirty |= CROCUS_DIRTY_GEN4_FF_GS_PROG;
3075 struct crocus_context *ice = (struct crocus_context *)ctx;
3078 if (!!state != !!ice->shaders.uncompiled[MESA_SHADER_TESS_EVAL])
3079 ice->state.dirty |= CROCUS_DIRTY_GEN6_URB;
3087 struct crocus_context *ice = (struct crocus_context *)ctx;
3090 if (!!state != !!ice->shaders.uncompiled[MESA_SHADER_GEOMETRY])
3091 ice->state.dirty |= CROCUS_DIRTY_GEN6_URB;
3099 struct crocus_context *ice = (struct crocus_context *) ctx;
3103 ice->shaders.uncompiled[MESA_SHADER_FRAGMENT];
3115 ice->state.dirty |= CROCUS_DIRTY_GEN8_PS_BLEND;
3117 ice->state.dirty |= CROCUS_DIRTY_WM;
3121 ice->state.dirty |= CROCUS_DIRTY_GEN8_PMA_FIX;