brw_gs_populate_key(brw, &key);
- if (!brw_search_cache(&brw->cache, BRW_CACHE_GS_PROG,
- &key, sizeof(key),
- &stage_state->prog_offset,
- &brw->gs.base.prog_data)) {
- bool success = brw_codegen_gs_prog(brw, gp, &key);
- assert(success);
- (void)success;
- }
+ if (brw_search_cache(&brw->cache, BRW_CACHE_GS_PROG,
+ &key, sizeof(key),
+ &stage_state->prog_offset,
+ &brw->gs.base.prog_data))
+ return;
+
+ if (brw_disk_cache_upload_program(brw, MESA_SHADER_GEOMETRY))
+ return;
+
+ gp = (struct brw_program *) brw->programs[MESA_SHADER_GEOMETRY];
+ gp->id = key.program_string_id;
+
+ MAYBE_UNUSED bool success = brw_codegen_gs_prog(brw, gp, &key);
+ assert(success);
}
bool