Mesa (master): anv: Set MOCS in 3DSTATE_CONSTANT_* on Gen9+

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu May 14 00:49:38 UTC 2020


Module: Mesa
Branch: master
Commit: 0b5288492b90c9a5471152393df31691271f6a55
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0b5288492b90c9a5471152393df31691271f6a55

Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Tue May 12 22:55:30 2020 -0500

anv: Set MOCS in 3DSTATE_CONSTANT_* on Gen9+

While we're here, we add a nice detailed comment about why always
assuming internal is ok.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5022>

---

 src/intel/vulkan/genX_cmd_buffer.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c
index f1b102c9805..ca67bb8b5f2 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -3029,7 +3029,21 @@ cmd_buffer_emit_push_constant(struct anv_cmd_buffer *cmd_buffer,
          const struct anv_pipeline_bind_map *bind_map =
             &pipeline->shaders[stage]->bind_map;
 
-#if GEN_GEN >= 12
+#if GEN_GEN >= 9
+         /* This field exists since Gen8.  However, the Broadwell PRM says:
+          *
+          *    "Constant Buffer Object Control State must be always programmed
+          *    to zero."
+          *
+          * This restriction does not exist on any newer platforms.
+          *
+          * We only have one MOCS field for the whole packet, not one per
+          * buffer.  We could go out of our way here to walk over all of the
+          * buffers and see if any of them are used externally and use the
+          * external MOCS.  However, the notion that someone would use the
+          * same bit of memory for both scanout and a UBO is nuts.  Let's not
+          * bother and assume it's all internal.
+          */
          c.MOCS = cmd_buffer->device->isl_dev.mocs.internal;
 #endif
 



More information about the mesa-commit mailing list