iris: Set BindingTableEntryCount for compute shaders

This may slightly increase perf somewhere because the hardware can now
pre-cache binding tables.  The real feature is that INTEL_DEBUG=bat now
dumps out surface states for compute.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15759>
This commit is contained in:
Jason Ekstrand 2022-04-05 16:42:55 -05:00 committed by Marge Bot
parent 55a4bdb52f
commit 62f0677223

View file

@ -4722,6 +4722,7 @@ iris_store_cs_state(const struct intel_device_info *devinfo,
assert(cs_prog_data->push.cross_thread.regs == 0);
#endif
desc.BarrierEnable = cs_prog_data->uses_barrier;
desc.BindingTableEntryCount = MIN2(shader->bt.size_bytes / 4, 31);
#if GFX_VER >= 12
/* TODO: Check if we are missing workarounds and enable mid-thread
* preemption.
@ -7153,6 +7154,7 @@ iris_upload_compute_walker(struct iris_context *ice,
.NumberOfBarriers = cs_prog_data->uses_barrier,
.SamplerStatePointer = shs->sampler_table.offset,
.BindingTablePointer = binder->bt_offset[MESA_SHADER_COMPUTE],
.BindingTableEntryCount = MIN2(shader->bt.size_bytes / 4, 31),
};
assert(brw_cs_push_const_total_size(cs_prog_data, dispatch.threads) == 0);