mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 22:49:13 +02:00
Revert "radeon/winsys: increase the IB size for VM"
This reverts commit567394112d. It regressed performance. It looks like smaller IBs are better, because the GPU goes idle quicker and there is less waiting for buffers and fences. Cc: 11.0 <mesa-stable@lists.freedesktop.org> (cherry picked from commita83c36b5c0)
This commit is contained in:
parent
0b690e39dc
commit
adae777f24
4 changed files with 6 additions and 17 deletions
|
|
@ -97,22 +97,17 @@ static boolean radeon_init_cs_context(struct radeon_cs_context *csc,
|
|||
{
|
||||
int i;
|
||||
|
||||
csc->buf = MALLOC(ws->ib_max_size);
|
||||
if (!csc->buf)
|
||||
return FALSE;
|
||||
csc->fd = ws->fd;
|
||||
csc->nrelocs = 512;
|
||||
csc->relocs_bo = (struct radeon_bo**)
|
||||
CALLOC(1, csc->nrelocs * sizeof(struct radeon_bo*));
|
||||
if (!csc->relocs_bo) {
|
||||
FREE(csc->buf);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
csc->relocs = (struct drm_radeon_cs_reloc*)
|
||||
CALLOC(1, csc->nrelocs * sizeof(struct drm_radeon_cs_reloc));
|
||||
if (!csc->relocs) {
|
||||
FREE(csc->buf);
|
||||
FREE(csc->relocs_bo);
|
||||
return FALSE;
|
||||
}
|
||||
|
|
@ -165,7 +160,6 @@ static void radeon_destroy_cs_context(struct radeon_cs_context *csc)
|
|||
radeon_cs_context_cleanup(csc);
|
||||
FREE(csc->relocs_bo);
|
||||
FREE(csc->relocs);
|
||||
FREE(csc->buf);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -206,7 +200,7 @@ radeon_drm_cs_create(struct radeon_winsys_ctx *ctx,
|
|||
cs->cst = &cs->csc2;
|
||||
cs->base.buf = cs->csc->buf;
|
||||
cs->base.ring_type = ring_type;
|
||||
cs->base.max_dw = ws->ib_max_size / 4;
|
||||
cs->base.max_dw = ARRAY_SIZE(cs->csc->buf);
|
||||
|
||||
p_atomic_inc(&ws->num_cs);
|
||||
return &cs->base;
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
#include "radeon_drm_bo.h"
|
||||
|
||||
struct radeon_cs_context {
|
||||
uint32_t *buf;
|
||||
uint32_t buf[16 * 1024];
|
||||
|
||||
int fd;
|
||||
struct drm_radeon_cs cs;
|
||||
|
|
|
|||
|
|
@ -395,20 +395,16 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws)
|
|||
}
|
||||
|
||||
ws->info.r600_virtual_address = FALSE;
|
||||
ws->ib_max_size = 64 * 1024;
|
||||
|
||||
if (ws->info.drm_minor >= 13) {
|
||||
uint32_t ib_vm_max_size;
|
||||
|
||||
ws->info.r600_virtual_address = TRUE;
|
||||
if (!radeon_get_drm_value(ws->fd, RADEON_INFO_VA_START, NULL,
|
||||
&ws->va_start))
|
||||
ws->info.r600_virtual_address = FALSE;
|
||||
|
||||
if (radeon_get_drm_value(ws->fd, RADEON_INFO_IB_VM_MAX_SIZE, NULL,
|
||||
&ws->ib_max_size))
|
||||
ws->ib_max_size *= 4; /* the kernel returns the size in dwords */
|
||||
else
|
||||
if (!radeon_get_drm_value(ws->fd, RADEON_INFO_IB_VM_MAX_SIZE, NULL,
|
||||
&ib_vm_max_size))
|
||||
ws->info.r600_virtual_address = FALSE;
|
||||
|
||||
radeon_get_drm_value(ws->fd, RADEON_INFO_VA_UNMAP_WORKING, NULL,
|
||||
&ws->va_unmap_working);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,7 +73,6 @@ struct radeon_drm_winsys {
|
|||
|
||||
enum radeon_generation gen;
|
||||
struct radeon_info info;
|
||||
uint32_t ib_max_size;
|
||||
uint32_t va_start;
|
||||
uint32_t va_unmap_working;
|
||||
uint32_t accel_working2;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue