void brw_upload_wm_prog(struct brw_context *brw) { struct brw_wm_prog_key key; struct brw_program *fp = (struct brw_program *) brw->programs[MESA_SHADER_FRAGMENT]; if (!brw_wm_state_dirty(brw)) return; brw_wm_populate_key(brw, &key); if (brw_search_cache(&brw->cache, BRW_CACHE_FS_PROG, &key, sizeof(key), &brw->wm.base.prog_offset, &brw->wm.base.prog_data, true)) return; if (brw_disk_cache_upload_program(brw, MESA_SHADER_FRAGMENT)) return; fp = (struct brw_program *) brw->programs[MESA_SHADER_FRAGMENT]; fp->id = key.program_string_id; MAYBE_UNUSED bool success = brw_codegen_wm_prog(brw, fp, &key, &brw->vue_map_geom_out); assert(success); }
void brw_upload_wm_prog(struct brw_context *brw) { struct gl_context *ctx = &brw->ctx; struct gl_shader_program *current = ctx->_Shader->_CurrentFragmentProgram; struct brw_wm_prog_key key; struct brw_fragment_program *fp = (struct brw_fragment_program *) brw->fragment_program; if (!brw_wm_state_dirty(brw)) return; brw_wm_populate_key(brw, &key); if (!brw_search_cache(&brw->cache, BRW_CACHE_FS_PROG, &key, sizeof(key), &brw->wm.base.prog_offset, &brw->wm.prog_data)) { bool success = brw_codegen_wm_prog(brw, current, fp, &key); (void) success; assert(success); } brw->wm.base.prog_data = &brw->wm.prog_data->base; }