mirror of
https://github.com/mmueller41/genode.git
synced 2026-01-21 12:32:56 +01:00
committed by
Christian Helmuth
parent
b2440a72c3
commit
6c7bcdd32e
@@ -564,7 +564,8 @@ struct Igd::Device
|
|||||||
|
|
||||||
Ring_buffer::Index advance = 0;
|
Ring_buffer::Index advance = 0;
|
||||||
|
|
||||||
size_t const need = 4 /* batchbuffer cmd */ + 6 /* prolog */ + 16 /* epilog + w/a */;
|
size_t const need = 4 /* batchbuffer cmd */ + 6 /* prolog */ + 16 /* epilog + w/a */
|
||||||
|
+ (_device.generation().value == 9) ? 6 : 0;
|
||||||
if (!el.ring_avail(need)) { el.ring_reset_and_fill_zero(); }
|
if (!el.ring_avail(need)) { el.ring_reset_and_fill_zero(); }
|
||||||
|
|
||||||
/* save old tail */
|
/* save old tail */
|
||||||
@@ -576,6 +577,21 @@ struct Igd::Device
|
|||||||
* Pipeline synchronization
|
* Pipeline synchronization
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* on GEN9: emit empty pipe control before VF_CACHE_INVALIDATE
|
||||||
|
* - Linux 5.13 gen8_emit_flush_rcs()
|
||||||
|
*/
|
||||||
|
if (_device.generation().value == 9) {
|
||||||
|
enum { CMD_NUM = 6 };
|
||||||
|
Genode::uint32_t cmd[CMD_NUM] = {};
|
||||||
|
Igd::Pipe_control pc(CMD_NUM);
|
||||||
|
cmd[0] = pc.value;
|
||||||
|
|
||||||
|
for (size_t i = 0; i < CMD_NUM; i++) {
|
||||||
|
advance += el.ring_append(cmd[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* prolog */
|
/* prolog */
|
||||||
if (1)
|
if (1)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user