diff options
author | Francisco Jerez <[email protected]> | 2015-03-19 15:44:24 +0200 |
---|---|---|
committer | Francisco Jerez <[email protected]> | 2015-03-20 17:01:35 +0200 |
commit | a902a5d6ba921ab006496aeecab0f68bca7ffb09 (patch) | |
tree | 6453d2f3113b045ad9f5f18673727a618fa599cb /docs/utilities.html | |
parent | fd149628e142af769c1c0ec037bc297d8a3e871f (diff) |
i965: Factor out logic to build a send message instruction with indirect descriptor.
This is going to be useful because the Gen7+ uniform and varying pull
constant, texturing, typed and untyped surface read, write, and atomic
generation code on the vec4 and fs back-end all require the same logic
to handle conditionally indirect surface indices. In pseudocode:
| if (surface.file == BRW_IMMEDIATE_VALUE) {
| inst = brw_SEND(p, dst, payload);
| set_descriptor_control_bits(inst, surface, ...);
| } else {
| inst = brw_OR(p, addr, surface, 0);
| set_descriptor_control_bits(inst, ...);
| inst = brw_SEND(p, dst, payload);
| set_indirect_send_descriptor(inst, addr);
| }
This patch abstracts out this frequently recurring pattern so we can
now write:
| inst = brw_send_indirect_message(p, sfid, dst, payload, surface)
| set_descriptor_control_bits(inst, ...);
without worrying about handling the immediate and indirect surface
index cases explicitly.
v2: Rebase. Improve documentatation and commit message. (Topi)
Preserve UW destination type cargo-cult. (Topi, Ken, Matt)
Reviewed-by: Topi Pohjolainen <[email protected]>
Acked-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'docs/utilities.html')
0 files changed, 0 insertions, 0 deletions