From dfe455b6dfb927b43681fed29a9bc5a88f763171 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Tue, 19 Oct 2021 09:12:54 -0700 Subject: [PATCH] anv: Set MOCS on NULL stream output buffers We'd like to add safeguards against accidental use of MOCS 0 (uncached), which can have large performance implications. One case where we use MOCS of 0 is disabled stream output targets, MOCS shouldn't matter, as there's no actual buffer to be cached. That said, it should be harmless to set MOCS for these null stream output buffers; we can just assume a MOCS for generic internal buffers. Reviewed-by: Jason Ekstrand Part-of: --- src/intel/vulkan/genX_cmd_buffer.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 5cff7d1..6b4ff92 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -3657,6 +3657,8 @@ genX(cmd_buffer_flush_state)(struct anv_cmd_buffer *cmd_buffer) sob.SurfaceEndAddress = anv_address_add(xfb->buffer->address, xfb->offset + xfb->size); #endif + } else { + sob.MOCS = anv_mocs(cmd_buffer->device, NULL, 0); } } } -- 2.7.4