diff options
author | Antia Puentes <apuentes@igalia.com> | 2018-04-28 14:09:22 +0200 |
---|---|---|
committer | Antia Puentes <apuentes@igalia.com> | 2018-05-02 11:24:46 +0200 |
commit | 3a1df14a7b5c1652aa72eb6cf43e69ab447c6273 (patch) | |
tree | b9aa5c98105b28027119cfaf2b2c2a611cdbdfbc /src/mesa | |
parent | 0fb204fac14cd2c7cf4a04f4060d4000bf5e3d35 (diff) |
intel: activate the gl_BaseVertex lowering
Surplus code related to the basevertex is removed.
The Vertex Elements contain now:
* VE 1: <firstvertex, BaseInstance, VertexID, InstanceID>
* VE 2: <DrawID, is_indexed_draw, 0, 0>
Also fixes unreachable message.
Fixes OpenGL CTS tests:
* KHR-GL46.shader_draw_parameters_tests.ShaderDrawArraysInstancedParameters
* KHR-GL46.shader_draw_parameters_tests.ShaderMultiDrawArraysParameters
* KHR-GL46.shader_draw_parameters_tests.MultiDrawArraysIndirectCountParameters
* KHR-GL46.shader_draw_parameters_tests.ShaderDrawArraysParameters
* KHR-GL46.shader_draw_parameters_tests.ShaderMultiDrawArraysIndirectParameters
Fixes Piglit tests:
* arb_shader_draw_parameters-drawid-indirect baseinstance
* arb_shader_draw_parameters-basevertex
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102678
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_draw.c | 8 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_draw_upload.c | 5 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/genX_state_upload.c | 1 |
3 files changed, 3 insertions, 11 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c index 05ad32e2edd..25ba372c449 100644 --- a/src/mesa/drivers/dri/i965/brw_draw.c +++ b/src/mesa/drivers/dri/i965/brw_draw.c @@ -825,16 +825,12 @@ brw_draw_single_prim(struct gl_context *ctx, const struct brw_vs_prog_data *vs_prog_data = brw_vs_prog_data(brw->vs.base.prog_data); if (prim_id > 0) { - const bool uses_firstvertex = - vs_prog_data->uses_basevertex || - vs_prog_data->uses_firstvertex; - const bool uses_draw_parameters = - uses_firstvertex || + vs_prog_data->uses_firstvertex || vs_prog_data->uses_baseinstance; if ((uses_draw_parameters && prim->is_indirect) || - (uses_firstvertex && + (vs_prog_data->uses_firstvertex && brw->draw.params.firstvertex != new_firstvertex) || (vs_prog_data->uses_baseinstance && brw->draw.params.gl_baseinstance != new_baseinstance)) diff --git a/src/mesa/drivers/dri/i965/brw_draw_upload.c b/src/mesa/drivers/dri/i965/brw_draw_upload.c index 55566a7de44..b1be269ca91 100644 --- a/src/mesa/drivers/dri/i965/brw_draw_upload.c +++ b/src/mesa/drivers/dri/i965/brw_draw_upload.c @@ -704,11 +704,8 @@ brw_prepare_shader_draw_parameters(struct brw_context *brw) const struct brw_vs_prog_data *vs_prog_data = brw_vs_prog_data(brw->vs.base.prog_data); - const bool uses_firstvertex = - vs_prog_data->uses_basevertex || vs_prog_data->uses_firstvertex; - /* For non-indirect draws, upload the shader draw parameters */ - if ((uses_firstvertex || vs_prog_data->uses_baseinstance) && + if ((vs_prog_data->uses_firstvertex || vs_prog_data->uses_baseinstance) && brw->draw.draw_params_bo == NULL) { brw_upload_data(&brw->upload, &brw->draw.params, sizeof(brw->draw.params), 4, diff --git a/src/mesa/drivers/dri/i965/genX_state_upload.c b/src/mesa/drivers/dri/i965/genX_state_upload.c index 093954054fc..b1867c1a1cc 100644 --- a/src/mesa/drivers/dri/i965/genX_state_upload.c +++ b/src/mesa/drivers/dri/i965/genX_state_upload.c @@ -541,7 +541,6 @@ genX(emit_vertices)(struct brw_context *brw) const bool uses_draw_params = vs_prog_data->uses_firstvertex || - vs_prog_data->uses_basevertex || vs_prog_data->uses_baseinstance; const bool uses_derived_draw_params = |