intel/vec4: Set brw_stage_prog_data::has_ubo_pull
authorJason Ekstrand <jason@jlekstrand.net>
Tue, 29 Oct 2019 22:28:18 +0000 (17:28 -0500)
committerJason Ekstrand <jason@jlekstrand.net>
Wed, 30 Oct 2019 16:05:57 +0000 (16:05 +0000)
In 0e4a75f917, Ken added a flag brw_stage_prog_data which indicates
whether any UBO pulls ever occur.  Unfortunately, he neglected to set
the bit in the vec4 back-end.  This was fine at the time because the
optimization was intended for iris which does not support gen7 and using
the vec4 back-end on Gen8+ requires an environment variable.  We want to
use this in Vulkan which does support Gen7 so we want the information
from the vec4 back-end as well as scalar.

Fixes: 0e4a75f917 "intel/compiler: Record whether any pull constant..."
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/intel/compiler/brw_vec4_nir.cpp

index 7bc31755609bbbc16ae6e72c04329e25b53b1d65..3036abcb814be32affffee2b0d1266afd1bc4567 100644 (file)
@@ -627,6 +627,8 @@ vec4_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr)
    case nir_intrinsic_load_ubo: {
       src_reg surf_index;
 
+      prog_data->base.has_ubo_pull = true;
+
       dest = get_nir_dest(instr->dest);
 
       if (nir_src_is_const(instr->src[0])) {