[Intel-gfx] [PATCH 1/2] rendercopy/bdw: Enable hw-generated binding tables
Abdiel Janulgue
abdiel.janulgue at linux.intel.com
Wed May 7 22:59:23 CEST 2014
On Wednesday, May 07, 2014 02:49:31 PM Ville Syrjälä wrote:
> I quickly cobbled together a hsw version of this and gave it a whirl on
> one machine. Seems to work just fine here, and no lockups when switching
> between hw and sw binding tables. Did you get the lockups on hsw even
> with rendercopy?
>
> Here's my hsw version:
>
>
> +static void
> +gen7_hw_binding_table(struct intel_batchbuffer *batch, bool enable)
> +{
> + if (!enable) {
> + OUT_BATCH(MI_RS_CONTROL | 0x0);
> +
> + OUT_BATCH(HSW_3DSTATE_BINDING_TABLE_POOL_ALLOC | (3 - 2));
> + /* binding table pool base address */
This bit I missed and the source of my troubles for the past few months.
> + OUT_BATCH(3 << 5);
Yep, I confirm toggling on HSW does work quite well now. I'll now update the
patches to include HSW path on the kernel. I also take back my previous
statement that RS is broken on HSW! :)
Thanks a lot Ville!
> + /* Upper bound */
> + OUT_BATCH(0);
> +
> + OUT_BATCH(GEN7_PIPE_CONTROL | (4 - 2));
> + OUT_BATCH(GEN7_PIPE_CONTROL_CS_STALL |
> GEN7_PIPE_CONTROL_STALL_AT_SCOREBOARD); + OUT_BATCH(0);
> + OUT_BATCH(0);
> +
> + OUT_BATCH(GEN7_PIPE_CONTROL | (4 - 2));
> + OUT_BATCH(GEN7_PIPE_CONTROL_SC_INVALIDATE);
> + OUT_BATCH(0);
> + OUT_BATCH(0);
> +
> + return;
> + }
More information about the Intel-gfx
mailing list