diff options
author | Jason Ekstrand <[email protected]> | 2019-11-25 12:42:42 -0600 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2019-12-05 10:59:10 -0600 |
commit | a500a6b7f138b3fa42debbba8605ec4378ff3569 (patch) | |
tree | 9b3a20aa8a8f66b5ccb671bae8b92129037532ac /src | |
parent | c142a40a92fc4a1ac4ac19141abd1d9d37ddd652 (diff) |
blorp: Pass the VB size to the VF cache workaround
Reviewed-by: Ivan Briano <[email protected]>
Reviewed-by: Lionel Landwerlin <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/iris/iris_blorp.c | 1 | ||||
-rw-r--r-- | src/intel/blorp/blorp_genX_exec.h | 13 | ||||
-rw-r--r-- | src/intel/vulkan/genX_blorp_exec.c | 1 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/genX_blorp_exec.c | 1 |
4 files changed, 10 insertions, 6 deletions
diff --git a/src/gallium/drivers/iris/iris_blorp.c b/src/gallium/drivers/iris/iris_blorp.c index c2253ac913a..15b43ee5a6a 100644 --- a/src/gallium/drivers/iris/iris_blorp.c +++ b/src/gallium/drivers/iris/iris_blorp.c @@ -202,6 +202,7 @@ blorp_alloc_vertex_buffer(struct blorp_batch *blorp_batch, static void blorp_vf_invalidate_for_vb_48b_transitions(struct blorp_batch *blorp_batch, const struct blorp_address *addrs, + UNUSED uint32_t *sizes, unsigned num_vbs) { #if GEN_GEN < 11 diff --git a/src/intel/blorp/blorp_genX_exec.h b/src/intel/blorp/blorp_genX_exec.h index 67b345cbf0b..53ff4f9a74c 100644 --- a/src/intel/blorp/blorp_genX_exec.h +++ b/src/intel/blorp/blorp_genX_exec.h @@ -62,6 +62,7 @@ blorp_alloc_vertex_buffer(struct blorp_batch *batch, uint32_t size, static void blorp_vf_invalidate_for_vb_48b_transitions(struct blorp_batch *batch, const struct blorp_address *addrs, + uint32_t *sizes, unsigned num_vbs); #if GEN_GEN >= 8 @@ -344,15 +345,15 @@ blorp_emit_vertex_buffers(struct blorp_batch *batch, memset(vb, 0, sizeof(vb)); struct blorp_address addrs[2] = {}; - uint32_t size; - blorp_emit_vertex_data(batch, params, &addrs[0], &size); - blorp_fill_vertex_buffer_state(batch, vb, 0, addrs[0], size, + uint32_t sizes[2]; + blorp_emit_vertex_data(batch, params, &addrs[0], &sizes[0]); + blorp_fill_vertex_buffer_state(batch, vb, 0, addrs[0], sizes[0], 3 * sizeof(float)); - blorp_emit_input_varying_data(batch, params, &addrs[1], &size); - blorp_fill_vertex_buffer_state(batch, vb, 1, addrs[1], size, 0); + blorp_emit_input_varying_data(batch, params, &addrs[1], &sizes[1]); + blorp_fill_vertex_buffer_state(batch, vb, 1, addrs[1], sizes[1], 0); - blorp_vf_invalidate_for_vb_48b_transitions(batch, addrs, num_vbs); + blorp_vf_invalidate_for_vb_48b_transitions(batch, addrs, sizes, num_vbs); const unsigned num_dwords = 1 + num_vbs * GENX(VERTEX_BUFFER_STATE_length); uint32_t *dw = blorp_emitn(batch, GENX(3DSTATE_VERTEX_BUFFERS), num_dwords); diff --git a/src/intel/vulkan/genX_blorp_exec.c b/src/intel/vulkan/genX_blorp_exec.c index c68607b9526..79e18d95282 100644 --- a/src/intel/vulkan/genX_blorp_exec.c +++ b/src/intel/vulkan/genX_blorp_exec.c @@ -167,6 +167,7 @@ blorp_alloc_vertex_buffer(struct blorp_batch *batch, uint32_t size, static void blorp_vf_invalidate_for_vb_48b_transitions(struct blorp_batch *batch, const struct blorp_address *addrs, + uint32_t *sizes, unsigned num_vbs) { /* anv forces all vertex buffers into the low 4GB so there are never any diff --git a/src/mesa/drivers/dri/i965/genX_blorp_exec.c b/src/mesa/drivers/dri/i965/genX_blorp_exec.c index 62a8310f68b..476849bdea6 100644 --- a/src/mesa/drivers/dri/i965/genX_blorp_exec.c +++ b/src/mesa/drivers/dri/i965/genX_blorp_exec.c @@ -207,6 +207,7 @@ blorp_alloc_vertex_buffer(struct blorp_batch *batch, uint32_t size, static void blorp_vf_invalidate_for_vb_48b_transitions(struct blorp_batch *batch, const struct blorp_address *addrs, + UNUSED uint32_t *sizes, unsigned num_vbs) { #if GEN_GEN >= 8 && GEN_GEN < 11 |