mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 17:40:11 +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);
|
||||
|
||||
intel_bo_map_gtt_preferred(intel, const_buffer, GL_TRUE);
|
||||
for (i = 0; i < params->NumParameters; i++) {
|
||||
dri_bo_subdata(const_buffer, i * 4 * sizeof(float), 4 * sizeof(float),
|
||||
params->ParameterValues[i]);
|
||||
memcpy(const_buffer->virtual + i * 4 * sizeof(float),
|
||||
params->ParameterValues[i],
|
||||
4 * sizeof(float));
|
||||
}
|
||||
intel_bo_unmap_gtt_preferred(intel, const_buffer);
|
||||
|
||||
return const_buffer;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -590,4 +590,25 @@ is_power_of_two(uint32_t value)
|
|||
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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue