diff options
author | Chia-I Wu <olvaffe@gmail.com> | 2015-06-18 14:26:29 +0800 |
---|---|---|
committer | Chia-I Wu <olvaffe@gmail.com> | 2015-06-20 11:14:14 +0800 |
commit | 4555211028394673f8ad68f3de9c12e9a1f93160 (patch) | |
tree | c9d885b73ee4253b91a4fe7e22171e76b63fc90e /src/gallium/drivers/ilo/ilo_render_gen8.c | |
parent | e8d297b7a108fcf1cb688fe1db89e83b8f85e091 (diff) | |
download | external_mesa3d-4555211028394673f8ad68f3de9c12e9a1f93160.zip external_mesa3d-4555211028394673f8ad68f3de9c12e9a1f93160.tar.gz external_mesa3d-4555211028394673f8ad68f3de9c12e9a1f93160.tar.bz2 |
ilo: add 3DSTATE_VF_INSTANCING to ilo_state_vf
3DSTATE_VF_INSTANCING specifies instancing enable and step rate. They are
specified along with 3DSTATE_VERTEX_BUFFERS instead prior to Gen8. Both
commands are added.
Diffstat (limited to 'src/gallium/drivers/ilo/ilo_render_gen8.c')
-rw-r--r-- | src/gallium/drivers/ilo/ilo_render_gen8.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/gallium/drivers/ilo/ilo_render_gen8.c b/src/gallium/drivers/ilo/ilo_render_gen8.c index 7e0d206..3b8589c 100644 --- a/src/gallium/drivers/ilo/ilo_render_gen8.c +++ b/src/gallium/drivers/ilo/ilo_render_gen8.c @@ -199,8 +199,6 @@ gen8_draw_vf(struct ilo_render *r, const struct ilo_state_vector *vec, struct ilo_render_draw_session *session) { - int i; - /* 3DSTATE_INDEX_BUFFER */ if ((session->vf_delta.dirty & ILO_STATE_VF_3DSTATE_INDEX_BUFFER) || DIRTY(IB) || r->batch_bo_changed) @@ -211,9 +209,10 @@ gen8_draw_vf(struct ilo_render *r, gen75_3DSTATE_VF(r->builder, &vec->ve->vf); /* 3DSTATE_VERTEX_BUFFERS */ - if (DIRTY(VB) || DIRTY(VE) || r->batch_bo_changed) { - gen6_3DSTATE_VERTEX_BUFFERS(r->builder, &vec->vb, vec->ve->vb_mapping, - vec->ve->instance_divisors, vec->ve->vb_count); + if ((session->vf_delta.dirty & ILO_STATE_VF_3DSTATE_VERTEX_BUFFERS) || + DIRTY(VB) || DIRTY(VE) || r->batch_bo_changed) { + gen6_3DSTATE_VERTEX_BUFFERS(r->builder, &vec->ve->vf, &vec->vb, + vec->ve->vb_mapping, vec->ve->vb_count); } /* 3DSTATE_VERTEX_ELEMENTS */ @@ -223,9 +222,12 @@ gen8_draw_vf(struct ilo_render *r, gen8_3DSTATE_VF_TOPOLOGY(r->builder, gen6_3d_translate_pipe_prim(vec->draw->mode)); - for (i = 0; i < vec->ve->vb_count; i++) { - gen8_3DSTATE_VF_INSTANCING(r->builder, i, - vec->ve->instance_divisors[i]); + if (session->vf_delta.dirty & ILO_STATE_VF_3DSTATE_VF_INSTANCING) { + const uint8_t attr_count = ilo_state_vf_get_attr_count(&vec->ve->vf); + uint8_t i; + + for (i = 0; i < attr_count; i++) + gen8_3DSTATE_VF_INSTANCING(r->builder, &vec->ve->vf, i); } if (session->vf_delta.dirty & ILO_STATE_VF_3DSTATE_VF_SGVS) |