summaryrefslogtreecommitdiffstats
path: root/src/intel
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2019-11-25 12:42:42 -0600
committerJason Ekstrand <[email protected]>2019-12-05 10:59:10 -0600
commita500a6b7f138b3fa42debbba8605ec4378ff3569 (patch)
tree9b3a20aa8a8f66b5ccb671bae8b92129037532ac /src/intel
parentc142a40a92fc4a1ac4ac19141abd1d9d37ddd652 (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/intel')
-rw-r--r--src/intel/blorp/blorp_genX_exec.h13
-rw-r--r--src/intel/vulkan/genX_blorp_exec.c1
2 files changed, 8 insertions, 6 deletions
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