On Mon, 10 Oct 2011 16:31:49 -0700, Kenneth Graunke <[email protected]> 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 <[email protected]> > --- > 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 <[email protected]>
which I think makes everything but 2/10.
pgpBsJsdLfKOn.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
