mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
i965: Add remaining scratch space setup emit to unit states.
This commit is contained in:
parent
2b224d66a0
commit
314c2574ff
4 changed files with 35 additions and 3 deletions
|
|
@ -77,6 +77,16 @@ brw_prepare_vs_unit(struct brw_context *brw)
|
|||
else
|
||||
vs->thread1.binding_table_entry_count = brw->vs.nr_surfaces;
|
||||
|
||||
if (brw->vs.prog_data->total_scratch != 0) {
|
||||
vs->thread2.scratch_space_base_pointer =
|
||||
brw->vs.scratch_bo->offset >> 10; /* reloc */
|
||||
vs->thread2.per_thread_scratch_space =
|
||||
ffs(brw->vs.prog_data->total_scratch) - 11;
|
||||
} else {
|
||||
vs->thread2.scratch_space_base_pointer = 0;
|
||||
vs->thread2.per_thread_scratch_space = 0;
|
||||
}
|
||||
|
||||
vs->thread3.urb_entry_read_length = brw->vs.prog_data->urb_read_length;
|
||||
vs->thread3.const_urb_entry_read_length = brw->vs.prog_data->curb_read_length;
|
||||
vs->thread3.dispatch_grf_start_reg = 1;
|
||||
|
|
|
|||
|
|
@ -160,7 +160,15 @@ upload_vs_state(struct brw_context *brw)
|
|||
OUT_BATCH((0 << GEN6_VS_SAMPLER_COUNT_SHIFT) |
|
||||
GEN6_VS_FLOATING_POINT_MODE_ALT |
|
||||
(brw->vs.nr_surfaces << GEN6_VS_BINDING_TABLE_ENTRY_COUNT_SHIFT));
|
||||
OUT_BATCH(0); /* scratch space base offset */
|
||||
|
||||
if (brw->vs.prog_data->total_scratch) {
|
||||
OUT_RELOC(brw->vs.scratch_bo,
|
||||
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER,
|
||||
ffs(brw->vs.prog_data->total_scratch) - 11);
|
||||
} else {
|
||||
OUT_BATCH(0);
|
||||
}
|
||||
|
||||
OUT_BATCH((1 << GEN6_VS_DISPATCH_START_GRF_SHIFT) |
|
||||
(brw->vs.prog_data->urb_read_length << GEN6_VS_URB_READ_LENGTH_SHIFT) |
|
||||
(0 << GEN6_VS_URB_ENTRY_READ_OFFSET_SHIFT));
|
||||
|
|
|
|||
|
|
@ -71,7 +71,15 @@ upload_vs_state(struct brw_context *brw)
|
|||
OUT_BATCH((0 << GEN6_VS_SAMPLER_COUNT_SHIFT) |
|
||||
GEN6_VS_FLOATING_POINT_MODE_ALT |
|
||||
(brw->vs.nr_surfaces << GEN6_VS_BINDING_TABLE_ENTRY_COUNT_SHIFT));
|
||||
OUT_BATCH(0); /* scratch space base offset */
|
||||
|
||||
if (brw->vs.prog_data->total_scratch) {
|
||||
OUT_RELOC(brw->vs.scratch_bo,
|
||||
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER,
|
||||
ffs(brw->vs.prog_data->total_scratch) - 11);
|
||||
} else {
|
||||
OUT_BATCH(0);
|
||||
}
|
||||
|
||||
OUT_BATCH((1 << GEN6_VS_DISPATCH_START_GRF_SHIFT) |
|
||||
(brw->vs.prog_data->urb_read_length << GEN6_VS_URB_READ_LENGTH_SHIFT) |
|
||||
(0 << GEN6_VS_URB_ENTRY_READ_OFFSET_SHIFT));
|
||||
|
|
|
|||
|
|
@ -228,7 +228,13 @@ upload_ps_state(struct brw_context *brw)
|
|||
OUT_BATCH(_3DSTATE_PS << 16 | (8 - 2));
|
||||
OUT_BATCH(brw->wm.prog_offset);
|
||||
OUT_BATCH(dw2);
|
||||
OUT_BATCH(0); /* scratch space base offset */
|
||||
if (brw->wm.prog_data->total_scratch) {
|
||||
OUT_RELOC(brw->wm.scratch_bo,
|
||||
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER,
|
||||
ffs(brw->wm.prog_data->total_scratch) - 11);
|
||||
} else {
|
||||
OUT_BATCH(0);
|
||||
}
|
||||
OUT_BATCH(dw4);
|
||||
OUT_BATCH(dw5);
|
||||
OUT_BATCH(0); /* kernel 1 pointer */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue