static inline void brw_upload_tess_programs(struct brw_context *brw) { if (brw->tess_eval_program) { uint64_t per_vertex_slots = brw->tess_eval_program->Base.InputsRead; uint32_t per_patch_slots = brw->tess_eval_program->Base.PatchInputsRead; /* The TCS may have additional outputs which aren't read by the * TES (possibly for cross-thread communication). These need to * be stored in the Patch URB Entry as well. */ if (brw->tess_ctrl_program) { per_vertex_slots |= brw->tess_ctrl_program->Base.OutputsWritten; per_patch_slots |= brw->tess_ctrl_program->Base.PatchOutputsWritten; } brw_upload_tcs_prog(brw, per_vertex_slots, per_patch_slots); brw_upload_tes_prog(brw, per_vertex_slots, per_patch_slots); } else { brw->tcs.prog_data = NULL; brw->tcs.base.prog_data = NULL; brw->tes.prog_data = NULL; brw->tes.base.prog_data = NULL; } }
static inline void brw_upload_tess_programs(struct brw_context *brw) { if (brw->tess_eval_program) { brw_upload_tcs_prog(brw); brw_upload_tes_prog(brw); } else { brw->tcs.base.prog_data = NULL; brw->tes.base.prog_data = NULL; } }
static inline void brw_upload_tess_programs(struct brw_context *brw) { if (brw->programs[MESA_SHADER_TESS_EVAL]) { brw_upload_tcs_prog(brw); brw_upload_tes_prog(brw); } else { brw->tcs.base.prog_data = NULL; brw->tes.base.prog_data = NULL; } }