mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-28 18:38:21 +02:00
radeon: add r100/r200 workarounds for legacy aging
This commit is contained in:
parent
4ca76586c2
commit
014c52eb6b
2 changed files with 20 additions and 9 deletions
|
|
@ -163,14 +163,17 @@ static void legacy_get_current_age(struct bo_manager_legacy *boml)
|
|||
drm_radeon_getparam_t gp;
|
||||
int r;
|
||||
|
||||
gp.param = RADEON_PARAM_LAST_CLEAR;
|
||||
gp.value = (int *)&boml->current_age;
|
||||
r = drmCommandWriteRead(boml->base.fd, DRM_RADEON_GETPARAM,
|
||||
&gp, sizeof(gp));
|
||||
if (r) {
|
||||
fprintf(stderr, "%s: drmRadeonGetParam: %d\n", __FUNCTION__, r);
|
||||
exit(1);
|
||||
}
|
||||
if (IS_R300_CLASS(boml->screen)) {
|
||||
gp.param = RADEON_PARAM_LAST_CLEAR;
|
||||
gp.value = (int *)&boml->current_age;
|
||||
r = drmCommandWriteRead(boml->base.fd, DRM_RADEON_GETPARAM,
|
||||
&gp, sizeof(gp));
|
||||
if (r) {
|
||||
fprintf(stderr, "%s: drmRadeonGetParam: %d\n", __FUNCTION__, r);
|
||||
exit(1);
|
||||
}
|
||||
} else
|
||||
boml->current_age = boml->screen->scratch[3];
|
||||
}
|
||||
|
||||
static int legacy_is_pending(struct radeon_bo *bo)
|
||||
|
|
|
|||
|
|
@ -317,12 +317,20 @@ static int cs_emit(struct radeon_cs *cs)
|
|||
cmd.boxes = (drm_clip_rect_t *) csm->ctx->pClipRects;
|
||||
}
|
||||
|
||||
dump_cmdbuf(cs);
|
||||
// dump_cmdbuf(cs);
|
||||
|
||||
r = drmCommandWrite(cs->csm->fd, DRM_RADEON_CMDBUF, &cmd, sizeof(cmd));
|
||||
if (r) {
|
||||
return r;
|
||||
}
|
||||
if (!IS_R300_CLASS(csm->ctx->radeonScreen)) {
|
||||
drm_radeon_irq_emit_t emit_cmd;
|
||||
emit_cmd.irq_seq = &csm->pending_age;
|
||||
r = drmCommandWrite(cs->csm->fd, DRM_RADEON_IRQ_EMIT, &emit_cmd, sizeof(emit_cmd));
|
||||
if (r) {
|
||||
return r;
|
||||
}
|
||||
}
|
||||
cs_set_age(cs);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue