static void brw_upload_vs_ubo_surfaces(struct brw_context *brw) { struct gl_context *ctx = &brw->ctx; /* _NEW_PROGRAM */ struct gl_program *prog = ctx->_Shader->CurrentProgram[MESA_SHADER_VERTEX]; /* BRW_NEW_VS_PROG_DATA */ brw_upload_ubo_surfaces(brw, prog, &brw->vs.base, brw->vs.base.prog_data); }
static void brw_upload_tcs_ubo_surfaces(struct brw_context *brw) { struct gl_context *ctx = &brw->ctx; /* _NEW_PROGRAM */ struct gl_program *prog = ctx->_Shader->CurrentProgram[MESA_SHADER_TESS_CTRL]; /* BRW_NEW_TCS_PROG_DATA */ struct brw_stage_prog_data *prog_data = brw->tcs.base.prog_data; brw_upload_ubo_surfaces(brw, prog, &brw->tcs.base, prog_data); }
static void brw_upload_vs_ubo_surfaces(struct brw_context *brw) { struct gl_context *ctx = &brw->ctx; /* _NEW_PROGRAM */ struct gl_shader_program *prog = ctx->Shader.CurrentVertexProgram; if (!prog) return; /* CACHE_NEW_VS_PROG */ brw_upload_ubo_surfaces(brw, prog->_LinkedShaders[MESA_SHADER_VERTEX], &brw->vs.base, &brw->vs.prog_data->base.base); }
static void brw_upload_vs_ubo_surfaces(struct brw_context *brw) { struct brw_stage_state *stage_state = &brw->vs.base; struct gl_context *ctx = &brw->ctx; /* _NEW_PROGRAM */ struct gl_shader_program *prog = ctx->Shader.CurrentVertexProgram; if (!prog) return; brw_upload_ubo_surfaces(brw, prog->_LinkedShaders[MESA_SHADER_VERTEX], &stage_state->surf_offset[SURF_INDEX_VEC4_UBO(0)]); }
static void brw_upload_gs_ubo_surfaces(struct brw_context *brw) { struct gl_context *ctx = &brw->ctx; /* _NEW_PROGRAM */ struct gl_shader_program *prog = ctx->_Shader->CurrentProgram[MESA_SHADER_GEOMETRY]; if (!prog) return; /* CACHE_NEW_GS_PROG */ brw_upload_ubo_surfaces(brw, prog->_LinkedShaders[MESA_SHADER_GEOMETRY], &brw->gs.base, &brw->gs.prog_data->base.base); }
static void brw_upload_tes_ubo_surfaces(struct brw_context *brw) { struct gl_context *ctx = &brw->ctx; /* _NEW_PROGRAM */ struct gl_shader_program *prog = ctx->_Shader->CurrentProgram[MESA_SHADER_TESS_EVAL]; if (!prog) return; /* BRW_NEW_TES_PROG_DATA */ struct brw_stage_prog_data *prog_data = brw->tes.base.prog_data; brw_upload_ubo_surfaces(brw, prog->_LinkedShaders[MESA_SHADER_TESS_EVAL], &brw->tes.base, prog_data); }
static void brw_upload_vs_ubo_surfaces(struct brw_context *brw) { struct gl_context *ctx = &brw->ctx; /* _NEW_PROGRAM */ struct gl_shader_program *prog = ctx->_Shader->CurrentProgram[MESA_SHADER_VERTEX]; bool dword_pitch; if (!prog) return; /* BRW_NEW_VS_PROG_DATA */ dword_pitch = brw->vs.prog_data->base.dispatch_mode == DISPATCH_MODE_SIMD8; brw_upload_ubo_surfaces(brw, prog->_LinkedShaders[MESA_SHADER_VERTEX], &brw->vs.base, &brw->vs.prog_data->base.base, dword_pitch); }