On Mon, 10 Oct 2011 16:31:49 -0700, Kenneth Graunke <kenn...@whitecape.org> wrote: > Every brw_set_???_message function had duplicated code, per-generation, > to set the Message Descriptor and Extended Message Descriptor bits > (SFID, message length, response length, header present, end of thread). > > However, these fields are actually specified as part of the SEND > instruction itself; individual types of messages don't even specify > them (except for header present, but that's in the same bit location). > > Since these are exactly the same regardless of the message type, just > create a function to set them, using the generic message structs. This > not only shortens the code, but hides a lot of the per-generation > complexity (like the SFID being in destreg__conditionalmod) in one spot. > > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/mesa/drivers/dri/i965/brw_eu_emit.c | 195 > ++++++++++++------------------- > 1 files changed, 73 insertions(+), 122 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c > b/src/mesa/drivers/dri/i965/brw_eu_emit.c > index 28bd52f..29aa39b 100644 > --- a/src/mesa/drivers/dri/i965/brw_eu_emit.c > +++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c
> @@ -543,59 +544,47 @@ brw_set_dp_write_message(struct brw_compile *p, > { > struct brw_context *brw = p->brw; > struct intel_context *intel = &brw->intel; > - brw_set_src1(p, insn, brw_imm_ud(0)); > + unsigned sfid; > > if (intel->gen >= 7) { > /* Use the Render Cache for RT writes; otherwise use the Data Cache */ > - unsigned sfid = GEN7_SFID_DATAPORT_DATA_CACHE; > if (msg_type == GEN6_DATAPORT_WRITE_MESSAGE_RENDER_TARGET_WRITE) > sfid = GEN6_SFID_DATAPORT_RENDER_CACHE; > + else > + sfid = GEN7_SFID_DATAPORT_DATA_CACHE; > + } else if (intel->gen == 6) { > + /* Use the render cache for all write messages. */ > + sfid = GEN6_SFID_DATAPORT_RENDER_CACHE; > + } else { > + sfid = BRW_SFID_DATAPORT_WRITE; > + } Ah, I hadn't understood that this was happening when I was looking at patch 1/10 and complaining about reads from DATA_CACHE. I'm cool with that now. Both this and that are: Reviewed-by: Eric Anholt <e...@anholt.net> which I think makes everything but 2/10.
pgpBsJsdLfKOn.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev