mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 13:28:06 +02:00
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@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5022>
This commit is contained in:
parent
e3d8edf3e0
commit
0b5288492b
1 changed files with 15 additions and 1 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue