mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-20 06:16:13 +00:00
overlay: Handle execlists not setting the rings as active
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
06aed34d38
commit
74a8068086
@ -116,6 +116,23 @@ static uint32_t mmio_ring_read(struct mmio_ring *ring, uint32_t reg)
|
|||||||
return igfx_read(ring->mmio, ring->base + reg);
|
return igfx_read(ring->mmio, ring->base + reg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int has_execlists(void)
|
||||||
|
{
|
||||||
|
int detected = 0;
|
||||||
|
FILE *file;
|
||||||
|
|
||||||
|
file = fopen("/sys/module/i915/parameters/enable_execlists", "r");
|
||||||
|
if (file) {
|
||||||
|
int value;
|
||||||
|
if (fscanf(file, "%d", &value) == 1)
|
||||||
|
detected = value != 0;
|
||||||
|
fclose(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
return detected;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
static void mmio_ring_init(struct mmio_ring *ring, void *mmio)
|
static void mmio_ring_init(struct mmio_ring *ring, void *mmio)
|
||||||
{
|
{
|
||||||
uint32_t ctl;
|
uint32_t ctl;
|
||||||
@ -123,7 +140,7 @@ static void mmio_ring_init(struct mmio_ring *ring, void *mmio)
|
|||||||
ring->mmio = mmio;
|
ring->mmio = mmio;
|
||||||
|
|
||||||
ctl = mmio_ring_read(ring, RING_CTL);
|
ctl = mmio_ring_read(ring, RING_CTL);
|
||||||
if ((ctl & 1) == 0)
|
if ((ctl & 1) == 0 && !has_execlists())
|
||||||
ring->id = -1;
|
ring->id = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -239,10 +256,10 @@ static void mmio_init(struct gpu_top *gt)
|
|||||||
usleep(1000);
|
usleep(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memset(payload, 0, sizeof(payload));
|
||||||
mmio_ring_emit(&render_ring, 1000, payload);
|
mmio_ring_emit(&render_ring, 1000, payload);
|
||||||
mmio_ring_emit(&bsd_ring, 1000, payload);
|
mmio_ring_emit(&bsd_ring, 1000, payload);
|
||||||
mmio_ring_emit(&blt_ring, 1000, payload);
|
mmio_ring_emit(&blt_ring, 1000, payload);
|
||||||
|
|
||||||
write(fd[1], payload, sizeof(payload));
|
write(fd[1], payload, sizeof(payload));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user