radv: cache the slab bo pointer in the pipeline.

Otherwise each emission has to pointer chase across cachelines.

Reduces overhead seen with zink on pixmark volplosion test.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16393>
This commit is contained in:
Dave Airlie
2022-05-09 16:06:58 +10:00
committed by Marge Bot
parent 87f4252a51
commit b20bd9e0df
4 changed files with 5 additions and 1 deletions

View File

@@ -3810,6 +3810,8 @@ radv_upload_shaders(struct radv_device *device, struct radv_pipeline *pipeline,
if (!pipeline->slab)
return VK_ERROR_OUT_OF_DEVICE_MEMORY;
pipeline->slab_bo = pipeline->slab->alloc->arena->bo;
/* Upload shader binaries. */
uint64_t slab_va = radv_buffer_get_va(pipeline->slab->alloc->arena->bo);
uint32_t slab_offset = pipeline->slab->alloc->offset;