blorp: implement Wa_16014912113 callback for drivers
Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26920>
This commit is contained in:
@@ -263,6 +263,13 @@ blorp_get_l3_config(struct blorp_batch *blorp_batch)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static void
|
||||||
|
blorp_pre_emit_urb_config(struct blorp_batch *blorp_batch,
|
||||||
|
struct intel_urb_config *urb_cfg)
|
||||||
|
{
|
||||||
|
/* Dummy. */
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
blorp_emit_urb_config(struct blorp_batch *blorp_batch,
|
blorp_emit_urb_config(struct blorp_batch *blorp_batch,
|
||||||
struct intel_urb_config *urb_cfg)
|
struct intel_urb_config *urb_cfg)
|
||||||
|
@@ -274,6 +274,13 @@ blorp_flush_range(UNUSED struct blorp_batch *blorp_batch,
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
blorp_pre_emit_urb_config(struct blorp_batch *blorp_batch,
|
||||||
|
struct intel_urb_config *urb_cfg)
|
||||||
|
{
|
||||||
|
genX(urb_workaround)(blorp_batch->driver_batch, urb_cfg);
|
||||||
|
}
|
||||||
|
|
||||||
static const struct intel_l3_config *
|
static const struct intel_l3_config *
|
||||||
blorp_get_l3_config(struct blorp_batch *blorp_batch)
|
blorp_get_l3_config(struct blorp_batch *blorp_batch)
|
||||||
{
|
{
|
||||||
|
@@ -115,6 +115,10 @@ static const struct intel_l3_config *
|
|||||||
blorp_get_l3_config(struct blorp_batch *batch);
|
blorp_get_l3_config(struct blorp_batch *batch);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static void
|
||||||
|
blorp_pre_emit_urb_config(struct blorp_batch *batch,
|
||||||
|
struct intel_urb_config *urb_config);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
blorp_emit_urb_config(struct blorp_batch *batch,
|
blorp_emit_urb_config(struct blorp_batch *batch,
|
||||||
struct intel_urb_config *urb_config);
|
struct intel_urb_config *urb_config);
|
||||||
@@ -252,6 +256,9 @@ emit_urb_config(struct blorp_batch *batch,
|
|||||||
false, false, &urb_cfg,
|
false, false, &urb_cfg,
|
||||||
deref_block_size, &constrained);
|
deref_block_size, &constrained);
|
||||||
|
|
||||||
|
/* Tell drivers about the config. */
|
||||||
|
blorp_pre_emit_urb_config(batch, &urb_cfg);
|
||||||
|
|
||||||
#if GFX_VERx10 == 70
|
#if GFX_VERx10 == 70
|
||||||
/* From the IVB PRM Vol. 2, Part 1, Section 3.2.1:
|
/* From the IVB PRM Vol. 2, Part 1, Section 3.2.1:
|
||||||
*
|
*
|
||||||
|
@@ -255,6 +255,18 @@ blorp_flush_range(struct blorp_batch *batch, void *start, size_t size)
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
blorp_pre_emit_urb_config(struct blorp_batch *blorp_batch,
|
||||||
|
struct intel_urb_config *urb_cfg)
|
||||||
|
{
|
||||||
|
struct anv_cmd_buffer *cmd_buffer = blorp_batch->driver_batch;
|
||||||
|
genX(urb_workaround)(cmd_buffer, urb_cfg);
|
||||||
|
|
||||||
|
/* Update urb config. */
|
||||||
|
memcpy(&cmd_buffer->state.gfx.urb_cfg, urb_cfg,
|
||||||
|
sizeof(struct intel_urb_config));
|
||||||
|
}
|
||||||
|
|
||||||
static const struct intel_l3_config *
|
static const struct intel_l3_config *
|
||||||
blorp_get_l3_config(struct blorp_batch *batch)
|
blorp_get_l3_config(struct blorp_batch *batch)
|
||||||
{
|
{
|
||||||
|
@@ -250,6 +250,13 @@ blorp_flush_range(struct blorp_batch *batch, void *start, size_t size)
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
blorp_pre_emit_urb_config(struct blorp_batch *blorp_batch,
|
||||||
|
struct intel_urb_config *urb_cfg)
|
||||||
|
{
|
||||||
|
/* Dummy. */
|
||||||
|
}
|
||||||
|
|
||||||
static const struct intel_l3_config *
|
static const struct intel_l3_config *
|
||||||
blorp_get_l3_config(struct blorp_batch *batch)
|
blorp_get_l3_config(struct blorp_batch *batch)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user