X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fdrivers%2Fdri%2Fi965%2Fbrw_tes.c;h=2f3697ce9617d988d23d0d30bbbc5113997a01b7;hb=156d2c6e621d836c4d45c636b87669e1de3d4464;hp=225d2401c7e10cb45641ab6dc0b3e4bfecef8914;hpb=f9d5a7add42af5a2e4410526d1480a08f41317ae;p=mesa.git diff --git a/src/mesa/drivers/dri/i965/brw_tes.c b/src/mesa/drivers/dri/i965/brw_tes.c index 225d2401c7e..2f3697ce961 100644 --- a/src/mesa/drivers/dri/i965/brw_tes.c +++ b/src/mesa/drivers/dri/i965/brw_tes.c @@ -106,7 +106,7 @@ brw_codegen_tes_prog(struct brw_context *brw, brw_compile_tes(compiler, brw, mem_ctx, key, &input_vue_map, &prog_data, nir, &tep->program, st_index, &error_str); if (program == NULL) { - tep->program.sh.data->LinkStatus = linking_failure; + tep->program.sh.data->LinkStatus = LINKING_FAILURE; ralloc_strcat(&tep->program.sh.data->InfoLog, error_str); _mesa_problem(NULL, "Failed to compile tessellation evaluation shader: " @@ -195,14 +195,20 @@ brw_upload_tes_prog(struct brw_context *brw) brw_tes_populate_key(brw, &key); - if (!brw_search_cache(&brw->cache, BRW_CACHE_TES_PROG, - &key, sizeof(key), - &stage_state->prog_offset, - &brw->tes.base.prog_data)) { - bool success = brw_codegen_tes_prog(brw, tep, &key); - assert(success); - (void)success; - } + if (brw_search_cache(&brw->cache, BRW_CACHE_TES_PROG, + &key, sizeof(key), + &stage_state->prog_offset, + &brw->tes.base.prog_data)) + return; + + if (brw_disk_cache_upload_program(brw, MESA_SHADER_TESS_EVAL)) + return; + + tep = (struct brw_program *) brw->programs[MESA_SHADER_TESS_EVAL]; + tep->id = key.program_string_id; + + MAYBE_UNUSED bool success = brw_codegen_tes_prog(brw, tep, &key); + assert(success); }