From 31dc63d5ca090fed3f1adcd4fd0db2f1f7aa19f7 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 25 Mar 2015 15:16:30 -0700 Subject: [PATCH] i965/nir: Use NIR for ARB_vertex_program support on Gen8+. Everything is already in place; we simply have to take the scalar code generation path. This gives us SIMD8 VS programs, instead of SIMD4x2. v2: Rebase on the patch that drops brw->gen >= 8. Signed-off-by: Kenneth Graunke Reviewed-by: Jordan Justen Reviewed-by: Connor Abbott --- src/mesa/drivers/dri/i965/brw_vec4.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp index 9d2e375..480e50c 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp @@ -1823,7 +1823,7 @@ brw_vs_emit(struct brw_context *brw, if (unlikely(INTEL_DEBUG & DEBUG_VS)) brw_dump_ir("vertex", prog, &shader->base, &c->vp->program.Base); - if (prog && brw->scalar_vs) { + if (brw->scalar_vs && (prog || brw_env_var_as_boolean("INTEL_USE_NIR", false))) { fs_visitor v(brw, mem_ctx, &c->key, prog_data, prog, &c->vp->program, 8); if (!v.run_vs()) { if (prog) { @@ -1841,9 +1841,15 @@ brw_vs_emit(struct brw_context *brw, &c->vp->program.Base, v.promoted_constants, v.runtime_check_aads_emit, "VS"); if (INTEL_DEBUG & DEBUG_VS) { - char *name = ralloc_asprintf(mem_ctx, "%s vertex shader %d", - prog->Label ? prog->Label : "unnamed", - prog->Name); + char *name; + if (prog) { + name = ralloc_asprintf(mem_ctx, "%s vertex shader %d", + prog->Label ? prog->Label : "unnamed", + prog->Name); + } else { + name = ralloc_asprintf(mem_ctx, "vertex program %d", + c->vp->program.Base.Id); + } g.enable_debug(name); } g.generate_code(v.cfg, 8); -- 2.7.4