mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-20 17:52:52 +00:00
parent
b2440a72c3
commit
6c7bcdd32e
@ -564,7 +564,8 @@ struct Igd::Device
|
||||
|
||||
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(); }
|
||||
|
||||
/* save old tail */
|
||||
@ -576,6 +577,21 @@ struct Igd::Device
|
||||
* 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 */
|
||||
if (1)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user