mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 13:20:14 +01:00
i965: Use bo_map instead of subdata to upload the bits of constant buffer.
Saves CPU time, resulting in a 2.5% FPS win on ETQW.
This commit is contained in:
parent
8e8586e626
commit
ded0ec1ea5
2 changed files with 26 additions and 2 deletions
|
|
@ -68,10 +68,13 @@ brw_vs_update_constant_buffer(struct brw_context *brw)
|
||||||
*/
|
*/
|
||||||
_mesa_load_state_parameters(&brw->intel.ctx, vp->program.Base.Parameters);
|
_mesa_load_state_parameters(&brw->intel.ctx, vp->program.Base.Parameters);
|
||||||
|
|
||||||
|
intel_bo_map_gtt_preferred(intel, const_buffer, GL_TRUE);
|
||||||
for (i = 0; i < params->NumParameters; i++) {
|
for (i = 0; i < params->NumParameters; i++) {
|
||||||
dri_bo_subdata(const_buffer, i * 4 * sizeof(float), 4 * sizeof(float),
|
memcpy(const_buffer->virtual + i * 4 * sizeof(float),
|
||||||
params->ParameterValues[i]);
|
params->ParameterValues[i],
|
||||||
|
4 * sizeof(float));
|
||||||
}
|
}
|
||||||
|
intel_bo_unmap_gtt_preferred(intel, const_buffer);
|
||||||
|
|
||||||
return const_buffer;
|
return const_buffer;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -590,4 +590,25 @@ is_power_of_two(uint32_t value)
|
||||||
return (value & (value - 1)) == 0;
|
return (value & (value - 1)) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
intel_bo_map_gtt_preferred(struct intel_context *intel,
|
||||||
|
drm_intel_bo *bo,
|
||||||
|
GLboolean write)
|
||||||
|
{
|
||||||
|
if (intel->intelScreen->kernel_exec_fencing)
|
||||||
|
drm_intel_gem_bo_map_gtt(bo);
|
||||||
|
else
|
||||||
|
drm_intel_bo_map(bo, write);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
intel_bo_unmap_gtt_preferred(struct intel_context *intel,
|
||||||
|
drm_intel_bo *bo)
|
||||||
|
{
|
||||||
|
if (intel->intelScreen->kernel_exec_fencing)
|
||||||
|
drm_intel_gem_bo_unmap_gtt(bo);
|
||||||
|
else
|
||||||
|
drm_intel_bo_unmap(bo);
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue