From eaaa3c7e04eaf3c94cc7219a1a6a89918bbe2dbb Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Tue, 19 Oct 2021 15:24:51 -0700 Subject: [PATCH] i965: 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/mesa/drivers/dri/i965/genX_state_upload.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c b/src/mesa/drivers/dri/i965/genX_state_upload.c index cb205c6..f8a04ec 100644 --- a/src/mesa/drivers/dri/i965/genX_state_upload.c +++ b/src/mesa/drivers/dri/i965/genX_state_upload.c @@ -3689,6 +3689,7 @@ genX(upload_3dstate_so_buffers)(struct brw_context *brw) if (!bufferobj || !size) { brw_batch_emit(brw, GENX(3DSTATE_SO_BUFFER), sob) { sob.SOBufferIndex = i; + sob.MOCS = brw_mocs(&brw->isl_dev, NULL); } continue; } -- 2.7.4